Merge branch 'v_1.0.0' of http://gitlab.ldxinyong.com/enterpriseManagement/digitization-ui into v_1.0.0
* 'v_1.0.0' of http://gitlab.ldxinyong.com/enterpriseManagement/digitization-ui: youhua # Conflicts: # src/main.js
This commit is contained in:
commit
814440fdad
@ -1,19 +1,18 @@
|
||||
import request from '@/utils/request'
|
||||
// const baseUrl = process.env.APP_BASE_API
|
||||
|
||||
export function getCaseCollectorListPage (query) {
|
||||
// 获取管理员
|
||||
export function getGround (query) {
|
||||
return request({
|
||||
url: '/caseCollector/caseCollectorListPage',
|
||||
url: '/lz_management/user/lzstaffrole/listByGroupId',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function apiCaseCenterExport (query) {
|
||||
// 获取维度类型
|
||||
export function getDimensions (quer = {}) {
|
||||
return request({
|
||||
url: '/market-api/marketCaseExport/exportMarketCaseDataList',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
url: '/lz_management/resultDimension/getDimensions',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
@ -1,6 +1,4 @@
|
||||
import request from '@/utils/request'
|
||||
// import URL from '@/api/config'
|
||||
// const baseUrl = process.env.PROXY ? URL.baseUrl : '/lz_management'
|
||||
|
||||
// 获取考核组列表
|
||||
export function getWorkList (query) {
|
||||
@ -19,3 +17,39 @@ export function saveBaseSet (query) {
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 删除考核组基础设置
|
||||
export function groundDelete (query) {
|
||||
return request({
|
||||
url: '/lz_management/evaluationGroup/delete',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 保存模板设置
|
||||
export function saveTemSet (query) {
|
||||
return request({
|
||||
url: '/lz_management/resultModel/saveDetail',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 获取流程设计的流程节点
|
||||
export function getByFlowManagerId (query) {
|
||||
return request({
|
||||
url: '/lz_management/flowChart/getByFlowManagerId',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 保存流程节点小流程列表
|
||||
export function saveDetailProcs (query) {
|
||||
return request({
|
||||
url: '/lz_management/flowChart/saveDetailProcs',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
@ -7,6 +7,9 @@ import store from './store'
|
||||
import './utils/elementConfig'
|
||||
import './utils/permission'
|
||||
import './style/index.less'
|
||||
import {
|
||||
debounce
|
||||
} from '@/utils/common'
|
||||
import '@/icons'
|
||||
import {
|
||||
format
|
||||
@ -15,6 +18,8 @@ import {
|
||||
console.log('store: ', store)
|
||||
Vue.config.productionTip = false
|
||||
Vue.prototype.$format = format
|
||||
Vue.prototype.debounce = debounce
|
||||
|
||||
/* eslint-disable no-new */
|
||||
new Vue({
|
||||
el: '#app',
|
||||
|
||||
27
src/utils/common.js
Normal file
27
src/utils/common.js
Normal file
@ -0,0 +1,27 @@
|
||||
/**
|
||||
* @desc 函数防抖
|
||||
* @param func 函数
|
||||
* @param wait 延迟执行毫秒数
|
||||
* @param immediate true 表立即执行,false 表非立即执行
|
||||
*/
|
||||
export function debounce (func, wait, immediate) {
|
||||
let timeout
|
||||
|
||||
return function () {
|
||||
let context = this
|
||||
let args = arguments
|
||||
|
||||
if (timeout) clearTimeout(timeout)
|
||||
if (immediate) {
|
||||
var callNow = !timeout
|
||||
timeout = setTimeout(() => {
|
||||
timeout = null
|
||||
}, wait)
|
||||
if (callNow) func.apply(context, args)
|
||||
} else {
|
||||
timeout = setTimeout(function () {
|
||||
func.apply(context, args)
|
||||
}, wait)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -34,7 +34,7 @@
|
||||
size="mini"
|
||||
placeholder="请选择考评组管理员"
|
||||
readonly
|
||||
v-model="form.input1">
|
||||
:value="Ground.title+ ' 等'+ Ground.list.length + '人'">
|
||||
<i slot="suffix" class="el-input__icon el-icon-edit"></i>
|
||||
</el-input>
|
||||
</el-tooltip>
|
||||
@ -99,8 +99,8 @@
|
||||
<get-depart v-if="isShow" :value.sync='form.depIds' :isShow.sync='isShow' :showDataList.sync='showData'/>
|
||||
<popup-right v-if="showRight" @cancel='handleCancel' @submit="handleSubmit" title="选择考评组管理员">
|
||||
<div slot="content" class="chooseManage">
|
||||
<div v-for="i in 10" class="chooseManage-item" :key="i">
|
||||
<el-checkbox :value='true'></el-checkbox><span style="margin:0 0 0 10px;">hahahhHah </span>
|
||||
<div v-for="i in GroundList" :key="i.staffId" class="chooseManage-item" >
|
||||
<el-checkbox :true-label='1' :false-label='0' :disabled='i.isDisable===1' :checked='i.isDisable===1' v-model='i.isSelect'></el-checkbox><span class='commonFont' style="margin:0 0 0 10px;">{{i.staffName}} </span>
|
||||
</div>
|
||||
</div>
|
||||
</popup-right>
|
||||
@ -111,6 +111,7 @@
|
||||
import getDepart from './getDepart'
|
||||
import getPersonnel from './getPersonnel'
|
||||
import PopupRight from '@/components/PopupRight'
|
||||
import {getGround} from '@/api/data'
|
||||
export default {
|
||||
props: {
|
||||
basisForm: {
|
||||
@ -129,6 +130,8 @@ export default {
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
GroundList: [],
|
||||
GroundList1: [],
|
||||
isSshowOutIds: false,
|
||||
outIdsLsit: {
|
||||
list: []
|
||||
@ -172,17 +175,50 @@ export default {
|
||||
PopupRight
|
||||
},
|
||||
computed: {
|
||||
|
||||
Ground () {
|
||||
const params = {
|
||||
list: [],
|
||||
title: '',
|
||||
managerIds: ''
|
||||
}
|
||||
params.list = this.GroundList1.filter(i => i.isSelect === 1)
|
||||
params.list.map((i, index) => {
|
||||
params.managerIds += i.staffId + ','
|
||||
if (index < 2) params.title += i.staffName.split(' ')[0] + ','
|
||||
})
|
||||
params.managerIds = params.managerIds.substring(0, params.managerIds.length - 1)
|
||||
params.title = params.title.substring(0, params.title.length - 1)
|
||||
// eslint-disable-next-line vue/no-side-effects-in-computed-properties
|
||||
this.form.managerIds = params.managerIds
|
||||
return params
|
||||
}
|
||||
},
|
||||
beforeMount () {},
|
||||
mounted () {
|
||||
async mounted () {
|
||||
this.form = this.basisForm
|
||||
this.handleGetGround()
|
||||
},
|
||||
methods: {
|
||||
async handleGetGround () {
|
||||
try {
|
||||
let res = await getGround({groupId: 1})
|
||||
console.log('res: ', res)
|
||||
res = res.map(i => {
|
||||
i.isDisable = i.isSelect
|
||||
return i
|
||||
})
|
||||
this.GroundList = JSON.parse(JSON.stringify(res))
|
||||
this.GroundList1 = JSON.parse(JSON.stringify(res))
|
||||
} catch (error) {
|
||||
this.$message.error(error.msg)
|
||||
}
|
||||
},
|
||||
handleCancel () {
|
||||
this.GroundList = JSON.parse(JSON.stringify(this.GroundList1))
|
||||
this.showRight = false
|
||||
},
|
||||
handleSubmit () {
|
||||
this.GroundList1 = JSON.parse(JSON.stringify(this.GroundList))
|
||||
this.showRight = false
|
||||
},
|
||||
handleGetChoose (item) {
|
||||
|
||||
@ -29,7 +29,7 @@ import Perform from './Perform'
|
||||
import Entry from './Entry'
|
||||
import Score from './Score'
|
||||
import Approval from './Approval'
|
||||
|
||||
import {getByFlowManagerId, saveDetailProcs} from '@/api/workbench'
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
|
||||
@ -4,9 +4,9 @@
|
||||
<div class="set-top">
|
||||
<div class="set-top-title">总分规则</div>
|
||||
<div class="set-top-content">
|
||||
<el-form label-width="200px" label-position='left' :model="form">
|
||||
<el-form label-width="200px" label-position='left' :model="info">
|
||||
<el-form-item label="指标评分计算方式加和计算">
|
||||
<el-radio-group v-model="form.radio">
|
||||
<el-radio-group v-model="radio">
|
||||
<el-radio :label="3">加权计算
|
||||
<el-popover
|
||||
placement="top-start"
|
||||
@ -21,8 +21,10 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="3.75评分等级制">
|
||||
<el-switch
|
||||
v-model="form.value"
|
||||
v-model="info.gradeStatus"
|
||||
active-color="#3ba1ff"
|
||||
:active-value='1'
|
||||
:inactive-value='0'
|
||||
inactive-color="#dcdfe6">
|
||||
</el-switch>
|
||||
<el-popover
|
||||
@ -42,94 +44,99 @@
|
||||
</div>
|
||||
<div class="set-content">
|
||||
<draggable
|
||||
v-model="info.materialsList"
|
||||
v-model="info.modelItems"
|
||||
:options='options'
|
||||
@change="change"
|
||||
@start="start"
|
||||
@end="end"
|
||||
@move="move"
|
||||
>
|
||||
<div class="set-content-item item" v-for="i in info.materialsList" :key="i.name">
|
||||
<div class="set-content-item-top commonFont">
|
||||
<div class="set-content-item item" v-for="(i,index) in handleFilter(info.modelItems)" :key="index">
|
||||
<div class="set-content-item-top commonFont">
|
||||
<div class="set-content-item-top-left my-handle sortable-drag">
|
||||
{{i.name}}
|
||||
</div>
|
||||
<div class="set-content-item-top-right">
|
||||
<el-tooltip class="item" effect="dark" content="编辑维度" placement="top">
|
||||
<i @click="handleAdd" class="el-icon-edit"></i>
|
||||
<i @click="hanidleEdit(i,index,-1)" class="el-icon-edit"></i>
|
||||
</el-tooltip>
|
||||
<el-tooltip class="item" effect="dark" content="删除维度" placement="top">
|
||||
<i class="el-icon-delete"></i>
|
||||
<el-tooltip class="item" effect="dark" content="删除维度" placement="top">
|
||||
<i @click="handleDelateWeidu(i,index,-1)" class="el-icon-delete"></i>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
<div class="set-content-item-center commonFont">
|
||||
<div class="set-content-item-center-item">
|
||||
{{i.leixing}}
|
||||
{{handleWeiDu(i)}}
|
||||
</div>
|
||||
<div v-if="i.center.number1==='2'" class="set-content-item-center-item">
|
||||
所含指标数量 {{i.center.number1String}}
|
||||
<div v-if="i.maxCount" class="set-content-item-center-item">
|
||||
所含指标数量 {{i.maxCount}}
|
||||
</div>
|
||||
<div v-if="i.center.number2==='2'" class="set-content-item-center-item">
|
||||
所含指标总权重 {{i.center.number2String}}%
|
||||
<div v-if="i.weight !==0 && i.weight" class="set-content-item-center-item">
|
||||
所含指标总权重 {{i.weight * 100}}%
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="i.tableData.length !==0" class="set-content-item-table">
|
||||
<el-table
|
||||
:data="tableData"
|
||||
style="width: 100%">
|
||||
<el-table-column
|
||||
fixed
|
||||
prop="name"
|
||||
label="指标名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="number"
|
||||
label="考核标准">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="number"
|
||||
label="权重(%)">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
fixed="right"
|
||||
label="操作"
|
||||
width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@click.native.prevent="deleteRow(scope.$index)"
|
||||
<div v-if="handleFilter(i.tagetLibItems).length!==0" class="set-content-item-table">
|
||||
<div class="set-content-item-table-header commonFont">
|
||||
<span style="width:30%">指标名称</span>
|
||||
<span style="width:30%">考核标准</span>
|
||||
<span style="width:30%">权重</span>
|
||||
<span style="width:10%">操作</span>
|
||||
</div>
|
||||
<draggable
|
||||
v-model="i.tagetLibItems"
|
||||
:options='options1'
|
||||
@change="change"
|
||||
@start="start"
|
||||
@end="end"
|
||||
@move="move"
|
||||
>
|
||||
<div
|
||||
class="set-content-item-table-content commonFont items"
|
||||
v-for="(j,indexJ) in handleFilter(i.tagetLibItems)"
|
||||
:key="indexJ"
|
||||
>
|
||||
<div style="width:30%">{{j.name}}</div>
|
||||
<div style="width:30%">{{j.keyResult}}</div>
|
||||
<div style="width:30%">{{j.weight * 100}}%</div>
|
||||
<div style="width:10%">
|
||||
<el-button
|
||||
@click="hanidleEdit(j,indexJ,index)"
|
||||
type="text"
|
||||
size="small">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
@click.native.prevent="deleteRow(scope.$index)"
|
||||
@click="handleDelateWeidu(j,indexJ,index)"
|
||||
type="text"
|
||||
size="small">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</draggable>
|
||||
</div>
|
||||
<div class="set-content-item-bottom">
|
||||
<!-- <el-button size="mini" plain>选择指标项</el-button> -->
|
||||
<el-button @click="handleAddIndicators(i)" size="mini" plain>增加指标项</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</draggable>
|
||||
</div>
|
||||
<div>
|
||||
<popup-right v-if="show" @cancel='handleCancel' @submit="handleSubmit" title="添加维度">
|
||||
<popup-right v-if="show" @cancel='handleCancel' @submit="handleSubmit" :title="weiduTitle">
|
||||
<div slot="content" class="weiduManage">
|
||||
<el-form label-position="left" ref="form" :model="form" :rules="rules" label-width="180px">
|
||||
<el-form-item prop="name" label='维度名称'>
|
||||
<el-input clearable size="small" v-model="form.name"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="维度类型">
|
||||
<el-select v-model="form.leixing" placeholder="请选择维度类型">
|
||||
<el-option label="量化指标1" value="shanghai"></el-option>
|
||||
<el-option label="量化指标2" value="beijing"></el-option>
|
||||
<el-select v-model="form.type" placeholder="请选择维度类型">
|
||||
<el-option
|
||||
v-for="i in dimensionsList"
|
||||
:key="i.id"
|
||||
:label="i.name"
|
||||
:value="i.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="所含指标数量">
|
||||
@ -139,11 +146,11 @@
|
||||
<i style="margin:0 10px;" class="el-icon-location"></i>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
<el-radio-group v-model="form.center.number1" size="medium">
|
||||
<el-radio label="1">不限数量</el-radio>
|
||||
<el-radio label="2">自定义</el-radio>
|
||||
<el-radio-group v-model="maxCount" size="medium">
|
||||
<el-radio label="">不限数量</el-radio>
|
||||
<el-radio label="1">自定义</el-radio>
|
||||
</el-radio-group>
|
||||
<el-input clearable size="small" style="width:160px;'" v-if="form.center.number1==='2'" v-model="form.center.number1String"></el-input>
|
||||
<el-input clearable size="small" style="width:160px;'" v-if="maxCount==1" v-model="form.maxCount"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="所含指标总权重">
|
||||
<div slot="label">所含指标总权重
|
||||
@ -151,34 +158,37 @@
|
||||
<i style="margin:0 10px;" class="el-icon-location"></i>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
<el-radio-group v-model="form.center.number2" size="medium">
|
||||
<el-radio label="1">不限权重</el-radio>
|
||||
<el-radio label="2">自定义</el-radio>
|
||||
<el-radio-group v-model="weight" size="medium">
|
||||
<el-radio :label="0">不限权重</el-radio>
|
||||
<el-radio :label="1">自定义</el-radio>
|
||||
</el-radio-group>
|
||||
<el-input clearable size="small" style="width:160px;'" v-if="form.center.number2==='2'" v-model="form.center.number2String">
|
||||
<el-input clearable size="small" style="width:160px;'" v-if="weight===1" v-model="form.weight">
|
||||
<template slot="append">%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</popup-right>
|
||||
<popup-right v-if="showIndicators" @cancel='handleCancelWeiDu' @submit="handleSubmitWeiDu" title="添加指标">
|
||||
<popup-right v-if="showIndicators" @cancel='handleCancelZhibiao' @submit="handleSubmitZhibiao" :title="zhibiaoTitle">
|
||||
<div slot="content" class="weiduManage">
|
||||
<el-form label-position="left" ref="formIndicators" :model="formIndicators" :rules="ruleIndicators" label-width="180px">
|
||||
<el-form-item label="指标类型">
|
||||
<el-select v-model="formIndicators.zhibiao">
|
||||
<el-option label="量化指标1" value="shanghai"></el-option>
|
||||
<el-option label="量化指标2" value="beijing"></el-option>
|
||||
<el-select v-model="formIndicators.zhibiao" disabled placeholder="请选择维度类型">
|
||||
<el-option
|
||||
v-for="i in dimensionsList"
|
||||
:key="i.id"
|
||||
:label="i.name"
|
||||
:value="i.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="name" label='指标名称'>
|
||||
<el-input clearable size="small" v-model="formIndicators.name"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="考核标准">
|
||||
<el-input size="small" clearable type="textarea" v-model="formIndicators.biaozhun"></el-input>
|
||||
<el-form-item label="考核标准" prop="keyResult">
|
||||
<el-input size="small" clearable type="textarea" v-model="formIndicators.keyResult"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="权重">
|
||||
<el-input size="small" clearable v-model="formIndicators.quanzhong">
|
||||
<el-form-item label="权重" prop="weight">
|
||||
<el-input size="small" clearable v-model="formIndicators.weight">
|
||||
<template slot="append">%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -192,16 +202,30 @@
|
||||
<script>
|
||||
import PopupRight from '@/components/PopupRight'
|
||||
import draggable from 'vuedraggable'
|
||||
import Sortable from 'sortablejs'
|
||||
import {getDimensions} from '@/api/data'
|
||||
// console.log('Sortable: ', Sortable)
|
||||
const info = {
|
||||
id: 8,
|
||||
gradeStatus: 1,
|
||||
gradeGroupId: 1,
|
||||
modelItems: [
|
||||
]
|
||||
}
|
||||
export default {
|
||||
props: ['templateForm'],
|
||||
data () {
|
||||
return {
|
||||
isEditForm: {},
|
||||
zhibiaoTitle: '添加指标',
|
||||
weiduTitle: '添加维度',
|
||||
dimensionsList: [], // 维度类型列表
|
||||
show: false, // 控制维度管理显示与隐藏
|
||||
form: {
|
||||
center: {},
|
||||
tableData: []
|
||||
}, // 控制维度管理的表单
|
||||
radio: 3,
|
||||
maxCount: '',
|
||||
weight: 0,
|
||||
// 整个info
|
||||
info: info,
|
||||
form: {}, // 控制维度管理的表单
|
||||
rules: {
|
||||
name: [{ required: true,
|
||||
message: '请输入维度名称',
|
||||
@ -210,10 +234,21 @@ export default {
|
||||
}, // 控制维度管理的规则
|
||||
showIndicators: false, // 控制指标编辑弹窗
|
||||
formIndicators: {}, // 指标表单
|
||||
ruleIndicators: {}, // 指标表单rule
|
||||
info: {
|
||||
materialsList: []
|
||||
},
|
||||
ruleIndicators: {
|
||||
name: [{ required: true,
|
||||
message: '请输入维度名称',
|
||||
trigger: 'blur' }
|
||||
],
|
||||
keyResult: [{ required: true,
|
||||
message: '请输入考核标准',
|
||||
trigger: 'blur' }
|
||||
],
|
||||
weight: [{ required: true,
|
||||
message: '请输入权重大小',
|
||||
trigger: 'blur' }
|
||||
]
|
||||
}, // 指标表单rule
|
||||
zanshi: {},
|
||||
tableData: [{name: '12345', number: 1}, {name: '78945', number: 2}, {name: '5566655', number: 3}],
|
||||
options: {
|
||||
group: 'name',
|
||||
@ -227,6 +262,17 @@ export default {
|
||||
disabled: false, // 如果设置为真,则禁用sortable。
|
||||
store: null, // @see Store
|
||||
animation: 150 // ms, 动画速度运动项目排序时,' 0 ' -没有动画。
|
||||
},
|
||||
options1: {
|
||||
group: 'names',
|
||||
draggable: '.items',
|
||||
scroll: true,
|
||||
sort: true, // 内部排序列表
|
||||
delay: 0, // 以毫秒为单位定义排序何时开始。
|
||||
touchStartThreshold: 0, // px,在取消延迟拖动事件之前,点应该移动多少像素?
|
||||
disabled: false, // 如果设置为真,则禁用sortable。
|
||||
store: null, // @see Store
|
||||
animation: 150 // ms, 动画速度运动项目排序时,' 0 ' -没有动画。
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -237,19 +283,25 @@ export default {
|
||||
computed: {},
|
||||
beforeMount () {},
|
||||
mounted () {
|
||||
// this.rowDrop()
|
||||
this.handleGetDimensions()
|
||||
},
|
||||
methods: {
|
||||
// 行拖拽
|
||||
rowDrop () {
|
||||
const tbody = document.querySelector('.el-table__body-wrapper tbody')
|
||||
const _this = this
|
||||
Sortable.create(tbody, {
|
||||
onEnd ({ newIndex, oldIndex }) {
|
||||
const currRow = _this.tableData.splice(oldIndex, 1)[0]
|
||||
_this.tableData.splice(newIndex, 0, currRow)
|
||||
}
|
||||
})
|
||||
handleFilter (item) {
|
||||
return item ? item.filter(i => i.isDelete === 0) : []
|
||||
},
|
||||
// 更具维度id获取维度名称
|
||||
handleWeiDu (item) {
|
||||
return this.dimensionsList.filter(i => i.id === item.type)[0].name
|
||||
},
|
||||
// 获取维度类型
|
||||
async handleGetDimensions () {
|
||||
try {
|
||||
const res = await getDimensions()
|
||||
this.dimensionsList = res
|
||||
console.log('res: ', res)
|
||||
} catch (error) {
|
||||
this.$message.error(error.msg)
|
||||
}
|
||||
},
|
||||
change () {},
|
||||
start () {},
|
||||
@ -257,29 +309,100 @@ export default {
|
||||
move () {},
|
||||
// 添加考核维度
|
||||
handleAdd () {
|
||||
this.form = {
|
||||
type: this.dimensionsList.length > 0 ? this.dimensionsList[0].id : ''
|
||||
}
|
||||
this.weiduTitle = '添加维度'
|
||||
this.show = true
|
||||
},
|
||||
handleCancel () {
|
||||
this.show = false
|
||||
},
|
||||
handleSubmit () {
|
||||
console.log('this.form: ', this.form)
|
||||
this.info.materialsList.push(this.form)
|
||||
this.show = false
|
||||
this.$refs.form.validate((v) => {
|
||||
if (v) {
|
||||
if (this.form.isEdit) {
|
||||
this.info.modelItems[this.form.index] = Object.assign({}, this.form)
|
||||
this.form = {}
|
||||
this.show = false
|
||||
return
|
||||
}
|
||||
this.form.weight = this.form.weight / 100 > 1 ? 1 : this.form.weight / 100
|
||||
this.info.modelItems.push(Object.assign({}, this.form, {isDelete: 0}))
|
||||
this.form = {}
|
||||
this.show = false
|
||||
}
|
||||
})
|
||||
},
|
||||
// 编辑
|
||||
hanidleEdit (item, index, type) {
|
||||
if (type === -1) {
|
||||
this.weiduTitle = '编辑维度'
|
||||
this.form = Object.assign({}, item, {index, index2: type, isEdit: true})
|
||||
this.form.weight = this.form.weight * 100
|
||||
this.show = true
|
||||
} else {
|
||||
this.zhibiaoTitle = '编辑指标'
|
||||
this.formIndicators = Object.assign({}, item, {index, index2: type, isEdit: true})
|
||||
this.formIndicators.weight = this.formIndicators.weight * 100
|
||||
this.showIndicators = true
|
||||
}
|
||||
},
|
||||
// 删除维度
|
||||
handleDelateWeidu (item, index, type) {
|
||||
if (item.id) {
|
||||
item.isDelete = 1
|
||||
this.$forceUpdate()
|
||||
return
|
||||
}
|
||||
if (type === -1) {
|
||||
this.info.modelItems = this.info.modelItems.filter((i, xia) => xia !== index)
|
||||
} else {
|
||||
this.info.modelItems[type].tagetLibItems = this.info.modelItems[type].tagetLibItems.filter((i, xia) => xia !== index)
|
||||
}
|
||||
this.$forceUpdate()
|
||||
},
|
||||
handleAddIndicators (item) {
|
||||
this.formIndicators = item
|
||||
this.zanshi = item
|
||||
this.zhibiaoTitle = '添加指标'
|
||||
this.formIndicators = {
|
||||
zhibiao: item.type
|
||||
}
|
||||
this.showIndicators = true
|
||||
},
|
||||
handleCancelWeiDu () {
|
||||
handleCancelZhibiao () {
|
||||
this.showIndicators = false
|
||||
},
|
||||
handleSubmitWeiDu () {
|
||||
console.log('this.formIndicators: ', this.formIndicators)
|
||||
this.showIndicators = false
|
||||
handleSubmitZhibiao () {
|
||||
this.$refs.formIndicators.validate((v) => {
|
||||
if (v) {
|
||||
if (this.formIndicators.isEdit) {
|
||||
this.info.modelItems[this.formIndicators.index].tagetLibItems[this.formIndicators.index2] = Object.assign({}, this.formIndicators)
|
||||
this.showIndicators = false
|
||||
return
|
||||
}
|
||||
if (!this.zanshi.tagetLibItems) this.zanshi.tagetLibItems = []
|
||||
this.formIndicators.weight = this.formIndicators.weight / 100 > 1 ? 1 : this.formIndicators.weight / 100
|
||||
this.zanshi.tagetLibItems.push(Object.assign({}, this.formIndicators, {isDelete: 0}))
|
||||
this.showIndicators = false
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
watch: {}
|
||||
watch: {
|
||||
maxCount (n, o) {
|
||||
if (!n) this.form.maxCount = ''
|
||||
},
|
||||
weight (n, o) {
|
||||
if (n === 0) this.form.weight = 0
|
||||
},
|
||||
info: {
|
||||
deep: true,
|
||||
handler (n, o) {
|
||||
this.$emit('update:templateForm', Object.assign({}, this.templateForm, n))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -378,6 +501,26 @@ export default {
|
||||
}
|
||||
}
|
||||
&-table{
|
||||
&-header{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
height: 60px;
|
||||
border-bottom: 1px solid @borderColor;
|
||||
span{
|
||||
padding:0 0 0 20px;
|
||||
}
|
||||
}
|
||||
&-content{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 60px;
|
||||
border-bottom: 1px solid @borderColor;
|
||||
justify-content: space-between;
|
||||
div{
|
||||
padding:0 0 0 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
&-bottom{
|
||||
padding: 10px;
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
</div>
|
||||
<div class="eidt-content boderAndRadius">
|
||||
<basis :basisForm.sync='basisForm' v-show="active===1"/>
|
||||
<template-set v-show="active===2"/>
|
||||
<template-set :templateForm.sync='templateForm' v-show="active===2"/>
|
||||
<process v-show="active===3"/>
|
||||
</div>
|
||||
</div>
|
||||
@ -21,20 +21,29 @@
|
||||
import basis from './components/basis'
|
||||
import process from './components/process'
|
||||
import templateSet from './components/templateSet'
|
||||
import {saveBaseSet} from '@/api/workbench'
|
||||
import {saveBaseSet, saveTemSet} from '@/api/workbench'
|
||||
console.log('saveBaseSet: ', saveBaseSet)
|
||||
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
active: 1,
|
||||
active: 3,
|
||||
// 基础
|
||||
basisForm: {
|
||||
// id: 8,
|
||||
counts: '', // 参与考核人数
|
||||
depIds: '', // 参与部门id,逗号隔开
|
||||
managerIds: '395', // 绩效管理员ID,system_user,id,逗号隔开
|
||||
outIds: '', // 排除人员ids,逗号隔开
|
||||
staffIds: '', // 参与考核员工staff_id,逗号隔开.
|
||||
name: ''
|
||||
},
|
||||
templateForm: {
|
||||
evaluationGroupId: 8,
|
||||
calculateId: 1,
|
||||
gradeGroupId: 1,
|
||||
gradeStatus: 1,
|
||||
modelItems: []
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -53,10 +62,20 @@ export default {
|
||||
this.active = item
|
||||
},
|
||||
async handSaveBasisc () {
|
||||
console.log('this.templateForm: ', this.templateForm)
|
||||
console.log('this.basisForm: ', this.basisForm)
|
||||
try {
|
||||
let res = await saveBaseSet(this.basisForm)
|
||||
this.basisForm = res
|
||||
this.templateForm.evaluationGroupId = res.id
|
||||
console.log('res: ', res)
|
||||
} catch (error) {
|
||||
this.$message.error(error.msg)
|
||||
}
|
||||
console.log('this.templateForm: ', JSON.stringify(this.templateForm))
|
||||
try {
|
||||
let res = await saveTemSet(this.templateForm)
|
||||
// this.basisForm = res
|
||||
console.log('res: ', res)
|
||||
} catch (error) {
|
||||
this.$message.error(error.msg)
|
||||
|
||||
@ -2,13 +2,10 @@
|
||||
<template>
|
||||
<div class="assessment">
|
||||
<div class="assessment-form">
|
||||
<el-form ref="form" inline :model="form" >
|
||||
<div>
|
||||
<el-form ref="form" @submit.native.prevent inline :model="form" >
|
||||
<el-form-item >
|
||||
<el-input size="small" clearable prefix-icon="el-icon-search" v-model="form.name" placeholder="搜索考核名称"></el-input>
|
||||
<el-input @change="handleChange" @keyup.enter="handleChange" size="small" clearable prefix-icon="el-icon-search" v-model="form.name" placeholder="搜索考核名称"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div>
|
||||
<el-form-item >
|
||||
<el-dropdown >
|
||||
<el-button size="small" type="primary">
|
||||
@ -20,7 +17,6 @@
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
<el-table
|
||||
@ -44,16 +40,16 @@
|
||||
width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@click.native.prevent="deleteRow(scope.$index, tableData)"
|
||||
@click="handleDelete(scope.row.id)"
|
||||
type="text"
|
||||
size="small">
|
||||
查看
|
||||
编 辑
|
||||
</el-button>
|
||||
<el-button
|
||||
@click.native.prevent="deleteRow(scope.$index, tableData)"
|
||||
@click="handleDelete(scope.row.id)"
|
||||
type="text"
|
||||
size="small">
|
||||
删除
|
||||
删 除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -61,6 +57,7 @@
|
||||
<div class="footer">
|
||||
<el-pagination
|
||||
small
|
||||
@current-change="handleChangePage"
|
||||
layout="prev, pager, next"
|
||||
page-size.sync='params.pageSize'
|
||||
:total="params.totalCount">
|
||||
@ -70,7 +67,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getWorkList} from '@/api/workbench'
|
||||
import {getWorkList, groundDelete} from '@/api/workbench'
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
@ -88,6 +85,18 @@ export default {
|
||||
this.handleGetData()
|
||||
},
|
||||
methods: {
|
||||
handleChange (value) {
|
||||
this.params = {
|
||||
'currPage': 1,
|
||||
'pageSize': 10,
|
||||
'name': this.form.name
|
||||
}
|
||||
this.handleGetData()
|
||||
},
|
||||
handleChangePage (value) {
|
||||
this.params.currPage = value
|
||||
this.handleGetData()
|
||||
},
|
||||
async handleGetData () {
|
||||
try {
|
||||
const res = await getWorkList(Object.assign({}, this.params))
|
||||
@ -107,8 +116,17 @@ export default {
|
||||
console.log('column: ', column)
|
||||
console.log('row: ', row)
|
||||
},
|
||||
deleteRow (index, rows) {
|
||||
rows.splice(index, 1)
|
||||
async handleDelete (item) {
|
||||
try {
|
||||
await groundDelete({id: item})
|
||||
this.handleGetData()
|
||||
this.$message({
|
||||
message: '成功',
|
||||
type: 'success'
|
||||
})
|
||||
} catch (error) {
|
||||
this.$message.error(error.msg)
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {}
|
||||
|
||||
@ -2,10 +2,17 @@
|
||||
<template>
|
||||
<div class="home boderAndRadius" >
|
||||
<div class='home-left'>
|
||||
<div class="home-left-todo">
|
||||
<div class="commonFont">待办事项<span style="margin:0 4px" class="blueColor">0</span>条</div>
|
||||
<div class="blueColor noSelect commonFont" style="cursor: pointer;" @click="handleGetMoreToDo('workbench-todo')">查看更多<i class="el-icon-arrow-right"></i></div>
|
||||
</div>
|
||||
<div class="home-left-todo">
|
||||
<div class="home-left-todo-top">
|
||||
<div class="commonFont">待办事项<span style="margin:0 4px" class="blueColor">0</span>条</div>
|
||||
<div class="blueColor noSelect commonFont" style="cursor: pointer;" @click="handleGetMoreToDo('workbench-todo')">查看更多<i class="el-icon-arrow-right"></i></div>
|
||||
</div>
|
||||
<div class="home-left-todo-center">
|
||||
<!-- <div style="height:300px">
|
||||
sassa
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="home-left-enter">
|
||||
<div class="home-left-enter-title commonFont">快捷入口</div>
|
||||
<div class="home-left-enter-content">
|
||||
@ -64,11 +71,18 @@ export default {
|
||||
width: 828px;
|
||||
&-todo{
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
border-bottom: 1px solid @borderColor;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
padding-top: 18px;
|
||||
&-top{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
&-center{
|
||||
padding: 10px 0;
|
||||
max-height: 200px;
|
||||
overflow: auto;
|
||||
}
|
||||
.blueColor{
|
||||
color: @fontBlue;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user