<template>
|
<TableLayout :permissions="['business:member:query']">
|
<!-- 搜索表单 -->
|
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="120px" inline>
|
<el-form-item label="车牌号" prop="code">
|
<el-input v-model="searchForm.code" clearable placeholder="请输入车牌号" @keypress.enter.native="search"></el-input>
|
</el-form-item>
|
<el-form-item label="车主姓名/手机号" prop="memberName">
|
<el-input v-model="searchForm.memberName" clearable placeholder="车主姓名/手机号" @keypress.enter.native="search"></el-input>
|
</el-form-item>
|
<el-form-item label="车主部门" prop="companyName">
|
<el-input v-model="searchForm.companyName" clearable placeholder="车主部门名称" @keypress.enter.native="search"></el-input>
|
</el-form-item>
|
<el-form-item label="授权状态" prop="authStatus">
|
<el-select v-model="searchForm.authStatus" @keypress.enter.native="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">
|
<el-select v-model="searchForm.type" @keypress.enter.native="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="$refs.operaCarsWindow.open('新建车辆')" 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="100px">
|
<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="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" 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="下发有效期" 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>起:{{row.startTime}}</span><br/>
|
<span>止:{{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="100px"></el-table-column>
|
<el-table-column
|
v-if="containPermissions(['business:member:update', 'business:member:delete','business:empower:create'])"
|
label="操作"
|
min-width="250"
|
fixed="right"
|
>
|
<template slot-scope="{row}">
|
<el-button type="text" icon="el-icon-edit" @click="$refs.operaCarsWindow.open('编辑车辆信息',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 ref="operaCarsWindow" @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'
|
import { sync } from '@/api/business/cars'
|
export default {
|
name: 'Cars',
|
extends: BaseTable,
|
components: { TableLayout, Pagination, OperaCarsWindow,OperaCarAuthWindow },
|
data () {
|
return {
|
// 搜索
|
searchForm: {
|
code: '',
|
memberName: '',
|
companyName: '',
|
type:null,
|
authStatus:null
|
}
|
}
|
},
|
created () {
|
this.config({
|
module: '车辆信息表',
|
api: '/business/cars',
|
'field.id': 'id',
|
'field.main': 'id'
|
})
|
this.search()
|
},
|
methods: {
|
// 同步信息
|
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>
|