<template>
|
<el-dialog v-model="params.visible" :title="params.title" width="50%" destroy-on-close @close="dialogClose">
|
<div class="content">
|
<el-form :model="addForm" label-width="170px" :rules="rules" ref="addFormRef">
|
<el-form-item label="任务名称:" prop="taskName">
|
<el-input v-model="addForm.taskName" placeholder="请输入任务名称"></el-input>
|
</el-form-item>
|
<el-form-item label="任务类别:" prop="taskType">
|
<el-input v-model="addForm.taskType" placeholder="请输入任务类别"></el-input>
|
</el-form-item>
|
<el-form-item label="认定标准描述:" prop="remark">
|
<el-input type="textarea" v-model="addForm.remark" placeholder="请输入认定标准描述"></el-input>
|
</el-form-item>
|
<el-form-item :label="`${params.type ? '评优截止日期' : '第一次评优截止日期'}`" prop="candidateCutoffTime">
|
<el-date-picker v-model="addForm.candidateCutoffTime" type="datetimerange" placeholder="请选择截止时间"
|
start-placeholder="请选择开始时间" end-placeholder="请选择结束时间" format="YYYY-MM-DD HH:mm:ss"
|
valueFormat="YYYY-MM-DD HH:mm:ss" style="width: 100%;" />
|
</el-form-item>
|
<el-form-item label="是否需要进行二次评优:" prop="isAgain" v-if="!params.type">
|
<el-radio-group v-model="addForm.isAgain">
|
<el-radio :label='1'>是</el-radio>
|
<el-radio :label='0'>否</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item :label="`${params.type ? '评优截止日期:' : '第二次评优截止日期:'}`" prop="evaluateCutoffTime"
|
v-if="addForm.isAgain">
|
<el-date-picker v-model="addForm.evaluateCutoffTime" type="datetimerange" start-placeholder="请选择开始时间"
|
end-placeholder="请选择结束时间" format="YYYY-MM-DD HH:mm:ss" valueFormat="YYYY-MM-DD HH:mm:ss"
|
style="width: 100%;" />
|
</el-form-item>
|
</el-form>
|
</div>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="params.visible = false">取消</el-button>
|
<el-button type="primary" @click="submitOrEdit">确认</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
</template>
|
|
<script>
|
import website from '@/config/website';
|
import { add, update } from '@/api/evaluate/evaluateTask';
|
import _ from 'lodash';
|
|
export default {
|
props: {
|
params: {
|
type: Object,
|
default: () => {
|
return {
|
visible: false,
|
title: '新增',
|
isEdit: false,
|
type: 0,
|
addForm: {},
|
};
|
},
|
},
|
},
|
data() {
|
return {
|
depts: [],
|
selectGroup: [],
|
addForm: {
|
id: '',
|
tenantId: '',
|
taskName: '',
|
taskType: '',
|
remark: '',
|
type: '',
|
candidateNum: 0,
|
candidateCutoffTime: '',
|
candidateCutoffTimeStart: '',
|
candidateCutoffTimeEnd: '',
|
evaluateCutoffTimeStart: '',
|
evaluateCutoffTimeEnd: '',
|
candidateState: '',
|
evaluateNum: '',
|
evaluateCutoffTime: '',
|
evaluateState: '',
|
isAgain: null,
|
},
|
rules: {
|
taskName: [
|
{ required: true, message: '请输入任务名称', trigger: 'blur' }
|
],
|
taskType: [
|
{ required: true, message: '请输入任务类别', trigger: 'blur' }
|
],
|
remark: [
|
{ required: true, message: '请输入认定标准描述', trigger: 'blur' }
|
],
|
type: [
|
{ required: true, message: '请选择评优类型', trigger: 'blur' }
|
],
|
candidateCutoffTime: [
|
{ required: true, message: '请选择候选人截止日期', trigger: 'click' },
|
],
|
isAgain: [
|
{ required: true, message: '请选择是否进行二次评优', trigger: 'click' }
|
],
|
evaluateCutoffTime: [
|
{ required: true, message: '请选择评优截止时间', trigger: 'click' },
|
],
|
},
|
maxEvaluateNum: 0
|
};
|
},
|
watch: {
|
'params.visible': {
|
handler(val) {
|
this.addForm = this.params.addForm;
|
val && (this.addForm.type = this.params.type + '')
|
if (this.params.isEdit) {
|
this.addForm = this.params.addForm;
|
this.addForm.type = this.params.type + '';
|
}
|
},
|
deep: true,
|
immediate: true,
|
},
|
},
|
methods: {
|
submitOrEdit() {
|
this.params.isEdit ? this.handleEdit() : this.handleSubmit()
|
},
|
handleSubmit() {
|
this.$refs.addFormRef.validate(valid => {
|
if (!valid) return
|
const data = _.cloneDeep(this.addForm)
|
this.params.type && (data.evaluateState = 1)
|
Object.keys(data).forEach(key => {
|
if (['candidateCutoffTime', 'evaluateCutoffTime'].includes(key)) {
|
const [start, end] = this.addForm[key]
|
if (key === 'candidateCutoffTime') {
|
data.candidateCutoffTimeStart = start
|
data.candidateCutoffTimeEnd = end
|
} else {
|
data.evaluateCutoffTimeStart = start
|
data.evaluateCutoffTimeEnd = end
|
}
|
delete data[key]
|
}
|
})
|
add(data).then(
|
() => {
|
this.$message({
|
type: 'success',
|
message: '操作成功!',
|
});
|
this.refreshTable();
|
},
|
() => {
|
this.$message({
|
type: 'error',
|
message: '操作失败!',
|
});
|
}
|
);
|
});
|
},
|
handleEdit() {
|
this.$refs.addFormRef.validate(valid => {
|
valid && update(this.addForm).then(
|
() => {
|
this.$message({
|
type: 'success',
|
message: '操作成功!',
|
});
|
this.refreshTable();
|
},
|
error => {
|
this.$message({
|
type: 'error',
|
message: error,
|
});
|
}
|
);
|
});
|
},
|
refreshTable() {
|
this.$emit('refreshTable', {
|
pageSize: 10,
|
currentPage: 1,
|
total: 0,
|
});
|
this.params.visible = false;
|
},
|
dialogClose() {
|
this.selectGroup = []
|
this.$refs.addFormRef.resetFields()
|
},
|
},
|
};
|
</script>
|
|
<style lang="scss" scoped>
|
.content {
|
max-height: 400px;
|
overflow: auto;
|
|
.select-list {
|
width: 100%;
|
|
.select-item {
|
width: 100%;
|
margin-top: 15px;
|
display: flex;
|
|
.select-num {
|
flex: 2;
|
}
|
|
.el-select {
|
flex: 5;
|
margin-left: 10px;
|
}
|
|
.el-button {
|
margin-left: 10px;
|
}
|
}
|
}
|
|
.evaluateNum-input {
|
width: 100%;
|
|
:deep() {
|
.el-input__inner {
|
text-align: left;
|
}
|
}
|
}
|
}
|
|
.allSelected {
|
padding: 0 20px;
|
border-bottom: 1px solid #dcdcdc;
|
}
|
</style>
|