Browse Source

优化

master
陈裕财 4 years ago
parent
commit
692082d811
  1. 3
      src/common/js/util.js
  2. 32
      src/views/xm/core/xmProduct/XmProductTplMng.vue
  3. 21
      src/views/xm/core/xmProject/XmProjectMng.vue
  4. 39
      src/views/xm/core/xmProject/XmProjectTplMng.vue
  5. 11
      src/views/xm/core/xmProjectTemplate/XmProjectTemplateMng.vue

3
src/common/js/util.js

@ -14,6 +14,9 @@ function padding(s, len) {
export default { export default {
getPositionTop(node) { getPositionTop(node) {
if(!node){
return 150;
}
var top = node.offsetTop; var top = node.offsetTop;
var parent = node.offsetParent; var parent = node.offsetParent;
while(parent != null) { while(parent != null) {

32
src/views/xm/core/xmProduct/XmProductTplMng.vue

@ -5,21 +5,25 @@
<el-input style="width:300px;" v-model="filters.key" placeholder="模板名字"></el-input> <el-input style="width:300px;" v-model="filters.key" placeholder="模板名字"></el-input>
<el-button @click="searchXmProducts" icon="el-icon-search"></el-button> <el-button @click="searchXmProducts" icon="el-icon-search"></el-button>
</el-row> </el-row>
<el-row v-if="showType=='simple'">
<el-row>
<el-checkbox v-model="filters.isMy" false-label="0" true-label="1">我的模板</el-checkbox>
</el-row>
<el-row>
<el-input style="width:80%;" v-model="filters.key" placeholder="模板名字"></el-input>&nbsp;&nbsp;<el-button @click="searchXmProducts" icon="el-icon-search"></el-button>
</el-row>
<el-row v-if="showType=='simple'">
<el-col :span="24">
<el-checkbox v-model="filters.isMy" false-label="0" true-label="1">我的模板</el-checkbox>
</el-col>
<el-col :span="18">
<el-input v-model="filters.key" placeholder="模板名字"></el-input>
</el-col>
<el-col :span="6">
&nbsp;&nbsp;<el-button @click="searchXmProducts" icon="el-icon-search"></el-button>
</el-col>
</el-row> </el-row>
<el-row class="page-main page-height-70" >
<el-row class="page-main" >
<!--列表 XmProduct 产品表--> <!--列表 XmProduct 产品表-->
<el-table ref="table" :height="tableHeight" :data="xmProducts" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table ref="table" :height="maxTableHeight" :data="xmProducts" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column label="序号" width="60" type="index" v-if="showType!='simple'"> <el-table-column label="序号" width="60" type="index" v-if="showType!='simple'">
</el-table-column> </el-table-column>
<el-table-column prop="productName" label="产品模板(参考学习用)" min-width="200" sortable>
<el-table-column prop="productName" label="产品模板(参考学习用)" min-width="200" sortable show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
<el-link @click="intoInfo(scope.row)">{{scope.row.productName}}</el-link> <el-link @click="intoInfo(scope.row)">{{scope.row.productName}}</el-link>
</template> </template>
@ -134,8 +138,7 @@
iterationVisible:false, iterationVisible:false,
iterationSelectVisible:false, iterationSelectVisible:false,
productStateVisible:false, productStateVisible:false,
selectFiltersPmUserVisible:false,
tableHeight:300,
selectFiltersPmUserVisible:false,
dateRanger: [ dateRanger: [
], ],
pickerOptions: util.pickerOptions('datarange'), pickerOptions: util.pickerOptions('datarange'),
@ -145,6 +148,7 @@
id:'',productName:'',code:'',isTpl:'',copyMenu:'1' id:'',productName:'',code:'',isTpl:'',copyMenu:'1'
}, },
copyToVisible:false, copyToVisible:false,
maxTableHeight:300,
/**begin 自定义属性请在下面加 请加备注**/ /**begin 自定义属性请在下面加 请加备注**/
/**end 自定义属性请在上面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/
@ -422,6 +426,10 @@
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
var table=document.querySelector('.project-table .table');
var top=util.getPositionTop(table)
this.maxTableHeight = window.innerHeight - top -100;
this.getXmProducts(); this.getXmProducts();
}); });
} }

21
src/views/xm/core/xmProject/XmProjectMng.vue

@ -3,7 +3,7 @@
<el-row> <el-row>
<el-col :span="6" class="padding-top padding-left" v-if="templateVisible"> <el-col :span="6" class="padding-top padding-left" v-if="templateVisible">
<el-row> <el-row>
<xm-project-tpl-mng @copy="searchXmProjects" ref="xmProjectTplMngRef"></xm-project-tpl-mng>
<xm-project-tpl-mng @copy="searchXmProjects" :show-type="'simple'" ref="xmProjectTplMngRef"></xm-project-tpl-mng>
</el-row> </el-row>
</el-col> </el-col>
<el-col :span="templateVisible?18:24" class="border"> <el-col :span="templateVisible?18:24" class="border">
@ -76,9 +76,9 @@
</el-menu> </el-menu>
</el-row> </el-row>
<el-row class="page-main page-height-80">
<el-row class="page-main">
<!--列表 XmProject xm_project--> <!--列表 XmProject xm_project-->
<el-row v-show="showType" v-loading="load.list">
<el-row v-show="showType" v-loading="load.list" style="overflow:auto;" class="page-height-80">
<el-col v-cloak v-for="(p,i) in ScreenData" :key="i" :xl="8" :lg="8" :md="8" :sm="12"> <el-col v-cloak v-for="(p,i) in ScreenData" :key="i" :xl="8" :lg="8" :md="8" :sm="12">
<el-card @click.native="intoInfo(p,i)" class="project-card" shadow="always"> <el-card @click.native="intoInfo(p,i)" class="project-card" shadow="always">
<div class="project-name" title="这是项目名称">{{p.name}}</div> <div class="project-name" title="这是项目名称">{{p.name}}</div>
@ -115,7 +115,8 @@
</el-col> </el-col>
</el-row> </el-row>
<el-table ref="table" v-cloak v-show="!showType" stripe :data="ScreenData" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table class="project-table" ref="table" :height="maxTableHeight" v-cloak v-show="!showType" stripe :data="ScreenData" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="index" label="序号" width="80" ></el-table-column>
<el-table-column prop="code" label="项目编号" min-width="120" ></el-table-column> <el-table-column prop="code" label="项目编号" min-width="120" ></el-table-column>
<el-table-column prop="name" label="标题" min-width="200" > <el-table-column prop="name" label="标题" min-width="200" >
<template slot-scope="scope"> <template slot-scope="scope">
@ -185,11 +186,11 @@
</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-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
<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-drawer title="项目新增" :visible.sync="addFormVisible" :with-header="false" size="50%" :close-on-click-modal="false" append-to-body> <el-drawer title="项目新增" :visible.sync="addFormVisible" :with-header="false" size="50%" :close-on-click-modal="false" append-to-body>
<xm-project-add :sel-project="addForm" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-project-add> <xm-project-add :sel-project="addForm" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-project-add>
</el-drawer> </el-drawer>
@ -331,7 +332,7 @@
finishFlag: false, finishFlag: false,
xmRecordVisible: false, xmRecordVisible: false,
productSelectVisible:false, productSelectVisible:false,
tableHeight:300,
maxTableHeight:300,
dateRanger: [ ], dateRanger: [ ],
pickerOptions: util.pickerOptions('datarange'), pickerOptions: util.pickerOptions('datarange'),
xmProjectCopy:{ xmProjectCopy:{
@ -742,10 +743,10 @@
this.filters.productId=this.$route.params.productId; this.filters.productId=this.$route.params.productId;
this.filters.productName=this.$route.params.productName; this.filters.productName=this.$route.params.productName;
} }
this.$nextTick(() => {
var table=document.querySelector('.el-table');
this.$nextTick(() => {
var table=document.querySelector('.project-table .table');
var top=util.getPositionTop(table) var top=util.getPositionTop(table)
this.maxTableHeight = window.innerHeight - top -60;
this.maxTableHeight = window.innerHeight - top -100;
this.showInfo = false; this.showInfo = false;
this.getXmProjects(); this.getXmProjects();
}); });

39
src/views/xm/core/xmProject/XmProjectTplMng.vue

@ -1,23 +1,25 @@
<template> <template>
<section class="page-container"> <section class="page-container">
<el-row v-if="showType!='simple'">
<el-row v-if="showType!='simple'" class="padding">
<el-checkbox v-model="filters.isMy" false-label="" true-label="1">我的模板</el-checkbox> <el-checkbox v-model="filters.isMy" false-label="" true-label="1">我的模板</el-checkbox>
<el-input style="width:300px;" v-model="filters.key" placeholder="模板名字"></el-input> <el-input style="width:300px;" v-model="filters.key" placeholder="模板名字"></el-input>
<el-button @click="searchXmProjects" icon="el-icon-search"></el-button> <el-button @click="searchXmProjects" icon="el-icon-search"></el-button>
</el-row> </el-row>
<el-row v-if="showType=='simple'">
<el-row>
<el-checkbox v-model="filters.isMy" false-label="0" true-label="1">我的模板</el-checkbox>
</el-row>
<el-row>
<el-input style="width:80%;" v-model="filters.key" placeholder="模板名字"></el-input>&nbsp;&nbsp;<el-button @click="searchXmProjects" icon="el-icon-search"></el-button>
</el-row>
<el-row v-if="showType=='simple'">
<el-col :span="24">
<el-checkbox v-model="filters.isMy" false-label="0" true-label="1">我的模板</el-checkbox>
</el-col>
<el-col :span="16"><el-input v-model="filters.key" placeholder="模板名字"></el-input>
</el-col>
<el-col :span="8">
&nbsp;&nbsp;<el-button @click="searchXmProjects" icon="el-icon-search"></el-button>
</el-col>
</el-row> </el-row>
<el-row class="page-main page-height-70">
<el-row class="page-main">
<!--列表 XmProject xm_project--> <!--列表 XmProject xm_project-->
<el-row v-loading="load.list"> <el-row v-loading="load.list">
<el-table ref="table" v-cloak stripe :data="ScreenData" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table :height="maxTableHeight" ref="table" v-cloak stripe :data="ScreenData" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column prop="name" label="项目模板(学习/参考)" min-width="200" > <el-table-column prop="name" label="项目模板(学习/参考)" min-width="200" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-link @click.stop="intoInfo(scope.row)">{{scope.row.name}}</el-link> <el-link @click.stop="intoInfo(scope.row)">{{scope.row.name}}</el-link>
@ -91,7 +93,7 @@
export default { export default {
props:['dataScope'],
props:['dataScope','showType'],
computed: { computed: {
...mapGetters([ ...mapGetters([
'userInfo','roles' 'userInfo','roles'
@ -103,12 +105,7 @@
}, },
}, },
watch: {
"showType": function(val){
console.log("shotType_change");
//this.xmProjects = [];
//this.getXmProjects();
},
watch: {
"finishFlag":function(val){ "finishFlag":function(val){
this.searchXmProjects(); this.searchXmProjects();
} }
@ -149,8 +146,7 @@
id:'',code:'',name:'',xmType:'',startTime:'',endTime:'',urgent:'',priority:'',description:'',createUserid:'',createUsername:'',createTime:'',assess:'',assessRemarks:'',status:'',branchId:'',planTotalCost:'',bizProcInstId:'',bizFlowState:'',planNouserAt:'',planInnerUserAt:'',planOutUserAt:'',locked:'',baseTime:'',baseRemark:'',baselineId:'',planWorkload:'',totalReceivables:'',budgetMarginRate:'',contractAmt:'',planInnerUserPrice:'',budgetOutUserPrice:'',planOutUserCnt:'',planInnerUserCnt:'',planWorkingHours:'',budgetCtrl:'0', id:'',code:'',name:'',xmType:'',startTime:'',endTime:'',urgent:'',priority:'',description:'',createUserid:'',createUsername:'',createTime:'',assess:'',assessRemarks:'',status:'',branchId:'',planTotalCost:'',bizProcInstId:'',bizFlowState:'',planNouserAt:'',planInnerUserAt:'',planOutUserAt:'',locked:'',baseTime:'',baseRemark:'',baselineId:'',planWorkload:'',totalReceivables:'',budgetMarginRate:'',contractAmt:'',planInnerUserPrice:'',budgetOutUserPrice:'',planOutUserCnt:'',planInnerUserCnt:'',planWorkingHours:'',budgetCtrl:'0',
}, },
/**begin 自定义属性请在下面加 请加备注**/ /**begin 自定义属性请在下面加 请加备注**/
menukey: "all",
showType: true,
menukey: "all",
showInfo: false, showInfo: false,
selectProject: null, selectProject: null,
finishFlag: false, finishFlag: false,
@ -163,6 +159,7 @@
id:'',name:'',code:'',isTpl:'',copyPhase:'1',copyTask:'1',copyGrup:'0' id:'',name:'',code:'',isTpl:'',copyPhase:'1',copyTask:'1',copyGrup:'0'
}, },
copyToVisible:false, copyToVisible:false,
maxTableHeight:300,
/**end 自定义属性请在上面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/
} }
},//end data },//end data
@ -554,6 +551,10 @@
this.filters.productName=this.$route.params.productName; this.filters.productName=this.$route.params.productName;
} }
this.$nextTick(() => { this.$nextTick(() => {
var table=document.querySelector('.el-table');
var top=util.getPositionTop(table)
this.maxTableHeight = window.innerHeight - top -100;
this.showInfo = false; this.showInfo = false;
this.getXmProjects(); this.getXmProjects();
}); });

11
src/views/xm/core/xmProjectTemplate/XmProjectTemplateMng.vue

@ -1,5 +1,5 @@
<template> <template>
<section class="page-container page-full-height padding border">
<section class="page-container padding border">
<el-row> <el-row>
<el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input> <el-input v-model="filters.key" style="width: 20%;" placeholder="模糊查询"></el-input>
@ -10,9 +10,9 @@
<el-button type="primary" @click="showAdd">+项目模板</el-button> <el-button type="primary" @click="showAdd">+项目模板</el-button>
<el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true">批量删除</el-button> <el-button type="danger" v-loading="load.del" @click="batchDel" :disabled="this.sels.length===0 || load.del==true">批量删除</el-button>
</el-row> </el-row>
<el-row class="page-main page-height-90">
<el-row class="page-main">
<!--列表 XmProjectTemplate xm_project_template--> <!--列表 XmProjectTemplate xm_project_template-->
<el-table :data="xmProjectTemplates" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table :height="maxTableHeight" :data="xmProjectTemplates" @sort-change="sortChange" highlight-current-row v-loading="load.list" border @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-table-column type="selection" width="45"></el-table-column> <el-table-column type="selection" width="45"></el-table-column>
<el-table-column sortable type="index" width="45"></el-table-column> <el-table-column sortable type="index" width="45"></el-table-column>
<el-table-column prop="name" label="模板名称" min-width="80" ></el-table-column> <el-table-column prop="name" label="模板名称" min-width="80" ></el-table-column>
@ -108,6 +108,7 @@
id:'',code:'',name:'',xmType:'',startTime:'',endTime:'',urgent:'',priority:'',description:'',createUserid:'',createUsername:'',createTime:'',assess:'',assessRemarks:'',status:'',branchId:'',planTotalCost:'',bizProcInstId:'',bizFlowState:'',planNouserAt:'',planInnerUserAt:'',planOutUserAt:'',locked:'',baseTime:'',baseRemark:'',baselineId:'',planWorkload:'',totalReceivables:'',budgetMarginRate:'',contractAmt:'',planInnerUserPrice:'',planOutUserPrice:'',planOutUserCnt:'',planInnerUserCnt:'',planWorkingHours:'',taxRate:'',planInnerUserWorkload:'',planOutUserWorkload:'',productId:'',productName:'',templateId:'',tcuserid:'',tcusername:'',tremark:'',tctime:'',tcbranchId:'',shareScope:'' id:'',code:'',name:'',xmType:'',startTime:'',endTime:'',urgent:'',priority:'',description:'',createUserid:'',createUsername:'',createTime:'',assess:'',assessRemarks:'',status:'',branchId:'',planTotalCost:'',bizProcInstId:'',bizFlowState:'',planNouserAt:'',planInnerUserAt:'',planOutUserAt:'',locked:'',baseTime:'',baseRemark:'',baselineId:'',planWorkload:'',totalReceivables:'',budgetMarginRate:'',contractAmt:'',planInnerUserPrice:'',planOutUserPrice:'',planOutUserCnt:'',planInnerUserCnt:'',planWorkingHours:'',taxRate:'',planInnerUserWorkload:'',planOutUserWorkload:'',productId:'',productName:'',templateId:'',tcuserid:'',tcusername:'',tremark:'',tctime:'',tcbranchId:'',shareScope:''
}, },
projectTemplateInfoVisible:false, projectTemplateInfoVisible:false,
maxTableHeight:300,
/**begin 自定义属性请在下面加 请加备注**/ /**begin 自定义属性请在下面加 请加备注**/
/**end 自定义属性请在上面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/
@ -257,6 +258,10 @@
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
var table=document.querySelector('.el-table');
var top=util.getPositionTop(table)
this.maxTableHeight = window.innerHeight - top -60;
this.getXmProjectTemplates(); this.getXmProjectTemplates();
listOption([{categoryId:'all',itemCode:'projectType'}] ).then(res=>{ listOption([{categoryId:'all',itemCode:'projectType'}] ).then(res=>{
if(res.data.tips.isOk){ if(res.data.tips.isOk){

Loading…
Cancel
Save