Commit e129b723 authored by lixy's avatar lixy

Merge http://113.105.137.151:22280/youjj/cloud-platform-ui

# Conflicts:
#	src/router/index.js
parents cb564837 b1806089
import fetch from 'utils/fetch';
export function getObj(id) {
return fetch({
url: '/vehicle/branchCompany/stock/' + id,
method: 'get'
});
}
export function page(param) {
return fetch({
url: '/vehicle/branchCompany/stock/page',
method: 'get',
params: param
});
}
export function search(param) {
return fetch({
url: '/vehicle/branchCompany/stock/search',
method: 'get',
params: param
});
}
export function addObj(param) {
return fetch({
url: '/vehicle/branchCompany/stock',
method: 'put',
data: param
});
}
export function updateObj(param) {
return fetch({
url: '/vehicle/branchCompany/stock',
method: 'post',
data: param
});
}
export function delObj(id) {
return fetch({
url: '/vehicle/branchCompany/stock/' + id,
method: 'delete'
});
}
import fetch from 'utils/fetch';
export function getObj(id) {
return fetch({
url: '/vehicle/branchCompany/stock/apply/' + id,
method: 'get'
});
}
export function page(param) {
return fetch({
url: '/vehicle/branchCompany/stock/apply/page',
method: 'get',
params: param
});
}
export function delObj(id) {
return fetch({
url: '/vehicle/branchCompany/stock/apply/' + id,
method: 'delete'
});
}
export function buyStock(id) {
return fetch({
url: '/vehicle/branchCompany/stock/apply/buy',
method: 'post',
params: {
applyId: id
}
});
}
export function cancelApply(id) {
return fetch({
url: '/vehicle/branchCompany/stock/apply/cancel',
method: 'post',
params: {
applyId: id
}
});
}
import fetch from 'utils/fetch';
export function page(param) {
return fetch({
url: '/vehicle/departure/page',
method: 'get',
params: param
});
}
......@@ -21,28 +21,28 @@ export const constantRouterMap = [{
component: _import('login/index'),
hidden: true
},
{
{
path: '/authredirect',
component: _import('login/authredirect'),
hidden: true
},
{
},
{
path: '/map',
component: _import('map'),
name: '地图',
hidden: true
},
{
},
{
path: '/404',
component: _import('error/404'),
hidden: true
},
{
},
{
path: '/401',
component: _import('error/401'),
hidden: true
},
{
},
{
path: '/',
component: Layout,
redirect: '/dashboard',
......@@ -52,8 +52,8 @@ export const constantRouterMap = [{
path: 'dashboard',
component: _import('dashboard/index')
}]
},
{
},
{
path: '/introduction',
component: Layout,
redirect: '/introduction/index',
......@@ -64,7 +64,7 @@ export const constantRouterMap = [{
component: _import('introduction/index'),
name: '简述'
}]
}
}
]
export default new Router({
......@@ -177,27 +177,21 @@ export const asyncRouterMap = [{
component: _import('vehicle/accompanyingItem/index'),
name: '随行物品管理',
authority: 'accompanyingItem'
}]
},
{
path: '/companyInfo',
component: _import('baseInfo/companyInfo/index'),
name: '公司信息',
authority: 'companyInfo'
},
{
path: '/stockCrowd',
component: _import('baseInfo/stockCrowd/index'),
name: '股权众筹',
authority: 'stockCrowd'
},
{
path: '/stockCrowdDetail',
component: _import('baseInfo/stockCrowdDetail/index'),
name: '股权众筹详情页',
authority: 'stockCrowd'
},
{
},
{
path: 'branchCompany/stock',
component: _import('branchCompany/stock/index'),
name: '分公司股权信息管理',
authority: 'branchCompany/stock'
},
{
path: 'branchCompany/stockApply',
component: _import('branchCompany/stockApply/index'),
name: '分公司股权信息管理',
authority: 'branchCompany/stockApply'
}
]
}, {
path: '/vehicle',
component: Layout,
name: '车辆管理',
......@@ -221,6 +215,31 @@ export const asyncRouterMap = [{
component: _import('vehicle/vehicleWarningMsg/index'),
name: '车辆预警消息',
authority: 'vehicleWarningMsg'
},
{
path: 'vehicleDepartureLog',
component: _import('vehicle/vehicleDepartureLog/index'),
name: '车辆出车记录',
authority: 'vehicleDepartureLog'
}
]
}];
},
{
path: '/companyInfo',
component: _import('baseInfo/companyInfo/index'),
name: '公司信息',
authority: 'companyInfo'
},
{
path: '/stockCrowd',
component: _import('baseInfo/stockCrowd/index'),
name: '股权众筹',
authority: 'stockCrowd'
},
{
path: '/stockCrowdDetail',
component: _import('baseInfo/stockCrowdDetail/index'),
name: '股权众筹详情页',
authority: 'stockCrowd'
}
];
......@@ -60,6 +60,18 @@
</template>
</el-table-column>
<el-table-column width="100" align="center" label="经度">
<template scope="scope">
<span>{{scope.row.longitude}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="纬度">
<template scope="scope">
<span>{{scope.row.latitude}}</span>
</template>
</el-table-column>
<el-table-column width="180" align="center" label="最后更新时间">
<template scope="scope">
<span>{{scope.row.updateTime?scope.row.updateTime:scope.row.createTime}}</span>
......@@ -91,7 +103,7 @@
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model.number="form.status" placeholder="请选择省份(直辖市)">
<el-select v-model.number="form.status" placeholder="请选择状态">
<el-option v-for="(val, key, index) in companyStatusAndCode " :key="val.code" :label="val.val"
:value="val.code"></el-option>
</el-select>
......@@ -127,6 +139,14 @@
<el-input v-model="form.addrDetail" placeholder="请输入详细地址"></el-input>
</el-form-item>
<el-form-item label="经度" prop="longitude">
<el-input v-model.number="form.longitude" placeholder="请输入经度"></el-input>
</el-form-item>
<el-form-item label="纬度" prop="latitude">
<el-input v-model.number="form.latitude" placeholder="请输入纬度"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel('form')">取 消</el-button>
......@@ -167,10 +187,28 @@
addrTown: undefined,
addrDetail: undefined,
leader: undefined,
longitude: undefined,
latitude: undefined,
leaderContactInfo: undefined,
updateTime: undefined
},
rules: {
latitude: [
{
type: 'number',
required: false,
message: '请输入数字',
trigger: 'blur'
}
],
longitude: [
{
type: 'number',
required: false,
message: '请输入数字',
trigger: 'blur'
}
],
status: [
{
type: 'integer',
......@@ -470,6 +508,8 @@
addrTown: undefined,
addrDetail: undefined,
leader: undefined,
longitude: undefined,
latitude: undefined,
leaderContactInfo: undefined,
updateTime: undefined
};
......
<template>
<router-view></router-view>
</template>
<template>
<div class="app-container calendar-list-container">
<div class="filter-container">
<el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="公司名称"
v-model="listQuery.companyName"></el-input>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
<el-button class="filter-item" v-if="btn_add" style="margin-left: 10px;" @click="handleCreate"
type="primary" icon="edit">添加
</el-button>
</div>
<el-table :key='tableKey' :data="list" v-loading.body="listLoading"
border fit highlight-current-row
style="width: 100%">
<el-table-column align="center" label="ID" width="65">
<template scope="scope">
<span>{{scope.row.id}}</span>
</template>
</el-table-column>
<el-table-column width="110" align="center" label="公司名称">
<template scope="scope">
<span>{{scope.row.companyName}}</span>
</template>
</el-table-column>
<el-table-column width="110" align="center" label="剩余份额">
<template scope="scope">
<span>{{scope.row.balance}}</span>
</template>
</el-table-column>
<el-table-column width="150" align="center" label="总份额">
<template scope="scope">
<span>{{scope.row.total}}</span>
</template>
</el-table-column>
<el-table-column width="180" align="center" label="股权单价">
<template scope="scope">
<span>{{scope.row.price}}</span>
</template>
</el-table-column>
<el-table-column width="180" align="center" label="地区">
<template scope="scope">
<span>{{getAddrStr(scope.row.addrProvince, scope.row.addrCity)}}</span>
</template>
</el-table-column>
<el-table-column width="180" align="center" label="状态">
<template scope="scope">
<span>{{stockStateStr.get(scope.row.state).label}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="150">
<template scope="scope">
<el-button v-if="btn_edit" size="small" type="success" @click="handleUpdate(scope.row)">编辑
</el-button>
<el-button v-if="btn_del" size="small" type="danger" @click="handleDelete(scope.row)">删除
</el-button>
</template>
</el-table-column>
</el-table>
<div v-show="!listLoading" class="pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="listQuery.page" :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
<el-form :model="form" :rules="rules" ref="form" label-width="100px">
<el-form-item label="公司名称" prop="companyName">
<el-input v-model="form.companyName" placeholder="请输入公司名称"></el-input>
</el-form-item>
<el-form-item label="剩余份额" prop="balance">
<el-input v-model.number="form.balance" placeholder="请输入剩余份额"></el-input>
</el-form-item>
<el-form-item label="总份额" prop="total">
<el-input v-model.number="form.total" placeholder="请输入总份额"></el-input>
</el-form-item>
<el-form-item label="股权单价" prop="price">
<el-input v-model.number="form.price" placeholder="请输入股权单价"></el-input>
</el-form-item>
<el-form-item label="省份" prop="addrProvince">
<el-select v-model.number="form.addrProvince" placeholder="请选择省份(直辖市)">
<el-option v-for="item in provinceRegions" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="城市" prop="addrCity">
<el-select v-model.number="form.addrCity" placeholder="请选择城市">
<el-option v-for="item in cityRegions" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态">
<el-select class="filter-item" v-model.number="state" placeholder="请选择" @change="change()">
<el-option v-for="item in Array.from(stockStateStr.keys())" :key="stockStateStr.get(item).key"
:label="stockStateStr.get(item).label" :value="stockStateStr.get(item).value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="公司图片" prop="drivingLicensePath" :style="{display:'block'}">
<el-upload
class="avatar-uploader"
:action="BASE_API + '/vehicle/branchCompany/stock/upload/companyPic'"
:show-file-list="false"
:headers="getHeaderWithToken"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :style="{display:'block'}">
<img v-if="$utils.isString(form.companyPic) && !$utils.isEmpty(form.companyPic)"
:src="getCompanyPicUrl(form.companyPic)" class="avatar" :style="{display:'block'}">
<i v-else class="el-icon-plus avatar-uploader-icon" :style="{lineHeight:'350px'}"></i>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="handleCancel('form')">取 消</el-button>
<el-button v-if="dialogStatus=='create'" type="primary" @click="create('form')">确 定</el-button>
<el-button v-else type="primary" @click="update('form')">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
search,
getObj,
addObj,
updateObj,
delObj
} from 'api/branchCompany/stock/index';
import {
getSonRegionByCodes,
getRegionByCodes
} from 'api/base_info/region/';
import {
getToken
} from 'utils/auth';
import {mapGetters} from 'vuex';
import rsCode from '../../../utils/rsCode';
export default {
name: 'branchCompanyStock',
data() {
return {
BASE_API: process.env.BASE_API,
showLoadingBody: false,
state: null,
stockStateStr: new Map([
[-1, {
key: -1,
label: '下架',
value: -1
}],
[0, {
key: 0,
label: '筹备中',
v1ue: 0
}],
[1, {
key: 1,
label: '筹备完成',
value: 1
}],
[2, {
key: 2,
label: '上架',
value: 2
}]
]),
form: {
id: null,
companyName: null,
balance: null,
total: null,
price: null,
addrProvince: null,
addrCity: null,
state: null,
companyPic: null
},
rules: {
companyName: [
{
required: true,
message: '请输入用户',
trigger: 'blur'
}
],
total: [
{
required: true,
message: '请输入总份额'
}
],
price: [
{
required: true,
message: '请输入股权单价'
}
]
},
list: null,
total: null,
listLoading: true,
listQuery: {
page: 1,
limit: 20,
companyName: null
},
dialogFormVisible: false,
dialogStatus: '',
btn_edit: false,
btn_del: false,
btn_add: false,
textMap: {
update: '编辑',
create: '创建'
},
tableKey: 0,
addrProvince: [
{
required: true,
type: 'number',
message: '请选择省份',
trigger: 'blur'
}
],
addrCity: [
{
required: true,
type: 'number',
message: '请选择城市',
trigger: 'blur'
},
{
validator: (rule, value, callback) => {
if (this.$utils.isInteger(this.form.addrProvince) &&
value.toString().substr(0, 2) != this.form.addrProvince.toString().substr(0, 2)) {
return callback(new Error('请选择省份下相应城市'));
}
callback();
},
trigger: 'blur'
}
]
}
},
created() {
this.getList();
this.btn_edit = this.elements['branchCompany/stock:btn_update'];
this.btn_del = this.elements['branchCompany/stock:btn_delete'];
this.btn_add = this.elements['branchCompany/stock:btn_add'];
},
computed: {
...mapGetters([
'elements'
]),
provinceRegions() {
return getSonRegionByCodes(1);
},
cityRegions() {
if (!this.$utils.isInteger(this.form.addrProvince)) {
return null;
}
return getSonRegionByCodes(this.form.addrProvince);
},
getHeaderWithToken() {
return {Authorization: getToken()};
}
},
methods: {
getCompanyPicUrl(companyPic) {
return process.env.BASE_API +
'/vehicle/branchCompany/stock/download/companyPic?realFileRelPath=' + encodeURI(companyPic);
},
beforeAvatarUpload(file) {
const isJPG = file.type === 'image/jpeg' || file.type === 'image/gif';
const isLt2M = file.size / 1024 / 1024 < 10;
if (!isJPG) {
this.$message.error('上传图片只能是 JPG/GIF 格式!');
}
if (!isLt2M) {
this.$message.error('上传图片大小不能超过 10MB!');
}
this.showLoadingBody = true;
return isJPG && isLt2M;
},
handleAvatarSuccess(res) {
this.form.companyPic = res.data;
this.showLoadingBody = false;
this.$forceUpdate();
},
handleUpdate(row) {
getObj(row.id)
.then(response => {
this.form = response.data;
this.dialogFormVisible = true;
this.dialogStatus = 'update';
});
},
handleDelete(row) {
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
delObj(row.id)
.then(() => {
this.$notify({
title: '成功',
message: '删除成功',
type: 'success',
duration: 2000
});
const index = this.list.indexOf(row);
this.list.splice(index, 1);
});
});
},
update(formName) {
const set = this.$refs;
set[formName].validate(valid => {
if (valid) {
this.dialogFormVisible = false;
this.form.password = undefined;
updateObj(this.form).then(() => {
this.dialogFormVisible = false;
this.getList();
this.$notify({
title: '成功',
message: '修改成功',
type: 'success',
duration: 2000
});
});
} else {
return false;
}
});
},
getAddrStr(addrProvince, addrCity) {
if (addrProvince && addrProvince) {
const regions = getRegionByCodes([addrProvince, addrCity]);
return regions[0].name + ' ' + regions[1].name;
}
return '';
},
create(formName) {
const set = this.$refs;
set[formName].validate(valid => {
if (valid) {
addObj(this.form)
.then(response => {
if (response.code === rsCode.RS_CODE_SUC) {
this.dialogFormVisible = false;
this.getList();
this.$notify({
title: '成功',
message: '创建成功',
type: 'success',
duration: 2000
});
} else {
this.$notify({
title: '失败',
message: rsCode.msg[response.code] ? rsCode.msg[response.code] : '操作失败!',
type: 'error',
duration: 2000
});
}
})
} else {
return false;
}
});
},
handleCancel(formName) {
this.dialogFormVisible = false;
this.$refs[formName].resetFields();
},
handleCreate() {
this.cleanForm();
this.dialogStatus = 'create';
this.dialogFormVisible = true;
},
cleanForm() {
this.form = {
id: null,
companyName: null,
balance: null,
total: null,
price: null,
addrProvince: null,
addrCity: null
};
},
getList() {
this.listLoading = true;
search(this.listQuery)
.then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.listLoading = false;
})
},
handleFilter() {
this.getList();
},
handleSizeChange(val) {
this.listQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.listQuery.page = val;
this.getList();
},
change() {
this.form.state = this.state;
}
}
}
</script>
<template>
<div class="app-container calendar-list-container">
<el-table :key='tableKey' :data="list" v-loading.body="listLoading"
border fit highlight-current-row
style="width: 100%">
<el-table-column align="center" label="ID" width="65">
<template scope="scope">
<span>{{scope.row.id}}</span>
</template>
</el-table-column>
<el-table-column width="110" align="center" label="公司名称">
<template scope="scope">
<span>{{scope.row.companyName}}</span>
</template>
</el-table-column>
<el-table-column width="110" align="center" label="申请人">
<template scope="scope">
<span>{{scope.row.name}}</span>
</template>
</el-table-column>
<el-table-column width="150" align="center" label="联系方式">
<template scope="scope">
<span>{{scope.row.tel}}</span>
</template>
</el-table-column>
<el-table-column width="180" align="center" label="购买数量">
<template scope="scope">
<span>{{scope.row.count}}</span>
</template>
</el-table-column>
<el-table-column width="180" align="center" label="状态">
<template scope="scope">
<span>{{applyState[scope.row.state].label}}</span>
</template>
</el-table-column>
<el-table-column width="180" align="center" label="创建时间">
<template scope="scope">
<span>{{scope.row.createTime}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="150">
<template scope="scope">
<el-button v-if="btn_buy && scope.row.state == 0" size="small" type="success" @click="handleBuy(scope.row)">认购</el-button>
<el-button v-if="btn_cancel && scope.row.state == 0" size="small" type="success" @click="handleCancel(scope.row)">放弃</el-button>
<el-button v-if="btn_del" size="small" type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div v-show="!listLoading" class="pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="listQuery.page" :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
</div>
</template>
<script>
import {
page,
delObj,
buyStock,
cancelApply
} from 'api/branchCompany/stockApply/index';
import { mapGetters } from 'vuex';
import rsCode from '../../../utils/rsCode';
export default {
name: 'branchCompanyStock',
data() {
return {
form: {
id: null,
companyId: null,
companyName: null,
name: null,
tel: null,
count: null,
state: null
},
rules: {
// companyName: [
// {
// required: true,
// message: '请输入用户',
// trigger: 'blur'
// }
// ],
},
applyState: {
'-1': {
key: -1,
label: '放弃购买'
},
0: {
key: 0,
label: '申请中'
},
1: {
key: 1,
label: '确认购买'
}
},
list: null,
total: null,
listLoading: true,
listQuery: {
page: 1,
limit: 20
},
dialogFormVisible: false,
dialogStatus: '',
btn_del: true,
btn_buy: true,
btn_cancel: true,
tableKey: 0
}
},
created() {
this.getList();
this.btn_del = this.elements['branchCompany/stockApply:btn_delete'];
},
computed: {
...mapGetters([
'elements'
]),
provinceRegions() {
return getSonRegionByCodes(1);
},
cityRegions() {
if (!this.$utils.isInteger(this.form.addrProvince)) {
return null;
}
return getSonRegionByCodes(this.form.addrProvince);
}
},
methods: {
handleBuy(row) {
this.$confirm('此操作将确认购买, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
buyStock(row.id)
.then(() => {
this.$notify({
title: '成功',
message: '操作成功',
type: 'success',
duration: 2000
});
this.getList();
});
});
},
handleCancel(row) {
this.$confirm('此操作将放弃购买, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
cancelApply(row.id)
.then(() => {
this.$notify({
title: '成功',
message: '操作成功',
type: 'success',
duration: 2000
});
this.getList();
});
});
},
handleDelete(row) {
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
delObj(row.id)
.then(() => {
this.$notify({
title: '成功',
message: '删除成功',
type: 'success',
duration: 2000
});
const index = this.list.indexOf(row);
this.list.splice(index, 1);
});
});
},
getList() {
this.listLoading = true;
page(this.listQuery)
.then(response => {
this.list = response.data.list;
this.total = response.data.total;
this.listLoading = false;
})
},
handleSizeChange(val) {
this.listQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.listQuery.page = val;
this.getList();
}
}
}
</script>
<template>
<div class="app-container calendar-list-container">
<!-- <div class="filter-container">-->
<!-- <el-input @keyup.enter.native="handleFilter" style="width: 200px;" class="filter-item" placeholder="车牌号"-->
<!-- v-model="listQuery.name"></el-input>-->
<!-- <el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>-->
<!-- </div>-->
<el-table :key='tableKey' :data="list" v-loading.body="listLoading" border fit highlight-current-row
style="width: 100%">
<el-table-column align="center" label="车牌号" width="65">
<template scope="scope">
<span>{{scope.row.numberPlate}}</span>
</template>
</el-table-column>
<el-table-column width="80" align="center" label="用途">
<template scope="scope">
<span>{{scope.row.use}}</span>
</template>
</el-table-column>
<el-table-column width="80" align="center" label="使用人">
<template scope="scope">
<span>{{scope.row.user}}</span>
</template>
</el-table-column>
<el-table-column width="80" align="center" label="使用人电话">
<template scope="scope">
<span>{{scope.row.userTel}}</span>
</template>
</el-table-column>
<el-table-column width="80" align="center" label="验车人">
<template scope="scope">
<span>{{scope.row.checkMan}}</span>
</template>
</el-table-column>
<el-table-column width="80" align="center" label="验车人电话">
<template scope="scope">
<span>{{scope.row.checkManTel}}</span>
</template>
</el-table-column>
<el-table-column width="80" align="center" label="出车时间">
<template scope="scope">
<span>{{scope.row.departureTime}}</span>
</template>
</el-table-column>
<el-table-column width="80" align="center" label="还车时间">
<template scope="scope">
<span>{{scope.row.arrivalTime}}</span>
</template>
</el-table-column>
<el-table-column width="80" align="center" label="开始公里数">
<template scope="scope">
<span>{{scope.row.mileageStart}}</span>
</template>
</el-table-column>
<el-table-column width="80" align="center" label="结束公里数">
<template scope="scope">
<span>{{scope.row.mileageEnd}}</span>
</template>
</el-table-column>
</el-table>
<div v-show="!listLoading" class="pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="listQuery.page" :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
<el-form :model="form" :rules="rules" ref="form" label-width="100px">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名"></el-input>
</el-form-item>
<el-form-item label="性别">
<el-select class="filter-item" v-model="form.sex" placeholder="请选择">
<el-option v-for="item in sexOptions" :key="item.key" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="卡号" prop="cardNumber">
<el-input v-model="form.cardNumber" placeholder="请输入卡号"></el-input>
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-date-picker v-model="form.birthday" type="date" @change="changeBirthday" placeholder="请输入生日" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="身份证号码" prop="idNumber">
<el-input v-model="form.idNumber" placeholder="请输入身份证号码"></el-input>
</el-form-item>
<el-form-item label="证件地址" prop="certificateAddress">
<el-input v-model="form.certificateAddress" placeholder="请输入证件地址"></el-input>
</el-form-item>
<el-form-item label="电子邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入电子邮箱"></el-input>
</el-form-item>
<el-form-item label="微信" prop="wx">
<el-input v-model="form.wx" placeholder="请输入微信号"></el-input>
</el-form-item>
<el-form-item label="会员类型" prop="memberType">
<el-select class="filter-item" v-model="form.memberType" placeholder="请选择">
<el-option v-for="item in memberTypeOptions" :key="item.key" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="联系电话" prop="telephone">
<el-input v-model="form.telephone" placeholder="请输入联系电话"></el-input>
</el-form-item>
<el-form-item label="手机" prop="mobilePhone">
<el-input v-model="form.mobilePhone" placeholder="请输入手机号码"></el-input>
</el-form-item>
<el-form-item label="常住地址" prop="address">
<el-input v-model="form.address" placeholder="请输入常住地址"></el-input>
</el-form-item>
<el-form-item label="工作单位" prop="workplace">
<el-input v-model="form.workplace" placeholder="请输入工作单位"></el-input>
</el-form-item>
<el-form-item label="职务" prop="job">
<el-input v-model="form.job" placeholder="请输入职务"></el-input>
</el-form-item>
<el-form-item label="邀约人" prop="inviter">
<el-input v-model="form.inviter" placeholder="请输入邀约人"></el-input>
</el-form-item>
<el-form-item label="职业" prop="profession">
<el-input v-model="form.profession" placeholder="请输入职业"></el-input>
</el-form-item>
<el-form-item label="支付方式" prop="payType">
<el-select class="filter-item" v-model="form.payType" placeholder="请选择">
<el-option v-for="item in payTypeOptions" :key="item.key" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="会员签名日期" prop="memberSignatureDate">
<el-date-picker v-model="form.memberSignatureDate" type="date" @change="changeMemberSignatureDate" value-format="yyyy-MM-dd"
placeholder="请输入会员签名日期"></el-date-picker>
</el-form-item>
<el-form-item label="经理" prop="manager">
<el-input v-model="form.manager" placeholder="请输入经理姓名"></el-input>
</el-form-item>
<el-form-item label="经理签名日期" prop="managerSignatureDate">
<el-date-picker v-model="form.managerSignatureDate" type="date" @change="changeManagerSignatureDate" value-format="yyyy-MM-dd"
placeholder="请输入经理签名日期"></el-date-picker>
</el-form-item>
<el-form-item label="家庭成员" prop="family">
<el-row v-for="(item, index) in form.family">
<el-col :span="9">
<el-input v-model="item.name" placeholder="成员名称"></el-input>
</el-col>
<el-col class="line" :span="2" align="center">-</el-col>
<el-col :span="9">
<el-input v-model="item.relationship" placeholder="成员关系"></el-input>
</el-col>
<el-col :span="4" align="center">
<el-button @click="handleDeleteFamily(index)" type="warning" size="mini" icon="el-tag__close el-icon-close"></el-button>
</el-col>
</el-row>
<el-row>
<el-button @click="handleAddFamily()">添加</el-button>
</el-row>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel('form')">取 消</el-button>
<el-button v-if="dialogStatus=='create'" type="primary" @click="create('form')">确 定</el-button>
<el-button v-else type="primary" @click="update('form')">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { mapGetters } from 'vuex';
import {
page
} from 'api/vehicle/departureLog';
export default {
name: 'vehicleDepartureLog',
data() {
return {
form: {
id: null,
numberPlate: null,
vehicleId: null,
use: null,
user: null,
userTel: null,
checkMan: null,
checkManTel: null,
recycleMan: null,
recycleManTel: null,
departureTime: null,
arrivalTime: null,
mileageStart: null,
mileageEnd: null,
state: null
},
list: null,
total: null,
listLoading: true,
listQuery: {
page: 1,
limit: 20,
name: undefined
},
dialogStatus: '',
textMap: {
update: '编辑',
create: '创建'
},
tableKey: 0
}
},
created() {
this.getList();
},
computed: {
...mapGetters([
'elements'
])
},
methods: {
handleFilter() {
this.getList();
},
getList() {
this.listLoading = true;
page(this.listQuery)
.then(response => {
this.list = response.data.rows;
this.total = response.data.total;
this.listLoading = false;
})
},
handleSizeChange(val) {
this.listQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.listQuery.page = val;
this.getList();
}
}
}
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment