From e80fb1e51d652d0ccecc27688c72a168c8297075 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期四, 27 二月 2025 17:12:41 +0800 Subject: [PATCH] 表格优化lll --- admin/src/views/operation/serviceCar/apprRecord.vue | 291 ++++++++++++++++++--------------------------------------- 1 files changed, 93 insertions(+), 198 deletions(-) diff --git a/admin/src/views/operation/serviceCar/apprRecord.vue b/admin/src/views/operation/serviceCar/apprRecord.vue index 7c6e24d..01da171 100644 --- a/admin/src/views/operation/serviceCar/apprRecord.vue +++ b/admin/src/views/operation/serviceCar/apprRecord.vue @@ -1,160 +1,83 @@ <template> <TableLayout :permissions="['business:empower:query']"> <!-- 鎼滅储琛ㄥ崟 --> - <el-form - ref="searchForm" - slot="search-form" - :model="searchForm" - label-width="100px" - inline - > - <el-form-item label="鐢宠浜�" prop="memberName"> - <el-input - v-model="searchForm.memberName" - placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" - @keypress.enter.native="search" - ></el-input> - </el-form-item> - <el-form-item label="鐢宠浜虹粍缁�" prop="companyName"> - <el-input - v-model="searchForm.companyName" - placeholder="璇疯緭鍏ョ敵璇蜂汉缁勭粐" - clearable - @keypress.enter.native="search" - ></el-input> - </el-form-item> - <el-form-item label="杞︾墝鍙�" prop="carCode"> - <el-input - v-model="searchForm.carCode" - placeholder="璇疯緭鍏ヨ溅鐗屽彿" - clearable - @keypress.enter.native="search" - ></el-input> - </el-form-item> - <el-form-item label="鐘舵��" prop="status"> - <el-select - v-model="searchForm.status" - @change="search" - clearable - placeholder="鐘舵��" - > - <el-option label="鐢宠涓�" value="0"></el-option> - <el-option label="瀹℃牳涓�" value="1"></el-option> - <el-option label="瀹℃壒閫氳繃" value="2"></el-option> - <el-option label="瀹℃壒涓嶉�氳繃" value="3"></el-option> - <el-option label="宸叉挙閿�" value="4"></el-option> - </el-select> - </el-form-item> - <el-form-item label="鐩殑鍦扮被鍨�" prop="type"> - <el-select - v-model="searchForm.type" - @change="search" - clearable - placeholder="鐩殑鍦扮被鍨�" - > - <el-option label="甯傚唴鐢ㄨ溅" value="0"></el-option> - <el-option label="甯傚鐢ㄨ溅" value="1"></el-option> - </el-select> - </el-form-item> - <el-form-item label="鍑哄彂鏃堕棿" prop="startTime"> - <el-date-picker - @change="seleTime" - v-model="time" - @keypress.enter.native="search" - type="datetimerange" - format="yyyy-MM-dd HH:mm:ss" - value-format="yyyy-MM-dd HH:mm:ss" - :default-time="['00:00:00', '23:59:59']" - range-separator="鑷�" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - > - </el-date-picker> - </el-form-item> - <el-radio-group - v-model="searchForm.radio" - size="small" - @input="changeRadio" - > - <el-radio-button label="0">褰撳ぉ</el-radio-button> - <el-radio-button label="1">杩�7澶�</el-radio-button> - <el-radio-button label="2">杩�30澶�</el-radio-button> - </el-radio-group> - <section> - <el-button type="primary" @click="search">鎼滅储</el-button> - <el-button @click="reset">閲嶇疆</el-button> - </section> - </el-form> + <div ref="QueryFormRef" slot="search-form"> + <el-form ref="searchForm" :model="searchForm" label-width="100px" inline> + <el-form-item label="鐢宠浜�" prop="memberName"> + <el-input v-model="searchForm.memberName" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input> + </el-form-item> + <el-form-item label="鐢宠浜虹粍缁�" prop="companyName"> + <el-input v-model="searchForm.companyName" placeholder="璇疯緭鍏ョ敵璇蜂汉缁勭粐" clearable + @keypress.enter.native="search"></el-input> + </el-form-item> + <el-form-item label="杞︾墝鍙�" prop="carCode"> + <el-input v-model="searchForm.carCode" placeholder="璇疯緭鍏ヨ溅鐗屽彿" clearable + @keypress.enter.native="search"></el-input> + </el-form-item> + <el-form-item label="鐘舵��" prop="status"> + <el-select v-model="searchForm.status" @change="search" clearable placeholder="鐘舵��"> + <el-option label="鐢宠涓�" value="0"></el-option> + <el-option label="瀹℃牳涓�" value="1"></el-option> + <el-option label="瀹℃壒閫氳繃" value="2"></el-option> + <el-option label="瀹℃壒涓嶉�氳繃" value="3"></el-option> + <el-option label="宸叉挙閿�" value="4"></el-option> + </el-select> + </el-form-item> + <el-form-item label="鐩殑鍦扮被鍨�" prop="type"> + <el-select v-model="searchForm.type" @change="search" clearable placeholder="鐩殑鍦扮被鍨�"> + <el-option label="甯傚唴鐢ㄨ溅" value="0"></el-option> + <el-option label="甯傚鐢ㄨ溅" value="1"></el-option> + </el-select> + </el-form-item> + <el-form-item label="鍑哄彂鏃堕棿" prop="startTime"> + <el-date-picker @change="seleTime" v-model="time" @keypress.enter.native="search" type="datetimerange" + format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" :default-time="['00:00:00', '23:59:59']" + range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"> + </el-date-picker> + </el-form-item> + <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio"> + <el-radio-button label="0">褰撳ぉ</el-radio-button> + <el-radio-button label="1">杩�7澶�</el-radio-button> + <el-radio-button label="2">杩�30澶�</el-radio-button> + </el-radio-group> + <section> + <el-button type="primary" @click="search">鎼滅储</el-button> + <el-button @click="reset">閲嶇疆</el-button> + </section> + </el-form> + </div> <!-- 琛ㄦ牸鍜屽垎椤� --> <template v-slot:table-wrap> - <ul - class="toolbar" - v-permissions="[ - 'business:carusebook:create', - 'business:carusebook:exportExcel', - ]" - > + <ul class="toolbar" v-permissions="[ + 'business:carusebook:create', + 'business:carusebook:exportExcel', + ]"> <li> - <el-button - type="primary" - @click="handleEdit" - icon="el-icon-plus" - v-permissions="['business:carusebook:create']" - >鏂板缓</el-button - > + <el-button type="primary" @click="handleEdit" icon="el-icon-plus" + v-permissions="['business:carusebook:create']">鏂板缓</el-button> </li> <li> - <el-button - type="primary" - @click="handleEx" - v-permissions="['business:carusebook:exportExcel']" - >瀵煎嚭</el-button - > + <el-button type="primary" @click="handleEx" v-permissions="['business:carusebook:exportExcel']">瀵煎嚭</el-button> </li> </ul> - <el-table - v-loading="isWorking.search" - :data="tableData.list" - stripe - @selection-change="handleSelectionChange" - > + <el-table :max-height="tableHeight" v-loading="isWorking.search" :data="tableData.list" stripe + @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55"></el-table-column> - <el-table-column - prop="carCode" - label="杞︾墝鍙�" - min-width="100px" - ></el-table-column> - <el-table-column - prop="memberName" - label="鎻愭姤浜�" - min-width="80px" - ></el-table-column> - <el-table-column - prop="memberNames" - label="涔樿溅浜�" - min-width="180px" - ></el-table-column> - <el-table-column - prop="companyName" - label="鎵�灞炵粍缁�" - min-width="150px" - ></el-table-column> + <el-table-column prop="carCode" label="杞︾墝鍙�" min-width="100px"></el-table-column> + <el-table-column prop="memberName" label="鎻愭姤浜�" min-width="80px"></el-table-column> + <el-table-column prop="memberNames" label="涔樿溅浜�" min-width="180px"></el-table-column> + <el-table-column prop="companyName" label="鎵�灞炵粍缁�" min-width="150px"></el-table-column> <el-table-column label="鐢ㄨ溅鏃堕棿" min-width="170px"> <template slot-scope="{ row }"> - <span v-if="row.startTime">璧�:{{ row.startTime.slice(0,16) }}</span - ><br /> - <span v-if="row.endTime">姝�:{{ row.endTime.slice(0,16) }}</span> + <span v-if="row.startTime">璧�:{{ row.startTime.slice(0, 16) }}</span><br /> + <span v-if="row.endTime">姝�:{{ row.endTime.slice(0, 16) }}</span> </template> </el-table-column> - <el-table-column - prop="planUseDate" - label="鍑哄彂鏃堕棿" - min-width="150px" - > - <template slot-scope="{ row }"> - <span v-if="row.planUseDate">{{ row.planUseDate.slice(0,16) }}</span> - </template> - </el-table-column> + <el-table-column prop="planUseDate" label="鍑哄彂鏃堕棿" min-width="150px"> + <template slot-scope="{ row }"> + <span v-if="row.planUseDate">{{ row.planUseDate.slice(0, 16) }}</span> + </template> + </el-table-column> <el-table-column label="鐩殑鍦�" min-width="200px"> <template slot-scope="{ row }"> <span class="status-green" v-if="row.type === 0">銆愬競鍐呫��</span> @@ -172,58 +95,28 @@ </template> </el-table-column> - <el-table-column - prop="createDate" - label="鐢宠鏃堕棿" - min-width="150px" - ></el-table-column> - <el-table-column - prop="editDate" - label="鎿嶄綔鏃堕棿" - min-width="150px" - ></el-table-column> - <el-table-column - label="鎿嶄綔" - min-width="160" - align="center" - fixed="right" - > + <el-table-column prop="createDate" label="鐢宠鏃堕棿" min-width="150px"></el-table-column> + <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="150px"></el-table-column> + <el-table-column label="鎿嶄綔" min-width="160" align="center" fixed="right"> <template slot-scope="{ row }"> - <el-button - type="text" - icon="el-icon-edit" - @click="$refs.OperaDetailsWindow.open('鍏姟杞︾敵璇疯鎯�', row)" - >鏌ョ湅璇︽儏</el-button - > + <el-button type="text" icon="el-icon-edit" + @click="$refs.OperaDetailsWindow.open('鍏姟杞︾敵璇疯鎯�', row)">鏌ョ湅璇︽儏</el-button> <!-- <el-button v-if="(row.status === 1 || row.status === 2) && new Date().getTime() < new Date(row.startTime).getTime()" type="text" icon="el-icon-delete" @click="rowRevokeClick(row)" >鎾ら攢</el-button> --> - <el-button style="color: red" v-if=" (row.status === 0 || row.status === 1 || row.status === 2) && new Date().getTime() < new Date(row.startTime).getTime() " type="text" icon="el-icon-delete" @click="rowRevokeClick(row)" >鎾ら攢</el-button> - <el-button style="color: red" type="text" icon="el-icon-delete" @click="deleteById(row)" >鍒犻櫎</el-button> + <el-button style="color: red" + v-if="(row.status === 0 || row.status === 1 || row.status === 2) && new Date().getTime() < new Date(row.startTime).getTime()" + type="text" icon="el-icon-delete" @click="rowRevokeClick(row)">鎾ら攢</el-button> + <el-button style="color: red" type="text" icon="el-icon-delete" @click="deleteById(row)">鍒犻櫎</el-button> </template> </el-table-column> </el-table> - <pagination - @size-change="handleSizeChange" - @current-change="handlePageChange" - :pagination="tableData.pagination" - > + <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> </pagination> </template> <!-- --> <el-dialog title="鐢ㄨ溅鎾ら攢" :visible.sync="isShowBack" width="520px"> - <el-form - :model="backParam" - :rules="rules" - ref="backForm" - label-width="100px" - class="demo-ruleForm" - > + <el-form :model="backParam" :rules="rules" ref="backForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="璇存槑" prop="info"> - <el-input - type="textarea" - :rows="4" - v-model="backParam.info" - placeholder="璇疯緭鍏ユ挙閿�璇存槑" - ></el-input> + <el-input type="textarea" :rows="4" v-model="backParam.info" placeholder="璇疯緭鍏ユ挙閿�璇存槑"></el-input> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> @@ -231,10 +124,7 @@ <el-button type="primary" @click="backSubmit">纭畾</el-button> </span> </el-dialog> - <OperaCarUseBookWindow - ref="OperaDetailsWindow" - @success="handlePageChange" - /> + <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="handlePageChange" /> <OperaCarUseBookParamWindow ref="OperaParamWindow" @success="search" /> </TableLayout> </template> @@ -252,7 +142,7 @@ name: 'Empower', extends: BaseTable, components: { TableLayout, Pagination, OperaCarUseBookWindow, OperaCarUseBookParamWindow }, - data () { + data() { return { // 鎼滅储 searchForm: { @@ -275,7 +165,7 @@ } } }, - created () { + created() { this.config({ module: '鐢ㄨ溅鐢宠绠$悊', api: '/business/carUseBook', @@ -286,8 +176,13 @@ this.changeRadio('0') this.loadParams() }, + mounted() { + this.$nextTick(() => { + this.tableHeight = document.body.scrollHeight - this.$refs.QueryFormRef.offsetHeight - 300 + }) + }, methods: { - rowRevokeClick (row) { + rowRevokeClick(row) { this.isShowBack = true this.backParam = {} this.$set(this.backParam, 'id', row.id) @@ -295,14 +190,14 @@ this.$refs.backForm.clearValidate() }) }, - backSubmit () { + backSubmit() { revokeById({ ...this.backParam }).then(res => { this.$tip.success('鎾ら攢鎴愬姛') this.isShowBack = false this.search() }) }, - handleEx () { + handleEx() { this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵') .then(() => { this.exLoading = true @@ -319,7 +214,7 @@ }) }) }, - changeRadio (e) { + changeRadio(e) { this.searchForm.radio = e if (e === '0') { this.searchForm.queryStartTime = timeForMat(0)[0] @@ -336,10 +231,10 @@ } this.search() }, - handleEdit () { + handleEdit() { this.$refs.OperaParamWindow.open() }, - loadParams () { + loadParams() { allList({ }) .then(res => { @@ -360,13 +255,13 @@ .finally(() => { }) }, - seleTime (e) { + seleTime(e) { this.searchForm.queryStartTime = e[0] this.searchForm.queryEndTime = e[1] this.searchForm.radio = null this.search() }, - reset () { + reset() { this.$refs.searchForm.resetFields() this.searchForm.radio = '0' this.changeRadio('0') -- Gitblit v1.9.3