mirror of
https://gitee.com/maimengcloud/xm-ui-web.git
synced 2025-12-30 10:12:26 +00:00
kpi代码
This commit is contained in:
@@ -13,25 +13,25 @@ let base = config.getXmCtx();
|
||||
**/
|
||||
|
||||
//普通查询 条件之间and关系
|
||||
export const listXmProjectKpi = params => { return axios.get(`${base}/xm/core/xmProjectKpi/list`, { params: params }); };
|
||||
export const listXmKpi = params => { return axios.get(`${base}/xm/core/xmKpi/list`, { params: params }); };
|
||||
|
||||
//普通查询 条件之间and关系
|
||||
export const queryXmProjectKpiById = params => { return axios.get(`${base}/xm/core/xmProjectKpi/queryById`, { params: params }); };
|
||||
export const queryXmKpiById = params => { return axios.get(`${base}/xm/core/xmKpi/queryById`, { params: params }); };
|
||||
|
||||
//删除一条项目或任务关键指标考核 params={id:'主键 主键'}
|
||||
export const delXmProjectKpi = params => { return axios.post(`${base}/xm/core/xmProjectKpi/del`,params); };
|
||||
export const delXmKpi = params => { return axios.post(`${base}/xm/core/xmKpi/del`,params); };
|
||||
|
||||
//批量删除项目或任务关键指标考核 params=[{id:'主键 主键'}]
|
||||
export const batchAddXmProjectKpi = params => { return axios.post(`${base}/xm/core/xmProjectKpi/batchAdd`, params); };
|
||||
export const batchAddXmKpi = params => { return axios.post(`${base}/xm/core/xmKpi/batchAdd`, params); };
|
||||
|
||||
//批量删除项目或任务关键指标考核 params=[{id:'主键 主键'}]
|
||||
export const batchDelXmProjectKpi = params => { return axios.post(`${base}/xm/core/xmProjectKpi/batchDel`, params); };
|
||||
export const batchDelXmKpi = params => { return axios.post(`${base}/xm/core/xmKpi/batchDel`, params); };
|
||||
|
||||
//修改一条项目或任务关键指标考核记录
|
||||
export const editXmProjectKpi = params => { return axios.post(`${base}/xm/core/xmProjectKpi/edit`, params); };
|
||||
export const editXmKpi = params => { return axios.post(`${base}/xm/core/xmKpi/edit`, params); };
|
||||
|
||||
//新增一条项目或任务关键指标考核
|
||||
export const addXmProjectKpi = params => { return axios.post(`${base}/xm/core/xmProjectKpi/add`, params); };
|
||||
export const addXmKpi = params => { return axios.post(`${base}/xm/core/xmKpi/add`, params); };
|
||||
|
||||
//批量修改某些字段
|
||||
export const editSomeFieldsXmProjectKpi = params => { return axios.post(`${base}/xm/core/xmProjectKpi/editSomeFields`, params); };
|
||||
export const editSomeFieldsXmKpi = params => { return axios.post(`${base}/xm/core/xmKpi/editSomeFields`, params); };
|
||||
@@ -13,25 +13,25 @@ let base = config.getXmCtx();
|
||||
**/
|
||||
|
||||
//普通查询 条件之间and关系
|
||||
export const listXmProjectKpiHis = params => { return axios.get(`${base}/xm/core/xmProjectKpiHis/list`, { params: params }); };
|
||||
export const listXmKpiHis = params => { return axios.get(`${base}/xm/core/xmKpiHis/list`, { params: params }); };
|
||||
|
||||
//普通查询 条件之间and关系
|
||||
export const queryXmProjectKpiHisById = params => { return axios.get(`${base}/xm/core/xmProjectKpiHis/queryById`, { params: params }); };
|
||||
export const queryXmKpiHisById = params => { return axios.get(`${base}/xm/core/xmKpiHis/queryById`, { params: params }); };
|
||||
|
||||
//删除一条项目或任务关键指标考核 params={id:'主键 主键',scoreDate:'评分日期 主键'}
|
||||
export const delXmProjectKpiHis = params => { return axios.post(`${base}/xm/core/xmProjectKpiHis/del`,params); };
|
||||
export const delXmKpiHis = params => { return axios.post(`${base}/xm/core/xmKpiHis/del`,params); };
|
||||
|
||||
//批量删除项目或任务关键指标考核 params=[{id:'主键 主键',scoreDate:'评分日期 主键'}]
|
||||
export const batchAddXmProjectKpiHis = params => { return axios.post(`${base}/xm/core/xmProjectKpiHis/batchAdd`, params); };
|
||||
export const batchAddXmKpiHis = params => { return axios.post(`${base}/xm/core/xmKpiHis/batchAdd`, params); };
|
||||
|
||||
//批量删除项目或任务关键指标考核 params=[{id:'主键 主键',scoreDate:'评分日期 主键'}]
|
||||
export const batchDelXmProjectKpiHis = params => { return axios.post(`${base}/xm/core/xmProjectKpiHis/batchDel`, params); };
|
||||
export const batchDelXmKpiHis = params => { return axios.post(`${base}/xm/core/xmKpiHis/batchDel`, params); };
|
||||
|
||||
//修改一条项目或任务关键指标考核记录
|
||||
export const editXmProjectKpiHis = params => { return axios.post(`${base}/xm/core/xmProjectKpiHis/edit`, params); };
|
||||
export const editXmKpiHis = params => { return axios.post(`${base}/xm/core/xmKpiHis/edit`, params); };
|
||||
|
||||
//新增一条项目或任务关键指标考核
|
||||
export const addXmProjectKpiHis = params => { return axios.post(`${base}/xm/core/xmProjectKpiHis/add`, params); };
|
||||
export const addXmKpiHis = params => { return axios.post(`${base}/xm/core/xmKpiHis/add`, params); };
|
||||
|
||||
//批量修改某些字段
|
||||
export const editSomeFieldsXmProjectKpiHis = params => { return axios.post(`${base}/xm/core/xmProjectKpiHis/editSomeFields`, params); };
|
||||
export const editSomeFieldsXmKpiHis = params => { return axios.post(`${base}/xm/core/xmKpiHis/editSomeFields`, params); };
|
||||
@@ -125,13 +125,13 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as XmProjectKpiApi from '@/api/xm/pro/xmProjectKpi';
|
||||
import * as XmKpiApi from '@/api/xm/pro/xmKpi';
|
||||
import { MdpFormMixin } from '@/components/mdp-ui/mixin/MdpFormMixin.js';
|
||||
import { mapState } from 'pinia'
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
|
||||
export default {
|
||||
name:'XmProjectKpiForm',
|
||||
name:'XmKpiForm',
|
||||
mixins:[MdpFormMixin],
|
||||
computed: {
|
||||
...mapState(useUserStore,['userInfo']),
|
||||
@@ -188,10 +188,10 @@ export default {
|
||||
},
|
||||
//增删改查(含批量)接口
|
||||
apis:{
|
||||
queryById: XmProjectKpiApi.queryXmProjectKpiById,
|
||||
add: XmProjectKpiApi.addXmProjectKpi,
|
||||
edit: XmProjectKpiApi.editXmProjectKpi,
|
||||
editSomeFields: XmProjectKpiApi.editSomeFieldsXmProjectKpi
|
||||
queryById: XmKpiApi.queryXmKpiById,
|
||||
add: XmKpiApi.addXmKpi,
|
||||
edit: XmKpiApi.editXmKpi,
|
||||
editSomeFields: XmKpiApi.editSomeFieldsXmKpi
|
||||
},
|
||||
}
|
||||
},
|
||||
@@ -30,7 +30,7 @@
|
||||
<el-button v-loading="load.list" :disabled="load.list==true" @click="searchTableDatas()" icon="search" type="primary" plain />
|
||||
</el-space>
|
||||
</ContentWrap>
|
||||
<!--列表 XmProjectKpi 项目或任务关键指标考核-->
|
||||
<!--列表 XmKpi 项目或任务关键指标考核-->
|
||||
<el-table ref="table" v-adaptive :data="tableDatas" @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="55" fixed="left" v-if="currOpType=='mng' || this.multiple==true"/>
|
||||
<el-table-column sortable prop="name" width="300" fixed="left" label="名称">
|
||||
@@ -161,10 +161,10 @@
|
||||
:total="pageInfo.total"
|
||||
style="float:right;"
|
||||
/>
|
||||
<!--新增修改明细 XmProjectKpi 项目或任务关键指标考核界面-->
|
||||
<!--新增修改明细 XmKpi 项目或任务关键指标考核界面-->
|
||||
<mdp-dialog ref="formDlg" :title="menuDefName" width="80%">
|
||||
<template v-slot="{visible,data}">
|
||||
<XmProjectKpiForm ref="XmProjectKpiForm" :someOpen="true" :visible="visible" :parentOpType="currOpType" :subOpType="data.subOpType" :formData="data.formData" @close="onFormClose" @submit="afterFormSubmit" @edit-fields="afterEditFields"/>
|
||||
<XmKpiForm ref="XmKpiForm" :someOpen="true" :visible="visible" :parentOpType="currOpType" :subOpType="data.subOpType" :formData="data.formData" @close="onFormClose" @submit="afterFormSubmit" @edit-fields="afterEditFields"/>
|
||||
</template>
|
||||
</mdp-dialog>
|
||||
<MdpDialog ref="kanbanDlg" fullscreen :title="menuDefName">
|
||||
@@ -190,17 +190,17 @@
|
||||
<script>
|
||||
|
||||
import { MdpTableMixin } from '@/components/mdp-ui/mixin/MdpTableMixin.js';
|
||||
import * as XmProjectKpiApi from '@/api/xm/pro/xmProjectKpi.js';
|
||||
import XmProjectKpiForm from'./Form.vue';//新增修改明细界面
|
||||
import * as XmKpiApi from '@/api/xm/pro/xmKpi.js';
|
||||
import XmKpiForm from'./Form.vue';//新增修改明细界面
|
||||
import { mapState } from 'pinia'
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
import { useXmStore } from '@/store/modules/xm'
|
||||
|
||||
export default {
|
||||
name:'XmProjectKpiMng',
|
||||
name:'XmKpiMng',
|
||||
mixins:[MdpTableMixin],
|
||||
components: {
|
||||
XmProjectKpiForm
|
||||
XmKpiForm
|
||||
},
|
||||
computed: {
|
||||
...mapState(useUserStore,['userInfo']),
|
||||
@@ -235,14 +235,14 @@ export default {
|
||||
},
|
||||
//增删改查(含批量)接口
|
||||
apis:{
|
||||
list: XmProjectKpiApi.listXmProjectKpi,
|
||||
add: XmProjectKpiApi.addXmProjectKpi,
|
||||
del: XmProjectKpiApi.delXmProjectKpi,
|
||||
edit: XmProjectKpiApi.editXmProjectKpi,
|
||||
editSomeFields: XmProjectKpiApi.editSomeFieldsXmProjectKpi,
|
||||
batchAdd: XmProjectKpiApi.batchAddXmProjectKpi,
|
||||
batchDel: XmProjectKpiApi.batchDelXmProjectKpi,
|
||||
batchEdit: XmProjectKpiApi.batchEditXmProjectKpi,
|
||||
list: XmKpiApi.listXmKpi,
|
||||
add: XmKpiApi.addXmKpi,
|
||||
del: XmKpiApi.delXmKpi,
|
||||
edit: XmKpiApi.editXmKpi,
|
||||
editSomeFields: XmKpiApi.editSomeFieldsXmKpi,
|
||||
batchAdd: XmKpiApi.batchAddXmKpi,
|
||||
batchDel: XmKpiApi.batchDelXmKpi,
|
||||
batchEdit: XmKpiApi.batchEditXmKpi,
|
||||
},
|
||||
project:null,
|
||||
}
|
||||
380
src/views/xm/pro/kpi/XmKpiTree.vue
Normal file
380
src/views/xm/pro/kpi/XmKpiTree.vue
Normal file
@@ -0,0 +1,380 @@
|
||||
<template>
|
||||
<MdpTree
|
||||
ref="nodeTree"
|
||||
title="kpi"
|
||||
showCheckbox
|
||||
:props="props"
|
||||
:load="listXmKpi"
|
||||
:del="delXmKpi"
|
||||
:batchDel="batchDelXmKpi"
|
||||
:multiple="multiple"
|
||||
:showConfirm="showConfirm"
|
||||
:hidden="hiddenCpd"
|
||||
:clearCacheFun="clearCache"
|
||||
@addTopNode="(cb) => onAddTopClick(cb)"
|
||||
@editNode="(d, cb, subcb) => onEditClick(d, cb, subcb)"
|
||||
@addSubNode="(p, cb) => onAddSubClick(p, cb)"
|
||||
@changePid="(cks,cb) => onChangePidClick(cks,cb)"
|
||||
@confirm = "(d)=>onConfirm(d)"
|
||||
@check-change="(d,c,i)=>$emit('check-change',d,c,i)"
|
||||
@node-click="(d,n,c)=>$emit('node-click',d,n,c)"
|
||||
rootId="0"
|
||||
:draggable="true"
|
||||
:sortFun="sortFun"
|
||||
>
|
||||
<template #topToolbar>
|
||||
<xm-project-select width="250px" :isTpl="isTpl"
|
||||
v-model="filters.projectId" :collect-id="xmCollect?.id"
|
||||
v-if="!selProject || !selProject.id"
|
||||
ref="xmProjectSelect1"
|
||||
|
||||
:link-iteration-id="xmIteration?xmIteration.id:null" :link-product-id="xmProduct?xmProduct.id:null"
|
||||
@change3="onProjectSelected"
|
||||
@clear="onProjectClearSelect"
|
||||
:clearable="(xmCollect?.id)||(!clearable?false:true)"
|
||||
/>
|
||||
</template>
|
||||
<template #nodeName="{ data }">
|
||||
<el-space v-if="data?.id">
|
||||
<icon
|
||||
:icon="
|
||||
listXmKpiIcon(data)
|
||||
"
|
||||
/>
|
||||
<MdpSelect
|
||||
size="small"
|
||||
show-style="tag"
|
||||
itemCode="kstatus"
|
||||
label="状态"
|
||||
v-model="data.kstatus"
|
||||
disabled
|
||||
/><span :style="{ borderRadius: '30px', color: data.initRate >= 100 ? 'green' : 'blue' }"
|
||||
>{{ formatRate(data.initRate || 0) }}% </span
|
||||
>
|
||||
<div> {{ "(" + (data.childrenCnt||0) +")" }} {{ data.kpiName }}</div>
|
||||
</el-space>
|
||||
</template>
|
||||
<template #moreBtn>
|
||||
<el-button type="primary" @click="$refs['tplKpiDialog'].open()">从模板导入</el-button>
|
||||
</template>
|
||||
<template #nodeToolbar="{ data }">
|
||||
<el-button @click="calcProgress(data)" title="对当前节点及所有上级节点进行逐层进度统计" type="warning" plain>统计</el-button>
|
||||
</template>
|
||||
</MdpTree>
|
||||
|
||||
<!--编辑 XmKpi xm_project_menu界面-->
|
||||
<mdp-dialog ref="editDialog" width="100%" fullscreen append-to-body :close-on-click-modal="false" title="编辑kpi">
|
||||
<template #default="{ visible, data, dialog }">
|
||||
<XmKpiEdit
|
||||
:formData="data.formData"
|
||||
:visible="visible"
|
||||
:xm-project="project"
|
||||
:xm-product="xmProduct"
|
||||
@cancel="dialog.close()"
|
||||
@submit="data.callback"
|
||||
@add-sub-task="data.addSubCallback"
|
||||
@fields-change="(res,isOk,params,row)=>data.callback(row)"
|
||||
/>
|
||||
</template>
|
||||
</mdp-dialog>
|
||||
|
||||
<!--新增 XmKpi xm_project_menu界面-->
|
||||
<mdp-dialog ref="addDialog" fullscreen append-to-body :close-on-click-modal="false" title="新增kpi">
|
||||
<template #default="{visible, data, dialog }">
|
||||
<XmKpiAdd
|
||||
:visible="visible"
|
||||
:parent-task="data.parentKpi"
|
||||
:formData="data.formData"
|
||||
:xm-product="xmProduct"
|
||||
:xm-project="project"
|
||||
@cancel="dialog.close()"
|
||||
@submit="data.callback"
|
||||
/>
|
||||
</template>
|
||||
</mdp-dialog>
|
||||
<XmKpiByTpl :sel-project="project" ref="tplKpiDialog" @importTpl="onImportTpl" v-if="project?.id"/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import util from '@/components/mdp-ui/js/util' //全局公共库
|
||||
|
||||
import {
|
||||
delXmKpi,
|
||||
batchDelXmKpi,
|
||||
listXmKpi,
|
||||
batchChangeParentKpi,
|
||||
batchImportKpiFromTemplate,
|
||||
calcProgress,
|
||||
} from '@/api/xm/pro/xmKpi'
|
||||
|
||||
//新增界面
|
||||
|
||||
|
||||
import { mapState } from 'pinia'
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
|
||||
import { ElMessageBox } from 'element-plus'
|
||||
|
||||
// 创建一个异步组件,它会从一个外部API动态导入组件
|
||||
const XmKpiAdd = defineAsyncComponent(() =>
|
||||
import('./XmKpiEdit.vue') // 假设LazyComponent.vue是你想要懒加载的组件
|
||||
);// 创建一个异步组件,它会从一个外部API动态导入组件
|
||||
const XmKpiEdit = defineAsyncComponent(() =>
|
||||
import('./XmKpiEdit.vue') // 假设LazyComponent.vue是你想要懒加载的组件
|
||||
);
|
||||
|
||||
|
||||
import XmKpiByTpl from './XmKpiByTpl.vue'
|
||||
|
||||
const XmKpiTreeMap = new Map()
|
||||
export default {
|
||||
props: ['xmCollect','selProject', 'xmProduct', 'subOpType','multiple','showConfirm','hidden','params','projectRequired','clearable','isTpl'],
|
||||
|
||||
emits:['importTemplate', 'checkChange', 'projectSelect', 'projectClear','','addTopNode','importTop','importSub','editNode','addSubNode','changePid','confirm','nodeClick'],
|
||||
computed: {
|
||||
...mapState(useUserStore, ['userInfo', 'roles']),
|
||||
|
||||
hiddenCpd(){
|
||||
var isSelect=this.subOpType=='select'
|
||||
var hidden ={
|
||||
batchDel: true,
|
||||
del:isSelect,
|
||||
changePid: isSelect,
|
||||
addTop: isSelect,
|
||||
addSub: isSelect,
|
||||
edit: isSelect,
|
||||
filter: false,
|
||||
page: true,
|
||||
}
|
||||
hidden=Object.assign(hidden,this.hidden)
|
||||
return hidden
|
||||
},
|
||||
projectKey(){
|
||||
return this.xmCollect?.id+'-'+this.xmProduct?.id+'-project-select-id'
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
xmProduct: function () {
|
||||
this.$refs.nodeTree.refresh()
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
load:{init:false},
|
||||
filters: {
|
||||
projectId: ''
|
||||
},
|
||||
project:null,
|
||||
props:{
|
||||
id: 'id', pid: 'parentId', label: 'kpiName' ,
|
||||
isLeaf:(n,node)=>{
|
||||
return n.childrenCnt<=0
|
||||
}
|
||||
},
|
||||
currPhase:{},
|
||||
projectPhasePlansDict:[],
|
||||
ktypeDict:[],
|
||||
}
|
||||
}, //end data
|
||||
methods: {
|
||||
onConfirm(d){
|
||||
this.$emit('confirm',d,this.project)
|
||||
this.$emit('select',d,this.project)
|
||||
},
|
||||
calcIcon(ktype){
|
||||
let o=this.ktypeDict.find(k=>k.id==ktype)
|
||||
return o?o.icon:'ep:stopwatch'
|
||||
},
|
||||
calcName(ktype){
|
||||
let o=this.ktypeDict.find(k=>k.id==ktype)
|
||||
return o?o.kpiName:'kpi'
|
||||
},
|
||||
sortFun:(a,b)=>{
|
||||
return a.sortLevel-b.sortLevel
|
||||
},
|
||||
clearCache(){
|
||||
XmKpiTreeMap.clear()
|
||||
},
|
||||
listXmKpi(params, node) {
|
||||
params.projectId = this.selProject?.id || this.project?.id
|
||||
if(this.isTpl){
|
||||
params.isTpl='1'
|
||||
}
|
||||
//params.ntype='1'
|
||||
if(this.params){
|
||||
Object.assign(params,this.params)
|
||||
}
|
||||
if(!params.projectId){
|
||||
if(!this.projectRequired){
|
||||
return new Promise((resolve,reject)=>{
|
||||
resolve({tips:{isOk:true,msg:"ok"},data:[]})
|
||||
})
|
||||
}else{
|
||||
this.$message.error("请先选择项目")
|
||||
return new Promise((resolve,reject)=>{
|
||||
reject('请先选择项目')
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
let codeKey=util.getCodeKey("tree_get_xm_project_kpi",params)
|
||||
if(node.level===0){
|
||||
let datas=XmKpiTreeMap.get(codeKey)
|
||||
if(datas && datas.length>0){
|
||||
return new Promise((resolve)=>{
|
||||
resolve({
|
||||
tips:{
|
||||
msg:'ok',
|
||||
isOk:true,
|
||||
},
|
||||
data: datas
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
return new Promise((resolve,reject)=>{
|
||||
listXmKpi(params).then(res=>{
|
||||
if(node.level===0){
|
||||
XmKpiTreeMap.set(codeKey,res.data)
|
||||
}
|
||||
resolve(res)
|
||||
})
|
||||
})
|
||||
},
|
||||
delXmKpi,
|
||||
batchDelXmKpi,
|
||||
formatRate(num) {
|
||||
let precision = 0
|
||||
return (num * 1).toFixed(precision)
|
||||
},
|
||||
//显示编辑界面 XmKpi
|
||||
onEditClick: function (formData, callback, addSubCallback) {
|
||||
this.$refs['editDialog'].open({
|
||||
formData: formData,
|
||||
callback: callback,
|
||||
addSubCallback: addSubCallback
|
||||
})
|
||||
},
|
||||
//显示新增界面 XmKpi
|
||||
onAddTopClick: function (callback) {
|
||||
|
||||
let ntype = '1'
|
||||
var parentKpi = null
|
||||
var formData = {}
|
||||
if (!this.initProjectParams(formData)) {
|
||||
return
|
||||
}
|
||||
formData.ntype='1'
|
||||
this.$refs['addDialog'].open({
|
||||
formData: formData,
|
||||
parentKpi: parentKpi,
|
||||
callback: callback
|
||||
})
|
||||
},
|
||||
initProjectParams(formData, parent) {
|
||||
if (parent && parent.id) {
|
||||
formData.projectName = parent.projectName
|
||||
formData.projectId = parent.projectId
|
||||
if (this.project && parent.projectId == this.project.id) {
|
||||
formData.projectName = this.project.kpiName
|
||||
}
|
||||
} else {
|
||||
if(this.selProject && this.selProject.id){
|
||||
formData.projectId = this.selProject.id
|
||||
formData.projectName = this.selProject.kpiName
|
||||
}else if (this.project && this.project?.id) {
|
||||
formData.projectId = this.project.id
|
||||
formData.projectName = this.project.kpiName
|
||||
} else {
|
||||
this.$notify({
|
||||
position: 'bottom-left',
|
||||
showClose: true,
|
||||
message: '请先选择一个项目',
|
||||
type: 'warning'
|
||||
})
|
||||
return false
|
||||
}
|
||||
}
|
||||
if(this.xmProduct && this.xmProduct.id){
|
||||
formData.productId=this.xmProduct.id
|
||||
formData.productName=this.xmProduct.productName
|
||||
}
|
||||
|
||||
return true
|
||||
},
|
||||
onAddSubClick: function (parent, callback) {
|
||||
if(parent.ktype>'2'){
|
||||
this.$notify({ position: 'bottom-left', showClose: true, message: 'kpi遵循以下规则【企业级 > 部门级 > 项目级 > 个人级】,【个人级api】下不允许再创建子kpi', type: 'error' })
|
||||
return;
|
||||
}
|
||||
var parentKpi = parent
|
||||
var formData = {}
|
||||
if (!this.initProjectParams(formData, parent)) {
|
||||
return
|
||||
}
|
||||
formData.ntype='1'
|
||||
this.$refs['addDialog'].open({
|
||||
formData: formData,
|
||||
parentKpi: parentKpi,
|
||||
callback: callback
|
||||
})
|
||||
},
|
||||
onChangePidClick: function(idLinks,callback){
|
||||
batchChangeParentKpi(idLinks).then(res=>{
|
||||
let {tips}=res
|
||||
if(tips.isOk){
|
||||
if(callback){
|
||||
callback(true)
|
||||
}
|
||||
this.$message.success(tips.msg)
|
||||
}else{
|
||||
this.$message.error(tips.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onProjectSelected: function (project) {
|
||||
this.project = project
|
||||
this.$refs.nodeTree.refresh()
|
||||
this.$emit('project-select', project)
|
||||
sessionStorage.setItem(this.projectKey,project?.id||'')
|
||||
},
|
||||
onProjectClearSelect: function () {
|
||||
this.project = null
|
||||
this.$refs.nodeTree.refresh()
|
||||
this.$emit('project-clear')
|
||||
sessionStorage.removeItem(this.projectKey)
|
||||
},
|
||||
|
||||
listXmKpiIcon(task){
|
||||
return this.calcIcon(task.ktype)
|
||||
},
|
||||
refresh(){
|
||||
this.$refs['nodeTree'].refresh()
|
||||
},
|
||||
|
||||
calcProgress(row) {
|
||||
calcProgress([row.id]).then(res => {
|
||||
this.refresh()
|
||||
})
|
||||
},
|
||||
|
||||
onImportTpl(){
|
||||
this.refresh()
|
||||
}
|
||||
}, //end methods
|
||||
components: {
|
||||
XmKpiAdd,
|
||||
XmKpiEdit,
|
||||
XmKpiByTpl,
|
||||
//在下面添加其它组件
|
||||
},
|
||||
mounted() {
|
||||
this.project=this.selProject
|
||||
this.filters.projectId=this.project?.id||sessionStorage.getItem(this.projectKey)||''
|
||||
this.$mdp.getDict('ktype').then(res=>this.ktypeDict=res)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" />
|
||||
@@ -1,171 +0,0 @@
|
||||
<template>
|
||||
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editFormRef">
|
||||
<el-form-item label="项目编号" prop="projectId">
|
||||
<el-input v-model="editForm.projectId" placeholder="项目编号" :maxlength="50" @change="editSomeFields(editForm,'projectId',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="机构编码" prop="branchId">
|
||||
<el-input v-model="editForm.branchId" placeholder="机构编码" :maxlength="50" @change="editSomeFields(editForm,'branchId',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="指标编号" prop="kpiIndex">
|
||||
<el-input v-model="editForm.kpiIndex" placeholder="指标编号" :maxlength="10" @change="editSomeFields(editForm,'kpiIndex',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="指标名称" prop="kpiName">
|
||||
<el-input v-model="editForm.kpiName" placeholder="指标名称" :maxlength="255" @change="editSomeFields(editForm,'kpiName',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="最大值" prop="maxValue">
|
||||
<el-input v-model="editForm.maxValue" placeholder="最大值" :maxlength="20" @change="editSomeFields(editForm,'maxValue',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="最小值" prop="minValue">
|
||||
<el-input v-model="editForm.minValue" placeholder="最小值" :maxlength="20" @change="editSomeFields(editForm,'minValue',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="主键" prop="id">
|
||||
<el-input v-model="editForm.id" placeholder="主键" :maxlength="50" @change="editSomeFields(editForm,'id',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="得分" prop="score">
|
||||
<el-input-number v-model="editForm.score" :min="0" :max="200" :precision="0" @change="editSomeFields(editForm,'score',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="评分日期" prop="scoreDate">
|
||||
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.scoreDate" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD" @change="editSomeFields(editForm,'scoreDate',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="流程状态" prop="bizFlowState">
|
||||
<el-input v-model="editForm.bizFlowState" placeholder="流程状态" :maxlength="50" @change="editSomeFields(editForm,'bizFlowState',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="流程实例编号" prop="bizProcInstId">
|
||||
<el-input v-model="editForm.bizProcInstId" placeholder="流程实例编号" :maxlength="50" @change="editSomeFields(editForm,'bizProcInstId',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="当前值" prop="kpiValue">
|
||||
<el-input v-model="editForm.kpiValue" placeholder="当前值" :maxlength="20" @change="editSomeFields(editForm,'kpiValue',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="editForm.remark" placeholder="备注" :maxlength="255" @change="editSomeFields(editForm,'remark',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="考核方式" prop="calcType">
|
||||
<el-input v-model="editForm.calcType" placeholder="考核方式" :maxlength="10" @change="editSomeFields(editForm,'calcType',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="下次考核开始时间" prop="nextCalcDate">
|
||||
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.nextCalcDate" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD" @change="editSomeFields(editForm,'nextCalcDate',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="ktype">
|
||||
<el-input v-model="editForm.ktype" placeholder="类型" :maxlength="10" @change="editSomeFields(editForm,'ktype',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="成果附件地址" prop="kresult">
|
||||
<el-input v-model="editForm.kresult" placeholder="成果附件地址" :maxlength="255" @change="editSomeFields(editForm,'kresult',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="当" prop="taskId">
|
||||
<el-input v-model="editForm.taskId" placeholder="当" :maxlength="50" @change="editSomeFields(editForm,'taskId',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="kstatus">
|
||||
<el-input v-model="editForm.kstatus" placeholder="状态" :maxlength="10" @change="editSomeFields(editForm,'kstatus',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否附件" prop="kfile">
|
||||
<el-input v-model="editForm.kfile" placeholder="是否附件" :maxlength="10" @change="editSomeFields(editForm,'kfile',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="指标分类" prop="kclass">
|
||||
<el-input v-model="editForm.kclass" placeholder="指标分类" :maxlength="10" @change="editSomeFields(editForm,'kclass',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核人编号" prop="kadmUserid">
|
||||
<el-input v-model="editForm.kadmUserid" placeholder="审核人编号" :maxlength="50" @change="editSomeFields(editForm,'kadmUserid',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核人名称" prop="kadmUsername">
|
||||
<el-input v-model="editForm.kadmUsername" placeholder="审核人名称" :maxlength="255" @change="editSomeFields(editForm,'kadmUsername',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="自评人编号" prop="kselfUserid">
|
||||
<el-input v-model="editForm.kselfUserid" placeholder="自评人编号" :maxlength="50" @change="editSomeFields(editForm,'kselfUserid',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="自评人名称" prop="kselfUsername">
|
||||
<el-input v-model="editForm.kselfUsername" placeholder="自评人名称" :maxlength="255" @change="editSomeFields(editForm,'kselfUsername',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="自评时间" prop="kselfTime">
|
||||
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.kselfTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD" @change="editSomeFields(editForm,'kselfTime',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核时间" prop="kadmTime">
|
||||
<el-date-picker type="date" placeholder="选择日期" v-model="editForm.kadmTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD" @change="editSomeFields(editForm,'kadmTime',$event)" :disabled="disField"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="footer">
|
||||
<el-button @click="close" icon="close">关闭</el-button>
|
||||
<el-button icon="success-filled" v-if="currOpType=='add'|| (currOpType=='edit' && someOpen==false)" v-loading="load.edit" type="primary" @click="saveSubmit" :disabled="disBtn('addBtn') || !checkBtnQx('addBtn',menuDefId) || load.edit">提交</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as XmProjectKpiHisApi from '@/api/xm/pro/xmProjectKpiHis';
|
||||
import { MdpFormMixin } from '@/components/mdp-ui/mixin/MdpFormMixin.js';
|
||||
import { mapState } from 'pinia'
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
|
||||
export default {
|
||||
name:'XmProjectKpiHisForm',
|
||||
mixins:[MdpFormMixin],
|
||||
computed: {
|
||||
...mapState(useUserStore,['userInfo'])
|
||||
},
|
||||
props:{
|
||||
// 是否开启editSomeField模式
|
||||
someOpen:{
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
menuDefId:'',//menu_def.id 菜单表菜单编号,用于按钮权限判断
|
||||
pkNames:["id", "scoreDate"],//表格主键的java属性名称,驼峰命名,默认为id,支持多主键
|
||||
currOpType:'add',//表单 add、edit,所有按钮可动、detail-只看不能操作
|
||||
editFormRules: {
|
||||
id:[
|
||||
//{ required: true, message: '此项必填', trigger: 'change' },
|
||||
//{ min: 1,max: 200, message: '长度在1到200之间', trigger: 'change'}
|
||||
],
|
||||
scoreDate:[
|
||||
//{ required: true, message: '此项必填', trigger: 'change' },
|
||||
//{ min: 1,max: 200, message: '长度在1到200之间', trigger: 'change'}
|
||||
]
|
||||
},
|
||||
editForm: {
|
||||
projectId:'',branchId:'',kpiIndex:'',kpiName:'',maxValue:'',minValue:'',id:'',score:'',scoreDate:'',bizFlowState:'',bizProcInstId:'',kpiValue:'',remark:'',calcType:'',nextCalcDate:'',ktype:'',kresult:'',taskId:'',kstatus:'',kfile:'',kclass:'',kadmUserid:'',kadmUsername:'',kselfUserid:'',kselfUsername:'',kselfTime:'',kadmTime:''
|
||||
},
|
||||
//增删改查(含批量)接口
|
||||
apis:{
|
||||
queryById: XmProjectKpiHisApi.queryXmProjectKpiHisById,
|
||||
add: XmProjectKpiHisApi.addXmProjectKpiHis,
|
||||
edit: XmProjectKpiHisApi.editXmProjectKpiHis,
|
||||
editSomeFields: XmProjectKpiHisApi.editSomeFieldsXmProjectKpiHis
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
//由组件扩展添加其它的初始页面的逻辑(mounted+onOpen都会调用此函数,建议只添加公共逻辑)
|
||||
initCurrData(){
|
||||
|
||||
},
|
||||
/**
|
||||
* 检查参数是否满足调用后台接口的条件
|
||||
* @returns true / false
|
||||
*/
|
||||
preParamCheck(params){
|
||||
return true;
|
||||
},
|
||||
/**
|
||||
* 对修改的字段进行判断,返回false ,将取消更新数据库,由组件扩展
|
||||
* @param {*} row 当前选中的行
|
||||
* @param {*} fieldName 修改的字段名
|
||||
* @param {*} $event 修改后的值
|
||||
* @param {*} params 将要提交服务器的参数
|
||||
* @returns true/false 返回false ,将取消更新数据库
|
||||
*/
|
||||
editSomeFieldsCheck(row,fieldName,$event,params){
|
||||
params[fieldName]=$event
|
||||
return true;
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -1,219 +0,0 @@
|
||||
<template>
|
||||
<ContentWrap>
|
||||
<template #header>
|
||||
<el-space wrap>
|
||||
<mdp-hi-query :column-configs="columnConfigs" v-model="hiQueryParams" @change="onHiQueryParamsChange" title="高级查询,定制任意复杂的查询条件"/>
|
||||
<el-button icon="zoom-out" @click="searchReset()" title="重置查询条件并查询"/>
|
||||
<el-button icon="download" @click="export2Excel()" title="导出查询结果到excel"/>
|
||||
<mdp-table-configs :column-configs="columnConfigs" v-model="checkedColumns"/>
|
||||
<el-button type="success" ref="kanbanBtn" plain @click="openKanban('kanbanDlg')" title="看板">板</el-button>
|
||||
<span v-if="currOpType=='mng'">
|
||||
<el-button :disabled="disBtn('addBtn') || !checkBtnQx('addBtn',menuDefId) " type="primary" @click="showAdd()" icon="plus" plain />
|
||||
<el-button :disabled="disBtn('delBtn') || !checkBtnQx('delBtn',menuDefId) || this.sels.length===0 || load.del==true" type="danger" v-loading="load.del" @click="batchDel" icon="delete" plain />
|
||||
</span>
|
||||
<span v-else-if="currOpType=='select' && this.multiple==true">
|
||||
<el-button :disabled="disBtn('selectBtn') || this.sels.length===0" type="primary" @click="selectListConfirm" icon="check" plain />
|
||||
</span>
|
||||
</el-space>
|
||||
</template>
|
||||
<el-space wrap>
|
||||
<el-input v-model="filters.id" placeholder="主键" clearable title="支持>、<、 >=、<=、!=、*字符*、$IS NULL、$IN 1,2,3、$between 1,5等操作符"/>
|
||||
<el-input v-model="filters.scoreDate" placeholder="评分日期" clearable title="支持>、<、 >=、<=、!=、*字符*、$IS NULL、$IN 1,2,3、$between 1,5等操作符"/>
|
||||
<el-button v-loading="load.list" :disabled="load.list==true" @click="searchTableDatas()" icon="search" type="primary" plain />
|
||||
</el-space>
|
||||
</ContentWrap>
|
||||
<!--列表 XmProjectKpiHis 项目或任务关键指标考核-->
|
||||
<el-table ref="table" v-adaptive :data="tableDatas" @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="55" fixed="left" v-if="currOpType=='mng' || this.multiple==true"/>
|
||||
<el-table-column sortable prop="name" width="300" fixed="left" label="名称">
|
||||
<template #default="scope">
|
||||
<el-popover placement="right-start" :width="200" show-after="200">
|
||||
<template #reference>
|
||||
<el-link @click="currOpType=='mng'?showEdit(scope.row):showDetail(scope.row)" type="primary">
|
||||
{{ (scope.$index + 1) }} {{ scope.row.name }}
|
||||
</el-link>
|
||||
</template>
|
||||
<template #default>
|
||||
<el-button v-if="currOpType=='mng'" @click="copy2(scope.row, scope.$index)" icon="document-copy" type="warning"
|
||||
title="复制一行除了主键不一样,其它都一样的数据">复制</el-button>
|
||||
<el-button v-if="currOpType=='mng'" @click="showEdit(scope.row)" icon="edit" type="primary">编辑</el-button>
|
||||
</template>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- 可编辑字段格式
|
||||
<el-table-column prop="objType" label="对象类型" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('objType')">
|
||||
<template #default="scope">
|
||||
<mdp-select itemCode="objType" show-style="tag" v-model="scope.row.objType" :maxlength="50" @change="editSomeFields(scope.row,'objType',$event)" :disabled="!someOpen||disField"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
-->
|
||||
<el-table-column prop="projectId" label="项目编号" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('projectId')" sortable/>
|
||||
<el-table-column prop="branchId" label="机构编码" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('branchId')" sortable/>
|
||||
<el-table-column prop="kpiIndex" label="指标编号" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('kpiIndex')" sortable/>
|
||||
<el-table-column prop="kpiName" label="指标名称" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('kpiName')" sortable/>
|
||||
<el-table-column prop="maxValue" label="最大值" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('maxValue')" sortable/>
|
||||
<el-table-column prop="minValue" label="最小值" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('minValue')" sortable/>
|
||||
<el-table-column prop="score" label="得分" min-width="120" show-overflow-tooltip col-type="Integer" v-if="showCol('score')" sortable/>
|
||||
<el-table-column prop="bizFlowState" label="流程状态" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('bizFlowState')" sortable/>
|
||||
<el-table-column prop="bizProcInstId" label="流程实例编号" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('bizProcInstId')" sortable/>
|
||||
<el-table-column prop="kpiValue" label="当前值" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('kpiValue')" sortable/>
|
||||
<el-table-column prop="remark" label="备注" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('remark')" sortable/>
|
||||
<el-table-column prop="calcType" label="考核方式" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('calcType')" sortable/>
|
||||
<el-table-column prop="nextCalcDate" label="下次考核开始时间" min-width="120" show-overflow-tooltip col-type="Date" v-if="showCol('nextCalcDate')" sortable/>
|
||||
<el-table-column prop="ktype" label="类型" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('ktype')" sortable/>
|
||||
<el-table-column prop="kresult" label="成果附件地址" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('kresult')" sortable/>
|
||||
<el-table-column prop="taskId" label="当" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('taskId')" sortable/>
|
||||
<el-table-column prop="kstatus" label="状态" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('kstatus')" sortable/>
|
||||
<el-table-column prop="kfile" label="是否附件" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('kfile')" sortable/>
|
||||
<el-table-column prop="kclass" label="指标分类" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('kclass')" sortable/>
|
||||
<el-table-column prop="kadmUserid" label="审核人编号" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('kadmUserid')" sortable/>
|
||||
<el-table-column prop="kadmUsername" label="审核人名称" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('kadmUsername')" sortable/>
|
||||
<el-table-column prop="kselfUserid" label="自评人编号" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('kselfUserid')" sortable/>
|
||||
<el-table-column prop="kselfUsername" label="自评人名称" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('kselfUsername')" sortable/>
|
||||
<el-table-column prop="kselfTime" label="自评时间" min-width="120" show-overflow-tooltip col-type="Date" v-if="showCol('kselfTime')" sortable/>
|
||||
<el-table-column prop="kadmTime" label="审核时间" min-width="120" show-overflow-tooltip col-type="Date" v-if="showCol('kadmTime')" sortable/>
|
||||
<el-table-column prop="id" label="主键" min-width="120" show-overflow-tooltip col-type="String" v-if="showCol('id')" sortable/>
|
||||
<el-table-column prop="scoreDate" label="评分日期" min-width="120" show-overflow-tooltip col-type="Date" v-if="showCol('scoreDate')" sortable/>
|
||||
<el-table-column label="操作" width="100" fixed="right" v-if="currOpType=='select' && this.multiple!=true" >
|
||||
<template #default="scope">
|
||||
<el-button type="primary" @click="selectConfirm(scope.row)" icon="check"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
layout="slot,total, sizes, prev, next,pager,jumper"
|
||||
@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;"
|
||||
/>
|
||||
<!--新增修改明细 XmProjectKpiHis 项目或任务关键指标考核界面-->
|
||||
<mdp-dialog ref="formDlg" :title="menuDefName" width="80%">
|
||||
<template v-slot="{visible,data}">
|
||||
<XmProjectKpiHisForm ref="XmProjectKpiHisForm" :someOpen="true" :visible="visible" :parentOpType="currOpType" :subOpType="data.subOpType" :formData="data.formData" @close="onFormClose" @submit="afterFormSubmit" @edit-fields="afterEditFields"/>
|
||||
</template>
|
||||
</mdp-dialog>
|
||||
<MdpDialog ref="kanbanDlg" fullscreen :title="menuDefName">
|
||||
<MdpTableKanban
|
||||
:hiddenCfg="{delBtn:false,addBtn:false}"
|
||||
@del="(d,cb)=>handleDel(d)"
|
||||
@plus="(cb)=>showAdd()"
|
||||
@edit="(d,cb)=>showEdit(d)"
|
||||
v-model="tableDatas"
|
||||
:columnConfigs="columnConfigs"
|
||||
:itemKey="pkNames[0]"
|
||||
:contentFun="(item)=>item[pkNames[0]]"
|
||||
/>
|
||||
<!--
|
||||
<template #toolbar="{element}">
|
||||
<MdpSelect showStyle="tag" itemCode="xmProductPstatus" disabled v-model="element.pstatus"/>
|
||||
</template>
|
||||
</MdpTableKanban>
|
||||
-->
|
||||
</MdpDialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { MdpTableMixin } from '@/components/mdp-ui/mixin/MdpTableMixin.js';
|
||||
import * as XmProjectKpiHisApi from '@/api/xm/pro/xmProjectKpiHis';
|
||||
import XmProjectKpiHisForm from'./Form.vue';//新增修改明细界面
|
||||
import { mapState } from 'pinia'
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
|
||||
export default {
|
||||
name:'XmProjectKpiHisMng',
|
||||
mixins:[MdpTableMixin],
|
||||
components: {
|
||||
XmProjectKpiHisForm
|
||||
},
|
||||
computed: {
|
||||
...mapState(useUserStore,['userInfo'])
|
||||
},
|
||||
props:{
|
||||
// 是否开启editSomeField模式
|
||||
someOpen:{
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
menuDefId:'',//menu_def.id 菜单表菜单编号,用于按钮权限判断
|
||||
menuDefName:'项目或任务关键指标考核',//menu_def.name 功能名称,用于导出excel等文件名
|
||||
pkNames:["id", "scoreDate"],//表格主键的java属性名称,驼峰命名,默认为id,支持多主键
|
||||
currOpType:'mng',//表格 mng-综合管理具有最大权限,所有按钮可动、detail-只看不能操作
|
||||
filters:{//查询参数
|
||||
|
||||
},
|
||||
defaultFilters:{//默认查询参数,第一次打开界面的时候用到,恢复默认值的时候用到
|
||||
|
||||
},
|
||||
pageInfo:{//分页数据
|
||||
total:0,//服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算。
|
||||
pageSize: this.pageable?10:1500,//每页数据
|
||||
count:false,//是否需要重新计算总记录数
|
||||
pageNum:1,//当前页码、从1开始计算
|
||||
orderFields:[],//排序列 如 ['sex','student_id'],必须为数据库字段
|
||||
orderDirs:[]//升序 asc,降序desc 如 性别 升序、学生编号降序 ['asc','desc']
|
||||
},
|
||||
//增删改查(含批量)接口
|
||||
apis:{
|
||||
list: XmProjectKpiHisApi.listXmProjectKpiHis,
|
||||
add: XmProjectKpiHisApi.addXmProjectKpiHis,
|
||||
del: XmProjectKpiHisApi.delXmProjectKpiHis,
|
||||
edit: XmProjectKpiHisApi.editXmProjectKpiHis,
|
||||
editSomeFields: XmProjectKpiHisApi.editSomeFieldsXmProjectKpiHis,
|
||||
batchAdd: XmProjectKpiHisApi.batchAddXmProjectKpiHis,
|
||||
batchDel: XmProjectKpiHisApi.batchDelXmProjectKpiHis,
|
||||
batchEdit: XmProjectKpiHisApi.batchEditXmProjectKpiHis,
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
//页面初始化需要配置的特殊逻辑写这里
|
||||
initCurrData(){
|
||||
this.searchTableDatas();
|
||||
},
|
||||
|
||||
/**
|
||||
* 检查参数是否满足调用后台接口的条件
|
||||
*
|
||||
* @param params 提交给后台的参数池,map类型
|
||||
* @returns true / false
|
||||
*/
|
||||
preQueryParamCheck(params){
|
||||
return true;
|
||||
},
|
||||
|
||||
//页面数据加载完后需要对数据进行加工处理的
|
||||
afterList(tableDatas,isOk,apiName){
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 对修改的字段进行判断,返回false ,将取消更新数据库
|
||||
* @param {*} row 当前选中的行
|
||||
* @param {*} fieldName 修改的字段名
|
||||
* @param {*} $event 修改后的值
|
||||
* @param {*} params 将要提交服务器的参数
|
||||
* @returns true/false 返回false ,将取消更新数据库
|
||||
*/
|
||||
editSomeFieldsCheck(row,fieldName,$event,params){
|
||||
params[fieldName]=$event
|
||||
return true;
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
Reference in New Issue
Block a user