| | |
| | | <template> |
| | | <div class="flex_column"> |
| | | <!-- <TableCard :showForm="isDepartment" title="任职授权记录">--> |
| | | <!-- <template v-slot:form>--> |
| | | <!-- <div v-if="isDepartment" class="w100 items_center justify_between">--> |
| | | <!-- <div></div>--> |
| | | <!-- <div>--> |
| | | <!-- <el-button size="small" type="primary" @click="openDialog">新增</el-button>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- </template>--> |
| | | <!-- <template v-slot:table>--> |
| | | <!-- <ZTTable--> |
| | | <!-- :column="columnData"--> |
| | | <!-- :height="'calc(100vh - 21em)'"--> |
| | | <!-- :table-data="tableData"--> |
| | | <!-- :table-loading="loading"--> |
| | | <!-- style="margin-top: 18px; padding: 0 15px;"--> |
| | | <!-- ></ZTTable>--> |
| | | <!-- <el-divider></el-divider>--> |
| | | <!-- <div class="pagination">--> |
| | | <!-- <div></div>--> |
| | | <!-- <el-pagination--> |
| | | <!-- :page-size="pagination.pageSize"--> |
| | | <!-- :page-sizes="[10, 20, 30, 40]"--> |
| | | <!-- :total="pagination.total"--> |
| | | <!-- layout="total, sizes, prev, pager, next, jumper"--> |
| | | <!-- @current-change="currentChange"--> |
| | | <!-- @size-change="sizeChange"--> |
| | | <!-- >--> |
| | | <!-- </el-pagination>--> |
| | | <!-- </div>--> |
| | | <!-- </template>--> |
| | | <!-- </TableCard>--> |
| | | <Add ref="mandateModal" @refresh="getTableData"></Add> |
| | | <div class="flex_column"> |
| | | <div> |
| | | <div v-if="isDepartment" style="display: flex;justify-content: space-between;margin-bottom: 10px"> |
| | | <el-button size="small" type="primary" @click="getTableData">刷新</el-button> |
| | | <el-button size="small" type="primary" icon="el-icon-plus" @click="openDialog">新增</el-button> |
| | | </div> |
| | | <lims-table :tableData="tableData" :column="columnData" |
| | | @pagination="page" :height="'calc(100vh - 18em)'" |
| | | :page="pagination" :tableLoading="loading"></lims-table> |
| | | </div> |
| | | <Add ref="mandateModal" @refresh="getTableData"></Add> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | // import Add from "./Add.vue" |
| | | import Add from "../components/mandateAdd.vue" |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import { |
| | | deletePersonPostAuthorizationRecord, exportPersonPostAuthorizationRecord, |
| | | PersonPostAuthorizationRecordPage |
| | | } from "@/api/cnas/personal/personPostAuthorizationRecord"; |
| | | import {delCustomById} from "@/api/system/customer"; |
| | | |
| | | export default { |
| | | components: { |
| | | // Add |
| | | }, |
| | | components: { |
| | | limsTable, |
| | | Add |
| | | }, |
| | | props: { |
| | | departId: { |
| | | type: Number, |
| | |
| | | default: false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | // departId: 0, |
| | | columnData: [ |
| | | { |
| | | label: '序号', |
| | | prop: 'id' |
| | | }, { |
| | | label: '证书编号', |
| | | prop: 'certificateNumber' |
| | | }, { |
| | | label: '被任职人员', |
| | | prop: 'userName' |
| | | }, { |
| | | label: '任职岗位', |
| | | prop: 'post' |
| | | }, { |
| | | label: '理论考试成绩', |
| | | prop: 'num1' |
| | | },{ |
| | | label: '操作技能考试成绩', |
| | | prop: 'num2' |
| | | },{ |
| | | label: '操作时间', |
| | | prop: 'updateTime' |
| | | }, { |
| | | label: '备注', |
| | | prop: 'remarks', |
| | | width: 300 |
| | | }, { |
| | | label: '操作', |
| | | dataType: 'action', |
| | | width: 160, |
| | | fixed: 'right', |
| | | operation: [ |
| | | { |
| | | name: '编辑', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.openDialog(row, true) |
| | | } |
| | | }, { |
| | | name: '下载', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.handleDown(row) |
| | | } |
| | | }, { |
| | | name: '删除', |
| | | type: 'text', |
| | | color: '#f56c6c', |
| | | clickFun: (row) => { |
| | | this.deleteNotify(row.id) |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | | ], |
| | | tableData: [], |
| | | pagination: { |
| | | current: 1, |
| | | pageSize: 20, |
| | | total: 0 |
| | | }, |
| | | loading: false |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.getTableData() |
| | | console.log(this.departId) |
| | | }, |
| | | methods: { |
| | | openDialog(row, type=false) { |
| | | this.$refs.mandateModal.openDialog(row, type) |
| | | }, |
| | | /** |
| | | * @desc 查询表格数据 |
| | | */ |
| | | async getTableData() { |
| | | this.loading = true |
| | | const params = this.isDepartment ? { |
| | | departLimsId: this.departId, |
| | | current: this.pagination.current, |
| | | size: this.pagination.pageSize |
| | | } : { |
| | | userId: this.departId, |
| | | current: this.pagination.current, |
| | | size: this.pagination.pageSize |
| | | } |
| | | const { code, data } = await this.$axios({ |
| | | method: 'get', |
| | | url: getPersonPostAuthorizationRecordPage, |
| | | params: params |
| | | }) |
| | | if(code == 200) { |
| | | this.pagination.total = data.total |
| | | this.tableData = data.records |
| | | this.loading = false |
| | | } |
| | | }, |
| | | /** |
| | | * @desc 当前页改变 |
| | | */ |
| | | currentChange(current) { |
| | | this.pagination.current = current |
| | | this.getTableData() |
| | | }, |
| | | /** |
| | | * @desc 每页个数改变 |
| | | */ |
| | | sizeChange(pageSize) { |
| | | this.pagination.pageSize = pageSize |
| | | this.getTableData() |
| | | }, |
| | | /** |
| | | * @desc 删除任职记录 |
| | | */ |
| | | deleteNotify(id) { |
| | | this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.delMandate(id) |
| | | }) |
| | | }, |
| | | /** |
| | | * @desc api删除 |
| | | */ |
| | | async delMandate(id) { |
| | | const formData = new FormData() |
| | | formData.append('id', id) |
| | | const { code, data } = await this.$axios({ |
| | | method: 'delete', |
| | | url: deletePersonPostAuthorizationRecord, |
| | | data: formData, |
| | | noQs: true |
| | | }) |
| | | if(code == 200) { |
| | | this.$message({ message: '删除成功', type: 'success' }) |
| | | this.getTableData() |
| | | } else { |
| | | this.$message({ message: '删除失败', type: 'error' }) |
| | | } |
| | | }, |
| | | /** |
| | | * @desc 获取设备id |
| | | */ |
| | | getDepart(id) { |
| | | this.departId = id |
| | | this.getTableData() |
| | | }, |
| | | handleDown(row){ |
| | | this.$axios.post(this.$api.personPostAuthorizationRecord.exportPersonPostAuthorizationRecord,{id:row.id},{responseType: "blob"}).then(res => { |
| | | if(res.code == 201){ |
| | | this.$message.error(res.message) |
| | | return |
| | | } |
| | | const blob = new Blob([res],{ type: 'application/octet-stream' }); |
| | | //将Blob 对象转换成字符串 |
| | | let reader = new FileReader(); |
| | | reader.readAsText(blob, 'utf-8'); |
| | | reader.onload = () => { |
| | | try { |
| | | let result = JSON.parse(reader.result); |
| | | if (result.message) { |
| | | this.$message.error(result.message); |
| | | } else { |
| | | const url = URL.createObjectURL(blob); |
| | | const link = document.createElement('a'); |
| | | link.href = url; |
| | | link.download = '任职授权-'+row.certificateNumber+'-'+row.post + '.docx'; |
| | | link.click(); |
| | | this.$message.success('导出成功') |
| | | } |
| | | } catch (err) { |
| | | console.log(err); |
| | | const url = URL.createObjectURL(blob); |
| | | const link = document.createElement('a'); |
| | | link.href = url; |
| | | link.download = '任职授权-'+row.certificateNumber+'-'+row.post + '.docx'; |
| | | link.click(); |
| | | this.$message.success('导出成功') |
| | | data() { |
| | | return { |
| | | columnData: [ |
| | | { |
| | | label: '序号', |
| | | prop: 'id' |
| | | }, { |
| | | label: '证书编号', |
| | | prop: 'certificateNumber' |
| | | }, { |
| | | label: '被任职人员', |
| | | prop: 'userName' |
| | | }, { |
| | | label: '任职岗位', |
| | | prop: 'post' |
| | | }, { |
| | | label: '理论考试成绩', |
| | | prop: 'num1', |
| | | width: 120 |
| | | },{ |
| | | label: '操作技能考试成绩', |
| | | prop: 'num2', |
| | | width: 150 |
| | | },{ |
| | | label: '操作时间', |
| | | prop: 'updateTime' |
| | | }, { |
| | | label: '备注', |
| | | prop: 'remarks', |
| | | width: 300 |
| | | }, { |
| | | label: '操作', |
| | | dataType: 'action', |
| | | width: 160, |
| | | fixed: 'right', |
| | | operation: [ |
| | | { |
| | | name: '编辑', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.openDialog(row, true) |
| | | } |
| | | }, { |
| | | name: '下载', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.handleDown(row) |
| | | } |
| | | }, { |
| | | name: '删除', |
| | | type: 'text', |
| | | color: '#f56c6c', |
| | | clickFun: (row) => { |
| | | this.deleteNotify(row.id) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | ] |
| | | }, |
| | | ], |
| | | tableData: [], |
| | | pagination: { |
| | | current: 1, |
| | | size: 20, |
| | | total: 0 |
| | | }, |
| | | loading: false |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.getTableData() |
| | | }, |
| | | methods: { |
| | | openDialog(row, type=false) { |
| | | this.$refs.mandateModal.openDialog(row, type) |
| | | }, |
| | | // watch: { |
| | | // departId: { |
| | | // handler(newId, oldId) { |
| | | // if (newId) { |
| | | // this.getTableData(); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | /** |
| | | * @desc 查询表格数据 |
| | | */ |
| | | async getTableData() { |
| | | const params = this.isDepartment ? { |
| | | departLimsId: this.departId, |
| | | current: this.pagination.current, |
| | | size: this.pagination.pageSize |
| | | } : { |
| | | userId: this.departId, |
| | | current: this.pagination.current, |
| | | size: this.pagination.pageSize |
| | | } |
| | | this.loading = true |
| | | PersonPostAuthorizationRecordPage(params).then(res => { |
| | | this.loading = false |
| | | this.tableData = res.data.records |
| | | this.pagination.total = res.data.total |
| | | }).catch(err => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | page (page) { |
| | | this.pagination.size = page.limit |
| | | this.getTableData() |
| | | }, |
| | | /** |
| | | * @desc 删除任职记录 |
| | | */ |
| | | deleteNotify(id) { |
| | | this.$confirm('是否删除当前数据?', "警告", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | deletePersonPostAuthorizationRecord({id: id}).then(res => { |
| | | this.$message.success('删除成功') |
| | | this.getTableData() |
| | | }).catch(e => { |
| | | this.$message.error('删除失败') |
| | | }) |
| | | }).catch(() => {}) |
| | | }, |
| | | handleDown(row){ |
| | | exportPersonPostAuthorizationRecord({id:row.id}).then(res => { |
| | | const blob = new Blob([res],{ type: 'application/octet-stream' }); |
| | | this.$download.saveAs(blob, '任职授权-'+row.certificateNumber+'-'+row.post + '.docx') |
| | | }) |
| | | } |
| | | }, |
| | | watch: { |
| | | departId: { |
| | | handler(newId, oldId) { |
| | | if (newId) { |
| | | this.getTableData(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | .flex_column { |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | } |
| | | .w100 { |
| | | width: 100%; |
| | | } |
| | | .pagination { |
| | | display: flex; |
| | | justify-content: space-between |
| | | } |
| | | .items_center { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .justify_between { |
| | | justify-content: space-between |
| | | } |
| | | </style> |