Browse Source

项目预算、成本重构

master
陈裕财 4 years ago
parent
commit
c97bf63920
  1. 3
      src/api/xm/core/xmBudgetLabor.js
  2. 3
      src/api/xm/core/xmBudgetNlabor.js
  3. 5
      src/api/xm/core/xmCostNlabor.js
  4. 99
      src/views/xm/core/xmBudgetLabor/XmBudgetLaborMng.vue
  5. 92
      src/views/xm/core/xmBudgetNlabor/XmBudgetNlaborMng.vue
  6. 113
      src/views/xm/core/xmCostNlabor/XmCostNlaborMng.vue
  7. 77
      src/views/xm/core/xmProject/XmProjectBudgetCost.vue
  8. 90
      src/views/xm/core/xmProject/XmProjectCost.vue

3
src/api/xm/core/xmBudgetLabor.js

@ -30,12 +30,13 @@ export const addXmBudgetLabor = params => { return axios.post(`${base}/xm/core/x
//批量修改某些字段 //批量修改某些字段
export const editSomeFieldsXmBudgetLabor = params => { return axios.post(`${base}/xm/core/xmBudgetLabor/editSomeFields`, params); }; export const editSomeFieldsXmBudgetLabor = params => { return axios.post(`${base}/xm/core/xmBudgetLabor/editSomeFields`, params); };
export const listSumXmBudgetLabor = params => { return axios.get(`${base}/xm/core/xmBudgetLabor/listSum`, { params: params }); };
/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ /**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */
//初始化页面上的字典 //初始化页面上的字典
export const initDicts = (that) => { export const initDicts = (that) => {
var itemCodes=[];//在此添加要加载的字典 如['sex','grade','lvl']
var itemCodes=['projectSubject'];//在此添加要加载的字典 如['sex','grade','lvl']
if(itemCodes.length>0){ if(itemCodes.length>0){
initSimpleDicts('all',itemCodes).then(res=>{ initSimpleDicts('all',itemCodes).then(res=>{
Object.assign(that.dicts,res.data.data) Object.assign(that.dicts,res.data.data)

3
src/api/xm/core/xmBudgetNlabor.js

@ -31,11 +31,12 @@ export const addXmBudgetNlabor = params => { return axios.post(`${base}/xm/core/
export const editSomeFieldsXmBudgetNlabor = params => { return axios.post(`${base}/xm/core/xmBudgetNlabor/editSomeFields`, params); }; export const editSomeFieldsXmBudgetNlabor = params => { return axios.post(`${base}/xm/core/xmBudgetNlabor/editSomeFields`, params); };
export const listSumXmBudgetNlabor = params => { return axios.get(`${base}/xm/core/xmBudgetNlabor/listSum`, { params: params }); };
/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ /**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */
//初始化页面上的字典 //初始化页面上的字典
export const initDicts = (that) => { export const initDicts = (that) => {
var itemCodes=[];//在此添加要加载的字典 如['sex','grade','lvl']
var itemCodes=['projectSubject'];//在此添加要加载的字典 如['sex','grade','lvl']
if(itemCodes.length>0){ if(itemCodes.length>0){
initSimpleDicts('all',itemCodes).then(res=>{ initSimpleDicts('all',itemCodes).then(res=>{
Object.assign(that.dicts,res.data.data) Object.assign(that.dicts,res.data.data)

5
src/api/xm/core/xmCostNlabor.js

@ -31,11 +31,14 @@ export const addXmCostNlabor = params => { return axios.post(`${base}/xm/core/xm
export const editSomeFieldsXmCostNlabor = params => { return axios.post(`${base}/xm/core/xmCostNlabor/editSomeFields`, params); }; export const editSomeFieldsXmCostNlabor = params => { return axios.post(`${base}/xm/core/xmCostNlabor/editSomeFields`, params); };
//普通查询 条件之间and关系
export const listSumXmCostNlabor = params => { return axios.get(`${base}/xm/core/xmCostNlabor/listSum`, { params: params }); };
/**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */ /**-------------------------前端mng|add|edit界面公共函数---------------请写在下面----------------------------------------------- */
//初始化页面上的字典 //初始化页面上的字典
export const initDicts = (that) => { export const initDicts = (that) => {
var itemCodes=[];//在此添加要加载的字典 如['sex','grade','lvl']
var itemCodes=['projectSubject'];//在此添加要加载的字典 如['sex','grade','lvl']
if(itemCodes.length>0){ if(itemCodes.length>0){
initSimpleDicts('all',itemCodes).then(res=>{ initSimpleDicts('all',itemCodes).then(res=>{
Object.assign(that.dicts,res.data.data) Object.assign(that.dicts,res.data.data)

99
src/views/xm/core/xmBudgetLabor/XmBudgetLaborMng.vue

@ -18,83 +18,56 @@
<span class="cell-text"> {{scope.row.username}}} </span> <span class="cell-text"> {{scope.row.username}}} </span>
<span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.username" placeholder="" @change="editSomeFields(scope.row,'username',$event)" :maxlength="22"></el-input></span> <span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.username" placeholder="" @change="editSomeFields(scope.row,'username',$event)" :maxlength="22"></el-input></span>
</el-table-column> </el-table-column>
-->
<el-table-column prop="id" label="主键" min-width="80" show-overflow-tooltip fixed="left"></el-table-column>
-->
<el-table-column prop="projectId" label="项目编号" min-width="80" show-overflow-tooltip> <el-table-column prop="projectId" label="项目编号" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.projectId}} </span>
<span> {{scope.row.projectId}} </span>
</template> </template>
</el-table-column>
<el-table-column prop="userid" label="项目成员编号" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.userid}} </span>
</template>
</el-table-column>
<el-table-column prop="budgetAt" label="预算金额/每月" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.budgetAt}} </span>
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.remark}} </span>
</template>
</el-table-column>
<el-table-column prop="username" label="用户名" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.username}} </span>
</template>
</el-table-column>
<el-table-column prop="subjectId" label="预算科目编号" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.subjectId}} </span>
</template>
</el-table-column>
<el-table-column prop="bizSdate" label="费用归属周期开始日期" min-width="80" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="username" label="项目成员" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.bizSdate}} </span>
<span class="cell-text"> {{scope.row.username}} </span>
<span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.username" placeholder="" @change="editSomeFields(scope.row,'username',$event)" :maxlength="22"></el-input></span>
</template> </template>
</el-table-column>
<el-table-column prop="bizEdate" label="费用归属周期结束日期" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.bizEdate}} </span>
</template>
</el-table-column>
<el-table-column prop="bizMonth" label="费用归属月份yyyy-mm" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.bizMonth}} </span>
</template>
</el-table-column>
<el-table-column prop="instId" label="当前流程实例编号" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.instId}} </span>
</el-table-column>
<el-table-column prop="subjectId" label="预算科目" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<div class="cell-text">
{{formaterByDicts(scope.row,'projectSubject',scope.row.subjectId)}}
</div>
<span class="cell-bar">
<el-select v-model="scope.row.subjectId" placeholder="预算科目" style="display:block;" @change="editXmMenuSomeFields(scope.row,'subjectId',$event)">
<el-option :value="item.id" :label="item.name" v-for="(item,index) in dicts.projectSubject" :key="index"></el-option>
</el-select>
</span>
</template> </template>
</el-table-column>
<el-table-column prop="bizFlowState" label="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.bizFlowState}} </span>
</template>
</el-table-column>
<el-table-column prop="costType" label="成本类型0非人力1内部人力2外购人力" min-width="80" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="remark" label="用途说明" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.costType}} </span>
<span class="cell-text"> {{scope.row.remark}} </span>
<span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.remark" placeholder="" @change="editSomeFields(scope.row,'remark',$event)" :maxlength="22"></el-input></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="subjectName" label="科目名称" min-width="80" show-overflow-tooltip>
<el-table-column prop="budgetAt" label="预算金额" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.subjectName}} </span>
<span class="cell-text"> {{scope.row.budgetAt}} </span>
<span class="cell-bar"><el-input type="number" style="display:inline;" v-model="scope.row.budgetAt" placeholder="" @change="editSomeFields(scope.row,'budgetAt',$event)" :maxlength="22"></el-input></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="branchId" label="项目归属机构编号" min-width="80" show-overflow-tooltip>
<el-table-column prop="bizMonth" label="费用月份" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.branchId}} </span>
<span class="cell-text"> {{scope.row.bizMonth}} </span>
<span class="cell-bar">
<el-date-picker
@change="editSomeFields(scope.row,'bizMonth',$event)"
v-model="scope.row.bizMonth"
type="month"
value-format="yyyy-MM"
placeholder="选择年月">
</el-date-picker>
</span>
</template> </template>
</el-table-column>
<el-table-column prop="ubranchId" label="用户归属机构编号-也就是将来的结算对象" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.ubranchId}} </span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="操作" width="180" fixed="right"> <el-table-column label="操作" width="180" fixed="right">
<template scope="scope"> <template scope="scope">
<el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" plain></el-button> <el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" plain></el-button>

92
src/views/xm/core/xmBudgetNlabor/XmBudgetNlaborMng.vue

@ -19,67 +19,50 @@
<span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.username" placeholder="" @change="editSomeFields(scope.row,'username',$event)" :maxlength="22"></el-input></span> <span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.username" placeholder="" @change="editSomeFields(scope.row,'username',$event)" :maxlength="22"></el-input></span>
</el-table-column> </el-table-column>
--> -->
<el-table-column prop="id" label="主键" min-width="80" show-overflow-tooltip fixed="left"></el-table-column>
<el-table-column prop="projectId" label="项目编号" min-width="80" show-overflow-tooltip> <el-table-column prop="projectId" label="项目编号" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.projectId}} </span>
<span class="cell-text"> {{scope.row.projectId}} </span>
<span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.username" placeholder="" @change="editSomeFields(scope.row,'username',$event)" :maxlength="22"></el-input></span>
</template> </template>
</el-table-column>
<el-table-column prop="budgetAt" label="预算金额" min-width="80" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="remark" label="用途说明" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.budgetAt}} </span>
<span class="cell-text"> {{scope.row.remark}} </span>
<span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.remark" placeholder="" @change="editSomeFields(scope.row,'remark',$event)" :maxlength="22"></el-input></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="备注" min-width="80" show-overflow-tooltip>
<el-table-column prop="budgetAt" label="预算金额" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.remark}} </span>
<span class="cell-text"> {{scope.row.budgetAt}} </span>
<span class="cell-bar"><el-input type="number" style="display:inline;" v-model="scope.row.budgetAt" placeholder="" @change="editSomeFields(scope.row,'budgetAt',$event)" :maxlength="22"></el-input></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="subjectId" label="预算科目" min-width="80" show-overflow-tooltip> <el-table-column prop="subjectId" label="预算科目" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.subjectId}} </span>
</template>
</el-table-column>
<el-table-column prop="bizSdate" label="费用归属周期开始日期" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.bizSdate}} </span>
</template>
</el-table-column>
<el-table-column prop="bizEdate" label="费用归属周期结束日期" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.bizEdate}} </span>
</template>
</el-table-column>
<el-table-column prop="instId" label="当前流程实例编号" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.instId}} </span>
</template>
</el-table-column>
<el-table-column prop="bizFlowState" label="当前流程状态0初始1审批中2审批通过3审批不通过4流程取消或者删除" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.bizFlowState}} </span>
</template>
</el-table-column>
<el-table-column prop="costType" label="成本类型0非人力1内部人力2外购人力" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.costType}} </span>
</template>
</el-table-column>
<el-table-column prop="bizMonth" label="费用归属月份yyyy-MM" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.bizMonth}} </span>
<template slot-scope="scope">
<div class="cell-text">
{{formaterByDicts(scope.row,'projectSubject',scope.row.subjectId)}}
</div>
<span class="cell-bar">
<el-select v-model="scope.row.subjectId" placeholder="预算科目" style="display:block;" @change="editXmMenuSomeFields(scope.row,'subjectId',$event)">
<el-option :value="item.id" :label="item.name" v-for="(item,index) in dicts.projectSubject" :key="index"></el-option>
</el-select>
</span>
</template> </template>
</el-table-column>
<el-table-column prop="subjectName" label="科目名称" min-width="80" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="bizMonth" label="费用月份" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.subjectName}} </span>
<span class="cell-text"> {{scope.row.bizMonth}} </span>
<span class="cell-bar">
<el-date-picker
@change="editSomeFields(scope.row,'bizMonth',$event)"
v-model="scope.row.bizMonth"
type="month"
value-format="yyyy-MM"
placeholder="选择年月">
</el-date-picker>
</span>
</template> </template>
</el-table-column>
<el-table-column prop="branchId" label="项目归属企业编号" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.branchId}} </span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="操作" width="180" fixed="right"> <el-table-column label="操作" width="180" fixed="right">
<template scope="scope"> <template scope="scope">
<el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" plain></el-button> <el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" plain></el-button>
@ -211,6 +194,19 @@
if(this.filters.key){ if(this.filters.key){
params.key=this.filters.key params.key=this.filters.key
} }
if(this.queryType=='queryByBizMonth'){
params.bizMonth=this.fieldName
params.username=this.budgetCostNouser.username
params.subjectId=this.budgetCostNouser.subjectId
}else if(this.queryType=='queryByUsername'){
params.username=this.budgetCostNouser.username
params.subjectId=this.budgetCostNouser.subjectId
}else if(this.queryType=='queryBySubjectId'){
params.subjectId=this.budgetCostNouser.subjectId
}
if(this.selProject!=null && this.selProject !=undefined){
params.projectId=this.selProject.id
}
this.load.list = true; this.load.list = true;
listXmBudgetNlabor(params).then((res) => { listXmBudgetNlabor(params).then((res) => {

113
src/views/xm/core/xmCostNlabor/XmCostNlaborMng.vue

@ -19,102 +19,49 @@
<span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.username" placeholder="" @change="editSomeFields(scope.row,'username',$event)" :maxlength="22"></el-input></span> <span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.username" placeholder="" @change="editSomeFields(scope.row,'username',$event)" :maxlength="22"></el-input></span>
</el-table-column> </el-table-column>
--> -->
<el-table-column prop="id" label="主键" min-width="80" show-overflow-tooltip fixed="left"></el-table-column>
<el-table-column prop="projectId" label="项目编号" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.projectId}} </span>
</template>
</el-table-column>
<el-table-column prop="userid" label="用户编号-费用主责人" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.userid}} </span>
</template>
</el-table-column>
<el-table-column prop="ctime" label="创建时间" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.ctime}} </span>
</template>
</el-table-column>
<el-table-column prop="sendTime" label="费用发放时间" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.sendTime}} </span>
</template>
</el-table-column>
<el-table-column prop="username" label="用户名称" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.username}} </span>
</template>
</el-table-column>
<el-table-column prop="projectName" label="项目名称" min-width="80" show-overflow-tooltip> <el-table-column prop="projectName" label="项目名称" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.projectName}} </span> <span> {{scope.row.projectName}} </span>
</template> </template>
</el-table-column>
<el-table-column prop="remark" label="备注" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.remark}} </span>
</template>
</el-table-column>
<el-table-column prop="taskId" label="任务编号" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.taskId}} </span>
</template>
</el-table-column>
<el-table-column prop="taskName" label="任务名称" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.taskName}} </span>
</template>
</el-table-column>
<el-table-column prop="subjectId" label="科目编号" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.subjectId}} </span>
</template>
</el-table-column>
<el-table-column prop="bizSdate" label="费用归属周期开始日期" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.bizSdate}} </span>
</template>
</el-table-column>
<el-table-column prop="bizEdate" label="费用归属周期结束日期" min-width="80" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="remark" label="用途说明" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.bizEdate}} </span>
<span class="cell-text"> {{scope.row.remark}} </span>
<span class="cell-bar"><el-input style="display:inline;" v-model="scope.row.remark" placeholder="" @change="editSomeFields(scope.row,'remark',$event)" :maxlength="22"></el-input></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="actAt" label="实际成本金额" min-width="80" show-overflow-tooltip>
<el-table-column prop="actAt" label="预算金额" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.actAt}} </span>
<span class="cell-text"> {{scope.row.actAt}} </span>
<span class="cell-bar"><el-input type="number" style="display:inline;" v-model="scope.row.actAt" placeholder="" @change="editSomeFields(scope.row,'actAt',$event)" :maxlength="22"></el-input></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="costType" label="成本类型0非人力1内部人力2外购人力,此表都是非人力" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.costType}} </span>
<el-table-column prop="subjectId" label="预算科目" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<div class="cell-text">
{{formaterByDicts(scope.row,'projectSubject',scope.row.subjectId)}}
</div>
<span class="cell-bar">
<el-select v-model="scope.row.subjectId" placeholder="预算科目" style="display:block;" @change="editXmMenuSomeFields(scope.row,'subjectId',$event)">
<el-option :value="item.id" :label="item.name" v-for="(item,index) in dicts.projectSubject" :key="index"></el-option>
</el-select>
</span>
</template> </template>
</el-table-column>
<el-table-column prop="bizMonth" label="业务归属月份yyyy-MM" min-width="80" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="bizMonth" label="费用月份" min-width="80" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<span> {{scope.row.bizMonth}} </span>
<span class="cell-text"> {{scope.row.bizMonth}} </span>
<span class="cell-bar">
<el-date-picker
@change="editSomeFields(scope.row,'bizMonth',$event)"
v-model="scope.row.bizMonth"
type="month"
value-format="yyyy-MM"
placeholder="选择年月">
</el-date-picker>
</span>
</template> </template>
</el-table-column>
<el-table-column prop="bizDate" label="业务归属日期yyyy-MM-dd" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.bizDate}} </span>
</template>
</el-table-column>
<el-table-column prop="subjectName" label="科目名称" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.subjectName}} </span>
</template>
</el-table-column>
<el-table-column prop="ubranchId" label="用户归属机构" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.ubranchId}} </span>
</template>
</el-table-column>
<el-table-column prop="branchId" label="项目归属机构" min-width="80" show-overflow-tooltip>
<template slot-scope="scope">
<span> {{scope.row.branchId}} </span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="操作" width="180" fixed="right"> <el-table-column label="操作" width="180" fixed="right">
<template scope="scope"> <template scope="scope">
<el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" plain></el-button> <el-button type="primary" @click="showEdit( scope.row,scope.$index)" icon="el-icon-edit" plain></el-button>

77
src/views/xm/core/xmProject/XmProjectBudgetCost.vue

@ -30,7 +30,7 @@
<el-table <el-table
:height="tableHeight" :height="tableHeight"
v-if="showType == '人力'" v-if="showType == '人力'"
:data="sumXmProjectMBudgetCostUsersConvert"
:data="sumXmBudgetLaborsConvert"
highlight-current-row highlight-current-row
v-loading="load.list" v-loading="load.list"
border> border>
@ -59,7 +59,7 @@
ref="table" ref="table"
:height="tableHeight" :height="tableHeight"
v-if="showType == '非人力'" v-if="showType == '非人力'"
:data="sumXmProjectMBudgetCostNousersConvert"
:data="sumXmBudgetNlaborsConvert"
highlight-current-row highlight-current-row
v-loading="load.list" v-loading="load.list"
border border
@ -87,14 +87,14 @@
</div> </div>
<div v-else> <div v-else>
<xm-budget-user v-if="showType == '人力'" :sel-project="selProject"></xm-budget-user>
<xm-budget-nouser v-else :sel-project="selProject"></xm-budget-nouser>
<xm-budget-labor v-if="showType == '人力'" :sel-project="selProject"></xm-budget-labor>
<xm-budget-nlabor v-else :sel-project="selProject"></xm-budget-nlabor>
</div> </div>
<el-drawer title="查看人力预算明细" :visible.sync="budgetCostUserVisible" fullscreen append-to-body :close-on-click-modal="false">
<xm-budget-user :budget-cost-user="budgetCostUser" :visible="budgetCostUserVisible" :field-name="fieldName" :query-type="queryType" :sel-project="selProject"></xm-budget-user>
<el-drawer title="查看人力预算明细" :visible.sync="xmBudgetLaborVisible" fullscreen append-to-body :close-on-click-modal="false">
<xm-budget-labor :xm-budget-labor="xmBudgetLabor" :visible="xmBudgetLaborVisible" :field-name="fieldName" :query-type="queryType" :sel-project="selProject"></xm-budget-labor>
</el-drawer> </el-drawer>
<el-drawer title="查看非人力预算明细" :visible.sync="budgetCostNouserVisible" fullscreen append-to-body :close-on-click-modal="false">
<xm-budget-nouser :budget-cost-nouser="budgetCostNouser" :visible="budgetCostNouserVisible" :field-name="fieldName" :query-type="queryType" :sel-project="selProject"></xm-budget-nouser>
<el-drawer title="查看非人力预算明细" :visible.sync="xmBudgetNlaborVisible" fullscreen append-to-body :close-on-click-modal="false">
<xm-budget-nlabor :xm-budget-nlabor="xmBudgetNlabor" :visible="xmBudgetNlaborVisible" :field-name="fieldName" :query-type="queryType" :sel-project="selProject"></xm-budget-nlabor>
</el-drawer> </el-drawer>
</el-row> </el-row>
</section> </section>
@ -106,11 +106,10 @@
//import { initSimpleDicts } from '@/api/mdp/meta/item';// //import { initSimpleDicts } from '@/api/mdp/meta/item';//
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { editBudget } from '@/api/xm/core/xmProject'; import { editBudget } from '@/api/xm/core/xmProject';
import { listSumXmProjectMBudgetCostUser } from '@/api/xm/core/xmProjectMBudgetCostUser';
import { listSumXmProjectMBudgetCostNouser } from '@/api/xm/core/xmProjectMBudgetCostNouser';
import xmBudgetUser from '../xmProjectMBudgetCostUser/XmProjectMBudgetCostUserMng';
import xmBudgetNouser from '../xmProjectMBudgetCostNouser/XmProjectMBudgetCostNouserMng';
import { months } from 'moment';
import { listSumXmBudgetLabor } from '@/api/xm/core/xmBudgetLabor';
import { listSumXmBudgetNlabor } from '@/api/xm/core/xmBudgetNlabor';
import xmBudgetLabor from '../xmBudgetLabor/XmBudgetLaborMng';
import xmBudgetNlabor from '../xmBudgetNlabor/XmBudgetNlaborMng';
export default { export default {
props: ["selProject"], props: ["selProject"],
@ -123,10 +122,10 @@ import { months } from 'moment';
var yearMonths=[selYear+'-01',selYear+'-02',selYear+'-03',selYear+'-04',selYear+'-05',selYear+'-06',selYear+'-07',selYear+'-08',selYear+'-09',selYear+'-10',selYear+'-11',selYear+'-12'] var yearMonths=[selYear+'-01',selYear+'-02',selYear+'-03',selYear+'-04',selYear+'-05',selYear+'-06',selYear+'-07',selYear+'-08',selYear+'-09',selYear+'-10',selYear+'-11',selYear+'-12']
return yearMonths; return yearMonths;
}, },
sumXmProjectMBudgetCostUsersConvert:function(){
sumXmBudgetLaborsConvert:function(){
var map={}; var map={};
var secMap={}; var secMap={};
this.sumXmProjectMBudgetCostUsers.forEach(i=>{
this.sumXmBudgetLabors.forEach(i=>{
i.key=i.projectId+"_"+i.subjectId+"_"+i.userid+"_"+i.username; i.key=i.projectId+"_"+i.subjectId+"_"+i.userid+"_"+i.username;
i.monthKey=i.key+"_"+i.bizzMonth; i.monthKey=i.key+"_"+i.bizzMonth;
secMap[i.monthKey]=i; secMap[i.monthKey]=i;
@ -150,10 +149,10 @@ import { months } from 'moment';
} }
return list; return list;
}, },
sumXmProjectMBudgetCostNousersConvert:function(){
sumXmBudgetNlaborsConvert:function(){
var map={}; var map={};
var secMap={}; var secMap={};
this.sumXmProjectMBudgetCostNousers.forEach(i=>{
this.sumXmBudgetNlabors.forEach(i=>{
i.key=i.projectId+"_"+i.subjectId; i.key=i.projectId+"_"+i.subjectId;
i.monthKey=i.key+"_"+i.bizzMonth; i.monthKey=i.key+"_"+i.bizzMonth;
secMap[i.monthKey]=i; secMap[i.monthKey]=i;
@ -181,10 +180,10 @@ import { months } from 'moment';
watch: { watch: {
'showType': function(val) { 'showType': function(val) {
if(val == "人力"){ if(val == "人力"){
this.listSumXmProjectMBudgetCostUser();
this.listSumXmBudgetLabor();
} }
else{ else{
this.listSumXmProjectMBudgetCostNouser();
this.listSumXmBudgetNlabor();
} }
}, },
'selProject': function(selProject){ 'selProject': function(selProject){
@ -204,17 +203,17 @@ import { months } from 'moment';
costShow: "预算统计", costShow: "预算统计",
selYear: ""+new Date().getFullYear(), selYear: ""+new Date().getFullYear(),
showType: "", showType: "",
budgetUser: [],
budgetNouser: [],
xmBudgetLabors: [],
xmBudgetNlabors: [],
selProjectBudget:{}, selProjectBudget:{},
sumXmProjectMBudgetCostUsers:[],
budgetCostUser:null,
sumXmBudgetLabors:[],
xmBudgetLabor:null,
fieldName:'', fieldName:'',
queryType:'', queryType:'',
budgetCostUserVisible:false,
sumXmProjectMBudgetCostNousers:[],
budgetCostNouser:null,
budgetCostNouserVisible:false,
xmBudgetLaborVisible:false,
sumXmBudgetNlabors:[],
xmBudgetNlabor:null,
xmBudgetNlaborVisible:false,
tableHeight:300, tableHeight:300,
/**end 自定义属性请在上面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/
} }
@ -225,34 +224,34 @@ import { months } from 'moment';
this.$emit('row-click',row, event, column);// @row-click="rowClick" this.$emit('row-click',row, event, column);// @row-click="rowClick"
}, },
listSumXmProjectMBudgetCostUser:function(){
listSumXmBudgetLabor:function(){
var parmas={ var parmas={
projectId:this.selProject.id, projectId:this.selProject.id,
} }
listSumXmProjectMBudgetCostUser(parmas).then(res=>{
this.sumXmProjectMBudgetCostUsers=res.data.data;
listSumXmBudgetLabor(parmas).then(res=>{
this.sumXmBudgetLabors=res.data.data;
}) })
}, },
listSumXmProjectMBudgetCostNouser:function(){
listSumXmBudgetNlabor:function(){
var parmas={ var parmas={
projectId:this.selProject.id, projectId:this.selProject.id,
} }
listSumXmProjectMBudgetCostNouser(parmas).then(res=>{
this.sumXmProjectMBudgetCostNousers=res.data.data;
listSumXmBudgetNlabor(parmas).then(res=>{
this.sumXmBudgetNlabors=res.data.data;
}) })
}, },
showCostUserDetails:function(row,fieldName,queryType){ showCostUserDetails:function(row,fieldName,queryType){
this.budgetCostUser=row
this.xmBudgetLabor=row
this.fileName=fieldName this.fileName=fieldName
this.queryType=queryType this.queryType=queryType
this.budgetCostUserVisible=true;
this.xmBudgetLaborVisible=true;
}, },
showCostNouserDetails:function(row,fieldName,queryType){ showCostNouserDetails:function(row,fieldName,queryType){
this.budgetCostNouser=row
this.xmBudgetNlabor=row
this.fileName=fieldName this.fileName=fieldName
this.queryType=queryType this.queryType=queryType
this.budgetCostNouserVisible=true;
this.xmBudgetNlaborVisible=true;
}, },
/**begin 自定义函数请在下面加**/ /**begin 自定义函数请在下面加**/
// inputChange() { // inputChange() {
@ -300,8 +299,8 @@ import { months } from 'moment';
/**end 自定义函数请在上面加**/ /**end 自定义函数请在上面加**/
},//end methods },//end methods
components: { components: {
xmBudgetUser,
xmBudgetNouser,
xmBudgetLabor,
xmBudgetNlabor,
// //
}, },
mounted() { mounted() {

90
src/views/xm/core/xmProject/XmProjectCost.vue

@ -25,32 +25,32 @@
<el-table ref="table" <el-table ref="table"
:height="maxTableHeight" :height="maxTableHeight"
v-if="showType == '人力'" v-if="showType == '人力'"
:data="sumXmProjectMCostUsersConvert"
:data="sumXmCostLaborsConvert"
highlight-current-row highlight-current-row
v-loading="load.list" v-loading="load.list"
border> border>
<el-table-column prop="username" label="成员姓名" min-width="100" v-if="rptType==='3'"> <el-table-column prop="username" label="成员姓名" min-width="100" v-if="rptType==='3'">
<template slot-scope="scope"> <template slot-scope="scope">
<a style="text-decoration:underline;margin-right:5px;" @click="showCostUserDetails(scope.row,'username','queryByBizUserid')">{{scope.row.username}}</a>
<a style="text-decoration:underline;margin-right:5px;" @click="showXmCostLaborDetails(scope.row,'username','queryByBizUserid')">{{scope.row.username}}</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="projectId" label="项目编号" min-width="100" v-if="rptType==='2'"> <el-table-column prop="projectId" label="项目编号" min-width="100" v-if="rptType==='2'">
<template slot-scope="scope"> <template slot-scope="scope">
<a style="text-decoration:underline;margin-right:5px;" @click="showCostUserDetails(scope.row,'projectId','queryByProjectId')">{{scope.row.projectId}}</a>
<a style="text-decoration:underline;margin-right:5px;" @click="showXmCostLaborDetails(scope.row,'projectId','queryByProjectId')">{{scope.row.projectId}}</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="branchId" label="企业编号" min-width="100" v-if="rptType==='1'"> <el-table-column prop="branchId" label="企业编号" min-width="100" v-if="rptType==='1'">
<template slot-scope="scope"> <template slot-scope="scope">
<a style="text-decoration:underline;margin-right:5px;" @click="showCostUserDetails(scope.row,'branchId','queryByBranchId')">{{scope.row.branchId}}</a>
<a style="text-decoration:underline;margin-right:5px;" @click="showXmCostLaborDetails(scope.row,'branchId','queryByBranchId')">{{scope.row.branchId}}</a>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column min-width="100" ></el-table-column> --> <!-- <el-table-column min-width="100" ></el-table-column> -->
<el-table-column :prop="month" v-for="month in selYearMonths" :key="month" :label="month" width="100"> <el-table-column :prop="month" v-for="month in selYearMonths" :key="month" :label="month" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<a style="text-decoration:underline;margin-right:5px;" @click="showCostUserDetails(scope.row,month,'queryByBizMonth')">{{scope.row[month]}}</a>
<a style="text-decoration:underline;margin-right:5px;" @click="showXmCostLaborDetails(scope.row,month,'queryByBizMonth')">{{scope.row[month]}}</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="monthsSum" label="合计" min-width="80"> <el-table-column prop="monthsSum" label="合计" min-width="80">
@ -59,26 +59,26 @@
<el-table <el-table
v-if="showType == '非人力'" v-if="showType == '非人力'"
:data="sumXmProjectMCostNousersConvert"
:data="sumXmCostNlaborsConvert"
highlight-current-row highlight-current-row
v-loading="load.list" v-loading="load.list"
border border
style="width: 100%;height:720px;overflow-y:auto;"> style="width: 100%;height:720px;overflow-y:auto;">
<el-table-column prop="subjectId" label="科目" min-width="100" > <el-table-column prop="subjectId" label="科目" min-width="100" >
<template slot-scope="scope"> <template slot-scope="scope">
<a style="text-decoration:underline;margin-right:5px;" @click="showCostNouserDetails(scope.row,'subjectId','queryBySubjectId')">{{scope.row.subjectId}}</a>
<a style="text-decoration:underline;margin-right:5px;" @click="showXmCostNlaborDetails(scope.row,'subjectId','queryBySubjectId')">{{scope.row.subjectId}}</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="username" label="姓名" min-width="100" > <el-table-column prop="username" label="姓名" min-width="100" >
<template slot-scope="scope"> <template slot-scope="scope">
<a style="text-decoration:underline;margin-right:5px;" @click="showCostNouserDetails(scope.row,'username','queryByBizUserid')">{{scope.row.username}}</a>
<a style="text-decoration:underline;margin-right:5px;" @click="showXmCostNlaborDetails(scope.row,'username','queryByBizUserid')">{{scope.row.username}}</a>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column min-width="100" ></el-table-column> --> <!-- <el-table-column min-width="100" ></el-table-column> -->
<el-table-column :prop="month" v-for="month in selYearMonths" :key="month" :label="month" width="100"> <el-table-column :prop="month" v-for="month in selYearMonths" :key="month" :label="month" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<a style="text-decoration:underline;margin-right:5px;" @click="showCostNouserDetails(scope.row,month,'queryByBizMonth')">{{scope.row[month]}}</a>
<a style="text-decoration:underline;margin-right:5px;" @click="showXmCostNlaborDetails(scope.row,month,'queryByBizMonth')">{{scope.row[month]}}</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="monthsSum" label="合计" min-width="80"> <el-table-column prop="monthsSum" label="合计" min-width="80">
@ -87,14 +87,14 @@
</div> </div>
<div v-else> <div v-else>
<xm-cost-user v-if="showType == '人力'" :sel-project="selProject"></xm-cost-user>
<xm-cost-nouser v-else :sel-project="selProject"></xm-cost-nouser>
<xm-cost-labor v-if="showType == '人力'" :sel-project="selProject"></xm-cost-labor>
<xm-cost-nlabor v-else :sel-project="selProject"></xm-cost-nlabor>
</div> </div>
<el-drawer title="查看人力支出明细" :visible.sync="costUserVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-cost-user v-if="costUser" :biz-month="queryType==='queryByBizMonth'?fieldName:null" :visible="costUserVisible" :userid="costUser.userid" :branch-id=" costUser.branchId " :project-id=" costUser.projectId "></xm-cost-user>
<el-drawer title="查看人力支出明细" :visible.sync="xmCostLaborVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-cost-labor v-if="xmCostLabor" :biz-month="queryType==='queryByBizMonth'?fieldName:null" :visible="xmCostLaborVisible" :userid="xmCostLabor.userid" :branch-id=" xmCostLabor.branchId " :project-id=" xmCostLabor.projectId "></xm-cost-labor>
</el-drawer> </el-drawer>
<el-drawer title="查看非人力支出明细" :visible.sync="costNouserVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-cost-nouser :cost-nouser="costNouser" :visible="costNouserVisible" :field-name="fieldName" :query-type="queryType" :sel-project="selProject"></xm-cost-nouser>
<el-drawer title="查看非人力支出明细" :visible.sync="xmCostNlaborVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-cost-nlabor :xm-cost-nlabor="xmCostNlabor" :visible="xmCostNlaborVisible" :field-name="fieldName" :query-type="queryType" :sel-project="selProject"></xm-cost-nlabor>
</el-drawer> </el-drawer>
</el-row> </el-row>
</section> </section>
@ -105,28 +105,26 @@
//import Sticky from '@/components/Sticky' // header //import Sticky from '@/components/Sticky' // header
//import { initSimpleDicts } from '@/api/mdp/meta/item';// //import { initSimpleDicts } from '@/api/mdp/meta/item';//
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import { editBudget } from '@/api/xm/core/xmProject';
import { listSumSamtGroupByUseridBizMonth,listSumSamtGroupByBranchIdBizMonth,listSumSamtGroupByProjectIdBizMonth } from '@/api/xm/core/xmTaskSbillDetail'; import { listSumSamtGroupByUseridBizMonth,listSumSamtGroupByBranchIdBizMonth,listSumSamtGroupByProjectIdBizMonth } from '@/api/xm/core/xmTaskSbillDetail';
import { listSumXmProjectMCostNouser } from '@/api/xm/core/xmProjectMCostNouser';
import xmCostUser from '../xmTaskSbillDetail/XmTaskSbillDetailMng';
import xmCostNouser from '../xmProjectMCostNouser/XmProjectMCostNouserMng';
import { months } from 'moment';
import { listSumXmCostNlabor } from '@/api/xm/core/xmCostNlabor';
import xmCostLabor from '../xmTaskSbillDetail/XmTaskSbillDetailMng';
import xmCostNlabor from '../xmCostNlabor/XmCostNlaborMng';
export default { export default {
props: ["selProject"], props: ["selProject"],
computed: { computed: {
...mapGetters([ ...mapGetters([
'userInfo','roles'
'laborInfo','roles'
]), ]),
selYearMonths:function(){ selYearMonths:function(){
var selYear=this.selYear; var selYear=this.selYear;
var yearMonths=[selYear+'-01',selYear+'-02',selYear+'-03',selYear+'-04',selYear+'-05',selYear+'-06',selYear+'-07',selYear+'-08',selYear+'-09',selYear+'-10',selYear+'-11',selYear+'-12'] var yearMonths=[selYear+'-01',selYear+'-02',selYear+'-03',selYear+'-04',selYear+'-05',selYear+'-06',selYear+'-07',selYear+'-08',selYear+'-09',selYear+'-10',selYear+'-11',selYear+'-12']
return yearMonths; return yearMonths;
}, },
sumXmProjectMCostUsersConvert:function(){
sumXmCostLaborsConvert:function(){
var map={}; var map={};
var secMap={}; var secMap={};
this.sumXmProjectMCostUsers.forEach(i=>{
this.sumXmCostLabors.forEach(i=>{
i.key=i.projectId+"_"+i.subjectId+"_"+i.userid; i.key=i.projectId+"_"+i.subjectId+"_"+i.userid;
i.monthKey=i.key+"_"+i.bizMonth; i.monthKey=i.key+"_"+i.bizMonth;
secMap[i.monthKey]=i; secMap[i.monthKey]=i;
@ -150,10 +148,10 @@ import { months } from 'moment';
} }
return list; return list;
}, },
sumXmProjectMCostNousersConvert:function(){
sumXmCostNlaborsConvert:function(){
var map={}; var map={};
var secMap={}; var secMap={};
this.sumXmProjectMCostNousers.forEach(i=>{
this.sumXmCostNlabors.forEach(i=>{
i.key=i.projectId+"_"+i.subjectId; i.key=i.projectId+"_"+i.subjectId;
i.monthKey=i.key+"_"+i.bizzMonth; i.monthKey=i.key+"_"+i.bizzMonth;
secMap[i.monthKey]=i; secMap[i.monthKey]=i;
@ -184,7 +182,7 @@ import { months } from 'moment';
this.listSumSamt(); this.listSumSamt();
} }
else{ else{
this.listSumXmProjectMCostNouser();
this.listSumXmCostNlabor();
} }
}, },
'selProject': function(selProject){ 'selProject': function(selProject){
@ -210,16 +208,16 @@ import { months } from 'moment';
costShow: "支出统计", costShow: "支出统计",
selYear: ""+new Date().getFullYear(), selYear: ""+new Date().getFullYear(),
showType: "", showType: "",
costUser: [],
costNouser: [],
sumXmProjectMCostUsers:[],
costUser:null,
xmCostLabor: [],
xmCostNlabor: [],
sumXmCostLabors:[],
xmCostLabor:null,
fieldName:'', fieldName:'',
queryType:'', queryType:'',
costUserVisible:false,
sumXmProjectMCostNousers:[],
costNouser:null,
costNouserVisible:false,
xmCostLaborVisible:false,
sumXmCostNlabors:[],
xmCostNlabor:null,
xmCostNlaborVisible:false,
maxTableHeight:300, maxTableHeight:300,
rptType:'1',// rptType:'1',//
/**end 自定义属性请在上面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/
@ -248,40 +246,40 @@ import { months } from 'moment';
} }
func(params).then(res=>{ func(params).then(res=>{
if(res.data.tips.isOk){ if(res.data.tips.isOk){
this.sumXmProjectMCostUsers=res.data.data;
this.sumXmCostLabors=res.data.data;
} }
}) })
}, },
listSumXmProjectMCostNouser:function(){
listSumXmCostNlabor:function(){
var parmas={ var parmas={
projectId:this.selProject.id, projectId:this.selProject.id,
} }
listSumXmProjectMCostNouser(parmas).then(res=>{
listSumXmCostNlabor(parmas).then(res=>{
if(res.data.tips.isOk){ if(res.data.tips.isOk){
this.sumXmProjectMCostNousers=res.data.data;
this.sumXmCostNlabors=res.data.data;
} }
}) })
}, },
showCostUserDetails:function(row,fieldName,queryType){
this.costUser=row
showXmCostLaborDetails:function(row,fieldName,queryType){
this.xmCostLabor=row
this.fieldName=fieldName this.fieldName=fieldName
this.queryType=queryType this.queryType=queryType
this.costUserVisible=true;
this.xmCostLaborVisible=true;
}, },
showCostNouserDetails:function(row,fieldName,queryType){
this.costNouser=row
showXmCostNlaborDetails:function(row,fieldName,queryType){
this.xmCostNlabor=row
this.fieldName=fieldName this.fieldName=fieldName
this.queryType=queryType this.queryType=queryType
this.costNouserVisible=true;
this.xmCostNlaborVisible=true;
}, },
/**end 自定义函数请在上面加**/ /**end 自定义函数请在上面加**/
},//end methods },//end methods
components: { components: {
xmCostUser,
xmCostNouser,
xmCostLabor,
xmCostNlabor,
// //
}, },
mounted() { mounted() {

Loading…
Cancel
Save