Browse Source

优化

master
陈裕财 4 years ago
parent
commit
be951ea56c
  1. 17
      src/views/xm/core/xmProduct/XmProductAdd.vue
  2. 52
      src/views/xm/core/xmProduct/XmProductEdit.vue
  3. 22
      src/views/xm/core/xmProduct/XmProductMng.vue
  4. 35
      src/views/xm/core/xmProduct/XmProductOverview.vue

17
src/views/xm/core/xmProduct/XmProductAdd.vue

@ -1,5 +1,14 @@
<template>
<section class="page-container page-full-height padding border">
<el-row class="padding-bottom">
<el-steps :active="calcProjectStatusStep" simple finish-status="success">
<el-step v-for="(i,index) in options['projectStatus']" :title="i.optionName" :key="index">
<el-row slot="title" @click.native.stop="editForm.status=i.optionValue">
{{i.optionName}}
</el-row>
</el-step>
</el-steps>
</el-row>
<el-row class="page-main page-height-80">
<!--新增界面 XmProduct 产品表-->
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm">
@ -33,7 +42,7 @@
<script>
import util from '@/common/js/util';//
//import { listOption } from '@/api/mdp/meta/itemOption';//
import { listOption } from '@/api/mdp/meta/itemOption';//
import { addXmProduct } from '@/api/xm/core/xmProduct';
import { mapGetters } from 'vuex'
import UsersSelect from "@/views/mdp/sys/user/UsersSelect";
@ -58,7 +67,7 @@
},
data() {
return {
options:{},// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
options:{xmProductPstatus:[]},// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
load:{ list: false, edit: false, del: false, add: false },//...
addFormRules: {
id: [
@ -129,7 +138,7 @@
clearPmUser:function(){
this.addForm.pmUserid=''
this.addForm.pmUsername=''
}
},
/**begin 在下面加自定义方法,记得补上面的一个逗号**/
/**end 在上面加自定义方法**/
@ -139,7 +148,7 @@
// 'xm-product-edit':XmProductEdit
UsersSelect
},
mounted() {
mounted() {
this.addForm=Object.assign(this.addForm, this.xmProduct);
this.addForm.pmUserid=this.userInfo.userid
this.addForm.pmUsername=this.userInfo.username

52
src/views/xm/core/xmProduct/XmProductEdit.vue

@ -1,14 +1,33 @@
<template>
<section class="page-container padding border">
<el-row class="padding-header">
<el-steps :active="calcXmProductPstatusStep" simple finish-status="success">
<el-step v-for="(i,index) in options['xmProductPstatus']" :title="i.optionName" :key="index" @click.native.stop="editForm.pstatus=i.optionValue">
<el-row slot="title" >
{{i.optionName}}
</el-row>
</el-step>
</el-steps>
</el-row>
<el-row class="page-main">
<!--新增界面 XmProduct 产品表-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm">
<el-form-item label="产品编号" prop="id">
<el-input v-model="editForm.id" placeholder="产品编号" ></el-input>
<el-form-item label="产品编码" prop="code">
<el-input v-model="editForm.code" placeholder="产品编" ></el-input>
</el-form-item>
<el-form-item label="产品名称" prop="productName">
<el-input v-model="editForm.productName" placeholder="产品名称" ></el-input>
</el-form-item>
<el-form-item label="状态" prop="pstatus">
<el-select v-model="editForm.pstatus" placeholder="状态" >
<el-option v-for="(item,index) in options['xmProductPstatus']" :label="item.optionName" :value="item.optionValue" :key="index"></el-option>
</el-select>
</el-form-item>
<el-form-item label="产品名称" prop="productName">
<el-input v-model="editForm.productName" placeholder="产品名称" ></el-input>
</el-form-item>
<el-form-item label="产品经理" prop="pmUserid">
<el-tag v-if="editForm.pmUserid" closable @close="clearPmUser">{{editForm.pmUsername}}</el-tag>
<el-tag v-else>未配置</el-tag>
@ -34,7 +53,7 @@
<script>
import util from '@/common/js/util';//
//import { listOption } from '@/api/mdp/meta/itemOption';//
import { listOption } from '@/api/mdp/meta/itemOption';//
import { editXmProduct } from '@/api/xm/core/xmProduct';
import { mapGetters } from 'vuex'
import UsersSelect from "@/views/mdp/sys/user/UsersSelect";
@ -44,7 +63,21 @@
computed: {
...mapGetters([
'userInfo','roles'
])
]),
calcXmProductPstatusStep(){
if(this.options['xmProductPstatus']){
var index=this.options['xmProductPstatus'].findIndex(i=>{
if(i.optionValue==this.editForm.pstatus){
return true;
}else{
return false;
}
})
return index+1;
}else{
return 0;
}
},
},
props:['xmProduct','visible'],
watch: {
@ -59,7 +92,7 @@
},
data() {
return {
options:{},// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
options:{xmProductPstatus:[]},// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
load:{ list: false, add: false, del: false, edit: false },//...
editFormRules: {
id: [
@ -76,7 +109,7 @@
},
//
editForm: {
id:'',productName:'',branchId:'',remark:'',pmUserid:'',pmUsername:'',ctime:''
id:'',productName:'',branchId:'',remark:'',pmUserid:'',pmUsername:'',ctime:'',pstatus:'0'
},
userSelectVisible:false,
/**begin 在下面加自定义属性,记得补上面的一个逗号**/
@ -148,6 +181,13 @@
UsersSelect
},
mounted() {
listOption([{categoryId:'all',itemCode:'xmProductPstatus'}] ).then(res=>{
if(res.data.tips.isOk){
this.options['xmProductPstatus']=res.data.data.xmProductPstatus
}
});
this.editForm= this.xmProduct;
/**在下面写其它函数***/

22
src/views/xm/core/xmProduct/XmProductMng.vue

@ -132,6 +132,8 @@
<el-link type="primary" @click="intoInfo(scope.row)">{{scope.row.productName}}</el-link>
</template>
</el-table-column>
<el-table-column prop="pstatus" label="状态" width="120" sortable :formatter="formatPstatus">
</el-table-column>
<el-table-column prop="finishRate" label="进度" width="120" sortable>
<template slot-scope="scope">
<font class="align-right"><el-tag :type="scope.row.finishRate>=100?'success':'warning'">{{scope.row.finishRate}}%</el-tag>
@ -232,7 +234,7 @@
<script>
import util from '@/common/js/util';//
//import Sticky from '@/components/Sticky' // header
//import { listOption } from '@/api/mdp/meta/itemOption';//
import { listOption } from '@/api/mdp/meta/itemOption';//
import { listXmProduct,listXmProductWithState, delXmProduct, batchDelXmProduct,copyTo } from '@/api/xm/core/xmProduct';
import { addXmIterationProductLink,delXmIterationProductLink } from '@/api/xm/core/xmIterationProductLink';
import { loadTasksToXmProductState } from '@/api/xm/core/xmProductState';
@ -285,7 +287,9 @@ import XmProductSelect from './XmProductSelect.vue';
},
load:{ list: false, edit: false, del: false, add: false },//...
sels: [],//
options:{},// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
options:{
xmProductPstatus:[]
},// params=[{categoryId:'0001',itemCode:'sex'}] {'sex':[{optionValue:'1',optionName:'',seqOrder:'1',fp:'',isDefault:'0'},{optionValue:'2',optionName:'',seqOrder:'2',fp:'',isDefault:'0'}]}
addFormVisible: false,//xmProduct
//xmProduct
@ -607,6 +611,14 @@ import XmProductSelect from './XmProductSelect.vue';
})
},
formatPstatus(row, column, cellValue, index){
var item=this.options.xmProductPstatus.find(i=>i.optionValue==cellValue)
if(item){
return item.optionName
}else{
return cellValue;
}
}
/**end 自定义函数请在上面加**/
},//end methods
@ -623,6 +635,12 @@ import XmProductSelect from './XmProductSelect.vue';
//
},
mounted() {
listOption([{categoryId:'all',itemCode:'xmProductPstatus'}] ).then(res=>{
if(res.data.tips.isOk){
this.options['xmProductPstatus']=res.data.data.xmProductPstatus
}
});
this.$nextTick(() => {
var clientRect=this.$refs.table.$el.getBoundingClientRect();
var subHeight=70/1000 * window.innerHeight;

35
src/views/xm/core/xmProduct/XmProductOverview.vue

@ -4,11 +4,11 @@
<el-row style="margin-bottom:10px">
<el-card class="box-card" style="padding:0px ;height:100px">
<div>
<el-row style="padding:10px">
<el-steps :active="this.xmProduct.pstatus+1" align-center finish-status="success">
<el-step title="未开始"></el-step>
<el-step title="研发中"></el-step>
<el-step title="已完成"></el-step>
<el-row style="padding:10px">
<el-steps :active="calcXmProductPstatusStep" align-center finish-status="success">
<el-step v-for="(i,index) in options['xmProductPstatus']" :title="i.optionName" :key="index" >
</el-step>
</el-steps>
</el-row>
</div>
@ -242,6 +242,7 @@
import util from "@/common/js/util"; //
import { mapGetters } from "vuex";
import { listOption } from '@/api/mdp/meta/itemOption';//
export default {
computed: {
@ -307,6 +308,21 @@ export default {
xmProductCpd(){
return this.xmProduct;
},
calcXmProductPstatusStep(){
if(this.options['xmProductPstatus']){
var index=this.options['xmProductPstatus'].findIndex(i=>{
if(i.optionValue==this.xmProductCpd.pstatus){
return true;
}else{
return false;
}
})
return index+1;
}else{
return 0;
}
}
},
props:['xmProduct'],
@ -321,6 +337,9 @@ export default {
data() {
return {
isActive: true,
options:{
xmProductPstatus:[]
}
};
},
@ -577,6 +596,12 @@ export default {
},
mounted() {
listOption([{categoryId:'all',itemCode:'xmProductPstatus'}] ).then(res=>{
if(res.data.tips.isOk){
this.options['xmProductPstatus']=res.data.data.xmProductPstatus
}
});
this.$nextTick(() => {
});
this.drawAllBar();

Loading…
Cancel
Save