Commit 0aa6144d authored by Mac's avatar Mac

1

parent 0aa19653
<style scoped>
@import "./css/cssReset.css";
.CostType .addCompany {width: 440px;}
/* 币种管理 */
.cm_content{padding: 0 0;overflow-x: auto;}
.cmc_item{float: left;width:205px;height: 123px;background:rgba(255,255,255,1);border-radius:4px;overflow: hidden;margin: 15px 15px 15px 0;border: 1px solid #ebebeb;position: relative;}
.cmci_top{background-color: #47BF8C;padding: 14px 20px 0 20px;font-size: 14px;color: #FFFFFF}
.cmci_top p._tit{border-bottom: 1px solid #3FB382;padding-bottom: 14px}
.fc_red{color: #E95252 !important}
.cmc_item:hover{box-shadow:0px 0px 20px rgba(191,191,191,1);transition: all linear 0.5s;}
._underline{text-decoration: underline;cursor: pointer;}
.CostType ._vMG_edit{display: none;position:absolute;bottom:0;font-family: 'PingFangSc-Fine';left: 0;border-top:3px solid #38425d;background-color:#fff;padding:10px;width: 100%;z-index: 999}
.CostType ._vMG_edit ._tit{padding-left: 10px;border-left: 3px solid #E95252; font-size: 16px;color: #000000}
.CostType ._vMG_edit ._tit span{color: #666666;font-size: 14px}
._edHeight{height:400px;}
.edHeight{display: block !important;min-height: 230px;}
._scrollbar::-webkit-scrollbar{width: 4px;height: 8px;}
._scrollbar::-webkit-scrollbar-thumb{border-radius: 4px;-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);background: #c9c9c9;}
._scrollbar::-webkit-scrollbar-track{-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);border-radius: 4px;background: #EDEDED;}
.CostType ._info_box ul{margin-top: 15px}
.CostType ._info_box ul li{float: left;}
._max_width{max-width:100%; overflow:hidden;text-overflow: ellipsis;white-space: nowrap;display: inline-block;vertical-align:top;}
._bumen{padding: 20px 0;text-align: left;height: 75px;}
._bumen p:nth-child(1){font-size: 14px;cursor: pointer;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
._bumen p.no_bumen{font-size: 12px; color: #ADE4CD}
._b_edit{position: absolute;right: 20px;top: 13px;z-index: 100;width: 32%;height: 35%;border-radius: 4px;text-align: right;opacity: 0;-webkit-transition: all linear 0.5s;transition: all linear 0.5s;}
._b_edit .el-button--danger{background-color: rgba(255,255,255,0.5);color: #FFFFFF;border: none}
._b_edit .el-button--primary{background:rgba(255,255,255,0.5);color: #FFFFFF;border: none}
._b_edit .el-button--danger:hover,._b_edit .el-button--primary:hover{background-color: #FFFFFF;color: #E95252}
._bumen:hover ._b_edit{opacity: 1;}
.multiple_input .el-input {height: auto !important;}
._cmci_img{width: 48px;height: 48px;position: absolute;right: 15px;top: 30px;}
.upload-demo {text-align: center;}
.CostType ._add_saveBtn{text-align: right;margin-bottom: 20px;}
.CostType .query-box{padding:20px 0 0 0}
.CostType .el-radio+.el-radio{margin-left: 15px;}
.CostType ._yuan{
width:12px;
height:12px;
background:rgba(233,82,82,1);
border-radius:50%;
display: inline-block;
}
.CostType ._yuan._yuan_red{
background:#47BF8C;
}
.CostType .po_content,.CostType .po_content_item{
border-collapse: collapse;
}
.CostType .po_content{
width: 100%;
}
.CostType .po_content tr:first-child{
font-size: 12px;
color: #666666;
}
.CostType .po_content tr th,.CostType .po_content tr td{
padding: 10px 20px;
text-align: left;
}
.CostType .po_content tr td{
color: #333333;
font-size: 14px;
border:1px solid #E6E6E6;
}
.CostType .po_content tr td .iconfont{
font-size: 14px;
padding: 4px;
}
.CostType .query-box .iconfont{
cursor: pointer;
background-color: #E95252;
color: white;
width: 30px;
height: 30px;
display: inline-block;
text-align: center;
line-height: 30px;
border-radius: 50%;
margin-left: 10px;
}
.po_content_item tr td:last-child{
border-right: 0px !important;
}
.po_content_item_str tr:first-child td,.po_content_item_two tr:first-child td{
border-top: 0px !important;
}
.po_content_item_str tr:last-child td,.po_content_item_two tr:last-child td{
border-bottom: 0px !important;
}
.po_content_item_str tr td:first-child,.po_content_item_two tr td:first-child{
border-left: 0px !important;
}
.cursorpointer_last:hover i{
display: inline-block;
margin-left: 10px;
}
.cursorpointer_last i{
color: red;
display: none;
}
.ct_Edit{
position: absolute;
right:10px;
top:5px;
color:#fff;
cursor: pointer;
z-index:999;
}
.ct_Edit:hover{
color:#E95252;
}
</style>
<template>
<div class="flexOne CostType">
<div class="query-box">
<el-form class="_info_box clearfix" label-width="110px">
<el-row v-if="transitionShow2">
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.fylxmingcheng')">
<el-input placeholder="" v-model="msg.Name" @keyup.enter.native="initTableInfo()"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.cjleixing')">
<el-select v-model="msg.Tier" @change="getCostTypeList(1)">
<el-option :label='$t("pub.unlimitedSel")' :value='0'></el-option>
<el-option :label='$t("fnc.yiji")' :value='1'></el-option>
<el-option :label='$t("fnc.erji")' :value='2'></el-option>
<el-option :label='$t("fnc.sanji")' :value='3'></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item :label="$t('fnc.shangjileixing')">
<el-select v-model="msg.ParentId">
<el-option v-for="(item,index) in CostTypeList2" :label='item.Name' :key="item.ID" :value='item.ID' ></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="4" :gutter="35">
<el-form-item label="适用部门">
<el-select filterable v-model='msg.DepartIDs' >
<el-option label='不限' value=''></el-option>
<el-option label='通用' value='0'></el-option>
<el-option v-for='item in departmentList'
:label='item.DepartmentName'
:value='item.DepartmentID'
:key='item.DepartmentID'>
</el-option>
</el-select>
</el-form-item>
</el-col> -->
</el-row>
</el-form>
<ul>
<li>
<button class="hollowFixedBtn" @click="resetPageIndex(),initTableInfo()">{{$t('pub.searchBtn')}}</button>
<!-- <button type="button" class="normalBtn" @click="outerVisible=true">导入</button>
<button type="button" class="normalBtn" @click="downMuban()">下载导入模板</button> -->
<button class="normalBtn" @click="addShow=true,text=$t('pub.addBtn'),addFun(),resetInfo()" >{{$t('pub.addBtn')}}</button>
<el-tooltip class="item" effect="dark" :content="$t('fnc.qhpaiban')" placement="top-end">
<i v-if="transitionShow" class="iconfont icon-biaoge" @click="switchMethod(1)"></i>
<i v-if="transitionShow2" class="iconfont icon-icon-ssan" @click="switchMethod(2)"></i>
</el-tooltip>
<!-- <button type="button" class="normalBtn" @click="method5()">导出</button> -->
</li>
</ul>
</div>
<div class="cm_content _scrollbar" :style="{height:transitionShow2?contenHeight+'px':''}" :class="addShow==true?'_edHeight':''">
<div class="clearfix" v-if="transitionShow2" >
<div class="cmc_item" v-for="(item,index) in tableInfo" v-loading='loading'>
<div class="cmci_top">
<p class="_tit">
<span class="_max_width">{{item.Name}}</span>
<img class="_cmci_img" v-if="item.Type===1" src="./image/f_shou.png" alt="">
<img class="_cmci_img" v-if="item.Type===2" src="./image/f_zhi.png" alt="">
<img class="_cmci_img" v-if="item.Type===3" src="./image/f_shouzhi.png" alt="">
</p>
<div class="_bumen" >
<p>{{$t('fnc.tanzhang')}}{{item.IsShareAccount===0?$t('fnc.feitanzhang'): $t('fnc.tanzhang')}}</p>
<p>{{$t('fnc.ysbaobiao')}}{{item.Is_Report===0? $t('fnc.bujinru') : $t('fnc.jinru')}}</p>
<p class="_b_edit">
<!-- <button type="button" class="el-button el-tooltip item el-button--danger is-circle" aria-describedby="el-tooltip-694" tabindex="0" @click="financeinfoRemove(item.ID,item.Name)"><i class="el-icon-delete"></i></button> -->
<button v-if="msg.EmployeeID==910" type="button" class="el-button el-tooltip item el-button--primary is-circle" aria-describedby="el-tooltip-5781" tabindex="0" @click="editCurency(item.ID),text='修改'"><i class="el-icon-edit"></i></button>
</p>
</div>
</div>
<div class="ct_Edit" @click="getEditInfo(item.ID)">
<i class="iconfont icon-xiugai"></i>
</div>
</div>
</div>
<table class="po_content singeRowTable" style="border:1px solid #E6E6E6;" cellspacing="0" cellpadding="0" v-if="transitionShow" >
<thead>
<tr>
<th width="200px">{{$t('fnc.yijimingcheng')}}</th>
<th width="150px">{{$t('fnc.erjimingcheng')}}</th>
<th width="150px">{{$t('fnc.sanjimingcheng')}}</th>
<th width="150px">{{$t('fnc.sygongsi')}}</th>
<th width="150px">{{$t('fnc.sybumen')}}</th>
<th width="150px">{{$t('fnc.sygangwei')}}</th>
<th width="150px">{{$t('fnc.syrenyuan')}}</th>
<th>{{$t('fnc.feiyongfangxiang')}}</th>
<th>{{$t('fnc.tanzhang')}}</th>
</tr>
</thead>
<tbody class="po_content_item">
<tr v-for="(item,index) in CostTypeTreeList" :key="index" v-loading="loading">
<td width="200px">
<span class="cursorpointer" v-if="msg.EmployeeID==910" @click="editCurency(item.ID),text=$t('pub.updateMsg')">{{item.Name}}</span>
<span class="cursorpointer" v-else>{{item.Name}}</span>
</td>
<template v-if="item.ChildList.length>0">
<td colspan="8" style="padding:0">
<table class="po_content_item po_content_item_two" style="width: 100%;" cellspacing="0" cellpadding="0">
<tbody>
<tr v-for="(son,sIndex) in item.ChildList">
<td style="" width="150px">
<span class="cursorpointer" v-if='msg.EmployeeID==910' @click="editCurency(son.ID),text=$t('pub.updateMsg')">{{son.Name}}</span>
<span class="cursorpointer" v-else>{{son.Name}}</span></td>
<template v-if="son.ChildList.length>0">
<td colspan="7" style="padding:0">
<table class="po_content_item po_content_item_str" style="width: 100%" cellspacing="0" cellpadding="0">
<tbody>
<tr v-for="(grSon,gsIndex) in son.ChildList">
<td class="cursorpointer_last" width="150px">
<span class="cursorpointer" v-if='msg.EmployeeID==910' @click="editCurency(grSon.ID),text=$t('pub.updateMsg')">{{grSon.Name}} <i @click.stop="financeinfoRemove(grSon.ID,grSon.Name)" class="el-icon-delete"></i></span>
<span class="cursorpointer" v-else>{{grSon.Name}}</span></td>
<td width="150px">{{grSon.BName}}</td>
<td width="150px">{{grSon.DeName}}</td>
<td width="150px">{{grSon.PName}}</td>
<td width="150px">{{grSon.RName}}</td>
<td style="">
<span v-if="grSon.Type===1">{{$t('restaurant.res_income')}}</span>
<span v-if="grSon.Type===2">{{$t('restaurant.res_outcome')}}</span>
<span v-if="grSon.Type===3">{{$t('fnc.shouzhi')}}</span>
</td>
<td style="">
<span class="_yuan" v-if="grSon.Type==1"></span>
<span class="_yuan _yuan_red" v-if="grSon.Type!=1"></span>
</td>
</tr>
</tbody>
</table>
</td>
</template>
<template v-else>
<td width="150px"></td>
<td width="150px">{{son.BName}}</td>
<td width="150px">{{son.DeName}}</td>
<td width="150px">{{son.PName}}</td>
<td width="150px">{{son.RName}}</td>
<td style="">
<span v-if="son.Type===1">{{$t('restaurant.res_income')}}</span>
<span v-if="son.Type===2">{{$t('restaurant.res_outcome')}}</span>
<span v-if="son.Type===3">{{$t('fnc.shouzhi')}}</span>
</td>
<td style="">
<span class="_yuan" v-if="son.Type==1"></span>
<span class="_yuan _yuan_red" v-if="son.Type!=1"></span>
</td>
</template>
</tr>
</tbody>
</table>
</td>
</template>
<template v-else>
<td width="150px"></td>
<td width="150px"></td>
<td width="150px">{{item.BName}}</td>
<td width="150px">{{item.DeName}}</td>
<td width="150px">{{item.PName}}</td>
<td width="150px">{{item.RName}}</td>
<td>
<span v-if="item.Type===1">{{$t('restaurant.res_income')}}</span>
<span v-if="item.Type===2">{{$t('restaurant.res_outcome')}}</span>
<span v-if="item.Type===3">{{$t('fnc.shouzhi')}}</span>
</td>
<td>
<span class="_yuan" v-if="item.Type==1"></span>
<span class="_yuan _yuan_red" v-if="item.Type!=1"></span>
</td>
</template>
<!-- <td>{{item.Name}}</td>
<td>{{'层级类型'}}</td>
<td>{{'上级类型'}}</td>
<td>{{'适用公司'}}</td>
<td>{{'适用部门'}}</td>
<td>{{'适用岗位'}}</td>
<td>{{'适用人员'}}</td>
<td>
<span v-if="item.Type===1">收入</span>
<span v-if="item.Type===2">支出</span>
<span v-if="item.Type===3">收支</span>
</td>
<td>
<span class="_yuan" v-if="item.Type==1"></span>
<span class="_yuan _yuan_red" v-if="item.Type!=1"></span>
</td>
<td>
<el-row>
<el-tooltip class="item" effect="dark" content="修改" placement="top-start">
<el-button type="primary" class="iconfont icon-bianji-smal" circle @click="editCurency(item.ID),text='修改'"></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top-start">
<el-button type="danger" class="iconfont icon-img_delete_small" circle @click="financeinfoRemove(item.ID,item.Name)"></el-button>
</el-tooltip>
</el-row>
</td> -->
</tr>
</tbody>
</table>
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</div>
<!-- <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>
</div> -->
</div>
<div class="_vMG_edit" :class="addShow==true?'edHeight':''">
<el-row>
<el-col :span="20">
<p class="_tit">{{text}}{{$t('fnc.feiyongleixing')}}</p>
</el-col>
<el-col :span="4" class="_add_saveBtn">
<button type="button" class="normalBtn" @click="submitForm('addMsg')">{{$t('pub.saveBtn')}}</button>
<button class="hollowFixedBtn" type="button" @click="cancelEdit(),resetForm('addMsg'),addShow=false">{{$t('pub.cancelBtn')}}</button>
</el-col>
</el-row>
<el-form class=" clearfix" :model="addMsg" ref="addMsg" :rules="rules" label-width="100px">
<el-row>
<el-col :span="4">
<el-form-item :label="$t('fnc.Name')" prop="Name">
<el-input v-model="addMsg.Name"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('fnc.cjleixing')" prop="Tier">
<el-select filterable v-model='addMsg.Tier' @change="getCostTypeList(2)">
<el-option :label="$t('fnc.yiji')" :value='1'></el-option>
<el-option :label="$t('fnc.erji')" :value='2'></el-option>
<el-option :label="$t('fnc.sanji')" :value='3'></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('fnc.shangjileixing') + ':'">
<el-select filterable v-model='addMsg.ParentId' >
<el-option v-for="(item,index) in CostTypeList" :label='item.Name' :key="item.ID" :value='item.ID' ></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('system.table_rank')+':'">
<el-input v-model="addMsg.Sort"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('fnc.sygongsi') + ':'">
<el-select filterable v-model='addMsg.BranchId' >
<!--<el-select filterable v-model='addMsg.BranchId' @change="getDepartmentList()">-->
<el-option :label="$t('active.cl_tongyong')" :value='-1'></el-option>
<el-option v-for='item in companyList'
:label='item.BName'
:value='item.Id'
:key='item.Id'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('fnc.sybumen')">
<!--<el-select filterable v-model='addMsg.DepartmentID' @change="getPostList()">-->
<el-select filterable v-model='addMsg.DepartmentID' >
<el-option :label="$t('active.cl_tongyong')" :value='-1'></el-option>
<el-option v-for='item in DepartmentList'
:label='item.DepartmentName'
:value='item.DepartmentID'
:key='item.DepartmentID'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('fnc.sygangwei') + ':'">
<el-select filterable v-model='addMsg.PostID' >
<!--<el-select filterable v-model='addMsg.PostID' @change="getEmployeeList()">-->
<el-option :label="$t('active.cl_tongyong')" :value='-1'></el-option>
<el-option v-for='item in PostList'
:label='item.PostName'
:value='item.PostId'
:key='item.PostId'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('fnc.syrenyuan') + ':'">
<el-select filterable multiple v-model='EmployeeIDList' @change="EmployeeIDRule">
<el-option :label="$t('active.cl_tongyong')" :value='-1'></el-option>
<el-option v-for='item in EmployeeList'
:disabled = 'item.disabled'
:label='item.EmName'
:value='item.EmployeeId'
:key='item.EmployeeId'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('fnc.feiyongfangxiang') + ':'">
<el-radio v-model="addMsg.Type" :label="1">{{$t('restaurant.res_income')}}</el-radio>
<el-radio v-model="addMsg.Type" :label="2">{{$t('restaurant.res_outcome')}}</el-radio>
<el-radio v-model="addMsg.Type" :label="3">{{$t('fnc.shouzhi')}}</el-radio>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('fnc.tanzhang') + ':'">
<el-radio v-model="addMsg.IsShareAccount" :label="1">{{$t('fnc.yes')}}</el-radio>
<el-radio v-model="addMsg.IsShareAccount" :label="0">{{$t('fnc.fou')}}</el-radio>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('fnc.ysbaobiao') + ':'">
<el-radio v-model="addMsg.Is_Report" :label="0">{{$t('fnc.bujinru')}}</el-radio>
<el-radio v-model="addMsg.Is_Report" :label="1">{{$t('fnc.jinru')}}</el-radio>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="机密费用:">
<el-radio v-model="addMsg.IsSecret" :label="1">{{$t('fnc.yes')}}</el-radio>
<el-radio v-model="addMsg.IsSecret" :label="0">{{$t('fnc.fou')}}</el-radio>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</div>
<div v-if="transitionShow2">
<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>
<el-dialog custom-class='w700' :title="$t('Airticket.Air_bulkImport')" :visible.sync="outerVisible" center>
<el-upload drag class="upload-demo" ref="upload" :action="getImportFileUrl()" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload">
<i class="el-icon-upload"></i>
<div class="el-upload__text">{{$t('tips.tuodongwenjian')}}<em>{{$t('tips.dianjishanhcuan')}}</em></div>
<div slot="tip" class="el-upload__tip">{{$t('fnc.znengExcel')}}</div>
</el-upload>
</el-dialog>
</div>
</template>
<script>
// import Treeselect from '@riophae/vue-treeselect'
// import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default {
// components: { Treeselect },
data() {
return {
value: null,
// define optionsoptions
normalizer(node) {
return {
id: node.DepartmentId,
label: node.DepartmentName,
children: node.ChildList,
}
},
msg:{
pageIndex:1,
pageSize:21,
DepartIDs:'',
Name:'',
Tier:0,
ParentId:'',
EmployeeID:-1,
},
addMsg:{
ID:0,
Name:'',
Type:1, // 1收 2支 3收支
Tier:1,
ParentId:'',
IsShareAccount:0,
Sort:'0',
BranchId:-1,
PostID:-1,
DepartmentID:-1,
EmployeeID: -1,
list:[],
Is_Report:0,
IsSecret:0,
},
EmployeeIDList:[],
text:'',
total:0,
currentPage: 1,
loading:true,
airlineList:'',
tableInfo:'',
addShow:false,
noData:false,
dialogTitle: '',
deleteID:'',
ProfitLossList:[],
departmentList:[],
DepartmentTreeList:[],
showBtnID:-1,
pickerOptions1:{
disabledDate(time) {
// return time.getTime()==time.getTime();
}
},
departmentMsg: {
RB_Group_Id: '0',
RB_Branch_Id:'-1',
Status:'0',
ParentId:'-1',
Tier:'0',
},
rules: {//表单必填验证
Name: [
{ required: true, message: this.$t('rule.qtxfymingcheng'), trigger: 'blur' }
],
Tier: [
{ required: true, message: this.$t('rule.qxzlxcengji'), trigger: 'change' }
]
},
outerVisible: false,
CostTypeList:[],
companyList:[],
companyMsg:{
RB_Group_Id:"0",
Status:0,
},
getDepartmentMsg:{
RB_Group_Id: '0',
RB_Branch_Id:'-1',
Status:'0',
ParentId:'-1',
Tier:'0',
},
DepartmentList:[],
getPostMsg:{
RB_Department_Id:'',
RB_Branch_Id:'',
PostName:'',
RB_Group_Id:''
},
PostList:[],
getEmployeeMsg:{
GroupId:'',
BranchId:'',
DepartmentId:'',
PostId:'',
IsLeave:0,
},
EmployeeList:[],
CostTypeList2:[],
CostTypeTreeList:[],
transitionShow:false,
transitionShow2:true,
contenWidth:0,
contenHeight:0,
tableSize:0,
blockSize:0,
}
},created(){
let allH,allW,cH,cW;
allH = document.documentElement.clientHeight;
allW = document.documentElement.clientWidth;
cW = allW-90;
cH = allH-260; //298 = 顶部导航 50 面包屑83 查询框75 table表头41 分页49
this.contenWidth = cW;
this.contenHeight = cH;
this.tableSize = parseInt(cH/45);
this.msg.pageSize = parseInt(this.contenWidth/220) * parseInt(this.contenHeight/153);
},
methods: {
EmployeeIDRule: function (val) {
if (val.length === 0) {
this.EmployeeList.forEach(y=>{
y.disabled = false;
});
return;
}
val.forEach(x=>{
if (x === -1) {
this.EmployeeList.forEach(y=>{
y.disabled = true;
this.EmployeeIDList = [-1];
})
}
})
},
getCostTypeTreeList(){ // 获取费用类型
this.apipost('Financial_post_GetTreeList',{Type:0},res=>{
if(res.data.resultCode==1){
this.CostTypeTreeList=res.data.data;
this.$forceUpdate();
}else{}
},err=>{})
},
switchMethod(t){
this.msg.pageIndex = 1;
if(t===1){
this.transitionShow = false;
this.transitionShow2 = true;
let cont = parseInt(this.contenWidth/220) * parseInt(this.contenHeight/153);
this.msg.pageSize = cont;
}else if(t===2){
this.transitionShow = true;
this.transitionShow2 = false;
// 宽 220 高 153
this.msg.pageSize = this.tableSize;
}
this.initTableInfo();
this.getCostTypeTreeList();
},
getEmployeeList(all){ //根据公司获、部门、岗位 获取员工
if(this.addMsg.PostID==-1 && !all){
this.addMsg.EmployeeID=-1;
return
}
this.addMsg.EmployeeID = '';
this.getEmployeeMsg.GroupId = all ? -1 : this.companyMsg.RB_Group_Id;
this.getEmployeeMsg.BranchId = all ? -1 : this.addMsg.BranchId;
this.getEmployeeMsg.DepartmentId = all ? -1 : this.addMsg.DepartmentID;
this.getEmployeeMsg.PostId = all ? -1 : this.addMsg.PostID;
this.apipost('admin_get_EmployeeGetList',this.getEmployeeMsg, res => {
this.EmployeeList = res.data.data;
}, err => {})
},
getPostList(all){ //根据公司获、部门 获取岗位
if(this.addMsg.DepartmentID==-1 && !all){
this.addMsg.PostID=-1;
this.addMsg.EmployeeID=-1;
return
}
if (!all) {
this.EmployeeList = [];
this.EmployeeIDList = [];
}
this.addMsg.PostID = '';
this.addMsg.EmployeeID = '';
this.getPostMsg.RB_Group_Id = all ? -1 : this.companyMsg.RB_Group_Id;
this.getPostMsg.RB_Branch_Id = all ? -1 : this.addMsg.BranchId;
this.getPostMsg.RB_Department_Id = all ? -1 : this.addMsg.DepartmentID;
this.apipost('admin_get_PostGetList',this.getPostMsg, res => {
this.PostList = res.data.data;
}, err => {})
},
getDepartmentList(all){ //根据公司获取 部门
if(this.addMsg.BranchId==-1 && !all){
this.addMsg.DepartmentID=-1;
this.addMsg.PostID=-1;
this.addMsg.EmployeeID=-1;
return
}
if (!all) {
this.EmployeeList = [];
this.PostList = [];
this.EmployeeIDList = [];
}
this.addMsg.PostID = '';
this.addMsg.DepartmentID = '';
this.addMsg.EmployeeID = '';
this.getDepartmentMsg.RB_Group_Id = all ? -1 : this.companyMsg.RB_Group_Id;
this.getDepartmentMsg.RB_Branch_Id = all ? -1 : this.addMsg.BranchId;
this.apipost('admin_get_DepartmentGetList',this.getDepartmentMsg, res => {
this.DepartmentList = res.data.data;
}, err => {})
},
getCompany(){ //公司
this.EmployeeList = [];
this.PostList = [];
this.DepartmentList = [];
this.apipost('admin_get_BranchGetList', this.companyMsg, res => {
this.companyList = res.data.data;
}, err => {})
},
getCostTypeList(t,x){
if(!x){
this.addMsg.ParentId = '';
}
let msg = {
Name:'',
Type:0,
DepartIDs:'',
Tier:t===1?this.msg.Tier-1:this.addMsg.Tier-1,
}
this.apipost('financeinfo_post_GetCostTypeList',msg,r=>{
if(r.data.resultCode==1){
if(t===1){
this.msg.ParentId ='';
this.CostTypeList2 = r.data.data;
}else{
this.CostTypeList = r.data.data;
}
}else{
}
},null)
},
getImportFileUrl() {
let url =this.domainManager().UploadFileUrl + "?cmd=dmc_post_LocalFileUpload&fileType=1&fileLimit=10&uid=2&Type=3"
return url;
},
beforeAvatarUpload(file) {
const excel = file.type === "application/vnd.ms-excel";
if (!excel) {
this.Error(this.$t('tips.shangchuanExcel'));
}
return excel;
},
handleAvatarSuccess(res, file) {
if (res.resultCode == 1) {
this.Success(res.message);
this.outerVisible = false;
this.initTableInfo();
this.$refs.upload.clearFiles()
}
},
downMuban(){
this.apipost('financeinfo_post_DownCostType',{},res=>{
if(res.data.resultCode==1){
const link = document.createElement('a');
let _loadUrl=this.domainManager().DomainUrl;
link.href = _loadUrl+res.data.data.FileUrl;
document.body.appendChild(link);
link.click();
}
},err=>{})
},
getDepartment() { //获取部门
this.apipost('admin_get_DepartmentGetList', this.departmentMsg, res => {
if(res.data.resultCode == 1) {
this.departmentList = res.data.data;
}
}, err => {})
},
getProfitLossList(id){// 获取禁用时间
this.apipost('FinanceInfo_post_GetProfitLossList',{CurrencyId:id}, res => {
if(res.data.resultCode == 1) {
this.ProfitLossList = res.data.data
// new Date(this.ProfitLossList[0].TermNum).getTime()
} else {
this.tips(res.data.message,'error');
}
}, err => {})
},
regNum(n,t){ // 判断数字 n 值 t 类型
let reg = /^\d+(\.\d{0,6})?$/
if(!n)return 0
if(t==2){
if(reg.test(n)){
return Number(n)
}
return 0;
}else if(t==1){
if(reg.test(n)){
return Number(n)
}
return 0
}
},
financeinfoRemove(id,text){ // 删除货币
this.$confirm(this.$t('tips.qrsc')+text+this.$t('fnc.feiyongleixing'), '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.apipost('financeinfo_post_RemoveCostType',{ID:id}, res => {
if(res.data.resultCode == 1) {
this.initTableInfo();
this.getCostTypeTreeList();
this.tips(res.data.message,'success');
} else {
this.tips(res.data.message,'error');
}
}, err => {})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消'
});
});
},
//导出费用类型明细报表
method5: function() {
this.GetLocalFile("financeinfo_post_OutToCostTypeExcel", this.msg,"费用类型明细报表.xls");
} ,
editCurency(id){ // 修改信息
this.apipost('financeinfo_post_GetCostType',{ID:id}, res => {
if(res.data.resultCode == 1) {
let data = res.data.data
// PostID
// DepartmentID
// EmployeeID
let Type1 = false,
Type2 = false,
Type3 = false;
if (data.DepartList && data.DepartList.length>0){
this.EmployeeIDList = [];
data.DepartList.forEach(x =>{
if(x.Type==1){
Type1 = true;
data.BranchId = x.departmentId;
this.addMsg.BranchId = x.departmentId;
if(x.departmentId!=-1){
this.getPostList()
}
}
if(x.Type==3){
Type2 = true;
data.PostID = x.departmentId;
this.addMsg.PostID = x.departmentId;
if(x.departmentId!=-1){
this.getPostList()
}
}
if(x.Type==2){
Type3 = true;
data.DepartmentID = x.departmentId;
this.addMsg.DepartmentID = x.departmentId;
if(x.departmentId!=-1){
this.getDepartmentList()
}
}
if(x.Type==4){
data.EmployeeID = x.departmentId;
this.addMsg.EmployeeID = x.departmentId;
this.EmployeeIDList.push(x.departmentId);
// if(x.departmentId!=-1){
// this.getEmployeeList()
// }
}
});
}
if (!Type1 && !Type2 && !Type3) {
this.getEmployeeList('all');
this.getDepartmentList('all');
this.getPostList('all');
} else {
this.getEmployeeList()
}
data.list = [];
data.IsShareAccount = data.IsShareAccount;
this.addShow = true;
this.addMsg = data;
if(data.Tier>1){
this.getCostTypeList(2,1);
}
} else {
this.tips(res.data.message,'error');
}
}, err => {})
},
cancelEdit(t){ // 取消修改、新增
this.addMsg = {
ID:0,
Name:'',
Type:1,
Tier:'',
ParentId:'',
IsShareAccount:0,
Sort:'0',
BranchId:-1,
PostID:-1,
DepartmentID:-1,
EmployeeID:-1,
list:[],
Is_Report:0,
IsSecret:0,
}
if(!t){
this.addShow=false
}
this.DepartmentList=[];
this.PostList=[];
this.EmployeeList=[];
this.CostTypeList = [];
},
initTableInfo(){//获取数据
this.tableInfo = [];
this.loading = true;
this.apipost('financeinfo_post_GetCostTypePageList',this.msg, res => {
if(res.data.resultCode == 1) {
this.tableInfo = res.data.data.pageData;
this.total = res.data.data.count;
if(this.total>0){
this.noData =false;
}else{
this.noData =true;
}
this.loading = false;
} else {
this.tips(res.data.message,'error');
}
}, err => {})
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.initTableInfo();
},
resetPageIndex(){
this.msg.pageIndex=1;
this.currentPage = 1
},
//点击修改
getEditInfo(ID){
let msg = {
ID:ID
}
this.apipost('financeinfo_post_GetCostType',msg, res => {
if(res.data.resultCode == 1) {
this.addShow=true;
var dataList = res.data.data;
this.getPostList();
this.getDepartmentList();
this.getEmployeeList('all');
this.getPostList('all');
this.EmployeeIDList=[];
this.addMsg.ID = dataList.ID;
this.addMsg.Name = dataList.Name;
this.addMsg.Type = dataList.Type;
this.addMsg.Tier = dataList.Tier;
this.addMsg.ParentId = dataList.ParentId;
this.addMsg.IsShareAccount = dataList.IsShareAccount;
this.addMsg.Sort = dataList.Sort;
this.addMsg.Is_Report = dataList.Is_Report;
this.addMsg.IsSecret = dataList.IsSecret;
// this.addMsg = dataList;
if(dataList.DepartList.length>0){
dataList.DepartList.forEach(x=>{
switch(x.Type){
case 1:
this.addMsg.BranchId = x.departmentId;
break;
case 2:
this.addMsg.PostID = x.departmentId;
break;
case 3:
this.addMsg.DepartmentID = x.departmentId;
break;
case 4:
this.addMsg.EmployeeID = x.departmentId;
this.EmployeeIDList.push(x.departmentId);
break;
case 5:
this.addMsg.BranchId = -1;
this.addMsg.PostID = -1;
this.addMsg.DepartmentID = -1;
this.addMsg.EmployeeID = -1;
this.EmployeeIDList.push(-1);
}
})
}
} else {
this.Error(res.data.message);
}
}, err => {})
},
//重置表单
resetInfo(){
var msg = {
ID:0,
Name:'',
Type:1, // 1收 2支 3收支
Tier:1,
ParentId:'',
IsShareAccount:0,
Sort:'0',
BranchId:-1,
PostID:-1,
DepartmentID:-1,
EmployeeID: -1,
list:[],
Is_Report:0,
IsSecret:0,
}
this.addMsg = msg;
},
addFlightmodule(){//添加
this.addMsg.list = [];
if(this.addMsg.Tier===1){
this.addMsg.ParentId=0;
}else if(this.addMsg.Tier!=1&&this.addMsg.ParentId==''){
return this.$message.error('请选择上级类型')
}
if(this.addMsg.BranchId!=null&&this.addMsg.BranchId!=-1){
let obj = {
ID:0,
Type:1,
departmentId:this.addMsg.BranchId
}
this.addMsg.list.push(obj)
}
if(this.addMsg.PostID&&this.addMsg.PostID!=-1){
let obj = {
ID:0,
Type:2,
departmentId:this.addMsg.PostID
}
this.addMsg.list.push(obj)
}
if(this.addMsg.DepartmentID&&this.addMsg.DepartmentID!=-1){
let obj = {
ID:0,
Type:3,
departmentId:this.addMsg.DepartmentID
}
this.addMsg.list.push(obj)
}
if(this.EmployeeIDList.length > 0){
this.EmployeeIDList.forEach(x=>{
let obj = {
ID:0,
Type:4,
departmentId:x
};
this.addMsg.list.push(obj)
});
}
// if(this.addMsg.EmployeeID&&this.addMsg.EmployeeID!=-1){
// let obj = {
// ID:0,
// Type:4,
// departmentId:this.addMsg.EmployeeID
// }
// this.addMsg.list.push(obj)
// }
if(this.EmployeeIDList[0]===-1&&this.addMsg.DepartmentID===-1&&this.addMsg.PostID===-1&&this.addMsg.BranchId===-1){
let obj = {
ID:0,
Type:5,
departmentId:0
}
this.addMsg.list.push(obj)
}
this.apipost('financeinfo_post_SetCostType',this.addMsg, res => {
if(res.data.resultCode == 1) {
this.tips(res.data.message,'success');
this.initTableInfo();
this.addShow =false;
this.cancelEdit();
this.getCostTypeTreeList();
this.EmployeeIDList = [];
} else {
this.tips(res.data.message,'error');
}
}, err => {})
},
submitForm(addMsg) {//提交创建、修改表单
let that = this;
that.$refs[addMsg].validate((valid) => {
if (valid) {
that.addFlightmodule()
} else {
return false;
}
});
},
resetForm(formName) {//弹出框取消 初始化谈框内表单
this.$refs[formName].resetFields();
},
tips(msg,type) {
this.$message({
message: msg,
duration:2000,
type: type
});
},
addFun: function () {
this.getDepartmentList('all');
this.getPostList('all');
this.getEmployeeList('all');
this.EmployeeIDList=[];
this.EmployeeIDList.push(-1);
}
},
mounted(){
this.initTableInfo();
let userInfo = this.getLocalStorage();
this.departmentMsg.RB_Group_Id = this.companyMsg.RB_Group_Id = userInfo.RB_Group_id; //集团
this.msg.EmployeeID=userInfo.EmployeeId;
this.getDepartment();
this.getCompany();
this.getCostTypeTreeList();
this.getDepartmentList('all');
this.getPostList('all');
this.getEmployeeList('all');
}
}
</script>
...@@ -102,6 +102,11 @@ const routes = [{ ...@@ -102,6 +102,11 @@ const routes = [{
component: () => component: () =>
import("pages/financial/AccountType.vue") import("pages/financial/AccountType.vue")
}, },
{
path: "/financial/CostType", //费用类型
component: () =>
import("pages/financial/CostType.vue")
},
{ {
path: "/test", //API测试 path: "/test", //API测试
component: () => component: () =>
......
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