fix: 解决冲突

This commit is contained in:
@changcode
2021-08-06 11:47:00 +08:00
9 changed files with 69 additions and 45 deletions

View File

@@ -1,8 +1,8 @@
@font-face {
font-family: "nz-icon"; /* Project id 2030432 */
src: url('iconfont.woff2?t=1625712906789') format('woff2'),
url('iconfont.woff?t=1625712906789') format('woff'),
url('iconfont.ttf?t=1625712906789') format('truetype');
src: url('iconfont.woff2?t=1628215874870') format('woff2'),
url('iconfont.woff?t=1628215874870') format('woff'),
url('iconfont.ttf?t=1628215874870') format('truetype');
}
.nz-icon {
@@ -13,6 +13,14 @@
-moz-osx-font-smoothing: grayscale;
}
.nz-icon-about-full:before {
content: "\e735";
}
.nz-icon-batchadd:before {
content: "\e734";
}
.nz-icon-rectangle1:before {
content: "\e730";
}

View File

@@ -1358,7 +1358,8 @@ const cn = {
status: 'Endpoint 状态',
basicTypeFile: '路径',
basicTypeJournal: '单位',
basicTypeSyslog: '监听地址'
basicTypeSyslog: '监听地址',
basicAppName: '应用名称'
},
metrics: {
metrics: '指标',

View File

@@ -1360,7 +1360,8 @@ const en = {
status: 'Endpoint status',
basicTypeFile: 'Path',
basicTypeJournal: 'Unit',
basicTypeSyslog: 'Listen address'
basicTypeSyslog: 'Listen address',
basicAppName: 'App name'
},
metrics: {
metrics: 'Metrics', // "指标"

View File

@@ -1,5 +1,5 @@
<template>
<div class="right-box right-box-modify-endpoint" v-clickoutside="{obj:endpoint,func:clickOutside}">
<div class="right-box right-box-modify-endpoint" v-clickoutside="{obj:batchEndpoint,func:clickOutside}">
<div class="right-box__header">
<!-- begin--标题-->
<div class="header__title">{{$t("overall.batchAddEndpoint")}}</div>
@@ -11,7 +11,7 @@
<!-- begin--表单-->
<div class="right-box-form-box right-box__container" style="overflow: hidden;padding-left: 20px;margin-top: 0">
<div class="container__form">
<div class="container__form" style="display: flex; flex-direction: column;height: 100%">
<el-form class="right-box-form" label-position = "top" ref="addEndpoint" :model="endpoint" :rules="rules">
<el-form-item :label="$t('project.module.module')" prop="ChartTemplate">
<v-selectpage
@@ -26,7 +26,7 @@
title="ChartSearch"
key-field="id"
show-field="name"
v-model="moduleIds"
v-model="batchEndpoint.moduleIds"
class="form-control"
:result-format="resultFormat"
></v-selectpage>
@@ -44,7 +44,7 @@
title="ChartSearch"
key-field="id"
show-field="name"
v-model="assetIds"
v-model="batchEndpoint.assetIds"
class="form-control"
:result-format="resultFormat"
></v-selectpage>
@@ -55,10 +55,10 @@
<div class="right-box-line"></div>
<el-table
:data="tableData"
:height="'calc(100% - 400px)'"
:data="batchEndpoint.tableData"
:class="showError?'error' : ''"
style="width:calc(100% - 70px);margin-left: 15px;min-height:400px"
:height="'calc(100% - 400px)'"
style="width:calc(100% - 70px);margin-left: 15px;min-height:400px;flex: 1"
border>
<el-table-column
v-for="(item, index) in endpointTableTitle"
@@ -130,7 +130,7 @@
<button @click="generate" id="ep-generate" class="footer__btn">
<span>{{$t('overall.generate')}}</span>
</button>
<button @click="save" class="footer__btn" id="ep-add" :class="!tableData.length?'nz-btn-disabled':''" :disabled="!tableData.length">
<button @click="save" class="footer__btn" id="ep-add" :class="!batchEndpoint.tableData.length?'nz-btn-disabled':''" :disabled="!batchEndpoint.tableData.length">
<span>{{$t('overall.save')}}</span>
</button>
</div>
@@ -143,6 +143,7 @@
<script>
import editEndpointBoxNew from './editEndpointBoxNew'
import editRigthBox from '@/components/common/mixin/editRigthBox'
export default {
name: 'batchAddEndpointBox',
props: {
@@ -150,6 +151,7 @@ export default {
currentModule: Object,
selectEndpointList: Array
},
mixins: [editRigthBox],
components: {
'edit-endpoint-box-new': editEndpointBoxNew
},
@@ -164,8 +166,11 @@ export default {
{ required: true, message: this.$t('validate.required'), trigger: 'change' }
]
},
batchEndpoint: {
moduleIds: '',
assetIds: '',
tableData: []
},
assetDataList: [],
moduleList: [],
language: localStorage.getItem('nz-language'),
@@ -245,7 +250,6 @@ export default {
assetLoading: true,
rightBox: { show: false, title: this.$t('project.endpoint.createEndpoint'), isEdit: false },
optionType: 'batchAdd',
tableData: [],
endpointTableTitle: [ // 原始table列
{
label: this.$t('project.endpoint.name'),
@@ -310,17 +314,16 @@ export default {
})
},
generate () {
if (!this.assetIds || !this.moduleIds) {
if (!this.batchEndpoint.assetIds || !this.batchEndpoint.moduleIds) {
this.$message.error('Please select module or asset')
}
this.$post('/monitor/endpoint/render', { moduleIds: this.moduleIds, assetIds: this.assetIds }).then(res => {
console.log(res)
this.$post('/monitor/endpoint/render', { moduleIds: this.batchEndpoint.moduleIds, assetIds: this.batchEndpoint.assetIds }).then(res => {
res.data.list.forEach(item => {
item.configs = JSON.parse(item.configs)
item.moduleId = item.module.id
item.assetId = item.asset.id
})
this.tableData = res.data.list
this.batchEndpoint.tableData = res.data.list
})
},
// 保存endpoint
@@ -328,7 +331,7 @@ export default {
if (this.prevent_opt.save) { return } ;
this.prevent_opt.save = true
this.showError = false
if (!this.tableData.length) {
if (!this.batchEndpoint.tableData.length) {
this.prevent_opt.save = false
this.showError = true
return
@@ -336,7 +339,7 @@ export default {
// 对endpointList进行处理避免携带过多无用数据
this.$refs.addEndpoint.validate((valid) => {
if (valid) {
const paramsArr = this.tableData.map(item => {
const paramsArr = this.batchEndpoint.tableData.map(item => {
const obj = JSON.parse(JSON.stringify(item))
obj.configs = JSON.stringify(obj.configs)
return {
@@ -347,6 +350,9 @@ export default {
this.prevent_opt.save = false
if (response.code === 200) {
// this.$message({ duration: 1000, type: 'success', message: this.$t('tip.saveSuccess') })
response.data.failDetail.forEach(item => {
item.info = 'AssetId' + this.batchEndpoint.tableData[item.lineNo - 1].asset.id + ' ModuleId' + this.batchEndpoint.tableData[item.lineNo - 1].module.id + ' '
})
this.esc(true, response.data)
} else {
this.$message.error(response.msg)
@@ -369,19 +375,18 @@ export default {
closeRightBox (isEdit, endpoint, isAll) {
this.rightBox.show = false
if (!isEdit) { return }
this.tableData.forEach((item, index) => {
this.batchEndpoint.tableData.forEach((item, index) => {
if (item.id === endpoint.id) {
this.tableData[index] = { ...endpoint }
this.batchEndpoint.tableData[index] = { ...endpoint }
}
})
this.tableData = [...this.tableData]
this.batchEndpoint.tableData = [...this.batchEndpoint.tableData]
},
del (index) {
this.tableData.splice(index, 1)
this.batchEndpoint.tableData.splice(index, 1)
},
edit (row) {
this.object = row
console.log(this.object)
// this.object.configs = JSON.parse(this.object.configs)
this.object.projectId = this.object.project.id
this.object.moduleId = this.object.module.id
@@ -440,11 +445,12 @@ export default {
}
},
created () {
this.isEdit = true
this.getModuleList()
this.getAssetList()
},
watch: {
tableData: {
'batchEndpoint.tableData': {
deep: true,
handler (n) {
this.showError = false

View File

@@ -232,7 +232,7 @@
</el-form-item>
<el-form-item v-if="authType === 1" :label='$t("project.endpoint.pin")' class="half-form-item" prop="configs.0.config.basic_auth.pin" :rules="[{ required: true, message: this.$t('validate.required'), trigger: 'blur' }]">
<el-input id="module-box-input-password" v-model.number="editEndpoint.configs[0].config.basic_auth.pin" placeholder='' size="small"></el-input>
<el-input id="module-box-input-password" v-model.number="editEndpoint.configs[0].config.basic_auth.pin" type="password" autocomplete="new-password" placeholder='' size="small"></el-input>
</el-form-item>
<!--authtype 2-->
@@ -767,14 +767,17 @@ export default {
setTimeout(() => {
this.editEndpoint.configs[0].config.params = this.paramToJson(this.editEndpoint.paramObj)
this.editEndpoint.configs[0].config.labels = this.labelsToJson(this.editEndpoint.labelModule)
this.editEndpoint.configs[1].config.forEach(item => {
const params = JSON.parse(JSON.stringify(this.editEndpoint))
params.configs[1].config.forEach(item => {
if (item.labelModule) {
item.labels = this.labelsToJson(item.labelModule)
} else {
item.labels = ''
}
delete item.labelModule
})
const params = JSON.parse(JSON.stringify(this.editEndpoint))
delete params.labelModule
delete params.paramObj
params.configs[1].config.forEach(item => {
item.pipeline && item.pipeline.forEach((pipeline) => {
if (pipeline.type === 'labels') {
@@ -790,7 +793,6 @@ export default {
key = key[0]
if (key.indexOf('configs.0') !== -1) {
const keyArr = key.split('.')
console.log(keyArr)
if (keyArr[3] === 'basic_auth' || keyArr[3] === 'bearer_token') {
this.activeName = 'Auth'
} else if (keyArr[3] === 'basic' || keyArr[3] === 'port') {
@@ -1152,7 +1154,6 @@ export default {
}
if (this.editEndpoint.moduleId && this.editEndpoint.assetId) {
this.$post('/monitor/endpoint/render', { moduleIds: this.editEndpoint.moduleId, assetIds: this.editEndpoint.assetId }).then(res => {
console.log(res)
if (JSON.stringify(this.editEndpoint.configs) === JSON.stringify(this.blankObject.configs)) {
this.editEndpoint.configs = JSON.parse(res.data.list[0].configs)
}

View File

@@ -229,7 +229,7 @@
</el-form-item>
<el-form-item v-if="authType === 1" :label='$t("project.endpoint.pin")' class="half-form-item" prop="configs.0.config.basic_auth.pin" :rules="[{ required: true, message: this.$t('validate.required'), trigger: 'blur' }]">
<el-input id="module-box-input-password" v-model.number="editModule.configs[0].config.basic_auth.pin" placeholder='' size="small"></el-input>
<el-input id="module-box-input-password" v-model.number="editModule.configs[0].config.basic_auth.pin" type="password" autocomplete="new-password" placeholder='' size="small"></el-input>
</el-form-item>
<!--authtype 2-->
@@ -745,14 +745,17 @@ export default {
setTimeout(() => {
this.editModule.configs[0].config.params = this.paramToJson(this.editModule.paramObj)
this.editModule.configs[0].config.labels = this.labelsToJson(this.editModule.labelModule)
this.editModule.configs[1].config.forEach(item => {
const params = JSON.parse(JSON.stringify(this.editModule))
params.configs[1].config.forEach(item => {
if (item.labelModule) {
item.labels = this.labelsToJson(item.labelModule)
} else {
item.labels = ''
}
delete item.labelModule
})
const params = JSON.parse(JSON.stringify(this.editModule))
delete params.labelModule
delete params.paramObj
params.configs[1].config.forEach(item => {
item.pipeline && item.pipeline.forEach((pipeline) => {
if (pipeline.type === 'labels') {
@@ -774,7 +777,14 @@ export default {
}
} else if (key.indexOf('configs.1') !== -1) {
const keyArr = key.split('.')
this.activeNameLogs[keyArr[3]] = keyArr[4].trim().toLowerCase().replace(keyArr[4][0], keyArr[4][0].toUpperCase())
const str = keyArr[4]
if (str === 'fileName' || str === 'unit' || str === 'listenAddress' || str === 'appName') {
this.activeNameLogs[keyArr[3]] = 'Basic'
} else if (str === 'labels') {
this.activeNameLogs[keyArr[3]] = 'Labels'
} else if (str === 'pipeline') {
this.activeNameLogs[keyArr[3]] = 'Pipeline'
}
this.activeNameLogs = [...this.activeNameLogs]
}
}

View File

@@ -120,7 +120,6 @@ export default {
},
methods: {
addPipeline (val) {
console.log(val)
let obj = ''
this.pipelineOptionValue = ''
if (val === 'regex') {

View File

@@ -60,14 +60,14 @@
</span>
</template>
<template v-else-if="item.prop === 'configs'">
<el-tooltip placement="left" effect="light" :popper-class="'endpointConfigsTips'">
<el-tooltip placement="left" effect="light" :popper-class="'endpointConfigsTips'" v-if="scope.row.configs[0].enable">
<span class="configs-endpoint metrics">{ Metrics }</span>
<div class="endpointConfigsTips" slot="content">
<span class="copy-value-content"> <i class="nz-icon nz-icon-override" @click="copyValue(scope.row.configs[0].config)"></i></span>
<pre >{{JSON.stringify(scope.row.configs[0].config,null,2)}}</pre>
</div>
</el-tooltip>
<el-tooltip placement="right" effect="light" :popper-class="'endpointConfigsTips'">
<el-tooltip placement="right" effect="light" :popper-class="'endpointConfigsTips'" v-if="scope.row.configs[1].enable">
<span class="configs-endpoint logs">{ Logs }</span>
<div class="endpointConfigsTips" slot="content">
<span class="copy-value-content"> <i class="nz-icon nz-icon-override" @click="copyValue(scope.row.configs[1].config)"></i></span>

View File

@@ -36,7 +36,7 @@
<delete-button :type="'link'" :title="$t('overall.batchDel')" id="account-list-batch-delete" v-has="'monitor_endpoint_delete'" :api="url" :delete-objs="batchDeleteObjs" @after="getTableData" @before="delFlag=true"></delete-button>
</el-dropdown-item>
<el-dropdown-item>
<div id="batch-add" @click="batchAdd"><i class="nz-icon nz-icon-table-edit"></i>{{$t('overall.batchAdd')}}</div>
<div id="batch-add" @click="batchAdd"><i class="nz-icon nz-icon-batchadd"></i>{{$t('overall.batchAdd')}}</div>
</el-dropdown-item>
</div>
</template>
@@ -107,7 +107,7 @@
<div :key="index" class="import-result-block">
<div class="import-result-item">
<div class="line-num">{{$t('overall.result.line',[item.lineNo])}}</div>
<div>{{item.errorMsg}}</div>
<div>{{item.info}} {{item.errorMsg}}</div>
</div>
</div>
</template>
@@ -228,7 +228,7 @@ export default {
silenceBoxShow: false,
tableId: 'endpointTable',
queryPermission: 'account_view',
endpointTableHeight: 'calc(100% - 193px)', // 主列表table高度
endpointTableHeight: 'calc(100% - 224px)', // 主列表table高度
dataListLayout: ['searchInput', 'elementSet', 'clickSearch'],
searchMsg: { // 给搜索框子组件传递的信息
zheze_none: true,
@@ -332,7 +332,6 @@ export default {
enable: this.object.configs[1].enable,
config: configs
}
console.log(this.object)
this.object.paramObj = []
this.object.labelModule = []
this.object.configs[1].config.forEach(item => {
@@ -396,7 +395,6 @@ export default {
}
},
closeRightBatchAdd (refresh, importResult) {
console.log(refresh, importResult)
this.rightBox.batchAdd = false
this.importResult = importResult
if (refresh && importResult) {