no message

This commit is contained in:
leave 2020-10-22 18:56:19 +08:00
parent 814440fdad
commit 6c5aceb884
4 changed files with 266 additions and 131 deletions

View File

@ -11,7 +11,7 @@ module.exports = {
extends: [ extends: [
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
'plugin:vue/essential', 'plugin:vue/essential',
// https://github.com/standard/standard/blob/master/docs/RULES-en.md // https://github.com/standard/standard/blob/master/docs/RULES-en.md
'standard' 'standard'
], ],
@ -21,6 +21,7 @@ module.exports = {
], ],
// add your custom rules here // add your custom rules here
rules: { rules: {
'no-unused-vars': 'off',
// allow async-await // allow async-await
'generator-star-spacing': 'off', 'generator-star-spacing': 'off',
// allow debugger during development // allow debugger during development

View File

@ -1,16 +1,29 @@
<template> <template>
<transition name="popupfade"> <transition name="popupfade">
<div class="taskDetailRight" @click="getRight"> <div
<div class="taskDetailRight-contant" @click.stop="aa"> class="taskDetailRight"
<div class="taskDetailRight-contant-title commonFont" >{{title}}</div> @click="getRight"
<div class="taskDetailRight-contant-content" > >
<slot name="content"></slot> <div
</div> class="taskDetailRight-contant"
<div class="taskDetailRight-contant-footer" > @click.stop="aa"
<el-button size="small" @click="$emit('cancel')"> </el-button> >
<el-button size="small" type="primary" @click="$emit('submit')"> </el-button> <div class="taskDetailRight-contant-title commonFont">{{title}}</div>
<slot name="footer"></slot> <div class="taskDetailRight-contant-content">
</div> <slot name="content"></slot>
</div>
<div class="taskDetailRight-contant-footer">
<el-button
size="small"
@click="$emit('cancel')"
> </el-button>
<el-button
size="small"
type="primary"
@click="$emit('submit')"
> </el-button>
<slot name="footer"></slot>
</div>
</div> </div>
<div> <div>
</div> </div>
@ -37,7 +50,7 @@ export default {
mounted () { mounted () {
}, },
methods: { methods: {
aa () {}, aa () { },
onSubmit () { onSubmit () {
console.log('submit!') console.log('submit!')
this.$emit('update:show', false) this.$emit('update:show', false)
@ -52,54 +65,56 @@ export default {
</script> </script>
<style lang='less' scoped> <style lang='less' scoped>
.popupfade-enter{ .popupfade-enter {
transform: translateX(-100%); transform: translateX(-100%);
} }
.fade-leave { .fade-leave {
transform: translateX(0); transform: translateX(0);
} }
.popupfade-leave-to{ .popupfade-leave-to {
transform: translateX(60%); transform: translateX(60%);
} }
.fade-enter-to{ .fade-enter-to {
transform: translateX(-100%); transform: translateX(-100%);
} }
.popupfade-leave-active,.fade-enter-active { .popupfade-leave-active,
transition:all 40s; .fade-enter-active {
transition: all 40s;
} }
.taskDetailRight { .taskDetailRight {
position: fixed; position: fixed;
z-index: 50; z-index: 50;
height: 100vh; height: 100vh;
width: 100%; width: 100%;
min-width: 200px; min-width: 200px;
top: 0; top: 0;
right: 0; right: 0;
transition: all 1s; transition: all 1s;
&-contant { &-contant {
min-width: 100px; min-width: 100px;
height: 100%; height: 100%;
float: right; float: right;
background:#fff; background: #fff;
box-shadow: 0 1px 6px 0 rgba(0,0,0,.12), 0 1px 6px 0 rgba(0,0,0,.12); box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12),
display: flex; 0 1px 6px 0 rgba(0, 0, 0, 0.12);
flex-direction: column; display: flex;
&-title{ flex-direction: column;
border-bottom: 1px solid @borderColor; &-title {
padding:10px 20px; border-bottom: 1px solid @borderColor;
padding: 10px 20px;
}
&-content {
flex: 1;
padding: 20px 20px;
overflow: auto;
}
&-footer {
text-align: right;
padding: 10px 20px;
border-top: 1px solid @borderColor;
}
} }
&-content{
flex: 1;
padding:20px 20px;
overflow: auto;
}
&-footer{
text-align: right;
padding: 10px 20px;
border-top: 1px solid @borderColor;
}
}
} }
</style> </style>

View File

@ -1,24 +1,41 @@
<!-- --> <!-- -->
<template> <template>
<div class="process"> <div class="process">
<div class="process-type commonFont"> <div class="process-type commonFont">
流程方式 <el-radio v-model="radio" label="1">按评分人设置流程</el-radio> 流程方式 <el-radio
</div> v-model="radio"
<div class="process-title"> label="1"
<div class="process-title-item" v-for="(i,index) in processLsit" :key="i.id"> >按评分人设置流程</el-radio>
<div @click="handleChangleTitle(i)" class="process-title-item-contant commonFont" :class="{active:componentId===i.componment}">
<span>{{i.name}}</span>
<span>{{i.label}}</span>
</div>
<div v-if="index+1 !==processLsit.length" class="process-title-item-img">
<img src="./imgs/right.png" alt="">
</div>
</div>
</div>
<div class="process-content">
<component :is="componentId"></component>
</div>
</div> </div>
<div class="process-title">
<div
class="process-title-item"
v-for="(i,index) in processLsit"
:key="i.id"
>
<div
@click="handleChangleTitle(i)"
class="process-title-item-contant commonFont"
:class="{active:componentId===i.componment}"
>
<span>{{i.name}}</span>
<span>{{i.label}}</span>
</div>
<div
v-if="index+1 !==processLsit.length"
class="process-title-item-img"
>
<img
src="./imgs/right.png"
alt=""
>
</div>
</div>
</div>
<div class="process-content">
<component :is="componentId"></component>
</div>
</div>
</template> </template>
<script> <script>
@ -29,7 +46,7 @@ import Perform from './Perform'
import Entry from './Entry' import Entry from './Entry'
import Score from './Score' import Score from './Score'
import Approval from './Approval' import Approval from './Approval'
import {getByFlowManagerId, saveDetailProcs} from '@/api/workbench' import { getByFlowManagerId, saveDetailProcs } from '@/api/workbench'
export default { export default {
data () { data () {
return { return {
@ -65,15 +82,15 @@ export default {
name: '审批节点', name: '审批节点',
label: '已禁用', label: '已禁用',
componment: 'Approval' componment: 'Approval'
} ] }]
} }
}, },
components: { components: {
PopupRight, ToDevelop, Confirm, Perform, Entry, Score, Approval PopupRight, ToDevelop, Confirm, Perform, Entry, Score, Approval
}, },
computed: {}, computed: {},
beforeMount () {}, beforeMount () { },
mounted () {}, mounted () { },
methods: { methods: {
handleChangleTitle (i) { handleChangleTitle (i) {
this.isActive = i.id this.isActive = i.id
@ -87,46 +104,46 @@ export default {
</script> </script>
<style lang='less' scoped> <style lang='less' scoped>
.process{ .process {
width: 100%; width: 100%;
&-type{ &-type {
padding: 0 0 20px 0; padding: 0 0 20px 0;
border-bottom: 1px solid @borderColor; border-bottom: 1px solid @borderColor;
} }
&-title{ &-title {
display: flex; display: flex;
padding: 20px 0; padding: 20px 0;
&-item{ &-item {
display: flex; display: flex;
align-items: center; align-items: center;
&-contant{ &-contant {
width: 136px; width: 136px;
height: 56px; height: 56px;
background: #f6f6f6; background: #f6f6f6;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
font-size: 14px; font-size: 14px;
border-radius: 4px; border-radius: 4px;
span:nth-child(1){ span:nth-child(1) {
margin-bottom: 4px; margin-bottom: 4px;
} }
} }
.active{ .active {
background: @fontBlue; background: @fontBlue;
color: #fff; color: #fff;
} }
&-img{ &-img {
width: 37px; width: 37px;
height: 19px; height: 19px;
margin: 0 10px; margin: 0 10px;
img{ img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
}
} }
}
} }
</style> </style>

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="initiate-assessment"> <div class="initiate-assessment commonFont">
<el-form <el-form
:v-model="formData" :v-model="formData"
:rules="formRules" :rules="formRules"
@ -65,13 +65,9 @@
label="考核组名称" label="考核组名称"
prop="name" prop="name"
></el-table-column> ></el-table-column>
<el-table-column
label="周期类型"
prop="cycleType"
></el-table-column>
<el-table-column <el-table-column
label="参与人数" label="参与人数"
prop="personNumber" prop="counts"
></el-table-column> ></el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
@ -95,23 +91,73 @@
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>
<div>
<popup-right
v-if="showChooseList"
@cancel='handleCancelPopup'
@submit="handleSubmitPopup"
:title="popupRightTitle"
>
<div slot="content">
<el-input
v-model="rqAssessmentParameter.searchName"
@change="handlePopupSearchChange"
prefix-icon="el-icon-search"
placeholder="搜索考评组"
></el-input>
<el-table
v-if="popupData.tableList.length"
:data="popupData.tableList"
@selection-change="handleSelectionChange"
tooltip-effect="dark"
>
<el-table-column
type="selection"
width="40"
></el-table-column>
<el-table-column
label="全选"
width="250"
><template slot-scope="scope">{{scope.row.name}}</template></el-table-column>
<el-table-column
width="80"
align="right"
><template slot-scope="scope">{{scope.row.counts}}</template></el-table-column>
</el-table>
<div
v-else
class="popup-empty"
>
<img
src=""
style="height: 150px; width: 150px;"
/>
<div>暂无考评组</div>
<div>考评组用于自定义配置被考核人的考核指标和考核流程</div>
<el-button
@click="handlePopupCreat"
type="text"
plain
>新建考评组</el-button>
</div>
</div>
<div slot="leftSlot">已选择{{formData.assessmentList.length}}</div>
</popup-right>
</div>
</div> </div>
</template> </template>
<script> <script>
import PopupRight from '@/components/PopupRight'
import { getWorkList, sendAssessmentInfo } from '@/api/workbench'
export default { export default {
data () { data () {
return { return {
popupRightTitle: '选择考评组(月度)考核',
showChooseList: false, showChooseList: false,
formData: { formData: {
cycleTimeType: 1, cycleTimeType: 1,
rangDate: '', rangDate: '',
assessmentList: [ assessmentList: [], //
{
name: '销售人员',
cycleType: '月度',
personNumber: '12人'
}
], //
mergeType: { // mergeType: { //
type: 1, type: 1,
name: '' // id name: '' // id
@ -120,9 +166,23 @@ export default {
formRules: { formRules: {
cycleTimeType: { required: true, message: '请选择周期类型', trigger: 'blur' }, cycleTimeType: { required: true, message: '请选择周期类型', trigger: 'blur' },
rangDate: { required: true, message: '请选择时间周期', trigger: 'blur' } rangDate: { required: true, message: '请选择时间周期', trigger: 'blur' }
},
popupData: {
tableList: [],
selectedList: []
},
rqAssessmentParameter: {
currPage: 1,
pageSize: 20,
searchName: '',
totalCount: undefined,
totalPage: undefined
} }
} }
}, },
components: {
PopupRight
},
watch: { watch: {
'formData.cycleTimeType': function (newVal, oldVal) { 'formData.cycleTimeType': function (newVal, oldVal) {
// console.log(this.formData.cycleTimeType) // console.log(this.formData.cycleTimeType)
@ -140,13 +200,49 @@ export default {
// console.log(this.formData.rangDate) // console.log(this.formData.rangDate)
}, },
handleChooseGroup () { handleChooseGroup () {
this.popupData.selectedList = []
this.handleGainAssessmentGroupList()
this.showChooseList = !this.showChooseList this.showChooseList = !this.showChooseList
}, },
handleGroupDelete (index, rows) { handleGroupDelete (index, rows) {
console.log('删除----', rows)
rows.splice(index, 1) rows.splice(index, 1)
}, },
handleSubmit () { handleSubmit () {
console.log('提交') console.log('提交')
},
handlePopupSearchChange (val) {
console.log('搜索' + val)
//
this.handleGainAssessmentGroupList()
},
handleSelectionChange (val) {
//
this.popupData.selectedList = val
},
handlePopupCreat () {
this.showChooseList = false
//
},
handleCancelPopup () {
this.showChooseList = false
},
handleSubmitPopup () {
this.showChooseList = false
this.formData.assessmentList = this.popupData.selectedList
},
//
handleGainAssessmentGroupList () {
let para = {
pageSize: this.rqAssessmentParameter.pageSize,
currPage: this.rqAssessmentParameter.currPage,
name: this.rqAssessmentParameter.searchName
}
getWorkList({}).then(res => {
const currPage = res.currPage
this.popupData.tableList = res.list
console.log(res)
})
} }
} }
} }
@ -156,11 +252,7 @@ export default {
padding: 25px; padding: 25px;
background-color: white; background-color: white;
min-height: 600px; min-height: 600px;
font-size: 14;
color: #333;
.title { .title {
font-size: 22;
color: black;
margin-bottom: 25px; margin-bottom: 25px;
} }
.choose-group { .choose-group {
@ -169,5 +261,15 @@ export default {
.line-space { .line-space {
margin-top: 20px; margin-top: 20px;
} }
.popup-empty {
padding-top: 100px;
height: 500px;
width: 410px;
font-size: 14px;
text-align: center;
display: block;
align-content: center;
justify-content: center;
}
} }
</style> </style>