From 7c20fd15b7fbc2bd5756b39d5ab655cc849ffcc3 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期三, 16 七月 2025 22:39:23 +0800 Subject: [PATCH] 添加时间筛选 --- src/components/Table/index.vue | 155 ++++++++++++++++++++++++--------------------------- 1 files changed, 73 insertions(+), 82 deletions(-) diff --git a/src/components/Table/index.vue b/src/components/Table/index.vue index 42c1d51..173148a 100644 --- a/src/components/Table/index.vue +++ b/src/components/Table/index.vue @@ -1,33 +1,34 @@ <template> <div class="Table"> <div class="datatable"> - <el-table ref="multipleTable" :data="tableData" style="width: 100%" - :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" + <el-table + border + stripe + ref="multipleTable" :data="tableData" style="width: 100%" + :header-cell-style="{'background':'#F5F5F5','font-size':'14px','font-weight':'650','line-height':'45px'}" :row-class-name="tableRowClassName"> - <el-table-column type="selection" :min-width="5"> - </el-table-column> - <el-table-column v-for="(item,idx) in option.group" :key="item.prop" :label="item.label" + + <el-table-column type="selection" min-width="5"> </el-table-column> + <el-table-column v-for="item in option.group" :key="item.prop" :label="item.label" :prop="item.prop" :min-width="item['min-width'] ? item['item.min-width']:'10'"> <template slot-scope="scope"> <div v-if="item.type === 'text'"> {{scope.row[item.prop]}} </div> - <slot v-else name="operation" :info="scope"> - <div class="operationBox"> - <div class="divider" v-for="(child,index) in item.children" :key="child.operationName"> - <!-- @click="backMykey(scope.$index,child.mykey)" --> - <span>{{child.operationName}}</span> - <el-divider direction="vertical" v-if="index !== item.children.length-1"> - </el-divider> - </div> - </div> + <slot v-else-if="item.type === 'operation'" name="operation" :info="scope"> + + </slot> + <slot name="status" v-else-if="item.type === 'status'" :info="scope"> + </slot> + <slot name='time' v-else-if="item.type === 'time'" :timeobj="scope"> + </slot> </template> </el-table-column> </el-table> </div> <!-- tools --> - <div class="tools"> + <div class="tools" v-if="pageShow"> <div class="funs"> <div class="funsItem sp-item"> <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> @@ -80,6 +81,10 @@ } }, props: { + getTableList: { + type: Function, + default: () => {} + }, // 琛ㄦ牸鏁版嵁 tableData: { type: Array, @@ -93,20 +98,25 @@ // 寮圭獥 openDialog: { type: Function, - default: () => {} + default: () => { } }, // 鑾峰彇褰撳墠椤� - getCurrentPage:{ + getCurrentPage: { type: Function, - default: () => {} + default: () => { } }, // 鍒嗛〉鎬绘暟 - totalNum:{ - type:Number, - default:1 + totalNum: { + type: Number, + default: 1 + }, + // 鏄惁灞曠ず鍒嗛〉 + pageShow:{ + type: Boolean, + default: false, } }, - created(){ + created() { this.myTotalNum = JSON.parse(JSON.stringify(this.totalNum)); }, computed: { @@ -117,17 +127,16 @@ methods: { // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { - if ((rowIndex + 1) % 2 == 0) { + if ((rowIndex + 1) % 2 === 0) { return 'warning-row'; } else { return 'success-row'; } - return ''; }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; - this.$emit('getCurrentPage',page); + this.$emit('getCurrentPage', page); }, // 鍏ㄩ�� selectAll() { @@ -167,77 +176,59 @@ width: 100%; .el-table { - color: #4b9bb7; + // color: #4b9bb7; } + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { display: flex; - justify-content: space-between; - align-items: center; - padding: 0 20px; - .funs { - display: flex; - .sp-item{ - border: 1px solid #17324c; - } - .funsItem { - line-height: 28px; - display: flex; - align-items: center; - border-radius: 4px; - font-size: 12px; - margin-left: 10px; - - .el-checkbox { - width: 80px; - padding: 0 10px; - } - - .el-select { - width: 120px; - } - - &::v-deep .el-input__inner { - border: none; - background-color: #09152f; - } - - &:hover .el-checkbox { - color: #4b9bb7; - } - } - + .sp-item { + // border: 1px solid #17324c; } - .pagination { - margin-top: 50px; + .funsItem { + line-height: 28px; display: flex; - line-height: 50px; - justify-content: center; + align-items: center; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; - .el-pagination { + .el-checkbox { + width: 80px; + padding: 0 10px; + } - &::v-deep li, - &::v-deep .btn-prev, - &::v-deep .btn-next { - background-color: #071f39; - color: #4b9bb7; - } + .el-select { + width: 120px; + } - &::v-deep .active { - background-color: #409eff; - color: #fff; - } + &::v-deep .el-input__inner { + border: none; + // background-color: #09152f; + } + + &:hover .el-checkbox { + color: #4b9bb7; } } + } - &::v-deep .warning-row { - background-color: #06122c; + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + } } - &::v-deep .success-row { - background-color: #071f39; - } .operationBox { display: flex; @@ -247,4 +238,4 @@ background-color: #4b9bb7; } } -</style> \ No newline at end of file +</style> -- Gitblit v1.8.0