|
@@ -1,7 +1,8 @@
|
|
|
<template>
|
|
|
<div class="header-actions" v-if="getActionList.length != 0 &&getActionList.length>2">
|
|
|
<div class="overflow-box">
|
|
|
- <el-button v-for="(item, index) in getActionList" :key="index" :type="item.type || 'primary'" :plain="item.plain || false"
|
|
|
+ <el-button v-for="(item, index) in getActionList" :key="index" :type="item.type || 'primary'"
|
|
|
+ :plain="item.plain || false"
|
|
|
v-bind="getHeaderActions(item)" @click="item.action" :disabled="item.disabled || false">
|
|
|
{{ item.text }}
|
|
|
</el-button>
|
|
@@ -28,7 +29,8 @@
|
|
|
<div class="label">{{ i.label }}</div>
|
|
|
<div class="num">{{ i.num }}</div>
|
|
|
</li>
|
|
|
- <li v-show="i.data" v-for="(i, index) in statConfig[statSelectVal].data" :key="index" class="multi-data" :class="'theme' + i.type"
|
|
|
+ <li v-show="i.data" v-for="(i, index) in statConfig[statSelectVal].data" :key="index" class="multi-data"
|
|
|
+ :class="'theme' + i.type"
|
|
|
@click="i.click ? i.click(i, index) : ''" :style="i.click ? 'cursor: pointer' : ''">
|
|
|
<div class="label">{{ i.label }}</div>
|
|
|
<div class="num-warp">
|
|
@@ -50,30 +52,35 @@
|
|
|
<div class="by-search" v-if="!hideSearch">
|
|
|
<div style="display: flex">
|
|
|
<div v-if="getActionList.length != 0 &&getActionList.length <=2" style="margin-right:10px">
|
|
|
- <el-button v-for="(item, index) in getActionList" :key="index" :type="item.type || 'primary'" :plain="item.plain || false"
|
|
|
+ <el-button v-for="(item, index) in getActionList" :key="index" :type="item.type || 'primary'"
|
|
|
+ :plain="item.plain || false"
|
|
|
v-bind="getHeaderActions(item)" @click="item.action" :disabled="item.disabled || false">
|
|
|
{{ item.text }}
|
|
|
</el-button>
|
|
|
</div>
|
|
|
<div class="by-dropdown" v-for="(i, index) in selectConfigCopy" :key="i.prop" style="margin-right: 10px">
|
|
|
<div v-if="i.type" class="selectTime" style="display:flex;align-items:center">
|
|
|
- <span style="font-size:14px;height:32px;margin-right:15px">{{i.label || ''}}</span>
|
|
|
- <el-date-picker v-model="pagination[i.prop]" type="date" size="small" :placeholder="i.placeholder" style="width:120px"
|
|
|
- value-format="YYYY-MM-DD" @change="searchItemSelctOne(i,pagination[i.prop],pagination[i.propOne])" />
|
|
|
+ <span style="font-size:14px;height:32px;margin-right:15px">{{ i.label || '' }}</span>
|
|
|
+ <el-date-picker v-model="pagination[i.prop]" type="date" size="small" :placeholder="i.placeholder"
|
|
|
+ style="width:120px"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ @change="searchItemSelctOne(i,pagination[i.prop],pagination[i.propOne])"/>
|
|
|
<span style="margin-right:15px">-</span>
|
|
|
- <el-date-picker v-model="pagination[i.propOne]" type="date" size="small" :placeholder="i.placeholderOne" style="width:120px"
|
|
|
- value-format="YYYY-MM-DD" @change="searchItemSelctOne(i,pagination[i.prop],pagination[i.propOne])" />
|
|
|
+ <el-date-picker v-model="pagination[i.propOne]" type="date" size="small" :placeholder="i.placeholderOne"
|
|
|
+ style="width:120px"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ @change="searchItemSelctOne(i,pagination[i.prop],pagination[i.propOne])"/>
|
|
|
</div>
|
|
|
<div v-else>
|
|
|
<div class="by-dropdown-title">
|
|
|
<!-- {{i.label || i.labelCopy}} -->
|
|
|
{{
|
|
|
- pagination[i.prop]
|
|
|
- ? i.data.find((j) => j.value === pagination[i.prop])
|
|
|
- ? i.data.find((j) => j.value === pagination[i.prop]).label
|
|
|
- : i.label
|
|
|
- : i.labelCopy
|
|
|
- }}
|
|
|
+ pagination[i.prop]
|
|
|
+ ? i.data.find((j) => j.value === pagination[i.prop])
|
|
|
+ ? i.data.find((j) => j.value === pagination[i.prop]).label
|
|
|
+ : i.label
|
|
|
+ : i.labelCopy
|
|
|
+ }}
|
|
|
<i style="margin-left: 5px" class="iconfont icon-iconm_xialan1"></i>
|
|
|
</div>
|
|
|
<ul class="by-dropdown-lists">
|
|
@@ -88,26 +95,32 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div style="display: flex">
|
|
|
- <el-input :placeholder="$t('common.pleaseEnterKeywords')" suffix-icon="search" size="mini" v-model="pagination.keyword"
|
|
|
+ <div v-if="showSearch" style="display: flex">
|
|
|
+ <el-input :placeholder="$t('common.pleaseEnterKeywords')" suffix-icon="search" size="default"
|
|
|
+ v-model="pagination.keyword"
|
|
|
@keyup.enter="searchFn">
|
|
|
</el-input>
|
|
|
- <el-button type="primary" style="margin-left: 10px" size="default" @click="searchFn">{{ $t("common.search") }}</el-button>
|
|
|
+ <el-button type="primary" style="margin-left: 10px" size="default" @click="searchFn">{{
|
|
|
+ $t("common.search")
|
|
|
+ }}
|
|
|
+ </el-button>
|
|
|
<div class="more-icon" @click="retrievalModalFn">
|
|
|
- <img src="@/assets/images/iconm_xiangyzk.png" alt="" />
|
|
|
+ <img src="@/assets/images/iconm_xiangyzk.png" alt=""/>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<component :is="containerTag">
|
|
|
<div class="filter-form-container">
|
|
|
- <slot />
|
|
|
+ <slot/>
|
|
|
</div>
|
|
|
|
|
|
- <el-table ref="hocElTable" :data="source" v-if="!hideTable" style="width: 100%" v-bind="$attrs" v-on="tableEvents" row-key="id" :tree-props="{
|
|
|
+ <el-table ref="hocElTable" :data="source" v-if="!hideTable" style="width: 100%" v-bind="$attrs" v-on="tableEvents"
|
|
|
+ row-key="id" :tree-props="{
|
|
|
children: 'children',
|
|
|
hasChildren: 'hasChildren',
|
|
|
}" :height="tableHeight" :row-class-name="updateTableRowClassName">
|
|
|
- <el-table-column v-for="(item, index) in configData" :key="index" v-bind="getAttrsValue(item)" :type="item.type || ''" :selectable="
|
|
|
+ <el-table-column v-for="(item, index) in configData" :key="index" v-bind="getAttrsValue(item)"
|
|
|
+ :type="item.type || ''" :selectable="
|
|
|
(rowData, rowIndex) => isSelectable(rowData, rowIndex, item)
|
|
|
">
|
|
|
<template #header v-if="item.attrs.isNeedHeaderSlot">
|
|
@@ -121,12 +134,13 @@
|
|
|
插槽占位符
|
|
|
</slot>
|
|
|
<div v-else-if="isFunction(getValue(scope, item))">
|
|
|
- <component :is="renderTypeList[getMatchRenderFunction(item)].target" :cell-list="getValue(scope, item)()" :row="scope.row"
|
|
|
+ <component :is="renderTypeList[getMatchRenderFunction(item)].target" :cell-list="getValue(scope, item)()"
|
|
|
+ :row="scope.row"
|
|
|
:parent="getParent" @click="
|
|
|
($event) => {
|
|
|
handleNativeClick(getAttrsValue(item), $event, item);
|
|
|
}
|
|
|
- " />
|
|
|
+ "/>
|
|
|
</div>
|
|
|
<div v-else>
|
|
|
{{ getValue(scope, item) }}
|
|
@@ -138,19 +152,18 @@
|
|
|
<el-row v-if="!hidePagination" class="table-pagination" justify="end" type="flex">
|
|
|
<el-pagination background layout="total, sizes, prev, pager, next, jumper" :current-page="getPagination.pageNum"
|
|
|
:page-size="getPagination.pageSize" :total="getPagination.total" @size-change="handleSizeChange"
|
|
|
- @current-change="handlePageChange" :page-sizes="pageSizes" />
|
|
|
+ @current-change="handlePageChange" :page-sizes="pageSizes"/>
|
|
|
</el-row>
|
|
|
</component>
|
|
|
</div>
|
|
|
</template>
|
|
|
-
|
|
|
- <script>
|
|
|
-import { isFunction as isFn, isBoolean } from "./type";
|
|
|
+
|
|
|
+<script>
|
|
|
+import {isBoolean, isFunction as isFn} from "./type";
|
|
|
import ElementsMapping from "./ElementsMapping";
|
|
|
import ComponentsMapping from "./ComponentsMapping";
|
|
|
-import { computed, defineComponent, getCurrentInstance, ref, watch } from "vue";
|
|
|
-import expand from "./expand";
|
|
|
-import Sortable from "sortablejs";
|
|
|
+import {computed, defineComponent, getCurrentInstance, ref, watch} from "vue";
|
|
|
+
|
|
|
export default defineComponent({
|
|
|
name: "Table",
|
|
|
components: {
|
|
@@ -163,10 +176,14 @@ export default defineComponent({
|
|
|
type: Boolean,
|
|
|
default: false,
|
|
|
},
|
|
|
- onMoreSearch: {
|
|
|
+ showSearch: {
|
|
|
type: Boolean,
|
|
|
default: true,
|
|
|
},
|
|
|
+ // onMoreSearch: {
|
|
|
+ // type: Boolean,
|
|
|
+ // default: true,
|
|
|
+ // },
|
|
|
hideAll: {
|
|
|
type: Boolean,
|
|
|
default: false,
|
|
@@ -262,7 +279,10 @@ export default defineComponent({
|
|
|
actionList: {
|
|
|
type: Array,
|
|
|
default() {
|
|
|
- return [{ text: "", action: () => {} }];
|
|
|
+ return [{
|
|
|
+ text: "", action: () => {
|
|
|
+ }
|
|
|
+ }];
|
|
|
},
|
|
|
},
|
|
|
// element table 原生事件
|
|
@@ -284,7 +304,7 @@ export default defineComponent({
|
|
|
},
|
|
|
|
|
|
setup(props) {
|
|
|
- const { proxy } = getCurrentInstance();
|
|
|
+ const {proxy} = getCurrentInstance();
|
|
|
// 过滤出有属性的
|
|
|
// const configData = ref([]);
|
|
|
// configData.value = proxy.config.filter((x) => x && x.attrs);
|
|
@@ -292,7 +312,7 @@ export default defineComponent({
|
|
|
// console.log(configData.value, "ssssssssss");
|
|
|
const selectConfigCopy = computed(() => {
|
|
|
return props.selectConfig.map((item) => {
|
|
|
- if (!item.labelCopy) item.labelCopy = { ...item }.label;
|
|
|
+ if (!item.labelCopy) item.labelCopy = {...item}.label;
|
|
|
return item;
|
|
|
});
|
|
|
});
|
|
@@ -302,20 +322,20 @@ export default defineComponent({
|
|
|
};
|
|
|
let statWarpHeight = ref(0);
|
|
|
watch(
|
|
|
- proxy.statConfig,
|
|
|
- (newValue, oldValue) => {
|
|
|
- setTimeout(() => {
|
|
|
- //获取statWarp的height
|
|
|
- statWarpHeight.value =
|
|
|
- document.getElementById("statWarp").offsetHeight;
|
|
|
- }, 500);
|
|
|
- },
|
|
|
- { immediate: true }
|
|
|
+ proxy.statConfig,
|
|
|
+ (newValue, oldValue) => {
|
|
|
+ setTimeout(() => {
|
|
|
+ //获取statWarp的height
|
|
|
+ statWarpHeight.value =
|
|
|
+ document.getElementById("statWarp").offsetHeight;
|
|
|
+ }, 500);
|
|
|
+ },
|
|
|
+ {immediate: true}
|
|
|
);
|
|
|
let statSelectVal = ref(0);
|
|
|
const retrievalModal = ref(false);
|
|
|
const getAttrsValue = (item) => {
|
|
|
- const { attrs } = item;
|
|
|
+ const {attrs} = item;
|
|
|
const result = {
|
|
|
...attrs,
|
|
|
};
|
|
@@ -347,9 +367,9 @@ export default defineComponent({
|
|
|
});
|
|
|
const getActionList = computed(() => {
|
|
|
return props.actionList
|
|
|
- .slice()
|
|
|
- .reverse()
|
|
|
- .filter((it) => it.text);
|
|
|
+ .slice()
|
|
|
+ .reverse()
|
|
|
+ .filter((it) => it.text);
|
|
|
});
|
|
|
const getValue = (scope, configItem) => {
|
|
|
const prop = configItem.attrs.prop;
|
|
@@ -357,18 +377,18 @@ export default defineComponent({
|
|
|
const renderObj = renderTypeList.value[renderName];
|
|
|
if (renderObj && isFunction(configItem[renderName])) {
|
|
|
return renderObj.target
|
|
|
- ? getRenderValue(scope, configItem, {
|
|
|
+ ? getRenderValue(scope, configItem, {
|
|
|
name: renderName,
|
|
|
type: "bind",
|
|
|
})
|
|
|
- : getRenderValue(scope, configItem);
|
|
|
+ : getRenderValue(scope, configItem);
|
|
|
}
|
|
|
return scope.row[prop];
|
|
|
};
|
|
|
const getRenderValue = (
|
|
|
- scope,
|
|
|
- item,
|
|
|
- fn = { name: "render", type: "call" }
|
|
|
+ scope,
|
|
|
+ item,
|
|
|
+ fn = {name: "render", type: "call"}
|
|
|
) => {
|
|
|
const prop = item.attrs.prop;
|
|
|
const propValue = prop && scope.row[prop];
|
|
@@ -390,10 +410,10 @@ export default defineComponent({
|
|
|
const searchFn = (val) => {
|
|
|
if (props.loading) return;
|
|
|
proxy.$emit(
|
|
|
- "getList",
|
|
|
- Object.assign(props.filterParams, {
|
|
|
- [props.searchKey]: props.pagination.keyword,
|
|
|
- })
|
|
|
+ "getList",
|
|
|
+ Object.assign(props.filterParams, {
|
|
|
+ [props.searchKey]: props.pagination.keyword,
|
|
|
+ })
|
|
|
);
|
|
|
};
|
|
|
const retrievalModalFn = () => {
|
|
@@ -402,14 +422,14 @@ export default defineComponent({
|
|
|
};
|
|
|
const handlePageChange = (val) => {
|
|
|
proxy.$emit(
|
|
|
- "getList",
|
|
|
- Object.assign(props.filterParams, { pageNum: val })
|
|
|
+ "getList",
|
|
|
+ Object.assign(props.filterParams, {pageNum: val})
|
|
|
);
|
|
|
};
|
|
|
const handleSizeChange = (val) => {
|
|
|
proxy.$emit(
|
|
|
- "getList",
|
|
|
- Object.assign(props.filterParams, { pageSize: val })
|
|
|
+ "getList",
|
|
|
+ Object.assign(props.filterParams, {pageSize: val})
|
|
|
);
|
|
|
};
|
|
|
const getHeaderActions = (item) => {
|
|
@@ -425,7 +445,7 @@ export default defineComponent({
|
|
|
event.cancelBubble = true;
|
|
|
}
|
|
|
};
|
|
|
- const handleNativeClick = ({ isBubble }, e, item) => {
|
|
|
+ const handleNativeClick = ({isBubble}, e, item) => {
|
|
|
// 考虑到单元格内渲染了组件,并且组件自身可能含有点击事件,故添加了阻止冒泡机制
|
|
|
// 若指定 isBubble 为 false,则当前单元格恢复冒泡机制
|
|
|
if (isBoolean(isBubble) && !isBubble) return;
|
|
@@ -435,39 +455,39 @@ export default defineComponent({
|
|
|
|
|
|
const searchItemSelct = (item, i, index = 0) => {
|
|
|
if (item == "all") {
|
|
|
- i.label = { ...props.selectConfig[index] }.labelCopy;
|
|
|
+ i.label = {...props.selectConfig[index]}.labelCopy;
|
|
|
i.label = props.selectConfig[index].labelCopy;
|
|
|
proxy.$emit(
|
|
|
- "getList",
|
|
|
- Object.assign(props.filterParams, { [i.prop]: "" })
|
|
|
+ "getList",
|
|
|
+ Object.assign(props.filterParams, {[i.prop]: ""})
|
|
|
);
|
|
|
return;
|
|
|
}
|
|
|
i.label = item.label || item.dictValue;
|
|
|
proxy.$emit(
|
|
|
- "getList",
|
|
|
- Object.assign(props.filterParams, {
|
|
|
- [i.prop]: item.value || item.dictKey,
|
|
|
- })
|
|
|
+ "getList",
|
|
|
+ Object.assign(props.filterParams, {
|
|
|
+ [i.prop]: item.value || item.dictKey,
|
|
|
+ })
|
|
|
);
|
|
|
};
|
|
|
|
|
|
const searchItemSelctOne = (item, prop, propOne) => {
|
|
|
if (prop && propOne) {
|
|
|
proxy.$emit(
|
|
|
- "getList",
|
|
|
- Object.assign(props.filterParams, {
|
|
|
- [item.prop]: prop,
|
|
|
- [item.propOne]: propOne,
|
|
|
- })
|
|
|
+ "getList",
|
|
|
+ Object.assign(props.filterParams, {
|
|
|
+ [item.prop]: prop,
|
|
|
+ [item.propOne]: propOne,
|
|
|
+ })
|
|
|
);
|
|
|
} else if (prop == null && propOne == null) {
|
|
|
proxy.$emit(
|
|
|
- "getList",
|
|
|
- Object.assign(props.filterParams, {
|
|
|
- [item.prop]: prop,
|
|
|
- [item.propOne]: propOne,
|
|
|
- })
|
|
|
+ "getList",
|
|
|
+ Object.assign(props.filterParams, {
|
|
|
+ [item.prop]: prop,
|
|
|
+ [item.propOne]: propOne,
|
|
|
+ })
|
|
|
);
|
|
|
}
|
|
|
};
|
|
@@ -533,18 +553,22 @@ export default defineComponent({
|
|
|
.table-list-container th {
|
|
|
color: #333 !important;
|
|
|
}
|
|
|
+
|
|
|
.by-table td .el-button + .el-button {
|
|
|
margin-left: 0 !important;
|
|
|
}
|
|
|
+
|
|
|
.by-table td .el-button {
|
|
|
background: none !important;
|
|
|
margin: 0 !important;
|
|
|
padding: 8px 6px !important;
|
|
|
}
|
|
|
+
|
|
|
.el-checkbox__input.is-disabled .el-checkbox__inner {
|
|
|
background-color: #dee1e6;
|
|
|
border-color: #b2b4b9;
|
|
|
}
|
|
|
+
|
|
|
.el-table .cell {
|
|
|
line-height: 34px;
|
|
|
}
|
|
@@ -557,9 +581,11 @@ export default defineComponent({
|
|
|
.sortableActive {
|
|
|
background: #f5f7fa !important;
|
|
|
}
|
|
|
+
|
|
|
.show-more {
|
|
|
height: auto !important;
|
|
|
}
|
|
|
+
|
|
|
.stat-warp {
|
|
|
margin-bottom: 20px;
|
|
|
background: #fff;
|
|
@@ -567,6 +593,7 @@ export default defineComponent({
|
|
|
height: 200px;
|
|
|
overflow: hidden;
|
|
|
position: relative;
|
|
|
+
|
|
|
.more-btn {
|
|
|
position: absolute;
|
|
|
right: 0;
|
|
@@ -578,16 +605,19 @@ export default defineComponent({
|
|
|
line-height: 30px;
|
|
|
text-align: center;
|
|
|
background: linear-gradient(
|
|
|
- 180deg,
|
|
|
- rgba(255, 255, 255, 0) 0%,
|
|
|
- rgba(255, 255, 255, 0.8) 100%
|
|
|
+ 180deg,
|
|
|
+ rgba(255, 255, 255, 0) 0%,
|
|
|
+ rgba(255, 255, 255, 0.8) 100%
|
|
|
);
|
|
|
+
|
|
|
i {
|
|
|
color: #999;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.title {
|
|
|
height: 60px;
|
|
|
+
|
|
|
select {
|
|
|
height: 60px;
|
|
|
border: none;
|
|
@@ -599,6 +629,7 @@ export default defineComponent({
|
|
|
background: url("@/assets/images/sanjiao.png") no-repeat right center;
|
|
|
padding-right: 20px;
|
|
|
}
|
|
|
+
|
|
|
div {
|
|
|
height: 60px;
|
|
|
font-size: 14px;
|
|
@@ -606,10 +637,12 @@ export default defineComponent({
|
|
|
line-height: 60px;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
ul {
|
|
|
padding: 0;
|
|
|
overflow: hidden;
|
|
|
margin: 0;
|
|
|
+
|
|
|
li {
|
|
|
list-style: none;
|
|
|
min-width: 285px;
|
|
@@ -621,9 +654,11 @@ export default defineComponent({
|
|
|
padding: 20px;
|
|
|
color: #333333;
|
|
|
border-radius: 10px;
|
|
|
+
|
|
|
.label {
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
+
|
|
|
.label::before {
|
|
|
width: 10px;
|
|
|
height: 10px;
|
|
@@ -633,66 +668,83 @@ export default defineComponent({
|
|
|
display: inline-block;
|
|
|
margin-right: 10px;
|
|
|
}
|
|
|
+
|
|
|
.num {
|
|
|
margin-top: 10px;
|
|
|
font-size: 24px;
|
|
|
font-weight: bold;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
//#F5F3FF #9E64ED
|
|
|
.theme2 {
|
|
|
background: #f5f3ff;
|
|
|
+
|
|
|
.label::before {
|
|
|
background: #9e64ed;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
//#FFF1E1 #FF9315
|
|
|
.theme3 {
|
|
|
background: #fff1e1;
|
|
|
+
|
|
|
.label::before {
|
|
|
background: #ff9315;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
//#E2FBE8 #39C55A
|
|
|
.theme4 {
|
|
|
background: #e2fbe8;
|
|
|
+
|
|
|
.label::before {
|
|
|
background: #39c55a;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.theme5 {
|
|
|
background: #ffebe9;
|
|
|
+
|
|
|
.label::before {
|
|
|
background: #f94539;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.theme6 {
|
|
|
background: #e4f9f9;
|
|
|
+
|
|
|
.label::before {
|
|
|
background: #53cbcb;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.multi-data {
|
|
|
.label::before {
|
|
|
display: none;
|
|
|
}
|
|
|
+
|
|
|
.label {
|
|
|
font-size: 14px;
|
|
|
font-weight: bold;
|
|
|
color: #333;
|
|
|
margin-bottom: 8px;
|
|
|
}
|
|
|
+
|
|
|
.num-warp {
|
|
|
overflow: hidden;
|
|
|
+
|
|
|
.num-box {
|
|
|
float: left;
|
|
|
min-width: 80px;
|
|
|
margin-right: 20px;
|
|
|
+
|
|
|
.num-small {
|
|
|
font-size: 16px;
|
|
|
font-weight: bold;
|
|
|
margin-bottom: 8px;
|
|
|
}
|
|
|
+
|
|
|
.label-small {
|
|
|
color: #666;
|
|
|
font-size: 14px;
|
|
@@ -702,10 +754,12 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.by-search {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
margin-bottom: 10px;
|
|
|
+
|
|
|
.more-icon {
|
|
|
float: right;
|
|
|
cursor: pointer;
|
|
@@ -714,6 +768,7 @@ export default defineComponent({
|
|
|
margin-left: 5px;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.by-dropdown {
|
|
|
position: relative;
|
|
|
text-align: left;
|
|
@@ -728,6 +783,7 @@ export default defineComponent({
|
|
|
font-size: 14px;
|
|
|
background-color: #fff;
|
|
|
}
|
|
|
+
|
|
|
ul {
|
|
|
position: absolute;
|
|
|
left: 0;
|
|
@@ -739,6 +795,7 @@ export default defineComponent({
|
|
|
display: none;
|
|
|
white-space: nowrap;
|
|
|
min-width: 80px;
|
|
|
+
|
|
|
li {
|
|
|
list-style: none;
|
|
|
font-size: 12px;
|
|
@@ -747,6 +804,7 @@ export default defineComponent({
|
|
|
text-align: left;
|
|
|
line-height: 30px;
|
|
|
}
|
|
|
+
|
|
|
li:hover {
|
|
|
background-color: #eff6ff;
|
|
|
color: #0084ff;
|
|
@@ -771,6 +829,7 @@ export default defineComponent({
|
|
|
|
|
|
border-radius: 2px 2px 2px 2px;
|
|
|
opacity: 1;
|
|
|
+
|
|
|
ul {
|
|
|
background: #ffffff;
|
|
|
box-shadow: 0px 2px 16px 1px rgba(0, 0, 0, 0.06);
|
|
@@ -780,49 +839,60 @@ export default defineComponent({
|
|
|
text-align: left;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.header-actions {
|
|
|
flex: 1;
|
|
|
overflow-x: auto;
|
|
|
padding: 20px;
|
|
|
background: #fff;
|
|
|
margin-bottom: 20px;
|
|
|
+
|
|
|
.overflow-box {
|
|
|
:deep() .el-button:nth-child(1) {
|
|
|
margin-left: 10px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.table-list-container {
|
|
|
background: #fff;
|
|
|
padding: 15px;
|
|
|
+
|
|
|
.table-pagination {
|
|
|
padding-top: 20px;
|
|
|
}
|
|
|
+
|
|
|
.header {
|
|
|
display: flex;
|
|
|
padding-bottom: 20px;
|
|
|
}
|
|
|
+
|
|
|
.el-table {
|
|
|
:deep() th {
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
+
|
|
|
:deep() td {
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.by-dropdown-lists {
|
|
|
max-height: 50vh;
|
|
|
overflow-y: auto;
|
|
|
line-height: 1;
|
|
|
}
|
|
|
+
|
|
|
:deep(.selectTime .el-input__wrapper) {
|
|
|
box-shadow: none;
|
|
|
}
|
|
|
+
|
|
|
:deep(.selectTime .el-input__inner) {
|
|
|
color: #000 !important;
|
|
|
font-size: 14px !important;
|
|
|
}
|
|
|
+
|
|
|
:deep(.selectTime .el-input .el-input__icon) {
|
|
|
color: #000 !important;
|
|
|
font-size: 14px !important;
|