perf: endpoint弹框/asset列表
1.endpoint弹框样式,包含校验 2.asset列表页(部分)
This commit is contained in:
1056
nezha-fronted/package-lock.json
generated
1056
nezha-fronted/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -12,6 +12,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.19.0",
|
"axios": "^0.19.0",
|
||||||
"element-ui": "^2.13.0",
|
"element-ui": "^2.13.0",
|
||||||
|
"node-sass": "^4.13.0",
|
||||||
"vue": "^2.5.2",
|
"vue": "^2.5.2",
|
||||||
"vue-i18n": "^8.15.1",
|
"vue-i18n": "^8.15.1",
|
||||||
"vue-router": "^3.0.1",
|
"vue-router": "^3.0.1",
|
||||||
|
|||||||
@@ -174,21 +174,26 @@ html {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
}
|
}
|
||||||
.sidebar-info-item {
|
.content-left .sidebar-info-item {
|
||||||
line-height: 1.5rem;
|
line-height: 1.5rem;
|
||||||
padding: 0 10px 0 10px;
|
padding: 0 10px 0 10px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #444444;
|
color: #444444;
|
||||||
margin: 0 0 7px;
|
margin: 0 0 7px;
|
||||||
|
display: block;
|
||||||
}
|
}
|
||||||
.side-bar-menu-edit {
|
.side-bar-menu-edit {
|
||||||
line-height: 1.5rem;
|
line-height: 1.5rem;
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
.sidebar-info-item-active {
|
.content-left .sidebar-info-item-active {
|
||||||
border-left: 3px solid #e07700;
|
border-left: 3px solid #e07700;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
.content-left .el-checkbox-group .sidebar-info-item-active {
|
||||||
|
font-weight: bold;
|
||||||
|
border-left: none;
|
||||||
|
}
|
||||||
/* end--左侧列表*/
|
/* end--左侧列表*/
|
||||||
|
|
||||||
/* begin--右侧内容*/
|
/* begin--右侧内容*/
|
||||||
@@ -336,7 +341,7 @@ html {
|
|||||||
.right-box-add-endpoint .right-box-form {
|
.right-box-add-endpoint .right-box-form {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.right-box-form .el-form-item {
|
.right-box-form>.el-form-item {
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
.right-box-form .el-select {
|
.right-box-form .el-select {
|
||||||
@@ -417,6 +422,9 @@ html {
|
|||||||
color: #DCDFE6;
|
color: #DCDFE6;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
.param-box .param-box-row .is-error {
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
/* end--param*/
|
/* end--param*/
|
||||||
.right-box-form-content .el-select {
|
.right-box-form-content .el-select {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
.nz-icon {
|
.nz-icon {
|
||||||
font-family: "nz-icon" !important;
|
font-family: "nz-icon" !important;
|
||||||
font-size: 16px;
|
font-size: 14px;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
|||||||
@@ -501,6 +501,7 @@
|
|||||||
|
|
||||||
.nz-submenu .el-menu--popup-bottom-start {
|
.nz-submenu .el-menu--popup-bottom-start {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
|
box-shadow: 0 2px 2px 0 rgba(0,0,0,.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.nz-submenu.el-menu--horizontal .el-menu .el-menu-item {
|
.nz-submenu.el-menu--horizontal .el-menu .el-menu-item {
|
||||||
|
|||||||
@@ -95,12 +95,13 @@
|
|||||||
<button type="button" @click="coverEndpoint" class="nz-btn nz-btn-size-small nz-btn-style-light nz-btn-style-square module-info module-info-cover">{{$t('overall.cover')}}</button>
|
<button type="button" @click="coverEndpoint" class="nz-btn nz-btn-size-small nz-btn-style-light nz-btn-style-square module-info module-info-cover">{{$t('overall.cover')}}</button>
|
||||||
</div>
|
</div>
|
||||||
<!--endpoints-->
|
<!--endpoints-->
|
||||||
<div class="endpoints-box-endpoints">
|
<div class="endpoints-box-endpoints" :style="{borderColor: endpointTouch ? paramBorderColor : '#dcdfe6'}">
|
||||||
<el-table
|
<el-table
|
||||||
:data="endpointList"
|
:data="endpointList"
|
||||||
ref="endpointTable"
|
ref="endpointTable"
|
||||||
style="width: 100%;border-radius: 4px;"
|
style="width: 100%;border-radius: 4px;"
|
||||||
height="calc(100% - 36px)"
|
height="calc(100% - 36px)"
|
||||||
|
:row-class-name="setRowIndex"
|
||||||
empty-text=" ">
|
empty-text=" ">
|
||||||
<el-table-column
|
<el-table-column
|
||||||
type="selection"
|
type="selection"
|
||||||
@@ -119,6 +120,7 @@
|
|||||||
<span v-if="title.prop == 'asset' && scope.row[title.prop]">{{scope.row[title.prop].host}}</span>
|
<span v-if="title.prop == 'asset' && scope.row[title.prop]">{{scope.row[title.prop].host}}</span>
|
||||||
<span v-else-if="title.prop == 'param'">
|
<span v-else-if="title.prop == 'param'">
|
||||||
<el-popover
|
<el-popover
|
||||||
|
v-if="!scope.row.isEdit"
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
width="200"
|
width="200"
|
||||||
trigger="hover"
|
trigger="hover"
|
||||||
@@ -127,10 +129,14 @@
|
|||||||
<div v-for="p in scope.row.paramObj">{{p.key}}={{p.value}}</div>
|
<div v-for="p in scope.row.paramObj">{{p.key}}={{p.value}}</div>
|
||||||
</div>
|
</div>
|
||||||
<span slot="reference">
|
<span slot="reference">
|
||||||
<span @mousedown.stop v-if="!scope.row.isEdit">{{scope.row.param.length > 8 ? scope.row.param.substring(0, 8) + '...' : scope.row.param}}</span>
|
<span @mousedown.stop>{{scope.row.param.length > 8 ? scope.row.param.substring(0, 8) + '...' : scope.row.param}}</span>
|
||||||
<span @mousedown.stop v-else @click.stop="showEditParamBox(true, scope.row, 2, $event)"><el-input disabled class="endpoint-info endpoint-info-param input-x-mini" v-model="scope.row.param"></el-input></span>
|
|
||||||
</span>
|
</span>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
|
<span @mousedown.stop v-else @click.stop="showEditParamBox(true, scope.row, 2, $event)">
|
||||||
|
<el-form-item :prop="'endpointList[' + scope.row.index + '].param'" :rules="{required: true, message: $t('validate.required'), trigger: 'blur'}">
|
||||||
|
<el-input readonly class="endpoint-info endpoint-info-param input-x-mini" v-model="scope.row.param"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<span v-else-if="title.prop == 'path'">
|
<span v-else-if="title.prop == 'path'">
|
||||||
<el-popover
|
<el-popover
|
||||||
@@ -138,33 +144,47 @@
|
|||||||
width="100"
|
width="100"
|
||||||
trigger="hover"
|
trigger="hover"
|
||||||
:content="scope.row[title.prop]"
|
:content="scope.row[title.prop]"
|
||||||
|
v-if="!scope.row.isEdit"
|
||||||
>
|
>
|
||||||
<span slot="reference">
|
<span slot="reference">
|
||||||
<span v-if="!scope.row.isEdit">{{scope.row.path.length > 5 ? scope.row.path.substring(0, 5) + '...' : scope.row.path}}</span>
|
<span>{{scope.row.path.length > 5 ? scope.row.path.substring(0, 5) + '...' : scope.row.path}}</span>
|
||||||
<span @mousedown.stop v-else><el-input class="endpoint-info input-x-mini" v-model="scope.row.path"></el-input></span>
|
|
||||||
</span>
|
</span>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
|
<span @mousedown.stop v-else>
|
||||||
|
<el-form-item :prop="'endpointList[' + scope.row.index + '].path'" :rules="{required: true, message: $t('validate.required'), trigger: 'blur'}">
|
||||||
|
<el-input class="endpoint-info input-x-mini" v-model="scope.row.path"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<span v-else-if="title.prop == 'port'">
|
<span v-else-if="title.prop == 'port'">
|
||||||
<span v-if="!scope.row.isEdit">{{scope.row.port}}</span>
|
<span v-if="!scope.row.isEdit">{{scope.row.port}}</span>
|
||||||
<span @mousedown.stop v-else><el-input class="endpoint-info input-x-mini" v-model="scope.row.port"></el-input></span>
|
<span @mousedown.stop v-else>
|
||||||
|
<el-form-item :prop="'endpointList[' + scope.row.index + '].port'" :rules="{required: true, message: $t('validate.required'), trigger: 'blur'}">
|
||||||
|
<el-input class="endpoint-info input-x-mini" v-model="scope.row.port"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<span v-else-if="title.prop == 'host'">
|
<span v-else-if="title.prop == 'host'">
|
||||||
<span v-if="!scope.row.isEdit">{{scope.row.host}}</span>
|
<span v-if="!scope.row.isEdit">{{scope.row.host}}</span>
|
||||||
<span @mousedown.stop v-else><el-input class="endpoint-info input-x-mini" v-model="scope.row.host"></el-input></span>
|
<span @mousedown.stop v-else>
|
||||||
|
<el-form-item :prop="'endpointList[' + scope.row.index + '].host'" :rules="{required: true, message: $t('validate.required'), trigger: 'blur'}">
|
||||||
|
<el-input class="endpoint-info input-x-mini" v-model="scope.row.host"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="" width="56">
|
<el-table-column label="" width="56">
|
||||||
<template slot-scope="scope" :column="title">
|
<template slot-scope="scope" :column="title">
|
||||||
<div>
|
<div>
|
||||||
<span v-if="!scope.row.isEdit" class="endpoint-box-row-symbol" @click="toEditEndpoint(scope.row)"><i class="el-icon-edit-outline"></i></span>
|
<span v-if="!scope.row.isEdit" class="endpoint-box-row-symbol" @mousedown.stop @click="toEditEndpoint(scope.row)"><i class="el-icon-edit-outline"></i></span>
|
||||||
<span v-else class="endpoint-box-row-symbol" @mousedown.stop @click="editEndpoint(scope.row)"><i class="el-icon-check"></i></span>
|
<span v-else class="endpoint-box-row-symbol" @mousedown.stop @click="editEndpoint(scope.row)"><i class="el-icon-check"></i></span>
|
||||||
<span class="endpoint-box-row-symbol" @click="removeEndpoint(scope.row)"><i class="nz-icon nz-icon-minus-square"></i></span>
|
<span class="endpoint-box-row-symbol" @click="removeEndpoint(scope.row)"><i class="nz-icon nz-icon-minus-square"></i></span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<div class="el-form-item__error" :style="{opacity: endpointTouch && this.endpointList.length == 0 ? '1' : '0'}" style="left: unset; transition: all .2s">{{$t('validate.required')}}</div>
|
||||||
<div>
|
<div>
|
||||||
<button type="button" @click="clearSelection" class="nz-btn nz-btn-size-small nz-btn-style-light endpoints-clear-btn">{{$t('overall.clear')}}</button>
|
<button type="button" @click="clearSelection" class="nz-btn nz-btn-size-small nz-btn-style-light endpoints-clear-btn">{{$t('overall.clear')}}</button>
|
||||||
<span style="display: inline-block; font-size: 14px; float: right;line-height: 35px;padding-right: 15px;">All: {{this.endpointList.length}}</span>
|
<span style="display: inline-block; font-size: 14px; float: right;line-height: 35px;padding-right: 15px;">All: {{this.endpointList.length}}</span>
|
||||||
@@ -214,10 +234,13 @@
|
|||||||
{required: true, message: this.$t('validate.required'), trigger: 'change'}
|
{required: true, message: this.$t('validate.required'), trigger: 'change'}
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
endpointForm: {projectId: '', moduleId: '', endpointList:[]},
|
paramBorderColor: '#dcdfe6',
|
||||||
|
endpointTouch: false,
|
||||||
|
endpointForm: {projectId: '', moduleId: '', endpointList: []},
|
||||||
currentModuleCopy: {},
|
currentModuleCopy: {},
|
||||||
tempParamObj: [],
|
tempParamObj: [],
|
||||||
tempEndpoint: {},
|
tempEndpoint: {},
|
||||||
|
tempEndpoint2: {},
|
||||||
rightBox: {show: false, title: this.$t('project.endpoint.createEndpoint'),isEdit: false},
|
rightBox: {show: false, title: this.$t('project.endpoint.createEndpoint'),isEdit: false},
|
||||||
editParamBox: {show: false, top: 0, left: 0, type: 0}, //param编辑弹框
|
editParamBox: {show: false, top: 0, left: 0, type: 0}, //param编辑弹框
|
||||||
moduleParamShow: false, //module默认参数param悬浮窗
|
moduleParamShow: false, //module默认参数param悬浮窗
|
||||||
@@ -247,12 +270,12 @@
|
|||||||
},{
|
},{
|
||||||
label: this.$t("project.endpoint.param"),
|
label: this.$t("project.endpoint.param"),
|
||||||
prop: 'param',
|
prop: 'param',
|
||||||
width: 93,
|
width: 90,
|
||||||
show: true,
|
show: true,
|
||||||
},{
|
},{
|
||||||
label: this.$t("project.endpoint.path"),
|
label: this.$t("project.endpoint.path"),
|
||||||
prop: 'path',
|
prop: 'path',
|
||||||
width: 63,
|
width: 66,
|
||||||
show: true,
|
show: true,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -282,14 +305,15 @@
|
|||||||
this.tempParamObj = JSON.parse(JSON.stringify(obj.paramObj));
|
this.tempParamObj = JSON.parse(JSON.stringify(obj.paramObj));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (this.endpointList.length > 0) {
|
|
||||||
for (let i = 0; i < this.endpointList.length; i++) {
|
|
||||||
this.endpointList[i].isEdit = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!this.editParamBox.show) {
|
if (!this.editParamBox.show) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
for (let i = 0; i < this.tempParamObj.length; i++) {
|
||||||
|
if (!this.tempParamObj[i].key || !this.tempParamObj[i].value) {
|
||||||
|
this.tempParamObj.splice(i, 1);
|
||||||
|
i--;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (this.editParamBox.type == 1) {
|
if (this.editParamBox.type == 1) {
|
||||||
this.currentModuleCopy.paramObj = this.tempParamObj;
|
this.currentModuleCopy.paramObj = this.tempParamObj;
|
||||||
this.currentModuleCopy.param = this.paramToJson(this.tempParamObj);
|
this.currentModuleCopy.param = this.paramToJson(this.tempParamObj);
|
||||||
@@ -311,6 +335,7 @@
|
|||||||
esc() {
|
esc() {
|
||||||
this.rightBox.show = false;
|
this.rightBox.show = false;
|
||||||
this.editParamBox.show = false;
|
this.editParamBox.show = false;
|
||||||
|
this.endpointTouch = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
// 新增param
|
// 新增param
|
||||||
@@ -325,12 +350,26 @@
|
|||||||
|
|
||||||
//编辑endpoint
|
//编辑endpoint
|
||||||
toEditEndpoint(endpoint) {
|
toEditEndpoint(endpoint) {
|
||||||
console.info(1)
|
for (let i = 0; i < this.endpointList.length; i++) {
|
||||||
|
if (this.endpointList[i].isEdit) {
|
||||||
|
this.endpointList.splice(i, 1, JSON.parse(JSON.stringify(this.tempEndpoint2)));
|
||||||
|
this.endpointList[i].isEdit = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
endpoint.isEdit = true;
|
endpoint.isEdit = true;
|
||||||
|
this.tempEndpoint2 = JSON.parse(JSON.stringify(endpoint));
|
||||||
},
|
},
|
||||||
editEndpoint(endpoint) {
|
editEndpoint(endpoint) {
|
||||||
console.info(2)
|
this.$refs.addEndpointForm.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
endpoint.isEdit = false;
|
endpoint.isEdit = false;
|
||||||
|
this.tempEndpoint2 = {};
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//移除endpoint
|
//移除endpoint
|
||||||
@@ -431,6 +470,9 @@
|
|||||||
moduleId: this.currentModuleCopy.id
|
moduleId: this.currentModuleCopy.id
|
||||||
});
|
});
|
||||||
this.assetList.splice(index, 1);
|
this.assetList.splice(index, 1);
|
||||||
|
this.endpointTouch = true;
|
||||||
|
this.endpointForm.projectId = this.currentProject.id;
|
||||||
|
this.endpointForm.moduleId = this.currentModuleCopy.id;
|
||||||
},
|
},
|
||||||
|
|
||||||
//将param转为json字符串格式
|
//将param转为json字符串格式
|
||||||
@@ -471,6 +513,11 @@
|
|||||||
save() {
|
save() {
|
||||||
this.endpointForm.projectId = this.currentProject.id;
|
this.endpointForm.projectId = this.currentProject.id;
|
||||||
this.endpointForm.moduleId = this.currentModuleCopy.id;
|
this.endpointForm.moduleId = this.currentModuleCopy.id;
|
||||||
|
if (this.endpointList.length == 0) {
|
||||||
|
this.endpointTouch = true;
|
||||||
|
this.$refs.addEndpointForm.validate();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
this.$refs.addEndpointForm.validate((valid) => {
|
this.$refs.addEndpointForm.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.$post('endpoint', this.endpointList).then(response => {
|
this.$post('endpoint', this.endpointList).then(response => {
|
||||||
@@ -528,6 +575,10 @@
|
|||||||
clearEndpoints() {
|
clearEndpoints() {
|
||||||
this.getAssetList();
|
this.getAssetList();
|
||||||
this.endpointList = [];
|
this.endpointList = [];
|
||||||
|
},
|
||||||
|
|
||||||
|
setRowIndex({row, rowIndex}) {
|
||||||
|
row.index = rowIndex;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -543,12 +594,23 @@
|
|||||||
this.getAssetList();
|
this.getAssetList();
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
endpointList(n, o) {
|
||||||
|
this.endpointForm.endpointList = n;
|
||||||
|
if (n.length > 0) {
|
||||||
|
this.paramBorderColor = '#dcdfe6';
|
||||||
|
} else {
|
||||||
|
this.paramBorderColor = '#F56C6C';
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
currentProject(n, o) {
|
currentProject(n, o) {
|
||||||
|
this.endpointForm.projectId = n.id;
|
||||||
this.getModuleList(n.id);
|
this.getModuleList(n.id);
|
||||||
},
|
},
|
||||||
currentModule: {
|
currentModule: {
|
||||||
immediate: true,
|
immediate: true,
|
||||||
handler(n, o) {
|
handler(n, o) {
|
||||||
|
this.endpointForm.moduleId = n.id;
|
||||||
this.currentModuleCopy = JSON.parse(JSON.stringify(n));
|
this.currentModuleCopy = JSON.parse(JSON.stringify(n));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -616,7 +678,7 @@
|
|||||||
|
|
||||||
/* begin--小盒子*/
|
/* begin--小盒子*/
|
||||||
.right-child-boxes {
|
.right-child-boxes {
|
||||||
height: calc(100% - 196px);
|
height: calc(100% - 216px);
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
.endpoint-to-right-symbol {
|
.endpoint-to-right-symbol {
|
||||||
@@ -695,6 +757,7 @@
|
|||||||
border: 1px solid #dcdfe6;
|
border: 1px solid #dcdfe6;
|
||||||
height: calc(100% - 39px);
|
height: calc(100% - 39px);
|
||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
|
transition: border-color .2s cubic-bezier(.645,.045,.355,1);
|
||||||
}
|
}
|
||||||
.endpoint-param-pop{
|
.endpoint-param-pop{
|
||||||
max-height: 200px;
|
max-height: 200px;
|
||||||
@@ -840,4 +903,11 @@
|
|||||||
.endpoint-info-param.el-input.is-disabled .el-input__inner:hover, .endpoint-info-param.el-input.is-disabled .el-input__inner:hover {
|
.endpoint-info-param.el-input.is-disabled .el-input__inner:hover, .endpoint-info-param.el-input.is-disabled .el-input__inner:hover {
|
||||||
border-color: #c0c4cc;
|
border-color: #c0c4cc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.endpoints-box-endpoints .el-form-item {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.endpoints-box-endpoints .el-form-item.is-error {
|
||||||
|
margin-bottom: 22px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
<!-- begin--表单-->
|
<!-- begin--表单-->
|
||||||
<el-scrollbar class="right-box-form-box">
|
<el-scrollbar class="right-box-form-box">
|
||||||
<el-form class="right-box-form" :model="module" label-position="top" :rules="rules" ref="moduleForm">
|
<el-form class="right-box-form" :model="module" label-position="top" :rules="rules" ref="moduleForm">
|
||||||
<el-form-item :label='$t("project.project.project")' prop="project.id">
|
<el-form-item :label='$t("project.project.project")' prop="project">
|
||||||
<el-select value-key="id" popper-class="config-dropdown" v-model="module.project" placeholder="" size="small">
|
<el-select value-key="id" popper-class="config-dropdown" v-model="module.project" placeholder="" size="small">
|
||||||
<el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item"></el-option>
|
<el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
|
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
|
||||||
],
|
],
|
||||||
project: [
|
project: [
|
||||||
{required: true, message: this.$t('validate.required'), trigger: 'blur'}
|
{required: true, message: this.$t('validate.required'), trigger: 'change'}
|
||||||
],
|
],
|
||||||
port: [
|
port: [
|
||||||
{type: 'number', message: this.$t('validate.number'), trigger: 'blur'}
|
{type: 'number', message: this.$t('validate.number'), trigger: 'blur'}
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="asset">
|
<div class="asset">
|
||||||
<div class="content-left">
|
<div class="content-left">
|
||||||
<div class="sidebar-title">
|
<div class="sidebar-title">Asset</div>
|
||||||
<div>Asset</div>
|
|
||||||
<div class="sidebar-info">
|
<div class="sidebar-info">
|
||||||
<div class="sidebar-info-header">ALL</div>
|
<!--<div class="sidebar-info-header">ALL</div>-->
|
||||||
<div class="sidebar-info-footer">
|
|
||||||
<el-checkbox-group v-model="checkList" size="small" @change="getSingleAsset(checkList)">
|
<el-checkbox-group v-model="checkList" size="small" @change="getSingleAsset(checkList)">
|
||||||
<el-checkbox v-for="(item,key) in checkListData" :key="key" border :label=item.id>
|
<el-checkbox class="sidebar-info-item" :class="{'sidebar-info-item-active': checkList.indexOf(item.id) != -1}"
|
||||||
|
v-for="(item,key) in checkListData" :key="key" :label=item.id>
|
||||||
{{item.name}}
|
{{item.name}}
|
||||||
<el-popover
|
<el-popover
|
||||||
placement="left"
|
placement="left"
|
||||||
@@ -74,25 +73,18 @@
|
|||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="content-right">
|
<div class="content-right">
|
||||||
<div>
|
<div class="top-tools">
|
||||||
<button style="float: right;margin-top: 10px;width: 100px;height: 32px;margin-left: 10px"
|
<button @click.stop="tagShow('showAdd')" class="nz-btn nz-btn-size-normal nz-btn-style-normal float-right">
|
||||||
@click.stop="tagShow('showAdd')">+ADD
|
<span class="top-tool-btn-txt">{{$t('overall.add')}}</span>
|
||||||
</button>
|
</button>
|
||||||
<el-input
|
<div class="top-tool-search float-right"><search-input :searchMsg="searchMsg" @search="search"></search-input></div>
|
||||||
type="text"
|
|
||||||
:placeholder="$t('overall.search')"
|
|
||||||
size="small"
|
|
||||||
style="width: 200px;float: right;padding-top: 10px"
|
|
||||||
>
|
|
||||||
</el-input>
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
|
||||||
<el-table
|
<el-table
|
||||||
:height="tableHeight"
|
height="calc(100% - 65px)"
|
||||||
:data="this.tableData"
|
style="width: 100%;"
|
||||||
|
:data="tableData"
|
||||||
|
border
|
||||||
>
|
>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-for="(item, index) in tableTitle"
|
v-for="(item, index) in tableTitle"
|
||||||
@@ -197,11 +189,10 @@
|
|||||||
ref="assetEditUnit"></asset-edit-unit>
|
ref="assetEditUnit"></asset-edit-unit>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: "asset",
|
name: "asset",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -560,11 +551,11 @@ export default {
|
|||||||
this.tableHeight = document.documentElement.clientHeight - 200;
|
this.tableHeight = document.documentElement.clientHeight - 200;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.sidebar-pop-input {
|
.sidebar-pop-input {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 50px;
|
right: 50px;
|
||||||
width: 200px;
|
width: 200px;
|
||||||
@@ -574,9 +565,9 @@ export default {
|
|||||||
color: #606266;
|
color: #606266;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0px 15px;
|
padding: 0px 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-pop-input-select {
|
.sidebar-pop-input-select {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 83px;
|
right: 83px;
|
||||||
width: 200px;
|
width: 200px;
|
||||||
@@ -586,54 +577,16 @@ export default {
|
|||||||
color: #606266;
|
color: #606266;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0 15px;
|
padding: 0 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-left {
|
|
||||||
float: left;
|
|
||||||
width: 370px;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content-right {
|
.checkbox-edit {
|
||||||
margin-left: 370px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-title {
|
|
||||||
padding-left: 30px;
|
|
||||||
padding-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-info {
|
|
||||||
|
|
||||||
margin-top: 20px;
|
|
||||||
border: 1px solid #acacac;
|
|
||||||
border-radius: 8px;
|
|
||||||
height: calc(90vh - 55px);
|
|
||||||
width: calc(100% - 8px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-info-header {
|
|
||||||
background: #acacac;
|
|
||||||
text-align: center;
|
|
||||||
line-height: 50px;
|
|
||||||
border-top-left-radius: 8px;
|
|
||||||
border-top-right-radius: 8px;
|
|
||||||
height: 60px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-info-footer {
|
|
||||||
padding-top: 15px;
|
|
||||||
padding-left: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.checkbox-edit {
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 8px;
|
right: 10px;
|
||||||
left: 230px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab-input-square {
|
.tab-input-square {
|
||||||
border: 1px solid #aaaaaa;
|
border: 1px solid #aaaaaa;
|
||||||
height: 25px;
|
height: 25px;
|
||||||
width: 65px;
|
width: 65px;
|
||||||
@@ -642,19 +595,19 @@ export default {
|
|||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
line-height: 23px;
|
line-height: 23px;
|
||||||
color: #aaaaaa;
|
color: #aaaaaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.account-list-option {
|
.account-list-option {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-right: 6px;
|
margin-right: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-box-top-btns {
|
.right-box-top-btns {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-box-top-btn {
|
.right-box-top-btn {
|
||||||
border-radius: 0 0 9px 9px;
|
border-radius: 0 0 9px 9px;
|
||||||
float: right;
|
float: right;
|
||||||
color: #656565;
|
color: #656565;
|
||||||
@@ -665,86 +618,102 @@ export default {
|
|||||||
border-top: none;
|
border-top: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-box-top-btn-full {
|
.right-box-top-btn-full {
|
||||||
background-color: #656565;
|
background-color: #656565;
|
||||||
border: 1px solid #656565;
|
border: 1px solid #656565;
|
||||||
border-top: none;
|
border-top: none;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.pop-window {
|
.pop-window {
|
||||||
height: 370px;
|
height: 370px;
|
||||||
width: 400px;
|
width: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pop-window-assetType-content {
|
.pop-window-assetType-content {
|
||||||
padding: 1px 15px 15px 20px;
|
padding: 1px 15px 15px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rm-c-list span:hover {
|
.rm-c-list span:hover {
|
||||||
background-color: #888;
|
background-color: #888;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-box-bottom-btn {
|
.right-box-bottom-btn {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-color: #656565;
|
background-color: #656565;
|
||||||
color: white;
|
color: white;
|
||||||
line-height: 35px;
|
line-height: 35px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-box-bottom-btns {
|
.right-box-bottom-btns {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0px;
|
bottom: 0px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-box-bottom-btn-cancel {
|
.right-box-bottom-btn-cancel {
|
||||||
background-color: #DADADA;
|
background-color: #DADADA;
|
||||||
color: #656565;
|
color: #656565;
|
||||||
width: 50%;
|
width: 50%;
|
||||||
border-bottom-left-radius: 8px;
|
border-bottom-left-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-box-bottom-btn-50 {
|
.right-box-bottom-btn-50 {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
float: right;
|
float: right;
|
||||||
border-bottom-right-radius: 8px;
|
border-bottom-right-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.activeColor {
|
.activeColor {
|
||||||
background-color: #409EFF;
|
background-color: #409EFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes slide-in-from-right {
|
@keyframes slide-in-from-right {
|
||||||
from {
|
from {
|
||||||
right: -800px
|
right: -800px
|
||||||
}
|
}
|
||||||
to {
|
to {
|
||||||
right: 0
|
right: 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes slide-out-to-right {
|
@keyframes slide-out-to-right {
|
||||||
from {
|
from {
|
||||||
right: 0
|
right: 0
|
||||||
}
|
}
|
||||||
to {
|
to {
|
||||||
right: -800px
|
right: -800px
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-box-enter-active {
|
.right-box-enter-active {
|
||||||
animation: slide-in-from-right 0.4s;
|
animation: slide-in-from-right 0.4s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-box-leave-active {
|
.right-box-leave-active {
|
||||||
animation: slide-out-to-right 0.4s;
|
animation: slide-out-to-right 0.4s;
|
||||||
}
|
}
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
.asset .content-left .el-checkbox__input.is-focus .el-checkbox__inner,
|
||||||
|
.asset .content-left .el-checkbox__input .el-checkbox__inner:hover,
|
||||||
|
.asset .content-left .el-checkbox__input.is-checked .el-checkbox__inner,
|
||||||
|
.asset .content-left .el-checkbox__input.is-indeterminate .el-checkbox__inner {
|
||||||
|
border-color: #e07700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.asset .content-left .el-checkbox__input.is-checked + .el-checkbox__label {
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
.asset .content-left .el-checkbox__input.is-checked .el-checkbox__inner, .asset .content-left .el-checkbox__input.is-indeterminate .el-checkbox__inner {
|
||||||
|
background-color: #e07700;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -471,7 +471,6 @@
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.project {
|
.project {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background: $color-red;
|
|
||||||
}
|
}
|
||||||
.content-right-option {
|
.content-right-option {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|||||||
Reference in New Issue
Block a user