renyuanpeixun

This commit is contained in:
shilixia 2020-07-24 09:07:44 +08:00
parent 322e3ee0da
commit 93c48b3c6b
5 changed files with 306 additions and 184 deletions

View File

@ -7,7 +7,12 @@ export function getTrainList(query) {
params: query
})
}
export function getTrain(id) {
return request({
url: `/employee/train/${id}/`,
method: 'get'
})
}
export function createTrain(data) {
return request({
url: '/employee/train/',

View File

@ -18,21 +18,19 @@
<el-col :span="12">
<el-form-item label="开始日期" prop="start_time">
<el-date-picker v-model="formData.start_time"
type="date"
placeholder="选择开始日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd">
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="结束日期" prop="end_time">
<el-date-picker v-model="formData.end_time"
type="date"
placeholder="选择结束日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd">
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
@ -55,11 +53,15 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="选择学员" prop="hours">
<router-link to="/employee/user/select">
<span class="spanfour">link跳转</span>
</router-link>
<el-form-item label="选择学员" prop="employees">
<el-input v-model="formData.employees" readonly="readonly" clearable :style="{width: '80%'}">
</el-input>
<el-button type="text" @click="dialogVisible = true">选择</el-button>
<el-dialog title="" :visible.sync="dialogVisible">
<Userselet @closeMoule="closeMoule"></Userselet>
</el-dialog>
<SpeciesAnalyzed @closeMoule="closeMoule"></SpeciesAnalyzed>
</el-form-item>
</el-col>
@ -76,7 +78,7 @@
<el-row>
<el-col :span="24">
<el-form-item label="培训内容" prop="teacher">
<el-input type="textarea" :rows="2" v-model="formData.teacher"
<el-input type="textarea" :rows="2" v-model="formData.content"
placeholder="请输入培训内容"
clearable
:style="{width: '100%'}"></el-input>
@ -118,6 +120,7 @@
</template>
<script>
import { createTrain} from "@/api/train";
import { getUserList} from "@/api/user";
import { getDictList } from "@/api/dict";
import { genTree } from "@/utils";
@ -126,64 +129,71 @@
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { upUrl, upHeaders } from "@/api/file";
import Userselet from '@/views/employee/userselet';
const defaultForm = {
}
export default {
components: {Treeselect},
components: {Treeselect,Userselet},
props: [],
data() {
return {
dialogVisible: false,
formData: Object.assign({}, defaultForm),
rules: {},
type_Options: [
],
}
},
computed: {},
watch: {},
created() {
this.getTypeOptions(),
this.getOrgAll(),
this. getRoleAll()
this.getTypeOptions()
},
mounted() {},
mounted() {
this.list = this.$route.query.employeelist;
this.formData.employees = this.$route.query.employeelist;
console.log( this.list)
},
methods: {
submitForm() {
this.$refs['elForm'].validate(valid => {
if (!valid) return
// TODO 提交表单
})
},
getOrgAll() {
this.treeLoding = true;
getOrgAll().then(response => {
this.orgData = genTree(response.data);
this.treeLoding = false;
});
},
getRoleAll() {
getRoleAll().then(response => {
this.roles = genTree(response.data);
});
},
getTypeOptions() {
getDictList({ type__code: "train_type" }).then(response => {
this.type_Options = genTree(response.data);
});
},
closeMoule(e) {
this.formData.employees = e,
this.dialogVisible = false
}
,
submitForm() {
this.$refs["elForm"].validate(valid => {
if (!valid) return;
// TODO 提交表单
createTrain(this.formData).then(response => {
this.$message({
type: 'success',
message: '成功!'
})
this.$router.go(-1);
});
});
},
resetForm() {
this.$refs['elForm'].resetFields()
},

View File

@ -1,109 +1,209 @@
<template>
<div class="app-container">
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="编号" prop="code">
<el-input v-model="formData.code" placeholder="请输入编号" clearable :style="{width: '100%'}"></el-input>
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="培训主题" prop="name">
<el-input v-model="formData.name" placeholder="请输入培训主题" clearable :style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训机构" prop="train_org">
<el-input v-model="formData.train_org" placeholder="请输入培训机构" clearable :style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="开始日期" prop="start_time">
<el-date-picker v-model="formData.start_time"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="结束日期" prop="end_time">
<el-date-picker v-model="formData.end_time"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="学时" prop="hours">
<el-input v-model="formData.hours" placeholder="请输入学时" clearable :style="{width: '100%'}">
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="考核方式" prop="kaohe_type">
<el-input v-model="formData.kaohe_type" placeholder="请输入考核方式" clearable :style="{width: '100%'}">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="选择学员" prop="employees">
<el-input v-model="formData.employees" readonly="readonly" clearable :style="{width: '80%'}">
</el-input>
<el-button type="text" @click="dialogVisible = true">选择</el-button>
<el-dialog title="" :visible.sync="dialogVisible">
<Userselet @closeMoule="closeMoule"></Userselet>
</el-dialog>
<SpeciesAnalyzed @closeMoule="closeMoule"></SpeciesAnalyzed>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训讲师" prop="teacher">
<el-input v-model="formData.teacher" placeholder="请输入培训讲师" clearable :style="{width: '100%'}">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="培训内容" prop="teacher">
<el-input type="textarea" :rows="2" v-model="formData.content"
placeholder="请输入培训内容"
clearable
:style="{width: '100%'}"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="培训类型" prop="train_type">
<el-select v-model="formData.train_type"
placeholder="请选择机构类型"
clearable
:style="{width: '100%'}">
<el-option v-for="(item, index) in type_Options"
:key="index"
:label="item.name"
:value="item.value"
:disabled="item.disabled">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入培训备注" clearable :style="{width: '100%'}">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item size="large">
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="易记码" prop="remember_code">
<el-input v-model="formData.remember_code" placeholder="请输入易记码" clearable :style="{width: '100%'}">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="性别" prop="gender">
<el-select v-model="formData.gender" placeholder="请选择性别" clearable :style="{width: '100%'}" >
<el-option
v-for="item in genderOptions"
:key="item.key"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="座机号" prop="landline">
<el-input v-model="formData.landline" placeholder="请输入座机" clearable :style="{width: '100%'}">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="邮箱" prop="email">
<el-input v-model="formData.email" placeholder="请输入邮箱" clearable :style="{width: '100%'}">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="职称" prop="gender">
<el-select v-model="formData.pro_title" placeholder="请选择职称" clearable :style="{width: '100%'}" >
<el-option
v-for="item in titleOptions"
:key="item.key"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="座机号" prop="landline">
<el-input v-model="formData.landline" placeholder="请输入座机" clearable :style="{width: '100%'}">
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="邮箱" prop="email">
<el-input v-model="formData.email" placeholder="请输入邮箱" clearable :style="{width: '100%'}">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item size="large">
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-form>
</div>
</el-form>
</div>
</template>
<script>
const defaultForm = {
}
export default {
components: {},
props: [],
data() {
return {
formData: Object.assign({}, defaultForm),
rules: {},
genderOptions:[
{'value':'','label':''},
{'value':'','label':''}
]
}
},
computed: {},
watch: {},
created() {},
mounted() {},
methods: {
submitForm() {
this.$refs['elForm'].validate(valid => {
if (!valid) return
// TODO 提交表单
import { createTrain,getTrain} from "@/api/train";
import { getDictList } from "@/api/dict";
import { genTree } from "@/utils";
import { getOrgAll } from "@/api/org"
import { getRoleAll } from "@/api/role"
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import Userselet from '@/views/employee/userselet';
const defaultForm = {
}
export default {
components: { Treeselect, Userselet },
props: [],
data() {
return {
dialogVisible: false,
formData: Object.assign({}, defaultForm),
rules: {},
type_Options: [
],
}
},
computed: {},
watch: {},
created() {
this.formData.id = this.$route.query.id, //接收参数
this.getData(),
this.getTypeOptions()
},
mounted() {
this.list = this.$route.query.employeelist;
this.formData.employees = this.$route.query.employeelist;
console.log(this.list)
},
methods: {
getData() {
getTrain(this.formData.id).then(response => {
this.formData = response.data
})
},
resetForm() {
this.$refs['elForm'].resetFields()
},
getTypeOptions() {
getDictList({ type__code: "train_type" }).then(response => {
this.type_Options = genTree(response.data);
});
},
closeMoule(e) {
this.formData.employees = e,
this.dialogVisible = false
}
,
submitForm() {
this.$refs["elForm"].validate(valid => {
if (!valid) return;
// TODO 提交表单
createTrain(this.formData).then(response => {
this.$message({
type: 'success',
message: '成功!'
})
this.$router.go(-1);
});
});
},
resetForm() {
this.$refs['elForm'].resetFields()
},
}
}
}
</script>
</script>

View File

@ -23,7 +23,9 @@
</span>
</el-tree>
</el-col>
<el-col :span="9">
<el-col :span="13">
<el-table ref="staffTable"
v-loading="listLoading"
:key="tableKey"
@ -35,13 +37,18 @@
<el-table-column type="selection" :reserve-selection="true" width="55"></el-table-column>
<el-table-column label="姓名" align="center">
<template slot-scope="{row}">
<span>{{ row.name }}</span>
<span>{{ row.user.name }}</span>
</template>
</el-table-column>
<el-table-column label="邮箱" align="center">
<el-table-column label="职务" align="center">
<template slot-scope="{row}">
<span>{{ row.email }}</span>
<span>{{ row.user.position }}</span>
</template>
</el-table-column>
<el-table-column label="部门" align="center">
<template slot-scope="{row}">
<span>{{ row.user.dept_name }}</span>
</template>
</el-table-column>
</el-table>
@ -59,7 +66,7 @@
circle
style="margin-left: 0;margin-top: 10px;"></el-button>
</el-col>
<el-col :span="9">
<el-col :span="5">
<el-table ref="selectedStaffTable"
v-loading="listLoading"
:key="tableKey"
@ -71,26 +78,10 @@
<el-table-column type="selection" :reserve-selection="true" width="55"></el-table-column>
<el-table-column label="姓名" align="center">
<template slot-scope="{row}">
<span>{{ row.name }}</span>
<span>{{ row.user.name }}</span>
</template>
</el-table-column>
<el-table-column label="邮箱" align="center">
<template slot-scope="{row}">
<span>{{ row.email }}</span>
</template>
</el-table-column>
<!--<el-table-column label="类型" align="center">
<template slot-scope="{row}">
<el-select class="filter-item" placeholder="请选择" v-model="row.staffTypeId">
<el-option v-for="item in staffOptions"
:key="item.key"
:label="item.display_name"
:value="item.key"></el-option>
</el-select>
</template>
</el-table-column>-->
</el-table>
</el-col>
</el-row>
@ -101,7 +92,8 @@
</div>
</template>
<script>
import checkPermission from '@/utils/permission'
import { getEmployeeList, deleteEmployee } from "@/api/employee"
import checkPermission from '@/utils/permission'
import { getUserList} from "@/api/user"
import { getDictList } from "@/api/dict"
import { genTree } from "@/utils"
@ -119,6 +111,9 @@ export default {
props: [],
data() {
return {
dialogVisible: false,
listLoading: true,
staffTemp: {
name: "",
@ -148,10 +143,12 @@ data() {
],
}
},
watch: {
watch: {
filterText(val) {
this.$refs.tree.filter(val);
}
},
},
created() {
this.getStaffList(),
@ -180,7 +177,7 @@ methods: {
this.getStaffList();
},
getStaffList() {
getUserList(this.listQuery).then(response => {
getEmployeeList(this.listQuery).then(response => {
this.staffList = response.data.results;
@ -264,10 +261,25 @@ methods: {
},
// 提交
modifyStaff() {
console.log(this.selectedStaffList[0].name)
console.log(this.selectedStaffList);
var userlist = [];
var userNameList = [];
for (let i = 0; i < this.selectedStaffList.length; i++) {
userlist[i]=this.selectedStaffList[i].id
userNameList[i]= this.selectedStaffList[i].user.name
}
this.$emit('closeMoule',userlist)
this.dialogVisible = false
}
}

View File

@ -422,12 +422,7 @@
code: [{ required: true, message: '请输入工厂编号', trigger: 'blur' }]
},
field101Options: [],
field101Props: {
"multiple": false,
"label": "name",
"value": "code",
"children": "children"
},
};
},