From 5b9c22a1e5e2364603778d1ed95e73129b47f1db Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期二, 12 十一月 2024 10:52:47 +0800 Subject: [PATCH] ll --- admin/src/views/operation/serviceCar/apprRecord.vue | 369 +++++++++++++++++++++++++++++++++++----------------- 1 files changed, 249 insertions(+), 120 deletions(-) diff --git a/admin/src/views/operation/serviceCar/apprRecord.vue b/admin/src/views/operation/serviceCar/apprRecord.vue index 8b72d68..921fd0e 100644 --- a/admin/src/views/operation/serviceCar/apprRecord.vue +++ b/admin/src/views/operation/serviceCar/apprRecord.vue @@ -1,135 +1,264 @@ <template> - <div class="main_app"> - <QueryForm - v-model="filters" - :query-form-config="queryFormConfig" - @handleQuery="getList(1)" - @clear="clear" - /> - <el-table v-loading="loading" :data="list" stripe> - <el-table-column - prop="name" - label="鐢宠浜�" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="缁勭粐" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="杞︾墝鐓�" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="鐢ㄨ溅鏃堕棿" - min-width="80" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="鍑哄彂鏃堕棿" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="鐩殑鍦扮被鍒�" - min-width="110" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="鐩殑鍦�" - min-width="100" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="鐢宠鐘舵��" - min-width="80" - show-overflow-tooltip - /> - <el-table-column - prop="name" - label="鎿嶄綔" - min-width="80" - show-overflow-tooltip - > - <template> - <el-button type="text">鏌ョ湅璇︽儏</el-button> - </template> - </el-table-column> - </el-table> - <pagination - @size-change="handleSizeChange" - @current-change="getList" - :pagination="pagination" - /> - </div> + <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> + <!-- 琛ㄦ牸鍜屽垎椤� --> + <template v-slot:table-wrap> + <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> + </li> + <li> + <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-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="170px"></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> + </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> + <span class="status-red" v-if="row.type === 1">銆愬競澶栥��</span> + <span>{{ row.addr }}</span> + </template> + </el-table-column> + <el-table-column label="鐘舵��" min-width="100px"> + <template slot-scope="{ row }"> + <span class="status-blue" v-if="row.status === 0">鐢宠涓�</span> + <span class="status-blue" v-if="row.status === 1">瀹℃牳涓�</span> + <span class="status-green" v-if="row.status === 2">瀹℃壒閫氳繃</span> + <span class="status-red" v-if="row.status === 3">瀹℃壒涓嶉�氳繃</span> + <span class="status-red" v-if="row.status === 4">宸叉挙閿�</span> + </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"> + <template slot-scope="{ row }"> + <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 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> + </template> + </el-table-column> + </el-table> + <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-item label="璇存槑" prop="info"> + <el-input type="textarea" :rows="4" v-model="backParam.info" placeholder="璇疯緭鍏ユ挙閿�璇存槑"></el-input> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="isShowBack = false">鍙栨秷</el-button> + <el-button type="primary" @click="backSubmit">纭畾</el-button> + </span> + </el-dialog> + <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="handlePageChange" /> + <OperaCarUseBookParamWindow ref="OperaParamWindow" @success="search" /> + </TableLayout> </template> <script> +import BaseTable from '@/components/base/BaseTable' +import TableLayout from '@/layouts/TableLayout' import Pagination from '@/components/common/Pagination' -import QueryForm from '@/components/common/QueryForm' +import OperaCarUseBookWindow from '@/components/business/OperaCarUseBookWindow' +import OperaCarUseBookParamWindow from '@/components/operation/OperCarUseBookParamWindow.vue' +import { timeForMat } from '@/utils/util' +import { allList } from '@/api/business/hiddenDangerParam' +import { carUseBookRecordEx, revokeById } from '@/api/business/carUseBook' export default { - components: { - Pagination, - QueryForm - }, - data () { + name: 'Empower', + extends: BaseTable, + components: { TableLayout, Pagination, OperaCarUseBookWindow, OperaCarUseBookParamWindow }, + data() { return { - filters: {}, - loading: false, - queryFormConfig: { - formItems: [ - { - filed: 'name', - type: 'input', - label: '鐢宠浜哄鍚�' - }, - { - filed: 'idCard', - type: 'input', - label: '杞︾墝鐓�' - }, - { - filed: 'name', - type: 'select', - label: '鐩殑鍦扮被鍒�', - options: [] - }, - { - filed: 'name', - type: 'datetimerange', - label: '鍑哄彂鏃堕棿', - options: [] - } - ], - online: true + // 鎼滅储 + searchForm: { + memberName: '', + companyName: '', + queryStartTime: '', + queryEndTime: '', + type: null, + status: null, + radio: 0 }, - pagination: { - capacity: 10, - page: 1 - }, - list: [], - total: 0 + cateList: [], + areaList: [], + time: [], + + isShowBack: false, + backParam: {}, + rules: { + info: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }] + } } }, + created() { + this.config({ + module: '鐢ㄨ溅鐢宠绠$悊', + api: '/business/carUseBook', + 'field.id': 'id', + 'field.main': 'id' + }) + // this.search() + this.changeRadio('0') + this.loadParams() + }, methods: { - getList (page) { }, - clear () { }, - handleSizeChange (capacity) { - this.pagination.capacity = capacity + rowRevokeClick(row) { + this.isShowBack = true + this.backParam = {} + this.$set(this.backParam, 'id', row.id) + this.$nextTick(() => { + this.$refs.backForm.clearValidate() + }) + }, + backSubmit() { + revokeById({ ...this.backParam }).then(res => { + this.$tip.success('鎾ら攢鎴愬姛') + this.isShowBack = false + this.search() + }) + }, + handleEx() { + this.$dialog.exportConfirm('纭瀵煎嚭鍚楋紵') + .then(() => { + this.exLoading = true + carUseBookRecordEx({ + model: this.searchForm + }) + .then(response => { + this.download(response) + }) + .catch(e => { + }) + .finally(() => { + this.exLoading = false + }) + }) + }, + changeRadio(e) { + this.searchForm.radio = e + if (e === '0') { + this.searchForm.queryStartTime = timeForMat(0)[0] + this.searchForm.queryEndTime = timeForMat(0)[1] + this.time = timeForMat(0) + } else if (e === '1') { + this.searchForm.queryStartTime = timeForMat(6)[0] + this.searchForm.queryEndTime = timeForMat(6)[1] + this.time = timeForMat(6) + } else if (e === '2') { + this.searchForm.queryStartTime = timeForMat(29)[0] + this.searchForm.queryEndTime = timeForMat(29)[1] + this.time = timeForMat(29) + } + this.search() + }, + handleEdit() { + this.$refs.OperaParamWindow.open() + }, + loadParams() { + allList({ + }) + .then(res => { + if (res != null && res.length) { + res.forEach(item => { + if (item && item.type != null && item.type === 0) { + this.areaList.push(item) + } + if (item && item.type != null && item.type === 1) { + this.cateList.push(item) + } + }) + } + }) + .catch(e => { + // this.$tip.apiFailed(e) + }) + .finally(() => { + }) + }, + seleTime(e) { + this.searchForm.queryStartTime = e[0] + this.searchForm.queryEndTime = e[1] + this.searchForm.radio = null + this.search() + }, + reset() { + this.$refs.searchForm.resetFields() + this.searchForm.radio = '0' + this.changeRadio('0') + // this.search() } } } </script> - -<style> -</style> -- Gitblit v1.9.3