| | |
| | | <el-form :model="searchForm" ref="searchForm" size="small" :inline="true"> |
| | | <el-form-item label="标准物质名称" prop="name"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="searchForm.name" |
| | | @keyup.enter.native="searchList"></el-input> |
| | | @keyup.enter.native="searchList"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="生产厂家" prop="factoryManufacturer"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="searchForm.factoryManufacturer" |
| | | @keyup.enter.native="searchList"></el-input> |
| | | @keyup.enter.native="searchList"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">查 询</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm">重 置</el-button> |
| | | <el-button type="primary" size="mini" @click="searchList">查询</el-button> |
| | | <el-button size="mini" @click="resetSearchForm">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div> |
| | | <el-button size="medium" @click="exportFun">导 出</el-button> |
| | | <el-button size="medium" type="primary" @click="openFormDia('add')">新 增</el-button> |
| | | <el-button size="small" @click="exportFun">导 出</el-button> |
| | | <el-button size="small" type="primary" @click="importVisible = true">导 入</el-button> |
| | | <el-button size="small" type="primary" @click="openFormDia('add')">新 增</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'" @pagination="pagination" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | </div> |
| | | <form-dia v-if="formDia" ref="formDia" @closeYearDia="closeYearDia"></form-dia> |
| | | <borrow-dia v-if="borrowDia" ref="borrowDia" @closeYearDia="closeBorrowDia"></borrow-dia> |
| | | <return-dia v-if="returnDia" ref="returnDia" @closeYearDia="closeReturnDia"></return-dia> |
| | | <el-dialog title="标准物质导入" :visible.sync="importVisible" width="500px" @closed="resetImport"> |
| | | <div style="margin-bottom: 12px;"> |
| | | 请使用标准物质导入模板填写数据,单个文件不超过10MB。 |
| | | <el-button type="text" @click="downloadTemplate">下载导入模板</el-button> |
| | | </div> |
| | | <el-upload ref="standardSubstanceUpload" drag name="file" accept=".xlsx" :action="importAction" |
| | | :headers="uploadHeader" :auto-upload="false" :limit="1" :file-list="importFiles" |
| | | :before-upload="beforeImport" :on-success="importSuccess" :on-error="importError"> |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> |
| | | </el-upload> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="importVisible = false">取消</el-button> |
| | | <el-button type="primary" :loading="importing" @click="submitImport">导入</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | // import FormDia from '../do/a6-standard-material-list/formDia.vue'; |
| | | // import BorrowDia from '../do/a6-standard-material-list/borrowDia.vue'; |
| | | // import ReturnDia from '../do/a6-standard-material-list/returnDia.vue'; |
| | | import limsTable from '@/components/Table/lims-table.vue' |
| | | import { |
| | | getPageStandardSubstance, |
| | | removeStandardSubstance, |
| | | exportOfStandardSubstanceList |
| | | exportOfStandardSubstanceList, |
| | | downloadStandardSubstanceImportTemplate |
| | | } from '@/api/cnas/resourceDemand/standardMaterial/standardMaterial' |
| | | import FormDia from '../standardMaterial/component/formDia.vue'; |
| | | import BorrowDia from '../standardMaterial/component/borrowDia.vue'; |
| | | import ReturnDia from '../standardMaterial/component/returnDia.vue'; |
| | | export default { |
| | | name: 'StandardMaterial', |
| | | components: { |
| | | limsTable, |
| | | FormDia, |
| | |
| | | prop: 'remark', |
| | | minWidth: '100' |
| | | }, |
| | | // { |
| | | // label: '创建人', |
| | | // prop: 'createUser', |
| | | // minWidth: '100' |
| | | // }, |
| | | { |
| | | label: '创建时间', |
| | | prop: 'createTime', |
| | |
| | | formDia: false, |
| | | borrowDia: false, |
| | | returnDia: false, |
| | | importVisible: false, |
| | | importing: false, |
| | | importFiles: [], |
| | | } |
| | | }, |
| | | computed: { |
| | | importAction() { |
| | | return this.javaApi + '/feStandardSubstance/importStandardSubstance' |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.searchList() |
| | | }, |
| | | methods :{ |
| | | methods: { |
| | | downloadTemplate() { |
| | | downloadStandardSubstanceImportTemplate().then(res => { |
| | | this.$download.saveAs(new Blob([res]), '标准物质导入模板.xlsx') |
| | | }) |
| | | }, |
| | | submitImport() { |
| | | if (!this.$refs.standardSubstanceUpload.uploadFiles.length) { |
| | | this.$message.warning('请选择需要导入的Excel文件') |
| | | return |
| | | } |
| | | this.$refs.standardSubstanceUpload.submit() |
| | | }, |
| | | beforeImport(file) { |
| | | if (!file.name.toLowerCase().endsWith('.xlsx')) { |
| | | this.$message.error('仅支持.xlsx格式文件') |
| | | return false |
| | | } |
| | | if (file.size > 10 * 1024 * 1024) { |
| | | this.$message.error('导入文件不能超过10MB') |
| | | return false |
| | | } |
| | | this.importing = true |
| | | return true |
| | | }, |
| | | importSuccess(response) { |
| | | this.importing = false |
| | | if (response.code !== 200) { |
| | | this.$message.error(response.message || response.msg || '导入失败') |
| | | return |
| | | } |
| | | this.$message.success(`成功导入${response.data}条标准物质`) |
| | | this.importVisible = false |
| | | this.searchList() |
| | | }, |
| | | importError() { |
| | | this.importing = false |
| | | this.$message.error('导入失败') |
| | | }, |
| | | resetImport() { |
| | | this.importing = false |
| | | this.importFiles = [] |
| | | if (this.$refs.standardSubstanceUpload) { |
| | | this.$refs.standardSubstanceUpload.clearFiles() |
| | | } |
| | | }, |
| | | exportFun() { |
| | | this.outLoading = true |
| | | exportOfStandardSubstanceList(this.searchForm).then(res =>{ |
| | | exportOfStandardSubstanceList(this.searchForm).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], {type: 'application/octet-stream'},false); |
| | | const blob = new Blob([res], { type: 'application/octet-stream' }, false); |
| | | this.$download.saveAs(blob, '标准物质清单.xlsx') |
| | | this.$message.success('导出成功') |
| | | }) |
| | | }, |
| | | // 查询列表 |
| | | searchList () { |
| | | searchList() { |
| | | this.tableLoading = true |
| | | getPageStandardSubstance({ |
| | | ...this.page, |
| | | ...this.searchForm |
| | | }).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200){ |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records |
| | | this.page.total = res.data.total |
| | | } |
| | | }) |
| | | }, |
| | | // 删除 |
| | | delPlan (row) { |
| | | delPlan(row) { |
| | | this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.tableLoading = true |
| | | removeStandardSubstance({id:row.id}).then(res => { |
| | | removeStandardSubstance({ id: row.id }).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | | this.$message.success('删除成功') |
| | |
| | | }); |
| | | }, |
| | | // 新增,编辑,批准弹框 |
| | | openFormDia (type, row) { |
| | | openFormDia(type, row) { |
| | | this.formDia = true |
| | | this.$nextTick(() => { |
| | | this.$refs.formDia.openDia(type, row) |
| | | }) |
| | | }, |
| | | closeYearDia () { |
| | | closeYearDia() { |
| | | this.formDia = false |
| | | this.searchList() |
| | | }, |
| | | // 借用 |
| | | borrow (row) { |
| | | borrow(row) { |
| | | this.borrowDia = true |
| | | this.$nextTick(() => { |
| | | this.$refs.borrowDia.openDia(row) |
| | | }) |
| | | }, |
| | | closeBorrowDia () { |
| | | closeBorrowDia() { |
| | | this.borrowDia = false |
| | | this.searchList() |
| | | }, |
| | | // 归还 |
| | | return (row) { |
| | | return(row) { |
| | | this.returnDia = true |
| | | this.$nextTick(() => { |
| | | this.$refs.returnDia.openDia(row) |
| | | }) |
| | | }, |
| | | closeReturnDia () { |
| | | closeReturnDia() { |
| | | this.returnDia = false |
| | | this.searchList() |
| | | }, |
| | | // 重置查询条件 |
| | | resetSearchForm () { |
| | | resetSearchForm() { |
| | | this.searchForm.name = ''; |
| | | this.searchForm.factoryManufacturer = ''; |
| | | this.searchList() |