diff --git a/src/views/spectrumAnalysis/components/Modals/EditCell.vue b/src/views/spectrumAnalysis/components/Modals/EditCell.vue new file mode 100644 index 0000000..26cb5c2 --- /dev/null +++ b/src/views/spectrumAnalysis/components/Modals/EditCell.vue @@ -0,0 +1,49 @@ + + + + + \ No newline at end of file diff --git a/src/views/spectrumAnalysis/components/Modals/KorsumModal.vue b/src/views/spectrumAnalysis/components/Modals/KorsumModal.vue index 31bd776..e355886 100644 --- a/src/views/spectrumAnalysis/components/Modals/KorsumModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/KorsumModal.vue @@ -10,8 +10,8 @@ class="korsum-input-formula" :labelCol="{ style: { - width: '110px' - } + width: '110px', + }, }" > @@ -64,9 +64,7 @@ - - Input - + Input @@ -125,7 +123,15 @@ :class="outputTableList.length ? 'has-data' : ''" :scroll="{ y: 584 }" :pagination="false" - > + > + +
@@ -148,58 +154,62 @@ import ModalMixin from '@/mixins/ModalMixin' import TitleOverBorder from '../TitleOverBorder.vue' import { getAction, postAction } from '@/api/manage' -import * as XLSX from 'xlsx'; +import * as XLSX from 'xlsx' +import EditCell from './EditCell.vue' const columns = [ { title: 'Energy', dataIndex: 'energy', scopedSlots: { - customRender: 'energy' - } + customRender: 'energy', + }, }, { title: 'Total Efficiency', dataIndex: 'totalEffi', scopedSlots: { - customRender: 'totalEffi' - } + customRender: 'totalEffi', + }, }, { title: 'Peak Efficiency', dataIndex: 'peakEffi', scopedSlots: { - customRender: 'peakEffi' - } + customRender: 'peakEffi', + }, }, { title: 'Uncertainty(%)', dataIndex: 'uncertain', scopedSlots: { - customRender: 'uncertain' - } - } + customRender: 'uncertain', + }, + }, ] const outputColumns = [ { title: 'Energy', dataIndex: 'energy', - customRender: (text) => parseFloat(Number(text).toPrecision(6)) + scopedSlots: { customRender: 'energy' }, + // customRender: (text) => parseFloat(Number(text).toPrecision(6)) }, { title: 'Correct Factor', dataIndex: 'correctFactor', - customRender: (text) => parseFloat(Number(text).toPrecision(6)) + scopedSlots: { customRender: 'correctFactor' }, + // customRender: (text) => parseFloat(Number(text).toPrecision(6)), }, { title: 'Uncertainty(%)', dataIndex: 'uncertainty', - customRender: (text) => parseFloat(Number(text).toPrecision(6)) - } + scopedSlots: { customRender: 'uncertainty' }, + // customRender: (text) => parseFloat(Number(text).toPrecision(6)), + }, ] export default { - components: { TitleOverBorder }, + components: { TitleOverBorder, EditCell }, mixins: [ModalMixin], data() { this.columns = columns @@ -217,7 +227,7 @@ export default { filterWord: '', // 筛选 fileName: '', // save excel name - analyseData: {} // 分析结果 + analyseData: {}, // 分析结果 } }, methods: { @@ -245,7 +255,7 @@ export default { totalEf3: 0.111096, totalEf4: -0.003896, totalEf5: -0.000345, - totalEf6: 0.000017 + totalEf6: 0.000017, } this.efficiency = { @@ -254,7 +264,7 @@ export default { effciency3: 0.583265, effciency4: -0.065884, effciency5: 0.003255, - effciency6: -0.000059 + effciency6: -0.000059, } this.getInfo() @@ -269,9 +279,9 @@ export default { const { success, result, message } = await postAction('/gamma/KorSumInput', { ...this.totalEffi, ...this.efficiency, - energys: this.list.map(item => item.energy) + energys: this.list.map((item) => item.energy), }) - console.log(success); + console.log(success) if (success) { this.list = result } else { @@ -285,18 +295,18 @@ export default { // 分析 async handleAnalyze() { console.log('%c [ 分析 ]-178', 'font-size:13px; background:pink; color:#bf2c9f;') - try { + try { this.isLoading = true const { success, result, message } = await postAction('/gamma/KorSumAnalyse', this.list) this.isLoading = false if (success) { - this.analyseData = result - console.log(result); + this.analyseData = result + console.log(result) } else { this.$message.error(message) } } catch (error) { - this.isLoading = false; + this.isLoading = false console.error(error) } }, @@ -308,73 +318,84 @@ export default { // output栏点击左侧列表 handleOutputItemClick(item) { - if(!this.analyseData) { - this.$message.error("Analyse Fail!") - return false; + if (!this.analyseData) { + this.$message.error('Analyse Fail!') + return false } this.selectedItem = item - this.outputTableList = []; + this.outputTableList = [] // 根据核素名获取结果集 - let data = this.analyseData[this.selectedItem] - if(!data || data.energy.length < 1) { - this.$message.error("Analyse Fail!") - return false; + let data = this.analyseData[this.selectedItem] + if (!data || data.energy.length < 1) { + this.$message.error('Analyse Fail!') + return false } - - let result = []; - for(let i = 0; i < data.energy.length; i++ ) { + + let result = [] + for (let i = 0; i < data.energy.length; i++) { // 将数据进行填充并 let obj = { - "energy": data.energy[i], - "correctFactor" : data.factor[i], - "uncertainty" : (data.factor[i] - 1) / 10 * 100 + energy: data.energy[i], + correctFactor: data.factor[i], + uncertainty: ((data.factor[i] - 1) / 10) * 100, } - result.push(obj); + result.push(obj) } - - this.outputTableList = result; + + this.outputTableList = result + }, + onCellChange(idx, label, value) { + console.log(this.outputTableList) + console.log(value) + const dataSource = [...this.outputTableList] + const target = dataSource.find((item, index) => index == idx) + if (target) { + target[label] = value + this.outputTableList = dataSource + } + console.log(this.outputTableList) }, // 导出到excel handleExport() { console.log('%c [ 导出到excel ]-246', 'font-size:13px; background:pink; color:#bf2c9f;') let _this = this - this.$confirm({ - title: 'Please enter file name', - content: (h) => , - 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() { - console.log(_this.fileName); - if (_this.fileName) { - // saveAs(blob, `${_this.fileName}`) - // 创建工作簿 - const workbook = XLSX.utils.book_new(); - - // 创建工作表 - const worksheet = XLSX.utils.json_to_sheet(_this.outputTableList); - - // 将工作表添加到工作簿 - XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); - - // 导出Excel文件 - XLSX.writeFile(workbook, _this.fileName + ".xlsx"); - } - }, - }) - } + this.$confirm({ + title: 'Please enter file name', + content: (h) => , + 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() { + console.log(_this.fileName) + if (_this.fileName) { + // saveAs(blob, `${_this.fileName}`) + // 创建工作簿 + const workbook = XLSX.utils.book_new() + + // 创建工作表 + const worksheet = XLSX.utils.json_to_sheet(_this.outputTableList) + + // 将工作表添加到工作簿 + XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1') + + // 导出Excel文件 + XLSX.writeFile(workbook, _this.fileName + '.xlsx') + } + }, + }) + }, }, computed: { outputList() { - return this.nuclideList.filter(item => item.toLowerCase().includes(this.filterWord.toLowerCase())) - } - } + return this.nuclideList.filter((item) => item.toLowerCase().includes(this.filterWord.toLowerCase())) + }, + }, }