From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 16 十月 2024 15:59:38 +0800 Subject: [PATCH] 代码初始化 --- admin/src/views/operation/serviceCar/apprRecord.vue | 475 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 358 insertions(+), 117 deletions(-) diff --git a/admin/src/views/operation/serviceCar/apprRecord.vue b/admin/src/views/operation/serviceCar/apprRecord.vue index 8b72d68..f8099c4 100644 --- a/admin/src/views/operation/serviceCar/apprRecord.vue +++ b/admin/src/views/operation/serviceCar/apprRecord.vue @@ -1,135 +1,376 @@ <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 + <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" > - <template> - <el-button type="text">鏌ョ湅璇︽儏</el-button> - </template> - </el-table-column> - </el-table> - <pagination - @size-change="handleSizeChange" - @current-change="getList" - :pagination="pagination" + <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="memberName" + label="鎻愭姤浜�" + min-width="80px" + ></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 label="鐢ㄨ溅鏃堕棿" min-width="170px"> + <template slot-scope="{ row }"> + <span>璧�:{{ row.startTime || "" }}</span + ><br /> + <span>姝�:{{ row.endTime || "" }}</span> + </template> + </el-table-column> + <el-table-column + prop="planUseDate" + label="鍑哄彂鏃堕棿" + min-width="150px" + ></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" /> - </div> + <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 - }, + 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