Neither completer or goto command worked.
2019-10-16 15:28:29,551 - DEBUG - Global extra conf not loaded or no function YcmCorePreload
2019-10-16 15:28:29,613 - INFO - Received ready request
2019-10-16 15:28:29,632 - INFO - Received event notification
2019-10-16 15:28:29,632 - DEBUG - Event name: BufferVisit
2019-10-16 15:28:29,633 - ERROR - Semantic completion not available for ['startify']
Traceback (most recent call last):
File "/home/qk/.vim/plugged/YouCompleteMe/third_party/ycmd/ycmd/server_state.py", line 111, in FiletypeCompletionAvailable
self.GetFiletypeCompleter( filetypes )
File "/home/qk/.vim/plugged/YouCompleteMe/third_party/ycmd/ycmd/server_state.py", line 100, in GetFiletypeCompleter
current_filetypes ) )
ValueError: No semantic completer exists for filetypes: ['startify']
2019-10-16 15:28:29,635 - INFO - Received event notification
2019-10-16 15:28:29,635 - DEBUG - Event name: FileReadyToParse
2019-10-16 15:28:29,635 - INFO - Adding buffer identifiers for file: /home/qk/Workspace/stability/vue/branch/v0.0.1/1
2019-10-16 15:28:29,636 - ERROR - Semantic completion not available for ['startify']
Traceback (most recent call last):
File "/home/qk/.vim/plugged/YouCompleteMe/third_party/ycmd/ycmd/server_state.py", line 111, in FiletypeCompletionAvailable
self.GetFiletypeCompleter( filetypes )
File "/home/qk/.vim/plugged/YouCompleteMe/third_party/ycmd/ycmd/server_state.py", line 100, in GetFiletypeCompleter
current_filetypes ) )
ValueError: No semantic completer exists for filetypes: ['startify']
2019-10-16 15:28:29,746 - INFO - Received filetype completion available request
2019-10-16 15:28:29,746 - ERROR - Semantic completion not available for ['startify']
Traceback (most recent call last):
File "/home/qk/.vim/plugged/YouCompleteMe/third_party/ycmd/ycmd/server_state.py", line 111, in FiletypeCompletionAvailable
self.GetFiletypeCompleter( filetypes )
File "/home/qk/.vim/plugged/YouCompleteMe/third_party/ycmd/ycmd/server_state.py", line 100, in GetFiletypeCompleter
current_filetypes ) )
ValueError: No semantic completer exists for filetypes: ['startify']
2019-10-16 15:28:33,225 - INFO - Received event notification
2019-10-16 15:28:33,225 - DEBUG - Event name: BufferUnload
2019-10-16 15:28:33,226 - ERROR - Semantic completion not available for ['startify']
Traceback (most recent call last):
File "/home/qk/.vim/plugged/YouCompleteMe/third_party/ycmd/ycmd/server_state.py", line 111, in FiletypeCompletionAvailable
self.GetFiletypeCompleter( filetypes )
File "/home/qk/.vim/plugged/YouCompleteMe/third_party/ycmd/ycmd/server_state.py", line 100, in GetFiletypeCompleter
current_filetypes ) )
ValueError: No semantic completer exists for filetypes: ['startify']
2019-10-16 15:28:33,626 - INFO - Received event notification
2019-10-16 15:28:33,628 - DEBUG - Event name: BufferVisit
2019-10-16 15:28:33,810 - INFO - Received event notification
2019-10-16 15:28:33,811 - DEBUG - Event name: FileReadyToParse
2019-10-16 15:28:33,811 - INFO - Adding buffer identifiers for file: /home/qk/Workspace/stability/vue/branch/v0.0.1/src/components/dialog/productMonitor.vue
2019-10-16 15:28:33,858 - DEBUG - No Settings function defined in /home/qk/.vim/.ycm_extra_conf.py
2019-10-16 15:28:33,858 - INFO - Starting vueCompleter: ['/usr/local/bin/vls']
2019-10-16 15:28:33,863 - INFO - vueCompleter started
2019-10-16 15:28:33,863 - DEBUG - TX: Sending message: b'Content-Length: 379\r\n\r\n{"id":1,"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"textDocument":{"completion":{"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}}}},"initializationOptions":{},"processId":15100,"rootPath":"/home/qk/Workspace/stability/vue/branch/v0.0.1","rootUri":"file:///home/qk/Workspace/stability/vue/branch/v0.0.1"}}'
2019-10-16 15:28:33,949 - INFO - Received filetype completion available request
2019-10-16 15:28:34,856 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"window/logMessage","params":{"type":4,"message":"Loaded bundled [email protected]."}}'
2019-10-16 15:28:34,887 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"window/logMessage","params":{"type":4,"message":"Vetur initialized"}}'
2019-10-16 15:28:34,887 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","id":1,"result":{"capabilities":{"textDocumentSync":1,"completionProvider":{"resolveProvider":true,"triggerCharacters":[".",":","<","\\"","\'","/","@","*"]},"signatureHelpProvider":{"triggerCharacters":["("]},"documentFormattingProvider":false,"hoverProvider":true,"documentHighlightProvider":true,"documentLinkProvider":{"resolveProvider":false},"documentSymbolProvider":true,"definitionProvider":true,"referencesProvider":true,"codeActionProvider":true,"colorProvider":true}}}'
2019-10-16 15:28:34,887 - INFO - Language server requires sync type of Full
2019-10-16 15:28:34,887 - DEBUG - vue: Server declares trigger characters: ['.', ':', '<', '"', "'", '/', '@', '*']
2019-10-16 15:28:34,887 - INFO - vue: Using trigger characters for semantic triggers: .,:,<,",',/,@,*
2019-10-16 15:28:34,888 - DEBUG - TX: Sending notification: b'Content-Length: 52\r\n\r\n{"jsonrpc":"2.0","method":"initialized","params":{}}'
2019-10-16 15:28:34,888 - DEBUG - TX: Sending notification: b'Content-Length: 86\r\n\r\n{"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{}}}'
2019-10-16 15:28:34,888 - DEBUG - Refreshing file /home/qk/Workspace/stability/vue/branch/v0.0.1/src/components/dialog/productMonitor.vue: State is Open/action Open
2019-10-16 15:28:34,889 - DEBUG - TX: Sending notification: b'Content-Length: 103782\r\n\r\n{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"vue","text":"<template>\\n <span class=\\"productMonitor\\" :style=\\"{padding:0,margin:0,marginLeft:type==\'text\' ? \'0px\':0}\\">\\n <el-button v-if=\\"type==\'text\'\\" type=\\"text\\" :disabled=\\"testObjSelDataList.length <= 0\\" @click.native=\\"getConfigMonitor(productData)\\">\\n <font-awesome-icon title=\\"\\u76d1\\u63a7\\u914d\\u7f6e\\" :icon=\\"[\'fas\', \'cog\']\\"/> \\n \\u76d1\\u63a7\\u914d\\u7f6e\\n </el-button>\\n <el-button v-else-if=\\"type==\'normal\'\\" :disabled=\\"testObjSelDataList.length <= 0\\" @click.native=\\"getConfigMonitor(productData)\\">\\n <font-awesome-icon title=\\"\\u76d1\\u63a7\\u914d\\u7f6e\\" :icon=\\"[\'fas\', \'cog\']\\"/>\\n \\u76d1\\u63a7\\u914d\\u7f6e \\n </el-button>\\n <div v-else @click=\\"getConfigMonitor(productData)\\">\\n \\u76d1\\u63a7\\u914d\\u7f6e \\n </div>\\n <el-dialog \\n :title=\\"monitorTitle\\"\\n :show-close=\\"false\\"\\n :close-on-click-modal=\\"false\\"\\n :close-on-press-escape=\\"false\\"\\n :append-to-body=\\"true\\"\\n width=\\"60%\\"\\n :visible.sync=\\"monitorSetModel\\">\\n <div class=\\"productMonitor-dialog\\">\\n <el-row\\n v-show=\\"!isViewKeyDialogShow\\">\\n <el-form size=\\"small\\" class=\\"demo-form-inline\\">\\n <el-form-item label=\\"\\u662f\\u5426\\u4ece\\u5176\\u5b83\\u8bbe\\u5907\\u540c\\u6b65\\u914d\\u7f6e\\uff1a\\">\\n <el-switch\\n @change=\\"handelSyncConfigSwitch\\"\\n v-model=\\"syncConfigSwitch\\">\\n </el-switch>\\n <el-tooltip \\n class=\\"item\\" \\n effect=\\"dark\\" \\n content=\\"\\u5f53\\u9009\\u62e9\\u4ece\\u5176\\u5b83\\u8bbe\\u5907\\u540c\\u6b65\\u4fe1\\u606f\\u7684\\u65f6\\u5019\\uff0c\\u8bf7\\u9009\\u62e9\\u8bbe\\u5907\\uff0c\\u9009\\u62e9\\u540e\\u4e0b\\u9762\\u5c55\\u793a\\u7684\\u662f\\u8981\\u540c\\u6b65\\u7684\\u8bbe\\u5907\\u7684\\u914d\\u7f6e\\uff1b\\u5982\\u6ca1\\u6709\\u9009\\u62e9\\u8bbe\\u5907\\uff0c\\u5219\\u6309\\u7167\\u4e0b\\u9762\\u7684\\u914d\\u7f6e\\u8fdb\\u884c\\u8bbe\\u7f6e\\uff01\\" \\n placement=\\"right\\">\\n <i class=\\"el-icon-question\\" style=\'color:#e6a23c;margin-left:5px;\'></i> \\n </el-tooltip>\\n <el-select \\n v-model=\\"syncBindValue\\" \\n v-show=\\"syncConfigSwitch\\" \\n filterable\\n clearable\\n :loading=\\"configLoading\\"\\n :loading-text=\\"configLoadingText\\"\\n placeholder=\\"\\u8bf7\\u9009\\u62e9\\u8bbe\\u5907\\uff0c\\u652f\\u6301\\u6309\\u7167\\u8bbe\\u5907\\u540d\\u79f0\\u8fdb\\u884c\\u641c\\u7d22\\"\\n @change=\\"getDeviceMonitorConfig\\"\\n @visible-change=\\"getSyncNeedData\\"\\n style=\\"margin-left:25px; width:400px\\">\\n <el-option\\n v-for=\\"item in syncNeedData\\"\\n :key=\\"item.tlabObjectId\\"\\n :label=\\"item.name\\"\\n :value=\\"item\\"\\n >\\n <span style=\\"float: left\\">\\u540d\\u79f0: {{ item.name }}</span>\\n <span style=\\"float: right; color: #8492a6; font-size: 13px\\">IP: {{ item.ip }}</span>\\n </el-option>\\n </el-select>\\n </el-form-item>\\n </el-form>\\n <el-form size=\\"small\\" class=\\"demo-form-inline\\">\\n <el-form-item label=\\"\\u90ae\\u4ef6\\u901a\\u77e5\\uff1a\\">\\n <span style=\\"font-size:10px;color:#e6a23c;\\">\\uff08\\u7ea2\\u8272 <span style=\\"color:red\\">*</span> \\u53f7\\u4e3a\\u8be5\\u8fed\\u4ee3\\u4efb\\u52a1\\u7684\\u6210\\u5458\\uff09</span>\\n <user-select-form \\n @changeSelected=\\"getManager\\"\\n :shareData=\\"email_list\\" \\n :shareDataLabel=\\"email_list_map\\"\\n :sourceType=\\"sourceType\\">\\n </user-select-form>\\n </el-form-item>\\n </el-form>\\n <el-checkbox-group v-model=\\"checkList\\" style=\\"margin-bottom:15px;\\" @change=\\"getTypes\\">\\n <el-checkbox label=\\"\\u57fa\\u672c\\u76d1\\u63a7\\"></el-checkbox>\\n <el-checkbox label=\\"\\u5b9e\\u65f6\\u76d1\\u63a7\\"></el-checkbox>\\n <el-checkbox label=\\"\\u5185\\u5b58\\u6cc4\\u6f0f\\u76d1\\u63a7\\"></el-checkbox>\\n <el-checkbox label=\\"\\u8fdb\\u7a0b\\u76d1\\u63a7\\"></el-checkbox>\\n <el-checkbox label=\\"\\u98ce\\u6247\\u76d1\\u63a7\\"></el-checkbox>\\n <el-checkbox label=\\"\\u6e29\\u5ea6\\u76d1\\u63a7\\"></el-checkbox>\\n <el-checkbox label=\\"\\u7535\\u6e90\\u76d1\\u63a7\\"></el-checkbox>\\n <el-checkbox label=\\"\\u7f51\\u7edc\\u72b6\\u6001\\"></el-checkbox>\\n <el-checkbox label=\\"GPU\\u76d1\\u63a7\\"></el-checkbox>\\n <el-checkbox label=\\"\\u4e3b\\u63a7/\\u5b50\\u7cfb\\u7edf\\u7f51\\u7edc\\u3001pcie\\u72b6\\u6001\\"></el-checkbox>\\n <el-checkbox label=\\"\\u4e32\\u53e3\\u65e5\\u5fd7\\u76d1\\u63a7\\"></el-checkbox>\\n <el-checkbox label=\\"\\u8fdc\\u7a0b\\u65e5\\u5fd7\\"></el-checkbox>\\n <el-checkbox label=\\"\\u7cfb\\u7edf\\u65e5\\u5fd7\\"></el-checkbox>\\n <el-checkbox label=\\"core\\u6587\\u4ef6\\"></el-checkbox>\\n </el-checkbox-group>\\n <el-tabs v-model=\\"monitorActiveName\\" @tab-click=\\"tagClick\\">\\n <el-tab-pane label=\\"\\u57fa\\u672c\\u76d1\\u63a7\\" v-if=\\"checkList.indexOf(\'\\u57fa\\u672c\\u76d1\\u63a7\') != -1\\" name=\\"basicMonitor\\">\\n <el-table \\n class=\\"monitorTable\\"\\n :data=\\"monitorData\\" \\n border\\n size=\\"mini\\"\\n header-cell-class-name=\\"tableHeaderClass\\"\\n height=\\"350\\"\\n style=\\"width: 100%\\">\\n <el-table-column :show-overflow-tooltip=\\"true\\" prop=\\"category_display\\" label=\\"\\u76d1\\u63a7\\u9879\\" width=\\"100px\\"></el-table-column>\\n <el-table-column prop=\\"is_open\\" label=\\"\\u662f\\u5426\\u5f00\\u542f\\u76d1\\u63a7\\">\\n <template slot-scope=\\"scope\\">\\n <el-switch \\n :title=\\"scope.row.category_display == \'\\u65ad\\u7f51\\u76d1\\u63a7\'?\'\\u7981\\u6b62\\u5173\\u95ed\\u65ad\\u7f51\\u76d1\\u63a7\':\'\'\\"\\n :disabled=\\"scope.row.category_display == \'\\u65ad\\u7f51\\u76d1\\u63a7\'\\"\\n v-model=\\"scope.row.is_open\\"\\n @change=\\"handelBasicOpenMonitor($event,scope.row)\\"\\n active-text=\\"\\" inactive-text=\\"\\">\\n </el-switch>\\n </template>\\n </el-table-column>\\n <el-table-column label=\\"\\u9608\\u503c\\">\\n <template slot-scope=\\"scope\\">\\n <span v-if=\\"scope.row.category != \'deviceReboot\' && scope.row.category != \'disconnect_net\'\\">\\n \\u4f7f\\u7528\\u7387 > \\n <el-input-number\\n v-model=\\"scope.row.threshold.max_value\\"\\n :disabled=\\"!scope.row.is_open\\"\\n title=\\"\\u8bf7\\u5148\\u5f00\\u542f\\u76d1\\u63a7\\"\\n size=\\"small\\" \\n style=\\"width:80px\\" \\n :controls=\\"false\\"\\n :min=\\"1\\"\\n :max=\\"100\\">\\n </el-input-number> % \\u6216\\n \\u4f7f\\u7528\\u7387 <\\n <el-input-number\\n v-model=\\"scope.row.threshold.min_value\\"\\n :disabled=\\"!scope.row.is_open\\"\\n title=\\"\\u8bf7\\u5148\\u5f00\\u542f\\u76d1\\u63a7\\"\\n size=\\"small\\" \\n style=\\"width:80px\\" \\n :controls=\\"false\\"\\n :min=\\"0\\"\\n :max=\\"100\\">\\n </el-input-number> %\\n </span>\\n <el-select \\n v-model=\\"scope.row.threshold.keyword\\" \\n size=\\"mini\\"\\n style=\\"width:80%\\"\\n v-if=\\"scope.row.is_open && scope.row.category == \'log\'\\"\\n remote default-first-option multiple filterable allow-create\\n placeholder=\\"\\u8bf7\\u8bbe\\u7f6e\\u5173\\u952e\\u5b57\\">\\n </el-select>\\n <el-tooltip \\n class=\\"item\\" effect=\\"dark\\" \\n content=\\"\\u5982\\u9700\\u540c\\u65f6\\u8bbe\\u7f6e\\u5f00\\u542f\\u547d\\u4ee4\\u548c\\u5173\\u95ed\\u547d\\u4ee4\\uff0c\\u8bf7\\u5148\\u8f93\\u5165\\u65e5\\u5fd7\\u5173\\u95ed\\u7684\\u547d\\u4ee4\\uff0c\\u518d\\u8f93\\u5165\\u65e5\\u5fd7\\u5f00\\u542f\\u7684\\u547d\\u4ee4\\" \\n placement=\\"top\\">\\n <span>\\n <el-select \\n v-model=\\"scope.row.threshold.cmd\\" \\n size=\\"mini\\"\\n style=\\"width:80%;margin-top:5px;\\"\\n v-if=\\"scope.row.is_open && scope.row.category == \'log\'\\"\\n remote default-first-option multiple filterable allow-create\\n placeholder=\\"\\u8bf7\\u8bbe\\u7f6e\\u547d\\u4ee4\\">\\n </el-select>\\n </span>\\n </el-tooltip>\\n </template>\\n </el-table-column >\\n </el-table>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"setBasicMonitor\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n <el-tab-pane label=\\"\\u5b9e\\u65f6\\u76d1\\u63a7\\" v-if=\\"checkList.indexOf(\'\\u5b9e\\u65f6\\u76d1\\u63a7\') != -1\\" name=\\"timeMonitor\\">\\n <el-table \\n class=\\"timeMonitorTable\\"\\n :data=\\"timeMonitorData\\" \\n border\\n size=\\"mini\\"\\n header-cell-class-name=\\"tableHeaderClass\\"\\n height=\\"170\\"\\n style=\\"width: 100%\\">\\n <el-table-column :show-overflow-tooltip=\\"true\\" prop=\\"category_display\\" label=\\"\\u76d1\\u63a7\\u9879\\" width=\\"100%\\"></el-table-column>\\n <el-table-column prop=\\"is_open\\" label=\\"\\u662f\\u5426\\u5f00\\u542f\\u76d1\\u63a7\\">\\n <template slot-scope=\\"scope\\">\\n <el-switch\\n v-model=\\"scope.row.is_open\\"\\n active-text=\\"\\" inactive-text=\\"\\">\\n </el-switch>\\n </template>\\n </el-table-column>\\n <el-table-column label=\\"\\u64cd\\u4f5c\\">\\n <template slot-scope=\\"scope\\">\\n <el-button \\n size=\\"small\\"\\n type=\\"text\\"\\n @click=\\"downMonitorLog(scope.row.category)\\">\\n <font-awesome-icon title=\\"\\u4e0b\\u8f7d\\" :icon=\\"[\'fas\', \'download\']\\"/> \\u4e0b\\u8f7d\\n </el-button>\\n <el-button \\n size=\\"small\\"\\n type=\\"text\\"\\n @click=\\"dumpLink(\'monitor\')\\">\\n <font-awesome-icon title=\\"\\u5b9e\\u65f6\\u76d1\\u63a7\\u67e5\\u770b\\" :icon=\\"[\'fas\', \'chart-area\']\\"/> \\u5b9e\\u65f6\\u76d1\\u63a7\\u67e5\\u770b\\n </el-button>\\n </template>\\n </el-table-column >\\n </el-table>\\n <el-alert type=\\"warning\\" title=\\"\\u5b9e\\u65f6\\u76d1\\u63a7\\u4e3a\\u5b9a\\u5236\\u9700\\u8981\\uff0c\\u4f7f\\u7528\\u8be5\\u529f\\u80fd\\u524d\\u8bf7\\u6ce8\\u610f\\u4ee5\\u4e0b\\u51e0\\u70b9:\\" :closable=\\"false\\" style=\\"width:100%;white-space:normal;\\" show-icon simple>\\n <span style=\\"color:#c29d0b\\">\\n 1. \\u76d1\\u63a7\\u6570\\u636e\\u9700\\u8981\\u5173\\u95ed\\u76d1\\u63a7\\u540e\\u624d\\u80fd\\u4e0b\\u8f7d\\uff1b <br>\\n 2. \\u5b9e\\u65f6\\u76d1\\u63a7CPU\\u76d1\\u63a7\\u95f4\\u9694\\u4e3a1\\u79d2\\u4e00\\u6b21\\uff0c\\u5185\\u5b58\\u4e3a3\\u79d2\\u4e00\\u6b21\\uff1b <br>\\n 3. \\u5b9e\\u65f6\\u76d1\\u63a7\\u8bbe\\u7f6e\\u4e86\\u76d1\\u63a7\\u6301\\u7eed\\u65f6\\u95f4\\uff0c\\u76ee\\u524d\\u4e3a20\\u5206\\u949f\\uff0c20\\u5206\\u949f\\u540e\\u76d1\\u63a7\\u4f1a\\u81ea\\u52a8\\u5173\\u95ed\\uff1b \\n </span>\\n </el-alert>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"setTimeMonitor\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n <el-tab-pane label=\\"\\u5185\\u5b58\\u6cc4\\u9732\\u76d1\\u63a7\\" v-if=\\"checkList.indexOf(\'\\u5185\\u5b58\\u6cc4\\u6f0f\\u76d1\\u63a7\') != -1\\" name=\\"outOfMem\\">\\n <el-table \\n class=\\"outOfMemTable\\"\\n :data=\\"outOfMemData\\" \\n border\\n size=\\"mini\\"\\n header-cell-class-name=\\"tableHeaderClass\\"\\n height=\\"350\\"\\n style=\\"width: 100%\\">\\n <el-table-column :show-overflow-tooltip=\\"true\\" prop=\\"category_display\\" label=\\"\\u76d1\\u63a7\\u9879\\" width=\\"100px\\"></el-table-column>\\n <el-table-column prop=\\"is_open\\" label=\\"\\u662f\\u5426\\u5f00\\u542f\\u76d1\\u63a7\\">\\n <template slot-scope=\\"scope\\">\\n <el-switch\\n v-model=\\"scope.row.is_open\\"\\n active-text=\\"\\" inactive-text=\\"\\">\\n </el-switch>\\n </template>\\n </el-table-column>\\n <el-table-column label=\\"\\u95f4\\u9694\\" width=\\"185px\\">\\n <template slot-scope=\\"scope\\">\\n <el-input-number \\n style=\\"width:130px;\\"\\n v-model=\\"scope.row.interval\\"\\n :min=\\"1\\"\\n label=\\"\\u8bf7\\u8f93\\u5165\\u76d1\\u63a7\\u95f4\\u9694\\">\\n </el-input-number> \\u79d2\\n </template>\\n </el-table-column >\\n <el-table-column label=\\"\\u8bbe\\u5907\\u578b\\u53f7\\">\\n <template slot-scope=\\"scope\\">\\n <el-select v-model=\\"scope.row.device_model\\" placeholder=\\"\\u8bf7\\u9009\\u62e9\\">\\n <el-option\\n v-for=\\"item in deviceOptions\\"\\n :key=\\"item\\"\\n :label=\\"item\\"\\n :value=\\"item\\">\\n </el-option>\\n </el-select>\\n </template>\\n </el-table-column>\\n <el-table-column label=\\"\\u64cd\\u4f5c\\">\\n <template>\\n <el-button \\n size=\\"small\\"\\n type=\\"text\\"\\n @click=\\"dumpLink(\'outOfMem\')\\">\\n <font-awesome-icon title=\\"\\u76d1\\u63a7\\u67e5\\u770b\\" :icon=\\"[\'fas\', \'chart-area\']\\"/> \\u76d1\\u63a7\\u67e5\\u770b\\n </el-button>\\n </template>\\n </el-table-column >\\n </el-table>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"setOutOfMemMonitor\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n <el-tab-pane label=\\"\\u8fdb\\u7a0b\\u76d1\\u63a7\\" v-if=\\"checkList.indexOf(\'\\u8fdb\\u7a0b\\u76d1\\u63a7\') != -1\\" name=\\"processMonitor\\">\\n <el-form :label-position=\\"labelPosition\\" label-width=\\"118px\\" ref=\\"processref\\" size=\\"mini\\" >\\n <el-form-item label=\\"\\u5f00\\u542f\\u76d1\\u63a7\\uff1a\\">\\n <el-switch\\n @change=\\"handelProcessSwitch\\"\\n v-model=\\"processSwitch\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"processSwitch\\" label=\\"\\u8fdb\\u7a0b\\u540d\\u79f0\\uff1a\\">\\n <el-col :span=\\"20\\" >\\n <el-select \\n style=\\"width: 80%;\\"\\n v-model=\\"processNames\\" \\n size=\\"small\\"\\n remote default-first-option multiple filterable allow-create\\n placeholder=\\"\\u8bf7\\u8f93\\u5165\\u8fdb\\u7a0b\\u540d\\u79f0\\">\\n </el-select>\\n <el-button size=\\"small\\" style=\\"margin-left:10px\\"\\n @click=\\"deleteProcess\\">\\n \\u6e05\\u7a7a\\u8fdb\\u7a0b\\n </el-button>\\n </el-col>\\n </el-form-item>\\n <el-form-item v-if=\\"processSwitch\\" label=\\"\\u76d1\\u63a7\\u95f4\\u9694\\uff1a\\"> \\n <el-col :span=\\"20\\" >\\n <el-input-number \\n style=\\"width:200px;\\"\\n v-model=\\"processInterval\\"\\n :min=\\"30\\"\\n label=\\"\\u8bf7\\u8f93\\u5165\\u76d1\\u63a7\\u95f4\\u9694, \\u6700\\u5c0f\\u503c30\\">\\n </el-input-number> \\u79d2\\n </el-col>\\n </el-form-item>\\n </el-form>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"setProcessMonitor\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n\\n <el-tab-pane label=\\"\\u98ce\\u6247\\u76d1\\u63a7\\" v-if=\\"checkList.indexOf(\'\\u98ce\\u6247\\u76d1\\u63a7\') != -1\\" name=\\"fanMonitor\\">\\n <el-form :label-position=\\"labelPosition\\" label-width=\\"118px\\" ref=\\"fanRef\\" size=\\"mini\\" >\\n <el-form-item label=\\"\\u5f00\\u542f\\u76d1\\u63a7\\uff1a\\">\\n <el-switch\\n @change=\\"handelFanSwitch\\"\\n v-model=\\"fanSwitch\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"fanSwitch\\" label=\\"\\u76d1\\u63a7\\u95f4\\u9694\\uff1a\\"> \\n <el-col :span=\\"20\\" >\\n <el-input-number \\n style=\\"width:200px;\\"\\n v-model=\\"fanInterval\\"\\n :min=\\"30\\"\\n label=\\"\\u8bf7\\u8f93\\u5165\\u76d1\\u63a7\\u95f4\\u9694, \\u6700\\u5c0f\\u503c30\\">\\n </el-input-number> \\u79d2\\n </el-col>\\n </el-form-item>\\n </el-form>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"setFanMonitor\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n\\n <el-tab-pane label=\\"\\u6e29\\u5ea6\\u76d1\\u63a7\\" v-if=\\"checkList.indexOf(\'\\u6e29\\u5ea6\\u76d1\\u63a7\') != -1\\" name=\\"temperatureMonitor\\">\\n <el-form :label-position=\\"labelPosition\\" label-width=\\"118px\\" ref=\\"temperatureRef\\" size=\\"mini\\" >\\n <el-form-item label=\\"\\u5f00\\u542f\\u76d1\\u63a7\\uff1a\\">\\n <el-switch\\n @change=\\"handelTemperatureSwitch\\"\\n v-model=\\"temperatureSwitch\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"temperatureSwitch\\" label=\\"\\u9608\\u503c\\uff1a\\"> \\n <el-col :span=\\"20\\" >\\n <el-input-number \\n style=\\"width:200px;\\"\\n v-model=\\"temperatureValue\\"\\n :min=\\"1\\"\\n label=\\"\\u8bf7\\u8f93\\u5165\\u9608\\u503c\\">\\n </el-input-number> \\u6444\\u6c0f\\u5ea6\\n </el-col>\\n </el-form-item>\\n <el-form-item v-if=\\"temperatureSwitch\\" label=\\"\\u76d1\\u63a7\\u95f4\\u9694\\uff1a\\"> \\n <el-col :span=\\"20\\" >\\n <el-input-number \\n style=\\"width:200px;\\"\\n v-model=\\"temperatureInterval\\"\\n :min=\\"30\\"\\n label=\\"\\u8bf7\\u8f93\\u5165\\u76d1\\u63a7\\u95f4\\u9694, \\u6700\\u5c0f\\u503c30\\">\\n </el-input-number> \\u79d2\\n </el-col>\\n </el-form-item>\\n </el-form>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"setTemperatureMonitor\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n\\n <el-tab-pane label=\\"\\u7535\\u6e90\\u76d1\\u63a7\\" v-if=\\"checkList.indexOf(\'\\u7535\\u6e90\\u76d1\\u63a7\') != -1\\" name=\\"powerMonitor\\">\\n <el-form :label-position=\\"labelPosition\\" label-width=\\"118px\\" ref=\\"powerRef\\" size=\\"mini\\" >\\n <el-form-item label=\\"\\u5f00\\u542f\\u76d1\\u63a7\\uff1a\\">\\n <el-switch\\n @change=\\"handelPowerSwitch\\"\\n v-model=\\"powerSwitch\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"powerSwitch\\" label=\\"\\u76d1\\u63a7\\u95f4\\u9694\\uff1a\\"> \\n <el-col :span=\\"20\\" >\\n <el-input-number \\n style=\\"width:200px;\\"\\n v-model=\\"powerInterval\\"\\n :min=\\"30\\"\\n label=\\"\\u8bf7\\u8f93\\u5165\\u76d1\\u63a7\\u95f4\\u9694, \\u6700\\u5c0f\\u503c30\\">\\n </el-input-number> \\u79d2\\n </el-col>\\n </el-form-item>\\n </el-form>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"setPowerMonitor\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n\\n <el-tab-pane label=\\"\\u7f51\\u7edc\\u72b6\\u6001\\" v-if=\\"checkList.indexOf(\'\\u7f51\\u7edc\\u72b6\\u6001\') != -1\\" name=\\"disNetworkMonitor\\">\\n <el-form :label-position=\\"labelPosition\\" label-width=\\"118px\\" ref=\\"disNetworkRef\\" size=\\"mini\\" >\\n <el-form-item label=\\"\\u5f00\\u542f\\u76d1\\u63a7\\uff1a\\">\\n <el-switch \\n @change=\\"handelDisNetworkSwitch\\"\\n v-model=\\"disNetworkSwitch\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"disNetworkSwitch\\" label=\\"\\u76d1\\u63a7\\u95f4\\u9694\\uff1a\\"> \\n <el-col :span=\\"20\\" >\\n <el-input-number \\n style=\\"width:200px;\\"\\n v-model=\\"disNetworkInterval\\"\\n :min=\\"30\\"\\n label=\\"\\u8bf7\\u8f93\\u5165\\u76d1\\u63a7\\u95f4\\u9694, \\u6700\\u5c0f\\u503c30\\">\\n </el-input-number> \\u79d2\\n </el-col>\\n </el-form-item>\\n </el-form>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"setDisNetworkMonitor\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n\\n <el-tab-pane label=\\"GPU\\u76d1\\u63a7\\" v-if=\\"checkList.indexOf(\'GPU\\u76d1\\u63a7\') != -1\\" name=\\"gpuMonitor\\">\\n <el-form :label-position=\\"labelPosition\\" label-width=\\"118px\\" ref=\\"gpuRef\\" size=\\"mini\\" >\\n <el-form-item label=\\"\\u5f00\\u542f\\u76d1\\u63a7\\uff1a\\">\\n <el-switch \\n @change=\\"handelGpuSwitch\\"\\n v-model=\\"gpuSwitch\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"gpuSwitch\\" label=\\"\\u76d1\\u63a7\\u95f4\\u9694\\uff1a\\"> \\n <el-col :span=\\"20\\" >\\n <el-input-number \\n style=\\"width:200px;\\"\\n v-model=\\"gpuInterval\\"\\n :min=\\"30\\"\\n label=\\"\\u8bf7\\u8f93\\u5165\\u76d1\\u63a7\\u95f4\\u9694, \\u6700\\u5c0f\\u503c30\\">\\n </el-input-number> \\u79d2\\n </el-col>\\n </el-form-item>\\n </el-form>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"setGpuMonitor\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n\\n <el-tab-pane label=\\"\\u4e3b\\u63a7/\\u5b50\\u7cfb\\u7edf\\u7f51\\u7edc\\u3001pcie\\u72b6\\u6001\\" v-if=\\"checkList.indexOf(\'\\u4e3b\\u63a7/\\u5b50\\u7cfb\\u7edf\\u7f51\\u7edc\\u3001pcie\\u72b6\\u6001\') != -1\\" name=\\"systemNetworkMonitor\\">\\n <el-form :label-position=\\"labelPosition\\" label-width=\\"118px\\" ref=\\"systemNetworkRef\\" size=\\"mini\\" >\\n <el-form-item label=\\"\\u5f00\\u542f\\u76d1\\u63a7\\uff1a\\">\\n <el-switch \\n @change=\\"handelSystemNetworkSwitch\\"\\n v-model=\\"systemNetworkSwitch\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"systemNetworkSwitch\\" label=\\"\\u76d1\\u63a7\\u95f4\\u9694\\uff1a\\"> \\n <el-col :span=\\"20\\" >\\n <el-input-number \\n style=\\"width:200px;\\"\\n v-model=\\"systemNetworkInterval\\"\\n :min=\\"30\\"\\n label=\\"\\u8bf7\\u8f93\\u5165\\u76d1\\u63a7\\u95f4\\u9694, \\u6700\\u5c0f\\u503c30\\">\\n </el-input-number> \\u79d2\\n </el-col>\\n </el-form-item>\\n </el-form>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"setSystemNetworkMonitor\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n\\n <el-tab-pane label=\\"\\u4e32\\u53e3\\u65e5\\u5fd7\\u76d1\\u63a7\\" v-if=\\"checkList.indexOf(\'\\u4e32\\u53e3\\u65e5\\u5fd7\\u76d1\\u63a7\') != -1\\" name=\\"logMonitor\\">\\n <el-form :label-position=\\"labelPosition\\" label-width=\\"118px\\" ref=\\"logref\\" size=\\"mini\\" >\\n <el-form-item label=\\"\\u8bb0\\u5f55\\u65e5\\u5fd7\\uff1a\\">\\n <el-switch\\n @change=\\"handelSwitch\\"\\n v-model=\\"logSwitch\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"logSwitch\\" label=\\"\\u5b9e\\u65f6\\u90ae\\u4ef6\\uff1a\\">\\n <el-switch\\n \\n v-model=\\"notifyImmediately\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"logSwitch\\" label=\\"\\u76d1\\u63a7\\u5173\\u952e\\u5b57\\uff1a\\">\\n <el-col :span=\\"20\\" >\\n <el-select \\n style=\\"width: 70%;\\"\\n v-model=\\"keyword\\" \\n size=\\"small\\"\\n remote default-first-option multiple filterable allow-create\\n placeholder=\\"\\u8bf7\\u8bbe\\u7f6e\\u5173\\u952e\\u5b57\\">\\n </el-select>\\n <el-tooltip class=\\"item\\" effect=\\"dark\\" content=\\"\\u5f53\\u6240\\u8bbe\\u7f6e\\u7684\\u5173\\u952e\\u5b57\\u5728\\u8bbe\\u5907\\u4e32\\u53e3\\u65e5\\u5fd7\\u4e2d\\u51fa\\u73b0\\u540e\\uff0c\\u7cfb\\u7edf\\u4f1a\\u81ea\\u52a8\\u63a8\\u9001\\u544a\\u8b66\\u90ae\\u4ef6\\u7ed9\\u7528\\u6237\\" placement=\\"top-start\\">\\n <i class=\\"el-icon-question\\" style=\'color:#e6a23c;margin-left:5px;\'></i> \\n </el-tooltip>\\n <el-button size=\\"small\\" style=\\"margin-left:10px\\"\\n @click=\\"viewKeys\\">\\n \\u9009\\u62e9\\u5173\\u952e\\u5b57\\n </el-button>\\n <el-button size=\\"small\\" style=\\"margin-left:10px\\"\\n @click=\\"deleteLogKeys\\">\\n \\u6e05\\u7a7a\\u5173\\u952e\\u5b57\\n </el-button>\\n </el-col>\\n </el-form-item>\\n </el-form>\\n <div v-if=\\"logSwitch\\">\\n <el-table\\n height=\\"48\\"\\n style=\\"width: 100%;\\">\\n <el-table-column width=\\"150\\" label=\\"\\u5173\\u952e\\u5b57\\" :render-header=\\"renderHeader\\"></el-table-column>\\n <el-table-column width=\\"328\\" label=\\"\\u6267\\u884c\\u547d\\u4ee4\\" :render-header=\\"renderHeaderCmd\\"></el-table-column>\\n <el-table-column label=\\"\\u6267\\u884c\\u6b21\\u6570\\"></el-table-column>\\n <el-table-column label=\\"\\u95f4\\u9694\\u65f6\\u95f4(\\u79d2)\\"></el-table-column>\\n <el-table-column label=\\"\\u64cd\\u4f5c\\" width=\\"50\\"></el-table-column >\\n </el-table>\\n <el-table\\n :show-header=\\"false\\"\\n :data=\\"cmdsItem\\"\\n :span-method=\\"objectSpanMethod\\"\\n style=\\"width: 100%\\">\\n <el-table-column width=\\"150\\" prop=\\"keyword\\" label=\\"\\u5173\\u952e\\u5b57\\">\\n <template slot-scope=\\"scope\\" >\\n <el-select clearable v-model=\\"scope.row.keyword\\" placeholder=\\"\\u8bf7\\u9009\\u62e9\\">\\n <el-option :key=\\"i\\" :label=\\"item\\" :value=\\"item\\" v-for=\\"(item,i) in keyword\\"></el-option>\\n </el-select>\\n </template>\\n </el-table-column>\\n <el-table-column width=\\"328\\" prop=\\"cmd\\" label=\\"\\u6267\\u884c\\u547d\\u4ee4\\">\\n <template slot-scope=\\"scope\\">\\n <div class=\\"cmd-select\\">\\n <el-select\\n v-model=\\"scope.row.cmd\\" \\n size=\\"mini\\"\\n remote default-first-option multiple filterable allow-create\\n placeholder=\\"\\u8bf7\\u8bbe\\u7f6e\\u547d\\u4ee4\\">\\n </el-select>\\n </div>\\n </template>\\n </el-table-column>\\n <el-table-column prop=\\"count\\" label=\\"\\u6267\\u884c\\u6b21\\u6570\\">\\n <template slot-scope=\\"scope\\" >\\n <el-input-number :min=\\"1\\" :controls=\\"false\\"\\n v-model=\\"scope.row.count\\" placeholder=\\"\\u6267\\u884c\\u6b21\\u6570(>0)\\">\\n </el-input-number>\\n </template>\\n </el-table-column>\\n <el-table-column prop=\\"interval\\" label=\\"\\u95f4\\u9694\\u65f6\\u95f4(\\u79d2)\\">\\n <template slot-scope=\\"scope\\" >\\n <el-input-number :min=\\"1\\" :controls=\\"false\\"\\n v-model=\\"scope.row.interval\\" placeholder=\\"\\u89e6\\u53d1\\u65f6\\u95f4(>0)\\">\\n </el-input-number>\\n </template>\\n </el-table-column>\\n <el-table-column label=\\"\\u64cd\\u4f5c\\" width=\\"70\\">\\n <template slot-scope=\\"scope\\" >\\n <a-icon type=\\"plus-circle\\"\\n theme=\\"twoTone\\"\\n twoToneColor=\\"#3598dc\\"\\n style=\\"font-size: 20px;cursor: pointer;\\"\\n @click=\\"addCmdData(scope)\\"\\n />\\n <a-icon type=\\"minus-circle\\" v-if=\\"cmdsItem.length>1\\"\\n theme=\\"twoTone\\"\\n twoToneColor=\\"#f56c6c\\"\\n style=\\"font-size: 20px;cursor: pointer;\\"\\n @click=\\"deleteCmdData(scope.$index)\\"\\n />\\n </template>\\n </el-table-column >\\n </el-table>\\n <div style=\\"text-align: center;margin-top: 5px;\\">\\n <a-icon type=\\"plus-circle\\"\\n theme=\\"twoTone\\"\\n twoToneColor=\\"#3598dc\\"\\n style=\\"font-size: 30px;cursor: pointer;\\"\\n @click=\\"addCmdDataNew\\"\\n />\\n </div>\\n </div>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"saveChanelLog\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n <el-tab-pane label=\\"\\u8fdc\\u7a0b\\u65e5\\u5fd7\\" v-if=\\"checkList.indexOf(\'\\u8fdc\\u7a0b\\u65e5\\u5fd7\') != -1\\" name=\\"remoteMonitor\\">\\n <el-form label-position=\\"right\\" label-width=\\"118px\\" ref=\\"remoteMonitor\\" size=\\"mini\\" >\\n <el-form-item label=\\"\\u8fdc\\u7a0b\\u65e5\\u5fd7\\uff1a\\">\\n <el-switch\\n v-model=\\"sysLogSwitch\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"sysLogSwitch\\" label=\\"\\u5173\\u952e\\u5b57\\uff1a\\">\\n <el-select \\n style=\\"width: 70%;\\"\\n v-model=\\"sysLogKeyword\\" \\n size=\\"small\\"\\n remote default-first-option multiple filterable allow-create\\n placeholder=\\"\\u8bf7\\u8bbe\\u7f6e\\u5173\\u952e\\u5b57\\">\\n </el-select>\\n <el-button size=\\"small\\" style=\\"margin-left:10px\\"\\n @click=\\"viewKeys\\">\\n \\u9009\\u62e9\\u5173\\u952e\\u5b57\\n </el-button>\\n <el-button size=\\"small\\" style=\\"margin-left:10px\\"\\n @click=\\"deleteRemoteKeys\\">\\n \\u6e05\\u7a7a\\u5173\\u952e\\u5b57\\n </el-button>\\n </el-form-item>\\n </el-form>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"saveRemotesLog\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n <el-tab-pane label=\\"\\u7cfb\\u7edf\\u65e5\\u5fd7\\" v-if=\\"checkList.indexOf(\'\\u7cfb\\u7edf\\u65e5\\u5fd7\') != -1\\" name=\\"sysLogMonitor\\">\\n <el-form label-position=\\"right\\" label-width=\\"118px\\" ref=\\"sysMonitor\\" size=\\"mini\\" >\\n <el-form-item label=\\"\\u7cfb\\u7edf\\u65e5\\u5fd7\\uff1a\\">\\n <el-switch\\n v-model=\\"mtlogSwitch\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"mtlogSwitch\\" label=\\"\\u65e5\\u5fd7\\u76ee\\u5f55\\uff1a\\">\\n <el-input v-model=\\"mtlogPath\\" size=\\"small\\" style=\\"width: 70%;\\"></el-input>\\n </el-form-item>\\n <el-form-item v-if=\\"mtlogSwitch\\" label=\\"\\u65e5\\u5fd7\\u5173\\u952e\\u5b57\\uff1a\\">\\n <el-select \\n style=\\"width: 70%;\\"\\n v-model=\\"mtkeyword\\" \\n size=\\"small\\"\\n remote default-first-option multiple filterable allow-create\\n placeholder=\\"\\u8bf7\\u8bbe\\u7f6e\\u5173\\u952e\\u5b57\\">\\n </el-select>\\n <el-button size=\\"small\\" style=\\"margin-left:10px\\"\\n @click=\\"viewKeys\\">\\n \\u9009\\u62e9\\u5173\\u952e\\u5b57\\n </el-button>\\n <el-button size=\\"small\\" style=\\"margin-left:10px\\"\\n @click=\\"deleteSystemKeys\\">\\n \\u6e05\\u7a7a\\u5173\\u952e\\u5b57\\n </el-button>\\n </el-form-item>\\n </el-form>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"saveSystemLog\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n <el-tab-pane label=\\"core\\u6587\\u4ef6\\" v-if=\\"checkList.indexOf(\'core\\u6587\\u4ef6\') != -1\\" name=\\"coreMonitor\\">\\n <el-form :model=\\"coreForm\\" label-position=\\"right\\" label-width=\\"118px\\" ref=\\"coreMonitor\\" size=\\"mini\\" >\\n <el-form-item label=\\"core\\u6587\\u4ef6\\uff1a\\">\\n <el-switch\\n v-model=\\"coreForm.coreLogSwitch\\"\\n >\\n </el-switch>\\n </el-form-item>\\n <el-form-item v-if=\\"coreForm.coreLogSwitch\\" label=\\"core\\u6587\\u4ef6\\u8def\\u5f84\\uff1a\\">\\n <el-input v-model=\\"coreForm.corelogPath\\" size=\\"small\\" style=\\"width: 70%;\\"></el-input>\\n </el-form-item>\\n <el-form-item v-if=\\"coreForm.coreLogSwitch\\" label=\\"\\u76f8\\u5173\\u8054\\u6587\\u4ef6\\uff1a\\">\\n <div v-if=\\"coreForm.coreLogSwitch\\">\\n <el-table\\n height=\\"48\\"\\n style=\\"width: 100%;\\">\\n <el-table-column label=\\"\\u5f02\\u5e38\\u6587\\u4ef6\\u76ee\\u5f55\\"></el-table-column>\\n <el-table-column label=\\"\\u5339\\u914d\\u6587\\u4ef6\\u540d\\"></el-table-column>\\n <el-table-column label=\\"\\u64cd\\u4f5c\\" width=\\"80\\"></el-table-column >\\n </el-table>\\n <el-table\\n :show-header=\\"false\\"\\n :data=\\"coreForm.coreItems\\"\\n style=\\"width: 100%\\">\\n <el-table-column prop=\\"path\\" label=\\"\\u5f02\\u5e38\\u6587\\u4ef6\\u76ee\\u5f55\\">\\n <template slot-scope=\\"scope\\" >\\n <el-input v-model=\\"scope.row.path\\" size=\\"small\\" style=\\"width: 90%;\\"></el-input>\\n </template>\\n </el-table-column>\\n <el-table-column prop=\\"keywords\\" label=\\"\\u5339\\u914d\\u6587\\u4ef6\\u540d\\">\\n <template slot-scope=\\"scope\\" >\\n <el-select \\n style=\\"width: 90%;\\"\\n v-model=\\"scope.row.keywords\\" \\n size=\\"small\\"\\n remote default-first-option multiple filterable allow-create\\n placeholder=\\"\\u8bf7\\u8bbe\\u7f6e\\u76f8\\u5173\\u5339\\u914d\\u6587\\u4ef6\\u540d\\">\\n </el-select>\\n </template>\\n </el-table-column>\\n <el-table-column label=\\"\\u64cd\\u4f5c\\" width=\\"80\\">\\n <template slot-scope=\\"scope\\" >\\n <a-icon type=\\"plus-circle\\"\\n theme=\\"twoTone\\"\\n twoToneColor=\\"#3598dc\\"\\n style=\\"font-size: 20px;cursor: pointer;\\"\\n @click=\\"addCoreItem\\"\\n />\\n <a-icon type=\\"minus-circle\\" v-if=\\"coreForm.coreItems.length>1\\"\\n theme=\\"twoTone\\"\\n twoToneColor=\\"#f56c6c\\"\\n style=\\"font-size: 20px;cursor: pointer;\\"\\n @click=\\"deleteCoreItem(scope.$index)\\"\\n />\\n </template>\\n </el-table-column >\\n </el-table>\\n </div>\\n </el-form-item>\\n </el-form>\\n <div class=\\"save-container\\">\\n <el-button title=\\"\\u4fdd\\u5b58\\u5f53\\u524d\\u9875\\u914d\\u7f6e\\" type=\\"danger\\" @click=\\"saveCoreLog\\">\\u4fdd \\u5b58</el-button>\\n </div>\\n </el-tab-pane>\\n </el-tabs>\\n </el-row>\\n <el-row \\n v-show=\\"isViewKeyDialogShow\\">\\n <view-keywords\\n :viewKeywordsList=\\"viewKeywordsList\\"\\n :alreadyKeyword=\\"keyword\\"\\n :isViewKeyDialogShow=\\"isViewKeyDialogShow\\"\\n @listenToChildEvent=\\"setKeywordsFromSelect\\">\\n </view-keywords>\\n </el-row>\\n <div v-if=\\"isViewKeyDialogShow\\" slot=\\"footer\\" class=\\"dialog-footer\\">\\n <el-divider></el-divider>\\n <el-button @click=\\"closeViewKeywordsDialog\\">\\u8fd4 \\u56de</el-button>\\n <el-button type=\\"danger\\" @click=\\"setKeywords\\">\\u786e \\u5b9a</el-button>\\n <el-button type=\\"danger\\" @click=\\"addKeyword\\">\\u6dfb\\u52a0\\u5173\\u952e\\u5b57</el-button>\\n <execute-list-dialog ref=\\"executeList\\" :activeName=\\"activeName\\"></execute-list-dialog>\\n </div>\\n <div v-else slot=\\"footer\\" class=\\"dialog-footer\\">\\n <el-divider></el-divider>\\n <el-button @click=\\"closeMonitorDialog\\" class=\\"monitor-close\\">\\u5173 \\u95ed</el-button>\\n </div>\\n </div>\\n </el-dialog>\\n \\n </span>\\n</template>\\n<script>\\nimport api from \'@/api\';\\nimport { mapGetters } from \'vuex\'\\nimport UserSelectForm from \'@/components/common/userSelectForm\'\\nimport axios from \'axios\'\\nimport util from \'@/util\';\\nimport log from \'../../util/util.log\';\\nimport viewKeywords from \\"@/components/dialog/viewKeywords\\";\\nimport executeListDialog from \'@/components/dialog/executeListDialog\';\\n\\nexport default {\\n name: \'ProductMonitor\',\\n props:[\'type\',\'productData\', \'sourceType\'],\\n computed: {\\n ...mapGetters([\'userInfo\',\'testObjSelDataList\'])\\n },\\n components: {\\n UserSelectForm,\\n viewKeywords,\\n executeListDialog\\n },\\n data(){\\n \\treturn{\\n checkList: [],\\n allCheckList: [\\"\\u57fa\\u672c\\u76d1\\u63a7\\", \\"\\u5b9e\\u65f6\\u76d1\\u63a7\\", \\"\\u5185\\u5b58\\u6cc4\\u6f0f\\u76d1\\u63a7\\", \\"\\u8fdb\\u7a0b\\u76d1\\u63a7\\", \\"\\u98ce\\u6247\\u76d1\\u63a7\\",\\"\\u6e29\\u5ea6\\u76d1\\u63a7\\",\\"\\u7535\\u6e90\\u76d1\\u63a7\\",\\"\\u7f51\\u7edc\\u72b6\\u6001\\",\\"GPU\\u76d1\\u63a7\\",\\"\\u4e3b\\u63a7/\\u5b50\\u7cfb\\u7edf\\u7f51\\u7edc\\u3001pcie\\u72b6\\u6001\\",\\"\\u4e32\\u53e3\\u65e5\\u5fd7\\u76d1\\u63a7\\",\\"\\u8fdc\\u7a0b\\u65e5\\u5fd7\\",\\"\\u7cfb\\u7edf\\u65e5\\u5fd7\\",\\"core\\u6587\\u4ef6\\"],\\n email_list:[],\\n email_list_map:{},\\n deviceOptions:[\'C20N\',\'B21\'],\\n monitorActiveName:\'basicMonitor\',\\n monitorSetModel:false,\\n KeyWorldsBox:false,\\n logData:{\\n keyword:[],\\n cmd:[]\\n },\\n monitorData:[],\\n timeMonitorData:[],\\n outOfMemData:[],\\n loading:false,\\n peojectId:this.$route.params.id,\\n peojectUrl:process.env.KR_LINK,\\n logSwitch:false,\\n processSwitch: false,\\n processNames: [],\\n processInterval: 600,\\n fanSwitch: false,\\n fanInterval: 600,\\n temperatureSwitch: false,\\n temperatureValue: 90,\\n temperatureInterval: 600,\\n powerSwitch: false,\\n powerInterval: 600,\\n disNetworkSwitch: false,\\n disNetworkInterval: 600,\\n gpuSwitch: false,\\n gpuInterval: 600,\\n systemNetworkSwitch: false,\\n systemNetworkInterval: 600,\\n syncConfigSwitch: false,\\n syncNeedData: [],\\n syncBindValue: \'\',\\n configLoading: false,\\n configLoadingText: \\"\\u6b63\\u5728\\u83b7\\u53d6\\u60a8\\u7ba1\\u7406\\u548c\\u53c2\\u4e0e\\u7684\\u6b63\\u5728\\u8fdb\\u884c\\u4e2d\\u7684\\u9879\\u76ee\\u4e2d\\u7684\\u6240\\u6709\\u8bbe\\u5907\\uff0c\\u8bf7\\u7a0d\\u540e\\uff01\\",\\n isViewKeyDialogShow: false,\\n viewKeywordsList: [],\\n isSentOffApi:null,\\n keyword: [],\\n selectKeyword: [],\\n labelPosition:\'left\',\\n monitorTitle: \\"\\u6279\\u91cf\\u76d1\\u63a7\\u914d\\u7f6e\\",\\n batchFlag: true,\\n showKeyRow: false,\\n tableHerder:[\'\\u5173\\u952e\\u5b57\',\'\\u547d\\u4ee4\',\'\\u6267\\u884c\\u6b21\\u6570\',\'\\u95f4\\u9694\\u65f6\\u95f4(\\u79d2)\'],\\n cmdsItem:[\\n {\\n keyword:\'\',\\n cmd:[],\\n count:\'\',\\n interval:\'\',\\n }\\n ],\\n spanArr:[],\\n contentSpanArr:[],\\n pos:0,\\n position:0,\\n activeName:\\"second\\",\\n mtlogSwitch:false,\\n mtkeyword:[],\\n mtlogPath:\'\',\\n labelPosition:\'right\',\\n sysLogSwitch:false,\\n sysLogKeyword:[],\\n coreForm:{\\n coreLogSwitch:false,\\n corelogPath:\'\',\\n coreItems:[{\\n keywords:\'\',\\n path:\'\',\\n }],\\n },\\n notifyImmediately:false\\n \\t}\\n },\\n methods:{\\n objectSpanMethod({ row, column, rowIndex, columnIndex }) {\\n if(this.contentSpanArr.length==0){\\n return\\n }\\n if (columnIndex === 0) {\\n const _row = this.contentSpanArr[rowIndex];\\n const _col = _row > 0 ? 1 : 0;\\n return {\\n rowspan: _row,\\n colspan: _col\\n };\\n }\\n },\\n\\n addCmdData(scope){\\n let cmdsItem = [...this.cmdsItem]\\n let ix = scope.$index\\n let keyword = scope.row.keyword\\n cmdsItem.splice(ix+1,0,{\\n keyword:keyword,\\n cmd:\'\',\\n count:\'\',\\n interval:\'60\',\\n })\\n for(let i = ix;i >= 0; i--){\\n if(this.contentSpanArr[i]>0){\\n this.position = i\\n break\\n }\\n }\\n if(this.contentSpanArr[this.position]){\\n this.contentSpanArr[this.position] += 1;\\n this.contentSpanArr.splice(ix+1,0,0)\\n }else{\\n // \\u7b2c0\\u884c\\n this.contentSpanArr[this.position] = 1\\n this.contentSpanArr[this.position] += 1;\\n this.contentSpanArr.splice(ix+1,0,0)\\n\\n }\\n this.cmdsItem = [...cmdsItem]\\n \\n\\n },\\n\\n addCmdDataNew(){\\n let cmdsItem = [...this.cmdsItem]\\n cmdsItem.push({\\n keyword:\'\',\\n cmd:\'\',\\n count:\'\',\\n interval:\'60\',\\n })\\n this.position = this.cmdsItem.length\\n this.contentSpanArr[this.position] = 1\\n this.cmdsItem = [...cmdsItem]\\n },\\n\\n viewKeys(){\\n this.viewKeywordsList = []\\n let creator = this.userInfo.loginName\\n api.logApi.getKeyword(creator).then(res=>{\\n if(res.success){\\n this.isViewKeyDialogShow = true\\n // this.monitorSetModel = false\\n for (let i in res.data){\\n this.viewKeywordsList.push({\\n _id: res.data[i]._id,\\n name: res.data[i].name,\\n describtion: res.data[i].describtion,\\n product_line: res.data[i].product_line\\n })\\n }\\n }else{\\n this.$message.error(\\"\\u67e5\\u770b\\u5173\\u952e\\u5b57\\u5931\\u8d25: \\", res.msg)\\n }\\n })\\n },\\n\\n deleteLogKeys(){\\n this.keyword = []\\n },\\n\\n deleteRemoteKeys(){\\n this.sysLogKeyword = []\\n },\\n\\n deleteSystemKeys(){\\n this.mtkeyword = []\\n },\\n\\n handelProcessSwitch(){\\n\\n },\\n\\n handelFanSwitch(){\\n\\n },\\n handelTemperatureSwitch(){\\n\\n },\\n handelPowerSwitch(){\\n\\n },\\n handelDisNetworkSwitch(){\\n\\n },\\n handelGpuSwitch(){\\n\\n },\\n handelSystemNetworkSwitch(){\\n\\n },\\n deleteProcess(){\\n this.processNames = []\\n },\\n\\n closeViewKeywordsDialog(){\\n this.selectKeyword = []\\n this.isViewKeyDialogShow = false\\n },\\n\\n setKeywords(){\\n this.isViewKeyDialogShow = false\\n\\n for (let i in this.selectKeyword){\\n if (!this.keyword.includes(this.selectKeyword[i])){\\n if (this.monitorActiveName == \'logMonitor\'){\\n this.keyword.push(this.selectKeyword[i])\\n } else if (this.monitorActiveName == \'sysLogMonitor\'){\\n this.mtkeyword.push(this.selectKeyword[i]) \\n } else {\\n this.sysLogKeyword.push(this.selectKeyword[i]) \\n }\\n }\\n }\\n\\n // this.keyword.push.apply(this.keyword, this.selectKeyword)\\n this.selectKeyword = []\\n },\\n\\n showKeywordsDialog(){\\n this.isViewKeyDialogShow = true\\n },\\n\\n setKeywordsFromSelect(data){\\n for (let i in data){\\n this.selectKeyword.push(data[i].name)\\n }\\n },\\n\\n deleteCmdData(index){\\n let cmdsItem = [...this.cmdsItem]\\n let contentSpanArr = [...this.contentSpanArr]\\n cmdsItem.splice(index, 1);\\n if(contentSpanArr[index]==1){\\n contentSpanArr.splice(index, 1)\\n this.contentSpanArr = [...contentSpanArr]\\n this.cmdsItem = [...cmdsItem]\\n return\\n }\\n if(contentSpanArr[index]==0){\\n for(let i = index;i >= 0; i--){\\n if(contentSpanArr[i]>0){\\n // \\u5408\\u5e76\\u884c\\u6570\\u51cf\\u6389\\u540e\\u518d\\u5220\\u9664\\u6807\\u8bb0\\n contentSpanArr[i] -= 1;\\n contentSpanArr.splice(index, 1)\\n break\\n }\\n }\\n this.contentSpanArr = [...contentSpanArr]\\n this.cmdsItem = [...cmdsItem]\\n return\\n\\n }\\n if(contentSpanArr[index]>1){\\n contentSpanArr[index] = contentSpanArr[index]-1\\n contentSpanArr[index+1] = contentSpanArr[index]\\n contentSpanArr.splice(index, 1)\\n this.contentSpanArr = [...contentSpanArr]\\n this.cmdsItem = [...cmdsItem]\\n return\\n }\\n\\n },\\n\\n handelTypeChange(e){\\n },\\n\\n handelSwitch(e){\\n },\\n\\n handelSyncConfigSwitch(e){\\n this.syncConfigSwitch = e\\n },\\n\\n getDeviceMonitorConfig(){\\n this.getConfigMonitor(this.syncBindValue, true)\\n },\\n\\n dealDatas(data){\\n let testObjectDatas = [];\\n if (data && data.length) {\\n for (const d of data) {\\n let rtbv = {};\\n const { value } = d;\\n Object.assign(rtbv, d);\\n if (value && value.length && util.isJSON(value)){\\n const row = JSON.parse(value);\\n for (const tbv of row) {\\n if (tbv.key !== \'name\') {\\n rtbv[tbv.key] = tbv.value;\\n }\\n }\\n }\\n testObjectDatas.push(rtbv);\\n }\\n }\\n this.syncNeedData = testObjectDatas\\n },\\n\\n getSyncNeedData(isVisible){\\n if (isVisible){\\n this.configLoading = true\\n this.syncNeedData = []\\n api.stDevice.getDeviceInfoList(this.userInfo.name).then(data=>{\\n this.dealDatas(data)\\n })\\n this.configLoading = false\\n }\\n },\\n\\n handleTabClick(e, isSyncFlag){\\n let stId = \\"\\"\\n let tlabId = \\"\\"\\n if (!isSyncFlag) {\\n if (this.testObjSelDataList.length > 1){\\n return\\n }\\n stId = this.productData.id\\n tlabId = this.productData.tlabTestObjectId\\n } else {\\n stId = this.syncBindValue.id\\n tlabId = this.syncBindValue.tlabTestObjectId\\n }\\n\\n if(e[\'name\']==\\"logMonitor\\"){\\n api.labApi.getLogCfg(stId, tlabId).then(res=>{\\n if(res.success){\\n let data = res.data\\n if(data.state==\'on\'){\\n this.isSentOffApi = true\\n this.logSwitch = true\\n }else{\\n this.isSentOffApi = false\\n this.logSwitch = false\\n return \\n }\\n if(data.hasOwnProperty(\'notifyImmediately\')){\\n this.notifyImmediately = data.notifyImmediately\\n }\\n this.keyword = data.keyword\\n let cmdsItem = data.project_info.cmdsItem\\n let contentSpanArr = data.project_info.contentSpanArr\\n if(contentSpanArr&&cmdsItem){\\n if(contentSpanArr[0]==null||contentSpanArr.length!=cmdsItem.length){\\n contentSpanArr = []\\n for(let i in cmdsItem){\\n contentSpanArr.push(1)\\n }\\n }\\n this.$nextTick(()=>{\\n this.contentSpanArr = contentSpanArr\\n })\\n }\\n // \\u5904\\u7406\\u4e4b\\u524d\\u6ca1\\u6709\\u5408\\u5e76\\u7684\\u65e7\\u4efb\\u52a1\\n if(!contentSpanArr&&cmdsItem){\\n contentSpanArr = []\\n for(let i in cmdsItem){\\n contentSpanArr.push(1)\\n }\\n this.$nextTick(()=>{\\n this.contentSpanArr = contentSpanArr\\n })\\n }\\n\\n if(cmdsItem){\\n this.$nextTick(()=>{\\n this.cmdsItem = [...cmdsItem]\\n })\\n }\\n\\n }\\n })\\n }\\n },\\n\\n runAllApi(apiData,bdata,logData){\\n axios.all(apiData).then(axios.spread((res1,res2,res3)=>{\\n this.monitorSetModel = false\\n if(res1.success&&res2.success&&res3.success){\\n this.$message.info(\'\\u914d\\u7f6e\\u4e0b\\u53d1\\u6210\\u529f\\uff0c\\u8bf7\\u7a0d\\u540e\\u5728\\u4efb\\u52a1\\u7ba1\\u7406\\u4e2d\\u5fc3\\u67e5\\u770b\\u7ed3\\u679c\');\\n }\\n if(!res1.success||!res2.success||!res3.success){\\n if(!res1.success){\\n this.$message.error(res1.msg)\\n }\\n if(!res2.success){\\n this.$message.error(res2.msg)\\n }\\n if(!res3.success){\\n this.$message.error(res3.msg)\\n }\\n }\\n if(!res1.success&&!res2.success&&!res3.success){\\n this.$message.error(\'\\u8bbe\\u7f6e\\u76d1\\u63a7\\u5931\\u8d25\')\\n }\\n })).catch(err=>{\\n this.$message.error(\'\\u8bbe\\u7f6e\\u76d1\\u63a7\\u5931\\u8d25\') \\n })\\n },\\n\\n runTwoApi(apiData,bdata,logData){\\n axios.all(apiData).then(axios.spread((res1,res2)=>{\\n this.monitorSetModel = false\\n if(res1.success&&res2.success){\\n this.$message.info(\'\\u914d\\u7f6e\\u4e0b\\u53d1\\u6210\\u529f\\uff0c\\u8bf7\\u7a0d\\u540e\\u5728\\u4efb\\u52a1\\u7ba1\\u7406\\u4e2d\\u5fc3\\u67e5\\u770b\\u7ed3\\u679c\');\\n }\\n if(!res1.success||!res2.success){\\n if(!res1.success){\\n this.$message.error(res1.msg)\\n }\\n if(!res2.success){\\n this.$message.error(res2.msg)\\n }\\n }\\n if(!res1.success&&!res2.success){\\n this.$message.error(\'\\u8bbe\\u7f6e\\u76d1\\u63a7\\u5931\\u8d25\')\\n }\\n })).catch(err=>{\\n this.$message.error(\'\\u8bbe\\u7f6e\\u76d1\\u63a7\\u5931\\u8d25\') \\n })\\n },\\n\\n // \\u914d\\u7f6e\\u5355\\u4e2a\\u65e5\\u5fd7\\n async setLogMonitor(){\\n let logMonitorApi;\\n let postData;\\n let isOpen = this.logSwitch;\\n let selectedItem = this.productData;\\n\\n if(this.logSwitch){\\n postData = this.initLogData(this.productData);\\n } else {\\n if(this.isSentOffApi) {\\n postData = this.getTurnOffLogConfigItem(selectedItem);\\n }else{\\n logMonitorApi = Promise.resolve({\\n data: {},\\n msg: \\"\\u8bf7\\u6c42\\u6210\\u529f\\",\\n success: true\\n })\\n }\\n }\\n if (typeof(logMonitorApi) == \'undefined\') {\\n logMonitorApi = await this.insertLogTaskAndTriggerActuator(\\n [postData],\\n isOpen,\\n );\\n }\\n return {logMonitorApi, postData}\\n },\\n\\n /**\\n * \\u7ec4\\u88c5\\u7528\\u4e8e\\u5173\\u95ed\\u65e5\\u5fd7\\u7684\\u6570\\u636e\\n * \\n * @param {object} selectedItem \\u5f53\\u524d\\u9009\\u4e2d\\u5bf9\\u8c61\\n * @return {object} \\u914d\\u7f6e\\u5bf9\\u8c61\\uff0c\\u7528\\u4e8e\\u53d1\\u7ed9Actuator\\n */\\n getTurnOffLogConfigItem(selectedItem) {\\n return {\\n requestor:\'st\',\\n id: selectedItem.id, // \\u8bbe\\u5907ID\\n tlab_id: selectedItem.tlabTestObjectId,\\n operator: this.userInfo.loginName,\\n op: \'off\',\\n device_name: selectedItem.name,\\n ip: selectedItem.ip,\\n }\\n },\\n\\n /**\\n * \\u6279\\u91cflog\\u8bbe\\u7f6e\\uff0c\\u7ed3\\u679c\\u901a\\u8fc7Actuator\\u56de\\u8c03\\u63d2\\u5165\\u4efb\\u52a1\\u4e2d\\u5fc3\\n */\\n async setBatchLogMonitor(){\\n let configItem;\\n let isOpen = this.logSwitch;\\n let actuatorBody = []\\n let deviceData = {}\\n\\n if (this.sourceType == \\"deviceList\\"){\\n deviceData = this.dealDeviceData()\\n } else {\\n let cycleId = parseInt(this.$route.params.id)\\n deviceData[cycleId] = this.testObjSelDataList\\n }\\n \\n for (let key in deviceData){\\n let kr_ids = []\\n let logItems = []\\n for (let i in deviceData[key]){\\n kr_ids.push(deviceData[key][i].id)\\n if (isOpen) { // \\u5f00\\u542f\\n configItem = this.initLogData(deviceData[key][i]);\\n } else{ // \\u5173\\u95ed\\n configItem = this.getTurnOffLogConfigItem(deviceData[key][i]);\\n }\\n logItems.push(configItem)\\n }\\n\\n actuatorBody.push({\\n cycle_id: key,\\n kr_device_ids: kr_ids,\\n action: isOpen? \\"on\\" : \\"off\\",\\n username_cn: this.userInfo.name,\\n log_items: logItems\\n })\\n }\\n\\n let logMonitorApi;\\n await api.labApi.updateBatchLogAndUpdateTask(isOpen, actuatorBody)\\n .then(res => {\\n logMonitorApi = res;\\n })\\n .catch(err => {\\n this.$message.error(\'\\u8bbe\\u7f6e\\u76d1\\u63a7\\u5931\\u8d25\\uff0c\\u8c03\\u7528Actuator\\u63a5\\u53e3\\u5f02\\u5e38\');\\n });\\n \\n return logMonitorApi;\\n },\\n\\n /**\\n * \\u7528\\u7ec4\\u88c5\\u597d\\u7684\\u65e5\\u5fd7\\u4efb\\u52a1\\u914d\\u7f6e\\u6570\\u636e\\u8c03\\u7528Actuator\\n *\\n * @param {array} items \\u914d\\u7f6e\\u9879\\uff0c\\u4f20\\u7ed9Actuator\\n * @isOpen {bool} \\u5f00\\u542f/\\u5173\\u95ed\\n */\\n async insertLogTaskAndTriggerActuator(configItems, isOpen) {\\n let logMonitorApi;\\n\\n let actuatorBody = []\\n if (this.sourceType == \\"deviceList\\"){\\n actuatorBody.push({\\n \\"cycle_id\\": this.testObjSelDataList[0].cycle.id,\\n \\"kr_device_ids\\": [this.testObjSelDataList[0].id],\\n \\"action\\": isOpen? \\"on\\" : \\"off\\",\\n \\"username_cn\\": this.userInfo.name,\\n \\"log_items\\": configItems\\n })\\n }else{\\n actuatorBody.push({\\n \\"cycle_id\\": parseInt(this.$route.params.id),\\n \\"kr_device_ids\\": [this.testObjSelDataList[0].id],\\n \\"action\\": isOpen? \\"on\\" : \\"off\\",\\n \\"username_cn\\": this.userInfo.name,\\n \\"log_items\\": configItems\\n })\\n }\\n\\n await api.labApi.updateBatchLogAndUpdateTask(isOpen, actuatorBody)\\n .then(res => {\\n logMonitorApi = res;\\n })\\n .catch(err => {\\n this.$message.error(\'\\u8bbe\\u7f6e\\u76d1\\u63a7\\u5931\\u8d25\\uff0c\\u8c03\\u7528Actuator\\u63a5\\u53e3\\u5f02\\u5e38\');\\n });\\n return logMonitorApi;\\n },\\n\\n // \\u751f\\u6210\\u7528\\u4e8e\\u5f00\\u542f\\u65e5\\u5fd7\\u7684\\u6570\\u636e\\n initLogData(productData) {\\n let postData = {\\n requestor:\'st\',\\n notifyImmediately:this.notifyImmediately,\\n operator: this.userInfo.loginName,\\n tlab_id: productData.tlabTestObjectId,\\n id: productData.id,\\n keyword: this.keyword,\\n device_name: productData.name,\\n project_info: {\\n id: productData.cycleId,\\n email_list: this.email_list,\\n url: this.peojectUrl + \\"cycleDetails/\\" + productData.cycleId\\n },\\n op: \\"on\\"\\n };\\n let cmd = [];\\n let cmd2interval = [];\\n let keyword2cmd = [];\\n let keyListObj = {}\\n for (let item of this.cmdsItem) {\\n if(item.cmd.length>0){\\n let key = item.keyword\\n let keyListItem = keyListObj[key]||[]\\n keyListItem.push({\\n interval:item.interval,\\n count:item.count,\\n command:item.cmd.join(\'\\\\n\'),\\n })\\n Object.assign(keyListObj,{[key]:keyListItem})\\n }\\n \\n }\\n for(let k2 in keyListObj){\\n let k2Item = {\\n key_word:k2,\\n cmds:keyListObj[k2]\\n }\\n keyword2cmd.push(k2Item)\\n }\\n Object.assign(postData, {keyword2cmd });\\n Object.assign(postData.project_info, {cmdsItem:this.cmdsItem,contentSpanArr:this.contentSpanArr});\\n return postData;\\n },\\n\\n getManager(value,userMap){\\n this.email_list = [];\\n this.email_list_map = {};\\n if(value.length >0){\\n for (var i = 0; i < value.length; i++) { \\n this.email_list.push(userMap[value[i]])\\n this.email_list_map[userMap[value[i]]] =value[i]\\n }\\n }\\n },\\n downMonitorLog(category){\\n let data = {\\n category,\\n asset_id:this.productData.tlabTestObjectId\\n }\\n api.labApi\\n .getDownloadUrl(data)\\n .then(data => {\\n var iframe =document.createElement(\\"iframe\\")\\n iframe.style.display =\\"none\\";\\n iframe.src = data;\\n document.body.appendChild(iframe);\\n })\\n },\\n dumpLink(type){\\n let idArray = this.productData.tlabTestObjectId.split(\'-\');\\n let moniUrl = \'\'\\n if(type==\'monitor\'){\\n moniUrl = `${\\n api.labApi.labUrl\\n }/resource/managed/#/monitor/${idArray[0]}/${idArray[1]}/${idArray[2]}?is_ontime=on`;\\n }else{\\n moniUrl = `${\\n api.labApi.labUrl\\n }/resource/managed/#/outOfMem/${idArray[0]}/${idArray[1]}/${idArray[2]}`;\\n }\\n window.open(moniUrl);\\n },\\n handelBasicOpenMonitor(ev, row) {\\n row.is_send_email = ev;\\n },\\n // setKeyWorlds(){\\n // let monitorCopy = this.monitorData;\\n // for (let i = 0; i < monitorCopy.length; i++) {\\n // if(monitorCopy[i].category == \\"log\\"){\\n // monitorCopy[i].threshold = this.logData\\n // }\\n // }\\n // this.monitorData = [...monitorCopy];\\n // },\\n\\n async setBatchMonitor(){\\n // \\u7ec4\\u88c5monitor\\u6570\\u636e\\n let basicData = {}\\n let timeData = {}\\n let outOfMemData = {}\\n if (this.checkList.indexOf(\'\\u57fa\\u672c\\u76d1\\u63a7\') != -1){\\n basicData = {\\n monitor_type: \'basic\',\\n monitor_data: this.monitorData\\n }\\n }\\n // if (this.checkList.indexOf(\'\\u5b9e\\u65f6\\u76d1\\u63a7\') != -1){\\n // timeData = {\\n // monitor_type: \'real_time\',\\n // monitor_data: this.timeMonitorData\\n // }\\n // }\\n // if (this.checkList.indexOf(\'\\u5185\\u5b58\\u6cc4\\u6f0f\\u76d1\\u63a7\') != -1){\\n // outOfMemData = {\\n // monitor_type: \'out_of_mem\',\\n // monitor_data: this.outOfMemData\\n // }\\n // }\\n \\n let config = []\\n if(basicData.hasOwnProperty(\'monitor_data\')){\\n config.push(basicData)\\n };\\n \\n if(timeData.hasOwnProperty(\'monitor_data\')){\\n config.push(timeData)\\n }\\n if(outOfMemData.hasOwnProperty(\'monitor_data\')){\\n config.push(outOfMemData)\\n }\\n\\n let monitorData = {}\\n if (config.length > 0){\\n let asset = []\\n if (this.sourceType == \\"deviceList\\"){\\n // \\u5904\\u7406\\u8bbe\\u5907\\u5217\\u8868\\u7684\\u6570\\u636e\\n let deviceData = this.dealDeviceData()\\n for (let key in deviceData){\\n let cycle_info = {\\n id: key\\n }\\n\\n let asset_info = []\\n for (let i in deviceData[key]){\\n asset_info.push({\\n id: deviceData[key][i].tlabTestObjectId,\\n st_id: deviceData[key][i].id,\\n name: deviceData[key][i].name,\\n ip: deviceData[key][i].ip\\n })\\n }\\n asset.push({\\n cycle_info,\\n asset_info\\n })\\n }\\n\\n }else{\\n let asset_info = []\\n for (let i in this.testObjSelDataList){\\n asset_info.push({\\n id: this.testObjSelDataList[i].tlabTestObjectId,\\n st_id: this.testObjSelDataList[i].id,\\n name: this.testObjSelDataList[i].name,\\n ip: this.testObjSelDataList[i].ip\\n })\\n }\\n let cycle_info = {\\n id: parseInt(this.$route.params.id)\\n }\\n asset = [{\\n cycle_info,\\n asset_info\\n }]\\n }\\n \\n monitorData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset,\\n monitor: config\\n };\\n };\\n\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let asset_id = []\\n for (let i in this.testObjSelDataList){\\n asset_id.push(this.testObjSelDataList[i].tlabTestObjectId)\\n }\\n\\n let email_data = {\\n \\"asset_id\\": asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n \\n // \\u5e76\\u53d1\\u8c03\\u7528\\n if (config.length > 0 && this.checkList.indexOf(\'\\u4e32\\u53e3\\u65e5\\u5fd7\\u76d1\\u63a7\') != -1){\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.labApi.setProductMonitors(monitorData);\\n let logMonitorApi = await this.setBatchLogMonitor();\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runAllApi([emailApi, bMonitorApi, logMonitorApi],false,false)\\n return\\n };\\n\\n if (config.length > 0) {\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.labApi.setProductMonitors(monitorData);\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi,bMonitorApi],false,false)\\n return\\n };\\n\\n if (this.checkList.indexOf(\'\\u4e32\\u53e3\\u65e5\\u5fd7\\u76d1\\u63a7\') != -1){\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let logMonitorApi = await this.setBatchLogMonitor();\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi, logMonitorApi],false,false)\\n return\\n }\\n },\\n\\n async saveChanelLog(){\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let asset_id = []\\n for (let i in this.testObjSelDataList){\\n asset_id.push(this.testObjSelDataList[i].tlabTestObjectId)\\n }\\n\\n let email_data = {\\n \\"asset_id\\": asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let logMonitorApi = await this.setBatchLogMonitor();\\n this.runTwoApi([emailApi, logMonitorApi],false,false)\\n },\\n\\n packageAssetInfoForMonitor(){\\n let asset_id = []\\n let asset = []\\n if (this.sourceType == \\"deviceList\\"){\\n // \\u5904\\u7406\\u8bbe\\u5907\\u5217\\u8868\\u7684\\u6570\\u636e\\n let deviceData = this.dealDeviceData()\\n for (let key in deviceData){\\n let cycle_info = {\\n id: key\\n }\\n\\n let asset_info = []\\n for (let i in deviceData[key]){\\n asset_id.push(deviceData[key][i].tlabTestObjectId)\\n asset_info.push({\\n id: deviceData[key][i].tlabTestObjectId,\\n st_id: deviceData[key][i].id,\\n name: deviceData[key][i].name,\\n ip: deviceData[key][i].ip,\\n product_line: deviceData[key][i].product_line,\\n })\\n }\\n asset.push({\\n cycle_info,\\n asset_info\\n })\\n }\\n\\n }else{\\n let asset_info = []\\n for (let i in this.testObjSelDataList){\\n asset_id.push(this.testObjSelDataList[i].tlabTestObjectId)\\n asset_info.push({\\n id: this.testObjSelDataList[i].tlabTestObjectId,\\n st_id: this.testObjSelDataList[i].id,\\n name: this.testObjSelDataList[i].name,\\n ip: this.testObjSelDataList[i].ip,\\n product_line: this.testObjSelDataList[i].product_line,\\n })\\n }\\n let cycle_info = {\\n id: parseInt(this.$route.params.id)\\n }\\n asset = [{\\n cycle_info,\\n asset_info\\n }]\\n } \\n \\n let assetInfo = {\\n asset,\\n asset_id\\n }\\n\\n return assetInfo\\n },\\n\\n async setFanMonitor(){\\n let fanDatas = [{\\n target: \\"product\\",\\n category: \\"fan\\",\\n is_open: this.fanSwitch,\\n is_send_email: this.fanSwitch,\\n interval: this.fanInterval,\\n }]\\n\\n let assetInfo = this.packageAssetInfoForMonitor()\\n \\n let monitorData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset: assetInfo.asset,\\n monitor: [{\\n monitor_type: \\"fan\\",\\n monitor_data: fanDatas\\n }]\\n };\\n\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let email_data = {\\n \\"asset_id\\": assetInfo.asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n \\n // \\u5e76\\u53d1\\u8c03\\u7528\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.labApi.setProductMonitors(monitorData);\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi,bMonitorApi],false,false)\\n },\\n\\n setTemperatureMonitor(){\\n let temperatureDatas = [{\\n type: \\"temperature\\",\\n category: \\"temperature\\",\\n is_open: this.temperatureSwitch,\\n period: this.temperatureInterval,\\n threshold: {\\n value: this.temperatureValue\\n }\\n }];\\n let assetInfo = this.packageAssetInfoForMonitor()\\n \\n let monitorData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset: assetInfo.asset,\\n monitor: temperatureDatas\\n };\\n\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let email_data = {\\n \\"asset_id\\": assetInfo.asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n \\n // \\u5e76\\u53d1\\u8c03\\u7528\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.disApi.setDmsMonitor(monitorData);\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi,bMonitorApi],false,false)\\n },\\n\\n setPowerMonitor(){\\n let powerDatas = [{\\n type: \\"power\\",\\n category: \\"power\\",\\n is_open: this.powerSwitch,\\n period: this.powerInterval,\\n }];\\n let assetInfo = this.packageAssetInfoForMonitor()\\n \\n let monitorData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset: assetInfo.asset,\\n monitor: powerDatas\\n };\\n\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let email_data = {\\n \\"asset_id\\": assetInfo.asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n \\n // \\u5e76\\u53d1\\u8c03\\u7528\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.disApi.setDmsMonitor(monitorData);\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi,bMonitorApi],false,false)\\n },\\n\\n setDisNetworkMonitor(){\\n let disNetworkDatas = [{\\n type: \\"dis_network\\",\\n category: \\"dis_network\\",\\n is_open: this.disNetworkSwitch,\\n period: this.disNetworkInterval,\\n }];\\n let assetInfo = this.packageAssetInfoForMonitor()\\n \\n let monitorData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset: assetInfo.asset,\\n monitor: disNetworkDatas\\n };\\n\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let email_data = {\\n \\"asset_id\\": assetInfo.asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n \\n // \\u5e76\\u53d1\\u8c03\\u7528\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.disApi.setDmsMonitor(monitorData);\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi,bMonitorApi],false,false)\\n },\\n\\n setGpuMonitor(){\\n let gpuDatas = [{\\n type: \\"gpu\\",\\n category: \\"gpu\\",\\n is_open: this.gpuSwitch,\\n period: this.gpuInterval,\\n }];\\n let assetInfo = this.packageAssetInfoForMonitor()\\n \\n let monitorData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset: assetInfo.asset,\\n monitor: gpuDatas\\n };\\n\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let email_data = {\\n \\"asset_id\\": assetInfo.asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n \\n // \\u5e76\\u53d1\\u8c03\\u7528\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.disApi.setDmsMonitor(monitorData);\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi,bMonitorApi],false,false)\\n },\\n\\n setSystemNetworkMonitor(){\\n let systemNetworkDatas = [{\\n type: \\"system_network\\",\\n category: \\"system_network\\",\\n is_open: this.systemNetworkSwitch,\\n period: this.systemNetworkInterval,\\n }];\\n let assetInfo = this.packageAssetInfoForMonitor()\\n \\n let monitorData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset: assetInfo.asset,\\n monitor: systemNetworkDatas\\n };\\n\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let email_data = {\\n \\"asset_id\\": assetInfo.asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n \\n // \\u5e76\\u53d1\\u8c03\\u7528\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.disApi.setDmsMonitor(monitorData);\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi,bMonitorApi],false,false)\\n },\\n\\n async setProcessMonitor(){\\n let processDatas = [{\\n target: \\"product\\",\\n category: \\"product_process\\",\\n is_open: this.processSwitch,\\n is_send_email: this.processSwitch,\\n interval: this.processInterval,\\n process_names: this.processNames\\n }]\\n\\n let assetInfo = this.packageAssetInfoForMonitor()\\n\\n let monitorData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset: assetInfo.asset,\\n monitor: [{\\n monitor_type: \\"product_process\\",\\n monitor_data: processDatas\\n }]\\n };\\n\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let email_data = {\\n \\"asset_id\\": assetInfo.asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n \\n // \\u5e76\\u53d1\\u8c03\\u7528\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.labApi.setProductMonitors(monitorData);\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi,bMonitorApi],false,false)\\n },\\n\\n async setOutOfMemMonitor(){\\n let assetInfo = this.packageAssetInfoForMonitor()\\n\\n let monitorData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset: assetInfo.asset,\\n monitor: [{\\n monitor_type: \\"out_of_mem\\",\\n monitor_data: this.outOfMemData\\n }]\\n };\\n\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let email_data = {\\n \\"asset_id\\": assetInfo.asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n \\n // \\u5e76\\u53d1\\u8c03\\u7528\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.labApi.setProductMonitors(monitorData);\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi,bMonitorApi],false,false)\\n },\\n\\n async setTimeMonitor(){\\n let assetInfo = this.packageAssetInfoForMonitor()\\n\\n let monitorData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset: assetInfo.asset,\\n monitor: [{\\n monitor_type: \\"real_time\\",\\n monitor_data: this.timeMonitorData\\n }]\\n };\\n\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let email_data = {\\n \\"asset_id\\": assetInfo.asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n \\n // \\u5e76\\u53d1\\u8c03\\u7528\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.labApi.setProductMonitors(monitorData);\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi,bMonitorApi],false,false)\\n },\\n\\n async setAllMonitor() {\\n let basicData = {\\n monitor_type: \'basic\',\\n monitor_data: this.monitorData\\n };\\n let monitor = [basicData];\\n\\n let asset = []\\n let cycle_info = {}\\n if (this.sourceType == \\"deviceList\\"){\\n // \\u5904\\u7406\\u8bbe\\u5907\\u5217\\u8868\\u8fc7\\u6765\\u7684\\u6570\\u636e\\n cycle_info = {\\n id: this.productData.cycle.id\\n }\\n }else{\\n cycle_info = {\\n id: parseInt(this.$route.params.id)\\n }\\n }\\n\\n asset.push({\\n cycle_info,\\n asset_info: [{\\n id: this.productData.tlabTestObjectId,\\n st_id: this.productData.id,\\n name: this.productData.name,\\n ip: this.productData.ip\\n }]\\n })\\n\\n let data = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset,\\n monitor\\n };\\n\\n let email_data = {\\n \\"asset_id\\": [this.productData.tlabTestObjectId],\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n\\n // \\u65b0\\u7684\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.labApi.setProductMonitors(data)\\n let logData = await this.setLogMonitor()\\n this.runAllApi([emailApi, bMonitorApi, logData.logMonitorApi], data, logData.postData)\\n },\\n\\n // \\u5904\\u7406\\u8bbe\\u5907\\u5217\\u8868\\u7684\\u6570\\u636e\\n dealDeviceData(){\\n const deviceData = {}\\n this.testObjSelDataList.map(item => {\\n const id = item.cycle.id;\\n if ( Object.keys(deviceData).indexOf(id.toString()) == -1) {\\n deviceData[id] = Array.from({length:1}).fill(item);\\n } else {\\n deviceData[id].push(item)\\n }\\n })\\n\\n return deviceData\\n },\\n\\n closeMonitorDialog(){\\n this.syncConfigSwitch = false\\n this.monitorSetModel = false\\n this.isViewKeyDialogShow = false\\n this.syncBindValue = \'\'\\n this.keyword = [];\\n this.processSwitch = false;\\n this.processNames = [];\\n this.processInterval = 600;\\n this.fanSwitch = false;\\n this.fanInterval = 600;\\n this.temperatureSwitch = false;\\n this.temperatureValue = 90;\\n this.temperatureInterval = 600;\\n this.powerSwitch = false;\\n this.powerInterval = 600;\\n this.disNetworkSwitch = false;\\n this.disNetworkInterval = 600;\\n this.gpuSwitch = false;\\n this.gpuInterval = 600;\\n this.systemNetworkSwitch = false;\\n this.systemNetworkInterval = 600;\\n },\\n\\n setProductMonitor(){\\n if (this.batchFlag){\\n this.setBatchMonitor()\\n this.monitorSetModel = false // \\u6279\\u91cf\\u76d1\\u63a7\\n }else{\\n this.setAllMonitor() // \\u5355\\u4e2a\\u76d1\\u63a7\\n }\\n this.isViewKeyDialogShow = false\\n this.syncConfigSwitch = false\\n },\\n\\n // setConfigMonitor(){\\n // if (this.syncConfigSwitch && this.syncBindValue == \'\'){\\n // console.log(\\"\\u6ca1\\u6709\\u9009\\u62e9\\u8bbe\\u5907\\")\\n // this.$confirm(\\"\\u60a8\\u52fe\\u9009\\u4e86\\u4ece\\u5176\\u5b83\\u8bbe\\u5907\\u540c\\u6b65\\u914d\\u7f6e\\uff0c\\u4f46\\u662f\\u6ca1\\u6709\\u9009\\u62e9\\u8bbe\\u5907\\uff0c\\u5c06\\u4e0d\\u80fd\\u4ece\\u8bbe\\u5907\\u540c\\u6b65\\u914d\\u7f6e\\uff0c\\u662f\\u5426\\u7ee7\\u7eed\\u914d\\u7f6e\\uff08\\u4f7f\\u7528\\u73b0\\u6709\\u9875\\u9762\\u5c55\\u793a\\u7684\\u914d\\u7f6e\\uff09\\", \'\\u63d0\\u793a\', {\\n // confirmButtonText: \'\\u7ee7\\u7eed\',\\n // cancelButtonText: \'\\u53d6\\u6d88\',\\n // type: \'warning\'\\n // }).then(() => {\\n // this.setProductMonitor()\\n // }).catch(() => {\\n // this.$message({\\n // type: \'info\',\\n // message: \'\\u5df2\\u53d6\\u6d88\\u914d\\u7f6e\'\\n // }); \\n // });\\n // }else{\\n // this.setProductMonitor()\\n // }\\n // },\\n\\n\\n setBasicMonitor(){\\n let basicData = this.monitorData\\n\\n let checkArry = [\'cpu_percent\', \'memory_percent\', \'db_memory_percent\']\\n for (let i in basicData){\\n if (checkArry.indexOf(basicData[i].category) != -1){\\n if (basicData[i].threshold.max_value <= basicData[i].threshold.min_value && basicData[i].is_open){\\n this.$message.error(\\"\\u76d1\\u63a7\\u9879 <\\" + basicData[i].category_display + \\"> \'\\u4f7f\\u7528\\u7387\\u6700\\u5927\\u503c\' \\u5c0f\\u4e8e\\u7b49\\u4e8e \'\\u4f7f\\u7528\\u7387\\u6700\\u5c0f\\u503c\'\\uff0c\\u8bf7\\u4fee\\u6539\\uff01\\")\\n return\\n }\\n }\\n }\\n\\n let rebootInfo = basicData.pop()\\n\\n let assetInfo = this.packageAssetInfoForMonitor()\\n let basicMonitorData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset: assetInfo.asset,\\n monitor: [{\\n monitor_type: \\"basic\\",\\n monitor_data: basicData\\n }]\\n };\\n\\n // \\u7ec4\\u88c5\\u90ae\\u4ef6\\u90e8\\u5206\\u6570\\u636e\\n let email_data = {\\n \\"asset_id\\": assetInfo.asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n\\n let rebootData = {\\n requestor:\'st\',\\n operator: this.userInfo.loginName,\\n creator_name: this.userInfo.name,\\n asset: assetInfo.asset,\\n monitor: {\\n is_open: rebootInfo.is_open\\n }\\n }\\n api.disApi.setRebootMonitor(rebootData)\\n \\n // \\u5e76\\u53d1\\u8c03\\u7528\\n let emailApi = api.labApi.setEmailConfig(email_data)\\n let bMonitorApi = api.labApi.setProductMonitors(basicMonitorData);\\n // \\u540e\\u9762\\u4e24\\u4e2a\\u5b57\\u6bb5\\u548c\\u8427\\u5cf0\\u7ea6\\u5b9a\\u4e34\\u65f6\\u6539\\u4e3afalse,false\\n this.runTwoApi([emailApi,bMonitorApi],false,false)\\n },\\n\\n getDmsConfig(ais_id){\\n let dmsConfig = [\\"temperature\\", \\"power\\", \\"dis_network\\", \\"gpu\\", \\"system_network\\"]\\n for (let i in dmsConfig){\\n let dmsParams = {\\n asset_id: ais_id,\\n category: dmsConfig[i]\\n }\\n api.disApi.getDmsMonitor(dmsParams).then(res=>{\\n if (res.success) {\\n switch(res.data.category){\\n case \'temperature\':\\n this.temperatureValue = res.data.threshold.value\\n this.temperatureSwitch = res.data.switch\\n this.temperatureInterval = res.data.period\\n break;\\n case \'power\':\\n this.powerSwitch = res.data.switch\\n this.powerInterval = res.data.period\\n break;\\n case \'dis_network\':\\n this.disNetworkSwitch = res.data.switch\\n this.disNetworkInterval = res.data.period\\n break;\\n case \'gpu\':\\n this.gpuSwitch = res.data.switch\\n this.gpuInterval = res.data.period\\n break;\\n case \'system_network\':\\n this.systemNetworkSwitch = res.data.switch\\n this.systemNetworkInterval = res.data.period\\n break;\\n default:\\n break;\\n }\\n }\\n })\\n .catch(err => {\\n this.$message.error(\'\\u4ece\\u8bbe\\u5907\\u76d1\\u63a7\\u670d\\u52a1\\u83b7\\u53d6\\u8bbe\\u5907\\u76d1\\u63a7\\u914d\\u7f6e\\u5931\\u8d25\\uff1a\', err);\\n });\\n }\\n },\\n\\n getConfigMonitor(data, isSyncConfig) {\\n var isSyncFlag = arguments[1]?arguments[1]:false\\n if (!isSyncConfig){\\n this.checkList = []\\n if (this.testObjSelDataList.length > 1){\\n this.batchFlag = true // \\u83b7\\u53d6\\u9ed8\\u8ba4\\u914d\\u7f6e\\uff0c\\u6279\\u91cf\\u914d\\u7f6e\\u76d1\\u63a7\\n this.logSwitch = false\\n this.monitorTitle = \\"\\u6279\\u91cf\\u76d1\\u63a7\\u914d\\u7f6e\\"\\n this.email_list = []\\n this.email_list_map = {}\\n }else{\\n this.monitorTitle = \'\\u8bbe\\u5907\\u540d\\u79f0: \'+ data.name\\n this.checkList = this.allCheckList\\n this.batchFlag = false // \\u83b7\\u53d6\\u5355\\u4e2a\\u914d\\u7f6e\\uff0c\\u5355\\u4e2a\\u914d\\u7f6e\\u76d1\\u63a7\\n api.labApi\\n .getEmailConfig(data.tlabTestObjectId)\\n .then(res => {\\n if (res.success) {\\n this.email_list = res.data.email_list;\\n this.email_list_map = res.data.email_list_map\\n }\\n })\\n }\\n }\\n\\n this.handleTabClick({name:\'logMonitor\'}, isSyncFlag)\\n\\n let tlabId = \\"\\"\\n if (isSyncConfig){\\n tlabId = this.syncBindValue.tlabTestObjectId\\n } else {\\n tlabId = data.tlabTestObjectId\\n }\\n\\n if (!this.batchFlag){\\n this.getDmsConfig(tlabId)\\n }\\n \\n // \\u4ecetlab\\u83b7\\u53d6\\n api.labApi\\n .getProductMonitors(this.userInfo.loginName, tlabId, this.batchFlag)\\n .then(res => {\\n if (res.success) {\\n const { config } = res.data;\\n if (config && config.length > 0) {\\n for (let item of config) {\\n switch(item.monitor_type){\\n case \'basic\':\\n this.monitorData = [...item.monitor_data];\\n this.getDeviceRebootMonitor(tlabId)\\n this.handleLogData();\\n break;\\n case \'real_time\':\\n this.timeMonitorData = [...item.monitor_data];\\n break;\\n case \'out_of_mem\':\\n this.outOfMemData = [...item.monitor_data];\\n break;\\n case \'product_process\':\\n let processMonitorData = [...item.monitor_data];\\n if (processMonitorData.length == 1){\\n this.processSwitch = processMonitorData[0].is_open;\\n this.processNames = processMonitorData[0].process_names;\\n this.processInterval = processMonitorData[0].interval\\n } else {\\n console.log(\\"\\u8fdb\\u7a0b\\u6570\\u636e\\u540e\\u53f0\\u8fd4\\u56de\\u6709\\u95ee\\u9898: \\", processMonitorData);\\n }\\n break;\\n case \'fan\':\\n let fanMonitorData = [...item.monitor_data]; \\n this.fanSwitch = fanMonitorData[0].is_open;\\n this.fanInterval = fanMonitorData[0].interval;\\n break;\\n default:\\n break;\\n }\\n }\\n }\\n this.monitorSetModel = true;\\n } else {\\n this.$message.error(`${res.msg}`);\\n }\\n })\\n .catch(err => {\\n console.log(err);\\n this.$message.error(\'\\u83b7\\u53d6\\u76d1\\u63a7\\u914d\\u7f6e\\u9519\\u8bef\');\\n });\\n },\\n\\n handleLogData(){\\n let monitorData = this.monitorData;\\n this.logData = {\\n keyword:[],\\n cmd:[]\\n }\\n for (let i = 0; i < monitorData.length; i++) {\\n if(monitorData[i].category == \'log\'){\\n if(monitorData[i].threshold){\\n monitorData[i].threshold = {\\n ...monitorData[i].threshold,\\n project_info:{\\n id:this.cycleId,\\n url:this.peojectUrl+\'cycleDetails/\'+this.cycleId\\n }\\n }\\n // let thresholdData = JSON.parse(monitorData[i].threshold)\\n // this.logData = {...this.logData,...thresholdData}\\n }\\n break;\\n }\\n }\\n this.monitorData = [...monitorData];\\n },\\n\\n getTypes(batchType){\\n this.checkList = batchType\\n let currentTab = batchType[batchType.length-1]\\n if (currentTab == \\"\\u4e32\\u53e3\\u65e5\\u5fd7\\u76d1\\u63a7\\"){\\n this.monitorActiveName = \\"logMonitor\\"\\n } else if (currentTab == \\"\\u5b9e\\u65f6\\u76d1\\u63a7\\"){\\n this.monitorActiveName = \\"timeMonitor\\"\\n } else if (currentTab == \\"\\u5185\\u5b58\\u6cc4\\u6f0f\\u76d1\\u63a7\\"){\\n this.monitorActiveName = \\"outOfMem\\"\\n } else if (currentTab == \\"\\u8fdb\\u7a0b\\u76d1\\u63a7\\"){\\n this.monitorActiveName = \\"processMonitor\\"\\n }else if (currentTab == \\"\\u98ce\\u6247\\u76d1\\u63a7\\"){\\n this.monitorActiveName = \\"fanMonitor\\"\\n }else if (currentTab == \\"\\u6e29\\u5ea6\\u76d1\\u63a7\\"){\\n this.monitorActiveName = \\"temperatureMonitor\\"\\n }else if (currentTab == \\"\\u7535\\u6e90\\u76d1\\u63a7\\"){\\n this.monitorActiveName = \\"powerMonitor\\"\\n }else if (currentTab == \\"\\u7f51\\u7edc\\u72b6\\u6001\\"){\\n this.monitorActiveName = \\"disNetworkMonitor\\"\\n }else if (currentTab == \\"GPU\\u76d1\\u63a7\\"){\\n this.monitorActiveName = \\"gpuMonitor\\"\\n }else if (currentTab == \\"\\u4e3b\\u63a7/\\u5b50\\u7cfb\\u7edf\\u7f51\\u7edc\\u3001pcie\\u72b6\\u6001\\"){\\n this.monitorActiveName = \\"systemNetworkMonitor\\"\\n }\\n else if (currentTab == \\"\\u8fdc\\u7a0b\\u65e5\\u5fd7\\"){\\n this.monitorActiveName = \\"remoteMonitor\\"\\n }\\n else if (currentTab == \\"\\u7cfb\\u7edf\\u65e5\\u5fd7\\"){\\n this.monitorActiveName = \\"sysLogMonitor\\"\\n }\\n else if (currentTab == \\"core\\u6587\\u4ef6\\"){\\n this.monitorActiveName = \\"coreMonitor\\"\\n }\\n else{\\n this.monitorActiveName = \\"basicMonitor\\"\\n }\\n },\\n\\n renderHeader (h,{column}) {\\n let prompt = \'\\u5173\\u952e\\u5b57\\u4e0d\\u4e3a\\u7a7a\\uff0c\\u8868\\u793a\\u8f93\\u5165\\u7684\\u547d\\u4ee4\\u53ea\\u6709\\u5728\\u8be5\\u5173\\u952e\\u5b57\\u51fa\\u73b0\\u624d\\u4f1a\\u6267\\u884c\\uff1b\\u5173\\u952e\\u5b57\\u4e3a\\u7a7a\\uff0c\\u8868\\u793a\\u547d\\u4ee4\\u7684\\u6267\\u884c\\u548c\\u5173\\u952e\\u5b57\\u65e0\\u5173\\uff0c\\u6309\\u8bbe\\u7f6e\\u81ea\\u52a8\\u89e6\\u53d1\\u6267\\u884c \'\\n return h(\\n \'div\',[ \\n h(\'span\', column.label),\\n h(\'el-tooltip\',{\\n \\u3000\\u3000\\u3000\\u3000 props:{\\n \\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000effect:\'dark\',\\n \\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000content:prompt,\\n \\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000placement:\'top\'\\n \\u3000\\u3000\\u3000\\u3000\\u3000\\u3000 },\\u3000\\u3000\\u3000 \\n \\u3000\\u3000\\u3000\\u3000 },[\\n h(\'i\', {\\n class:\'el-icon-question\',\\n style:\'color:#e6a23c;margin-left:5px;\'\\n })\\n ],{\\n content:prompt,\\n })\\n ] \\n );\\n },\\n\\n renderHeaderCmd (h,{column}) {\\n let prompt = \'\\u6267\\u884c\\u547d\\u4ee4\\u4e3a\\u7a7a\\u5219\\u4e0d\\u4f1a\\u4fdd\\u5b58\\u8be5\\u6761\\u6267\\u884c\\u914d\\u7f6e\\u4fe1\\u606f\\u3002\'\\n return h(\\n \'div\',[ \\n h(\'span\', column.label),\\n h(\'el-tooltip\',{\\n \\u3000\\u3000\\u3000\\u3000 props:{\\n \\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000effect:\'dark\',\\n \\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000content:prompt,\\n \\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000\\u3000placement:\'top\'\\n \\u3000\\u3000\\u3000\\u3000\\u3000\\u3000 },\\u3000\\u3000\\u3000 \\n \\u3000\\u3000\\u3000\\u3000 },[\\n h(\'i\', {\\n class:\'el-icon-question\',\\n style:\'color:#e6a23c;margin-left:5px;\'\\n })\\n ],{\\n content:prompt,\\n })\\n ] \\n );\\n },\\n\\n addKeyword(){\\n this.$refs.executeList.getExecuteListNew()\\n this.$refs.executeList.getKeywordInfo()\\n },\\n \\n deleteCoreItem(i){\\n this.coreForm.coreItems.splice(i,1)\\n\\n },\\n\\n addCoreItem(){\\n this.coreForm.coreItems.push({\\n keywords:\'\',\\n path:\'\'\\n })\\n },\\n\\n async saveRemotesLog(){\\n let configItem;\\n let actuatorBody = []\\n let deviceData = {}\\n let isOpen = this.sysLogSwitch\\n if (this.sourceType == \\"deviceList\\"){\\n deviceData = this.dealDeviceData()\\n } else {\\n let cycleId = parseInt(this.$route.params.id)\\n deviceData[cycleId] = this.testObjSelDataList\\n }\\n \\n for (let key in deviceData){\\n let kr_ids = []\\n let logItems = []\\n for (let i in deviceData[key]){\\n kr_ids.push(deviceData[key][i].id)\\n configItem = this.initRemoteLogData(deviceData[key][i]);\\n logItems.push(configItem)\\n }\\n\\n actuatorBody.push({\\n cycle_id: key,\\n kr_device_ids: kr_ids,\\n action: isOpen? \\"on\\" : \\"off\\",\\n username_cn: this.userInfo.name,\\n log_items: logItems,\\n })\\n }\\n\\n api.logApi.updateRemoteLogAndUpdateTask(actuatorBody).then(res => {\\n this.monitorSetModel = false\\n this.$message.info(\'\\u914d\\u7f6e\\u4e0b\\u53d1\\u6210\\u529f\\uff0c\\u8bf7\\u7a0d\\u540e\\u5728\\u4efb\\u52a1\\u7ba1\\u7406\\u4e2d\\u5fc3\\u67e5\\u770b\\u7ed3\\u679c\');\\n })\\n .catch(err => {\\n this.$message.error(\'\\u8bbe\\u7f6e\\u76d1\\u63a7\\u5931\\u8d25\\uff0c\\u8c03\\u7528Actuator\\u63a5\\u53e3\\u5f02\\u5e38\');\\n });\\n\\n let asset_id = []\\n for (let i in this.testObjSelDataList){\\n asset_id.push(this.testObjSelDataList[i].tlabTestObjectId)\\n }\\n\\n let email_data = {\\n \\"asset_id\\": asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n let emailApi = api.labApi.setEmailConfig(email_data).then(_=>{})\\n \\n },\\n\\n initRemoteLogData(productData){\\n // id device_name \\u540e\\u53f0\\u901a\\u7528\\u63a5\\u53e3\\u9700\\u8981\\n let status = this.sysLogSwitch?\'open\':\'close\'\\n let emails = this.email_list.map(item=>{\\n return item+\'@hikvision.com.cn\'\\n })\\n let postData = {\\n requestor:\'st\',\\n id: productData.id,\\n device_name: productData.name,\\n\\n operator: this.userInfo.loginName,\\n deviceId: productData.id,\\n deviceIp: productData.ip,\\n status: status,\\n key_word: this.sysLogKeyword,\\n deviceName: productData.name,\\n email:emails,\\n product_url: this.peojectUrl + \\"cycleDetails/\\" + productData.cycleId\\n };\\n\\n return postData\\n },\\n\\n saveSystemLog(){\\n let configItem;\\n let actuatorBody = []\\n let deviceData = {}\\n let isOpen = this.mtlogSwitch\\n if (this.sourceType == \\"deviceList\\"){\\n deviceData = this.dealDeviceData()\\n } else {\\n let cycleId = parseInt(this.$route.params.id)\\n deviceData[cycleId] = this.testObjSelDataList\\n }\\n\\n for (let key in deviceData){\\n let kr_ids = []\\n let logItems = []\\n for (let i in deviceData[key]){\\n kr_ids.push(deviceData[key][i].id)\\n configItem = this.initSysLogData(deviceData[key][i]);\\n logItems.push(configItem)\\n }\\n actuatorBody.push({\\n cycle_id: key,\\n kr_device_ids: kr_ids,\\n action: isOpen? \\"on\\" : \\"off\\",\\n username_cn: this.userInfo.name,\\n log_items: logItems,\\n })\\n\\n api.logApi.updateSysLogAndUpdateTask(actuatorBody).then(res => {\\n this.monitorSetModel = false\\n this.$message.info(\'\\u914d\\u7f6e\\u4e0b\\u53d1\\u6210\\u529f\\uff0c\\u8bf7\\u7a0d\\u540e\\u5728\\u4efb\\u52a1\\u7ba1\\u7406\\u4e2d\\u5fc3\\u67e5\\u770b\\u7ed3\\u679c\');\\n })\\n .catch(err => {\\n this.$message.error(\'\\u8bbe\\u7f6e\\u5931\\u8d25\\uff0c\\u8c03\\u7528Actuator\\u63a5\\u53e3\\u5f02\\u5e38\');\\n });\\n\\n let asset_id = []\\n for (let i in this.testObjSelDataList){\\n asset_id.push(this.testObjSelDataList[i].tlabTestObjectId)\\n }\\n\\n let email_data = {\\n \\"asset_id\\": asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n let emailApi = api.labApi.setEmailConfig(email_data).then(_=>{})\\n\\n }\\n\\n },\\n\\n initSysLogData(productData){\\n let status = this.sysLogSwitch?\'open\':\'close\'\\n let postData = {\\n requestor:\'st\',\\n id: productData.id,\\n device_name: productData.name,\\n\\n tlab_id: productData.tlabTestObjectId,\\n operator: this.userInfo.loginName,\\n keywords: this.mtkeyword,\\n mtLog_path: this.mtlogPath,\\n config_info:{\\n id:productData.cycleId,\\n url:this.peojectUrl + \\"cycleDetails/\\" + productData.cycleId,\\n email_list:this.email_list\\n }\\n };\\n\\n return postData\\n\\n },\\n\\n getSysLogChanId(){\\n let productData = this.testObjSelDataList[0]\\n let params = {\\n id:productData.id,\\n tlab_id:productData.tlabTestObjectId,\\n requestor:\'st\',\\n }\\n api.logApi.getMtlogInfo(params).then(res=>{\\n if(res.success){\\n this.mtlogSwitch = res.data.state==\'on\'?true:false\\n this.mtkeyword = res.data.keywords\\n this.mtlogPath = res.data.mtLog_path\\n }\\n })\\n },\\n\\n getCoreLogChanId(){\\n let productData = this.testObjSelDataList[0]\\n let params = {\\n id:productData.id,\\n tlab_id:productData.tlabTestObjectId,\\n requestor:\'st\',\\n }\\n api.logApi.getCorelogInfo(params).then(res=>{\\n if(res.success){\\n this.coreForm.coreLogSwitch = res.data.state==\'on\'?true:false\\n this.coreForm.corelogPath = res.data.core_path\\n if(res.data.file_config&&res.data.file_config.length>0){\\n this.coreForm.coreItems = res.data.file_config\\n }\\n }\\n })\\n },\\n\\n getDeviceRebootMonitor(tlabId){\\n api.disApi.getRebootMonitor(tlabId).then(res=>{\\n if (res.success){\\n this.monitorData.push({\\n \\"target\\": \\"product\\",\\n \\"category\\": \\"deviceReboot\\",\\n \\"category_display\\": \\"\\u8bbe\\u5907\\u91cd\\u542f\\",\\n \\"is_open\\": res.data.is_open,\\n \\"is_send_email\\": res.data.is_open,\\n \\"threshold\\": \\"0\\"\\n })\\n } else {\\n this.monitorData.push({\\n \\"target\\": \\"product\\",\\n \\"category\\": \\"deviceReboot\\",\\n \\"category_display\\": \\"\\u8bbe\\u5907\\u91cd\\u542f\\",\\n \\"is_open\\": false,\\n \\"is_send_email\\": false,\\n \\"threshold\\": \\"0\\"\\n }) \\n }\\n })\\n },\\n\\n tagClick(){\\n if(this.monitorActiveName==\'remoteMonitor\'){\\n \\n }\\n if(this.monitorActiveName==\'sysLogMonitor\'){\\n if(this.testObjSelDataList.length==1){\\n this.getSysLogChanId()\\n }\\n };\\n if(this.monitorActiveName==\'coreMonitor\'){\\n if(this.testObjSelDataList.length==1){\\n this.getCoreLogChanId()\\n }\\n };\\n },\\n\\n saveCoreLog(){\\n let configItem;\\n let actuatorBody = []\\n let deviceData = {}\\n let isOpen = this.coreForm.coreLogSwitch\\n if (this.sourceType == \\"deviceList\\"){\\n deviceData = this.dealDeviceData()\\n } else {\\n let cycleId = parseInt(this.$route.params.id)\\n deviceData[cycleId] = this.testObjSelDataList\\n }\\n\\n for (let key in deviceData){\\n let kr_ids = []\\n let logItems = []\\n for (let i in deviceData[key]){\\n kr_ids.push(deviceData[key][i].id)\\n configItem = this.initCoreLog(deviceData[key][i]);\\n logItems.push(configItem)\\n }\\n actuatorBody.push({\\n cycle_id: key,\\n kr_device_ids: kr_ids,\\n action: isOpen? \\"on\\" : \\"off\\",\\n username_cn: this.userInfo.name,\\n log_items: logItems,\\n })\\n\\n api.logApi.updateCoreLogAndUpdateTask(actuatorBody).then(res => {\\n this.monitorSetModel = false\\n this.$message.info(\'\\u914d\\u7f6e\\u4e0b\\u53d1\\u6210\\u529f\\uff0c\\u8bf7\\u7a0d\\u540e\\u5728\\u4efb\\u52a1\\u7ba1\\u7406\\u4e2d\\u5fc3\\u67e5\\u770b\\u7ed3\\u679c\');\\n })\\n .catch(err => {\\n this.$message.error(\'\\u8bbe\\u7f6e\\u5931\\u8d25\\uff0c\\u8c03\\u7528Actuator\\u63a5\\u53e3\\u5f02\\u5e38\');\\n });\\n \\n let asset_id = []\\n for (let i in this.testObjSelDataList){\\n asset_id.push(this.testObjSelDataList[i].tlabTestObjectId)\\n }\\n\\n let email_data = {\\n \\"asset_id\\": asset_id,\\n \\"email_list\\": this.email_list,\\n \\"email_list_map\\": this.email_list_map\\n }\\n let emailApi = api.labApi.setEmailConfig(email_data).then(_=>{})\\n\\n }\\n\\n },\\n\\n initCoreLog(productData){\\n\\n let status = this.coreForm.coreLogSwitch?\'open\':\'close\'\\n let postData = {\\n requestor:\'st\',\\n id: productData.id,\\n device_name: productData.name,\\n\\n tlab_id: productData.tlabTestObjectId,\\n operator: this.userInfo.loginName,\\n config_info:{\\n id:productData.cycleId,\\n url:this.peojectUrl + \\"cycleDetails/\\" + productData.cycleId,\\n email_list:this.email_list\\n },\\n core_path:this.coreForm.corelogPath,\\n file_config:this.coreForm.coreItems\\n \\n }\\n\\n return postData\\n\\n }\\n\\n \\n\\n }\\n}\\n</script>\\n<style scoped>\\n.save-container{\\n position: relative;\\n text-align: center;\\n margin-top: 28px;\\n}\\n.monitor-close{\\n position: absolute;\\n right: 18px;\\n bottom: 10px;\\n}\\n</style>\\n<style>\\n.keyBtn{\\n display: inline-block;\\n margin-left:10px;\\n cursor: pointer;\\n padding:0;\\n}\\n.monitorTable .el-select__tags-text{\\n white-space: initial;;\\n}\\n.monitorTable .el-tag--mini{\\n height :auto;\\n line-height: auto;\\n}\\n.cmd-select .el-select--mini{\\n width: 100%;\\n}\\n.productMonitor .el-button.is-disabled,\\n.productMonitor .el-button.is-disabled:focus, \\n.productMonitor .el-button.is-disabled:hover{\\n color: #C0C4CC;\\n cursor: not-allowed;\\n background-image: none;\\n background-color: #FFF;\\n border-color: #EBEEF5;\\n}\\n/* .productMonitor-dialog .el-dialog__body{\\n padding: 30px 20px 0px 20px;\\n} */\\n/* .productMonitor-dialog.el-dialog__footer{\\n padding: 0px 20px 20px 20px ;\\n} */\\n</style>\\n","uri":"file:///home/qk/Workspace/stability/vue/branch/v0.0.1/src/components/dialog/productMonitor.vue","version":1}}}'
2019-10-16 15:28:34,890 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"window/logMessage","params":{"type":1,"message":"(node:16124) UnhandledPromiseRejectionWarning: TypeError: Cannot read property \'validation\' of undefined\\n at VLS.configure (/usr/local/lib/node_modules/vue-language-server/dist/services/vls.js:145:53)\\n at VLS.<anonymous> (/usr/local/lib/node_modules/vue-language-server/dist/services/vls.js:77:18)\\n at Generator.next (<anonymous>)\\n at /usr/local/lib/node_modules/vue-language-server/dist/services/vls.js:8:71\\n at new Promise (<anonymous>)\\n at __awaiter (/usr/local/lib/node_modules/vue-language-server/dist/services/vls.js:4:12)\\n at lspConnection.onDidChangeConfiguration (/usr/local/lib/node_modules/vue-language-server/dist/services/vls.js:76:71)\\n at handleNotification (/usr/local/lib/node_modules/vue-language-server/node_modules/vscode-jsonrpc/lib/main.js:500:43)\\n at processMessageQueue (/usr/local/lib/node_modules/vue-language-server/node_modules/vscode-jsonrpc/lib/main.js:271:17)\\n at Immediate.setImmediate [as _onImmediate] (/usr/local/lib/node_modules/vue-language-server/node_modules/vscode-jsonrpc/lib/main.js:258:13)"}}'
2019-10-16 15:28:34,890 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"window/logMessage","params":{"type":1,"message":"(node:16124) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)"}}'
2019-10-16 15:28:34,890 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"window/logMessage","params":{"type":1,"message":"(node:16124) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code."}}'
2019-10-16 15:28:34,962 - DEBUG - Server reported: Loaded bundled [email protected].
2019-10-16 15:28:34,962 - DEBUG - Server reported: Vetur initialized
2019-10-16 15:28:34,962 - ERROR - Server reported: (node:16124) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'validation' of undefined
at VLS.configure (/usr/local/lib/node_modules/vue-language-server/dist/services/vls.js:145:53)
at VLS.<anonymous> (/usr/local/lib/node_modules/vue-language-server/dist/services/vls.js:77:18)
at Generator.next (<anonymous>)
at /usr/local/lib/node_modules/vue-language-server/dist/services/vls.js:8:71
at new Promise (<anonymous>)
at __awaiter (/usr/local/lib/node_modules/vue-language-server/dist/services/vls.js:4:12)
at lspConnection.onDidChangeConfiguration (/usr/local/lib/node_modules/vue-language-server/dist/services/vls.js:76:71)
at handleNotification (/usr/local/lib/node_modules/vue-language-server/node_modules/vscode-jsonrpc/lib/main.js:500:43)
at processMessageQueue (/usr/local/lib/node_modules/vue-language-server/node_modules/vscode-jsonrpc/lib/main.js:271:17)
at Immediate.setImmediate [as _onImmediate] (/usr/local/lib/node_modules/vue-language-server/node_modules/vscode-jsonrpc/lib/main.js:258:13)
2019-10-16 15:28:34,962 - ERROR - Server reported: (node:16124) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
2019-10-16 15:28:34,962 - ERROR - Server reported: (node:16124) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
2019-10-16 15:28:37,123 - DEBUG - RX: Received message: b'{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/qk/Workspace/stability/vue/branch/v0.0.1/src/components/dialog/productMonitor.vue","diagnostics":[]}}'
2019-10-16 15:28:41,944 - INFO - Received debug info request
2019-10-16 15:29:01,338 - INFO - Received debug info request
2019-10-16 15:31:30,655 - INFO - Received debug info request