优化
This commit is contained in:
parent
31d4477577
commit
a05c8267eb
@ -28,7 +28,7 @@ export default {
|
|||||||
.appamin{
|
.appamin{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 30px 80px 0;
|
padding: 30px 80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -11,13 +11,13 @@
|
|||||||
>
|
>
|
||||||
{{i.meta.title}}</li>
|
{{i.meta.title}}</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="noNav" v-if="!isNav">
|
<nav-header v-if="!isNav"/>
|
||||||
|
<!-- <div class="noNav" v-if="!isNav">
|
||||||
<div class="noNav-left">
|
<div class="noNav-left">
|
||||||
<i @click="handleBack" class="el-icon-arrow-left"></i>
|
<i @click="handleBack" class="el-icon-arrow-left"></i>
|
||||||
</div>
|
</div>
|
||||||
<!-- <svg-icon icon-class="analyze" /> -->
|
|
||||||
<div>{{name}}</div>
|
<div>{{name}}</div>
|
||||||
</div>
|
</div> -->
|
||||||
</transition>
|
</transition>
|
||||||
<div class="navBar-right" v-if="isNav">
|
<div class="navBar-right" v-if="isNav">
|
||||||
<img src="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2346299354,1694591848&fm=26&gp=0.jpg" alt="">
|
<img src="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2346299354,1694591848&fm=26&gp=0.jpg" alt="">
|
||||||
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import routeList from '@/router/kpi_route'
|
import routeList from '@/router/kpi_route'
|
||||||
console.log('_route: ', routeList[0].children)
|
import NavHeader from './NavHeader'
|
||||||
export default {
|
export default {
|
||||||
name: 'NavBar',
|
name: 'NavBar',
|
||||||
data () {
|
data () {
|
||||||
@ -37,14 +37,10 @@ export default {
|
|||||||
activeIndex2: '1'
|
activeIndex2: '1'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
NavHeader
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
isPopup () {
|
|
||||||
return !!this.$route.meta.pop
|
|
||||||
},
|
|
||||||
name () {
|
|
||||||
return this.$route.meta.title
|
|
||||||
},
|
|
||||||
isNav () {
|
isNav () {
|
||||||
return !!this.$route.meta.isNav
|
return !!this.$route.meta.isNav
|
||||||
},
|
},
|
||||||
@ -54,32 +50,14 @@ export default {
|
|||||||
},
|
},
|
||||||
beforeMount () {},
|
beforeMount () {},
|
||||||
mounted () {
|
mounted () {
|
||||||
console.log('this.$route', this.$route)
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleBack () {
|
|
||||||
if (this.isPopup) return this.open()
|
|
||||||
this.$router.go(-1)
|
|
||||||
},
|
|
||||||
handleToRouter (item) {
|
handleToRouter (item) {
|
||||||
if (this.title.includes(item)) return
|
if (this.title.includes(item)) return
|
||||||
this.$router.push({name: item})
|
this.$router.push({name: item})
|
||||||
},
|
},
|
||||||
handleSelect (key, keyPath) {
|
handleSelect (key, keyPath) {
|
||||||
console.log(key, keyPath)
|
console.log(key, keyPath)
|
||||||
},
|
|
||||||
open () {
|
|
||||||
const obj = {
|
|
||||||
popupTitle: this.$route.meta.popupTitle || '有修改的内容未保存,确认离开吗?',
|
|
||||||
popupContent: this.$route.meta.popupContent || '系统可能不会保存您做的更改。'
|
|
||||||
}
|
|
||||||
this.$confirm(obj.popupContent, obj.popupTitle, {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
type: 'warning'
|
|
||||||
}).then(() => {
|
|
||||||
this.$router.go(-1)
|
|
||||||
}).catch(() => { })
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@ -90,9 +68,19 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang='less' scoped>
|
<style lang='less' scoped>
|
||||||
|
.navBar::before{
|
||||||
|
content: '';
|
||||||
|
width: 100%;
|
||||||
|
height: 4px;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
.navBar{
|
.navBar{
|
||||||
|
position: relative;
|
||||||
|
z-index: 4;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 60px;
|
height: @headerHeight;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -120,23 +108,6 @@ export default {
|
|||||||
.active{
|
.active{
|
||||||
color: #09f;
|
color: #09f;
|
||||||
}
|
}
|
||||||
.noNav{
|
|
||||||
height: 40px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
&-left{
|
|
||||||
width: 60px;
|
|
||||||
height: 30px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
border-right: 1px solid #c0c0c0;
|
|
||||||
margin-right: 20px;
|
|
||||||
i{
|
|
||||||
font-size: 22px;
|
|
||||||
cursor:pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<style lang='less' scoped>
|
<style lang='less' scoped>
|
||||||
|
|||||||
74
src/components/kpi-layout/NavHeader.vue
Normal file
74
src/components/kpi-layout/NavHeader.vue
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<!-- -->
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="noNav">
|
||||||
|
<div class="noNav-left">
|
||||||
|
<i @click="handleBack" class="el-icon-arrow-left"></i>
|
||||||
|
</div>
|
||||||
|
<!-- <svg-icon icon-class="analyze" /> -->
|
||||||
|
<div>{{name}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
isPopup () {
|
||||||
|
return !!this.$route.meta.pop
|
||||||
|
},
|
||||||
|
name () {
|
||||||
|
return this.$route.meta.title
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeMount () {},
|
||||||
|
mounted () {},
|
||||||
|
methods: {
|
||||||
|
handleBack () {
|
||||||
|
if (this.isPopup) return this.open()
|
||||||
|
this.$router.go(-1)
|
||||||
|
},
|
||||||
|
open () {
|
||||||
|
const obj = {
|
||||||
|
popupTitle: this.$route.meta.popupTitle || '有修改的内容未保存,确认离开吗?',
|
||||||
|
popupContent: this.$route.meta.popupContent || '系统可能不会保存您做的更改。'
|
||||||
|
}
|
||||||
|
this.$confirm(obj.popupContent, obj.popupTitle, {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
this.$router.go(-1)
|
||||||
|
}).catch(() => { })
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang='less' scoped>
|
||||||
|
.noNav{
|
||||||
|
height: 40px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
&-left{
|
||||||
|
width: 60px;
|
||||||
|
height: 30px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
border-right: 1px solid #c0c0c0;
|
||||||
|
margin-right: 20px;
|
||||||
|
i{
|
||||||
|
font-size: 22px;
|
||||||
|
cursor:pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -12,14 +12,17 @@ import AppMain from './AppMain'
|
|||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
NavBar,
|
NavBar,
|
||||||
AppMain
|
AppMain
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {
|
||||||
|
// hiddenHeader () {
|
||||||
|
// return !!this.$route.meta.hidden
|
||||||
|
// }
|
||||||
|
},
|
||||||
beforeMount () {},
|
beforeMount () {},
|
||||||
mounted () {},
|
mounted () {},
|
||||||
methods: {},
|
methods: {},
|
||||||
|
|||||||
@ -39,7 +39,17 @@ export default [
|
|||||||
component: (resolve) => require(['@/views/kpi/workbench/assessmentGroup/index.vue'], resolve),
|
component: (resolve) => require(['@/views/kpi/workbench/assessmentGroup/index.vue'], resolve),
|
||||||
meta: {
|
meta: {
|
||||||
title: '考评组设置',
|
title: '考评组设置',
|
||||||
isNav: false
|
isNav: false,
|
||||||
|
hidden: true
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
path: 'edit',
|
||||||
|
name: 'workbench-edit-group',
|
||||||
|
component: (resolve) => require(['@/views/kpi/workbench/assessmentGroup/edit'], resolve),
|
||||||
|
meta: {
|
||||||
|
title: '编辑考评组',
|
||||||
|
isNav: false,
|
||||||
|
hidden: true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -75,23 +85,22 @@ export default [
|
|||||||
title: '设置',
|
title: '设置',
|
||||||
isNav: true
|
isNav: true
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
path: 'home',
|
||||||
|
name: 'home',
|
||||||
|
component: (resolve) => require(['@/views/kpi/home/index.vue'], resolve),
|
||||||
|
meta: {
|
||||||
|
title: '智能测试'
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
path: 'home1',
|
||||||
|
name: 'home1',
|
||||||
|
component: (resolve) => require(['@/views/kpi/home1/index.vue'], resolve),
|
||||||
|
meta: {
|
||||||
|
title: '智能测试带弹窗',
|
||||||
|
pop: true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// , {
|
|
||||||
// path: 'home',
|
|
||||||
// name: 'home',
|
|
||||||
// component: (resolve) => require(['@/views/kpi/home/index.vue'], resolve),
|
|
||||||
// meta: {
|
|
||||||
// title: '智能测试'
|
|
||||||
// }
|
|
||||||
// }, {
|
|
||||||
// path: 'home1',
|
|
||||||
// name: 'home1',
|
|
||||||
// component: (resolve) => require(['@/views/kpi/home1/index.vue'], resolve),
|
|
||||||
// meta: {
|
|
||||||
// title: '智能测试带弹窗',
|
|
||||||
// pop: true
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
@borderColor: #ebebeb;
|
@borderColor: #ebebeb;
|
||||||
@fontBlue: #3ba1ff;
|
@fontBlue: #3ba1ff;
|
||||||
|
@headerHeight:60px;
|
||||||
.boderAndRadius{
|
.boderAndRadius{
|
||||||
border: 1px solid @borderColor;
|
border: 1px solid @borderColor;
|
||||||
border-radius:6px ;
|
border-radius:6px ;
|
||||||
|
|||||||
@ -17,12 +17,22 @@ import {
|
|||||||
TimePicker,
|
TimePicker,
|
||||||
Col,
|
Col,
|
||||||
Checkbox,
|
Checkbox,
|
||||||
Radio
|
Radio,
|
||||||
|
Dropdown,
|
||||||
|
DropdownMenu,
|
||||||
|
DropdownItem,
|
||||||
|
Dialog,
|
||||||
|
Tree,
|
||||||
|
Tag
|
||||||
} from 'element-ui'
|
} from 'element-ui'
|
||||||
|
|
||||||
Vue.prototype.$message = Message
|
Vue.prototype.$message = Message
|
||||||
Vue.prototype.$confirm = MessageBox.confirm
|
Vue.prototype.$confirm = MessageBox.confirm
|
||||||
Vue.prototype.$alert = MessageBox.alert
|
Vue.prototype.$alert = MessageBox.alert
|
||||||
|
|
||||||
|
Vue.use(Tag)
|
||||||
|
Vue.use(Tree)
|
||||||
|
Vue.use(Dialog)
|
||||||
Vue.use(DatePicker)
|
Vue.use(DatePicker)
|
||||||
Vue.use(Select)
|
Vue.use(Select)
|
||||||
Vue.use(RadioGroup)
|
Vue.use(RadioGroup)
|
||||||
@ -39,3 +49,6 @@ Vue.use(TimePicker)
|
|||||||
Vue.use(Col)
|
Vue.use(Col)
|
||||||
Vue.use(Checkbox)
|
Vue.use(Checkbox)
|
||||||
Vue.use(Radio)
|
Vue.use(Radio)
|
||||||
|
Vue.use(Dropdown)
|
||||||
|
Vue.use(DropdownMenu)
|
||||||
|
Vue.use(DropdownItem)
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<el-form ref="form" inline :model="form" >
|
<el-form ref="form" inline :model="form" >
|
||||||
<div>
|
<div>
|
||||||
<el-form-item >
|
<el-form-item >
|
||||||
<el-select v-model="form.value" placeholder="请选择" style="width:100px">
|
<el-select size="small" v-model="form.value" placeholder="请选择" style="width:100px">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in options"
|
v-for="item in options"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
@ -15,21 +15,22 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item >
|
<el-form-item >
|
||||||
<el-input prefix-icon="el-icon-search" v-model="form.name" placeholder="搜索考核名称"></el-input>
|
<el-input size="small" clearable prefix-icon="el-icon-search" v-model="form.name" placeholder="搜索考核名称"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-form-item >
|
<el-form-item >
|
||||||
<el-button type="primary" @click="handleRight">发起考核</el-button>
|
<el-button type="primary" size="small" @click="handleRight">发起考核</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item >
|
<el-form-item >
|
||||||
<el-button >导入历史绩效</el-button>
|
<el-button size="small" >导入历史绩效</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<div class="assessment-table">
|
<div class="assessment-table">
|
||||||
<el-table
|
<el-table
|
||||||
|
:header-cell-style="{background:'#F5F7FA'}"
|
||||||
@row-click='handleSelectClick'
|
@row-click='handleSelectClick'
|
||||||
:data="tableData"
|
:data="tableData"
|
||||||
style="width: 100%">
|
style="width: 100%">
|
||||||
@ -102,11 +103,11 @@ export default {
|
|||||||
number: '10'
|
number: '10'
|
||||||
}, {
|
}, {
|
||||||
date: '2016-05-03',
|
date: '2016-05-03',
|
||||||
name: '2020年01月绩效考核',
|
name: '2020年02月绩效考核',
|
||||||
number: '10'
|
number: '10'
|
||||||
}, {
|
}, {
|
||||||
date: '2016-05-03',
|
date: '2016-05-03',
|
||||||
name: '2020年01月绩效考核',
|
name: '2020年03月绩效考核',
|
||||||
number: '10'
|
number: '10'
|
||||||
}, {
|
}, {
|
||||||
date: '2016-05-03',
|
date: '2016-05-03',
|
||||||
|
|||||||
@ -2,8 +2,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
OKR
|
<div v-for="i in array" :key="i.id">
|
||||||
|
<!-- {{i.id}}{{bbb(i)}} -->
|
||||||
|
</div>
|
||||||
|
<el-button @click="aaa">点击</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -11,13 +13,32 @@ OKR
|
|||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
array: [{
|
||||||
|
id: 1,
|
||||||
|
isTrue: true
|
||||||
|
}, {
|
||||||
|
id: 2,
|
||||||
|
isTrue: true
|
||||||
|
}, {
|
||||||
|
id: 3,
|
||||||
|
isTrue: true
|
||||||
|
}],
|
||||||
|
arr1: [1, 2]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
beforeMount () {},
|
beforeMount () {},
|
||||||
mounted () {},
|
mounted () {},
|
||||||
methods: {},
|
methods: {
|
||||||
|
bbb (item) {
|
||||||
|
console.log(145623)
|
||||||
|
return this.arr1.some(i => i === item.id)
|
||||||
|
},
|
||||||
|
aaa () {
|
||||||
|
this.arr1 = []
|
||||||
|
console.log('this.array: ', this.array)
|
||||||
|
}
|
||||||
|
},
|
||||||
watch: {}
|
watch: {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,2 @@
|
|||||||
|
const a = {'msg': '操作成功', 'code': 200, 'data': [{'id': 100, 'name': '霖梓控股', 'children': [{'id': 114, 'name': '其他', 'children': [{'id': 115, 'name': 'qtzy', 'children': [{'id': 117, 'name': '电销'}]}]}, {'id': 102, 'name': '武汉分公司', 'children': [{'id': 109, 'name': '财务部门'}, {'id': 108, 'name': '市场部门'}]}, {'id': 101, 'name': '杭州总公司', 'children': [{'id': 103, 'name': '研发部门', 'children': [{'id': 118, 'name': '研发小组'}, {'id': 119, 'name': '测试二组'}, {'id': 112, 'name': '研发一组', 'children': [{'id': 113, 'name': '测试小组'}]}]}, {'id': 104, 'name': '市场部门'}, {'id': 105, 'name': '测试部门'}, {'id': 106, 'name': '财务部门'}, {'id': 107, 'name': '运维部门'}]}]}]}
|
||||||
|
export default a.data
|
||||||
@ -0,0 +1,97 @@
|
|||||||
|
<!-- -->
|
||||||
|
<template>
|
||||||
|
<div class="basis">
|
||||||
|
<div class="basis-title commonFont">
|
||||||
|
基本信息
|
||||||
|
</div>
|
||||||
|
<div class="basis-form">
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||||
|
<el-form-item label="考评组名称:" prop="name">
|
||||||
|
<el-input v-model="form.name" placeholder="请输入名称"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="周期类型:">
|
||||||
|
<el-radio-group v-model="form.radio">
|
||||||
|
<el-radio
|
||||||
|
v-for="(i,index) in zhouqi"
|
||||||
|
:key="index"
|
||||||
|
:label="i.id">{{i.name}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="考评组管理员:">
|
||||||
|
<el-input v-model="form.name" placeholder="请输入名称"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="被考核人员" prop="name">
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="考评员工:">
|
||||||
|
<el-button size='mini' @click="handleGetChoose" icon="el-icon-plus">选部门</el-button>
|
||||||
|
<el-button size='mini' @click="handleGetChoose" icon="el-icon-plus">选角色</el-button>
|
||||||
|
<el-button size='mini' @click="handleGetChoose" icon="el-icon-plus">选人员</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<get-depart v-if="isShow" :isShow.sync='isShow'/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import getDepart from './getDepart'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
isShow: false,
|
||||||
|
zhouqi: [{
|
||||||
|
id: 1,
|
||||||
|
name: '月度'
|
||||||
|
}, {
|
||||||
|
id: 2,
|
||||||
|
name: '季度'
|
||||||
|
}, {
|
||||||
|
id: 3,
|
||||||
|
name: '半年度'
|
||||||
|
}, {
|
||||||
|
id: 4,
|
||||||
|
name: '年度'
|
||||||
|
}, {
|
||||||
|
id: 5,
|
||||||
|
name: '试用期'
|
||||||
|
}],
|
||||||
|
form: {},
|
||||||
|
rules: {
|
||||||
|
name: [
|
||||||
|
{ required: true, message: '请输入活动名称', trigger: 'blur' },
|
||||||
|
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
getDepart
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
beforeMount () {},
|
||||||
|
mounted () {},
|
||||||
|
methods: {
|
||||||
|
handleGetChoose () {
|
||||||
|
this.isShow = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang='less' scoped>
|
||||||
|
.basis{
|
||||||
|
&-title{
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
&-form{
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,210 @@
|
|||||||
|
<!-- -->
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-dialog
|
||||||
|
title="选择参与部门"
|
||||||
|
:visible.sync="show"
|
||||||
|
@close='close'
|
||||||
|
width="800px"
|
||||||
|
center>
|
||||||
|
<div class="popup">
|
||||||
|
<div class="popup-item boderAndRadius">
|
||||||
|
<div class="popup-item-title">全部</div>
|
||||||
|
<div class="popup-item-content">
|
||||||
|
<div class="popup-item-content-item">
|
||||||
|
<div class="content">
|
||||||
|
<el-checkbox>全选</el-checkbox>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-for="(i) in showData" :key="i.id" class="popup-item-content-item borderItem">
|
||||||
|
<div class="content"><el-checkbox :value ='handleCheck(i)' @change='handleChangChoose($event,i)' >{{i.name}}</el-checkbox></div>
|
||||||
|
<div class="popup-item-content-item-next" :class="{isHasActive:handleCheck(i)}" @click='handleNext(i)'>下级</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="popup-item boderAndRadius">
|
||||||
|
<div class="popup-item-right">
|
||||||
|
<el-tag
|
||||||
|
v-for="tag in tags"
|
||||||
|
:key="tag.name"
|
||||||
|
@close="handleClose(tag)"
|
||||||
|
closable>
|
||||||
|
{{tag.name}}
|
||||||
|
</el-tag>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button size="mini" @click="xcq">取 消</el-button>
|
||||||
|
<el-button size="mini" @click="xcq1">清空全部</el-button>
|
||||||
|
<el-button size="mini" type="primary" @click="centerDialogVisible">确 定</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import bbb from './a'
|
||||||
|
console.log('bbb: ', bbb)
|
||||||
|
export default {
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
show: true,
|
||||||
|
checked: false,
|
||||||
|
data: bbb,
|
||||||
|
showData: [],
|
||||||
|
checkList: [],
|
||||||
|
tags: [{
|
||||||
|
id: 100,
|
||||||
|
name: '霖梓控股'
|
||||||
|
}],
|
||||||
|
defaultProps: {
|
||||||
|
children: 'children',
|
||||||
|
label: 'name'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
|
||||||
|
},
|
||||||
|
beforeMount () {},
|
||||||
|
mounted () {
|
||||||
|
this.showData = this.data.length > -1 ? this.data : []
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 是否勾选
|
||||||
|
handleCheck (item) {
|
||||||
|
return this.tags.some(i => i.id === item.id)
|
||||||
|
},
|
||||||
|
handleChangChoose (event, item) {
|
||||||
|
const isHas = this.tags.some(i => i.id === item.id)
|
||||||
|
if (isHas && !event) {
|
||||||
|
this.tags = this.tags.filter(i => i.id !== item.id)
|
||||||
|
}
|
||||||
|
if (!isHas && event) {
|
||||||
|
this.tags.push(item)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleClick (data) {
|
||||||
|
},
|
||||||
|
// 点击下级
|
||||||
|
handleNext (item) {
|
||||||
|
if (this.handleCheck(item)) return
|
||||||
|
this.showData = item.children
|
||||||
|
this.handleGetNextChildren()
|
||||||
|
},
|
||||||
|
// 删除右侧标签
|
||||||
|
handleClose (item) {
|
||||||
|
this.tags = this.tags.filter(i => i.id !== item.id)
|
||||||
|
// this.$forceUpdate()
|
||||||
|
},
|
||||||
|
// 关闭弹窗
|
||||||
|
close () {
|
||||||
|
this.show = true
|
||||||
|
this.$emit('update:isShow', false)
|
||||||
|
},
|
||||||
|
// 关闭弹窗
|
||||||
|
centerDialogVisible () {
|
||||||
|
this.$emit('update:isShow', false)
|
||||||
|
},
|
||||||
|
handleGetNextChildren (children = this.data) {
|
||||||
|
console.log('children: ', children)
|
||||||
|
},
|
||||||
|
xcq () {
|
||||||
|
// const list = this.$refs.tree.getCheckedNodes()
|
||||||
|
// console.log('list: ', list)
|
||||||
|
},
|
||||||
|
xcq1 () {
|
||||||
|
console.log(this.a)
|
||||||
|
// this.$refs.tree.setChecked(100)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.popup{
|
||||||
|
min-height: 100px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
&-item{
|
||||||
|
width: 48%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 10px 0;
|
||||||
|
&-right{
|
||||||
|
padding: 10px !important;
|
||||||
|
.el-tag{
|
||||||
|
margin: 5px 6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&-title{
|
||||||
|
color:#9b9b9b;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
border-bottom: 1px solid @borderColor;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
&-content{
|
||||||
|
height: 400px;
|
||||||
|
overflow: auto;
|
||||||
|
.borderItem{
|
||||||
|
border-top: 1px solid @borderColor;
|
||||||
|
}
|
||||||
|
&-item:nth-last-child(1){
|
||||||
|
border-bottom: 1px solid @borderColor;
|
||||||
|
}
|
||||||
|
&-item{
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.isHasActive{
|
||||||
|
color: rgba(196, 196, 196, 0.933) !important;
|
||||||
|
border-left: 1px solid rgba(196, 196, 196, 0.933) !important;
|
||||||
|
}
|
||||||
|
.content{
|
||||||
|
flex: 1;
|
||||||
|
padding:0 10px;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.content:hover{
|
||||||
|
background: rgb(238, 238, 238);
|
||||||
|
}
|
||||||
|
&-next{
|
||||||
|
padding:0 10px;
|
||||||
|
border-left: 1px solid @fontBlue;
|
||||||
|
color: @fontBlue;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
.el-checkbox{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style lang='less'>
|
||||||
|
.el-dialog{
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
.el-dialog__header{
|
||||||
|
border-bottom: 1px solid @borderColor;
|
||||||
|
}
|
||||||
|
.el-dialog__footer{
|
||||||
|
border-top: 1px solid @borderColor;
|
||||||
|
}
|
||||||
|
.el-dialog__title{
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.dialog-footer{
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
<!-- -->
|
||||||
|
<template>
|
||||||
|
<div class="process">
|
||||||
|
流程设计
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
beforeMount () {},
|
||||||
|
mounted () {},
|
||||||
|
methods: {},
|
||||||
|
watch: {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang='less' scoped>
|
||||||
|
.process{
|
||||||
|
width: 100%;
|
||||||
|
height: 1000px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
<!-- -->
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
模板设置
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
beforeMount () {},
|
||||||
|
mounted () {},
|
||||||
|
methods: {},
|
||||||
|
watch: {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang='' scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
90
src/views/kpi/workbench/assessmentGroup/edit/index.vue
Normal file
90
src/views/kpi/workbench/assessmentGroup/edit/index.vue
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
<!-- -->
|
||||||
|
<template>
|
||||||
|
<div class="eidt">
|
||||||
|
<div class="eidt-header">
|
||||||
|
<div @click="handleChangle(1)" :class="{active:active===1}" class="a commonFont" ><span class="eidt-header-circle">1</span>基础设置</div>
|
||||||
|
<div @click="handleChangle(2)" :class="{active:active===2}" class="a commonFont"><span class="eidt-header-circle">2</span>模板设计</div>
|
||||||
|
<div @click="handleChangle(3)" :class="{active:active===3}" class="a commonFont"><span class="eidt-header-circle">3</span>流程设计</div>
|
||||||
|
</div>
|
||||||
|
<div class="eidt-content boderAndRadius">
|
||||||
|
<basis v-show="active===1"/>
|
||||||
|
<process v-show="active===2"/>
|
||||||
|
<template-set v-show="active===3"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import basis from './components/basis'
|
||||||
|
import process from './components/process'
|
||||||
|
import templateSet from './components/templateSet'
|
||||||
|
export default {
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
active: 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
basis,
|
||||||
|
process,
|
||||||
|
templateSet
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
beforeMount () {},
|
||||||
|
mounted () {},
|
||||||
|
methods: {
|
||||||
|
handleChangle (item) {
|
||||||
|
this.active = item
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang='less' scoped>
|
||||||
|
.eidt{
|
||||||
|
position: relative;
|
||||||
|
&-content{
|
||||||
|
height: 600px;
|
||||||
|
background: #fff;
|
||||||
|
padding: 40px 28px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
&-header{
|
||||||
|
position: absolute;
|
||||||
|
z-index: 50;
|
||||||
|
width: 420px;
|
||||||
|
height: @headerHeight;
|
||||||
|
top: -(@headerHeight+30px);
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
margin: auto;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
>div{
|
||||||
|
flex:1;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
letter-spacing:1px
|
||||||
|
}
|
||||||
|
.active{
|
||||||
|
background: @fontBlue;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
&-circle{
|
||||||
|
margin: 0 4px;
|
||||||
|
display: inline-block;
|
||||||
|
border: 1px solid #eeeeee;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
149
src/views/kpi/workbench/assessmentGroup/groundTable.vue
Normal file
149
src/views/kpi/workbench/assessmentGroup/groundTable.vue
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
<!-- -->
|
||||||
|
<template>
|
||||||
|
<div class="assessment">
|
||||||
|
<div class="assessment-form">
|
||||||
|
<el-form ref="form" inline :model="form" >
|
||||||
|
<div>
|
||||||
|
<el-form-item >
|
||||||
|
<el-input 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">
|
||||||
|
新增考评组<i class="el-icon-arrow-down el-icon--right"></i>
|
||||||
|
</el-button>
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<el-dropdown-item @click.native="handleToEidt" >新增考评组</el-dropdown-item>
|
||||||
|
<el-dropdown-item @click.native="handleToEidt" > 复制考评组</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<el-table
|
||||||
|
:header-cell-style="{background:'#F5F7FA'}"
|
||||||
|
@row-click='handleSelectClick'
|
||||||
|
:data="tableData"
|
||||||
|
style="width: 100%">
|
||||||
|
<el-table-column
|
||||||
|
fixed
|
||||||
|
sortable
|
||||||
|
prop="name"
|
||||||
|
label="考核名称">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="date"
|
||||||
|
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, tableData)"
|
||||||
|
type="text"
|
||||||
|
size="small">
|
||||||
|
查看
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
@click.native.prevent="deleteRow(scope.$index, tableData)"
|
||||||
|
type="text"
|
||||||
|
size="small">
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
form: {},
|
||||||
|
tableData: [{
|
||||||
|
date: '2016-05-03',
|
||||||
|
name: '2020年01月绩效考核',
|
||||||
|
number: '10'
|
||||||
|
}, {
|
||||||
|
date: '2016-05-03',
|
||||||
|
name: '2020年02月绩效考核',
|
||||||
|
number: '10'
|
||||||
|
}, {
|
||||||
|
date: '2016-05-03',
|
||||||
|
name: '2020年03月绩效考核',
|
||||||
|
number: '10'
|
||||||
|
}, {
|
||||||
|
date: '2016-05-03',
|
||||||
|
name: '2020年01月绩效考核',
|
||||||
|
number: '10'
|
||||||
|
}, {
|
||||||
|
date: '2016-05-03',
|
||||||
|
name: '2020年01月绩效考核',
|
||||||
|
number: '10'
|
||||||
|
}, {
|
||||||
|
date: '2016-05-03',
|
||||||
|
name: '2020年01月绩效考核',
|
||||||
|
number: '10'
|
||||||
|
}, {
|
||||||
|
date: '2016-05-03',
|
||||||
|
name: '2020年01月绩效考核',
|
||||||
|
number: '10'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
beforeMount () {},
|
||||||
|
mounted () {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleToEidt () {
|
||||||
|
this.$router.push({name: 'workbench-edit-group'})
|
||||||
|
},
|
||||||
|
handleSelectClick (row, column, event) {
|
||||||
|
console.log('event: ', event)
|
||||||
|
console.log('column: ', column)
|
||||||
|
console.log('row: ', row)
|
||||||
|
},
|
||||||
|
deleteRow (index, rows) {
|
||||||
|
rows.splice(index, 1)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang='less' scoped>
|
||||||
|
.assessment{
|
||||||
|
.el-form{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
&-form{
|
||||||
|
padding: 4px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-table{
|
||||||
|
background: #fff;
|
||||||
|
padding: 20px;
|
||||||
|
border: 1px solid @borderColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style lang="less">
|
||||||
|
.el-table__row{
|
||||||
|
cursor:pointer;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -1,17 +1,21 @@
|
|||||||
<!-- -->
|
<!-- -->
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div class="boderAndRadius ground">
|
||||||
考评组
|
<ground-table />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import groundTable from './groundTable'
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
groundTable
|
||||||
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
beforeMount () {},
|
beforeMount () {},
|
||||||
mounted () {},
|
mounted () {},
|
||||||
@ -22,6 +26,10 @@ export default {
|
|||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang='' scoped>
|
<style lang='less' scoped>
|
||||||
|
.ground {
|
||||||
|
padding: 28px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user