Commit 16528502 authored by 黄奎's avatar 黄奎

页面修改

parent c69c4725
......@@ -3,12 +3,8 @@
<div class="query-box ">
<ul>
<li><span><em>所属校区</em>
<el-select :disabled="IsParentCompany!=1" v-model="QueryMsg.BranchId" @change="getList()" >
<el-option
v-for="item in companyList"
:label='item.BName'
:value='item.Id'
:key='item.Id'>
<el-select :disabled="IsParentCompany!=1" v-model="QueryMsg.BranchId" @change="getList()">
<el-option v-for="item in companyList" :label='item.BName' :value='item.Id' :key='item.Id'>
</el-option>
</el-select>
</span></li>
......@@ -19,7 +15,8 @@
<div class="approval_title">出勤休假(4)</div>
<div class="approval_list" v-loading='loading'>
<div class="row">
<div class="approval_item col shadow-1" v-for="(item,index) in dataList" :style="{'margin-right':dataList.length!=index+1?'40px':'0' }">
<div class="approval_item col shadow-1" v-for="(item,index) in dataList"
:style="{'margin-right':dataList.length!=index+1?'40px':'0' }">
<img :src="item.Icon" width="86" style="" />
<span class="tit">{{item.Name}}</span>
<p class="updateP">全部可见</p>
......@@ -29,17 +26,17 @@
<p class="tim">{{item.UpdateTime}}</p>
<div class="row" style="margin-top: 50px;justify-content: space-around;width: 100%" v-if='item.Status==1'>
<q-btn color="primary" label="审批流程" style="padding: 0 20px" @click="workflow(item.Id)"></q-btn>
<q-btn outline style="color: #2961FE;padding: 0 10px" label="停用" @click="updateTempStatus(item.Id,item.TemplateType,item.Status)"></q-btn>
<q-btn outline style="color: #2961FE;padding: 0 10px" label="停用"
@click="updateTempStatus(item.Id,item.TemplateType,item.Status)"></q-btn>
</div>
<div class="row" style="margin-top: 50px;justify-content: center;" v-if='item.Status==2'>
<q-btn outline style="color: #2961FE;padding: 0 10px" label="启用" @click="updateTempStatus(item.Id,item.TemplateType,item.Status)"></q-btn>
<q-btn outline style="color: #2961FE;padding: 0 10px" label="启用"
@click="updateTempStatus(item.Id,item.TemplateType,item.Status)"></q-btn>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
......@@ -52,10 +49,12 @@
getSchoolDropdown //校区下拉
} from '../../api/school/index'
export default {
meta: {
title: "审批"
},
data() {
return {
loading:true,
loading: true,
//请求数据
QueryMsg: {
BranchId: '-1'
......@@ -63,25 +62,25 @@
//返回数据
dataList: [],
companyList: [],
IsParentCompany:2,
drawer:false,
SpId:0
IsParentCompany: 2,
drawer: false,
SpId: 0
}
},
methods: {
workflow(Id){
workflow(Id) {
this.$router.push({
path: '/administration/ApprovalProcess?Id='+Id+'&Bid='+this.QueryMsg.BranchId
path: '/administration/ApprovalProcess?Id=' + Id + '&Bid=' + this.QueryMsg.BranchId
});
},
getList() {
let describe = ['适用于请假申请', '适用于出差申请', '适用于外出申请', '当员工考勤出现缺卡时,可发起补卡审批']
let describe2 = ['精确扣减出勤时间,并同步考勤报表', '精确汇总至考勤报表', '精确汇总至考勤报表', '审批通过后考勤报表中的缺卡记录改为正常']
getTemplateList({BranchId:this.QueryMsg.BranchId}).then(res => {
if(res.Code == 1) {
this.loading=false;
getTemplateList({
BranchId: this.QueryMsg.BranchId
}).then(res => {
if (res.Code == 1) {
this.loading = false;
this.dataList = res.Data[0].List;
this.dataList.forEach((item, index) => {
item.describe = describe[index]
......@@ -94,7 +93,7 @@
},
getCompanyList() {
getSchoolDropdown({}).then(res => {
if(res.Code == 1) {
if (res.Code == 1) {
res.Data.forEach(x => {
var obj = {
Id: '',
......@@ -105,13 +104,10 @@
this.companyList.push(obj);
})
}
}).catch(() => {
})
}).catch(() => {})
},
updateTempStatus(id, type, status) {
if(status == 1) {
if (status == 1) {
this.$confirm('是否停用?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
......@@ -121,22 +117,20 @@
Id: id,
TemplateType: type,
Status: 2,
BranchId:this.QueryMsg.BranchId
BranchId: this.QueryMsg.BranchId
}).then(res => {
if(res.Code == 1) {
if (res.Code == 1) {
this.$message.success("已经停用")
this.getList()
}else {
} else {
this.$message.error("操作失败")
}
}).catch(() => {
})
}).catch(() => {})
}).catch(() => {
this.$message.info('已取消停用')
});
}
if(status == 2) {
if (status == 2) {
this.$confirm('是否启用?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
......@@ -146,38 +140,42 @@
Id: id,
TemplateType: type,
Status: 1,
BranchId:this.QueryMsg.BranchId
BranchId: this.QueryMsg.BranchId
}).then(res => {
if(res.Code == 1) {
if (res.Code == 1) {
this.$message.success("启用成功")
this.getList()
} else {
this.$message.error("操作失败")
}
}).catch(() => {
})
}).catch(() => {})
}).catch(() => {
this.$message.info('已取消启用')
});
}
},
goUrl (path,id) {
this.$router.push({ name: path,query:{"id":id,"Bid":this.QueryMsg.BranchId} })
goUrl(path, id) {
this.$router.push({
name: path,
query: {
"id": id,
"Bid": this.QueryMsg.BranchId
}
})
}
},
mounted() {
let userInfo = this.getLocalStorage();
this.QueryMsg.BranchId=userInfo.School_Id.toString();
let RefBranchId=this.$route.query.Bid;
if(RefBranchId!=null){
this.QueryMsg.BranchId=RefBranchId.toString();
this.QueryMsg.BranchId = userInfo.School_Id.toString();
let RefBranchId = this.$route.query.Bid;
if (RefBranchId != null) {
this.QueryMsg.BranchId = RefBranchId.toString();
}
this.getCompanyList();
this.getList()
}
}
</script>
<style>
......@@ -190,13 +188,15 @@
border-left: 3px solid #E95252;
margin: 30px 0;
}
.appProval{
.appProval {
background: white;
height: 90%;
padding: 0 20px;
}
.appProval .el-input__inner{
height: 34px!important;
.appProval .el-input__inner {
height: 34px !important;
}
.approval_desDiv {
......@@ -254,12 +254,14 @@
padding: 5px 10px;
align-items: center;
}
.el-drawer__body {
overflow: auto;
}
/*2.隐藏滚动条,太丑了*/
.el-drawer__container ::-webkit-scrollbar{
.el-drawer__container ::-webkit-scrollbar {
display: none;
}
</style>
</style>
......@@ -3,44 +3,58 @@
<div class="query-box" style="border-bottom: none;">
<ul>
<li>
<span><em>校区</em><el-select filterable @change='getUser' v-model='msg.RB_BranchId'>
<span><em>校区</em>
<el-select filterable @change='getUser' v-model='msg.RB_BranchId'>
<el-option label='不限' value='-1'></el-option>
<el-option v-for='item in companyList' :label='item.SName' :value='item.SId' :key='item.Id'></el-option>
</el-select>
</span>
</li>
<li>
<span><em>申请人</em><el-select filterable v-model='msg.CreateBy'>
<span><em>申请人</em>
<el-select filterable v-model='msg.CreateBy'>
<el-option label='不限' value='0'></el-option>
<el-option v-for='item in userList' :label='item.EmployeeName' :value='item.Id' :key='item.Id'></el-option>
<el-option v-for='item in userList' :label='item.EmployeeName' :value='item.Id' :key='item.Id'>
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>待审核人</em><el-select filterable v-model='msg.ToAuditId'>
<span><em>待审核人</em>
<el-select filterable v-model='msg.ToAuditId'>
<el-option label='不限' value='0'></el-option>
<el-option v-for='item in userList' :label='item.EmployeeName' :value='item.Id' :key='item.Id'></el-option>
<el-option v-for='item in userList' :label='item.EmployeeName' :value='item.Id' :key='item.Id'>
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>已审核人</em><el-select filterable v-model='msg.AuditedId'>
<span><em>已审核人</em>
<el-select filterable v-model='msg.AuditedId'>
<el-option label='不限' value='0'></el-option>
<el-option v-for='item in userList' :label='item.EmployeeName' :value='item.Id' :key='item.Id'></el-option>
<el-option v-for='item in userList' :label='item.EmployeeName' :value='item.Id' :key='item.Id'>
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>请假类型</em><el-select v-model='msg.TemplateId'>
<el-option v-for='item in ApplyTypeList' :label='item.label' :value='item.value' :key='item.value'></el-option>
</el-select></span>
<span><em>请假类型</em>
<el-select v-model='msg.TemplateId'>
<el-option v-for='item in ApplyTypeList' :label='item.label' :value='item.value' :key='item.value'>
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>申请审核状态</em><el-select v-model='msg.appAuditStatus'>
<el-option v-for='item in appAuditStatusList' :label='item.label' :value='item.value' :key='item.value'></el-option>
</el-select></span>
<span><em>申请审核状态</em>
<el-select v-model='msg.appAuditStatus'>
<el-option v-for='item in appAuditStatusList' :label='item.label' :value='item.value' :key='item.value'>
</el-option>
</el-select>
</span>
</li>
<li><span><em>申请时间</em><el-date-picker v-model='msg.StartTime' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
<li><span><em>申请时间</em>
<el-date-picker v-model='msg.StartTime' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
-
<el-date-picker v-model='msg.EndTime' class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
......@@ -62,7 +76,6 @@
<th>{{$t('admin.admin_status')}}</th>
<th width="150">{{$t('system.table_operation')}}</th>
</tr>
<tr v-for='item in list' v-loading='loading'>
<td>{{item.BName}}</td>
<td>{{item.EmName}}</td>
......@@ -73,21 +86,18 @@
<td>{{item.Status}}</td>
<td>
<el-tooltip class="item" effect="dark" content="详情" placement="top">
<el-button type="primary" icon="el-icon-tickets" circle @click="getDetail(item.Id,item.TemplateType)"></el-button>
<el-button type="primary" icon="el-icon-tickets" circle @click="getDetail(item.Id,item.TemplateType)">
</el-button>
</el-tooltip>
</td>
</tr>
</table>
</div>
<el-pagination background
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
layout="total,prev, pager, next, jumper"
:page-size=msg.pageSize
:total=total>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total>
</el-pagination>
<el-dialog custom-class='w500' :title="dialogTitle" :visible.sync="outerVisible" center >
<el-dialog custom-class='w500' :title="dialogTitle" :visible.sync="outerVisible" center>
<div class="approvalStatisticalDialog">
<div class="title">{{detailList.Proposer}}{{detailList.TempleteTypeName}}</div>
<div class="user">
......@@ -96,12 +106,11 @@
<p>{{detailList.Proposer}}</p>
<p><span style="color:#257BF1; font-size: 14px;">{{detailList.Status}}</span></p>
</div>
<div class="detail">
<table border="0" cellspacing="0" cellpadding="0" class="myApprovalTable">
<tr v-for="(item,index) in detailList.Details" v-if="(item.formType=='Image' && item.value.length>0) || item.formType!='Image'">
<td width="80" >{{item.title}}</td>
<tr v-for="(item,index) in detailList.Details"
v-if="(item.formType=='Image' && item.value.length>0) || item.formType!='Image'">
<td width="80">{{item.title}}</td>
<td v-if="item.formType=='String'">{{item.value}}</td>
<td v-if="item.formType=='Json'">
<div v-for="(i,index) in item.value" style="border-bottom: 1px solid #ccc; padding:10px 0;">
......@@ -109,96 +118,101 @@
</div>
</td>
<td v-if="item.formType=='Image'">
<img v-if='item.value.length>0' style="width: 50px; height: 50px; border-radius: 4px; margin:0 10px 0 0;" v-for="(img,index) in item.value" :src="img"
@click="getPic(item.value)"/>
<img v-if='item.value.length>0'
style="width: 50px; height: 50px; border-radius: 4px; margin:0 10px 0 0;"
v-for="(img,index) in item.value" :src="img" @click="getPic(item.value)" />
</td>
</tr>
</table>
</div>
<div class="audit">
<div class="auditItem">
<img v-if="!detailList.ProposerPhoto" src="../../assets/images/administration/litheader.png" alt="">
<img v-else :src="detailList.ProposerPhoto" alt="" :onerror="defaultImg">
<p>
<span>{{detailList.Proposer}}</span>&nbsp;&nbsp;<span>发起申请</span><span class="fr">{{detailList.ProposerTime}}</span>
<span>{{detailList.Proposer}}</span>&nbsp;&nbsp;<span>发起申请</span><span
class="fr">{{detailList.ProposerTime}}</span>
</p>
</div>
<div class="auditItem" v-for="(item,index) in detailList.arList">
<img v-if='item.AuditRecordList.length==1&&!item.AuditRecordList[0].AuditEmPhoto' src="../../assets/images/administration/litheader.png" />
<img v-if='item.AuditRecordList.length==1&&item.AuditRecordList[0].AuditEmPhoto' :src='item.AuditRecordList[0].AuditEmPhoto' alt="" :onerror="defaultImg" />
<img v-if='item.AuditRecordList.length==1&&!item.AuditRecordList[0].AuditEmPhoto'
src="../../assets/images/administration/litheader.png" />
<img v-if='item.AuditRecordList.length==1&&item.AuditRecordList[0].AuditEmPhoto'
:src='item.AuditRecordList[0].AuditEmPhoto' alt="" :onerror="defaultImg" />
<img v-if='item.AuditRecordList.length>1' src="../../assets/images/administration/bg_z1@2x.png" />
<p v-if='item.AuditRecordList.length==1'>
<span>{{item.AuditRecordList[0].AuditEmName}}</span>
<span :style="'color: ' + item.AuditRecordList[0].StatusColor + ' !important'">{{item.AuditRecordList[0].Stauts}}</span>
<span
:style="'color: ' + item.AuditRecordList[0].StatusColor + ' !important'">{{item.AuditRecordList[0].Stauts}}</span>
<span class="fr">{{item.AuditRecordList[0].AuditTime}}</span>
<span style="display:block; padding-left: 40px; text-indent: 0; font-size: 12px; line-height: 24px; color: #333;">{{item.AuditRecordList[0].Description}}</span>
<span v-if="item.AuditRecordList[0].CareOfList!=null" style="display: inline-block; line-height: 24px; font-size: 12px; text-indent: 0; padding-left:40px; color: #666;">
<b style="color: red;"></b>{{item.AuditRecordList[0].CareOfList[0].BeFrom}} <b style="color: red;"></b> {{item.AuditRecordList[0].CareOfList[0].Target}}
<br/>
<span
style="display:block; padding-left: 40px; text-indent: 0; font-size: 12px; line-height: 24px; color: #333;">{{item.AuditRecordList[0].Description}}</span>
<span v-if="item.AuditRecordList[0].CareOfList!=null"
style="display: inline-block; line-height: 24px; font-size: 12px; text-indent: 0; padding-left:40px; color: #666;">
<b style="color: red;"></b>{{item.AuditRecordList[0].CareOfList[0].BeFrom}} <b
style="color: red;"></b> {{item.AuditRecordList[0].CareOfList[0].Target}}
<br />
{{item.AuditRecordList[0].CareOfList[0].Remarks}}
</span>
</p>
<p v-if='item.AuditRecordList.length>1' style="cursor: pointer;">
<span>{{item.AuditDescription}}{{item.AuditWay}}</span>
<i class="el-icon-arrow-right"></i>
</p>
<div v-if='item.AuditRecordList.length>1' style=" width: 300px; height: auto; margin:15px 0; border-radius: 4px; background: #F0F3FA;">
<div v-if='item.AuditRecordList.length>1'
style=" width: 300px; height: auto; margin:15px 0; border-radius: 4px; background: #F0F3FA;">
<p v-if='item.AuditWayStatus==2' style="padding: 10px; color: #666;">须以下人员全部审批通过</p>
<p v-if='item.AuditWayStatus==3' style="padding: 10px; color: #666;">以下人员大于等于一人审批通过即可</p>
<div v-for="i in item.AuditRecordList">
<p class="auditItemDetailtitle">
<img width="28" height="28" v-if="!i.AuditEmPhoto" src="../../assets/images/administration/litheader.png" alt="">
<img width="28" height="28" v-if="!i.AuditEmPhoto"
src="../../assets/images/administration/litheader.png" alt="">
<img width="28" height="28" v-else :src="i.AuditEmPhoto" alt="" :onerror="defaultImg">
<span>{{i.AuditEmName}}</span>
<span :style="'color: ' + i.StatusColor + ' !important'">{{i.Stauts}}</span>
<span style="display:block; padding-left: 40px; text-indent: 0; font-size: 12px; line-height: 24px; color: #333;">{{i.Description}}</span>
<span v-if='i.CareOfList!=null' style="display: inline-block; line-height: 24px; font-size: 12px; text-indent: 0; padding-left:40px; color: #666;">
<b style="color: red;"></b>{{i.CareOfList[0].BeFrom}} <b style="color: red;"></b> {{i.CareOfList[0].Target}}
<br/>
<span
style="display:block; padding-left: 40px; text-indent: 0; font-size: 12px; line-height: 24px; color: #333;">{{i.Description}}</span>
<span v-if='i.CareOfList!=null'
style="display: inline-block; line-height: 24px; font-size: 12px; text-indent: 0; padding-left:40px; color: #666;">
<b style="color: red;"></b>{{i.CareOfList[0].BeFrom}} <b style="color: red;"></b>
{{i.CareOfList[0].Target}}
<br />
{{i.CareOfList[0].Remarks}}
</span>
</p>
<div class="auditItemImgList" v-if="toArr(i.Image).length>0">
<img v-for='img in toArr(i.Image)' :src="img" @click="getPic(toArr(i.Image))"/>
<img v-for='img in toArr(i.Image)' :src="img" @click="getPic(toArr(i.Image))" />
</div>
</div>
</div>
</div>
</div> <!--audit end-->
<div class="send" v-if="detailList.AuditStatus==5"> <!--v-if="detailList.AuditStatus==5"-->
</div>
<!--audit end-->
<div class="send" v-if="detailList.AuditStatus==5">
<p class="sentTitle">抄送<span>审批通过后,通知抄送人</span></p>
<div class="sendList">
<div v-for="(item,index) in detailList.CopyToPeopleList">
<img v-if="!item.EmPhoto" src="../../assets/images/administration/litheader.png" alt="">
<img v-else :src="item.EmPhoto" alt="" :onerror="defaultImg">
<br/>
<br />
{{item.EmName}}
</div>
</div>
</div> <!--send end-->
</div>
<!--send end-->
</div>
<div :class="{viewBigPicLayer:true,viewBigPicLayerDisplayNone:dspNone}" @click="closePicLayer">
<i @click="closePicLayer" class="el-icon-circle-close-outline clolseViewBigPicLayer" ></i>
<i @click="closePicLayer" class="el-icon-circle-close-outline clolseViewBigPicLayer"></i>
<el-carousel height="600px" :interval="5000" trigger="click">
<el-carousel-item v-for="(item,index) in picObj" :key="index">
<img :src="item" />
</el-carousel-item>
</el-carousel>
</div>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn" @click="outerVisible=false">关闭</button>
</div>
</el-dialog>
</div>
</template>
......@@ -216,69 +230,74 @@
getSchoolDropdown,
} from '../../api/school/index'
export default {
meta: {
title: "审批统计"
},
data() {
return {
picObj:[],
dspNone:true,
loading:true,
outerVisible:false,
dialogTitle:"",
total:0,
picObj: [],
dspNone: true,
loading: true,
outerVisible: false,
dialogTitle: "",
total: 0,
currentPage: 1,
defaultImg: 'this.src="' + require('../../assets/images/administration/litheader.png') + '"',
//请求数据
msg:{
RB_BranchId:'-1',
Status:'0',
CreateBy:'0',
ToAuditId:'0',
AuditedId:'0',
TemplateId:0,
PageIndex:1,
PageSize:15,
StartTime:'',
EndTime:'',
msg: {
RB_BranchId: '-1',
Status: '0',
CreateBy: '0',
ToAuditId: '0',
AuditedId: '0',
TemplateId: 0,
PageIndex: 1,
PageSize: 15,
StartTime: '',
EndTime: '',
},
getCompanyMsg:{
RB_Group_Id:'0',
Status:'0',
getCompanyMsg: {
RB_Group_Id: '0',
Status: '0',
},
getUserMsg:{
RB_Branch_id:'-1',
getUserMsg: {
RB_Branch_id: '-1',
},
//返回数据
list:[],
companyList:[],
userList:[],
ApplyTypeList:[],
appAuditStatusList:[],
detailList:{},
list: [],
companyList: [],
userList: [],
ApplyTypeList: [],
appAuditStatusList: [],
detailList: {},
}
},
methods: {
getPic(obj){
this.picObj=obj
this.dspNone=false;
getPic(obj) {
this.picObj = obj
this.dspNone = false;
},
closePicLayer(){
this.dspNone=true
closePicLayer() {
this.dspNone = true
},
toArr(val){
let arr=[]
if(val!="[]")
{
val.substring(1,val.length-1).split(',').forEach(item=>{
arr.push(item.substring(1,item.length-1))
toArr(val) {
let arr = []
if (val != "[]") {
val.substring(1, val.length - 1).split(',').forEach(item => {
arr.push(item.substring(1, item.length - 1))
});
}
return arr;
},
getDetail(id,type){
getAuditInfo({WorkFlowId:id,TemplateType:type}).then(res => {
if(res.Code == 1) {
this.outerVisible=true;
this.dialogTitle='审批详情'
this.detailList=res.Data
getDetail(id, type) {
getAuditInfo({
WorkFlowId: id,
TemplateType: type
}).then(res => {
if (res.Code == 1) {
this.outerVisible = true;
this.dialogTitle = '审批详情'
this.detailList = res.Data
}
}).catch(() => {
......@@ -291,13 +310,16 @@
// }
// },err=>{})
},
getAppAuditStatus(){
getAppAuditStatus() {
getMyInitiateAuditStatus({}).then(res => {
if(res.Code == 1) {
res.Data.forEach(item=>{
for(let key in item){
if (item.hasOwnProperty(key)){
this.appAuditStatusList.push({label:key,value:item[key]})
if (res.Code == 1) {
res.Data.forEach(item => {
for (let key in item) {
if (item.hasOwnProperty(key)) {
this.appAuditStatusList.push({
label: key,
value: item[key]
})
}
}
})
......@@ -306,13 +328,16 @@
})
},
getApplyType(){ //模板类型
getApplyType() { //模板类型
gettemplatetype({}).then(res => {
if(res.Code == 1) {
res.Data.forEach(item=>{
for(let key in item){
if (item.hasOwnProperty(key)){
this.ApplyTypeList.push({label:key,value:item[key]})
if (res.Code == 1) {
res.Data.forEach(item => {
for (let key in item) {
if (item.hasOwnProperty(key)) {
this.ApplyTypeList.push({
label: key,
value: item[key]
})
}
}
})
......@@ -321,17 +346,17 @@
})
},
getCompany(){
getCompany() {
getSchoolDropdown({}).then(res => {
this.companyList = res.Data;
})
},
getUser(){
this.msg.CreateBy='0'
this.msg.ToAuditId='0'
this.msg.AuditedId='0'
this.getUserMsg.RB_Branch_id=this.msg.RB_BranchId;
getUser() {
this.msg.CreateBy = '0'
this.msg.ToAuditId = '0'
this.msg.AuditedId = '0'
this.getUserMsg.RB_Branch_id = this.msg.RB_BranchId;
var qMsg = {
School_Id: this.msg.RB_BranchId
}
......@@ -343,14 +368,14 @@
}
})
},
getList(){
this.loading=true;
getList() {
this.loading = true;
getOAPageList(this.msg).then(res => {
if(res.Code == 1) {
this.list=res.Data.PageData;
this.total=res.Data.Count;
this.loading=false
if (res.Code == 1) {
this.list = res.Data.PageData;
this.total = res.Data.Count;
this.loading = false
}
}).catch(() => {
......@@ -376,8 +401,8 @@
},
mounted() {
let userInfo=this.getLocalStorage();
this.getUserMsg.RB_Group_id=this.getCompanyMsg.RB_Group_Id=userInfo.RB_Group_id; //集团ID
let userInfo = this.getLocalStorage();
this.getUserMsg.RB_Group_id = this.getCompanyMsg.RB_Group_Id = userInfo.RB_Group_id; //集团ID
this.getCompany()
this.getUser()
this.getList()
......@@ -386,26 +411,130 @@
}
}
</script>
<style>
@import "../financial/css/cssReset.css";
.approvalStatisticalDialog{width: 400px; background: #fff}
.approvalStatisticalDialog .title{height: 48px; background: #EDEEF0; line-height: 48px; font-size:16px; color: #333; text-indent: 30px;}
.approvalStatisticalDialog .user{width: 340px; margin: 0 30px; border-bottom: 1px solid #E6E6E6; height: 60px; padding: 30px 0; box-sizing: content-box}
.approvalStatisticalDialog .user>p{line-height: 28px;}
.approvalStatisticalDialog .user>img{width:58px; height: 58px; border-radius: 29px; float: left; margin:0 12px 0 0;}
.approvalStatisticalDialog .detail{width: 340px; margin: 0 30px; padding: 25px 0; border-bottom: 1px solid #E6E6E6; min-height: 120px;}
.approvalStatisticalDialog .audit{width: 340px; margin: 30px 30px 0; min-height: 120px; border-bottom: 1px solid #E6E6E6;}
.approvalStatisticalDialog .audit .auditItem{min-height: 80px; width: 320px; margin-left: 20px; border-left:1px solid #EDEDED; position: relative; font-size: 14px;}
.approvalStatisticalDialog .audit .auditItem:last-child{border-left: none;}
.approvalStatisticalDialog .audit .auditItem>p{line-height: 40px;text-indent: 40px;}
.approvalStatisticalDialog .audit .auditItem>img{width: 40px; height: 40px; border-radius: 20px; position: absolute; left: -20px;}
.approvalStatisticalDialog .send{width: 340px; margin: 30px 30px 0; min-height: 120px;}
.approvalStatisticalDialog .send .sentTitle{height: 14px; line-height: 14px; text-indent:10px; border-left:3px solid #E95252; font-size: 14px;}
.approvalStatisticalDialog .send .sentTitle span{color: #666; margin-left: 20px;}
.approvalStatisticalDialog .send .sendList>div{float: left; margin: 10px 10px 0 0; font-size: 12px; color: #666; width: 40px; text-align: center;}
.approvalStatisticalDialog .send .sendList>div>img{width: 40px; height: 40px; border-radius: 20px;}
.approvalStatisticalDialog .myApprovalTable tr{height: 40px; font-size: 14px;}
.approvalStatisticalDialog .myApprovalTable tr td:nth-child(1){text-align: right; color: #666; }
.approvalStatisticalDialog {
width: 400px;
background: #fff
}
.approvalStatisticalDialog .title {
height: 48px;
background: #EDEEF0;
line-height: 48px;
font-size: 16px;
color: #333;
text-indent: 30px;
}
.approvalStatisticalDialog .user {
width: 340px;
margin: 0 30px;
border-bottom: 1px solid #E6E6E6;
height: 60px;
padding: 30px 0;
box-sizing: content-box
}
.approvalStatisticalDialog .user>p {
line-height: 28px;
}
.approvalStatisticalDialog .user>img {
width: 58px;
height: 58px;
border-radius: 29px;
float: left;
margin: 0 12px 0 0;
}
.approvalStatisticalDialog .detail {
width: 340px;
margin: 0 30px;
padding: 25px 0;
border-bottom: 1px solid #E6E6E6;
min-height: 120px;
}
.approvalStatisticalDialog .audit {
width: 340px;
margin: 30px 30px 0;
min-height: 120px;
border-bottom: 1px solid #E6E6E6;
}
.approvalStatisticalDialog .audit .auditItem {
min-height: 80px;
width: 320px;
margin-left: 20px;
border-left: 1px solid #EDEDED;
position: relative;
font-size: 14px;
}
.approvalStatisticalDialog .audit .auditItem:last-child {
border-left: none;
}
.approvalStatisticalDialog .audit .auditItem>p {
line-height: 40px;
text-indent: 40px;
}
.approvalStatisticalDialog .audit .auditItem>img {
width: 40px;
height: 40px;
border-radius: 20px;
position: absolute;
left: -20px;
}
.approvalStatisticalDialog .send {
width: 340px;
margin: 30px 30px 0;
min-height: 120px;
}
.approvalStatisticalDialog .send .sentTitle {
height: 14px;
line-height: 14px;
text-indent: 10px;
border-left: 3px solid #E95252;
font-size: 14px;
}
.approvalStatisticalDialog .send .sentTitle span {
color: #666;
margin-left: 20px;
}
.approvalStatisticalDialog .send .sendList>div {
float: left;
margin: 10px 10px 0 0;
font-size: 12px;
color: #666;
width: 40px;
text-align: center;
}
.approvalStatisticalDialog .send .sendList>div>img {
width: 40px;
height: 40px;
border-radius: 20px;
}
.approvalStatisticalDialog .myApprovalTable tr {
height: 40px;
font-size: 14px;
}
.approvalStatisticalDialog .myApprovalTable tr td:nth-child(1) {
text-align: right;
color: #666;
}
</style>
......@@ -3,9 +3,9 @@
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-select filled stack-label @input="resetSearch()" option-value="SId"
option-label="SName" v-model="msg.RB_BranchId" ref="School_Id" :options="schoolList" label="所属校区"
:dense="false" emit-value map-options />
<q-select filled stack-label @input="resetSearch()" option-value="SId" option-label="SName"
v-model="msg.RB_BranchId" ref="School_Id" :options="schoolList" label="所属校区" :dense="false" emit-value
map-options />
</div>
</div>
</div>
......@@ -15,7 +15,7 @@
<th>{{$t('admin.admin_personNumber')}}</th>
<th>{{$t('adm.adm_Bindingattendance')}}</th>
<th>{{$t('admin.admin_kqTime')}}</th>
<th >{{$t('admin.admin_czPerson')}}</th>
<th>{{$t('admin.admin_czPerson')}}</th>
<th width="150">{{$t('admin.admin_operate')}}</th>
</tr>
<tr v-for="(item,index) in dataList">
......@@ -26,20 +26,15 @@
<td>{{item.UpdateName}}</td>
<td>
<el-tooltip class="item" effect="dark" :content="$t('pub.updateMsg')" placement="right">
<el-button type="primary" icon="el-icon-edit" @click="goUrl('AttendanceRules',item.Id,item.RB_BranchId)" circle></el-button>
<el-button type="primary" icon="el-icon-edit" @click="goUrl('AttendanceRules',item.Id,item.RB_BranchId)"
circle></el-button>
</el-tooltip>
</td>
</tr>
</table>
<el-pagination
background
@current-change="handleCurrentChange"
:current-page.sync="currentPage"
layout="total,prev, pager, next, jumper"
:page-size=msg.pageSize
:total=total>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total>
</el-pagination>
</div>
</template>
......@@ -50,47 +45,48 @@
import {
getAttendancePageList
} from '../../api/administration/administration'
export default{
export default {
meta: {
title: "考勤管理"
},
data() {
return {
loading:true,
loading: true,
//分页
total: 0,
pageSize: '',
currentPage: 1,
//请求数据
msg:{
pageIndex:1,
pageSize:15,
RB_BranchId:'-1',
Status:'-1',
IsBind:'0'
msg: {
pageIndex: 1,
pageSize: 15,
RB_BranchId: '-1',
Status: '-1',
IsBind: '0'
},
companyMsg:{
RB_Group_Id:"0",
Status:0,
companyMsg: {
RB_Group_Id: "0",
Status: 0,
},
//返回数据
dataList:[],
dataList: [],
schoolList: [], //校区数组
}
},
methods:{
getList(){
this.loading=true;
methods: {
getList() {
this.loading = true;
getAttendancePageList(this.msg).then(res => {
if(res.Code ==1){
this.loading=false;
this.dataList=res.Data.PageData;
if (res.Code == 1) {
this.loading = false;
this.dataList = res.Data.PageData;
this.total = res.Data.Count;
}else {
this.loading=false;
} else {
this.loading = false;
}
})
},
getCompany(){ //公司
getCompany() { //公司
getSchoolDropdown({}).then(res => {
this.schoolList = res.Data;
var obj = {
......@@ -106,26 +102,40 @@
},
resetSearch() {
this.msg.pageIndex = 1;
this.currentPage=1;
this.currentPage = 1;
this.getList();
},
goUrl (path,id,bId) {
this.$router.push({ path: path,query:{"id":id,"bId":bId} })
goUrl(path, id, bId) {
this.$router.push({
path: path,
query: {
"id": id,
"bId": bId
}
})
}
},
mounted() {
this.getList();
this.getCompany();
let userInfo=this.getLocalStorage();
this.companyMsg.RB_Group_Id=userInfo.RB_Group_id;//集团
let userInfo = this.getLocalStorage();
this.companyMsg.RB_Group_Id = userInfo.RB_Group_id; //集团
},
}
</script>
<style>
@import "../financial/css/cssReset.css";
.singeRowTable th{text-align: left; padding-left: 10px;}
.singeRowTable td{text-align: left;padding-left: 10px}
.singeRowTable th {
text-align: left;
padding-left: 10px;
}
.singeRowTable td {
text-align: left;
padding-left: 10px
}
</style>
......@@ -9,12 +9,12 @@
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-input clearable @change="getList" standout="bg-primary text-white" v-model="msg.Title"
label="公文标题" @clear="getList"/>
<q-input clearable @change="getList" standout="bg-primary text-white" v-model="msg.Title" label="公文标题"
@clear="getList" />
</div>
<div class="col-3">
<q-input clearable @change="getList" standout="bg-primary text-white" v-model="msg.Number"
label="编号" @clear="getList"/>
<q-input clearable @change="getList" standout="bg-primary text-white" v-model="msg.Number" label="编号"
@clear="getList" />
</div>
<q-select @input="getList" filled stack-label option-value="Id" option-label="EmployeeName" use-input
v-model="msg.UpdateBy" ref="DeptTier" :options="PersionList" label="发布人" :dense="false"
......@@ -32,27 +32,25 @@
v-model="msg.NoticeState" ref="DeptTier" :options="NoticeList" label="发布状态" :dense="false"
class="col-6 q-pr-lg" emit-value map-options />
</div>
</div>
<!-- <div class="page-option">
<q-btn color="accent" class="q-mr-md" icon="add" label="发布公文" @click="addDoc(null)" />
</div> -->
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-tow-column-table"
separator="none" title="" :data="data" :columns="columns" row-key="name">
<template v-slot:top="props">
<div class="page-option" style="width:100%;">
<q-btn color="accent" style="float:right;margin-right:0;" size="sm" class="q-mr-md" icon="add" label="发布公文" @click="addDoc(null)" />
<q-btn color="accent" style="float:right;margin-right:0;" size="sm" class="q-mr-md" icon="add"
label="发布公文" @click="addDoc(null)" />
</div>
</template>
<template v-slot:body-cell-NoticeStateName="props">
<q-td :props="props">
<div class="row" style="line-height: 30px">
<img v-if="props.row.NoticeState==2" src="../../assets/images/dcaogao.png" class="NoticeStateNimg" />
<img v-if="props.row.NoticeState==3" src="../../assets/images/dchehui.png" class="NoticeStateNimg"/>
<img v-if="props.row.NoticeState==1" src="../../assets/images/dfabu.png" class="NoticeStateNimg"/>
<span :style="{color:props.row.NoticeState==1?'#02C499':(props.row.NoticeState==2?'#2961FE':'#F72E52')}">{{props.row.NoticeStateName}}</span>
<img v-if="props.row.NoticeState==3" src="../../assets/images/dchehui.png" class="NoticeStateNimg" />
<img v-if="props.row.NoticeState==1" src="../../assets/images/dfabu.png" class="NoticeStateNimg" />
<span
:style="{color:props.row.NoticeState==1?'#02C499':(props.row.NoticeState==2?'#2961FE':'#F72E52')}">{{props.row.NoticeStateName}}</span>
</div>
</q-td>
</template>
......@@ -66,13 +64,15 @@
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<q-btn flat size="xs" icon="iconfont icon-zhiding" style="font-weight:400;color: #789CFF" class="q-mr-xs"
label="置顶" @click="setNoticeOtion(props.row.Id,1)" v-if="props.row.NoticeState==1&&props.row.Is_Top==2" />
<q-btn flat size="xs" icon="iconfont icon-quxiaozhiding1" style="font-weight:400;color:#FF7C93;" class="q-mr-xs"
label="取消置顶" @click="setNoticeOtion(props.row.Id,2)" v-if="props.row.NoticeState==1&&props.row.Is_Top==1" />
<q-btn flat size="xs" icon="iconfont icon-xiangqing-" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
label="详情" @click="EditConfig(props.row.Id)" />
<q-btn flat size="xs" icon="iconfont icon-chehui4" color="deep-orange" style="font-weight:400" class="q-mr-xs"
label="撤回" @click="setNoticeOtion(props.row.Id,3)" v-if="props.row.NoticeState==1" />
label="置顶" @click="setNoticeOtion(props.row.Id,1)"
v-if="props.row.NoticeState==1&&props.row.Is_Top==2" />
<q-btn flat size="xs" icon="iconfont icon-quxiaozhiding1" style="font-weight:400;color:#FF7C93;"
class="q-mr-xs" label="取消置顶" @click="setNoticeOtion(props.row.Id,2)"
v-if="props.row.NoticeState==1&&props.row.Is_Top==1" />
<q-btn flat size="xs" icon="iconfont icon-xiangqing-" style="font-weight:400;color: #3FC4FF"
class="q-mr-xs" label="详情" @click="EditConfig(props.row.Id)" />
<q-btn flat size="xs" icon="iconfont icon-chehui4" color="deep-orange" style="font-weight:400"
class="q-mr-xs" label="撤回" @click="setNoticeOtion(props.row.Id,3)" v-if="props.row.NoticeState==1" />
<q-btn flat size="xs" icon="iconfont icon-xiugai1" style="font-weight:400;color: #02C499" class="q-mr-xs"
label="修改" v-if="props.row.NoticeState!=1" @click="addDoc(props.row.Id)" />
</q-td>
......@@ -101,16 +101,16 @@
</div>
<div class="row">
<div class="col-4" style="margin-top: 20px">
<q-select filled stack-label option-value="Id" option-label="Name"
v-model="NoticeBaseInfo.NumberRule" ref="DeptTier" :options="RuleEnumList" label="编号规则" :dense="false"
class="col-6 q-pr-lg q-pb-lg" emit-value map-options clearable />
<q-select filled stack-label option-value="Id" option-label="Name" v-model="NoticeBaseInfo.NumberRule"
ref="DeptTier" :options="RuleEnumList" label="编号规则" :dense="false" class="col-6 q-pr-lg q-pb-lg"
emit-value map-options clearable />
</div>
</div>
<div class="row">
<div class="col-4" >
<div class="col-4">
<q-select class="col-6 q-pb-lg q-pr-lg" multiple clearable filled stack-label use-input use-chips
option-value="Id" option-label="EmployeeName" v-model="tempManager" ref="ManagerId" :options="PersionList"
label="默认抄送" :dense="false" emit-value map-options @filter="filterFn">
option-value="Id" option-label="EmployeeName" v-model="tempManager" ref="ManagerId"
:options="PersionList" label="默认抄送" :dense="false" emit-value map-options @filter="filterFn">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
......@@ -126,8 +126,7 @@
</div>
</div>
</template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale"
transition-hide="scale">
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 800px;max-width:900px;">
<q-card-section>
<div class="text-h6">{{addMsg.Id==0?'发布公告':'修改公告'}}</div>
......@@ -135,14 +134,15 @@
<div class="text-caption q-mb-lg q-px-md text-grey-6">基本资料</div>
<q-card-section class="q-pt-none">
<div class="row wrap">
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" v-model="addMsg.From" label="公文来源(FR)" :rules="[val => !!val || '公文来源(FR)']"/>
<selectTree class="col-6 q-pb-lg q-pr-lg" :treeData='DeptList' :defaultArray="returnString" nodeKey="DeptId" :multiple="true" :defaultExpandAll="true"
labelKey="DeptName" childrenKey="ChildList" tipText="To" @getChild="getChild"
classStr="col-6 q-pr-lg q-pb-lg"></selectTree>
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white"
v-model="addMsg.From" label="公文来源(FR)" :rules="[val => !!val || '公文来源(FR)']" />
<selectTree class="col-6 q-pb-lg q-pr-lg" :treeData='DeptList' :defaultArray="returnString" nodeKey="DeptId"
:multiple="true" :defaultExpandAll="true" labelKey="DeptName" childrenKey="ChildList" tipText="To"
@getChild="getChild" classStr="col-6 q-pr-lg q-pb-lg"></selectTree>
<q-select class="col-6 q-pb-lg q-pr-lg" multiple clearable filled stack-label use-input use-chips
option-value="Id" option-label="EmployeeName" v-model="tempManager2" ref="ManagerId" :options="PersionList"
label="默认抄送" :dense="false" emit-value map-options @filter="filterFn">
option-value="Id" option-label="EmployeeName" v-model="tempManager2" ref="ManagerId"
:options="PersionList" label="默认抄送" :dense="false" emit-value map-options @filter="filterFn">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
......@@ -151,16 +151,14 @@
</q-item>
</template>
</q-select>
<q-input clearable class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" disable v-model="nNumber" label="编号" v-if="nNumber!=null "/>
<q-input clearable filled class="col-12 q-pb-lg q-pr-lg" standout="bg-primary text-white" v-model="addMsg.Title" label="标题" :rules="[val => !!val || '标题']"/>
<q-input clearable class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" disable v-model="nNumber"
label="编号" v-if="nNumber!=null " />
<q-input clearable filled class="col-12 q-pb-lg q-pr-lg" standout="bg-primary text-white"
v-model="addMsg.Title" label="标题" :rules="[val => !!val || '标题']" />
<div class="text-caption q-my-md q-px-xs text-grey-6">公告内容</div>
<ext-editor :defaultMsg="addMsg.Content" classStr="col-12" @getEditValue="getEditValue"></ext-editor>
<el-upload
style="margin-top: 20px"
:http-request="uploadFile2"
:file-list="fileList"
:before-remove="beforeRemove"
:multiple="true" :show-file-list="true" action="">
<el-upload style="margin-top: 20px" :http-request="uploadFile2" :file-list="fileList"
:before-remove="beforeRemove" :multiple="true" :show-file-list="true" action="">
<el-button size="small" type="primary">附件上传</el-button>
</el-upload>
</div>
......@@ -176,11 +174,7 @@
</q-card>
</q-dialog>
<el-drawer title="" :visible.sync="drawer" size="40%" :with-header="false">
<q-img
:src="NoticeBaseInfo.Image"
spinner-color="white"
style=" width: 100%;height: 120px"
/>
<q-img :src="NoticeBaseInfo.Image" spinner-color="white" style=" width: 100%;height: 120px" />
<div style="padding: 20px">
<div class="col-12 g row">
<div class="col-6">
......@@ -191,10 +185,12 @@
</div>
</div>
<div class="col-12 row">
To:<span v-for="(item,index) in NInfo.DepartmentList" :index="index">{{item.DeptName}}{{NInfo.DepartmentList.length==index+1?'':'、'}}</span>
To:<span v-for="(item,index) in NInfo.DepartmentList"
:index="index">{{item.DeptName}}{{NInfo.DepartmentList.length==index+1?'':'、'}}</span>
</div>
<div class="col-12 row">
Cc:<span v-for="(item,index) in NInfo.CopyPeopleList" :index="index">{{item.EmName}}{{NInfo.CopyPeopleList.length==index+1?'':'、'}}</span>
Cc:<span v-for="(item,index) in NInfo.CopyPeopleList"
:index="index">{{item.EmName}}{{NInfo.CopyPeopleList.length==index+1?'':'、'}}</span>
</div>
<div class="col-12 row">
Time:{{NInfo.UpdateTime}}
......@@ -204,13 +200,13 @@
</div>
<div class="col-12 row" style="margin-top: 20px">
<div>附件:</div>
<template >
<template>
<div class="q-pa-md" style="max-width: 350px">
<q-list dense padding class="rounded-borders">
<q-item clickable v-ripple v-for="(file,fIndex) in fileList" :key="fIndex">
<q-item-section >
<q-item-section>
<div class="row" @click="wopen(file)">
<i class="iconfont icon-xiazai2" style="margin-right: 10px" ></i>
<i class="iconfont icon-xiazai2" style="margin-right: 10px"></i>
{{file.name}}
</div>
</q-item-section>
......@@ -228,12 +224,12 @@
import {
getNoticePageList,
getNoticeStateEnumList,
getNoticeBaseInfo,//获取 公告配置
getNoticeRuleEnumList,//获取编号规则 枚举列表
setNoticeBaseInfo,//新增修改 公告配置
setNoticeOperation,//公告操作
setNoticeInfo,//发布公告
getNoticeInfo,//公告详情
getNoticeBaseInfo, //获取 公告配置
getNoticeRuleEnumList, //获取编号规则 枚举列表
setNoticeBaseInfo, //新增修改 公告配置
setNoticeOperation, //公告操作
setNoticeInfo, //发布公告
getNoticeInfo, //公告详情
} from '../../api/administration/document';
import {
getDeptTree
......@@ -248,22 +244,25 @@
import selectTree from '../../components/common/select-tree'
export default {
meta: {
title: "行政公告"
},
components: {
extEditor,
selectTree
},
name: "document",
data(){
return{
data() {
return {
tabCheck: 'first',
msg:{
PageIndex:1,
PageSize:20,
Title:'',
Number:'',
NoticeState:0,
Is_Top:0,
UpdateBy:-1
msg: {
PageIndex: 1,
PageSize: 20,
Title: '',
Number: '',
NoticeState: 0,
Is_Top: 0,
UpdateBy: -1
},
loading: true,
//公告column
......@@ -310,43 +309,44 @@
name: 'optioned',
label: '操作',
field: 'DeptId'
}],
data:[],
pageCount:0,
NoticeList:[],
}
],
data: [],
pageCount: 0,
NoticeList: [],
PersionList: [], //员工列表
AllemployeeList: [], //所有员工
NoticeBaseInfo:{//基础配置
Id:0,
Image:'',
From:'',
NumberRule:'',
NumberRuleName:'',
CopyPeople:'',
NoticeBaseInfo: { //基础配置
Id: 0,
Image: '',
From: '',
NumberRule: '',
NumberRuleName: '',
CopyPeople: '',
},
tempManager: [], //默认抄送
tempManager2:[],//发布公告 默认抄送
RuleEnumList:[],//编号规则列表
tempManager2: [], //发布公告 默认抄送
RuleEnumList: [], //编号规则列表
saveLoading: false,
persistent: false,
addMsg:{//添加和修改公告
Id:0,
From:'',
To:'-1',//抄送部门
CopyPeople:'-1',//抄送人
Title:'',
Content:'',
NoticeState:1,//状态 1发布 2草稿
Is_Top:2,//是否置顶 1是 2否
FileList:[],//附件列表
addMsg: { //添加和修改公告
Id: 0,
From: '',
To: '-1', //抄送部门
CopyPeople: '-1', //抄送人
Title: '',
Content: '',
NoticeState: 1, //状态 1发布 2草稿
Is_Top: 2, //是否置顶 1是 2否
FileList: [], //附件列表
},
fileList:[],//上传列表
fileList: [], //上传列表
DeptList: [], // 部门下拉
returnString: [], //默认岗位
nNumber:null,
nNumber: null,
drawer: false, //显示右侧抽屉
NInfo:{},//详情内容
NInfo: {}, //详情内容
}
},
......@@ -356,9 +356,9 @@
this.getEmployee()
this.getNoticeBase()
this.getDepartList();
this.getNoticeRule()//获取编号规则 枚举列表
this.getNoticeRule() //获取编号规则 枚举列表
},
methods:{
methods: {
//获取编辑器值
getEditValue(obj) {
......@@ -385,28 +385,27 @@
}
})
},
uploadFile2(files){
uploadFile2(files) {
UploadSelfFile('studentIcon', files.file, res => {
if (res.Code == 1) {
let obj = {
name:res.FileName,
url:res.FileUrl,
name: res.FileName,
url: res.FileUrl,
}
this.fileList.push(obj)
}
})
},
beforeRemove(file, fileList) {//删除的操作
this.fileList.forEach((x,j)=>{
if(x.uid == file.uid ){
this.fileList.splice(j,1)
beforeRemove(file, fileList) { //删除的操作
this.fileList.forEach((x, j) => {
if (x.uid == file.uid) {
this.fileList.splice(j, 1)
}
})
},
getList(){
if(this.msg.UpdateBy=='' || this.msg.UpdateBy==null){
this.msg.UpdateBy =0
getList() {
if (this.msg.UpdateBy == '' || this.msg.UpdateBy == null) {
this.msg.UpdateBy = 0
}
this.loading = false;
getNoticePageList(this.msg).then(res => {
......@@ -417,20 +416,21 @@
this.loading = false
})
},
getNoticeList(){
getNoticeList() {
this.loading = false;
getNoticeStateEnumList({Name:'',Id:''}).then(res => {
getNoticeStateEnumList({
Name: '',
Id: ''
}).then(res => {
this.NoticeList = res.Data
let obj={
Name:'不限',
Id:0
let obj = {
Name: '不限',
Id: 0
}
this.NoticeList.unshift(obj)
}).catch(() => {
this.loading = false
})
},
//筛选员工
filterFn(val, update) {
......@@ -444,15 +444,15 @@
})
},
//获取员工列表
getEmployee(){
getEmployee() {
var qMsg = {
EmployeeName: ""
}
queryEmployee(qMsg).then(res => {
if (res.Code == 1) {
let obj={
EmployeeName:'不限',
Id:-1
let obj = {
EmployeeName: '不限',
Id: -1
}
res.Data.unshift(obj)
var jsonData = res.Data;
......@@ -463,7 +463,6 @@
}
})
},
//获取部门下拉数据
getDepartList(id) {
let msg = {
......@@ -491,24 +490,26 @@
this.addMsg.To = '';
}
},
////获取 公告配置
getNoticeBase(){
getNoticeBase() {
getNoticeBaseInfo({}).then(res => {
if (res.Code == 1) {
this.NoticeBaseInfo = res.Data
this.tempManager = res.Data.CopyPeople.split(',').map(Number);//字符串转为数组map 是转为数字
this.tempManager = res.Data.CopyPeople.split(',').map(Number); //字符串转为数组map 是转为数字
}
})
},
getNoticeRule(){
getNoticeRuleEnumList({Name:'',Id:''}).then(res => {
getNoticeRule() {
getNoticeRuleEnumList({
Name: '',
Id: ''
}).then(res => {
if (res.Code == 1) {
this.RuleEnumList = res.Data
}
})
},
save(){
save() {
this.saveLoading = true;
var tempStr = "";
if (this.tempManager && this.tempManager.length > 0) {
......@@ -537,61 +538,61 @@
this.saveLoading = false
})
},
getNInfo(id){
getNoticeInfo({NoticeId:id}).then(res => {
getNInfo(id) {
getNoticeInfo({
NoticeId: id
}).then(res => {
if (res.Code == 1) {
this.NInfo = res.Data
this.addMsg.Id=res.Data.Id;
this.addMsg.From=res.Data.From;
this.addMsg.Id = res.Data.Id;
this.addMsg.From = res.Data.From;
//数组处理
this.addMsg.To=res.Data.To;
this.returnString=[]
this.addMsg.To = res.Data.To;
this.returnString = []
this.returnString = res.Data.To.split(',').map(Number)
//数组处理
this.addMsg.CopyPeople=res.Data.CopyPeople;
this.tempManager2 = res.Data.CopyPeople.split(',').map(Number)//字符串转为数组map 是转为数字
this.addMsg.Title=res.Data.Title;
this.addMsg.Content=res.Data.Content;
this.addMsg.NoticeState=res.Data.NoticeState;
this.addMsg.Is_Top=res.Data.Is_Top;
this.addMsg.CopyPeople = res.Data.CopyPeople;
this.tempManager2 = res.Data.CopyPeople.split(',').map(Number) //字符串转为数组map 是转为数字
this.addMsg.Title = res.Data.Title;
this.addMsg.Content = res.Data.Content;
this.addMsg.NoticeState = res.Data.NoticeState;
this.addMsg.Is_Top = res.Data.Is_Top;
this.fileList = [];
res.Data.FileList.forEach((x)=>{
let obj={
name:x.FileName,
url:x.FileUrl
res.Data.FileList.forEach((x) => {
let obj = {
name: x.FileName,
url: x.FileUrl
}
this.fileList.push(obj)
})
this.nNumber =res.Data.Number;
this.nNumber = res.Data.Number;
}
}).catch(() => {
})
}).catch(() => {})
},
addDoc(id){
this.nNumber =null
addDoc(id) {
this.nNumber = null
if (id) {
this.getNInfo(id)
} else {
this.tempManager2=this.tempManager?this.tempManager:[]
this.addMsg.From=this.NoticeBaseInfo.From;
this.addMsg.Title=this.NoticeBaseInfo.Title;
this.addMsg.Id=0;
this.addMsg.Content=this.NoticeBaseInfo.Content;
this.addMsg.NoticeState=1;
this.addMsg.Is_Top=2;
this.addMsg.FileList=[];
this.fileList=[]
this.tempManager2 = this.tempManager ? this.tempManager : []
this.addMsg.From = this.NoticeBaseInfo.From;
this.addMsg.Title = this.NoticeBaseInfo.Title;
this.addMsg.Id = 0;
this.addMsg.Content = this.NoticeBaseInfo.Content;
this.addMsg.NoticeState = 1;
this.addMsg.Is_Top = 2;
this.addMsg.FileList = [];
this.fileList = []
}
this.persistent = true;
},
closeSaveForm() {
this.persistent = false
},
save_t(val){
save_t(val) {
this.addMsg.NoticeState=val//发布状态
this.addMsg.NoticeState = val //发布状态
this.saveLoading = true;
var tempStr = "";
if (this.tempManager2 && this.tempManager2.length > 0) {
......@@ -604,20 +605,20 @@
tempStr = tempStr.substr(1);
}
this.addMsg.CopyPeople = tempStr;
this.addMsg.FileList=[]
this.fileList.forEach((x)=>{
let obj={
FileName:x.name,
FileUrl:x.url
this.addMsg.FileList = []
this.fileList.forEach((x) => {
let obj = {
FileName: x.name,
FileUrl: x.url
}
this.addMsg.FileList.push(obj)
})
let data = this.addMsg
if(data.CopyPeople==''){
data.CopyPeople=-1
if (data.CopyPeople == '') {
data.CopyPeople = -1
}
if(data.To==''){
data.To=-1
if (data.To == '') {
data.To = -1
}
setNoticeInfo(data).then(res => {
this.saveLoading = false
......@@ -632,19 +633,20 @@
this.$emit("success")
this.persistent = false
this.getList();
}
}).catch(() => {
this.saveLoading = false
})
},
EditConfig(id){
EditConfig(id) {
this.drawer = true;
this.getNInfo(id)
},
setNoticeOtion(id,type){
setNoticeOperation({NoticeId:id,Type:type}).then(res => {
setNoticeOtion(id, type) {
setNoticeOperation({
NoticeId: id,
Type: type
}).then(res => {
this.saveLoading = false
if (res.Code == 1) {
this.$q.notify({
......@@ -658,27 +660,30 @@
this.persistent = false
this.msg.PageIndex = 1;
this.getList();
}
}).catch(() => {
this.saveLoading = false
})
},
wopen(file){
wopen(file) {
window.open(file.url);
}
}
}
</script>
<style scoped>
.second-item{
.second-item {}
.document .NoticeStateNimg {
width: 30px;
height: 30px;
margin-right: 5px;
}
.document .NoticeStateNimg{
width: 30px;height: 30px;margin-right: 5px;
}
.document .q-pr-lg{
.document .q-pr-lg {
padding-right: 0;
}
</style>
<template>
<div class="achievements page-body">
<q-tabs style="margin-bottom:20px;" v-model="msg.Q_IsComfirm" @input="tabChange()" narrow-indicator dense align="left"
class="text-primary">
<q-tabs style="margin-bottom:20px;" v-model="msg.Q_IsComfirm" @input="tabChange()" narrow-indicator dense
align="left" class="text-primary">
<q-tab :ripple="false" name="1" label="已发放绩效" />
<q-tab :ripple="false" name="2" label="可发放绩效" />
</q-tabs>
......@@ -12,12 +12,12 @@
v-model="msg.School_Id" :options="schoolList" emit-value map-options label="所属校区" />
</div>
<div class="col-3">
<q-input @input="resetSearch" clearable standout="bg-primary text-white" v-model="msg.ClassName"
label="班级名称" maxlength="20" />
<q-input @input="resetSearch" clearable standout="bg-primary text-white" v-model="msg.ClassName" label="班级名称"
maxlength="20" @clear="resetSearch" />
</div>
<div class="col-3">
<q-input @input="resetSearch" clearable standout="bg-primary text-white" v-model="msg.TeacherName"
label="教师名称" maxlength="20" />
label="教师名称" maxlength="20" @clear="resetSearch" />
</div>
<div class="col-3" v-if="msg.Q_IsComfirm==1">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="Id" option-label="Name"
......@@ -47,8 +47,7 @@
</div>
</div>
</div>
<div class="productQueryList" v-loading='loading'>
<div class="productQueryList" v-loading='loading'>
<ul v-if="data.length!=0">
<li v-for="(item,index) in data" :key="index">
<div class="dline">
......@@ -60,9 +59,9 @@
<div class="List-title">{{item.TeacherName}}</div>
<div class="row d-div"><span class="d2-n">原有课时费</span>{{item.BaseHourFee}}元</div>
<div class="row d-div" style="color:#F28C1D;"><span class="d2-n">课时费奖励</span>{{item.AddHourFee}}元</div>
<div class="row d-div"><span class="d2-n">带班人数</span>{{item.BaseStuNum}} <span style="color:#F28C1D;" v-if="item.AddStuNum>0">{{'+'+item.AddStuNum}}</span> </div>
<div class="row d-div"><span class="d2-n">带班人数</span>{{item.BaseStuNum}} <span style="color:#F28C1D;"
v-if="item.AddStuNum>0">{{'+'+item.AddStuNum}}</span> </div>
</div>
</div>
<div class="d2">
<div class="List-title">招生信息</div>
......@@ -79,16 +78,20 @@
<div class="d4">
<div class="List-title">绩效奖励</div>
<div class="row d-div" style="align-items: flex-end;color: #F72E52;line-height: 14px">
<span style="font-size: 30px;line-height: 30px;font-weight: bold">{{item.Money.toFixed(2).split('.')[0]}}.</span> {{item.Money.toFixed(2).split('.')[1]}}
<span
style="font-size: 30px;line-height: 30px;font-weight: bold">{{item.Money.toFixed(2).split('.')[0]}}.</span>
{{item.Money.toFixed(2).split('.')[1]}}
</div>
<div class="row d-div"><span class="d2-n" style="width: 60px">明细</span> <span style="color:#2961FE;text-decoration:underline;cursor: pointer">
<div class="row d-div"><span class="d2-n" style="width: 60px">明细</span> <span
style="color:#2961FE;text-decoration:underline;cursor: pointer">
{{item.UnitPrice}}元
<q-popup-proxy>
<q-banner>
<div style="margin-top:20px;" class="achievements-proxy">
<table class="socialTable">
<tr>
<td style="width:100px;" v-if="item.JJList&&item.JJList.length>0" :rowspan="item.JJList.length+2">平均上课率</td>
<td style="width:100px;" v-if="item.JJList&&item.JJList.length>0"
:rowspan="item.JJList.length+2">平均上课率</td>
<td :colspan="item.JJFullRate.length+2">满班率</td>
</tr>
<tr>
......@@ -128,8 +131,8 @@
</div>
<div class="d5" v-if="msg.Q_IsComfirm==2">
<div class="List-title">课时奖励</div>
<div class="row d-div"><span class="d2-n" style="width: 110px;"
>预计课时费调涨</span> <span style="cursor: pointer;text-decoration:underline;">{{item.AddHourFee}}元</span>
<div class="row d-div"><span class="d2-n" style="width: 110px;">预计课时费调涨</span> <span
style="cursor: pointer;text-decoration:underline;">{{item.AddHourFee}}元</span>
<q-popup-proxy>
<q-banner>
<div style="margin-top:20px;" class="achievements-proxy">
......@@ -140,12 +143,13 @@
</th>
</tr>
<tr>
<td style="width:100px;" v-if="item.KSList&&item.KSList.length>0" :rowspan="(item.KSList.length*2)+3">平均上课率</td>
<td style="width:100px;" v-if="item.KSList&&item.KSList.length>0"
:rowspan="(item.KSList.length*2)+3">平均上课率</td>
<td :colspan="item.KSFullRate.length+3">满班率</td>
</tr>
<tr>
<td colspan="2"></td>
<td v-for="(x,j) in item.KSFullRate" >
<td v-for="(x,j) in item.KSFullRate">
<div class="Classdel_Div">{{x.StartValue}}%-{{x.EndValue}}%</div>
</td>
</tr>
......@@ -161,16 +165,13 @@
<td style="width:150px;">奖励课时费</td>
<td v-for="(subItem,subIndex) in x.FullClassList" style="width:100px;">
{{subItem.ClassMoney}}
</td>
</tr>
<tr>
<td>增加带班人数</td>
<td v-for="(subItem,subIndex) in x.FullClassList" style="width:100px;">
{{subItem.PeopelNum}}
</td>
</tr>
</template>
</table>
......@@ -179,45 +180,57 @@
</q-popup-proxy>
</div>
<div class="row d-div"><span class="d2-n" style="width: 110px">预计带班人数调涨</span>{{item.AddStuNum}}人</div>
</div>
<div class="d7">
<div class="row" style="align-items: center;color: #3FC4FF;cursor: pointer" v-if="item.PerfState==2 && item.FinanceId==0" @click="systemShan(item)">
<img src="../../assets/images/course/zhidan.png" alt="" style="width: 16px;height: 12px;margin-right: 5px;">
<div class="row" style="align-items: center;color: #3FC4FF;cursor: pointer"
v-if="item.PerfState==2 && item.FinanceId==0" @click="systemShan(item)">
<img src="../../assets/images/course/zhidan.png" alt=""
style="width: 16px;height: 12px;margin-right: 5px;">
生成单据
</div>
<div class="row" style="align-items: center;color: #2961FE;cursor: pointer" v-if="item.PerfState==2">
<img src="../../assets/images/course/xiaoxi.png" alt="" style="width: 16px;height: 12px;margin-right: 5px;">
<img src="../../assets/images/course/xiaoxi.png" alt=""
style="width: 16px;height: 12px;margin-right: 5px;">
账单信息
</div>
<div class="row" style="align-items: center;color: #02C499;cursor: pointer" @click="IsShowRemarkDialog=true,RemarkMsg.PerfId=item.Id">
<img src="../../assets/images/course/addreamke.png" alt="" style="width: 16px;height: 12px;margin-right: 5px;">
<div class="row" style="align-items: center;color: #02C499;cursor: pointer"
@click="IsShowRemarkDialog=true,RemarkMsg.PerfId=item.Id">
<img src="../../assets/images/course/addreamke.png" alt=""
style="width: 16px;height: 12px;margin-right: 5px;">
添加备注
</div>
<div class="row" style="align-items: center;color: #8175FB;cursor: pointer" @click="gostudent(item,1)" v-if="item.PerfState==1">
<img src="../../assets/images/course/queren.png" alt="" style="width: 16px;height: 12px;margin-right: 5px;">
<div class="row" style="align-items: center;color: #8175FB;cursor: pointer" @click="gostudent(item,1)"
v-if="item.PerfState==1">
<img src="../../assets/images/course/queren.png" alt=""
style="width: 16px;height: 12px;margin-right: 5px;">
确认订单
</div>
<div class="row" style="align-items: center;color: #F72E52;cursor: pointer" @click="gostudent(item,2)" v-if="item.PerfState==1">
<img src="../../assets/images/course/nofang.png" alt="" style="width: 16px;height: 12px;margin-right: 5px;">
<div class="row" style="align-items: center;color: #F72E52;cursor: pointer" @click="gostudent(item,2)"
v-if="item.PerfState==1">
<img src="../../assets/images/course/nofang.png" alt=""
style="width: 16px;height: 12px;margin-right: 5px;">
不发放绩效
</div>
<div class="row" style="align-items: center;color: #02B4C4;cursor: pointer" @click="gostudent(item,3)" v-if="item.PerfState==3">
<img src="../../assets/images/course/huifu.png" alt="" style="width: 16px;height: 12px;margin-right: 5px;">
<div class="row" style="align-items: center;color: #02B4C4;cursor: pointer" @click="gostudent(item,3)"
v-if="item.PerfState==3">
<img src="../../assets/images/course/huifu.png" alt=""
style="width: 16px;height: 12px;margin-right: 5px;">
恢复绩效
</div>
<div class="row" style="align-items: center;color: #F28C1D;cursor: pointer" @click="gostudent(item,4)" v-if="item.PerfState==2 && item.FinanceId==0">
<img src="../../assets/images/course/chehui.png" alt="" style="width: 16px;height: 12px;margin-right: 5px;">
<div class="row" style="align-items: center;color: #F28C1D;cursor: pointer" @click="gostudent(item,4)"
v-if="item.PerfState==2 && item.FinanceId==0">
<img src="../../assets/images/course/chehui.png" alt=""
style="width: 16px;height: 12px;margin-right: 5px;">
撤销奖励
</div>
</div>
</div>
<div class="d6 row">
<span style="color:#2D2D2D;">教师备注:</span>
<div class="row wrap Remark-l" v-if="item.RemarkList.length>0">
{{item.RemarkList[0].Content}}
<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px;position: absolute;right: 0;top:10px" >
<span class="iconfont icon-xiangxia"
style="color: #2961FE;font-size: 10px;position: absolute;right: 0;top:10px">
<q-popup-proxy>
<q-banner>
<div style="width: 700px;">
......@@ -235,24 +248,18 @@
<div v-else class="row wrap Remark-l">
暂无
</div>
</div>
</li>
<li style="border: none;display: flex;justify-content: flex-end;background: white;padding: 5px 20px">
<q-pagination
v-model="msg.PageIndex"
:max="pageCount"
@input="changePage"
class="full-width justify-end" color="primary" :input="true"
>
<q-pagination v-model="msg.PageIndex" :max="pageCount" @input="changePage" class="full-width justify-end"
color="primary" :input="true">
</q-pagination>
</li>
</ul>
<div v-else style="width: 100%;color: #999999;text-align: center;font-size: 20px">暂无数据</div>
</div>
<!--添加备注-->
<q-dialog v-model="IsShowRemarkDialog" content-class="bg-grey-1" persistent transition-show="scale"
</div>
<!--添加备注-->
<q-dialog v-model="IsShowRemarkDialog" content-class="bg-grey-1" persistent transition-show="scale"
transition-hide="scale">
<q-card style="width: 400px;max-width:500px;">
<q-card-section>
......@@ -260,8 +267,8 @@
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="row wrap">
<q-input filled stack-label maxlength="500" :dense="false" v-model="RemarkMsg.Remark" class="col-12" type="textarea"
label="备注" />
<q-input filled stack-label maxlength="500" :dense="false" v-model="RemarkMsg.Remark" class="col-12"
type="textarea" label="备注" />
</div>
</q-card-section>
<q-separator />
......@@ -271,10 +278,9 @@
@click="saveRemark" />
</q-card-actions>
</q-card>
</q-dialog>
<!-- 一键制单-->
<q-dialog v-model="ISsystem" persistent
>
</q-dialog>
<!-- 一键制单-->
<q-dialog v-model="ISsystem" persistent>
<q-card style="width: 400px;max-width:500px;">
<q-card-section>
<div class="text-h6">一键制单</div>
......@@ -291,13 +297,13 @@
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="ISsystem=false,Resetsystem()" v-if="!Floading"/>
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important"
@click="ISsystem=false,Resetsystem()" v-if="!Floading" />
<q-btn label="立即制单" color="accent" class="q-px-md" style="font-weight:400 !important" :loading="Floading"
@click="savesystem()" />
</q-card-actions>
</q-card>
</q-dialog>
</q-dialog>
</div>
</template>
......@@ -306,54 +312,75 @@
getSchoolDropdown,
} from '../../api/school/index'
import {
getBonusStateEnumList,//教师奖励状态 枚举
getBonusStateEnumList, //教师奖励状态 枚举
getTeachingPerfPageList,
setTeachingPerfRemark,
setTeachingPerfState,
setTeachingPerfFinance
} from '../../api/course/class'
export default {
meta: {
title: "教师业绩奖励"
},
name: "achievements",
data(){
return{
msg:{
PageIndex:1,
PageSize:8,
School_Id:0,
ClassId:0,
ClassName:'',//班级名称
TeacherId:0,
TeacherName:'',
Q_IsCreateFinance:0,//是否制单 1是 2否
Q_IsComfirm:'1',//是否已确认 1是 2否
PerfState:0,//状态 枚举
StartTime:'',
EndTime:'',
OPStartTime:'',
OPEndTime:'',
data() {
return {
msg: {
PageIndex: 1,
PageSize: 8,
School_Id: 0,
ClassId: 0,
ClassName: '', //班级名称
TeacherId: 0,
TeacherName: '',
Q_IsCreateFinance: 0, //是否制单 1是 2否
Q_IsComfirm: '1', //是否已确认 1是 2否
PerfState: 0, //状态 枚举
StartTime: '',
EndTime: '',
OPStartTime: '',
OPEndTime: '',
},
schoolList: [],
StateList:[{Id: 0, Name: "不限"},{Id: 1, Name: "已制单"},{Id: 2, Name: "未制单"},],
StateList2:[{Id: 0, Name: "不限"},{Id: 1, Name: "待处理"},{Id: 3, Name: "不发放绩效"},],
dateList:[],
dateList2:[],
data:[],
StateList: [{
Id: 0,
Name: "不限"
}, {
Id: 1,
Name: "已制单"
}, {
Id: 2,
Name: "未制单"
}, ],
StateList2: [{
Id: 0,
Name: "不限"
}, {
Id: 1,
Name: "待处理"
}, {
Id: 3,
Name: "不发放绩效"
}, ],
dateList: [],
dateList2: [],
data: [],
loading: false,
IsShowRemarkDialog:false,
pageCount:0,
RemarkMsg:{
Remark:'',
PerfId:'',
IsShowRemarkDialog: false,
pageCount: 0,
RemarkMsg: {
Remark: '',
PerfId: '',
},
Dloading:false,
ISsystem:false,
Floading:false,
FinanceMsg:{
PerfId:0,
IsPublic:'0',
CurrencyId:'',
Dloading: false,
ISsystem: false,
Floading: false,
FinanceMsg: {
PerfId: 0,
IsPublic: '0',
CurrencyId: '',
},
coinGetList:[],//币种数组
coinGetList: [], //币种数组
}
},
created() {
......@@ -361,7 +388,7 @@
this.getSchool()
this.financeinfo_post_GetList()
},
methods:{
methods: {
financeinfo_post_GetList() { // 获取币种
this.apipost('financeinfo_post_GetList', {
Name: '',
......@@ -377,7 +404,7 @@
this.msg.PageIndex = 1
this.getList()
},
getList(){
getList() {
if (this.dateList && this.dateList.length > 0) {
this.msg.StartTime = this.dateList[0];
this.msg.EndTime = this.dateList[1];
......@@ -412,20 +439,19 @@
})
})
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getList()
},
closeRemarkForm(){
closeRemarkForm() {
this.IsShowRemarkDialog = false
},
tabChange(){//切换tab
tabChange() { //切换tab
this.resetSearch()
},
saveRemark(){
if(this.RemarkMsg.Remark==''){
saveRemark() {
if (this.RemarkMsg.Remark == '') {
this.$q.notify({
type: 'warning',
position: 'top',
......@@ -434,9 +460,9 @@
})
return
}
this.Dloading=true
this.Dloading = true
setTeachingPerfRemark(this.RemarkMsg).then(res => {
this.Dloading=false
this.Dloading = false
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
......@@ -446,23 +472,23 @@
position: 'top'
})
this.getList()
this.IsShowRemarkDialog=false
this.IsShowRemarkDialog = false
}
})
},
systemShan(item){//一键制单
systemShan(item) { //一键制单
this.FinanceMsg.PerfId = item.Id
this.ISsystem =true;
this.ISsystem = true;
},
Resetsystem(){
this.FinanceMsg={
PerfId:0,
IsPublic:'0',
CurrencyId:'',
Resetsystem() {
this.FinanceMsg = {
PerfId: 0,
IsPublic: '0',
CurrencyId: '',
}
},
savesystem(){
if(this.FinanceMsg.CurrencyId==''){
savesystem() {
if (this.FinanceMsg.CurrencyId == '') {
this.$q.notify({
type: 'warning',
position: 'top',
......@@ -485,27 +511,23 @@
that.getList()
that.Resetsystem()
that.Floading = false
that.ISsystem=false;
that.ISsystem = false;
that.$forceUpdate()
}
}).catch(() => {
this.Floading = false
})
},
gostudent(item,type){//确认
gostudent(item, type) { //确认
let that = this
let text = '';
if(type==1){
if (type == 1) {
text = '确认绩效'
}else if(type==2){
} else if (type == 2) {
text = '不发放绩效'
}else if(type==3){
} else if (type == 3) {
text = '恢复绩效'
}else if(type==4){
} else if (type == 4) {
text = '撤销绩效'
}
this.$q.dialog({
......@@ -519,7 +541,7 @@
}).onOk(() => {
setTeachingPerfState({
PerfId: item.Id,
Type:type
Type: type
}).then(res => {
if (res.Code == 1) {
that.$q.notify({
......@@ -530,11 +552,9 @@
position: 'top'
})
that.getList()
}
})
}).onCancel(() => {
});
},
}
......@@ -542,24 +562,116 @@
</script>
<style>
.achievements ul{padding: 0px}
.achievements ul li{background: rgba(221, 222, 224, 0.2);border-radius: 4px;margin-top:15px;list-style-type:none}
.achievements li .List-title{font-size: 16px;color: #111111;font-weight: bold;margin-bottom: 10px}
.achievements li .d-div{margin-top: 5px;align-items: center;font-size: 14px}
.achievements li .dline{display: table;width: 100%;display: flex;flex-direction: row}
.achievements li .d1{flex: 1;width: 1px;padding:20px 13px 10px;}
.achievements li .d2,.achievements li .d3,.achievements li .d4,.achievements li .d5{width: 16.5%;padding:20px 13px 10px;}
.achievements li .d7{width: 11%;padding: 20px 13px 10px;}
.achievements li .d7 div{margin-bottom: 5px}
.achievements li .d1 .di-title{font-size: 16px;color: #111111;}
.achievements li .d1 .di-c{font-size: 14px;display: flex;align-items: center;line-height: 28px;color: #111111}
.achievements li .d6{padding: 20px;width: 100%;height: inherit;position: relative;border-top: 1px solid #DDDEE0}
.achievements li .d2-n{font-size: 12px;color: #999999;display: inline-block;width: 70px}
.achievements li .d3 .d3-s{color: #f5576c;font-weight: bold}
.achievements .d5-item{padding: 3px 10px ;background: #EEEEEF;color: #111111;align-items: center;justify-content: center;border-radius: 4px}
.achievements .price-popup{border-radius: 4px;}
.achievements .Remark-l{
flex: 1;padding: 10px 15px 10px 10px;background: #E1EAF5;border-radius: 4px;font-size: 14px;color: #F28C1D;position: relative}
.achievements ul {
padding: 0px
}
.achievements ul li {
background: rgba(221, 222, 224, 0.2);
border-radius: 4px;
margin-top: 15px;
list-style-type: none
}
.achievements li .List-title {
font-size: 16px;
color: #111111;
font-weight: bold;
margin-bottom: 10px
}
.achievements li .d-div {
margin-top: 5px;
align-items: center;
font-size: 14px
}
.achievements li .dline {
display: table;
width: 100%;
display: flex;
flex-direction: row
}
.achievements li .d1 {
flex: 1;
width: 1px;
padding: 20px 13px 10px;
}
.achievements li .d2,
.achievements li .d3,
.achievements li .d4,
.achievements li .d5 {
width: 16.5%;
padding: 20px 13px 10px;
}
.achievements li .d7 {
width: 11%;
padding: 20px 13px 10px;
}
.achievements li .d7 div {
margin-bottom: 5px
}
.achievements li .d1 .di-title {
font-size: 16px;
color: #111111;
}
.achievements li .d1 .di-c {
font-size: 14px;
display: flex;
align-items: center;
line-height: 28px;
color: #111111
}
.achievements li .d6 {
padding: 20px;
width: 100%;
height: inherit;
position: relative;
border-top: 1px solid #DDDEE0
}
.achievements li .d2-n {
font-size: 12px;
color: #999999;
display: inline-block;
width: 70px
}
.achievements li .d3 .d3-s {
color: #f5576c;
font-weight: bold
}
.achievements .d5-item {
padding: 3px 10px;
background: #EEEEEF;
color: #111111;
align-items: center;
justify-content: center;
border-radius: 4px
}
.achievements .price-popup {
border-radius: 4px;
}
.achievements .Remark-l {
flex: 1;
padding: 10px 15px 10px 10px;
background: #E1EAF5;
border-radius: 4px;
font-size: 14px;
color: #F28C1D;
position: relative
}
.achievements-proxy tr th {
background: #fff;
height: 40px;
......@@ -578,6 +690,7 @@
font-size: 12px;
border: 1px solid #E5E5E5;
}
.Sysuser_Date .el-range-editor .el-range-input {
background-color: transparent;
}
......
......@@ -18,8 +18,8 @@
基础课时费:
</div>
<div class="col-3">
<q-input filled stack-label maxlength="8" :dense="false" v-model="msg.BasicHourFee" ref="BasicHourFee" class="q-pb-lg"
@keyup.native="checkPrice(msg,'BasicHourFee')" :rules="[val => !!val || '请填写基础课时费']" />
<q-input filled stack-label maxlength="8" :dense="false" v-model="msg.BasicHourFee" ref="BasicHourFee"
class="q-pb-lg" @keyup.native="checkPrice(msg,'BasicHourFee')" :rules="[val => !!val || '请填写基础课时费']" />
</div>
</div>
<div class="col row wrap">
......@@ -27,8 +27,8 @@
基础带班人数:
</div>
<div class="col-3">
<q-input filled stack-label maxlength="6" :dense="false" v-model="msg.BasicClassNum" ref="BasicClassNum" class="q-pb-lg"
@keyup.native="checkInteger(msg,'BasicClassNum')" :rules="[val => !!val || '请填写基础带班人数']" />
<q-input filled stack-label maxlength="6" :dense="false" v-model="msg.BasicClassNum" ref="BasicClassNum"
class="q-pb-lg" @keyup.native="checkInteger(msg,'BasicClassNum')" :rules="[val => !!val || '请填写基础带班人数']" />
</div>
</div>
<div class="col row wrap">
......@@ -36,8 +36,8 @@
课时分钟数:
</div>
<div class="col-3">
<q-input filled stack-label maxlength="6" :dense="false" v-model="msg.BasicMinutes" ref="BasicMinutes" class="q-pb-lg"
@keyup.native="checkInteger(msg,'BasicMinutes')" :rules="[val => !!val || '请填写课时分钟数']" />
<q-input filled stack-label maxlength="6" :dense="false" v-model="msg.BasicMinutes" ref="BasicMinutes"
class="q-pb-lg" @keyup.native="checkInteger(msg,'BasicMinutes')" :rules="[val => !!val || '请填写课时分钟数']" />
</div>
<div class="col-3" style="padding:18px 0 0 10px;color:gray">
每节课的分钟数,单位为分钟计算
......@@ -99,12 +99,14 @@
<q-card-section>
<div class="text-h6">{{commonTitle}}</div>
</q-card-section>
<q-input filled stack-label maxlength="20" :dense="false" v-model="addMsg.CTypeName" label="类型名称" ref="CTypeName"
class="q-pb-lg" :rules="[val => !!val || '请填写类型名称']" />
<q-input filled stack-label :dense="false" maxlength="6" style="margin:20px 0;" v-model="addMsg.AddHourFee" label="基础课时费"
ref="AddHourFee" class="q-pb-lg" @keyup.native="checkPrice(addMsg,'AddHourFee')" :rules="[val => !!val || '请填写基础课时费']" />
<q-input filled stack-label :dense="false" maxlength="8" v-model="addMsg.DefaultClassNum" label="默认班级人数" ref="DefaultClassNum"
class="q-pb-lg" @keyup.native="checkInteger(addMsg,'DefaultClassNum')" :rules="[val => !!val || '请填写默认班级人数']" />
<q-input filled stack-label maxlength="20" :dense="false" v-model="addMsg.CTypeName" label="类型名称"
ref="CTypeName" class="q-pb-lg" :rules="[val => !!val || '请填写类型名称']" />
<q-input filled stack-label :dense="false" maxlength="6" style="margin:20px 0;" v-model="addMsg.AddHourFee"
label="基础课时费" ref="AddHourFee" class="q-pb-lg" @keyup.native="checkPrice(addMsg,'AddHourFee')"
:rules="[val => !!val || '请填写基础课时费']" />
<q-input filled stack-label :dense="false" maxlength="8" v-model="addMsg.DefaultClassNum" label="默认班级人数"
ref="DefaultClassNum" class="q-pb-lg" @keyup.native="checkInteger(addMsg,'DefaultClassNum')"
:rules="[val => !!val || '请填写默认班级人数']" />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="persistent=false" />
<q-btn label="确认" color="accent q-px-md" style="font-weight:400 !important" @click="saveClassType()" />
......@@ -123,6 +125,9 @@
} from '../../api/system/index';
export default {
meta: {
title: "基础设置"
},
props: {},
components: {},
data() {
......
......@@ -13,7 +13,8 @@
<div class="col-3 Sysuser_Date">
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="msg.Month" @change="resetSearch" type="month" clearable @clear="resetSearch"></el-date-picker>       
<el-date-picker v-model="msg.Month" @change="resetSearch" type="month" clearable @clear="resetSearch">
</el-date-picker>       
</template>
</q-field>
</div>
......@@ -73,7 +74,6 @@
</div>
</q-td>
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<q-btn flat size="xs" icon="iconfont icon-xiangqing-" style="font-weight:400;color: #3FC4FF" class="q-mr-xs"
......@@ -96,12 +96,6 @@
<q-item-label>制单</q-item-label>
</q-item-section>
</q-item>
<!-- <q-item clickable v-close-popup v-if="props.row.State==1||props.row.State==2">-->
<!-- <q-item-section @click="goexport(props.row)">-->
<!-- <q-item-label>导出</q-item-label>-->
<!-- </q-item-section>-->
<!-- </q-item>-->
</q-list>
</q-btn-dropdown>
</q-td>
......@@ -161,7 +155,6 @@
</q-field>
</div>
</div>
<div class="row col" style="margin-top: 30px">
<q-btn class="q-mr-md" label="取消" @click="drawer=false" />
<q-btn color="accent" class="q-mr-md" label="保存" @click="saveOrderInfo()" :loading="Dloading" />
......@@ -183,6 +176,9 @@
getTeacherDropDownList,
} from '../../api/school/index';
export default {
meta: {
title: "教师课时奖励"
},
name: "classHourReward",
data() {
return {
......
......@@ -235,6 +235,9 @@
import classFee from '../../components/course/classFee'
export default {
meta: {
title: "社会班设置"
},
props: {},
components: {
classFee
......
......@@ -234,6 +234,9 @@
import studentFee from '../../components/course/studentFee'
export default {
meta: {
title: "学生班设置"
},
props: {},
components: {
studentFee
......@@ -242,9 +245,6 @@
return {
tabCheck: 'first', //默认选第一个
dense: false,
msg: {
},
FullClassRateList: [], //头部列数据
dataList: [], //列表数据
isShowAddMenu: false, //显示新增上课率弹出
......
......@@ -23,7 +23,8 @@
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="dateList" @change="resetSearch" value-format="yyyy-MM-dd" type="daterange" style="border:none;"
  range-separator="至"  start-placeholder="开学日期"  end-placeholder="结束日期" clearable @clear="resetSearch">
  range-separator="至"  start-placeholder="开学日期"  end-placeholder="结束日期" clearable
@clear="resetSearch">
</el-date-picker>       
</template>
</q-field>
......@@ -233,6 +234,9 @@
queryCourseDropdownList,
} from '../../api/course/index'
export default {
meta: {
title: "日语培训"
},
components: {},
data() {
return {
......@@ -521,11 +525,11 @@
SaleRemark: '', //备注
}
}
}).catch(() => {
})
}).catch(() => {})
}
}
}
</script>
<style>
li {
......
......@@ -122,6 +122,9 @@
import classinfoForm from '../../components/course/classinfo-form';
import orderlist from '../../components/sale/orderlist'
export default {
meta: {
title: "我的订单"
},
components: {
myOrderForm,
classinfoForm,
......
......@@ -199,7 +199,7 @@
import selectTree from '../../components/common/select-tree'
export default {
meta: {
title: "后台用户管理"
title: "员工管理"
},
components: {
managerForm,
......
......@@ -135,7 +135,7 @@
import teacherShenhe from '../../components/school/teacher/teacher-shenhe'
export default {
meta: {
title: "师管理"
title: "师管理"
},
components: {
teacherForm,
......
......@@ -239,6 +239,9 @@
saveBackClassFlow
} from '../../api/system/index'
export default {
meta: {
title: "流程设置"
},
components: {
processForm
},
......
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