2022-06-08 14:51:11 +08:00

181 lines
8.4 KiB
Vue

<template>
<!-- 企业课程分类管理页面 暂时没用到 -->
<div class="fullHeight">
<div class="searchBox whiteBlock" v-if="$route.path.indexOf('/project/')==-1">
<el-button size="medium" type="primary" @click="addBefore">{{$t('message.workType.operate.add')}}
{{$t('message.safetyEducation.classification')}}<!-- 分类 -->
</el-button>
</div>
<div class="table_wrap whiteBlock" style="margin-top:15px">
<vue-scroll>
<el-table class="tables" :data="workerList">
<el-table-column
type="index"
width="50"
align="center"
:label="$t('message.personnelPosition.beaconManage.table.index')"
></el-table-column>
<!-- 分类名称 -->
<el-table-column prop="classifyName" :label="$t('message.safetyEducation.classificationName')">
<template slot-scope="scope">
<router-link v-if="$route.path.indexOf('/project/')==-1" class="primaryText" :to="{path:'/companyAdmin/safetyEducation/courseManage?name='+scope.row.classifyName+'&id='+scope.row.id}">{{scope.row.classifyName}}</router-link>
<router-link v-else class="primaryText" :to="{path:'/project/safetyEducation/courseManage?name='+scope.row.classifyName+'&id='+scope.row.id}">{{scope.row.classifyName}}</router-link>
</template>
</el-table-column>
<el-table-column width="200" v-if="$route.path.indexOf('/project/')==-1">
<template slot-scope="scope">
<div class="tableBtns">
<div @click="editBefore(scope.row)" class="operationText">
<img src="@/assets/images/icon-edit.png" width="15px" height="15px"/>
<span>{{$t('message.workType.edit')}}</span>
</div>
<div @click="deleteBefore(scope.row)" class="operationText">
<img src="@/assets/images/icon-delete.png" width="15px" height="15px"/>
<span>{{$t('message.workType.delete')}}</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
</vue-scroll>
</div>
<el-dialog
:modal-append-to-body="false"
:title="$t('message.workType.operate')[type]"
:visible.sync="dialogVisible"
width="667px">
<div class="dialog_content">
<el-form label-width="120px" size="medium" class="dialogFormBox" ref="addEditForm" :model="workerInfo">
<!-- 分类名称 -->
<el-form-item :label="$t('message.safetyEducation.classificationName')" prop="classifyName" :rules="[
{ required: true, message: $t('message.safetyEducation.pleaseEnter'), trigger: 'blur' }
]">
<el-input v-model="workerInfo.classifyName"
:placeholder="$t('message.workType.placeholder')"></el-input>
</el-form-item>
<div class="dialog-footer">
<el-button
class="cancleBtn"
@click="dialogVisible = false"
icon="el-icon-circle-close"
size="medium"
>{{$t('message.personnelPosition.cancel')}}
</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
@click="addWorker"
size="medium"
>{{$t('message.personnelPosition.determine')}}
</el-button>
</div>
</el-form>
</div>
</el-dialog>
</div>
</template>
<script>
import {educationClassifyAddApi, educationClassifyEditApi, educationClassifyDeleteApi, educationClassifyListApi} from '@/assets/js/api/laborPerson'
export default {
mounted() {
this.getWorkerList();
},
data() {
return {
type: 'add',
workerInfo: {classifyName: ''},
workerList: [],
dialogVisible: false
}
},
methods: {
addWorker() {
if (this.type === 'add') {
this.$refs['addEditForm'].validate((valid) => {
if (valid) {
educationClassifyAddApi({
sn: this.$store.state.userInfo.headquartersSn,
classifyName: this.workerInfo.classifyName,
type:1
}).then(result => {
if (result.success) {
this.dialogVisible = false;
this.$message.success(result.message);
this.getWorkerList();
}
})
} else {
console.log('error submit!!');
return false;
}
});
} else if (this.type === 'edit') {
this.$refs['addEditForm'].validate((valid) => {
if (valid) {
educationClassifyEditApi(this.workerInfo).then(result => {
if (result.success) {
this.dialogVisible = false;
this.$message.success(result.message);
this.getWorkerList();
}
})
} else {
console.log('error submit!!');
return false;
}
});
} else if (this.type === 'delete') {
educationClassifyDeleteApi({id: this.workerInfo.id}).then(result => {
if (result.success) {
this.$message.success(result.message);
this.getWorkerList();
}
})
}
},
PopupBefore(type, worker) {
this.dialogVisible = true;
this.type = type;
this.workerInfo = JSON.parse(JSON.stringify(worker));
},
addBefore() {
this.PopupBefore('add', {classifyName: ''});
console.log('添加前', this.type)
},
editBefore(worker) {
this.PopupBefore('edit', worker);
console.log('编辑前', this.type)
},
deleteBefore(worker) {
// this.PopupBefore('delete', worker);
this.type = 'delete';
this.workerInfo = worker;
console.log('删除前', this.type)
this.$confirm(this.$t('message.personnelPosition.beaconManage.table.confirmText') + "【" + worker.classifyName + "】?", this.$t('message.personnelPosition.beaconManage.table.Tips'), {
confirmButtonText: this.$t('message.personnelPosition.confirmButtonText'),
cancelButtonText: this.$t('message.personnelPosition.cancelButtonText'),
type: "warning",
}).then(() => {
this.addWorker();
}).catch(() => {
});
},
getWorkerList() {
educationClassifyListApi({sn: this.$store.state.userInfo.headquartersSn}).then(result => {
this.workerList = result.result;
})
}
}
}
</script>
<style lang="less" scoped>
.primaryText{
text-decoration: none;
}
</style>