diff --git a/nezha-fronted/src/components/common/detailView/detailView.scss b/nezha-fronted/src/components/common/detailView/detailView.scss new file mode 100644 index 000000000..1b5968ece --- /dev/null +++ b/nezha-fronted/src/components/common/detailView/detailView.scss @@ -0,0 +1,57 @@ +.nz-detail-view{ + width: 100%; + height: calc(100% - 60px); + display: flex; + .nz-detail-view-left{ + width: 260px; + display: flex; + flex-direction: column; + margin: 0 10px 10px 20px; + height: calc(100% - 12px); + border: 1px solid #E7EAED; + /deep/ .data-detail { + flex: 1; + } + .nz-detail-view-pagination { + height: 30px; + text-align: center; + margin-bottom: 10px; + margin-top: 10px; + } + } + /deep/ .el-pagination .btn-next, /deep/ .el-pagination .btn-prev { + border: none; + background: none; + padding: 0; + vertical-align: middle; + height: 100%; + margin-top: 0; + .el-icon{ + background: #fff; + height: 100%; + font-size: 22px; + } + } + /deep/ .jump-input { + width: 40px; + vertical-align: middle; + .el-input__inner { + padding: 0 5px; + height: 24px; + line-height: 24px; + text-align: center; + } + } + + /deep/ .jump-pages { + padding-left: 9px; + font-size: 14px; + color: #666666; + vertical-align: middle; + } +} +.list-page div.main-container{ + height: calc(100% - 20px); + + width: calc(100% - 20px); +} diff --git a/nezha-fronted/src/components/common/detailView/list/asset/assetDetail.vue b/nezha-fronted/src/components/common/detailView/list/asset/assetDetail.vue new file mode 100644 index 000000000..81c5f7efa --- /dev/null +++ b/nezha-fronted/src/components/common/detailView/list/asset/assetDetail.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/nezha-fronted/src/components/common/detailView/nzDetailView.vue b/nezha-fronted/src/components/common/detailView/nzDetailView.vue new file mode 100644 index 000000000..562199efe --- /dev/null +++ b/nezha-fronted/src/components/common/detailView/nzDetailView.vue @@ -0,0 +1,161 @@ + + + + diff --git a/nezha-fronted/src/components/common/mixin/dataList.js b/nezha-fronted/src/components/common/mixin/dataList.js index 06cf12799..e08540c18 100644 --- a/nezha-fronted/src/components/common/mixin/dataList.js +++ b/nezha-fronted/src/components/common/mixin/dataList.js @@ -13,6 +13,7 @@ export default { pageObj: { // 分页对象 pageNo: 1, pageSize: this.$CONSTANTS.defaultPageSize, + pages: 1, total: 0 }, /* 工具参数 */ @@ -81,6 +82,7 @@ export default { } this.tableData = response.data.list this.pageObj.total = response.data.total + this.pageObj.pages = response.data.pages if (!this.scrollbarWrap) { this.$nextTick(() => { this.scrollbarWrap = this.$refs.dataTable.$refs.dataTable.bodyWrapper @@ -113,12 +115,20 @@ export default { }, pageNo (val) { this.pageObj.pageNo = val - this.getTableData() + if (this.detailType !== 'view') { + this.getTableData() + } else { + this.getDetail() + } }, pageSize (val) { this.pageObj.pageSize = val localStorage.setItem('nz-pageSize-' + localStorage.getItem('nz-username') + '-' + this.tableId, val) - this.getTableData() + if (this.detailType !== 'view') { + this.getTableData() + } else { + this.getDetail() + } }, add () { this.object = this.newObject() diff --git a/nezha-fronted/src/components/common/mixin/detailViewLeftMixin.js b/nezha-fronted/src/components/common/mixin/detailViewLeftMixin.js new file mode 100644 index 000000000..2ea37447f --- /dev/null +++ b/nezha-fronted/src/components/common/mixin/detailViewLeftMixin.js @@ -0,0 +1,19 @@ +export default { + props: { + tableData: { + type: Array + }, + api: { + type: String + }, + tableId: { + type: String + } + }, + data () { + return { + } + }, + methods: { + } +} diff --git a/nezha-fronted/src/components/common/mixin/detailViewMixin.js b/nezha-fronted/src/components/common/mixin/detailViewMixin.js new file mode 100644 index 000000000..2c3be9a7b --- /dev/null +++ b/nezha-fronted/src/components/common/mixin/detailViewMixin.js @@ -0,0 +1,51 @@ +export default { + props: {}, + data () { + return { + detailType: 'list', + detailViewRightObj: {} + } + }, + methods: { + changeDetailType (flag) { + if (this.detailType === flag) { + return + } + this.detailType = flag + this.pageObj.pageNo = 1 + if (flag === 'list') { + this.getTableData() + } else { + this.getDetail() + } + }, + searchDetail (params) { + this.getDetail() + }, + getDetail () { + const params = { + pageNo: this.pageObj.pageNo, + pageSize: 50 + } + this.tools.loading = true + this.$get(this.url, { ...params }).then(response => { + this.tools.loading = false + if (response.code === 200) { + this.tableData = response.data.list + this.detailViewRightObj = this.tableData[0] + this.pageObj.total = response.data.total + this.pageObj.pages = response.data.pages + if (!this.scrollbarWrap) { + this.$nextTick(() => { + this.scrollbarWrap = this.$refs.dataTable.$refs.dataTable.bodyWrapper + this.toTopBtnHandler(this.scrollbarWrap) + }) + } + } + }) + }, + detailViewRightShow (item) { + this.detailViewRightObj = item + } + } +} diff --git a/nezha-fronted/src/components/common/mixin/detailViewRightMixin.js b/nezha-fronted/src/components/common/mixin/detailViewRightMixin.js new file mode 100644 index 000000000..ba7a5ad74 --- /dev/null +++ b/nezha-fronted/src/components/common/mixin/detailViewRightMixin.js @@ -0,0 +1,11 @@ +export default { + props: { + fromListObj:{} + }, + data () { + return { + } + }, + methods: { + } +} diff --git a/nezha-fronted/src/components/common/table/nzDataList.vue b/nezha-fronted/src/components/common/table/nzDataList.vue index 5ad17cb4d..6f7319bf0 100644 --- a/nezha-fronted/src/components/common/table/nzDataList.vue +++ b/nezha-fronted/src/components/common/table/nzDataList.vue @@ -18,6 +18,17 @@ type="button" @click="tools.showCustomTableTitle = true"> + + + + 列表 + 详细 + + @@ -79,6 +90,10 @@ export default { type: String, default: '' }, + detailType: { + type: String, + default: '' + }, tableTitle: { type: Array }, @@ -156,6 +171,9 @@ export default { }, getTableData () { this.$emit('getTableData') + }, + changeDetailType (item) { + this.$emit('changeDetailType', item) } }, watch: { diff --git a/nezha-fronted/src/components/page/asset/asset.vue b/nezha-fronted/src/components/page/asset/asset.vue index 8ae4e38fa..38e053f5a 100644 --- a/nezha-fronted/src/components/page/asset/asset.vue +++ b/nezha-fronted/src/components/page/asset/asset.vue @@ -1,5 +1,5 @@