Compare commits
13 Commits
ecd16d9fbf
...
333a7fd1f4
Author | SHA1 | Date | |
---|---|---|---|
333a7fd1f4 | |||
990ab9def5 | |||
e9c693ee51 | |||
656a02c1ec | |||
46c32d3627 | |||
e62d36e4cb | |||
36258e74d2 | |||
878212006a | |||
70850880ef | |||
4842684b6e | |||
1e6320a616 | |||
2301ce1409 | |||
63a271be2b |
|
@ -30,9 +30,10 @@ export default {
|
||||||
this._chart.setOption(this.option, this.opts)
|
this._chart.setOption(this.option, this.opts)
|
||||||
this.initEventListener()
|
this.initEventListener()
|
||||||
},
|
},
|
||||||
destroyed() {
|
beforeDestroy() {
|
||||||
if (this._chart) {
|
if (this._chart) {
|
||||||
this._chart.dispose()
|
this._chart.dispose()
|
||||||
|
this._chart = null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
<a-table
|
<a-table
|
||||||
ref="tableRef"
|
ref="tableRef"
|
||||||
class="custom-table"
|
class="custom-table"
|
||||||
|
:class="['custom-table', canSelect && multiple && mouseMoveSelect ? 'mouse-move-select' : '']"
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
:data-source="list"
|
:data-source="list"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
|
@ -9,7 +10,7 @@
|
||||||
:row-key="rowKey"
|
:row-key="rowKey"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:pagination="pagination"
|
:pagination="pagination"
|
||||||
:customRow="customRow"
|
:customRow="multiple && mouseMoveSelect ? customMouseMoveSelectRow : customRow"
|
||||||
:rowClassName="() => (canSelect ? 'custom-table-row' : '')"
|
:rowClassName="() => (canSelect ? 'custom-table-row' : '')"
|
||||||
@change="handleTableChange"
|
@change="handleTableChange"
|
||||||
>
|
>
|
||||||
|
@ -58,10 +59,16 @@ export default {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true,
|
default: true,
|
||||||
},
|
},
|
||||||
|
// 多选
|
||||||
multiple: {
|
multiple: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
// 鼠标移动选择
|
||||||
|
mouseMoveSelect: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -69,6 +76,14 @@ export default {
|
||||||
innerSelectedRows: [],
|
innerSelectedRows: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
if (this.canSelect && this.multiple && this.mouseMoveSelect) {
|
||||||
|
const tbody = this.$el.querySelector('.ant-table-tbody')
|
||||||
|
tbody.addEventListener('mouseleave', () => {
|
||||||
|
this.mouseMoveStartIndex = undefined
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 实现单击选中/反选功能
|
// 实现单击选中/反选功能
|
||||||
customRow(record, index) {
|
customRow(record, index) {
|
||||||
|
@ -105,6 +120,34 @@ export default {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 实现鼠标拖移动多选功能
|
||||||
|
customMouseMoveSelectRow(record, index) {
|
||||||
|
const key = record[this.rowKey]
|
||||||
|
return {
|
||||||
|
class: this.innerSelectedRowKeys.includes(key) ? 'ant-table-row-selected' : '',
|
||||||
|
on: {
|
||||||
|
mousedown: () => {
|
||||||
|
this.innerSelectedRowKeys = []
|
||||||
|
this.mouseMoveStartIndex = index
|
||||||
|
},
|
||||||
|
mouseenter: () => {
|
||||||
|
if (this.mouseMoveStartIndex !== undefined) {
|
||||||
|
const indexes = [this.mouseMoveStartIndex, index].sort((a, b) => a - b)
|
||||||
|
this.innerSelectedRowKeys = this.list.slice(indexes[0], indexes[1] + 1).map((item) => item[this.rowKey])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mouseup: () => {
|
||||||
|
// 开始和结束在同一个,相当于click
|
||||||
|
if (this.mouseMoveStartIndex == index) {
|
||||||
|
this.innerSelectedRowKeys = [key]
|
||||||
|
}
|
||||||
|
this.mouseMoveStartIndex = undefined
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
handleTableChange(pagination, filters, sorter) {
|
handleTableChange(pagination, filters, sorter) {
|
||||||
this.$emit('change', pagination, filters, sorter)
|
this.$emit('change', pagination, filters, sorter)
|
||||||
},
|
},
|
||||||
|
@ -136,8 +179,20 @@ export default {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="less">
|
<style lang="less" scoped>
|
||||||
.custom-table-row {
|
::v-deep {
|
||||||
|
.custom-table-row {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.mouse-move-select {
|
||||||
|
user-select: none;
|
||||||
|
|
||||||
|
::v-deep {
|
||||||
|
td {
|
||||||
|
transition: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -6,7 +6,6 @@ import user from './modules/user'
|
||||||
import permission from './modules/permission'
|
import permission from './modules/permission'
|
||||||
import enhance from './modules/enhance'
|
import enhance from './modules/enhance'
|
||||||
import online from './modules/online'
|
import online from './modules/online'
|
||||||
import sample from './modules/sample'
|
|
||||||
import getters from './getters'
|
import getters from './getters'
|
||||||
|
|
||||||
Vue.use(Vuex)
|
Vue.use(Vuex)
|
||||||
|
@ -18,7 +17,6 @@ export default new Vuex.Store({
|
||||||
permission,
|
permission,
|
||||||
enhance,
|
enhance,
|
||||||
online,
|
online,
|
||||||
sample
|
|
||||||
},
|
},
|
||||||
state: {
|
state: {
|
||||||
|
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
const sample = {
|
|
||||||
state: Object.freeze({
|
|
||||||
sampleList: [] // [{ inputFileName: String; data: Object; }]
|
|
||||||
}),
|
|
||||||
mutations: {
|
|
||||||
SET_SAMPLE_LIST: (state, sampleList) => {
|
|
||||||
state.sampleList = sampleList
|
|
||||||
},
|
|
||||||
|
|
||||||
ADD_SAMPLE_DATA: (state, sampleData) => {
|
|
||||||
const find = state.sampleList.find(item => item.inputFileName == sampleData.inputFileName)
|
|
||||||
if (find) {
|
|
||||||
find.data = sampleData.data
|
|
||||||
} else {
|
|
||||||
state.sampleList.push(sampleData)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
UPDATE_SAMPLE_DATA: (state, { inputFileName, key, data }) => {
|
|
||||||
const find = state.sampleList.find(item => item.inputFileName == inputFileName)
|
|
||||||
if (find) {
|
|
||||||
find.data[key] = data
|
|
||||||
}
|
|
||||||
},
|
|
||||||
UPDATE_SAMPLE_DATA_ANALY: (state, { inputFileName, data }) => {
|
|
||||||
const find = state.sampleList.find(item => item.inputFileName == inputFileName)
|
|
||||||
if (find) {
|
|
||||||
data.DetailedInformation = find.data.DetailedInformation
|
|
||||||
find.data = data
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
REMOVE_SAMPLE_DATA: (state, inputFileName) => {
|
|
||||||
const findIndex = state.sampleList.findIndex(item => item.inputFileName == inputFileName)
|
|
||||||
if(-1 !== findIndex) {
|
|
||||||
state.sampleList.splice(findIndex, 1)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
CLEAR_SAMPLE_DATA: (state) => {
|
|
||||||
state.sampleList = []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
actions: {
|
|
||||||
GET_SAMPLE_DATA: ({ state }, inputFileName) => {
|
|
||||||
const find = state.sampleList.find(item => item.inputFileName == inputFileName)
|
|
||||||
return find ? find : null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default sample
|
|
84
src/utils/SampleStore.js
Normal file
84
src/utils/SampleStore.js
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
// 所有缓存的谱
|
||||||
|
let sampleList = []
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重新设置缓存的谱
|
||||||
|
* @param {Array} list
|
||||||
|
*/
|
||||||
|
const setSampleList = list => {
|
||||||
|
sampleList = list
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 缓存一条谱数据
|
||||||
|
* @param {*} sampleData
|
||||||
|
*/
|
||||||
|
const addSampleData = sampleData => {
|
||||||
|
const find = sampleList.find(item => item.inputFileName == sampleData.inputFileName)
|
||||||
|
if (find) {
|
||||||
|
find.data = sampleData.data
|
||||||
|
} else {
|
||||||
|
sampleList.push(sampleData)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新谱数据
|
||||||
|
* @param {{ inputFileName: string; key: string; data: any; }} param0
|
||||||
|
*/
|
||||||
|
const updateSampleData = ({ inputFileName, key, data }) => {
|
||||||
|
const find = sampleList.find(item => item.inputFileName == inputFileName)
|
||||||
|
if (find) {
|
||||||
|
find.data[key] = data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 移除谱数据
|
||||||
|
* @param {string} inputFileName
|
||||||
|
*/
|
||||||
|
const removeSampleData = inputFileName => {
|
||||||
|
const findIndex = sampleList.findIndex(item => item.inputFileName == inputFileName)
|
||||||
|
if (-1 !== findIndex) {
|
||||||
|
sampleList.splice(findIndex, 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新分析数据
|
||||||
|
* @param {{ inputFileName: string; data: any; }} param0
|
||||||
|
*/
|
||||||
|
const updateSampleDataAnaly = ({ inputFileName, data }) => {
|
||||||
|
const find = sampleList.find(item => item.inputFileName == inputFileName)
|
||||||
|
if (find) {
|
||||||
|
data.DetailedInformation = find.data.DetailedInformation
|
||||||
|
find.data = data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清理缓存列表
|
||||||
|
*/
|
||||||
|
const clearSampleData = () => {
|
||||||
|
sampleList = []
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据文件名获取谱
|
||||||
|
* @param {string} inputFileName
|
||||||
|
*/
|
||||||
|
const getSampleData = inputFileName => {
|
||||||
|
const find = sampleList.find(item => item.inputFileName == inputFileName)
|
||||||
|
return find ? find : null
|
||||||
|
}
|
||||||
|
|
||||||
|
export {
|
||||||
|
sampleList,
|
||||||
|
setSampleList,
|
||||||
|
addSampleData,
|
||||||
|
updateSampleData,
|
||||||
|
removeSampleData,
|
||||||
|
updateSampleDataAnaly,
|
||||||
|
clearSampleData,
|
||||||
|
getSampleData
|
||||||
|
}
|
|
@ -13,6 +13,7 @@
|
||||||
:list="dataSource"
|
:list="dataSource"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:canSelect="false"
|
:canSelect="false"
|
||||||
|
:scroll="{ y: 390 }"
|
||||||
>
|
>
|
||||||
<template slot="info" slot-scope="{ record }">
|
<template slot="info" slot-scope="{ record }">
|
||||||
<a-popover>
|
<a-popover>
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
:list="dataSource"
|
:list="dataSource"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:pagination="false"
|
:pagination="false"
|
||||||
|
:scroll="{ y: 655 }"
|
||||||
@rowDbclick="rowClick"
|
@rowDbclick="rowClick"
|
||||||
>
|
>
|
||||||
<!-- <template slot="stationList" slot-scope="{ text }">
|
<!-- <template slot="stationList" slot-scope="{ text }">
|
||||||
|
|
|
@ -53,6 +53,7 @@
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:pagination="false"
|
:pagination="false"
|
||||||
:canSelect="false"
|
:canSelect="false"
|
||||||
|
:scroll="{ y: 655 }"
|
||||||
>
|
>
|
||||||
</TableList>
|
</TableList>
|
||||||
<a-pagination
|
<a-pagination
|
||||||
|
|
|
@ -30,6 +30,21 @@
|
||||||
</a-card>
|
</a-card>
|
||||||
<!-- 日志列表 -->
|
<!-- 日志列表 -->
|
||||||
<div class="log-list">
|
<div class="log-list">
|
||||||
|
<div class="search-bar">
|
||||||
|
<a-row type="flex">
|
||||||
|
<a-col flex="290px">
|
||||||
|
<a-form-model-item label="Name">
|
||||||
|
<a-input v-model="nameStr" placeholder="Please Input..." />
|
||||||
|
</a-form-model-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col flex="108px">
|
||||||
|
<a-button class="search-btn" type="primary" @click="onSearch">
|
||||||
|
<img src="@/assets/images/global/search.png" alt="" />
|
||||||
|
Search
|
||||||
|
</a-button>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
<custom-table
|
<custom-table
|
||||||
size="middle"
|
size="middle"
|
||||||
rowKey="id"
|
rowKey="id"
|
||||||
|
@ -39,7 +54,7 @@
|
||||||
:loading="isGettingTreeData || loading"
|
:loading="isGettingTreeData || loading"
|
||||||
:can-select="false"
|
:can-select="false"
|
||||||
@change="handleTableChange"
|
@change="handleTableChange"
|
||||||
:scroll="{ y: 'calc(100vh - 175px)' }"
|
:scroll="{ y: 'calc(100vh - 275px)' }"
|
||||||
>
|
>
|
||||||
<template slot="operate" slot-scope="{ record }">
|
<template slot="operate" slot-scope="{ record }">
|
||||||
<a-space :size="20">
|
<a-space :size="20">
|
||||||
|
@ -53,6 +68,22 @@
|
||||||
</a-space>
|
</a-space>
|
||||||
</template>
|
</template>
|
||||||
</custom-table>
|
</custom-table>
|
||||||
|
<a-pagination
|
||||||
|
size="small"
|
||||||
|
v-model="ipagination.current"
|
||||||
|
:pageSize="ipagination.pageSize"
|
||||||
|
:page-size-options="ipagination.pageSizeOptions"
|
||||||
|
show-size-changer
|
||||||
|
show-quick-jumper
|
||||||
|
:total="ipagination.total"
|
||||||
|
:show-total="
|
||||||
|
(total, range) =>
|
||||||
|
`Total ${total} items Page ${ipagination.current} / ${Math.ceil(total / ipagination.pageSize)}`
|
||||||
|
"
|
||||||
|
show-less-items
|
||||||
|
@change="handlePageChange"
|
||||||
|
@showSizeChange="handleSizeChange"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<!-- 日志列表结束 -->
|
<!-- 日志列表结束 -->
|
||||||
<custom-modal title="Log" :width="950" v-model="visible" :footer="null">
|
<custom-modal title="Log" :width="950" v-model="visible" :footer="null">
|
||||||
|
@ -108,6 +139,7 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
this.columns = columns
|
this.columns = columns
|
||||||
return {
|
return {
|
||||||
|
nameStr: '',
|
||||||
disableMixinCreated: true,
|
disableMixinCreated: true,
|
||||||
url: {
|
url: {
|
||||||
list: '/logManage/findFiles',
|
list: '/logManage/findFiles',
|
||||||
|
@ -121,12 +153,37 @@ export default {
|
||||||
visible: false,
|
visible: false,
|
||||||
isGettingDetail: false,
|
isGettingDetail: false,
|
||||||
logInfo: [],
|
logInfo: [],
|
||||||
|
ipagination: {
|
||||||
|
current: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
pageSizeOptions: ['10', '20', '30'],
|
||||||
|
showTotal: (total, range) => {
|
||||||
|
const { current, pageSize } = this.ipagination
|
||||||
|
return `Total ${total} items Page ${current} / ${Math.ceil(total / pageSize)}`
|
||||||
|
},
|
||||||
|
showQuickJumper: true,
|
||||||
|
showSizeChanger: true,
|
||||||
|
total: 0,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getTreeData()
|
this.getTreeData()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
onSearch() {
|
||||||
|
this.loadData()
|
||||||
|
},
|
||||||
|
handlePageChange(page, pageSize) {
|
||||||
|
this.ipagination.current = page
|
||||||
|
this.ipagination.pageSize = pageSize
|
||||||
|
this.loadData()
|
||||||
|
},
|
||||||
|
handleSizeChange(current, size) {
|
||||||
|
this.ipagination.current = current
|
||||||
|
this.ipagination.pageSize = size
|
||||||
|
this.loadData()
|
||||||
|
},
|
||||||
async getTreeData() {
|
async getTreeData() {
|
||||||
try {
|
try {
|
||||||
this.isGettingTreeData = true
|
this.isGettingTreeData = true
|
||||||
|
@ -164,6 +221,8 @@ export default {
|
||||||
},
|
},
|
||||||
onSelect() {
|
onSelect() {
|
||||||
this.queryParam.path = this.selectedKeys[0]
|
this.queryParam.path = this.selectedKeys[0]
|
||||||
|
this.ipagination.current = 1
|
||||||
|
this.ipagination.pageSize = 10
|
||||||
this.loadData()
|
this.loadData()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -179,10 +238,14 @@ export default {
|
||||||
this.onClearSelected()
|
this.onClearSelected()
|
||||||
|
|
||||||
var params = this.getQueryParams() //查询条件
|
var params = this.getQueryParams() //查询条件
|
||||||
|
params.name = this.nameStr
|
||||||
|
params.pageNo = this.ipagination.current
|
||||||
|
params.pageSize = this.ipagination.pageSize
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getAction(this.url.list, params)
|
getAction(this.url.list, params)
|
||||||
.then((res) => {
|
.then(({ result: { records, total } }) => {
|
||||||
this.dataSource = res
|
this.dataSource = records
|
||||||
|
this.ipagination.total = total
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
|
@ -302,6 +365,10 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
&-list {
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.log-detail {
|
.log-detail {
|
||||||
|
@ -314,4 +381,59 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.search-bar {
|
||||||
|
height: 50px;
|
||||||
|
border-top: 1px solid rgba(13, 235, 201, 0.3);
|
||||||
|
border-bottom: 1px solid rgba(13, 235, 201, 0.3);
|
||||||
|
margin-bottom: 15px;
|
||||||
|
padding: 8px 10px;
|
||||||
|
background: rgba(12, 235, 201, 0.05);
|
||||||
|
}
|
||||||
|
.ant-input {
|
||||||
|
width: 266px;
|
||||||
|
}
|
||||||
|
::v-deep {
|
||||||
|
.ant-form-item {
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: 0;
|
||||||
|
.ant-form-item-label,
|
||||||
|
.ant-form-item-control {
|
||||||
|
line-height: 32px;
|
||||||
|
height: 32px;
|
||||||
|
}
|
||||||
|
.ant-form-item-label {
|
||||||
|
flex-shrink: 0;
|
||||||
|
margin-right: 10px;
|
||||||
|
label {
|
||||||
|
font-size: 16px;
|
||||||
|
font-family: ArialMT;
|
||||||
|
color: #ade6ee;
|
||||||
|
&::after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ant-calendar-range-picker-separator {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.ant-form-item-control-wrapper {
|
||||||
|
width: 100%;
|
||||||
|
// overflow: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.search-btn {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
img {
|
||||||
|
width: 16px;
|
||||||
|
height: 17px;
|
||||||
|
margin-right: 9px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ant-pagination {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
bottom: 0;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -121,6 +121,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { addSampleData, getSampleData, sampleList, setSampleList, updateSampleData } from '@/utils/SampleStore'
|
||||||
import { getAction, postAction } from '../../api/manage'
|
import { getAction, postAction } from '../../api/manage'
|
||||||
import BetaGammaChartContainer from './components/BetaGammaChartContainer.vue'
|
import BetaGammaChartContainer from './components/BetaGammaChartContainer.vue'
|
||||||
import BetaGammaSpectrumChart from './components/BetaGammaSpectrumChart.vue'
|
import BetaGammaSpectrumChart from './components/BetaGammaSpectrumChart.vue'
|
||||||
|
@ -189,6 +190,10 @@ export default {
|
||||||
analyseCurrentSpectrum: {
|
analyseCurrentSpectrum: {
|
||||||
type: Object,
|
type: Object,
|
||||||
},
|
},
|
||||||
|
sampleList: {
|
||||||
|
type: Array,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
this.SampleType = SampleType
|
this.SampleType = SampleType
|
||||||
|
@ -237,7 +242,7 @@ export default {
|
||||||
this.qcFlagsVisible = true
|
this.qcFlagsVisible = true
|
||||||
}, 100)
|
}, 100)
|
||||||
},
|
},
|
||||||
destroyed() {
|
beforeDestroy() {
|
||||||
this.cancelLastRequest()
|
this.cancelLastRequest()
|
||||||
this.$bus.$off('ReAnalyses', this.handleReAnalyse)
|
this.$bus.$off('ReAnalyses', this.handleReAnalyse)
|
||||||
|
|
||||||
|
@ -289,7 +294,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.changeChartByType(this.spectraType)
|
this.changeChartByType(this.spectraType, result.XeData)
|
||||||
},
|
},
|
||||||
|
|
||||||
handleGetFlag(val, obj) {
|
handleGetFlag(val, obj) {
|
||||||
|
@ -323,7 +328,7 @@ export default {
|
||||||
this.changeChartByType('sample')
|
this.changeChartByType('sample')
|
||||||
this.emitGetFiles(result)
|
this.emitGetFiles(result)
|
||||||
|
|
||||||
this.$store.commit('ADD_SAMPLE_DATA', {
|
addSampleData({
|
||||||
inputFileName,
|
inputFileName,
|
||||||
data: result,
|
data: result,
|
||||||
from: 'db',
|
from: 'db',
|
||||||
|
@ -369,11 +374,12 @@ export default {
|
||||||
this.sampleDetail = result
|
this.sampleDetail = result
|
||||||
this.changeChartByType('sample')
|
this.changeChartByType('sample')
|
||||||
|
|
||||||
this.$store.commit('ADD_SAMPLE_DATA', {
|
addSampleData({
|
||||||
inputFileName: this.sample.sampleFileName,
|
inputFileName: this.sample.sampleFileName,
|
||||||
data: result,
|
data: result,
|
||||||
from: 'file',
|
from: 'file',
|
||||||
})
|
})
|
||||||
|
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(message)
|
this.$message.error(message)
|
||||||
|
@ -401,7 +407,7 @@ export default {
|
||||||
return cancelToken
|
return cancelToken
|
||||||
},
|
},
|
||||||
|
|
||||||
changeChartByType(val) {
|
changeChartByType(val, data) {
|
||||||
if (val === 'qc' && !this.sampleDetail.qc) {
|
if (val === 'qc' && !this.sampleDetail.qc) {
|
||||||
this.$message.warning('No qc spectrum file!')
|
this.$message.warning('No qc spectrum file!')
|
||||||
} else {
|
} else {
|
||||||
|
@ -452,7 +458,7 @@ export default {
|
||||||
|
|
||||||
console.log('this.resultDisplaythis.resultDisplay', this.resultDisplay)
|
console.log('this.resultDisplaythis.resultDisplay', this.resultDisplay)
|
||||||
|
|
||||||
this.resultDisplay = XeData
|
this.resultDisplay = data ? data : XeData
|
||||||
this.sortResultDisplay()
|
this.sortResultDisplay()
|
||||||
|
|
||||||
this.$emit('sendInfo', this.resultDisplay, this.spectrumData.stationCode, savedAnalysisResult)
|
this.$emit('sendInfo', this.resultDisplay, this.spectrumData.stationCode, savedAnalysisResult)
|
||||||
|
@ -548,46 +554,108 @@ export default {
|
||||||
// this.isReAnalyed_beta = true
|
// this.isReAnalyed_beta = true
|
||||||
// this.analyseCurrentSpectrum = res.result
|
// this.analyseCurrentSpectrum = res.result
|
||||||
this.$emit('sendXeData', res.result.XeData)
|
this.$emit('sendXeData', res.result.XeData)
|
||||||
if (res.result.XeData && res.result.XeData.length > 0) {
|
// if (res.result.XeData && res.result.XeData.length > 0) {
|
||||||
res.result.XeData.forEach((item) => {
|
res.result.XeData.forEach((item) => {
|
||||||
item.conc = parseFloat(item.conc.toPrecision(6))
|
item.conc = parseFloat(item.conc.toPrecision(6))
|
||||||
item.concErr = parseFloat(item.concErr.toPrecision(6))
|
item.concErr = parseFloat(item.concErr.toPrecision(6))
|
||||||
item.lc = parseFloat(item.lc.toPrecision(6))
|
item.lc = parseFloat(item.lc.toPrecision(6))
|
||||||
item.mdc = parseFloat(item.mdc.toPrecision(6))
|
item.mdc = parseFloat(item.mdc.toPrecision(6))
|
||||||
})
|
})
|
||||||
this.$emit('reAnalyCurr', true, res.result.XeData)
|
this.$emit('reAnalyCurr', res.result.savedAnalysisResult, res.result.XeData)
|
||||||
this.handleReAnalyse(res.result)
|
this.handleReAnalyse(res.result)
|
||||||
|
updateSampleData({
|
||||||
|
inputFileName: this.sample.inputFileName,
|
||||||
|
key: 'XeData',
|
||||||
|
data: res.result.XeData,
|
||||||
|
})
|
||||||
|
updateSampleData({
|
||||||
|
inputFileName: this.sample.inputFileName,
|
||||||
|
key: 'savedAnalysisResult',
|
||||||
|
data: res.result.savedAnalysisResult,
|
||||||
|
})
|
||||||
|
if (res.result.bProcessed) {
|
||||||
|
this.$message.success(res.result.message)
|
||||||
|
} else {
|
||||||
|
this.$message.warning(res.result.message)
|
||||||
}
|
}
|
||||||
|
// }
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning(res.message)
|
this.$message.warning(res.message)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getAnalyzeAllSpectrum() {
|
// 分析全部
|
||||||
let params = {
|
async getAnalyzeAllSpectrum() {
|
||||||
dbNames: [this.sample.dbName],
|
const regExp = /^([A-Z]{1,}\d{1,})_/
|
||||||
sampleIds: [this.sample.sampleId ? this.sample.sampleId : ''],
|
const regMatched = this.sample.inputFileName.match(regExp)
|
||||||
sampleFileNames: [this.sample.inputFileName],
|
const currStationName = regMatched[1]
|
||||||
gasFileNames: [this.sample.gasFileName],
|
const dbNames = [],
|
||||||
detFileNames: [this.sample.detFileName],
|
sampleIds = [],
|
||||||
qcFileNames: [this.sample.qcFileName],
|
sampleFileNames = [],
|
||||||
|
gasFileNames = [],
|
||||||
|
detFileNames = [],
|
||||||
|
qcFileNames = []
|
||||||
|
|
||||||
|
const matchedSampleList = this.sampleList.filter((item) => item.inputFileName.includes(currStationName))
|
||||||
|
matchedSampleList.forEach(
|
||||||
|
({ dbName, sampleId, inputFileName, sampleFileName, gasFileName, detFileName, qcFileName, qcFileStatus }) => {
|
||||||
|
dbNames.push(dbName || '')
|
||||||
|
sampleIds.push(sampleId || '')
|
||||||
|
sampleFileNames.push(sampleFileName || inputFileName || '')
|
||||||
|
gasFileNames.push(gasFileName || '')
|
||||||
|
detFileNames.push(detFileName || '')
|
||||||
|
qcFileNames.push(qcFileStatus ? qcFileName : '')
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
const params = {
|
||||||
|
dbNames,
|
||||||
|
sampleIds,
|
||||||
|
sampleFileNames,
|
||||||
|
gasFileNames,
|
||||||
|
detFileNames,
|
||||||
|
qcFileNames,
|
||||||
currentFileName: this.sample.inputFileName,
|
currentFileName: this.sample.inputFileName,
|
||||||
}
|
}
|
||||||
postAction('/spectrumAnalysis/analyseAllSpectrum', params).then((res) => {
|
const { success, result, message } = await postAction('/spectrumAnalysis/analyseAllSpectrum', params)
|
||||||
if (res.success) {
|
if (success) {
|
||||||
// this.analyseCurrentSpectrum = res.result
|
// 对所有已加载的谱中和本谱相似的谱(指台站和探测器相同)
|
||||||
this.$emit('sendXeData', res.result.XeData)
|
Object.entries(result).forEach(([inputFileName, sampleInfo]) => {
|
||||||
res.result.XeData.forEach((item) => {
|
const { XeData, savedAnalysisResult, bProcessed, message } = sampleInfo
|
||||||
|
XeData.forEach((item) => {
|
||||||
item.conc = parseFloat(item.conc.toPrecision(6))
|
item.conc = parseFloat(item.conc.toPrecision(6))
|
||||||
item.concErr = parseFloat(item.concErr.toPrecision(6))
|
item.concErr = parseFloat(item.concErr.toPrecision(6))
|
||||||
item.lc = parseFloat(item.lc.toPrecision(6))
|
item.lc = parseFloat(item.lc.toPrecision(6))
|
||||||
item.mdc = parseFloat(item.mdc.toPrecision(6))
|
item.mdc = parseFloat(item.mdc.toPrecision(6))
|
||||||
})
|
})
|
||||||
this.$emit('reAnalyAll', true, res.result.XeData)
|
|
||||||
|
if (inputFileName == this.sample.inputFileName) {
|
||||||
|
this.$emit('sendXeData', XeData)
|
||||||
|
this.$emit('reAnalyAll', savedAnalysisResult, XeData)
|
||||||
|
this.handleReAnalyse(sampleInfo)
|
||||||
|
|
||||||
|
if (bProcessed) {
|
||||||
|
this.$message.success(message)
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning(res.message)
|
this.$message.warning(message)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
updateSampleData({
|
||||||
|
inputFileName,
|
||||||
|
key: 'XeData',
|
||||||
|
data: XeData,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
updateSampleData({
|
||||||
|
inputFileName,
|
||||||
|
key: 'savedAnalysisResult',
|
||||||
|
data: savedAnalysisResult,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.$message.warning(message)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// 右下角放大镜
|
// 右下角放大镜
|
||||||
|
@ -650,7 +718,7 @@ export default {
|
||||||
sample: {
|
sample: {
|
||||||
async handler(newVal, oldVal) {
|
async handler(newVal, oldVal) {
|
||||||
this.resultDisplay = []
|
this.resultDisplay = []
|
||||||
const sampleData = await this.$store.dispatch('GET_SAMPLE_DATA', newVal.inputFileName)
|
const sampleData = getSampleData(newVal.inputFileName)
|
||||||
if (sampleData) {
|
if (sampleData) {
|
||||||
this.cancelLastRequest()
|
this.cancelLastRequest()
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
|
@ -668,6 +736,7 @@ export default {
|
||||||
this.getSampleDetail_file()
|
this.getSampleDetail_file()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
await this.$nextTick()
|
||||||
this.$refs.betaGammaChartRef.handleUnzoom()
|
this.$refs.betaGammaChartRef.handleUnzoom()
|
||||||
},
|
},
|
||||||
immediate: true,
|
immediate: true,
|
||||||
|
@ -678,11 +747,6 @@ export default {
|
||||||
// this.currResultDisplay = newVal.XeData
|
// this.currResultDisplay = newVal.XeData
|
||||||
this.resultDisplay = cloneDeep(newVal.XeData) || []
|
this.resultDisplay = cloneDeep(newVal.XeData) || []
|
||||||
this.sortResultDisplay()
|
this.sortResultDisplay()
|
||||||
this.$store.commit('UPDATE_SAMPLE_DATA', {
|
|
||||||
inputFileName: this.sample.inputFileName,
|
|
||||||
key: 'XeData',
|
|
||||||
data: newVal.XeData,
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
// immediate: true,
|
// immediate: true,
|
||||||
deep: true,
|
deep: true,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { deleteAction } from '@/api/manage'
|
import { deleteAction } from '@/api/manage'
|
||||||
import store from '@/store'
|
import { removeSampleData } from '@/utils/SampleStore'
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -16,7 +16,7 @@ export const clearSampleCache = sampleList => {
|
||||||
params = { sampleFileName: fileName }
|
params = { sampleFileName: fileName }
|
||||||
}
|
}
|
||||||
deleteAction(url, params)
|
deleteAction(url, params)
|
||||||
store.commit('REMOVE_SAMPLE_DATA', fileName)
|
removeSampleData(fileName)
|
||||||
Vue.ls.remove(`CALIBRATION_GAMMA_${fileName}`)
|
Vue.ls.remove(`CALIBRATION_GAMMA_${fileName}`)
|
||||||
Vue.ls.remove(`CALIBRATION_BETA_${fileName}`)
|
Vue.ls.remove(`CALIBRATION_BETA_${fileName}`)
|
||||||
})
|
})
|
||||||
|
|
|
@ -327,7 +327,6 @@ export default {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.opts.notMerge = true
|
this.opts.notMerge = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
@ -565,13 +564,20 @@ export default {
|
||||||
// 3D 图表
|
// 3D 图表
|
||||||
histogramDataDList: {
|
histogramDataDList: {
|
||||||
handler(newVal) {
|
handler(newVal) {
|
||||||
const maxCount = Math.max(...newVal.map((item) => item.c))
|
let maxCount = 0
|
||||||
|
const data = []
|
||||||
|
for (const item of newVal) {
|
||||||
|
const { b, g, c } = item // 耗时较多
|
||||||
|
if (c > maxCount) maxCount = c
|
||||||
|
data.push([b, g, c])
|
||||||
|
}
|
||||||
|
|
||||||
this.threeDSurfaceOption.zAxis3D.max = Math.ceil(maxCount * 1.2)
|
this.threeDSurfaceOption.zAxis3D.max = Math.ceil(maxCount * 1.2)
|
||||||
this.threeDSurfaceOption.series.data = newVal.map((item) => [item.b, item.g, item.c]) // 设置3D surface数据
|
this.threeDSurfaceOption.series.data = data // 设置3D surface数据 // 第一次设置耗时较多
|
||||||
this.threeDSurfaceOption.visualMap.max = maxCount
|
this.threeDSurfaceOption.visualMap.max = maxCount
|
||||||
|
|
||||||
this.threeDScatterOption.zAxis3D.max = Math.ceil(maxCount * 1.2)
|
this.threeDScatterOption.zAxis3D.max = Math.ceil(maxCount * 1.2)
|
||||||
this.threeDScatterOption.series.data = newVal.map((item) => [item.b, item.g, item.c]) // 设置3D scatter数据
|
this.threeDScatterOption.series.data = data // 设置3D scatter数据
|
||||||
this.threeDScatterOption.visualMap.max = maxCount
|
this.threeDScatterOption.visualMap.max = maxCount
|
||||||
},
|
},
|
||||||
immediate: true,
|
immediate: true,
|
||||||
|
|
|
@ -228,6 +228,7 @@ import { updateBaseLine } from '@/utils/WasmHelper'
|
||||||
import RectList from './components/RectList.vue'
|
import RectList from './components/RectList.vue'
|
||||||
import { isNullOrUndefined } from '@/utils/util'
|
import { isNullOrUndefined } from '@/utils/util'
|
||||||
import { findNearPeak, getLineData, transformPointListData } from '@/utils/sampleHelper'
|
import { findNearPeak, getLineData, transformPointListData } from '@/utils/sampleHelper'
|
||||||
|
import { getSampleData } from '@/utils/SampleStore'
|
||||||
|
|
||||||
// 初始配置
|
// 初始配置
|
||||||
const initialOption = {
|
const initialOption = {
|
||||||
|
@ -514,7 +515,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getInfo() {
|
getInfo() {
|
||||||
this.option.series = []
|
this.option.series = []
|
||||||
this.thumbnailOption.series = []
|
this.thumbnailOption.series = []
|
||||||
this.list = []
|
this.list = []
|
||||||
|
@ -522,7 +523,7 @@ export default {
|
||||||
|
|
||||||
const { inputFileName } = this.sampleData
|
const { inputFileName } = this.sampleData
|
||||||
|
|
||||||
const currSampleDetailInfo = await this.$store.dispatch('GET_SAMPLE_DATA', inputFileName)
|
const currSampleDetailInfo = getSampleData(inputFileName)
|
||||||
const {
|
const {
|
||||||
data: { allData, shadowChannelChart, shapeChannelData, peak, BaseCtrls, barChart },
|
data: { allData, shadowChannelChart, shapeChannelData, peak, BaseCtrls, barChart },
|
||||||
} = currSampleDetailInfo
|
} = currSampleDetailInfo
|
||||||
|
@ -583,8 +584,8 @@ export default {
|
||||||
this.handleResetChart()
|
this.handleResetChart()
|
||||||
},
|
},
|
||||||
|
|
||||||
async beforeModalOpen() {
|
beforeModalOpen() {
|
||||||
await this.getInfo()
|
this.getInfo()
|
||||||
this.reset()
|
this.reset()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1562,14 +1563,16 @@ export default {
|
||||||
try {
|
try {
|
||||||
this.$set(this.selectedTableItem, '_deleting', true)
|
this.$set(this.selectedTableItem, '_deleting', true)
|
||||||
const { inputFileName: fileName } = this.sampleData
|
const { inputFileName: fileName } = this.sampleData
|
||||||
const { success, message } = await postAction('/gamma/deleteNuclide', {
|
const { success, result, message } = await postAction('/gamma/deleteNuclide', {
|
||||||
curRow: this.curRow,
|
curRow: this.curRow,
|
||||||
nuclideName: this.model.identifiedNuclide,
|
nuclideName: this.model.identifiedNuclide,
|
||||||
fileName,
|
fileName,
|
||||||
list_identify: nuclides,
|
list_identify: nuclides,
|
||||||
})
|
})
|
||||||
if (success) {
|
if (success) {
|
||||||
nuclides.splice(findIndex, 1)
|
const { identify, table } = result
|
||||||
|
this.selectedTableItem.nuclides = identify
|
||||||
|
this.list = table
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(message)
|
this.$message.error(message)
|
||||||
}
|
}
|
||||||
|
|
|
@ -629,7 +629,7 @@ export default {
|
||||||
this.$bus.$on('betaRefresh', this.getData)
|
this.$bus.$on('betaRefresh', this.getData)
|
||||||
this.getData()
|
this.getData()
|
||||||
},
|
},
|
||||||
destroyed() {
|
beforeDestroy() {
|
||||||
this.$bus.$off('betaRefresh', this.handleReset)
|
this.$bus.$off('betaRefresh', this.handleReset)
|
||||||
this.$bus.$off('betaRefresh', this.getData)
|
this.$bus.$off('betaRefresh', this.getData)
|
||||||
},
|
},
|
||||||
|
|
|
@ -50,6 +50,7 @@ import { postAction } from '@/api/manage'
|
||||||
import BetaDetectorCalibration from './components/BetaDetectorCalibration.vue'
|
import BetaDetectorCalibration from './components/BetaDetectorCalibration.vue'
|
||||||
import GammaDetectorCalibration from './components/GammaDetectorCalibration.vue'
|
import GammaDetectorCalibration from './components/GammaDetectorCalibration.vue'
|
||||||
import TitleOverBorder from '@/views/spectrumAnalysis/components/TitleOverBorder.vue'
|
import TitleOverBorder from '@/views/spectrumAnalysis/components/TitleOverBorder.vue'
|
||||||
|
import { removeSampleData } from '@/utils/SampleStore'
|
||||||
export default {
|
export default {
|
||||||
components: { BetaDetectorCalibration, GammaDetectorCalibration, TitleOverBorder },
|
components: { BetaDetectorCalibration, GammaDetectorCalibration, TitleOverBorder },
|
||||||
mixins: [ModalMixin, SampleDataMixin],
|
mixins: [ModalMixin, SampleDataMixin],
|
||||||
|
@ -153,11 +154,15 @@ export default {
|
||||||
item.mdc = parseFloat(item.mdc.toPrecision(6))
|
item.mdc = parseFloat(item.mdc.toPrecision(6))
|
||||||
})
|
})
|
||||||
this.$emit('sendXeData', res.result.XeData)
|
this.$emit('sendXeData', res.result.XeData)
|
||||||
this.$emit('reAnalyCurr', true, res.result.XeData)
|
this.$emit('reAnalyCurr', res.result.savedAnalysisResult, res.result.XeData)
|
||||||
this.$message.success('Analyse Success!')
|
|
||||||
this.isReanlyze = true
|
this.isReanlyze = true
|
||||||
this.handleExit()
|
this.handleExit()
|
||||||
this.$bus.$emit('ReAnalyses', res.result)
|
this.$bus.$emit('ReAnalyses', res.result)
|
||||||
|
if (res.result.bProcessed) {
|
||||||
|
this.$message.success(res.result.message)
|
||||||
|
} else {
|
||||||
|
this.$message.warning(res.result.message)
|
||||||
|
}
|
||||||
|
|
||||||
if (this.newCalibrationIsAppliedTo == 'AllSpectrum') {
|
if (this.newCalibrationIsAppliedTo == 'AllSpectrum') {
|
||||||
let sameStation = matchedSampleList.filter(
|
let sameStation = matchedSampleList.filter(
|
||||||
|
@ -175,8 +180,7 @@ export default {
|
||||||
// 清理相同台站的缓存
|
// 清理相同台站的缓存
|
||||||
clearSameStationCache(sampleList) {
|
clearSameStationCache(sampleList) {
|
||||||
sampleList.forEach(({ inputFileName }) => {
|
sampleList.forEach(({ inputFileName }) => {
|
||||||
console.log('inputFileName>>' + inputFileName)
|
removeSampleData(inputFileName)
|
||||||
this.$store.commit('REMOVE_SAMPLE_DATA', inputFileName)
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 相同台站能谱缓存一样的Calibration数据 20231115:xiao
|
// 相同台站能谱缓存一样的Calibration数据 20231115:xiao
|
||||||
|
|
|
@ -136,6 +136,7 @@ import { readFile, zipFile } from '@/utils/file'
|
||||||
import { findNearPeak } from '@/utils/sampleHelper'
|
import { findNearPeak } from '@/utils/sampleHelper'
|
||||||
import { add, subtract } from 'xe-utils/methods'
|
import { add, subtract } from 'xe-utils/methods'
|
||||||
import { PHDParser, isSample, getSampleTypeIdentify } from '@/utils/phdHelper'
|
import { PHDParser, isSample, getSampleTypeIdentify } from '@/utils/phdHelper'
|
||||||
|
import { addSampleData, getSampleData } from '@/utils/SampleStore'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
|
@ -190,8 +191,8 @@ export default {
|
||||||
stripSumOrCutLine: null,
|
stripSumOrCutLine: null,
|
||||||
stripReferenceLine: null,
|
stripReferenceLine: null,
|
||||||
}
|
}
|
||||||
;(this.peakList = []), // Peak 列表(非点位)
|
this.peakList = [] // Peak 列表(非点位)
|
||||||
(this.baseCtrls = {}) // BaseCtrls
|
this.baseCtrls = {} // BaseCtrls
|
||||||
|
|
||||||
return {
|
return {
|
||||||
abc: false,
|
abc: false,
|
||||||
|
@ -253,7 +254,7 @@ export default {
|
||||||
window.addEventListener('keydown', this.handleKeyboardEvent)
|
window.addEventListener('keydown', this.handleKeyboardEvent)
|
||||||
window.addEventListener('click', this.closePeakInfomationTooltip)
|
window.addEventListener('click', this.closePeakInfomationTooltip)
|
||||||
},
|
},
|
||||||
destroyed() {
|
beforeDestroy() {
|
||||||
this.cancelLastRequest()
|
this.cancelLastRequest()
|
||||||
|
|
||||||
this.$bus.$off('gammaRefresh', this.handleRefresh)
|
this.$bus.$off('gammaRefresh', this.handleRefresh)
|
||||||
|
@ -263,8 +264,16 @@ export default {
|
||||||
window.removeEventListener('click', this.closePeakInfomationTooltip)
|
window.removeEventListener('click', this.closePeakInfomationTooltip)
|
||||||
|
|
||||||
if (this.qcFlagsTimer) {
|
if (this.qcFlagsTimer) {
|
||||||
clearTimeout(this.qcFlagsTimer)
|
window.clearTimeout(this.qcFlagsTimer)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.closeWebSocket()
|
||||||
|
|
||||||
|
if (this.websocketTimer) {
|
||||||
|
window.clearTimeout(this.websocketTimer)
|
||||||
|
}
|
||||||
|
|
||||||
|
this.websock = null
|
||||||
},
|
},
|
||||||
deactivated() {
|
deactivated() {
|
||||||
// Object.keys(this.subOperatorsState).forEach(k => {
|
// Object.keys(this.subOperatorsState).forEach(k => {
|
||||||
|
@ -464,10 +473,10 @@ export default {
|
||||||
let token = Vue.ls.get(ACCESS_TOKEN)
|
let token = Vue.ls.get(ACCESS_TOKEN)
|
||||||
this.websock = new WebSocket(url, [token])
|
this.websock = new WebSocket(url, [token])
|
||||||
//update-end-author:taoyan date:2022-4-22 for: v2.4.6 的 websocket 服务端,存在性能和安全问题。 #3278
|
//update-end-author:taoyan date:2022-4-22 for: v2.4.6 的 websocket 服务端,存在性能和安全问题。 #3278
|
||||||
this.websock.onopen = this.websocketOnopen
|
this.websock.addEventListener('open', this.websocketOnopen)
|
||||||
this.websock.onerror = this.websocketOnerror
|
this.websock.addEventListener('error', this.websocketOnerror)
|
||||||
this.websock.onmessage = this.websocketOnmessage
|
this.websock.addEventListener('message', this.websocketOnmessage)
|
||||||
this.websock.onclose = this.websocketOnclose
|
this.websock.addEventListener('close', this.websocketOnclose)
|
||||||
},
|
},
|
||||||
websocketOnopen: function () {
|
websocketOnopen: function () {
|
||||||
// console.log('WebSocket连接成功1231')
|
// console.log('WebSocket连接成功1231')
|
||||||
|
@ -493,12 +502,25 @@ export default {
|
||||||
if (that.lockReconnect) return
|
if (that.lockReconnect) return
|
||||||
that.lockReconnect = true
|
that.lockReconnect = true
|
||||||
//没连接上会一直重连,设置延迟避免请求过多
|
//没连接上会一直重连,设置延迟避免请求过多
|
||||||
setTimeout(function () {
|
this.websocketTimer = setTimeout(function () {
|
||||||
console.info('尝试重连...')
|
console.info('尝试重连...')
|
||||||
that.initWebSocket()
|
that.initWebSocket()
|
||||||
that.lockReconnect = false
|
that.lockReconnect = false
|
||||||
}, 20000)
|
}, 20000)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 关闭websocket
|
||||||
|
closeWebSocket() {
|
||||||
|
if (this.websock) {
|
||||||
|
this.websock.removeEventListener('open', this.websocketOnopen)
|
||||||
|
this.websock.removeEventListener('error', this.websocketOnerror)
|
||||||
|
this.websock.removeEventListener('message', this.websocketOnmessage)
|
||||||
|
this.websock.removeEventListener('close', this.websocketOnclose)
|
||||||
|
this.websock.close()
|
||||||
|
this.websock = null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// 获取样品详情
|
// 获取样品详情
|
||||||
async getSampleDetail() {
|
async getSampleDetail() {
|
||||||
const { dbName, sampleId, analyst } = this.sample
|
const { dbName, sampleId, analyst } = this.sample
|
||||||
|
@ -579,7 +601,7 @@ export default {
|
||||||
dataProcess(result, flag) {
|
dataProcess(result, flag) {
|
||||||
const { inputFileName } = this.sample
|
const { inputFileName } = this.sample
|
||||||
|
|
||||||
this.$store.commit('ADD_SAMPLE_DATA', {
|
addSampleData({
|
||||||
inputFileName,
|
inputFileName,
|
||||||
data: result,
|
data: result,
|
||||||
from: flag,
|
from: flag,
|
||||||
|
@ -2057,11 +2079,11 @@ export default {
|
||||||
immediate: true,
|
immediate: true,
|
||||||
},
|
},
|
||||||
sample: {
|
sample: {
|
||||||
async handler(newVal, oldVal) {
|
handler(newVal, oldVal) {
|
||||||
console.log('newValnewVal', newVal)
|
console.log('newValnewVal', newVal)
|
||||||
this.graphAssistance.axisType = 'Channel'
|
this.graphAssistance.axisType = 'Channel'
|
||||||
this.handleResetState()
|
this.handleResetState()
|
||||||
const sampleData = await this.$store.dispatch('GET_SAMPLE_DATA', newVal.inputFileName)
|
const sampleData = getSampleData(newVal.inputFileName)
|
||||||
if (sampleData) {
|
if (sampleData) {
|
||||||
this.cancelLastRequest()
|
this.cancelLastRequest()
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
|
|
|
@ -63,6 +63,7 @@
|
||||||
:sampleInfo="sampleInfo"
|
:sampleInfo="sampleInfo"
|
||||||
:sample="sampleData"
|
:sample="sampleData"
|
||||||
:analyseCurrentSpectrum="analyseCurrentSpectrumData"
|
:analyseCurrentSpectrum="analyseCurrentSpectrumData"
|
||||||
|
:sampleList="sampleList"
|
||||||
/>
|
/>
|
||||||
<!-- Beta-Gamma 分析 -->
|
<!-- Beta-Gamma 分析 -->
|
||||||
<div v-else class="empty">Please Select a Sample</div>
|
<div v-else class="empty">Please Select a Sample</div>
|
||||||
|
@ -281,6 +282,7 @@ import BGLogViewer from './components/Modals/BetaGammaModals/BGLogViewer.vue'
|
||||||
|
|
||||||
import { saveAs } from 'file-saver'
|
import { saveAs } from 'file-saver'
|
||||||
import CompareFromDbModal from './components/Modals/CompareFromDBModal.vue'
|
import CompareFromDbModal from './components/Modals/CompareFromDBModal.vue'
|
||||||
|
import { clearSampleData, getSampleData, updateSampleDataAnaly } from '@/utils/SampleStore'
|
||||||
|
|
||||||
// 分析类型
|
// 分析类型
|
||||||
const ANALYZE_TYPE = {
|
const ANALYZE_TYPE = {
|
||||||
|
@ -465,9 +467,9 @@ export default {
|
||||||
window.addEventListener('beforeunload', this.handleCleanAll)
|
window.addEventListener('beforeunload', this.handleCleanAll)
|
||||||
},
|
},
|
||||||
|
|
||||||
destroyed() {
|
beforeDestroy() {
|
||||||
this.$bus.$off('reanalyse', this.handleReanalyse)
|
this.$bus.$off('reanalyse', this.handleReanalyse)
|
||||||
this.$store.commit('CLEAR_SAMPLE_DATA')
|
clearSampleData()
|
||||||
this.handleCleanAll()
|
this.handleCleanAll()
|
||||||
window.removeEventListener('beforeunload', this.handleCleanAll)
|
window.removeEventListener('beforeunload', this.handleCleanAll)
|
||||||
},
|
},
|
||||||
|
@ -475,11 +477,13 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
getReAnalyCurr(flag, val) {
|
getReAnalyCurr(flag, val) {
|
||||||
this.isReAnalyed_beta = flag
|
this.isReAnalyed_beta = flag
|
||||||
this.params_toDB.savedAnalysisResult = true
|
this.params_toDB.savedAnalysisResult = flag
|
||||||
this.resultDisplayFlag = val
|
this.resultDisplayFlag = val
|
||||||
},
|
},
|
||||||
getReAnalyAll(val) {
|
getReAnalyAll(flag, val) {
|
||||||
|
this.isReAnalyed_beta = flag
|
||||||
this.resultDisplayFlag = val
|
this.resultDisplayFlag = val
|
||||||
|
this.params_toDB.savedAnalysisResult = flag
|
||||||
},
|
},
|
||||||
handleReAnalyed(val) {
|
handleReAnalyed(val) {
|
||||||
this.isReAnalyed_gamma = val
|
this.isReAnalyed_gamma = val
|
||||||
|
@ -501,6 +505,7 @@ export default {
|
||||||
}
|
}
|
||||||
this.resultDisplayFlag = arg
|
this.resultDisplayFlag = arg
|
||||||
this.params_toDB.stationName = val
|
this.params_toDB.stationName = val
|
||||||
|
this.params_toDB.savedAnalysisResult = flag
|
||||||
this.isReAnalyed_beta = this.isReAnalyed_beta ? this.isReAnalyed_beta : flag
|
this.isReAnalyed_beta = this.isReAnalyed_beta ? this.isReAnalyed_beta : flag
|
||||||
},
|
},
|
||||||
getCheckFlag(val) {
|
getCheckFlag(val) {
|
||||||
|
@ -509,10 +514,10 @@ export default {
|
||||||
this.params_toDB.checkDet = val.checkDet
|
this.params_toDB.checkDet = val.checkDet
|
||||||
},
|
},
|
||||||
getXeData(val) {
|
getXeData(val) {
|
||||||
if (val && val.length) {
|
// if (val && val.length) {
|
||||||
this.$set(this.analyseCurrentSpectrumData, 'XeData', val)
|
this.$set(this.analyseCurrentSpectrumData, 'XeData', val)
|
||||||
this.resultDisplayFlag = val
|
this.resultDisplayFlag = val
|
||||||
}
|
// }
|
||||||
},
|
},
|
||||||
// formDB 来源 吧接口返回的文件名称添加到sampleData
|
// formDB 来源 吧接口返回的文件名称添加到sampleData
|
||||||
getFiles(val) {
|
getFiles(val) {
|
||||||
|
@ -605,12 +610,13 @@ export default {
|
||||||
// B是beta-gamma P G是gamma
|
// B是beta-gamma P G是gamma
|
||||||
if (sample.sampleType == 'B') {
|
if (sample.sampleType == 'B') {
|
||||||
this.analysisType = ANALYZE_TYPE.BETA_GAMMA
|
this.analysisType = ANALYZE_TYPE.BETA_GAMMA
|
||||||
|
const sampleData = getSampleData(sample.inputFileName)
|
||||||
|
this.params_toDB.savedAnalysisResult = sampleData ? sampleData.data.savedAnalysisResult : false
|
||||||
} else {
|
} else {
|
||||||
this.analysisType = ANALYZE_TYPE.GAMMA
|
this.analysisType = ANALYZE_TYPE.GAMMA
|
||||||
}
|
}
|
||||||
this.sampleData = this.newSampleData = sample
|
this.sampleData = this.newSampleData = sample
|
||||||
this.currSampleDet = this.allSampleDet[sample.inputFileName]
|
this.currSampleDet = this.allSampleDet[sample.inputFileName]
|
||||||
this.params_toDB.savedAnalysisResult = sample.sampleId ? true : false
|
|
||||||
this.params_toDB.comment = ''
|
this.params_toDB.comment = ''
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -841,7 +847,6 @@ export default {
|
||||||
* @param { 'all' | 'current' } type
|
* @param { 'all' | 'current' } type
|
||||||
*/
|
*/
|
||||||
handleSavePHDToFile(type) {
|
handleSavePHDToFile(type) {
|
||||||
console.log('%c [ savePHDToFile ]-162', 'font-size:13px; background:pink; color:#bf2c9f;', type)
|
|
||||||
if (this.isGamma) {
|
if (this.isGamma) {
|
||||||
if (type == 'current') {
|
if (type == 'current') {
|
||||||
let params = {
|
let params = {
|
||||||
|
@ -901,7 +906,7 @@ export default {
|
||||||
try {
|
try {
|
||||||
const { success, result, message } = await postAction(`/gamma/Reprocessing?fileName=${fileNames[0]}`)
|
const { success, result, message } = await postAction(`/gamma/Reprocessing?fileName=${fileNames[0]}`)
|
||||||
if (success) {
|
if (success) {
|
||||||
this.$store.commit('UPDATE_SAMPLE_DATA_ANALY', {
|
updateSampleDataAnaly({
|
||||||
inputFileName: fileNames[0],
|
inputFileName: fileNames[0],
|
||||||
data: result,
|
data: result,
|
||||||
})
|
})
|
||||||
|
@ -1759,13 +1764,13 @@ export default {
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
.spectrum-analysis-operators-dropdown-overlay {
|
.spectrum-analysis-operators-dropdown-overlay {
|
||||||
background-color: #03353f;
|
background-color: #03353f;
|
||||||
|
z-index: 999;
|
||||||
|
|
||||||
.ant-menu {
|
.ant-menu {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
border-right: 0;
|
border-right: 0;
|
||||||
max-height: calc(100vh - 506px);
|
|
||||||
overflow: hidden auto;
|
|
||||||
|
|
||||||
&-submenu {
|
&-submenu {
|
||||||
&-active {
|
&-active {
|
||||||
|
|
|
@ -196,11 +196,11 @@
|
||||||
</custom-modal>
|
</custom-modal>
|
||||||
<!-- 增加/编辑排班弹窗结束 -->
|
<!-- 增加/编辑排班弹窗结束 -->
|
||||||
<custom-modal title="Failure record" v-model="visibleRes" :footer="null">
|
<custom-modal title="Failure record" v-model="visibleRes" :footer="null">
|
||||||
<custom-table size="middle" :columns="columns" :list="dataSource">
|
<a-table size="middle" :columns="columns" :dataSource="dataSource" :pagination="false" :scroll="{ y: 600 }">
|
||||||
<template slot="index" slot-scope="{ index }">
|
<template slot="index" slot-scope="{ index }">
|
||||||
{{ index + 1 }}
|
{{ index + 1 }}
|
||||||
</template>
|
</template>
|
||||||
</custom-table>
|
</a-table>
|
||||||
</custom-modal>
|
</custom-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user