Merge branch 'master' of https://e.coding.net/ctcdevteam/cnas
This commit is contained in:
commit
54896344ee
|
@ -136,11 +136,23 @@ export default {
|
|||
this.$router.push({path:"/employee/train/update",query:{id:scope.row.id}})
|
||||
},
|
||||
handleDelete(scope) {
|
||||
deleteImplementRule(scope.row.id).then(res=>{
|
||||
this.$message.success('成功')
|
||||
this.$confirm('确定删除本条数据吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
deleteTrain(scope.row.id).then(res=>{
|
||||
this.$message.success('删除成功')
|
||||
this.getList()
|
||||
})
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消删除'
|
||||
});
|
||||
});
|
||||
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -54,14 +54,15 @@
|
|||
<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-lable v-for="(item,index) in type_employees" :key="index">{{item.name}},</el-lable>-->
|
||||
<el-input v-model="formData.employeeList" placeholder="参加人员" 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>
|
||||
|
@ -121,14 +122,10 @@
|
|||
<script>
|
||||
|
||||
import { createTrain} from "@/api/train";
|
||||
import { getUserList} from "@/api/user";
|
||||
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 { upUrl, upHeaders } from "@/api/file";
|
||||
import Userselet from '@/views/employee/userselet';
|
||||
const defaultForm = {
|
||||
|
||||
|
@ -152,11 +149,7 @@ export default {
|
|||
this.getTypeOptions()
|
||||
|
||||
},
|
||||
mounted() {
|
||||
this.list = this.$route.query.employeelist;
|
||||
this.formData.employees = this.$route.query.employeelist;
|
||||
console.log( this.list)
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
||||
|
||||
|
@ -169,10 +162,19 @@ export default {
|
|||
|
||||
closeMoule(e) {
|
||||
|
||||
this.formData.employees = e,
|
||||
this.dialogVisible = false
|
||||
|
||||
|
||||
this.type_employees = e;
|
||||
this.dialogVisible = false;
|
||||
var arrTemp = [];
|
||||
var arrName = [];
|
||||
for(let i=0;i<e.length;i++){
|
||||
|
||||
arrTemp.push(e[i].id);
|
||||
arrName.push(e[i].name);
|
||||
}
|
||||
this.formData.employees = arrTemp;
|
||||
this.formData.employeeList=arrName
|
||||
}
|
||||
,
|
||||
submitForm() {
|
||||
|
|
|
@ -54,14 +54,15 @@
|
|||
<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-lable v-for="(item,index) in type_employees" :key="index">{{item.name}},</el-lable>-->
|
||||
<el-input v-model="formData.employeeList" placeholder="参加人员" 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>
|
||||
|
@ -119,12 +120,10 @@
|
|||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
import { createTrain,getTrain} from "@/api/train";
|
||||
import {getEmployee} from "@/api/employee"
|
||||
import { createTrain ,getTrain,updateTrain} 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';
|
||||
|
@ -147,47 +146,46 @@
|
|||
computed: {},
|
||||
watch: {},
|
||||
created() {
|
||||
this.formData.id = this.$route.query.id, //接收参数
|
||||
this.getData(),
|
||||
this.getTypeOptions()
|
||||
|
||||
this.formData.id = this.$route.query.id , //接收参数
|
||||
this.getTypeOptions(),
|
||||
this.getData()
|
||||
|
||||
},
|
||||
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
|
||||
})
|
||||
},
|
||||
getData() {
getTrain(this.formData.id).then(response => {
this.formData = response.data;
|
||||
this.formData.employeeList = response.data.employees_user_name
})
},
|
||||
|
||||
getTypeOptions() {
|
||||
getDictList({ type__code: "train_type" }).then(response => {
|
||||
this.type_Options = genTree(response.data);
|
||||
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
closeMoule(e) {
|
||||
|
||||
this.formData.employees = e,
|
||||
this.dialogVisible = false
|
||||
|
||||
|
||||
this.type_employees = e;
|
||||
this.dialogVisible = false;
|
||||
var arrTemp = [];
|
||||
var arrName = [];
|
||||
for (let i = 0; i < e.length; i++) {
|
||||
|
||||
arrTemp.push(e[i].id);
|
||||
arrName.push(e[i].name);
|
||||
}
|
||||
this.formData.employees = arrTemp;
|
||||
this.formData.employeeList = arrName
|
||||
}
|
||||
,
|
||||
submitForm() {
|
||||
this.$refs["elForm"].validate(valid => {
|
||||
if (!valid) return;
|
||||
|
||||
// TODO 提交表单
|
||||
createTrain(this.formData).then(response => {
|
||||
updateTrain(this.formData.id,this.formData).then(response => {
|
||||
|
||||
this.$message({
|
||||
type: 'success',
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
|
||||
|
||||
|
||||
<template>
|
||||
<div class="app-container">
|
||||
|
||||
|
@ -53,39 +51,43 @@
|
|||
</el-table-column>
|
||||
</el-table>
|
||||
</el-col>
|
||||
<el-col :span="2" style="text-align:center;">
|
||||
<el-col :span="2" style="text-align:center;margin-top:20px">
|
||||
<el-button @click="addStaff"
|
||||
type="primary"
|
||||
:disabled="!staffData.length"
|
||||
icon="el-icon-arrow-right"
|
||||
circle></el-button>
|
||||
<el-button @click="removeStaff"
|
||||
<!--<el-button @click="removeStaff"
|
||||
type="primary"
|
||||
:disabled="!selectedStaffData.length"
|
||||
icon="el-icon-arrow-left"
|
||||
circle
|
||||
style="margin-left: 0;margin-top: 10px;"></el-button>
|
||||
style="margin-left: 0;margin-top: 10px;"></el-button>-->
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-table ref="selectedStaffTable"
|
||||
v-loading="listLoading"
|
||||
:key="tableKey"
|
||||
:data="selectedStaffList"
|
||||
border
|
||||
fit
|
||||
highlight-current-row
|
||||
@selection-change="handleSelectedStaffChange">
|
||||
<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.user.name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="danger" icon="el-icon-delete" circle @click.native.prevent="deleteRow(scope.$index, selectedStaffList)"></el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-row :gutter="20" >
|
||||
<el-button type="primary" @click="modifyStaff">提交</el-button>
|
||||
|
||||
</el-row>
|
||||
|
@ -93,19 +95,11 @@
|
|||
</template>
|
||||
<script>
|
||||
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"
|
||||
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 { upUrl, upHeaders } from "@/api/file"
|
||||
|
||||
const defaultForm = {
|
||||
|
||||
}
|
||||
export default {
|
||||
components: {},
|
||||
props: [],
|
||||
|
@ -137,10 +131,7 @@ data() {
|
|||
selectedStaffData: [],
|
||||
tableKey: 0,
|
||||
rowKey: "rowKey",
|
||||
staffOptions: [
|
||||
{ key: 28, display_name: "组长" },
|
||||
{ key: 29, display_name: "组员" }
|
||||
],
|
||||
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
@ -169,8 +160,10 @@ methods: {
|
|||
this.listLoading = false
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
deleteRow(index, rows) {
|
||||
rows.splice(index, 1);
|
||||
}
|
||||
,
|
||||
handleOrgClick(obj, node, vue) {
|
||||
this.listQuery.page = 1;
|
||||
this.listQuery.dept = obj.id;
|
||||
|
@ -204,7 +197,7 @@ methods: {
|
|||
}, 0);
|
||||
let repeat = false;
|
||||
this.selectedStaffList.forEach(item => {
|
||||
if (this.staffData[0] && item.name === this.staffData[0].name) {
|
||||
if (this.staffData[0] && item.id === this.staffData[0].id) {
|
||||
repeat = true;
|
||||
alert("此员工已添加");
|
||||
return;
|
||||
|
@ -247,34 +240,41 @@ methods: {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
},
|
||||
// 将右边表格选择项存入selectedStaffData中
|
||||
handleSelectedStaffChange(rows) {
|
||||
this.selectedStaffData = [];
|
||||
if (rows) {
|
||||
rows.forEach(row => {
|
||||
if (row) {
|
||||
this.selectedStaffData.push(row);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
//handleSelectedStaffChange(rows) {
|
||||
// this.selectedStaffData = [];
|
||||
// if (rows) {
|
||||
// rows.forEach(row => {
|
||||
// if (row) {
|
||||
// this.selectedStaffData.push(row);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
//},
|
||||
// 提交
|
||||
modifyStaff() {
|
||||
|
||||
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
|
||||
var arrContact = new Array();
|
||||
for (let i = 0; i < this.selectedStaffList.length; i++) {
|
||||
var reVal = new Object();
|
||||
reVal["id"]=this.selectedStaffList[i].id
|
||||
reVal["name"]=this.selectedStaffList[i].user.name
|
||||
arrContact.push(reVal);
|
||||
|
||||
}
|
||||
|
||||
|
||||
this.$emit('closeMoule',userlist)
|
||||
userlist=arrContact;
|
||||
|
||||
this.$emit('closeMoule',userlist,)
|
||||
|
||||
|
||||
this.dialogVisible = false
|
||||
|
|
|
@ -198,7 +198,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" font="left">
|
||||
<el-form-item label="联系电话" prop="linkman1_tel">
|
||||
<el-form-item label="联系电话" prop="linkman1_tel" >
|
||||
<el-input v-model="formData.linkman1_tel"
|
||||
placeholder="联系电话"
|
||||
clearable
|
||||
|
@ -214,7 +214,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" font="right">
|
||||
<el-form-item label="Email" prop="linkman1_email">
|
||||
<el-form-item label="Email" prop="linkman1_email" >
|
||||
<el-input v-model="formData.linkman1_email"
|
||||
placeholder="Email"
|
||||
clearable
|
||||
|
@ -397,7 +397,7 @@
|
|||
linkman1_mobile: undefined,
|
||||
linkman1_tel: undefined,
|
||||
linkman1_fax: undefined,
|
||||
linkman_email: undefined,
|
||||
linkman1_email: undefined,
|
||||
linkman2_name: undefined,
|
||||
linkman2_duty: undefined,
|
||||
linkman2_mobile: undefined,
|
||||
|
@ -419,8 +419,14 @@
|
|||
type_Options: [],
|
||||
rule1: {
|
||||
query_code: [{ required: true, message: '请输入组织查询码', trigger: 'blur' }],
|
||||
code: [{ required: true, message: '请输入工厂编号', trigger: 'blur' }]
|
||||
code: [{ required: true, message: '请输入工厂编号', trigger: 'blur' }],
|
||||
name: [{ required: true, message: '请输入组织名称', trigger: 'blur' }],
|
||||
linkman1_email:[
|
||||
{ required: true, message: '请输入邮箱地址', trigger: 'blur' },
|
||||
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
|
||||
],
|
||||
},
|
||||
|
||||
field101Options: [],
|
||||
|
||||
|
||||
|
|
|
@ -419,7 +419,12 @@
|
|||
type_Options: [],
|
||||
rule1: {
|
||||
query_code: [{ required: true, message: '请输入组织查询码', trigger: 'blur' }],
|
||||
code: [{ required: true, message: '请输入工厂编号', trigger: 'blur' }]
|
||||
code: [{ required: true, message: '请输入工厂编号', trigger: 'blur' }],
|
||||
name: [{ required: true, message: '请输入组织名称', trigger: 'blur' }],
|
||||
linkman1_email:[
|
||||
{ required: true, message: '请输入邮箱地址', trigger: 'blur' },
|
||||
{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
|
||||
],
|
||||
},
|
||||
field101Options: [],
|
||||
field101Props: {
|
||||
|
|
|
@ -6,7 +6,7 @@ import uuid
|
|||
# Create your models here.
|
||||
class Enterprise(CommonBModel):
|
||||
code = models.CharField('工厂编号',unique=True, max_length=300)
|
||||
name = models.CharField('工厂名称',null=True, blank=True,max_length=1000)
|
||||
name = models.CharField('工厂名称',null=True,unique=True, blank=True,max_length=1000)
|
||||
ename = models.CharField('工厂英文名称',null=True, blank=True,max_length=1000)
|
||||
type = models.ForeignKey(Dict, on_delete=models.SET_NULL,null=True, blank=True,verbose_name='机构类型', related_name= 'enterprise_type')
|
||||
legal = models.CharField('申请单位法人代表',null=True, blank=True,max_length=300)
|
||||
|
|
|
@ -77,6 +77,9 @@ class TrainSerializer(serializers.ModelSerializer):
|
|||
"""
|
||||
普通序列化
|
||||
"""
|
||||
|
||||
employees_user_name = serializers.StringRelatedField(source='employees',read_only=True, many=True)
|
||||
class Meta:
|
||||
model = Train
|
||||
fields = '__all__'
|
||||
fields = ['id', 'name', 'start_time', 'end_time', 'hours',
|
||||
'train_org', 'teacher', 'content', 'rain_address', 'kaohe_type', 'remark', 'employees', 'employees_user_name']
|
Loading…
Reference in New Issue