Commit 6f8b1f5d authored by 徐一鸣's avatar 徐一鸣

服务管理-普通用户-云资源服务列表

parent f671ecfe
src/assets/imgs/ic_true.png

1.51 KB | W: | H:

src/assets/imgs/ic_true.png

1.51 KB | W: | H:

src/assets/imgs/ic_true.png
src/assets/imgs/ic_true.png
src/assets/imgs/ic_true.png
src/assets/imgs/ic_true.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
<slot name="breadcrumb"></slot> <slot name="breadcrumb"></slot>
</div> </div>
<div class="main-container"> <div class="main-container">
<slot name="top"></slot>
<div class="header-container" v-if="!hideHeader"> <div class="header-container" v-if="!hideHeader">
<div class="header-left apass_button"> <div class="header-left apass_button">
<el-button <el-button
...@@ -18,6 +20,28 @@ ...@@ -18,6 +20,28 @@
" "
></i> ></i>
</el-button> </el-button>
<div
v-for="(item, index) in selectFilter"
:key="'select_' + index"
class="select_container"
>
<span class="select_title" v-text="item.name"></span>
<el-select
v-model="item.value"
placeholder="请选择"
@change="listAction"
>
<el-option
v-for="(v, i) in item.options"
:key="'select_' + index + '_option_' + i"
:label="v.name"
:value="v.value"
>
</el-option>
</el-select>
</div>
<slot name="header-left"></slot> <slot name="header-left"></slot>
</div> </div>
<div class="header-center"> <div class="header-center">
...@@ -51,7 +75,7 @@ ...@@ -51,7 +75,7 @@
<list-table <list-table
:header="listHeader" :header="listHeader"
:data="listData" :data="listData"
:padding-left="35" :padding-left="listPaddingLeft"
></list-table> ></list-table>
</div> </div>
...@@ -84,6 +108,10 @@ export default { ...@@ -84,6 +108,10 @@ export default {
type: Array, type: Array,
default: () => [], default: () => [],
}, },
otherFilter: {
type: Array,
default: () => [],
},
listHeader: { listHeader: {
type: Array, type: Array,
default: () => [], default: () => [],
...@@ -116,8 +144,21 @@ export default { ...@@ -116,8 +144,21 @@ export default {
currentPage: 1, currentPage: 1,
timer: null, timer: null,
pageSizes: [15, 50, 100], pageSizes: [15, 50, 100],
selectFilter: [],
}), }),
methods: { methods: {
initOtherFilter() {
this.otherFilter.forEach((item) => {
this.$set(this.filter, item.prop, item.default);
this.selectFilter.push({
name: item.name,
prop: item.prop,
value: item.default,
options: item.options,
});
});
},
searchAction(value) { searchAction(value) {
this.listAction(); this.listAction();
}, },
...@@ -140,8 +181,15 @@ export default { ...@@ -140,8 +181,15 @@ export default {
} }
this.timer = setTimeout(() => { this.timer = setTimeout(() => {
let selectFilter = {};
this.selectFilter.forEach((item) => {
selectFilter[item.prop] = item.value;
});
this.$emit("list-action", { this.$emit("list-action", {
...this.filter, ...this.filter,
...selectFilter,
keyword: this.searchValue, keyword: this.searchValue,
size: this.pageSize, size: this.pageSize,
page: this.currentPage, page: this.currentPage,
...@@ -150,6 +198,10 @@ export default { ...@@ -150,6 +198,10 @@ export default {
}, },
}, },
mounted() { mounted() {
if (this.otherFilter && this.otherFilter.length > 0) {
this.initOtherFilter();
}
this.listAction(); this.listAction();
}, },
}; };
...@@ -182,7 +234,17 @@ export default { ...@@ -182,7 +234,17 @@ export default {
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.header-container .el-button + .el-button { .header-container .select_container {
display: inline-block;
vertical-align: middle;
}
.header-container .select_container .select_title {
font-size: 14px;
color: #242c43;
margin-right: 10px;
}
.header-container .el-button + .el-button,
.header-container .select_container + .select_container {
margin-left: 25px; margin-left: 25px;
} }
.apass_filter { .apass_filter {
......
<template> <template>
<div class="apass_table"> <div class="apass_table">
<el-table :data="data"> <el-table :data="data">
<el-table-column :width="Math.max(paddingLeft - 10, 0)"></el-table-column> <el-table-column
v-if="paddingLeft > 10"
:width="paddingLeft - 10"
></el-table-column>
<el-table-column <el-table-column
v-for="(item, index) in header" v-for="(item, index) in header"
:label="item.label" :label="item.label"
...@@ -43,6 +46,33 @@ ...@@ -43,6 +46,33 @@
@click="item.callback && item.callback(scope.row)" @click="item.callback && item.callback(scope.row)"
></a> ></a>
</div> </div>
<div v-else-if="item.type === 'image'" class="img_content">
<img
:src="item.getImage && item.getImage(scope.row)"
:width="item.size"
/>
</div>
<div
v-else-if="
item.type === 'tooltip' &&
item.getLength &&
item.getLength(scope.row) > 1
"
>
<el-tooltip
placement="right-start"
popper-class="apass_table_tooltip"
>
<div
slot="content"
v-html="item.getContent && item.getContent(scope.row)"
></div>
<span
v-text="(item.getText && item.getText(scope.row)) + '..'"
style="text-decoration: underline;color: #515fe7;"
></span>
</el-tooltip>
</div>
<span <span
v-else v-else
v-text=" v-text="
...@@ -73,3 +103,19 @@ export default { ...@@ -73,3 +103,19 @@ export default {
}, },
}; };
</script> </script>
<style scoped>
.img_content {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
</style>
<style>
.apass_table_tooltip {
font-size: 12px;
line-height: 20px;
}
</style>
This diff is collapsed.
...@@ -8,9 +8,9 @@ const store = new Vuex.Store({ ...@@ -8,9 +8,9 @@ const store = new Vuex.Store({
userInfo: null, // 用户信息 userInfo: null, // 用户信息
serviceShopMenu: "/shop/data_service_list", // 服务超市侧边栏 serviceShopMenu: "/shop/data_service_list", // 服务超市侧边栏
fwglNav: [ fwglNav: [
["注册发布的服务", "申请的服务" /* , "云资源服务" */], // 普通用户 ["注册发布的服务", "申请的服务", "云资源服务"], // 普通用户
["组织服务管理", "服务审批管理" /* , "云资源管理" */], // 组织管理员 ["组织服务管理", "服务审批管理", "云资源管理"], // 组织管理员
["平台服务管理", "服务审批管理" /* , "云资源管理" */], // 超级管理员 ["平台服务管理", "服务审批管理", "云资源管理"], // 超级管理员
], // 服务管理列表,onlyRead ], // 服务管理列表,onlyRead
yyglNav: [ yyglNav: [
["应用仓库", "我部署的应用", "申请的应用"], // 普通用户 ["应用仓库", "我部署的应用", "申请的应用"], // 普通用户
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment