Commit cde4c848 authored by hanfeng's avatar hanfeng

Merge branch 'base-modify' of http://113.105.137.151:22280/youjj/cloud-platform-ui into base-modify

parents badfe500 9ab92a54
import fetch from 'utils/fetch';
export function getVehiclePlanList(query) {
return fetch({
url: '/vehicle/vehicleInfo/app/unauth/getVehiclePlanList',
method: 'get',
params: query
});
}
......@@ -479,6 +479,12 @@ export const asyncRouterMap = [{
component: _import('cunponManagements/cunponManagement'),
name: '优惠券管理',
authority: 'cunponManagement'
},
{
path: 'conponList',
component: _import('cunponManagements/conponList'),
name: '优惠券列表',
authority: 'conponList'
}
]
}
......
<template>
<div class="app-container calendar-list-container" v-loading.body="showLoadingBody">
<div>
<div class="filter-container" ref="filter-container">
<el-form ref="queryForm" :inline="inline" :model="listQuery" label-width="60px">
<el-row>
<el-col :span="4">
<el-form-item label="手机号">
<el-input v-model.number="listQuery.phone" placeholder="请输入姓名"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="">
<el-select class="filter-item" v-model="listQuery.state" placeholder="请输入状态">
<el-option v-for="(item,index) in typeOptions" :key="index" :label="item.name" :value="item.val"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="金额">
<el-input v-model.number="listQuery.phone" placeholder="请输入姓名"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="">
<el-select class="filter-item" v-model="listQuery.state" placeholder="请输入状态">
<el-option v-for="(item,index) in typeOptions" :key="index" :label="item.name" :value="item.val"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
</el-row>
</el-form>
</div>
<el-table :key='tableKey' :data="list" border fit highlight-current-row
style="width: 100%;">
<el-table-column type="index" align="center" label="姓名" width="200">
<template scope="scope">
<span>{{scope.row.username}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="手机号">
<template scope="scope">
<span>{{scope.row.phone}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="金额">
<template scope="scope">
<span>{{scope.row.amount}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="状态">
<template scope="scope">
<span v-if="scope.row.stauts==0">未到帐</span>
<span v-if="scope.row.stauts==1">已到账</span>
</template>
</el-table-column>
<el-table-column align="center" label="申请时间">
<template scope="scope">
<span>{{scope.row.crtTimeStr}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="到账时间">
<template scope="scope">
<span>{{scope.row.finishTimeStr}}</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,40,50]" :page-size="listQuery.limit"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
</div>
</div>
</template>
<script>
import {
formatDate
} from 'utils/dateFormattor';
import {
toEast8Date,
deepCopyDate,
newEast8Date,
convertDate2Str,
timestamp2Date
} from 'utils/dateUtils';
import rsCode from '../../utils/rsCode';
import {mapGetters} from 'vuex';
import {
getToken
} from 'utils/auth';
import {
discountList
} from 'api/purseManage';
import Element1 from "../admin/menu/components/element";
import ElRow from "element-ui/packages/row/src/row";
import ElCol from "element-ui/packages/col/src/col";
export default {
name: 'conponList',
components: {
ElCol,
ElRow,
Element1,
},
data() {
return {
typeOptions: [
{
"name":'全部',
"val":''
},
{
"name":'未到账',
"val":'0'
},
{
"name":'已到账',
"val":'1'
},
],
BASE_API: process.env.BASE_API,
showLoadingBody: false,
list: null,
total: null,
listLoading: true,
listQuery: {
page: 1,
limit: 20,
phone: '',//手机号
username: '',//姓名
state:'',//状态
},
inline: true,
tableKey: 0
}
},
created() {
this.getList();
},
computed: {
...mapGetters([
'elements'
])
},
methods: {
/**
* 获取提现列表
* */
getList() {
this.listLoading = true;
discountList(this.listQuery).then(response => {
let totalCountRs = undefined;
let listRs = undefined;
if (!this.$utils.isEmpty(response.data.data) && this.$utils.isInteger(response.data.totalCount)) {
listRs = response.data.data;
totalCountRs = response.data.totalCount;
listRs.map(function(item){
item.crtTimeStr = timestamp2Date(item.crtTime);
item.finishTimeStr = timestamp2Date(item.finishTime);
});
}
this.listLoading = false;
this.list = listRs;
this.total = totalCountRs;
})
},
handleFilter() {
this.listQuery.page = 1;
this.$refs.queryForm.validate(valid => {
if (valid) {
this.getList();
} else {
return false;
}
});
},
handleSizeChange(val) {
this.listQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.listQuery.page = val;
this.getList();
}
}
}
</script>
......@@ -2,17 +2,17 @@
<div class="app-container calendar-list-container" v-loading.body="showLoadingBody">
<div>
<div class="filter-container" ref="filter-container">
<el-form ref="queryForm" :inline="inline" :model="listQuery" label-width="100px">
<el-form ref="queryForm" :inline="inline" :model="listQuery" label-width="50px">
<el-row>
<el-col :span="8">
<el-col :span="5">
<el-form-item label="标题">
<el-input v-model.number="listQuery.title" placeholder="请输入姓名"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="状态" prop="type">
<el-select class="filter-item" v-model="listQuery.state" placeholder="请输入状态">
<el-option v-for="(item,index) in typeOptions" :key="index" :label="item.name" :value="item.val"> </el-option>
<el-col :span="5">
<el-form-item>
<el-select class="filter-item" v-model="listQuery.state" placeholder="类型">
<el-option v-for="(item,index) in channelType" :key="index" :label="item.name" :value="item.val"> </el-option>
</el-select>
</el-form-item>
</el-col>
......@@ -21,40 +21,43 @@
</el-row>
</el-form>
</div>
<el-table :key='tableKey' :data="list" border fit highlight-current-row
style="width: 100%;">
<el-table-column type="index" width="100" align="center" label="ID">
<el-table :key='tableKey' :data="list" border fit highlight-current-row style="width: 100%;">
<el-table-column type="index" align="center" label="ID" width="100">
<template scope="scope">
<span>{{scope.row.id}}</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="优惠券标题">
<el-table-column align="center" label="优惠券标题">
<template scope="scope">
<span>{{scope.row.title}}</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="已领取">
<el-table-column align="center" label="类型">
<template scope="scope">
<span v-if="scope.row.channel==0">全平台</span>
<span v-if="scope.row.channel==1">租车</span>
<span v-if="scope.row.channel==2">旅游</span>
<span v-if="scope.row.channel==3">营地</span>
</template>
</el-table-column>
<el-table-column align="center" label="已领取">
<template scope="scope">
<span>{{scope.row.get}}</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="已使用">
<el-table-column align="center" label="已使用">
<template scope="scope">
<span>{{scope.row.used}}</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="申请时间">
<el-table-column align="center" label="申请时间">
<template scope="scope">
<span>{{scope.row.time}}</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="操作">
<el-table-column align="center" label="操作">
<template scope="scope">
<el-button size="small" type="success" @click="handleUpdate(scope.row)">编辑</el-button>
<el-button size="small" type="primary" @click="handleUpdate(scope.row)">编辑</el-button>
<el-popover
ref="popover1"
placement="top"
......@@ -78,63 +81,81 @@
</div>
<!-- 优惠券编辑 -->
<el-dialog title="优惠券编辑" :visible.sync="editDialogVisible">
<el-form :model="formdata" :rules="rules" ref="form" label-width="90px">
<el-dialog :title="modalTitle" :visible.sync="editDialogVisible">
<el-form :model="formdata" :rules="rules" ref="form" label-width="110px">
<div style="font-weight: bold;">基础设置</div>
<hr style="background-color:#e5e5e5;height:1px;border:none;margin:10px 0">
<el-row>
<el-row>
<el-col :span="12">
<el-form-item label="优惠券标题" prop="name">
<el-input v-model="formdata.title" placeholder="请输入优惠券标题"></el-input>
<el-form-item label="优惠券标题" prop="title">
<el-input v-model="formdata.title" placeholder="请输入优惠券标题" :disabled="isUpdate"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="适用人群">
<el-radio-group v-model="formdata.user_type_name" size="medium">
<el-radio-button label="普通用户" :disabled="formdata.user_type_name=='会员用户'&&isUpdate"></el-radio-button>
<el-radio-button label="会员用户" :disabled="formdata.user_type_name=='普通用户'&&isUpdate"></el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="优惠金额" prop="name">
<el-input v-model="formdata.title" placeholder="请输入优惠金额"></el-input>
<el-form-item label="优惠金额">
<el-input v-model="formdata.used_amount" placeholder="请输入优惠金额" :disabled="isUpdate"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="优惠方式">
<el-select class="filter-item" v-model="formdata.endDate" placeholder="请选择" style="width:100px">
<el-option v-for="(item,index) in cunponType " :key="item.id" :label="item.val"
:value="item.id"></el-option>
<el-select class="filter-item" v-model="formdata.type" placeholder="请选择" style="width:110px" :disabled="isUpdate">
<el-option :label="formdata.typeName" :value="formdata.type"></el-option>
<el-option v-for="(item,index) in cunponType " :key="index" :label="item.val"
:value="item.id" :disabled="item.id==2"></el-option>
</el-select>
<span></span>
<el-input v-model="formdata.title" placeholder="请输入金额" style="width:50px"></el-input>
<span>可用</span>
<span v-if="formdata.type==1"></span>
<el-input v-model="formdata.title" placeholder="请输入金额" style="width:100px" v-if="formdata.type==1" :disabled="isUpdate"></el-input>
<span v-if="formdata.type==1">可用</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="有效期" prop="name">
<span>领取后</span>
<el-input v-model="formdata.title" placeholder="请输入金额" style="width:50px"></el-input>
<span>天有效</span>
<el-form-item label="有效期">
<el-radio-group v-model="formdata.valid_type_name" size="medium">
<el-radio-button label="绝对时效" :disabled="formdata.valid_type_name=='相对时效'&&isUpdate"></el-radio-button>
<el-radio-button label="相对时效" :disabled="formdata.valid_type_name=='绝对时效'&&isUpdate"></el-radio-button>
</el-radio-group>
<div style="display:inline-block" v-show="formdata.valid_type_name=='绝对时效'">
<el-date-picker v-model="formdata.validStartTimeStr" type = "date" placeholder = "开始时间" :disabled="isUpdate"></el-date-picker>
<span> - </span>
<el-date-picker v-model="formdata.validEndTimeStr" type = "date" placeholder = "结束时间" :disabled="isUpdate"></el-date-picker>
</div>
<div style="display:inline-block" v-show="formdata.valid_type_name=='相对时效'">
<span>领取后</span>
<el-input v-model="formdata.valid_days" placeholder="请输入金额" style="width:100px" :disabled="isUpdate"></el-input>
<span>天有效</span>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否可转赠" prop="name">
<el-form-item label="是否可转赠">
<el-radio-group v-model="formdata.cangive" size="medium">
<el-radio-button label="是" disabled=""></el-radio-button>
<el-radio-button label="否" ></el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="跳转链接">
<el-input v-model="formdata.title" placeholder="请输入跳转链接"></el-input>
<el-input v-model="formdata.url" placeholder="请输入跳转链接"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item label="图标" :style="{display:'block'}">
<el-form-item label="优惠券图片" :style="{display:'block'}">
<el-upload
class="upload-demo"
:headers="getHeaderWithToken"
......@@ -142,11 +163,9 @@
:show-file-list="false"
:on-success="handleAvatarSuccess"
list-type="picture">
<!--<img v-if="$utils.isString(add.icon) && !$utils.isEmpty(add.icon)" :src="add.icon"
style="width:300px;max-height:300px;">-->
<!--<i v-else class="el-icon-plus avatar-uploader-icon"
style="lineHeight:100px;width:300px;height: 100px;border: 1px dashed #ccc;"></i>-->
<i class="el-icon-plus avatar-uploader-icon"
<img v-if="$utils.isString(formdata.icon) && !$utils.isEmpty(formdata.icon)" :src="formdata.icon"
style="width:300px;max-height: 100px;">
<i v-else class="el-icon-plus avatar-uploader-icon"
style="lineHeight:100px;width:300px;height: 100px;border: 1px dashed #ccc;"></i>
</el-upload>
</el-form-item>
......@@ -155,9 +174,10 @@
<hr style="background-color:#e5e5e5;height:1px;border:none;margin:10px 0">
<el-row>
<el-col :span="12">
<el-form-item label="优惠券类别" prop="name">
<el-select class="filter-item" v-model="formdata.endDate" placeholder="请选择">
<el-option v-for="(item,index) in cunponType " :key="item.id" :label="item.val"
<el-form-item label="优惠券类别" >
<el-select class="filter-item" v-model="formdata.used" placeholder="请选择" :disabled="isUpdate">
<el-option :label="formdata.usedName" :value="formdata.used"></el-option>
<el-option v-for="(item,index) in usedType " :key="index" :label="item.val"
:value="item.id"></el-option>
</el-select>
</el-form-item>
......@@ -165,9 +185,10 @@
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="适用范围" prop="name">
<el-select class="filter-item" v-model="formdata.endDate" placeholder="请选择">
<el-option v-for="(item,index) in cunponType " :key="item.id" :label="item.val"
<el-form-item label="适用范围" >
<el-select class="filter-item" v-model="formdata.channel" placeholder="请选择" :disabled="isUpdate">
<el-option :label="formdata.channelName" :value="formdata.channel"></el-option>
<el-option v-for="(item,index) in channelType " :key="index" :label="item.val"
:value="item.id"></el-option>
</el-select>
</el-form-item>
......@@ -175,51 +196,56 @@
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="开始发放时间" prop="name">
<el-select class="filter-item" v-model="formdata.endDate" placeholder="请选择">
<el-option v-for="(item,index) in cunponType " :key="item.id" :label="item.val"
:value="item.id"></el-option>
</el-select>
<el-form-item label="开始发放时间" >
<el-radio-group v-model="formdata.startTimeName" size="medium">
<el-radio-button label="不限"></el-radio-button>
<el-radio-button label="自定义" ></el-radio-button>
</el-radio-group>
<div style="display:inline-block" v-show="formdata.startTimeName=='自定义'">
<el-date-picker v-model="formdata.startTimeStr" type = "date" placeholder = "开始发放时间" :picker-options="pickerOptionsStart"></el-date-picker>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="结束发放时间" prop="name">
<el-select class="filter-item" v-model="formdata.endDate" placeholder="请选择">
<el-option v-for="(item,index) in cunponType " :key="item.id" :label="item.val"
:value="item.id"></el-option>
</el-select>
<el-form-item label="结束发放时间" >
<el-radio-group v-model="formdata.endTimeName" size="medium">
<el-radio-button label="不限"></el-radio-button>
<el-radio-button label="自定义" ></el-radio-button>
</el-radio-group>
<div style="display:inline-block" v-show="formdata.endTimeName=='自定义'">
<el-date-picker v-model="formdata.endTimeStr" type = "date" placeholder = "结束发放时间" :picker-options="pickerOptionsEnd"></el-date-picker>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="最多发放数量" prop="name">
<el-select class="filter-item" v-model="formdata.endDate" placeholder="请选择">
<el-option v-for="(item,index) in cunponType " :key="item.id" :label="item.val"
:value="item.id"></el-option>
</el-select>
<el-col :span="12">
<el-form-item label="最多发放数量" >
<el-input v-model="formdata.quota" placeholder="请输入最多发放数量"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="每人限领次数" prop="name">
<el-input v-model="formdata.title" placeholder="请输入限领次数"></el-input>
<el-form-item label="每人限领次数" >
<el-input v-model="formdata.limit_collar" placeholder="请输入限领次数"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="">取消</el-button>
<el-button type="primary" @click="">确定</el-button>
<el-button @click="cancelHandel">取消</el-button>
<el-button v-if="modalTitle=='优惠券添加'" 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 'static/css/uploadImg.css';// 引入图片上传组件对话框
import {
formatDate
} from 'utils/dateFormattor';
......@@ -229,7 +255,8 @@
deepCopyDate,
newEast8Date,
convertDate2Str,
timestamp2Date
timestamp2Date,
getymdTimeByDay
} from 'utils/dateUtils';
import {mapGetters} from 'vuex';
......@@ -244,7 +271,7 @@
import ElCol from "element-ui/packages/col/src/col";
export default {
name: 'discountRecord',
name: 'cunponManagement',
components: {
ElCol,
ElRow,
......@@ -252,25 +279,61 @@
},
data() {
return {
typeOptions: [
cunponType:[
{
id:'1',
val:'满减卷'
},{
id:'2',
val:'叠加满减卷'
},{
id:'3',
val:'无门槛卷'
}
],
usedType:[
{
"name":'类型',
"val":''
id:'10',
val:'店铺优惠卷'
},
{
"name":'未到账',
"val":'0'
id:'11',
val:'新人店铺卷'
},
{
"name":'已到账',
"val":'1'
id:'20',
val:'商品优惠券'
},
{
id:'30',
val:'类目优惠券'
},
{
id:'60',
val:'平台优惠券'
},
{
id:'61',
val:'新人平台券'
}
],
cunponType:[
{
id:'1',
val:'满减'
}
channelType:[
{
id:'0',
val:'全平台'
},
{
id:'1',
val:'租车'
},
{
id:'2',
val:'旅游'
},
{
id:'3',
val:'营地'
}
],
BASE_API: process.env.BASE_API,
showLoadingBody: false,
......@@ -281,38 +344,59 @@
page: 1,
limit: 20,
title: '',//手机号
state:'',//状态
state:undefined,//状态
},
inline: true,
tableKey: 0,
editDialogVisible:false,
formdata:{},
modalTitle:'',
isUpdate:false,
rules:{
name: [
{
type: 'string',
required: true,
message: '请输入消息内容',
trigger: 'blur'
},
{
min: 0,
max: 50,
message: '长度小于50个字符',
trigger: 'blur'
}
],
title: {
type: 'string',
required: true,
message: '请输入标题',
trigger: 'blur'
},
},
list:[
{
"id":'1',
"title":"123",
"get":'1',
"used":'1',
"time":'2018-01-01',
"visible2":false
id:'1',
title:"123",
get:'1',
used:'10',
time:'2018-01-01',
visible2:false,
cover:"",
user_type_name:"普通用户",
type:1,
channel:0,
startTimeStr:'',
endTimeStr:''
}
]
],
pickerOptionsStart: {
disabledDate(time) {
return time.getTime() < Date.now() - 8.64e7;
}
},
// pickerOptionsStart: {
// disabledDate: time => {
// const endDateVal = new Date(this.formdata.endTimeStr).getTime()
// if (endDateVal) {
// return time.getTime() > endDateVal - 0
// }
// }
// },
pickerOptionsEnd: {
disabledDate: time => {
const beginDateVal = new Date(this.formdata.startTimeStr).getTime()
if (beginDateVal) {
return time.getTime() < beginDateVal - 0
}
}
}
}
},
created() {
......@@ -321,7 +405,10 @@
computed: {
...mapGetters([
'elements'
])
]),
getHeaderWithToken() {
return {Authorization: getToken()};
},
},
methods: {
/**
......@@ -366,17 +453,222 @@
},
handleUpdate(item){
var that = this;
that.modalTitle = '优惠券编辑';
that.isUpdate = true;
that.cleanForm();
item.user_type_name = item.userType==0?'普通用户':'会员用户';
item.valid_type_name = item.validType==1?'绝对时效':'相对时效';
if(item.validStartTime!=''){
item.validStartTimeStr = getymdTimeByDay(item.validStartTime);
}else{
item.validStartTimeStr = '';
}
if(item.validEndTime!=''){
item.validEndTimeStr = getymdTimeByDay(item.validEndTime);
}else{
item.validEndTimeStr = '';
}
if(item.startTime>0){
item.startTimeStr = getymdTimeByDay(item.startTime);
}else{
item.startTimeStr = '';
}
if(item.endTime>0){
item.endTimeStr = getymdTimeByDay(item.endTime);
}else{
item.endTimeStr = '';
}
if(item.type==1){
item.typeName = '满减券'
}else if(item.type==3){
item.typeName = '无门槛券'
}
if(item.used ==10){
item.usedName = '店铺优惠券'
}else if(item.used ==11){
item.usedName = '新人店铺券'
}else if(item.used ==20){
item.usedName = '商品优惠券'
}else if(item.used ==30){
item.usedName = '类目优惠券'
}else if(item.used ==60){
item.usedName = '平台优惠券'
}else if(item.used ==61){
item.usedName = '新人平台券'
}
if(item.channel ==0){
item.channelName = '全平台'
}else if(item.channel ==1){
item.channelName = '租车'
}else if(item.channel ==2){
item.channelName = '旅游'
}else if(item.channel ==3){
item.channelName = '营地'
}
item.startTimeName=item.startTime==0?'不限':'自定义';
item.endTimeName=item.endTime==0?'不限':'自定义';
item.cangive='否';
that.formdata = item;
console.log(that.formdata)
that.editDialogVisible = true;
console.log(item)
that.formdata = item
},
addCunpon(){
var that = this;
that.modalTitle = '优惠券添加';
that.isUpdate = false;
that.cleanForm();
console.log(that.formdata)
that.editDialogVisible = true;
},
deleteHandler(item){
item.visible2 = false
},
/**
* 创建
* */
create(formName) {
var that = this;
const set = this.$refs;
set[formName].validate(valid => {
if (valid) {
if(that.formdata.validStartTimeStr!=''){
that.formdata.validStartTime = this.formdata.validStartTimeStr.getTime();
}else{
that.formdata.validStartTime = ''
}
if(that.formdata.validEndTimeStr!=''){
that.formdata.validEndTime = this.formdata.validEndTimeStr.getTime();
}else{
that.formdata.validEndTime = ''
}
if(that.formdata.startTimeStr!=''){
that.formdata.startTime = this.formdata.startTimeStr.getTime();
}else{
that.formdata.startTime = 0
}
if(that.formdata.endTimeStr!=''){
that.formdata.endTime = this.formdata.endTimeStr.getTime();
}else{
that.formdata.endTime = 0
}
that.formdata.userType = that.formdata.user_type_name=='普通用户'?0:1
console.log(that.formdata)
// addBanner(this.form)
// .then(response => {
// if (response.status === 200) {
// this.bannerDialogVisible = false;
// this.getList();
// this.$notify({
// title: '成功',
// message: '创建成功',
// type: 'success',
// duration: 2000
// });
// this.getList();
// } else {
// this.$notify({
// title: '失败',
// message: rsCode.msg[response.code] ? rsCode.msg[response.code] : '操作失败!',
// type: 'error',
// duration: 2000
// });
// }
// });
} else {
return false;
}
});
},
/**
* 编辑-更新
* */
update(formName) {
const set = this.$refs;
// set[formName].validate(valid => {
// if (valid) {
// editBanner(this.form).then(response => {
// if (response.status === 200) {
// this.bannerDialogVisible = false;
// this.getList();
// this.$notify({
// title: '成功',
// message: '编辑成功',
// type: 'success',
// duration: 2000
// });
// this.getList();
// } else {
// this.$notify({
// title: '失败',
// message: rsCode.msg[response.code] ? rsCode.msg[response.code] : '操作失败!',
// type: 'error',
// duration: 2000
// });
// }
// });
// } else {
// return false;
// }
// });
},
/**
* 上传图片
* @param file
* @returns {boolean}
*/
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, file) {
this.formdata.icon = res.data;
this.showLoadingBody = false;
},
/**
* 弹框-取消
* */
cancelHandel(){
this.cleanForm();
this.editDialogVisible = false;
},
/**
* 清空表单
* */
cleanForm() {
this.formdata = {
title: '',
user_type_name:"普通用户",
type:'',
valid_type_name:'绝对时效',
startTime:'',
endTime:'',
cangive:'否',
url:'',
icon:'',
used:'',
channel:'',
startTimeName:'不限',
endTimeName:'不限',
validStartTimeStr:'',
validEndTimeStr:'',
startTimeStr:'',
endTimeStr:'',
}
},
}
}
</script>
......
......@@ -4,59 +4,59 @@
<div class="filter-container" ref="filter-container">
<el-form ref="queryForm" :inline="inline" :model="listQuery" label-width="100px">
<el-row>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="姓名">
<el-input v-model.number="listQuery.username" placeholder="请输入姓名"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="手机号">
<el-input v-model.number="listQuery.phone" placeholder="请输入手机号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="状态" prop="type">
<el-select class="filter-item" v-model="listQuery.state" placeholder="请输入状态">
<el-option v-for="(item,index) in typeOptions" :key="index" :label="item.name" :value="item.val"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
</el-row>
</el-form>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
</div>
<el-table :key='tableKey' :data="list" border fit highlight-current-row
style="width: 100%;">
<el-table-column type="index" width="150" align="center" label="姓名">
<el-table-column type="index" align="center" label="姓名" width="200">
<template scope="scope">
<span>{{scope.row.username}}</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="手机号">
<el-table-column align="center" label="手机号">
<template scope="scope">
<span>{{scope.row.phone}}</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="金额">
<el-table-column align="center" label="金额">
<template scope="scope">
<span>{{scope.row.amount}}</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="状态">
<el-table-column align="center" label="状态">
<template scope="scope">
<span v-if="scope.row.stauts==0">未到帐</span>
<span v-if="scope.row.stauts==1">已到账</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="申请时间">
<el-table-column align="center" label="申请时间">
<template scope="scope">
<span>{{scope.row.crtTimeStr}}</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="到账时间">
<el-table-column align="center" label="到账时间">
<template scope="scope">
<span>{{scope.row.finishTimeStr}}</span>
</template>
......
......@@ -4,26 +4,26 @@
<div class="filter-container" ref="filter-container">
<el-form ref="queryForm" :inline="inline" :model="listQuery" label-width="100px">
<el-row>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="姓名">
<el-input v-model.number="listQuery.username" placeholder="请输入姓名"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="手机号">
<el-input v-model.number="listQuery.phone" placeholder="请输入手机号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="流水类型" prop="type">
<el-select class="filter-item" v-model="listQuery.source" placeholder="请输入资源类型">
<el-option v-for="(item, index) in typeOptions" :key="index" :label="item.name" :value="item.val"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
</el-row>
</el-form>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
</div>
<el-table :key='tableKey' :data="list" border fit highlight-current-row
style="width: 100%;">
......@@ -38,7 +38,7 @@
</template>
</el-table-column>
<el-table-column width="150" align="center" label="姓名">
<el-table-column width="200" align="center" label="姓名">
<template scope="scope">
<span>{{scope.row.username}}</span>
</template>
......@@ -61,12 +61,12 @@
<span>{{scope.row.cono}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="订单金额">
<el-table-column width="200" align="center" label="订单金额">
<template scope="scope">
<span>{{scope.row.price}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="提成比例">
<el-table-column width="200" align="center" label="提成比例">
<template scope="scope">
<span>{{scope.row.extract}}%</span>
</template>
......
......@@ -14,19 +14,19 @@
<el-input v-model.number="listQuery.phone" placeholder="请输入手机号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
</el-row>
</el-form>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
</div>
<el-table :key='tableKey' :data="list" border fit highlight-current-row
style="width: 100%;">
<el-table-column width="150" align="center" label="姓名" type="index">
<el-table-column width="250" align="center" label="姓名" type="index">
<template scope="scope">
<span>{{scope.row.username}}</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="手机号">
<el-table-column width="250" align="center" label="手机号">
<template scope="scope">
<span>{{scope.row.phone}}</span>
</template>
......
<template>
<div class="app-container calendar-list-container" v-loading.body="showLoadingBody">
<div >
<div class="filter-container" ref="filter-container">
<el-form ref="queryForm" :inline="inline" :model="listQuery" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="车辆状态">
<el-select class="filter-item" v-model="listQuery.status" placeholder="请选择车辆状态">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="(val, key, index) in getAllVehicleStatus() " :key="val.code" :label="val.val"
:value="val.code"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="车牌">
<el-input v-model="listQuery.numberPlate" placeholder="请输入车牌"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所属地区" prop="zoneId">
<el-select class="filter-item" v-model="listQuery.zoneId" placeholder="请选择" @change="getProvinceRegions">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="val in getAllZoneList" :key="val.id" :label="val.name" :value="val.id"> </el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="所属分公司" prop="subordinateBranch">
<el-select class="filter-item" v-model="listQuery.subordinateBranch" placeholder="请选择" @change="getAllBranchCompanyChange">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="val in allBranchCompany" :key="val.id" :label="val.name" :value="val.id"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="时间">
<el-date-picker
v-model="listQuery.startTime"
type="date"
:editable="true"
format="yyyy-MM-dd"
placeholder="选择日期"
></el-date-picker>~
<el-date-picker
v-model="listQuery.endTime"
type="date"
:editable="true"
format="yyyy-MM-dd"
placeholder="选择日期"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="当前停放公司" prop="parkBranchCompanyId">
<el-autocomplete
class="inline-input"
v-model="listQuery.parkBranchCompanyName"
:fetch-suggestions="querySearch"
placeholder="请输入内容"
@select="handleSelectPark"
></el-autocomplete>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
</div>
<el-form label-width="100px" v-if="countTJ">
<el-row :gutter="20">
<el-col :span="2"><el-form-item label="车辆概况"></el-form-item></el-col>
<el-col :span="5" v-for="(item, index) in countTJ" :key="item.id">
<div class="grid-content bg-purple" v-if="item.travelStatus == 0 || item.travelStatus == 1 || item.travelStatus == 4 || item.travelStatus == 2">
<div class="text" style="color: #171413;">{{item.total}}</div>
<div class="text" v-if="item.travelStatus == 0">车辆总额(辆)</div>
<div class="text" v-if="item.travelStatus == 4">出行中车辆(辆)</div>
<div class="text" v-if="item.travelStatus == 1">空闲车辆(辆)</div>
<div class="text" v-if="item.travelStatus == 2">维修中车辆(辆)</div>
</div>
</el-col>
</el-row>
</el-form>
<!--车辆预警-->
<div class="marquee_box" v-if="marqueeList.length>0" @mouseenter="handelOver" @mouseleave="handelOut">
<ul class="marquee_list" :class="{marquee_top:animate}">
<li v-for="(item,index) in marqueeList" @click="toVehicleWarningMsg">{{item.msg}} >>立即处理</li>
</ul>
</div>
<!--车辆排班-->
<div style="display: flex;">
<span class="tip-co bg-1"></span><span>租房车</span>
<span class="tip-co bg-2"></span><span>房车游</span>
<span class="tip-co bg-3"></span><span>展览</span>
<span class="tip-co bg-4"></span><span>保养</span>
<span class="tip-co bg-5"></span><span>预约中</span>
<span class="tip-co bg-6"></span><span>禁用</span>
</div>
<div style="position: relative;padding: 10px;padding-left: 0;" v-if="currentMonth">
<div style="display: flex;">
<div class="day-title" style="min-width: 200px;max-width:200px;background: #eef1f6;">日期({{currentMonth}}~{{currentMonth+1}}月)</div>
<div class="day-title" style="background: #eef1f6;" v-for="item in tempDayList" :key="item.day" ><span>{{item.day}}</span></div>
</div>
<div v-for="item in list" :key="item.id" style="display: flex;">
<div class="v-list" style="display: inline-block;">
<div style="color: #bfcbd9;font-size: 14px;">
现在位置:{{item.endCompanyName}}
</div>
<div>{{item.numberPlate}}</div>
<div style="color: #bfcbd9;font-size: 14px;">{{item.vehicleModel?item.vehicleModel.name:''}}</div>
</div>
<div class="day-title flex-jca-fdc" style="padding: 0;" v-for="iitem in item.temp" :key="iitem.day" >
<!--@click="ii.bg?toShowDialog(item, iitem, ii):''"-->
<div v-for="ii in iitem.children" :key="ii.time" class="ii-day" :class="ii.bg" @click="toShowDialog(item, iitem, ii)">
</div>
</div>
</div>
</div>
<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>
<!--保养弹框-->
<vehicleMaintenanceModal v-if="baoyang" :currentItem="currentItem" v-on:baoyangDialogEvent = "baoyangDialogEvent"></vehicleMaintenanceModal>
<!--展览、预定用车弹框-->
<vehicleExhibitionModal v-if="zhanlan" :currentItem="currentItem" v-on:zhanlanDialogEvent = "zhanlanDialogEvent"></vehicleExhibitionModal>
<!--安排用车弹框-->
<vehiclePlanModal v-if="anpai" :currentItem="currentItem" v-on:anpaiDialogEvent = "anpaiDialogEvent"></vehiclePlanModal>
</div>
</template>
<style>
.flex-jca-fdc{
display: flex !important;
flex-direction: column;
justify-content: space-around;
}
.tip-co{
padding: 10px;
margin-right: 10px;
margin-left: 20px;
}
.tip-co:first-child{
margin-left: 0;
}
.bg-1{
background: #20a0ff;
}
.bg-2{
background: #6633cc;
}
.bg-3{
background: #00cc66;
}
.bg-4{
background: #ff6633;
}
.bg-5{
background: #cff1f6;
}
.bg-6{
background: #d7d7d7;
}
.ii-day{
height: 4.16%;
}
.day-title{
border-right:1px solid #bfcbd9;
border-bottom:1px solid #bfcbd9;
padding: 10px;
min-width: 45px;
max-width: 45px;
display: inline-block;
}
.v-list{
padding: 10px;
min-width: 200px;
max-width: 200px;
border-bottom:1px solid #bfcbd9;
border-right:1px solid #bfcbd9;
}
.zzui-broadcast-window{
height: 180px !important;
background: #ccc;
}
.el-row {
margin-bottom: 20px;
&:last-child {
margin-bottom: 0;
}
}
.el-col {
border-radius: 4px;
}
.bg-purple-dark {
background: #99a9bf;
}
.bg-purple {
background: #eef1f6;
}
.bg-purple-light {
background: #e5e9f2;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
}
.grid-content .text{
text-align: center;
line-height: 35px;
}
.row-bg {
padding: 10px 0;
background-color: #f9fafc;
}
.marquee {
width: 100%;
height: 50px;
align-items: center;
color: #3a3a3a;
background-color: white;
display: flex;
box-sizing: border-box;
overflow: hidden;
}
.marquee_title {
padding: 0 20px;
height: 21px;
font-size: 14px;
border-right: 1px solid #d8d8d8;
align-items: center;
}
.marquee_box {
display: block;
position: relative;
width: 100%;
height: 145px;
overflow: hidden;
margin-bottom: 10px;
background: #eef1f6;
}
.marquee_list {
display: block;
position: absolute;
top: 0;
left: 0;
}
.marquee_top {
transition: all 0.5s;
}
.marquee_list li {
height: 30px;
line-height: 30px;
font-size: 14px;
padding-left: 20px;
}
.marquee_list li span {
padding: 0 2px;
}
</style>
<script>
import 'static/css/uploadImg.css';// 引入图片上传组件对话框
import vehicleMaintenanceModal from './vehicleMaintenanceModal';//车辆保养弹框
import vehicleExhibitionModal from './vehicleExhibitionModal';//车辆展览弹框
import vehiclePlanModal from './vehiclePlanModal';//安排用车
import {
getSysRegionByIds
} from 'api/vehicle/vehicleInfo/';
import {
getAllZone
} from 'api/base_info/constant/';
import {
getAllCompany,
getAll
} from 'api/base_info/branch_company/';
import {
getAllBranchCompanyByZoneId
} from 'api/order/rentVehicle';
import {
formatDate
} from 'utils/dateFormattor';
import {
toEast8Date,
deepCopyDate,
newEast8Date,
convertDate2Str,
timestamp2Date,
getTimeByDay,
getCurrentMonth,
getMonth,
getymdTimeByDay
} from 'utils/dateUtils';
import rsCode from '../../../utils/rsCode';
import {mapGetters} from 'vuex';
import {
getToken
} from 'utils/auth';
import {
getVehiclePlanList
} from 'api/vehicle/vehicleSchedulManage';
import Element1 from "../../admin/menu/components/element";
import ElRow from "element-ui/packages/row/src/row";
import ElCol from "element-ui/packages/col/src/col";
export default {
name: 'vehicleSchedulManage',
components: {
ElCol,
ElRow,
Element1,
vehicleExhibitionModal,
vehicleMaintenanceModal,
vehiclePlanModal
},
data() {
return {
animate: false,
marqueeList: [],
modalTitle: "创建",
BASE_API: process.env.BASE_API,
oneCampsiteDialogVisible: false,//添加、编辑弹框
showLoadingBody: false,
countTJ: undefined,//车辆概况
form: {
tagNames:"",//标签
name: undefined,//旅游名称
saleCount: undefined,//销量
stock: undefined,//总数量
status: undefined,
},
list: null,
total: null,
listLoading: true,
listQuery: {
page: 1,
limit: 20,
parkBranchCompanyId: undefined,//停靠分公司id
parkBranchCompanyName: undefined,//停靠分公司名称
subordinateBranch: undefined,//所属分公司
subordinateBranchName: undefined,//所属分公司名称
zoneId: undefined,//所属片区
startTime: undefined,
endTime:undefined,
status: undefined,//车辆状态
},
inline: true,
mar: null,//滚屏
textMap: {
update: '编辑',
create: '创建'
},
tableKey: 0,
tempDayList: [],//日期
currentMonth: undefined,//当前月份
allBranchCompany: [],//所有分公司列表
baoyang: false,//保养弹框,
zhanlan: false,//展览弹框
anpai: false,//安排用车弹框
currentItem: {},//待操作数据
}
},
created() {
this.getList();
this.getTempDayList();
this.mar = setInterval(this.showMarquee, 2000);
getAll()
.then(response => {
this.allCompaniesArr = response.data;
})
getAllCompany(codeAndBranchCompany => {
this.allCompanies = codeAndBranchCompany;
});
},
computed: {
...mapGetters([
'elements',
'vehicleStatus'
]),
//获取大区列表
getAllZoneList(){
this.allZoneArr = getAllZone();
return getAllZone();
},
},
methods: {
/**
* 点击事件
* */
toShowDialog(item, iitem, ii){
console.log(item);
console.log(iitem);
console.log(ii);
if(!ii.bg){
//空白-可安排用车
this.anpai = true;
this.currentItem = {item: item, iitem: iitem, ii: ii};
} else {
if(ii.status == 4){
//保养
this.baoyang = true;
this.currentItem = {item: item, iitem: iitem, ii: ii};
} else if(ii.status == 3){
//展览
this.zhanlan = true;
this.currentItem = {item: item, iitem: iitem, ii: ii, title: "展览用车"};
} else if(ii.status == 1){
//展览
this.zhanlan = true;
this.currentItem = {item: item, iitem: iitem, ii: ii, title: "预定用车"};
}
}
},
/**
* 关闭保养弹框后逻辑处理
* */
baoyangDialogEvent(e){
this.baoyang = false;
if(e){//关闭编辑
//编辑成功-重新加载列表
this.getList();
}
},
/**
* 关闭展览弹框后逻辑处理
* */
zhanlanDialogEvent(e){
this.zhanlan = false;
if(e){//关闭编辑
//编辑成功-重新加载列表
this.getList();
}
},
/**
* 安排用车弹框关闭逻辑处理
* */
anpaiDialogEvent(e){
this.anpai = false;
if(e){//关闭编辑
//编辑成功-重新加载列表
this.getList();
}
},
/**
* 根据片区id获取分公司列表
* */
getProvinceRegions(item) {
this.listQuery.zoneId = item;
getAllBranchCompanyByZoneId({zoneId: item})
.then(response => {
this.allBranchCompany = response.data;
})
},
/**
* 选择分公司
* */
getAllBranchCompanyChange(item) {
this.listQuery.subordinateBranch = item
},
/**
* 鼠标移入
* */
handelOver(){
clearInterval(this.mar);
},
/**
* 鼠标移出
* */
handelOut(){
this.mar = setInterval(this.showMarquee, 2000);
},
/**
* 立即处理
* */
toVehicleWarningMsg(){
this.$router.push({path: '/vehicle/vehicleWarningMsg'});
},
showMarquee: function() {
this.animate = true;
setTimeout(() => {
this.marqueeList.push(this.marqueeList[0]);
this.marqueeList.shift();
this.animate = false;
}, 1000);
},
getAllVehicleStatus: function () {
return this.vehicleStatus;
},
/**
* 所属分公司
* */
handleSelectSubordinate(item){
if(item.value == "无"){
this.listQuery.subordinateBranch = undefined;
this.listQuery.subordinateBranchName = "无";
} else {
this.listQuery.subordinateBranch = item.id;
this.listQuery.subordinateBranchName = item.name;
}
},
/**
* 停靠分公司
* */
handleSelectPark(item){
if(item.value == "无"){
this.listQuery.parkBranchCompanyId = undefined;
this.listQuery.parkBranchCompanyName = "无";
} else {
this.listQuery.parkBranchCompanyId = item.id;
this.listQuery.parkBranchCompanyName = item.name;
}
},
querySearch(queryString, cb) {
let selectArry = [];
let iitem = {
value: "无",
name: "无"
};
selectArry.push(iitem);
this.allCompaniesArr.map(function(item){
item.value = item.name;
selectArry.push(item);
});
this.selectArry = selectArry;
var results = queryString ? selectArry.filter(this.createFilter(queryString)) : selectArry;
// 调用 callback 返回建议列表的数据
cb(results);
},
createFilter(queryString) {
return (restaurant) => {
return (restaurant.name.indexOf(queryString.toLowerCase()) != -1);
};
},
/**
* 获取列表
* */
getList() {
let _this = this;
this.listLoading = true;
if(this.listQuery.startTime && (typeof this.listQuery.startTime == "object")){
this.listQuery.startTime = this.listQuery.startTime.getTime();
}
if(this.listQuery.endTime && (typeof this.listQuery.endTime == "object")){
this.listQuery.endTime = this.listQuery.endTime.getTime();
}
getVehiclePlanList(this.listQuery).then(response => {
let totalCountRs = undefined;
let listRs = undefined;
if (!this.$utils.isEmpty(response.data.vehicleAndModelInfoVo) && this.$utils.isInteger(response.data.vehicleAndModelInfoVo.totalCount)) {
listRs = response.data.vehicleAndModelInfoVo.data;
totalCountRs = response.data.vehicleAndModelInfoVo.totalCount;
listRs.map(function(item){
item.visible2 = false;
item.crtTimeStr = timestamp2Date(item.crtTime);
if(item.storeTypeName){
item.storeTypeName = item.storeTypeName.join("|");
}
item.temp = _this.getDayList(item);//获取车辆30天排期
});
}
if (!this.$utils.isEmpty(response.data.vehicleWarningMsgs)) {
this.marqueeList = response.data.vehicleWarningMsgs;
}
this.listLoading = false;
this.list = listRs;
this.total = totalCountRs;
this.countTJ = response.data.vehicleCountVos;
})
},
handleFilter() {
this.listQuery.page = 1;
this.$refs.queryForm.validate(valid => {
if (valid) {
this.getList();
} else {
return false;
}
});
},
handleSizeChange(val) {
this.listQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.listQuery.page = val;
this.getList();
},
/**
* 获取日期数组
* */
getDayList(item){
let temp = [];
let list = this.list;
let currentMonth = getCurrentMonth();
this.currentMonth = parseInt(currentMonth);
// console.log(currentMonth);
for(let i = 0; i < 30; i++){
let t = [];
let tymd = getymdTimeByDay(i);
let children = [];
let tt = "";//yyyy-MM-dd hh:mm:ss
let h = "";
let bg = "";//背景色
let status = undefined;//当前车辆状态
let vehicleBookRecord = {};//车辆排班信息
for(let ii = 0; ii < 24; ii ++) {
if (ii < 10) {
h = "0" + ii;
tt = tymd + " 0" + ii + ":00:00";
} else {
tt = tymd + " " + ii + ":00:00";
h = ii;
}
item.vehicleBookRecord.map(function (iitem) {
if (iitem.bookStartDate <= tt && iitem.bookEndDate >tt) {
bg = "bg-"+ iitem.status;
status = iitem.status;
vehicleBookRecord = iitem;
}
});
children.push({time: tt, h: h, bg: bg, status: status, vehicleBookRecord: vehicleBookRecord});
}
temp.push({day: getTimeByDay(i), month: getMonth(i), children: children});
}
// console.log(temp);
return temp;
},
/**
* tempDayList
**/
getTempDayList(){
let temp = [];
let list = this.list;
let currentMonth = getCurrentMonth();
for(let i = 0; i < 30; i++){
let t = [];
let tymd = getymdTimeByDay(i);
let children = [];
let tt = "";//yyyy-MM-dd hh:mm:ss
let h = "";
let bg = "";
for(let ii = 0; ii < 24; ii ++) {
if (ii < 10) {
h = "0" + ii;
tt = tymd + " 0" + ii + ":00:00";
} else {
tt = tymd + " " + ii + ":00:00";
h = ii;
}
children.push({time: tt, h: h, bg: bg});
}
temp.push({day: getTimeByDay(i), month: getMonth(i), children: children});
}
this.tempDayList = temp;
},
}
}
</script>
<!--车辆排班 保养弹框-->
<template>
<el-dialog :title="currentItem.title" :visible.sync="zhanlan" width="10%">
<el-form :model="currentItem" ref="currentItem" label-width="120px">
<el-form-item label="车牌号:">
<span>{{currentItem.item.numberPlate}}</span>
</el-form-item>
<el-form-item label="所属公司:">
<span>{{currentItem.item.subordinateBranchName}}</span>
</el-form-item>
<el-form-item label="申请人:">
<span>{{currentItem.ii.vehicleBookRecord.bookUserName}}</span>
</el-form-item>
<el-form-item label="提车公司:">
<span>{{currentItem.item.parkCompanyName}}</span>
</el-form-item>
<el-form-item label="还车公司:">
<span>{{currentItem.item.destinationBranchCompanyName}}</span>
</el-form-item>
<el-form-item label="预定时间:">
<span>{{currentItem.ii.vehicleBookRecord.bookStartDate}}~{{currentItem.ii.vehicleBookRecord.bookEndDate}}</span>
</el-form-item>
<el-form-item label="用途:">
<span>{{currentItem.title == "展览用车"?"展览": currentItem.title == "预定用车"?"预定":""}}</span>
</el-form-item>
<el-form-item label="申请说明:">
<span></span>
</el-form-item>
</el-form>
<div slot="footer" v-if='currentItem.title == "展览用车"' class="dialog-footer">
<el-button @click="cancel()">取消用车</el-button>
<el-button type="primary" @click="handelOk()">确 定</el-button>
</div>
<div slot="footer" v-else class="dialog-footer">
<el-button type="primary" @click="agree()">同 意</el-button>
<el-button @click="notAgree()">不同意</el-button>
</div>
</el-dialog>
</template>
<script>
import {mapGetters} from 'vuex';
import ElRow from "element-ui/packages/row/src/row";
import ElCol from "element-ui/packages/col/src/col";
import ElFormItem from "../../../../node_modules/element-ui/packages/form/src/form-item.vue";
export default {
components: {
ElFormItem,
ElCol,
ElRow},
props: ["currentItem"],
name: 'vehicleExhibitionModal',
data() {
return {
zhanlan:false,
}
},
created() {
console.log(this.currentItem);
},
watch: {
zhanlan(newValue, oldValue){
if(!newValue){
this.$emit("zhanlanDialogEvent", false);
}
},
},
mounted() {
this.zhanlan = true;
},
methods: {
/**
* 弹框-取消
* */
cancel() {
console.log("展览取消用车");
this.$emit("zhanlanDialogEvent", true);
},
/**
* 确定用车
* */
handelOk(){
console.log("展览确定用车");
this.$emit("zhanlanDialogEvent", true);
},
/**
* 同意
*/
agree(){
console.log("同意");
this.$emit("zhanlanDialogEvent", true);
},
/**
* 不同意
*/
notAgree(){
console.log("不同意");
this.$emit("zhanlanDialogEvent", true);
},
}
}
</script>
<!--车辆排班 保养弹框-->
<template>
<el-dialog title="保养用车" :visible.sync="baoyang" width="10%">
<el-form :model="currentItem" ref="currentItem" label-width="120px">
<el-form-item label="车牌号:">
<span>{{currentItem.item.numberPlate}}</span>
</el-form-item>
<el-form-item label="所属公司:">
<span>{{currentItem.item.subordinateBranchName}}</span>
</el-form-item>
<el-form-item label="提车保养公司:">
<span>{{currentItem.item.parkCompanyName}}</span>
</el-form-item>
<el-form-item label="还车公司:">
<span>{{currentItem.item.destinationBranchCompanyName}}</span>
</el-form-item>
<el-form-item label="保养人:">
<span>{{currentItem.ii.vehicleBookRecord.bookUserName}}</span>
</el-form-item>
<el-form-item label="预定时间:">
<span>{{currentItem.ii.vehicleBookRecord.bookStartDate}}~{{currentItem.ii.vehicleBookRecord.bookEndDate}}</span>
</el-form-item>
<el-form-item label="用途:">
<span>保养</span>
</el-form-item>
<el-form-item label="保养项目:">
<span></span>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel()">取消用车</el-button>
<el-button type="primary" @click="handelOk()">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
import {mapGetters} from 'vuex';
import ElRow from "element-ui/packages/row/src/row";
import ElCol from "element-ui/packages/col/src/col";
import ElFormItem from "../../../../node_modules/element-ui/packages/form/src/form-item.vue";
export default {
components: {
ElFormItem,
ElCol,
ElRow},
props: ["currentItem"],
name: 'vehicleMaintenanceModal',
data() {
return {
baoyang:false,
}
},
created() {
console.log(this.currentItem);
},
watch: {
baoyang(newValue, oldValue){
if(!newValue){
this.$emit("baoyangDialogEvent", false);
}
},
},
mounted() {
this.baoyang = true;
},
methods: {
/**
* 保养-弹框-取消
* */
cancel() {
console.log("保养取消用车");
this.$emit("baoyangDialogEvent", true);
},
/**
* 保养-确定用车
* */
handelOk(){
console.log("保养确定用车");
this.$emit("baoyangDialogEvent", true);
}
}
}
</script>
<!--车辆排班 保养弹框-->
<template>
<el-dialog title="保养用车" :visible.sync="baoyang" width="10%">
<el-form :model="currentItem" ref="currentItem" label-width="120px">
<el-form-item label="车牌号:">
<span>{{currentItem.item.numberPlate}}</span>
</el-form-item>
<el-form-item label="所属公司:">
<span>{{currentItem.item.subordinateBranchName}}</span>
</el-form-item>
<el-form-item label="提车保养公司:">
<span>{{currentItem.item.parkCompanyName}}</span>
</el-form-item>
<el-form-item label="还车公司:">
<span>{{currentItem.item.destinationBranchCompanyName}}</span>
</el-form-item>
<el-form-item label="保养人:">
<span>{{currentItem.ii.vehicleBookRecord.bookUserName}}</span>
</el-form-item>
<el-form-item label="预定时间:">
<span>{{currentItem.ii.vehicleBookRecord.bookStartDate}}~{{currentItem.ii.vehicleBookRecord.bookEndDate}}</span>
</el-form-item>
<el-form-item label="用途:">
<span>保养</span>
</el-form-item>
<el-form-item label="保养项目:">
<span></span>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel()">取消用车</el-button>
<el-button type="primary" @click="handelOk()">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
import {mapGetters} from 'vuex';
import ElRow from "element-ui/packages/row/src/row";
import ElCol from "element-ui/packages/col/src/col";
import ElFormItem from "../../../../node_modules/element-ui/packages/form/src/form-item.vue";
export default {
components: {
ElFormItem,
ElCol,
ElRow},
props: ["currentItem"],
name: 'vehiclePlanModal',
data() {
return {
baoyang:false,
}
},
created() {
console.log(this.currentItem);
},
watch: {
baoyang(newValue, oldValue){
if(!newValue){
this.$emit("baoyangDialogEvent", false);
}
},
},
mounted() {
this.baoyang = true;
},
methods: {
/**
* 保养-弹框-取消
* */
cancel() {
console.log("保养取消用车");
this.$emit("baoyangDialogEvent", true);
},
/**
* 保养-确定用车
* */
handelOk(){
console.log("保养确定用车");
this.$emit("baoyangDialogEvent", true);
}
}
}
</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