2023-07-17 19:37:46 +08:00
|
|
|
<template>
|
2023-07-20 14:11:37 +08:00
|
|
|
<custom-modal v-model="visible" :width="750" title="QC Results">
|
2023-08-30 13:36:53 +08:00
|
|
|
<a-spin :spinning="isLoading">
|
|
|
|
<a-table :columns="columns" :dataSource="list" :pagination="false" />
|
|
|
|
</a-spin>
|
2023-09-07 17:30:07 +08:00
|
|
|
<a-button slot="custom-footer" type="primary" @click="handleExportToExcel">Export to Excel</a-button>
|
2023-07-17 19:37:46 +08:00
|
|
|
</custom-modal>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2023-09-07 17:30:07 +08:00
|
|
|
import { getAction, getFileAction } from '@/api/manage'
|
2023-07-17 19:37:46 +08:00
|
|
|
import ModalMixin from '@/mixins/ModalMixin'
|
2023-09-07 17:30:07 +08:00
|
|
|
import SampleDataMixin from '@/views/spectrumAnalysis/SampleDataMixin'
|
|
|
|
import { saveAs } from 'file-saver';
|
2023-07-17 19:37:46 +08:00
|
|
|
|
|
|
|
const columns = [
|
|
|
|
{
|
|
|
|
title: 'Name',
|
2023-08-30 13:36:53 +08:00
|
|
|
dataIndex: 'name',
|
|
|
|
customCell: (record) => {
|
|
|
|
return {
|
|
|
|
style: {
|
|
|
|
backgroundColor: record.flag == 'FAIL'? 'red': ''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-07-17 19:37:46 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'Pass/Fail',
|
2023-08-30 13:36:53 +08:00
|
|
|
dataIndex: 'flag',
|
|
|
|
customCell: (record) => {
|
|
|
|
return {
|
|
|
|
style: {
|
|
|
|
backgroundColor: record.flag == 'FAIL'? 'red': ''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-07-17 19:37:46 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'Value',
|
2023-08-30 13:36:53 +08:00
|
|
|
dataIndex: 'value',
|
|
|
|
customCell: (record) => {
|
|
|
|
return {
|
|
|
|
style: {
|
|
|
|
backgroundColor: record.flag == 'FAIL'? 'red': ''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-07-17 19:37:46 +08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
title: 'Standard',
|
2023-08-30 13:36:53 +08:00
|
|
|
dataIndex: 'standard',
|
|
|
|
customCell: (record) => {
|
|
|
|
return {
|
|
|
|
style: {
|
|
|
|
backgroundColor: record.flag == 'FAIL'? 'red': ''
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2023-07-17 19:37:46 +08:00
|
|
|
}
|
|
|
|
]
|
|
|
|
export default {
|
2023-09-07 17:30:07 +08:00
|
|
|
mixins: [ModalMixin, SampleDataMixin],
|
2023-08-30 13:36:53 +08:00
|
|
|
props: {
|
|
|
|
sampleId: {
|
|
|
|
type: Number
|
|
|
|
}
|
|
|
|
},
|
2023-07-17 19:37:46 +08:00
|
|
|
data() {
|
|
|
|
this.columns = columns
|
|
|
|
return {
|
2023-08-30 13:36:53 +08:00
|
|
|
isLoading: false,
|
2023-09-07 17:30:07 +08:00
|
|
|
list: [],
|
|
|
|
fileName: ''
|
2023-08-30 13:36:53 +08:00
|
|
|
}
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
async getData() {
|
|
|
|
try {
|
|
|
|
this.isLoading = true
|
|
|
|
const { success, result, message } = await getAction('/gamma/viewQCResult', {
|
|
|
|
sampleId: this.sampleId
|
|
|
|
})
|
|
|
|
if (success) {
|
|
|
|
this.list = result
|
|
|
|
} else {
|
|
|
|
this.$message.error(message)
|
2023-07-17 19:37:46 +08:00
|
|
|
}
|
2023-08-30 13:36:53 +08:00
|
|
|
} catch (error) {
|
|
|
|
console.error(error)
|
|
|
|
} finally {
|
|
|
|
this.isLoading = false
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
beforeModalOpen() {
|
|
|
|
this.getData()
|
2023-09-07 17:30:07 +08:00
|
|
|
},
|
|
|
|
// 导出到Excel
|
|
|
|
handleExportToExcel() {
|
|
|
|
if (this.list.length > 0) {
|
|
|
|
let _this = this
|
|
|
|
this.$confirm({
|
|
|
|
title: 'Please enter file name',
|
|
|
|
content: h => <a-input v-model={_this.fileName} />,
|
|
|
|
okText: 'Cancle',
|
|
|
|
cancelText: 'Save',
|
|
|
|
okButtonProps: {style: {backgroundColor: "#b98326", color: "#fff", borderColor: "transparent"}},
|
|
|
|
cancelButtonProps: {style: {color: "#fff", backgroundColor: "#31aab0", borderColor: "transparent"}},
|
|
|
|
onOk() {
|
|
|
|
console.log('Cancel');
|
|
|
|
},
|
|
|
|
onCancel() {
|
|
|
|
if (_this.fileName) {
|
|
|
|
_this.visible = false
|
|
|
|
let params = {
|
|
|
|
// sampleId: "426530",
|
|
|
|
// fileName: "CAX05_001-20230731_1528_S_FULL_37563.6.PHD"
|
|
|
|
sampleId: this.sampleId,
|
|
|
|
fileName: this.sampleData.fileName
|
|
|
|
}
|
|
|
|
getFileAction('/gamma/exportQCResult', params).then(res => {
|
|
|
|
if (res.code && res.code == 500) {
|
|
|
|
this.$message.warning("This operation fails. Contact your system administrator")
|
|
|
|
} else {
|
|
|
|
const blob = new Blob([res], { type: "application/vnd.ms-excel" })
|
|
|
|
saveAs(blob, `${_this.fileName}`)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
this.$message.warning("No downloadable data")
|
|
|
|
}
|
2023-07-17 19:37:46 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
<style lang="less" scoped></style>
|