From c87ec8dac5f2b8f16036b794850b8f4e552a71d7 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期五, 28 二月 2025 15:40:04 +0800 Subject: [PATCH] 人员-任职授权记录搬迁 --- src/views/CNAS/personnel/personnelInfo/tabs/mandate.vue | 404 +++++++++++++++++++++----------------------------------- 1 files changed, 153 insertions(+), 251 deletions(-) diff --git a/src/views/CNAS/personnel/personnelInfo/tabs/mandate.vue b/src/views/CNAS/personnel/personnelInfo/tabs/mandate.vue index 72b75ba..691970d 100644 --- a/src/views/CNAS/personnel/personnelInfo/tabs/mandate.vue +++ b/src/views/CNAS/personnel/personnelInfo/tabs/mandate.vue @@ -1,47 +1,31 @@ <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, @@ -54,223 +38,141 @@ 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' }); - //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆 - 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> -- Gitblit v1.9.3