Browse Source

优化

master
陈裕财 3 years ago
parent
commit
75f4522fa8
  1. 339
      src/views/xm/core/xmProject/XmProjectMng.vue

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

@ -2,7 +2,7 @@
<section class="padding"> <section class="padding">
<el-row > <el-row >
<xm-product-select class="hidden-md-and-down" :auto-select="false" @row-click="onProductSelected" @clear="onProductClose"></xm-product-select> <xm-product-select class="hidden-md-and-down" :auto-select="false" @row-click="onProductSelected" @clear="onProductClose"></xm-product-select>
<el-select v-model="menukey" @change="handleSelect" clearable style="width:100px;">
<el-select v-model="menukey" @change="handleSelect" clearable style="width:10em;">
<el-option value="all" label="全部"></el-option> <el-option value="all" label="全部"></el-option>
<el-option value="compete" label="我参与"></el-option> <el-option value="compete" label="我参与"></el-option>
<el-option value="leader" label="我管理"></el-option> <el-option value="leader" label="我管理"></el-option>
@ -13,57 +13,67 @@
<el-option value="myExecuserStatus1" label="我执行"></el-option> <el-option value="myExecuserStatus1" label="我执行"></el-option>
<el-option value="myExecuserStatus7" label="我放弃"></el-option> <el-option value="myExecuserStatus7" label="我放弃"></el-option>
</el-select> </el-select>
<el-select v-model="filters.status" clearable placeholder="项目状态" style="width:100px;">
<el-option v-for="(item,index) in dicts['projectStatus']" :value="item.id" :label="item.name" :key="index"></el-option>
</el-select>
<mdp-select-dict label="项目状态" placeholder="状态" style="width:10em;" :dict="dicts['projectStatus']" v-model="filters.status"></mdp-select-dict>
<el-input v-model="filters.key" style="width:15%;" placeholder="项目名称模糊查询" clearable >
<el-input v-model="filters.key" style="width:10em;" placeholder="名称查询" clearable >
</el-input> </el-input>
<el-button type="primary" icon="el-icon-search" @click="searchXmProjects">查询</el-button> <el-button type="primary" icon="el-icon-search" @click="searchXmProjects">查询</el-button>
<el-popover <el-popover
placement="top-start" placement="top-start"
title="更多条件、操作" title="更多条件、操作"
width="500"
trigger="click" >
<el-row>
<el-row>
<font class="more-label-font">显示方式:</font>
width="600"
trigger="click" >
<el-descriptions class="margin-top" size="mini" :column="1" border>
<template slot="extra">
<el-button type="text" @click="templateVisible=!templateVisible">{{templateVisible?'隐藏模板':'显示模板'}}</el-button>
<el-button type="text" @click="guiderStart(true)" icon="el-icon-help">新手导航</el-button>
<el-button type="primary" style="float:right;" @click="searchXmProjects" icon="el-icon-search">查询</el-button>
</template>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-time"></i>
显示方式
</template>
<el-radio v-model="showType" :label="false">表格</el-radio> <el-radio v-model="showType" :label="false">表格</el-radio>
<el-radio v-model="showType" :label="true">卡片</el-radio> <el-radio v-model="showType" :label="true">卡片</el-radio>
</el-row>
<el-row>
<el-button type="text" @click="templateVisible=!templateVisible">{{templateVisible?'隐藏模板':'显示模板'}}</el-button>
<el-button type="text" @click="guiderStart(true)" icon="el-icon-help">新手导航</el-button>
</el-row>
<el-divider></el-divider>
<el-row v-if="filters.productId">
<font class="more-label-font">项目:</font>
<xm-product-select style="display:inline;" :auto-select="false" @row-click="onProductSelected" @clear="onProductClose"></xm-product-select>
</el-row>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-document"></i>
选择产品
</template>
<xm-product-select style="display:inline;" :auto-select="false" @row-click="onProductSelected" @clear="onProductClose"></xm-product-select>
</el-descriptions-item>
<el-descriptions-item :span="2">
<template slot="label">
<i class="el-icon-watch-1"></i>
创建时间
</template>
<el-row>
<font class="more-label-font">项目编号:</font>
<el-input v-model="filters.id" clearable style="width:200px;"></el-input>
</el-row>
<el-row>
<font class="more-label-font">创建时间:</font>
<el-date-picker
v-model="dateRanger"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="完成日期"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00','23:59:59']"
:picker-options="pickerOptions"
></el-date-picker>
</el-row>
<el-row>
<el-button style="float:right;" type="primary" icon="el-icon-search" @click="searchXmProjects">查询</el-button>
</el-row>
</el-row>
<mdp-date-range
v-model="filters"
type="daterange"
start-key="createTimeStart"
end-key="createTimeEnd"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="完成日期"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']"
:auto-default="false"
key="planEndTime"
></mdp-date-range>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-document"></i>
项目编号
</template>
<el-input v-model="filters.id" clearable style="width:100%;"></el-input>
</el-descriptions-item>
</el-descriptions>
<el-button slot="reference" icon="el-icon-more" id="prj-more-btn"></el-button> <el-button slot="reference" icon="el-icon-more" id="prj-more-btn"></el-button>
</el-popover> </el-popover>
<span style="float:right;"> <span style="float:right;">
@ -181,115 +191,122 @@
</el-result> </el-result>
</el-row> </el-row>
</el-row> </el-row>
<el-table ref="table" :height="maxTableHeight" v-cloak v-show="!showType" fit stripe :data="ScreenData" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-row slot="empty">
<el-result icon="info" title="信息提示" subTitle="没有查到相关项目,有可能是您暂时还没有项目,有可能是您无权限查询项目。">
<template slot="extra">
<el-row>
<el-row class="padding-top">
<el-table ref="table" :height="maxTableHeight" v-cloak v-show="!showType" fit stripe :data="ScreenData" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick" style="width: 100%;" :border="true">
<el-row slot="empty">
<el-result icon="info" title="信息提示" subTitle="没有查到相关项目,有可能是您暂时还没有项目,有可能是您无权限查询项目。">
<template slot="extra">
<el-row> <el-row>
您可以通过 &nbsp;<el-button @click="showAdd" icon="el-icon-plus" type="primary" plain>项目</el-button>&nbsp;
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">公共模板</el-button>&nbsp;体验项目的过程。<br/>
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">拷贝模板</el-button>&nbsp;快速创建新项目。<br/>
<el-row>
您可以通过 &nbsp;<el-button @click="showAdd" icon="el-icon-plus" type="primary" plain>项目</el-button>&nbsp;
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">公共模板</el-button>&nbsp;体验项目的过程。<br/>
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">拷贝模板</el-button>&nbsp;快速创建新项目。<br/>
</el-row>
</el-row> </el-row>
</el-row>
</template>
</el-result>
</el-row>
<el-table-column type="index" label="序号" width="60" fixed="left"></el-table-column>
<el-table-column prop="id" label="项目编码" min-width="150" sortable show-overflow-tooltip fixed="left"></el-table-column>
<el-table-column prop="name" label="标题" sortable min-width="250" fixed="left">
<template slot-scope="scope">
<el-link type="primary" @click.stop="intoInfo(scope.row)">{{scope.row.name}}</el-link>
</template>
</el-table-column>
<el-table-column prop="status" label="状态" width="100" sortable fixed="left">
<template slot-scope="scope">
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'projectStatus',scope.row.status)" :key="index" :type="item.className">{{item.name}}</el-tag>
</template>
</el-table-column>
<el-table-column prop="finishRate" label="进度" width="100" sortable>
<template slot-scope="scope">
<font ><el-tag :type="scope.row.finishRate>=100?'success':'warning'">{{scope.row.finishRate}}%</el-tag>
<el-button id="guider-four" type="text" icon="el-icon-video-play" title="统计项目的工作量、进度、需求、bugs等数据" @click.stop="loadTasksToXmProjectState( scope.row)"></el-button>
</font>
</template>
</el-table-column>
<el-table-column prop="productCnt" label="项目数" sortable min-width="120" >
</el-table-column>
<el-table-column prop="iterationCnt" label="迭代数" sortable min-width="120" >
</el-table-column>
<el-table-column prop="menuCnt" label="需求数" sortable min-width="120" >
<template slot-scope="scope">
<span title="完成的需求数 / 需求总数 ">{{scope.row.menuCnt>0?scope.row.menuFinishCnt+'&nbsp;/&nbsp;'+scope.row.menuCnt:''}}</span>
</template>
</el-table-column>
<el-table-column prop="taskCnt" label="任务数" sortable min-width="120" >
<template slot-scope="scope">
<span title="完成的任务数 / 任务总数 ">{{ ((scope.row.taskFinishCnt||0)+(scope.row.taskSetCnt||0)+(scope.row.taskCloseCnt||0))+'&nbsp;/&nbsp;'+(scope.row.taskCnt||0)}}</span>
</template>
</el-table-column>
<el-table-column prop="bugCnt" label="缺陷" sortable min-width="120" >
<template slot-scope="scope">
<span title="关闭的缺陷数 / 缺陷总数 ">{{scope.row.bugCnt>0?scope.row.closedBugs+'&nbsp;/&nbsp;'+scope.row.bugCnt:''}}</span>
</template>
</template>
</el-result>
</el-row>
<el-table-column prop="name" label="标题" sortable min-width="250" fixed="left">
<template slot-scope="scope">
<el-link type="primary" @click.stop="intoInfo(scope.row)">{{scope.row.name}}</el-link>
</template>
</el-table-column>
<el-table-column prop="status" label="状态" width="100" sortable fixed="left">
<template slot-scope="scope">
<mdp-select-dict-tag :dict="dicts['projectStatus']" :disabled="true" v-model="scope.row.status"></mdp-select-dict-tag>
</template>
</el-table-column>
<el-table-column prop="bizFlowState" label="审批状态" min-width="120" >
<template slot-scope="scope">
<mdp-select-dict-tag :dict="dicts['bizFlowState']" :disabled="true" v-model="scope.row.bizFlowState"></mdp-select-dict-tag>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="startTime" label="起止时间" sortable min-width="150" >
<template slot-scope="scope">
{{scope.row.startTime? scope.row.startTime.substr(0,10) : ""}}~{{scope.row.endTime? scope.row.endTime.substr(0,10) : ""}}
</template>
</el-table-column>
<el-table-column prop="bizFlowState" label="审批状态" min-width="120" >
<template slot-scope="scope">
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'bizFlowState',scope.row.bizFlowState)" :key="index" :type="item.className">{{item.name}}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<template slot-scope="scope">
<!-- <el-popover
placement="left"
trigger="hover"> -->
<el-table-column prop="finishRate" label="进度" width="200" sortable>
<template slot-scope="scope">
<div style="display:flex;">
<div style="width:40px;">
{{getProgress(scope.row)}} %
</div>
<el-button id="guider-four" type="text" circle plain icon="el-icon-video-play" title="统计项目的工作量、进度、需求、bugs等数据" @click.stop="loadTasksToXmProjectState( scope.row)"></el-button>
<el-button v-if="menukey=='myFocus'" type="text" @click.stop="focusOrUnfocus(scope.row)" >取消关注</el-button>
<el-button v-else type="text" @click.stop="focusOrUnfocus(scope.row)" >关注</el-button>
<el-button type="text" @click.stop="intoInfo(scope.row)" >视图</el-button>
<el-button type="text" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(scope.row)" v-loading="load.add">复制</el-button>
<el-button type="text" title="删除项目" @click.stop="handleDel(scope.row)" v-loading="load.del">删除</el-button>
<el-tag v-if="getPlanRealProgress(scope.row)>0" type="warning" effect="dark">超前{{ getPlanRealProgress(scope.row) }}%</el-tag>
<el-tag v-else-if="getPlanRealProgress(scope.row)<0" type="danger" effect="dark">落后{{ 0-getPlanRealProgress(scope.row) }}%</el-tag>
<el-tag v-else-if="getProgress(scope.row)>0" effect="dark" type="success" class="el-icon-check"> </el-tag>
<el-tag v-else-if="getProgress(scope.row)==0" effect="dark" type="info">未开始 </el-tag>
</div>
</template>
</el-table-column>
<el-table-column prop="productCnt" label="项目数" sortable min-width="120" >
</el-table-column>
<el-table-column prop="iterationCnt" label="迭代数" sortable min-width="120" >
</el-table-column>
<el-table-column prop="menuCnt" label="需求数" sortable min-width="120" >
<template slot-scope="scope">
<span title="完成的需求数 / 需求总数 ">{{scope.row.menuCnt>0?scope.row.menuFinishCnt+'&nbsp;/&nbsp;'+scope.row.menuCnt:''}}</span>
</template>
</el-table-column>
<el-table-column prop="taskCnt" label="任务数" sortable min-width="120" >
<template slot-scope="scope">
<span title="完成的任务数 / 任务总数 ">{{ ((scope.row.taskFinishCnt||0)+(scope.row.taskSetCnt||0)+(scope.row.taskCloseCnt||0))+'&nbsp;/&nbsp;'+(scope.row.taskCnt||0)}}</span>
</template>
</el-table-column>
<el-table-column prop="bugCnt" label="缺陷" sortable min-width="120" >
<template slot-scope="scope">
<span title="关闭的缺陷数 / 缺陷总数 ">{{scope.row.bugCnt>0?scope.row.closedBugs+'&nbsp;/&nbsp;'+scope.row.bugCnt:''}}</span>
</template>
</el-table-column>
<el-table-column prop="startTime" label="起止时间" sortable min-width="150" show-overflow-tooltip>
<template slot-scope="scope">
{{scope.row.startTime? scope.row.startTime.substr(0,10) : ""}}~{{scope.row.endTime? scope.row.endTime.substr(0,10) : ""}}
</template>
</el-table-column>
<el-table-column label="操作" width="150" fixed="right">
<template slot-scope="scope">
<!-- <el-popover
placement="left"
trigger="hover"> -->
<el-button v-if="menukey=='myFocus'" type="text" @click.stop="focusOrUnfocus(scope.row)" >取消关注</el-button>
<el-button v-else type="text" @click.stop="focusOrUnfocus(scope.row)" >关注</el-button>
<el-button type="text" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(scope.row)" v-loading="load.add">复制</el-button>
<el-button type="text" title="删除项目" @click.stop="handleDel(scope.row)" v-loading="load.del">删除</el-button>
<!--
<el-button type="primary" @click.stop="statusChange(scope,'1')" v-if="scope.row.status==0 || scope.row.status == 2">提交审核</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'3')" v-if="scope.row.status==1">批准</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'2')" v-if="scope.row.status==1">退回</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'4')" v-if="scope.row.status==3">结束</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'3')" v-if="scope.row.status==4">重新启动</el-button>
<el-button type="primary" @click.stop="handleDel(scope.row,scope.$index)" v-if="isLeader(scope.row.leader)">删除</el-button>
<!--
<el-button type="primary" @click.stop="statusChange(scope,'1')" v-if="scope.row.status==0 || scope.row.status == 2">提交审核</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'3')" v-if="scope.row.status==1">批准</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'2')" v-if="scope.row.status==1">退回</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'4')" v-if="scope.row.status==3">结束</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'3')" v-if="scope.row.status==4">重新启动</el-button>
<el-button type="primary" @click.stop="handleDel(scope.row,scope.$index)" v-if="isLeader(scope.row.leader)">删除</el-button>
<el-dropdown @command="handleCommand" :hide-on-click="false">
<span class="el-dropdown-link">
更多<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_start_approva'}">立项发审(审核通过后起效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_delete_approva'}">删除发审(审核通过后删除)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'showEdit',row:scope.row,bizKey:'xm_project_baseinfo_change_approva'}">基础信息变更发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'showEdit',row:scope.row,bizKey:'xm_project_budget_change_approva'}">预算变更发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_over_approva'}">项目结项发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_suspension_approva'}">项目暂停发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_restart_approva'}">项目重新启动发审(审核通过后生效)</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
-->
<!-- <el-button style="width:100%;" slot="reference" class="see-more" type="text" icon="el-icon-more"></el-button>
</el-popover> -->
</template>
</el-table-column>
</el-table>
<el-dropdown @command="handleCommand" :hide-on-click="false">
<span class="el-dropdown-link">
更多<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_start_approva'}">立项发审(审核通过后起效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_delete_approva'}">删除发审(审核通过后删除)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'showEdit',row:scope.row,bizKey:'xm_project_baseinfo_change_approva'}">基础信息变更发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'showEdit',row:scope.row,bizKey:'xm_project_budget_change_approva'}">预算变更发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_over_approva'}">项目结项发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_suspension_approva'}">项目暂停发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_restart_approva'}">项目重新启动发审(审核通过后生效)</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
-->
<!-- <el-button style="width:100%;" slot="reference" class="see-more" type="text" icon="el-icon-more"></el-button>
</el-popover> -->
</template>
</el-table-column>
</el-table>
</el-row>
</el-row> </el-row>
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[12,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="[12,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
@ -397,17 +414,15 @@
this.searchXmProjects(); this.searchXmProjects();
} }
}, },
data() {
const beginDate = new Date();
const endDate = new Date();
beginDate.setTime(beginDate.getTime() - 3600 * 1000 * 24 * 7 * 4 * 12 );
data() {
return { return {
filters: { filters: {
key: '', key: '',
productId:'', productId:'',
productName:'', productName:'',
id:'',// id:'',//
createTimeStart:'',
createTimeEnd:'',
}, },
xmProjects: [],// xmProjects: [],//
pageInfo:{// pageInfo:{//
@ -435,16 +450,14 @@
}, },
/**begin 自定义属性请在下面加 请加备注**/ /**begin 自定义属性请在下面加 请加备注**/
menukey: "all", menukey: "all",
showType: true,
showType: false,
showInfo: false, showInfo: false,
selectProject: null, selectProject: null,
finishFlag: false, finishFlag: false,
xmRecordVisible: false, xmRecordVisible: false,
productSelectVisible:false, productSelectVisible:false,
maxTableHeight:300,
dateRanger: [ ],
pickerOptions: util.getPickerOptions('datarange'),
xmProjectCopy:{
maxTableHeight:300,
xmProjectCopy:{
id:'',name:'',code:'',isTpl:'',copyPhase:'1',copyTask:'1',copyGroup:'1',copyGroupUser:'0',copyProduct:'1',tplType:'2', id:'',name:'',code:'',isTpl:'',copyPhase:'1',copyTask:'1',copyGroup:'1',copyGroupUser:'0',copyProduct:'1',tplType:'2',
}, },
copyToVisible:false, copyToVisible:false,
@ -492,10 +505,6 @@
//params.xxx=this.filters.key //params.xxx=this.filters.key
}else{ }else{
//params.xxx=xxxxx //params.xxx=xxxxx
}
if(this.dateRanger&&this.dateRanger.length==2){
} }
this.load.list = true; this.load.list = true;
if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){ if(this.pageInfo.orderFields!=null && this.pageInfo.orderFields.length>0){
@ -516,8 +525,8 @@
if(this.filters.status){ if(this.filters.status){
params.status = this.filters.status params.status = this.filters.status
} }
params.createTimeStart=this.dateRanger[0]
params.createTimeEnd=this.dateRanger[1]
params.createTimeStart=this.filters.createTimeStart
params.createTimeEnd=this.filters.createTimeEnd
listXmProject(params).then((res) => { listXmProject(params).then((res) => {
var tips=res.data.tips; var tips=res.data.tips;
if(tips.isOk){ if(tips.isOk){
@ -821,14 +830,12 @@
onProductSelected:function(product){ onProductSelected:function(product){
this.filters.productId=product.id this.filters.productId=product.id
this.filters.productName=product.productName
this.getXmProjects()
this.filters.productName=product.productName
this.productSelectVisible=false; this.productSelectVisible=false;
}, },
onProductClose:function(){ onProductClose:function(){
this.filters.productId='' this.filters.productId=''
this.filters.productName=''
this.getXmProjects()
this.filters.productName=''
}, },
onCopyToBtnClick(row){ onCopyToBtnClick(row){

Loading…
Cancel
Save