Browse Source

验收结算

master
qqkj 5 years ago
parent
commit
d848c7a931
  1. 4
      config/index.js
  2. 69
      src/views/xm/core/xmMenu/XmMenuMng.vue
  3. 31
      src/views/xm/core/xmTaskExecuser/XmTaskExecuserMng.vue

4
config/index.js

@ -11,7 +11,7 @@ module.exports = {
assetsSubDirectory: 'static', assetsSubDirectory: 'static',
assetsPublicPath: '/', assetsPublicPath: '/',
proxyTable: { proxyTable: {
/**
'/api/m1/xm': { '/api/m1/xm': {
target: 'http://localhost:7067', target: 'http://localhost:7067',
changeOrigin: true, changeOrigin: true,
@ -19,7 +19,7 @@ module.exports = {
'^/api/m1/xm': '/xm' '^/api/m1/xm': '/xm'
} }
}, },
/**
'/api/m1/workflow': { '/api/m1/workflow': {
target: 'http://localhost:7080', target: 'http://localhost:7080',
changeOrigin: true, changeOrigin: true,

69
src/views/xm/core/xmMenu/XmMenuMng.vue

@ -1,26 +1,32 @@
<template> <template>
<section> <section>
<el-row>
<el-row >
<el-col v-show="!batchEditVisible" :span="filters.product?6:24" class="app-container">
<xm-product-mng :sel-project="selProject" @row-click="onProductSelected" ref="xmProductMng" :simple="true"></xm-product-mng>
</el-col>
<el-col v-show="filters.product" :span="!batchEditVisible? 18:24" >
<el-row class="app-container"> <el-row class="app-container">
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input>
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmMenus">查询</el-button>
<el-button v-if=" batchEditVisible==false && isPmUser" type="primary" @click="handleExport">导出</el-button>
<el-button v-if=" batchEditVisible==false && isPmUser" type="success" @click="showAdd">+故事</el-button>
<el-button v-if=" batchEditVisible==true && isPmUser" type="success" @click="showImportFromMenuTemplate">+批量导入故事</el-button>
<el-button v-if=" batchEditVisible==false && isPmUser" type="success" @click="toBatchEdit">批量修改</el-button>
<el-button v-if=" batchEditVisible==true && isPmUser" type="warning" @click="batchSaveMenu">保存</el-button>
<el-button v-if=" batchEditVisible==true && isPmUser" type="success" @click="handlePopover(null,'add')" >+故事</el-button>
<el-button v-if=" batchEditVisible==true && isPmUser" type="primary" @click="noBatchEdit">返回</el-button>
<el-button v-if=" batchEditVisible==false " type="warning" @click="loadTasksToXmMenuState">刷新统计数据</el-button>
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询">
<template slot="append">
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmMenus" icon="el-icon-search"></el-button>
</template>
</el-input>
<el-button v-if=" batchEditVisible==false && isPmUser" type="primary" @click="handleExport" icon="el-icon-download">导出</el-button>
<el-button v-if=" batchEditVisible==false && isPmUser" type="success" @click="showAdd" icon="el-icon-plus">故事</el-button>
<el-button v-if=" batchEditVisible==true && isPmUser" type="success" @click="showImportFromMenuTemplate" icon="el-icon-upload2">模板导入</el-button>
<el-button v-if=" batchEditVisible==false && isPmUser" type="success" @click="toBatchEdit" icon="el-icon-edit">修改</el-button>
<el-button v-if=" batchEditVisible==true && isPmUser" type="warning" @click="batchSaveMenu" icon="el-icon-finished">保存</el-button>
<el-button v-if=" batchEditVisible==true && isPmUser" type="success" @click="handlePopover(null,'add')" icon="el-icon-plus">故事</el-button>
<el-button v-if=" batchEditVisible==true && isPmUser" type="primary" @click="noBatchEdit" icon="el-icon-back">返回</el-button>
<el-button v-if=" batchEditVisible==false " type="warning" @click="loadTasksToXmMenuState" icon="el-icon-s-marketing">刷新统计数据</el-button>
<el-button v-if=" batchEditVisible==true && isPmUser " type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true">批量删除</el-button> <el-button v-if=" batchEditVisible==true && isPmUser " type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true">批量删除</el-button>
</el-row> </el-row>
<el-row v-show="batchEditVisible" class="app-container">
<el-row class="app-container">
<el-col v-show="!batchEditVisible" :span="6">
<xm-product-mng :sel-project="selProject" @row-click="onProductSelected" ref="xmProductMng" :simple="true"></xm-product-mng>
</el-col>
<el-col v-show="batchEditVisible" :span="!selProject && !batchEditVisible? 18:24">
<el-table :data="xmMenusTreeData" class="drag-table" default-expand-all row-key="menuId" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> <el-table :data="xmMenusTreeData" class="drag-table" default-expand-all row-key="menuId" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column sortable type="selection" width="45"></el-table-column> <el-table-column sortable type="selection" width="45"></el-table-column>
<el-table-column sortable prop="seqNo" label="序号" min-width="100"> <el-table-column sortable prop="seqNo" label="序号" min-width="100">
@ -36,7 +42,7 @@
<el-button type="danger" size="mini" @click="handlePopover(scope.row,'delete')">删除当前行</el-button> <el-button type="danger" size="mini" @click="handlePopover(scope.row,'delete')">删除当前行</el-button>
<el-button type="success" size="mini" @click="handlePopover(scope.row,'addSub')">增加子行</el-button> <el-button type="success" size="mini" @click="handlePopover(scope.row,'addSub')">增加子行</el-button>
</div> </div>
<el-button slot="reference" :type="scope.row.opType?'success':'plain'" size="mini" icon="el-icon-edit" circle></el-button>
<el-button slot="reference" :type="scope.row.opType?'success':'plain'" size="mini" icon="el-icon-more" circle></el-button>
</el-popover> </el-popover>
<el-input style="width:100%;" v-model="scope.row.seqNo" @change="fieldChange(scope.row,'seqNo')"></el-input> <el-input style="width:100%;" v-model="scope.row.seqNo" @change="fieldChange(scope.row,'seqNo')"></el-input>
</div> </div>
@ -64,8 +70,8 @@
</el-table> </el-table>
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination> <el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
</el-col>
<el-col v-show="!batchEditVisible" :span="!batchEditVisible? 18:24">
</el-row>
<el-row v-show="!batchEditVisible" class="app-container">
<el-table :data="xmMenusTreeData" default-expand-all row-key="menuId" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;"> <el-table :data="xmMenusTreeData" default-expand-all row-key="menuId" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column sortable type="selection" width="40"></el-table-column> <el-table-column sortable type="selection" width="40"></el-table-column>
<el-table-column prop="menuName" label="故事名称" min-width="140" > <el-table-column prop="menuName" label="故事名称" min-width="140" >
@ -96,29 +102,31 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="300" fixed="right" >
<el-table-column label="操作" width="320" fixed="right" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="!selProject" type="primary" @click="showTaskListForMenu(scope.row,scope.$index)">任务</el-button>
<el-button v-if="selProject" type="primary" @click="showTasks(scope.row,scope.$index)">任务</el-button>
<el-button type="primary" @click="toIterationList(scope.row,scope.$index)">迭代</el-button>
<el-button type="success" @click="showSubAdd( scope.row,scope.$index)" icon="el-icon-plus"></el-button>
<el-button v-if="!selProject" type="primary" @click="showTaskListForMenu(scope.row,scope.$index)" icon="el-icon-s-operation">任务</el-button>
<el-button v-if="selProject" type="primary" @click="showTasks(scope.row,scope.$index)" icon="el-icon-s-operation">任务</el-button>
<el-button type="primary" @click="toIterationList(scope.row,scope.$index)" icon="el-icon-document-copy">迭代</el-button>
<el-popover style="padding-left:10px;" <el-popover style="padding-left:10px;"
v-if="isPmUser" v-if="isPmUser"
placement="top-start" placement="top-start"
width="700"
width="450"
trigger="click" > trigger="click" >
<el-button type="primary" @click="showEdit(scope.row)">去修改</el-button>
<el-button type="success" @click="showSubAdd( scope.row,scope.$index)">+子故事</el-button>
<el-button type="success" @click="showImportFromMenuTemplate(scope.row)">从模板导入子故事</el-button>
<el-button v-if=" batchEditVisible==false" type="warning" @click="showTaskList(scope.row)">去关联任务</el-button>
<el-button type="danger" @click="handleDel(scope.row)">删除</el-button>
<el-button type="primary" @click="showEdit(scope.row)" icon="el-icon-edit"></el-button>
<el-button type="success" @click="showImportFromMenuTemplate(scope.row)" icon="el-icon-upload2">模板导入</el-button>
<el-button v-if=" batchEditVisible==false" type="warning" @click="showTaskList(scope.row)" icon="el-icon-s-operation">去关联任务</el-button>
<el-button type="danger" @click="handleDel(scope.row)" icon="el-icon-delete" circle></el-button>
<el-button slot="reference">更多操作</el-button>
<el-button slot="reference" icon="el-icon-more" circle></el-button>
</el-popover> </el-popover>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination> <el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
</el-row>
</el-col> </el-col>
<!--编辑 XmMenu xm_project_menu界面--> <!--编辑 XmMenu xm_project_menu界面-->
<el-dialog title="编辑故事" :visible.sync="editFormVisible" width="50%" append-to-body :close-on-click-modal="false"> <el-dialog title="编辑故事" :visible.sync="editFormVisible" width="50%" append-to-body :close-on-click-modal="false">
@ -162,6 +170,7 @@
<users-select @confirm="onUserSelected" ref="usersSelect"></users-select> <users-select @confirm="onUserSelected" ref="usersSelect"></users-select>
</el-dialog> </el-dialog>
</el-row> </el-row>
</el-row>
</section> </section>
</template> </template>

31
src/views/xm/core/xmTaskExecuser/XmTaskExecuserMng.vue

@ -43,7 +43,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="startTime" label="开工时间" min-width="80" ></el-table-column> <el-table-column prop="startTime" label="开工时间" min-width="80" ></el-table-column>
<el-table-column prop="endTime" label="完工时间" min-width="80" ></el-table-column> <el-table-column prop="endTime" label="完工时间" min-width="80" ></el-table-column>
<el-table-column prop="status" label="状态" min-width="80" :formatter="formatterOption">
<el-table-column prop="status" label="状态" min-width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="primary" v-if="scope.row.status=='0'">候选中</el-tag> <el-tag type="primary" v-if="scope.row.status=='0'">候选中</el-tag>
<el-tag type="success" v-else-if="scope.row.status=='1'">执行中</el-tag> <el-tag type="success" v-else-if="scope.row.status=='1'">执行中</el-tag>
@ -60,7 +60,18 @@
<el-table-column sortable prop="quoteAmount" label="报价金额" min-width="80" ></el-table-column> <el-table-column sortable prop="quoteAmount" label="报价金额" min-width="80" ></el-table-column>
<el-table-column sortable prop="quoteWeekday" label="报价工期" min-width="80" ></el-table-column> <el-table-column sortable prop="quoteWeekday" label="报价工期" min-width="80" ></el-table-column>
<el-table-column sortable prop="matchScore" label="匹配指数" min-width="80" ></el-table-column> <el-table-column sortable prop="matchScore" label="匹配指数" min-width="80" ></el-table-column>
<el-table-column prop="settleStatus" label="结算状态" min-width="80" :formatter="formatterOption"> </el-table-column>
<el-table-column prop="settleStatus" label="结算状态" min-width="80">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.settleStatus=='1'">已部分结算</el-tag>
<el-tag type="success" v-else-if="scope.row.settleStatus=='2'">无需结算</el-tag>
<el-tag type="warning" v-else-if="scope.row.settleStatus=='4'">结算审批中</el-tag>
<el-tag type="danger" v-else-if="scope.row.settleStatus=='5'">结算失败</el-tag>
<el-tag type="success" v-else-if="scope.row.settleStatus=='6'">已全部结算完毕</el-tag>
<el-tooltip v-else content="验收通过后可以申请结算">
<el-tag type="primary" >未开始结算</el-tag>
</el-tooltip>
</template>
</el-table-column>
<el-table-column sortable prop="settleAmount" label="结算金额" min-width="80" ></el-table-column> <el-table-column sortable prop="settleAmount" label="结算金额" min-width="80" ></el-table-column>
<el-table-column sortable prop="settleWorkload" label="结算工作量" min-width="80" ></el-table-column> <el-table-column sortable prop="settleWorkload" label="结算工作量" min-width="80" ></el-table-column>
<el-table-column sortable prop="settleTime" label="结算时间" min-width="80" ></el-table-column> <el-table-column sortable prop="settleTime" label="结算时间" min-width="80" ></el-table-column>
@ -71,7 +82,7 @@
<el-button type="primary" v-if="scope.row.status=='4'" @click="toTest(scope.row)">再申请验收</el-button> <el-button type="primary" v-if="scope.row.status=='4'" @click="toTest(scope.row)">再申请验收</el-button>
<!--结算状态0未结算1已部分结算2无需结算4已申请结算5结算失败6已全部结算--> <!--结算状态0未结算1已部分结算2无需结算4已申请结算5结算失败6已全部结算-->
<el-button type="success" v-if="scope.row.status=='3' " @click="settle" >申请结算</el-button>
<el-button type="success" v-if="scope.row.status=='3' && scope.row.settleStatus!='2' && scope.row.settleStatus!='4' && scope.row.settleStatus!='6' " @click="settle" >申请结算</el-button>
<el-button type="success" v-if="scope.row.status=='2' " @click="testSuccess(scope.row)" >验收通过</el-button> <el-button type="success" v-if="scope.row.status=='2' " @click="testSuccess(scope.row)" >验收通过</el-button>
<el-button type="danger" v-if="scope.row.status=='2' " @click="testFail(scope.row)" >验收不通过</el-button> <el-button type="danger" v-if="scope.row.status=='2' " @click="testFail(scope.row)" >验收不通过</el-button>
@ -658,10 +669,11 @@
projectId:projectId, projectId:projectId,
taskId:taskId, taskId:taskId,
userid:row.userid, userid:row.userid,
settleAmount:row.settleAmount,
settleWorkload:row.settleWorkload,
settleAmount:this.settleForm.settleAmount,
settleWorkload:this.settleForm.settleWorkload,
id:row.id, id:row.id,
branchId:branchId
branchId:branchId,
username:row.username
} }
}, },
} }
@ -669,9 +681,10 @@
if(bizKey=="xm_task_execuser_settle_approva"){ if(bizKey=="xm_task_execuser_settle_approva"){
// //
params.mainTitle='['+row.username+']发起关于任务【'+projectName+'-'+taskName+"】结算申请"; params.mainTitle='['+row.username+']发起关于任务【'+projectName+'-'+taskName+"】结算申请";
params.mainContext='项目编号:'+projectId+','+'项目名称:'+projectName+',任务名称:'+taskName+',结算金额为:'+row.settleAmount+',结算工作量为:'+row.settleWorkload;
params.restUrl=config.getOaBasePath()+"/xm/xmTaskExecuser/processApprova";
this.html2canvas(document.querySelector(".settleForm"),row,params);
params.mainContext='项目编号:'+projectId+','+'项目名称:'+projectName+',任务名称:'+taskName+',结算金额为:'+this.settleForm.settleAmount+',结算工作量为:'+this.settleForm.settleWorkload;
params.restUrl=config.getXmBasePath()+"/xm/core/xmTaskExecuser/processApprova";
this.$router.push({name:'ProcdefListForBizStart',params:params});
//this.html2canvas(document.querySelector(".settleForm"),row,params);
}else { }else {
this.$message.error("不支持的审批事项"); this.$message.error("不支持的审批事项");
return; return;

Loading…
Cancel
Save