Commit 21c2f02b authored by youjie's avatar youjie
parents 28c3e396 b7814958
......@@ -3,44 +3,55 @@
<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.BName' :value='item.Id' :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.name' :value='item.empId' :key='item.empId'></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.name' :value='item.empId' :key='item.empId'></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.name' :value='item.empId' :key='item.empId'></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,8 +73,8 @@
<th>{{$t('admin.admin_status')}}</th>
<th width="150">{{$t('system.table_operation')}}</th>
</tr>
<tr v-for='item in list' v-loading='loading'>
<tbody v-loading='loading'>
<tr v-for='item in list'>
<td>{{item.BName}}</td>
<td>{{item.EmName}}</td>
<td>{{item.TemplateName}}</td>
......@@ -73,21 +84,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>
</tbody>
</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,11 +104,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'">
......@@ -109,43 +117,49 @@
</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/img/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/img/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/img/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/img/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>
......@@ -155,37 +169,41 @@
<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">
<!--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/img/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" />
......@@ -197,8 +215,6 @@
<button class="hollowFixedBtn" @click="outerVisible=false">关闭</button>
</div>
</el-dialog>
</div>
</template>
......@@ -206,124 +222,132 @@
export default {
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/img/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){
this.apipost('app_user_workflow_GetAuditInfo',{WorkFlowId:id,TemplateType:type},res=>{
if(res.data.resultCode == 1) {
this.outerVisible=true;
this.dialogTitle='审批详情'
this.detailList=res.data.data
getDetail(id, type) {
this.apipost('app_user_workflow_GetAuditInfo', {
WorkFlowId: id,
TemplateType: type
}, res => {
if (res.data.resultCode == 1) {
this.outerVisible = true;
this.dialogTitle = '审批详情'
this.detailList = res.data.data
}
},err=>{})
}, err => {})
},
getAppAuditStatus(){
this.apipost('app_user_workflow_get_myinitiate_auditstatus',{},res=>{
if(res.data.resultCode == 1) {
res.data.data.forEach(item=>{
for(let key in item){
if (item.hasOwnProperty(key)){
this.appAuditStatusList.push({label:key,value:item[key]})
getAppAuditStatus() {
this.apipost('app_user_workflow_get_myinitiate_auditstatus', {}, res => {
if (res.data.resultCode == 1) {
res.data.data.forEach(item => {
for (let key in item) {
if (item.hasOwnProperty(key)) {
this.appAuditStatusList.push({
label: key,
value: item[key]
})
}
}
})
}
},err=>{})
}, err => {})
},
getApplyType(){ //模板类型
this.apipost('app_user_workflow_get_templatetype',{},res=>{
if(res.data.resultCode == 1) {
res.data.data.forEach(item=>{
for(let key in item){
if (item.hasOwnProperty(key)){
this.ApplyTypeList.push({label:key,value:item[key]})
getApplyType() { //模板类型
this.apipost('app_user_workflow_get_templatetype', {}, res => {
if (res.data.resultCode == 1) {
res.data.data.forEach(item => {
for (let key in item) {
if (item.hasOwnProperty(key)) {
this.ApplyTypeList.push({
label: key,
value: item[key]
})
}
}
})
}
},err=>{})
}, err => {})
},
getCompany(){
this.apipost('admin_get_BranchGetList',this.getCompanyMsg,res=>{
if(res.data.resultCode==1){
this.companyList=res.data.data;
}else{}
},err=>{})
getCompany() {
this.apipost('admin_get_BranchGetList', this.getCompanyMsg, res => {
if (res.data.resultCode == 1) {
this.companyList = res.data.data;
} else {}
}, err => {})
},
getUser(){
this.msg.CreateBy='0'
this.msg.ToAuditId='0'
this.msg.AuditedId='0'
this.getUserMsg.RB_Branch_id=this.msg.RB_BranchId;
this.apipost('app_get_company_employee',this.getUserMsg,res=>{
if(res.data.resultCode==1){
this.userList=res.data.data;
}else{}
},err=>{})
getUser() {
this.msg.CreateBy = '0'
this.msg.ToAuditId = '0'
this.msg.AuditedId = '0'
this.getUserMsg.RB_Branch_id = this.msg.RB_BranchId;
this.apipost('app_get_company_employee', this.getUserMsg, res => {
if (res.data.resultCode == 1) {
this.userList = res.data.data;
} else {}
}, err => {})
},
getList(){
this.loading=true;
this.apipost('WorkFlow_get_GetOAPageList',this.msg,res=>{
if(res.data.resultCode==1){
this.list=res.data.data.pageData;
this.total=res.data.data.count;
this.loading=false
getList() {
this.loading = true;
this.apipost('WorkFlow_get_GetOAPageList', this.msg, res => {
if (res.data.resultCode == 1) {
this.list = res.data.data.pageData;
this.total = res.data.data.count;
this.loading = false
}else{}
},err=>{})
} else {}
}, err => {})
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
......@@ -337,8 +361,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()
......@@ -347,26 +371,128 @@
}
}
</script>
<style>
.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>
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