<template>
|
<TableLayout :permissions="['business:member:query']">
|
<!-- 搜索表单 -->
|
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
|
<el-form-item label="" prop="code" title="车牌号">
|
<el-input v-model="searchForm.code" clearable placeholder="车牌号" @keypress.enter.native="search"></el-input>
|
</el-form-item>
|
<el-form-item label="" prop="memberName" title="车主信息">
|
<el-input v-model="searchForm.memberName" clearable placeholder="车主信息"
|
@keypress.enter.native="search"></el-input>
|
</el-form-item>
|
<!-- <el-form-item label="" prop="cateName" title="车辆分类名称">
|
<el-input v-model="searchForm.cateName" clearable placeholder="车辆分类名称"
|
@keypress.enter.native="search"></el-input>
|
</el-form-item> -->
|
<el-form-item label="" prop="companyName" title="车主组织名称">
|
<el-input v-model="searchForm.companyName" clearable placeholder="车主组织名称"
|
@keypress.enter.native="search"></el-input>
|
</el-form-item>
|
<el-form-item label="" prop="authStatus" title="是否授权">
|
<el-select v-model="searchForm.authStatus" @change="search" clearable placeholder="是否授权">
|
<el-option label="已授权" value="1"></el-option>
|
<el-option label="未授权" value="0"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="" prop="type" title="业务类型">
|
<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-option label="其他" value="2"></el-option>
|
</el-select>
|
</el-form-item>
|
<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:cars:create', 'business:parkBook:create']">
|
<li><el-button type="primary" @click="handleEdit" icon="el-icon-plus"
|
v-permissions="['business:cars:create']">新建</el-button></li>
|
<li><el-button type="primary" @click="startEmpowerBatch" icon="el-icon-plus"
|
v-permissions="['business:parkbook:create']">下发授权</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="code" label="车牌号" min-width="100px"></el-table-column>
|
<el-table-column label="业务类型" min-width="120px">
|
<template slot-scope="{row}">
|
<span v-if="row.type == 0">安泰公务车</span>
|
<span v-if="row.type == 1">安泰自有物流车</span>
|
<span v-if="row.type == 2">其他</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="memberName" label="车主姓名" min-width="100px"></el-table-column>
|
<el-table-column prop="memberPhone" label="车主手机号" min-width="100px"></el-table-column>
|
<el-table-column prop="cateName" label="车辆分类" min-width="160px"></el-table-column>
|
<el-table-column prop="companyName" label="车主组织" min-width="200px"></el-table-column>
|
<el-table-column label="是否授权" align="center" min-width="100px">
|
<template slot-scope="{row}">
|
<span v-if="row.authStatus == 1" style="color: green">是</span>
|
<span v-else style="color: red">否</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="parksName" align="center" label="已授权停车场" min-width="200px">
|
<template slot-scope="{row}">
|
<div v-if="row.parkBookList && row.parkBookList.length">
|
<span v-for="item in row.parkBookList" :key="item.id" style="display: block">
|
<span
|
:style="(item.hkStatus == 0 ? 'color:#2080f7' : (item.hkStatus == 1 ? 'color:green' : (item.hkStatus == 2 ? 'color:red' : '')))">【{{
|
item.hkStatus ==
|
0 ? '等待下发' : (item.hkStatus == 1 ? '下发成功' : (item.hkStatus == 2 ?'下发失败':''))}}】 </span>{{
|
item.parksName }}
|
</span>
|
</div>
|
<span v-if="row.parkBookList == null || row.parkBookList.length == 0">-</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="下发有效期" align="center" min-width="170px">
|
<template slot-scope="{row}">
|
<div
|
v-if="row.authStatus != null && row.authStatus == 1 && row.parkBookList != null && row.parkBookList.length > 0">
|
<div v-if="!row.startTime || !row.endTime">长期有效</div>
|
<div v-else>
|
<span style="color: green">起:{{ row.startTime }}</span><br />
|
<span style="color: red">止:{{ row.endTime }}</span>
|
</div>
|
</div>
|
<div v-else>-</div>
|
</template>
|
</el-table-column>
|
<el-table-column prop="editorName" label="操作人" min-width="100px"></el-table-column>
|
<el-table-column prop="editDate" label="操作时间" min-width="140px"></el-table-column>
|
<el-table-column
|
v-if="containPermissions(['business:member:update', 'business:member:delete', 'business:empower:create'])"
|
label="操作" min-width="200" align="center" fixed="right">
|
<template slot-scope="{row}">
|
<el-button type="text" icon="el-icon-edit" @click="handleEdit(row)"
|
v-permissions="['business:cars:update']">编辑</el-button>
|
<el-button type="text" icon="el-icon-edit"
|
@click="$refs.operaCarAuthWindow.open('下发授权', [row.id], [row.code])"
|
v-permissions="['business:parkbook:create']">下发授权</el-button>
|
<el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red"
|
v-permissions="['business:empower:delete']">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
|
</pagination>
|
</template>
|
<!-- 新建/修改 -->
|
<OperaCarAuthWindow ref="operaCarAuthWindow" @success="handlePageChange" />
|
<OperaCarsWindow v-if="isShowEdit" ref="operaCarsWindow" @close="isShowEdit = false" @success="handlePageChange" />
|
</TableLayout>
|
</template>
|
|
<script>
|
import BaseTable from '@/components/base/BaseTable'
|
import TableLayout from '@/layouts/TableLayout'
|
import Pagination from '@/components/common/Pagination'
|
import OperaCarsWindow from '@/components/business/OperaCarsWindow'
|
import OperaCarAuthWindow from '@/components/business/OperaCarAuthWindow'
|
export default {
|
name: 'Cars',
|
extends: BaseTable,
|
components: { TableLayout, Pagination, OperaCarsWindow, OperaCarAuthWindow },
|
data() {
|
return {
|
// 搜索
|
searchForm: {
|
code: '',
|
memberName: '',
|
companyName: '',
|
type: null,
|
authStatus: null
|
},
|
isShowEdit: false
|
}
|
},
|
created() {
|
this.config({
|
module: '车辆信息表',
|
api: '/business/cars',
|
'field.id': 'id',
|
'field.main': 'id'
|
})
|
this.search()
|
},
|
methods: {
|
handleEdit(row) {
|
this.isShowEdit = true
|
let str = row && row.id ? '编辑车辆' : '新建车辆'
|
this.$nextTick(() => {
|
this.$refs.operaCarsWindow.open(str, row)
|
if (row && row.id) {
|
let form = { ...row, cateId: [] }
|
if (row.catePId) { form.cateId.push(row.catePId) }
|
if (row.cateId) { form.cateId.push(row.cateId) }
|
this.$refs.operaCarsWindow.form = form
|
this.$refs.operaCarsWindow.loadMember()
|
}
|
})
|
},
|
// 同步信息
|
startEmpowerBatch() {
|
if (this.tableData.selectedRows.length === 0) {
|
this.$tip.warning('请至少选择一条数据')
|
return
|
}
|
var ids = []
|
var codes = []
|
this.tableData.selectedRows.forEach(item => {
|
ids.push(item.id)
|
codes.push(item.code)
|
})
|
this.$refs.operaCarAuthWindow.open('车辆下发授权', ids, codes)
|
},
|
}
|
}
|
</script>
|