<template>
|
<div class="add">
|
<el-dialog
|
:title="isEdit ?'编辑附件资料':'新增附件资料'"
|
:visible.sync="dialogVisible"
|
width="50%"
|
>
|
<el-form
|
ref="ruleForm"
|
:rules="rules"
|
:model="form"
|
label-width="100px"
|
size="medium"
|
>
|
<el-form-item label="证书编号" prop="certificateNumber">
|
<el-input v-model="form.certificateNumber" placeholder="请输入" style="width: 100%">
|
</el-input>
|
</el-form-item >
|
<el-form-item label="被任职人员" prop="userId">
|
<el-select v-model="form.userId" placeholder="请选择">
|
<el-option
|
v-for="(item, index) in userList"
|
:key="index"
|
:label="item.name"
|
:value="item.id"
|
></el-option>
|
</el-select>
|
</el-form-item >
|
<el-form-item label="任职岗位" prop="post">
|
<el-input v-model="form.post" placeholder="请输入"></el-input>
|
</el-form-item >
|
<el-form-item label="理论考试成绩" prop="num1">
|
<el-input v-model="form.num1" placeholder="请输入"></el-input>
|
</el-form-item >
|
<el-form-item label="操作技能考试成绩" prop="num2">
|
<el-input v-model="form.num2" placeholder="请输入"></el-input>
|
</el-form-item >
|
<el-form-item label="操作类型" prop="operationType">
|
<el-input v-model="form.operationType" placeholder="请选择"></el-input>
|
</el-form-item >
|
<el-row>
|
<el-col :span="20">
|
<el-form-item label="上岗证书">
|
<el-input v-model="form.systemFileName" size="small" disabled>
|
<el-button slot="append" icon="el-icon-delete-solid"
|
@click="deleteFile(form.systemFileName)"></el-button>
|
</el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="4">
|
<el-upload ref="upload" style="float: left; margin: 0 12px 0 20px;" :action="action"
|
:show-file-list="false"
|
:on-success="onSuccess">
|
<el-button class="uploadFile" slot="trigger" size="small" type="primary">浏览</el-button>
|
</el-upload>
|
</el-col>
|
</el-row>
|
<!-- <el-form-item label="文件">-->
|
<!-- <el-upload-->
|
<!-- ref="upload"-->
|
<!-- action="#"-->
|
<!-- :before-upload="beforeUpload"-->
|
<!-- :http-request="uploadFile"-->
|
<!-- :file-list="form.fileList"-->
|
<!-- :limit="1"-->
|
<!-- :auto-upload="false"-->
|
<!-- >-->
|
<!-- <el-button type="primary" plain>-->
|
<!-- <i class="el-icon-upload el-icon--right"></i>-->
|
<!-- 上传文件-->
|
<!-- </el-button>-->
|
<!-- </el-upload>-->
|
<!-- </el-form-item>-->
|
<el-form-item label="备注">
|
<el-input v-model="form.remarks" placeholder="请选择"></el-input>
|
</el-form-item >
|
</el-form>
|
<div slot="footer" class="foot">
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
<el-button type="primary" :loading="loading" @click="submitForm">确 定</el-button>
|
</div>
|
</el-dialog>
|
</div>
|
</template>
|
<script>
|
import {
|
addOrUpdatePersonPostAuthorizationRecord,
|
saveCNASFile,
|
getUserListApi
|
} from "../../../../../assets/api/api"
|
export default {
|
data() {
|
return {
|
isEdit: false,
|
dialogVisible: false,
|
form: {
|
id: undefined,
|
certificateNumber: undefined,
|
userId: undefined,
|
post: undefined,
|
operationType: undefined,
|
fileList: [],
|
fileName: undefined,
|
systemFileName: undefined,
|
remarks: undefined,
|
num2:undefined,
|
num1:undefined
|
},
|
rules: {
|
certificateNumber: [{ required: true, message: '请输入证书编号', trigger: 'blur' }],
|
userId: [{ required: true, message: '请选择被任职人员', trigger: 'change' }],
|
post: [{ required: true, message: '任职岗位', trigger: 'blur' }],
|
operationType: [{ required: true, message: '操作类型', trigger: 'blur' }],
|
|
},
|
loading: false,
|
userList: []
|
}
|
},
|
mounted() {
|
|
},
|
computed: {
|
action() {
|
return this.javaApi + this.$api.personnel.saveCNASFile
|
}
|
},
|
methods: {
|
async onSuccess(response, file, fileList) {
|
this.$set(this.form, "systemFileName", response.data)
|
},
|
async deleteFile(fileName) {
|
await this.$axios.delete(this.$api.personnel.deleteCNASFile + "?fileName=" + fileName).then(res => {
|
this.$message.success('删除成功!')
|
this.$set(this.form, "systemFileName", null)
|
})
|
},
|
async openDialog(row, type) {
|
await this.getUserList()
|
this.dialogVisible = true
|
if(type) {
|
this.isEdit = true
|
this.form.id = row.id
|
this.form.certificateNumber = row.certificateNumber
|
this.form.userId = Number(row.userId)
|
this.form.post = row.post
|
this.form.operationType = row.operationType
|
this.form.systemFileName = row.systemFileName
|
this.form.remarks = row.remarks
|
this.form.num1 = row.num1
|
this.form.num2 = row.num2
|
} else {
|
this.isEdit = false
|
this.form.id = undefined
|
this.form.certificateNumber = undefined
|
this.form.userId = undefined
|
this.form.post = undefined
|
this.form.operationType = undefined
|
this.form.fileList = []
|
this.form.fileName = undefined
|
this.form.systemFileName = undefined
|
this.form.remarks = undefined
|
this.form.num1 = undefined
|
this.form.num2 = undefined
|
}
|
},
|
closeDialog() {
|
this.dialogVisible = false
|
},
|
/**
|
* @desc 获取用户信息
|
*/
|
async getUserList() {
|
const { code, data } = await this.$axios({
|
method: 'get',
|
url: getUserListApi,
|
})
|
if(code == 200) {
|
this.userList = data
|
}
|
},
|
/**
|
* @desc 提交表单
|
*/
|
submitForm() {
|
this.$refs.ruleForm.validate(async (valid) => {
|
if(valid) {
|
await this.submitFormData()
|
}
|
})
|
},
|
/**
|
* @desc 上传文件
|
*/
|
async uploadFile() {
|
console.log('文件', this.form.fileList[0])
|
let formData = new FormData()
|
formData.append('file', this.form.fileList[0])
|
const { code, data } = await this.$axios({
|
method: 'post',
|
url: saveCNASFile,
|
data: formData,
|
headers: {
|
'Content-Type': 'multipart/form-data;'
|
},
|
noQs: true
|
})
|
if(code == 200) {
|
this.form.systemFileName = data
|
}
|
},
|
/**
|
* @desc 上传文件
|
*/
|
beforeUpload(file) {
|
this.form.fileList = [file]
|
this.form.fileName = file.name
|
},
|
/**
|
* @desc 提交form表单
|
*/
|
async submitFormData() {
|
this.loading = true
|
const { code, data } = await this.$axios({
|
method: 'post',
|
url: addOrUpdatePersonPostAuthorizationRecord,
|
data: {
|
id: this.form.id,
|
certificateNumber: this.form.certificateNumber,
|
userId: this.form.userId,
|
post: this.form.post,
|
operationType: this.form.operationType,
|
systemFileName: this.form.systemFileName,
|
remarks: this.form.remarks,
|
num1: this.form.num1,
|
num2: this.form.num2
|
},
|
noQs: true
|
})
|
if(code == 200) {
|
this.closeDialog()
|
this.$emit('refresh')
|
}
|
this.loading = false
|
}
|
}
|
}
|
</script>
|
<style scoped>
|
.foot {
|
width: 100%;
|
}
|
.add >>> .el-dialog__footer {
|
padding-right: 20px;
|
}
|
</style>
|