Commit 1915df9b authored by xiaosl's avatar xiaosl

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

parent 7430439e
module.exports = {
NODE_ENV: '"development"',
BASE_API:'"https://dev.dfangche.com"',//'"https://xxtest.upyuns.com"',//'"https://xxfcmgmt.upyuns.com"(正)',//http://10.1.37.192:9527(何), //https://xxtest.upyuns.com(测),10.1.37.246:9527(韩), 10.1.37.244(李斌)10.1.37.248:8765(小威)
BASE_API:'"https://xxtest.upyuns.com"',//'"https://dev.dfangche.com"',//'"https://xxfcmgmt.upyuns.com"(正)',//http://10.1.37.192:9527(何), //https://xxtest.upyuns.com(测),10.1.37.246:9527(韩), 10.1.37.244(李斌)10.1.37.248:8765(小威)
APP_ORIGIN: '"https://wallstreetcn.com"'
}
......@@ -155,7 +155,22 @@ export function stockSearchPage(query) {
});
}
// 修改订单还车公司
export function updateEndCompany(params) {
return fetch({
url: '/api/order/baseOrder/updateEndCompany',
method: 'post',
data: params
});
}
// 修改预定订单还车公司
export function updateById(params) {
return fetch({
url: '/vehicle/vehicleInfo/bookRecord/updateById',
method: 'post',
data: params
});
}
export function delObj(id) {
return fetch({
url: '/vehicle/branchCompany/' + id,
......@@ -184,6 +199,7 @@ export function getDetail(id) {
method: 'get'
})
}
/**
* 获取所有公司信息
* @returns {null|*}
......
......@@ -32,3 +32,17 @@ export function add(obj) {
data:obj
})
}
export function activityIds() {
return fetch({
url: '/api/summit/imxr/ids',
method: 'get'
})
}
export function remove(id) {
return fetch({
url: '/api/summit/activity/remove/' + id,
method: 'delete'
})
}
\ No newline at end of file
<template>
<el-dialog title="租车订单详情" :visible.sync="dialogVisible" class="order-details">
<el-form :model="form" ref="form" label-width="90px">
<el-row>
<el-col :span="8">
<el-form-item label="订单号:">
<span>{{form.no}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="支付时间:">
<span>{{form.crtTime}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="订单状态:">
<span>{{form.ststusName}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="姓名:">
<span>{{form.realName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机号:">
<span>{{form.telephone}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="配车:">
<span style="margin-right: 10px;">{{form.vehicleNumberPlat?form.vehicleNumberPlat:form.vehicalNumberPlat}}</span><el-button size="small" type="primary" icon="edit" v-if="form.status==4" @click="resetCar">重新配车</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="取车:">
<span>{{form.orderRentVehicleDetail.startTime}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="" label-width="10px">
<span>{{form.orderRentVehicleDetail.startAddr}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="交车公司:">
<span>{{form.startCompanyName}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="还车:">
<span>{{form.orderRentVehicleDetail.endTime}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="" label-width="10px">
<span>{{form.orderRentVehicleDetail.endAddr}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="交车公司:">
<span>{{form.endCompanyName}}</span>
</el-form-item>
</el-col>
</el-row>
<table class="orderDetail">
<tr><th>房车</th><th>租借天数</th><th>费用明细</th>
</tr>
<tr>
<td>{{form.name}}{{rentCostDetail}}</td>
<td>{{form.orderRentVehicleDetail.dayNum}}</td>
<td>{{rentCostDetail}}</td>
</tr>
<tr>
<td ></td>
<td ></td>
<td >共计:¥{{form.realAmount}}</td>
</tr>
</table>
<div v-if="form.orderVehicleCrosstownDto" style="margin: 20px 0;"><span style="font-size: 18px;font-weight: bold;">驾驶人信息</span></div>
<table class="orderDetail" v-if="form.orderVehicleCrosstownDto">
<tr><th>姓名</th><th>手机号</th><th>身份证号</th><!-- <th>驾照</th>--></tr>
<el-dialog title="租车订单详情" :visible.sync="dialogVisible" class="order-details">
<el-form :model="form" ref="form" label-width="90px">
<el-row>
<el-col :span="8">
<el-form-item label="订单号:">
<span>{{form.no}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="支付时间:">
<span>{{form.crtTime}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="订单状态:">
<span>{{form.ststusName}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="姓名:">
<span>{{form.realName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机号:">
<span>{{form.telephone}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="配车:">
<span
style="margin-right: 10px;"
>{{form.vehicleNumberPlat?form.vehicleNumberPlat:form.vehicalNumberPlat}}</span>
<el-button
size="small"
type="primary"
icon="edit"
v-if="form.status==4"
@click="resetCar"
>重新配车</el-button>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="取车:">
<span>{{form.orderRentVehicleDetail.startTime}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label label-width="10px">
<span>{{form.orderRentVehicleDetail.startAddr}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="交车公司:">
<span>{{form.startCompanyName}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="还车:">
<span>{{form.orderRentVehicleDetail.endTime}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label label-width="10px">
<span>{{form.orderRentVehicleDetail.endAddr}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="还车公司:">
<span>{{form.endCompanyName}}</span>
<el-button v-show="form.status == 4 || form.status == 5" size="mini" type="primary" style="padding: 7px 9px;" @click="resetReturn = true">更换</el-button>
</el-form-item>
</el-col>
</el-row>
<table class="orderDetail">
<tr>
<th>房车</th>
<th>租借天数</th>
<th>费用明细</th>
</tr>
<tr>
<td>{{form.name}}{{rentCostDetail}}</td>
<td>{{form.orderRentVehicleDetail.dayNum}}</td>
<td>{{rentCostDetail}}</td>
</tr>
<tr>
<td></td>
<td></td>
<td>共计:¥{{form.realAmount}}</td>
</tr>
</table>
<div v-if="form.orderVehicleCrosstownDto" style="margin: 20px 0;">
<span style="font-size: 18px;font-weight: bold;">驾驶人信息</span>
</div>
<table class="orderDetail" v-if="form.orderVehicleCrosstownDto">
<tr>
<th>姓名</th>
<th>手机号</th>
<th>身份证号</th>
<!-- <th>驾照</th>-->
</tr>
<tr>
<td>{{form.orderVehicleCrosstownDto.licenseName}}</td>
<td>{{form.orderVehicleCrosstownDto.licensePhone}}</td>
<td>{{form.orderVehicleCrosstownDto.licenseIdCard}}</td>
<!-- <td><img style="width: 140px;height: 140px;" :src="form.orderVehicleCrosstownDto?form.orderVehicleCrosstownDto.licenseImg:'https://xxtest.upyuns.com/image/app/default_%20avatar.png'"></td>-->
</tr>
</table>
</el-form>
<div class="modal_modal" v-show="resetCarVisible"></div>
<!-- 重新配车 -->
<el-dialog title="重新配车" :visible.sync="resetCarVisible" :append-to-body='true' :modal="false">
<el-form :model="resetCarForm" ref="carForm" :rules="rules" label-width="90px">
<el-form-item label="车牌号:" prop="numberPlate">
<el-input v-model="resetCarForm.numberPlate" placeholder="请输入重配的车牌号"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelResetCar">取消</el-button>
<el-button type="primary" @click="update('carForm')">确定</el-button>
</div>
</el-dialog>
</el-dialog>
<tr>
<td>{{form.orderVehicleCrosstownDto.licenseName}}</td>
<td>{{form.orderVehicleCrosstownDto.licensePhone}}</td>
<td>{{form.orderVehicleCrosstownDto.licenseIdCard}}</td>
<!-- <td><img style="width: 140px;height: 140px;" :src="form.orderVehicleCrosstownDto?form.orderVehicleCrosstownDto.licenseImg:'https://xxtest.upyuns.com/image/app/default_%20avatar.png'"></td>-->
</tr>
</table>
</el-form>
<div class="modal_modal" v-show="resetCarVisible"></div>
<!-- 重新配车 -->
<el-dialog title="重新配车" :visible.sync="resetCarVisible" :append-to-body="true" :modal="false">
<el-form :model="resetCarForm" ref="carForm" :rules="rules" label-width="90px">
<el-form-item label="车牌号:" prop="numberPlate">
<el-input v-model="resetCarForm.numberPlate" placeholder="请输入重配的车牌号"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelResetCar">取消</el-button>
<el-button type="primary" @click="update('carForm')">确定</el-button>
</div>
</el-dialog>
<!-- 更改还车地点 -->
<div class="modal_modal" v-show="resetReturn"></div>
<el-dialog title="更改还车地点" :visible.sync="resetReturn" :append-to-body="true" :modal="false">
<el-form :model="returnForm" ref="returnForm" label-width="90px">
<el-form-item label="还车地点:" prop="endCompanyId">
<el-select clearable v-model="returnForm.endCompanyId" filterable placeholder="请选择/搜索还车地点">
<el-option v-for="item in allCompaniesArr" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-button style="margin-top:20px" type="primary" @click="confirm('returnForm')">确定</el-button>
</el-form>
</el-dialog>
</el-dialog>
</template>
<script>
import ElRow from "element-ui/packages/row/src/row";
import ElInput from "../../../../node_modules/element-ui/packages/input/src/input.vue";
import ElCol from "element-ui/packages/col/src/col";
import ElFormItem from "../../../../node_modules/element-ui/packages/form/src/form-item.vue";
import ElForm from "../../../../node_modules/element-ui/packages/form/src/form.vue";
import {editObj} from 'api/vehicle/vehicleInfo';
export default {
props: ["form", "rentCostDetail"],
name: 'rentOrderDetailModal',
components: {
ElFormItem,
ElCol,
ElInput,
ElRow
},
data() {
return {
updateNumberPlat:false,//是否重新配车
dialogVisible: false,
resetCarVisible:false,
resetCarForm:{
no:'',
numberPlate:'',//重新配车车牌号
},
rules: {
numberPlate: [
{
type: 'string',
required: true,
message: '请输入车牌号',
trigger: 'blur'
}
]
},
}
},
watch: {
dialogVisible(newValue, oldValue){
if(!newValue){
this.$emit("rentOrderDetailDialogEvent", this.updateNumberPlat);
}
},
},
mounted() {
this.dialogVisible = true;
if (this.form.status == 2) {
this.form.ststusName = '取消';
}
if (this.form.status == 3) {
this.form.ststusName = '待付款';
}
if (this.form.status == 4) {
this.form.ststusName = '待出行';
}
if (this.form.status == 5) {
this.form.ststusName = '出行中';
}
if (this.form.status == 6) {
this.form.ststusName = '已完成';
}
},
methods: {
resetCar(){
this.clearFrom();
this.resetCarVisible = true
this.resetCarForm.no = this.form.no
},
cancelResetCar(){
this.resetCarVisible = false
},
clearFrom(){
this.resetCarForm = {
no:'',
numberPlate:'',//重新配车车牌号
}
},
/**
* 重新配车
* */
update(formName) {
let that = this;
const set = this.$refs;
set[formName].validate(valid => {
if (valid) {
editObj(this.resetCarForm).then(response => {
if (response.status === 200) {
this.$notify({
title: '成功',
message: '修改成功',
type: 'success',
duration: 2000
});
this.resetCarVisible = false
this.form.vehicleNumberPlat = this.resetCarForm.numberPlate
this.updateNumberPlat = true
} else {
this.$notify({
title: '失败',
message: response.message,
type: 'error',
duration: 2000
});
}
});
} else {
return false;
}
});
},
}
}
import ElRow from 'element-ui/packages/row/src/row'
import ElInput from '../../../../node_modules/element-ui/packages/input/src/input.vue'
import ElCol from 'element-ui/packages/col/src/col'
import ElFormItem from '../../../../node_modules/element-ui/packages/form/src/form-item.vue'
import ElForm from '../../../../node_modules/element-ui/packages/form/src/form.vue'
import { editObj } from 'api/vehicle/vehicleInfo'
import { getAll, updateEndCompany } from 'api/base_info/branch_company'
export default {
props: ['form', 'rentCostDetail'],
name: 'rentOrderDetailModal',
components: {
ElFormItem,
ElCol,
ElInput,
ElRow
},
data() {
return {
returnForm: {
endCompanyId: ''
},
allCompaniesArr: [],
resetReturn: false, //更改换成地点loading
updateNumberPlat: false, //是否重新配车
dialogVisible: false,
resetCarVisible: false,
resetCarForm: {
no: '',
numberPlate: '' //重新配车车牌号
},
rules1: {
endCompanyId: [
{
required: true,
message: '请选择更换地点',
trigger: 'change'
}
]
},
rules: {
numberPlate: [
{
type: 'string',
required: true,
message: '请输入车牌号',
trigger: 'blur'
}
]
}
}
},
watch: {
dialogVisible(newValue, oldValue) {
if (!newValue) {
this.$emit('rentOrderDetailDialogEvent', this.updateNumberPlat)
}
}
},
mounted() {
console.log(this.form)
this.dialogVisible = true
if (this.form.status == 2) {
this.form.ststusName = '取消'
}
if (this.form.status == 3) {
this.form.ststusName = '待付款'
}
if (this.form.status == 4) {
this.form.ststusName = '待出行'
}
if (this.form.status == 5) {
this.form.ststusName = '出行中'
}
if (this.form.status == 6) {
this.form.ststusName = '已完成'
}
this.getAllFn()
},
methods: {
getAllFn() {
let _this = this
getAll().then(data => {
_this.allCompaniesArr = []
data.data.map(function(item) {
item.value = item.name
_this.allCompaniesArr.push(item)
})
})
},
confirm(formName) {
if (this.returnForm.endCompanyId == '') {
this.$notify({
title: '失败',
message: '还车地点不能为空',
type: 'error',
duration: 2000
})
} else {
this.returnForm.id = this.form.detailId
updateEndCompany(this.returnForm).then(data => {
if (data.status == 200) {
this.$notify({
title: '成功',
message: '修改还车地点成功',
type: 'success',
duration: 3000
})
this.resetReturn = false;
this.dialogVisible = false;
this.$emit('rentOrderDetailDialogEvent', true)
} else {
this.$notify({
title: '失败',
message: data.message,
type: 'error',
duration: 3000
})
}
})
}
},
resetCar() {
this.clearFrom()
this.resetCarVisible = true
this.resetCarForm.no = this.form.no
},
cancelResetCar() {
this.resetCarVisible = false
},
clearFrom() {
this.resetCarForm = {
no: '',
numberPlate: '' //重新配车车牌号
}
},
/**
* 重新配车
* */
update(formName) {
let that = this
const set = this.$refs
set[formName].validate(valid => {
if (valid) {
editObj(this.resetCarForm).then(response => {
if (response.status === 200) {
this.$notify({
title: '成功',
message: '修改成功',
type: 'success',
duration: 2000
})
this.resetCarVisible = false
this.form.vehicleNumberPlat = this.resetCarForm.numberPlate
this.updateNumberPlat = true
} else {
this.$notify({
title: '失败',
message: response.message,
type: 'error',
duration: 2000
})
}
})
} else {
return false
}
})
}
}
}
</script>
<style>
.label-text{
margin-left: 10px;
margin-right: 20px;
}
.label-title{
margin-top: 10px;
}
.orderDetail tr th{
background: #eef1f6;
}
.orderDetail tr td, .orderDetail tr th{
width: 500px;
text-align: center;
border: 1px solid #dfe6ec;
margin-left: 100px;
margin-right: 100px;
padding: 10px;
}
.label-value{
margin-left: 80px;
margin-right: 100px;
}
#license-img{
width: 50px;
height: 50px;
}
.order-details .el-form-item{
margin-bottom: 10px !important;
}
.modal_modal{
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
opacity: .5;
background: #000;
z-index: 2000;
}
.label-text {
margin-left: 10px;
margin-right: 20px;
}
.label-title {
margin-top: 10px;
}
.orderDetail tr th {
background: #eef1f6;
}
.orderDetail tr td,
.orderDetail tr th {
width: 500px;
text-align: center;
border: 1px solid #dfe6ec;
margin-left: 100px;
margin-right: 100px;
padding: 10px;
}
.label-value {
margin-left: 80px;
margin-right: 100px;
}
#license-img {
width: 50px;
height: 50px;
}
.order-details .el-form-item {
margin-bottom: 10px !important;
}
.modal_modal {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
opacity: 0.5;
background: #000;
z-index: 2000;
}
</style>
<template>
<div class="app-container calendar-list-container">
<div class="filter-container">
<el-form ref="queryForm" :model="listQuery" label-width="100px">
<el-row>
<el-col :span="5">
<el-form-item label="统计时间:">
<el-date-picker
v-model="listQuery.time"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="changeTime"
placeholder="请选择统计时间"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="统计方式:" class="wayMsg">
<span
v-for="(item,index) in way"
:key="index"
:class="{active:isactive==item.label}"
@click="changeWay(item)"
>{{item.label}}</span>
</el-form-item>
</el-col>
<el-col :span="5" style="float:right;text-align:right">
<el-button class="filter-item" type="primary" v-waves @click="handleFilter">导出为Excel</el-button>
</el-col>
</el-row>
</el-form>
<el-table
:data="list"
border
fit
highlight-current-row
style="width: 100%"
v-loading="loading"
>
<el-table-column align="center" label="时间">
<template scope="scope">
<span>{{scope.row.timeSlot}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="普通会员购买量">
<template scope="scope">
<span>{{scope.row.pNumber}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="支付金额(普通会员)">
<template scope="scope">
<span>{{scope.row.pAmount}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="黄金会员购买量">
<template scope="scope">
<span>{{scope.row.goldNumber}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="支付金额(黄金会员)">
<template scope="scope">
<span>{{scope.row.goldAmount}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="钻石会员购买量">
<template scope="scope">
<span>{{scope.row.hNumber}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="支付金额(钻石会员)">
<template scope="scope">
<span>{{scope.row.hAmount}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="总支付金额">
<template scope="scope">
<span>{{scope.row.totalPayment}}</span>
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="app-container calendar-list-container">
<div class="filter-container">
<el-form ref="queryForm" :model="listQuery" label-width="100px">
<el-row>
<el-col :span="5">
<el-form-item label="统计时间:">
<el-date-picker
v-model="listQuery.time"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="changeTime"
placeholder="请选择统计时间"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="统计方式:" class="wayMsg">
<span
v-for="(item,index) in way"
:key="index"
:class="{active:isactive==item.label}"
@click="changeWay(item)"
>{{item.label}}</span>
</el-form-item>
</el-col>
<el-col :span="5" style="float:right;text-align:right">
<el-button class="filter-item" type="primary" v-waves @click="handleFilter">导出为Excel</el-button>
</el-col>
</el-row>
</el-form>
<el-table :data="list" border fit highlight-current-row style="width: 100%" v-loading="loading">
<el-table-column align="center" label="时间">
<template scope="scope">
<span>{{scope.row.timeSlot}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="普通会员购买量">
<template scope="scope">
<span>{{scope.row.pNumber}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="支付金额(普通会员)">
<template scope="scope">
<span>{{scope.row.pAmount}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="黄金会员购买量">
<template scope="scope">
<span>{{scope.row.goldNumber}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="支付金额(黄金会员)">
<template scope="scope">
<span>{{scope.row.goldAmount}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="钻石会员购买量">
<template scope="scope">
<span>{{scope.row.hNumber}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="支付金额(钻石会员)">
<template scope="scope">
<span>{{scope.row.hAmount}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="总支付金额">
<template scope="scope">
<span>{{scope.row.totalPayment}}</span>
</template>
</el-table-column>
</el-table>
<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"
style="margin-top:20px"
></el-pagination>
</div>
</div>
</template>
<script>
import { orderStatistics, downloadExcel } from "api/order/rentVehicle";
import { orderStatistics, downloadExcel } from 'api/order/rentVehicle'
export default {
created() {
this.getList();
},
data() {
return {
loading: false,
list: [],
// 统计时间筛选
listQuery: {
time: "null",
type: "1",
startTime: null,
endTime: null
},
//统计方式筛选
way: [
{
label: "日统计",
id: "1"
},
{
label: "周统计",
id: "2"
},
{
label: "月统计",
id: "3"
}
],
isactive: "日统计"
};
},
methods: {
//统计时间筛选
changeTime() {
!!this.listQuery.time[0]
? (this.listQuery.startTime = this.listQuery.time[0].getTime())
: (this.listQuery.startTime = null);
!!this.listQuery.time[1]
? (this.listQuery.endTime = this.listQuery.time[1].getTime())
: (this.listQuery.endTime = null);
this.getList();
},
//统计方式筛选
changeWay(val) {
this.isactive = val.label;
this.listQuery.type = val.id;
this.getList();
},
//导出
handleFilter() {
downloadExcel(this.listQuery).then(res => {
const content = res;
const blob = new Blob([content]);
const fileName = "导出信息.xlsx";
if ("download" in document.createElement("a")) {
// 非IE下载
const elink = document.createElement("a");
elink.download = fileName;
elink.style.display = "none";
elink.href = URL.createObjectURL(blob);
document.body.appendChild(elink);
elink.click();
URL.revokeObjectURL(elink.href); // 释放URL 对象
document.body.removeChild(elink);
} else {
// IE10+下载
navigator.msSaveBlob(blob, fileName);
}
});
},
//列表
getList() {
let params = {};
this.loading = true;
orderStatistics(this.listQuery).then(data => {
console.log(data);
if (data.status == 200) {
data.data.forEach(element => {
for (let i in element.members) {
if (element.members[i].level == 1) {
element.pAmount = element.members[i].amount;
element.plevel = element.members[i].level;
element.pMemberName = element.members[i].memberName;
element.pNumber = element.members[i].number;
} else if (element.members[i].level == 2) {
element.goldAmount = element.members[i].amount;
element.goldlevel = element.members[i].level;
element.goldMemberName = element.members[i].memberName;
element.goldNumber = element.members[i].number;
} else if (element.members[i].level == 3) {
element.hAmount = element.members[i].amount;
element.hlevel = element.members[i].level;
element.hMemberName = element.members[i].memberName;
element.hNumber = element.members[i].number;
}
}
});
this.list = data.data;
}
setTimeout(() => {
this.loading = false;
}, 300);
});
}
}
};
created() {
this.getList()
},
data() {
return {
loading: false,
total: null,
list: [],
// 统计时间筛选
listQuery: {
time: 'null',
type: '1',
startTime: null,
endTime: null,
time: '',
limit: 10,
page: 1
},
//统计方式筛选
way: [
{
label: '日统计',
id: '1'
},
{
label: '周统计',
id: '2'
},
{
label: '月统计',
id: '3'
}
],
isactive: '日统计'
}
},
methods: {
//统计时间筛选
changeTime() {
!!this.listQuery.time[0]
? (this.listQuery.startTime = this.listQuery.time[0].getTime())
: (this.listQuery.startTime = null)
!!this.listQuery.time[1]
? (this.listQuery.endTime = this.listQuery.time[1].getTime())
: (this.listQuery.endTime = null)
this.getList()
},
//统计方式筛选
changeWay(val) {
this.isactive = val.label
this.listQuery.type = val.id
this.getList()
},
//导出
handleFilter() {
downloadExcel(this.listQuery).then(res => {
const content = res
const blob = new Blob([content])
const fileName = '导出信息.xlsx'
if ('download' in document.createElement('a')) {
// 非IE下载
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
} else {
// IE10+下载
navigator.msSaveBlob(blob, fileName)
}
})
},
handleSizeChange(val) {
this.listQuery.limit = val
this.getList()
},
handleCurrentChange(val) {
this.listQuery.page = val
this.getList()
},
//列表
getList() {
let params = {}
this.loading = true
orderStatistics(this.listQuery).then(data => {
if (data.status == 200) {
data.data.list.forEach(element => {
for (let i in element.members) {
if (element.members[i].level == 1) {
element.pAmount = element.members[i].amount
element.plevel = element.members[i].level
element.pMemberName =
element.members[i].memberName
element.pNumber = element.members[i].number
} else if (element.members[i].level == 2) {
element.goldAmount = element.members[i].amount
element.goldlevel = element.members[i].level
element.goldMemberName =
element.members[i].memberName
element.goldNumber = element.members[i].number
} else if (element.members[i].level == 3) {
element.hAmount = element.members[i].amount
element.hlevel = element.members[i].level
element.hMemberName =
element.members[i].memberName
element.hNumber = element.members[i].number
}
}
})
this.total = data.data.total;
this.list = data.data.list
}
setTimeout(() => {
this.loading = false
}, 300)
})
}
}
}
</script>
<style>
.wayMsg span {
margin: 10px;
cursor: pointer;
margin: 10px;
cursor: pointer;
}
.active {
color: #409eff;
font-weight: bold;
color: #409eff;
font-weight: bold;
}
</style>
\ No newline at end of file
......@@ -136,14 +136,14 @@
<template scope="scope">
<span>{{scope.row.startCompanyName}}</span>
<br />
<span>({{scope.row.orderRentVehicleDetail.startCityName}}{{scope.row.orderRentVehicleDetail.startAddr}})</span>
<span>({{scope.row.orderRentVehicleDetail.startAddr}})</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="收车公司">
<template scope="scope">
<span>{{scope.row.endCompanyName}}</span>
<br />
<span>({{scope.row.orderRentVehicleDetail.endCityName}}{{scope.row.orderRentVehicleDetail.endAddr}})</span>
<span>({{scope.row.orderRentVehicleDetail.endAddr}})</span>
</template>
</el-table-column>
<el-table-column width="110" align="center" label="订单金额">
......@@ -398,8 +398,9 @@
<span class="label-text">拍照取证*:</span>
<br />
<img
v-for="item in otherImg"
v-for="(item,index) in otherImg"
:src="item"
:key="index"
style="width: 100px; height: 100px;margin-left:110px;"
/>
<!-- <img src="../../../../dist/static/img/success.8304acb.png" style="width: 100px; height: 100px;margin-left:110px;"/>
......@@ -697,7 +698,6 @@ export default {
});
},
handleOrderDetail(row) {
debugger
this.form = row;
if (this.form.status == 2) {
this.form.ststusName = "取消";
......@@ -776,7 +776,7 @@ export default {
illegalEvent(params) {
this.illegalVisible = false;
if (params) {
console.log(params);
// console.log(params);
}
},
/**
......@@ -785,11 +785,11 @@ export default {
detailEvent(params) {
this.detailVisible = false;
if (params) {
console.log(params);
// console.log(params);
}
},
handleHandoverOrderVehicle(row) {
console.log(row);
// console.log(row);
this.modalTitle = "交车记录";
this.form = row;
if (this.form.status == 2) {
......@@ -838,7 +838,7 @@ export default {
},
getAllOrderVehicleCrosstown() {
getOrderVehicleCrosstown(this.orderVehicleQuery).then(response => {
console.log(response);
// console.log(response);
if (response.data.length <= 0) {
alert("交还车记录不存在");
} else {
......@@ -852,7 +852,7 @@ export default {
},
handleReturnOrderVehicle(row) {
console.log(row);
// console.log(row);
this.modalTitle = "还车记录";
this.form = row;
if (this.form.status == 2) {
......@@ -900,7 +900,7 @@ export default {
this.depositDetail = false;
},
handleRefundVehicle(row) {
console.log(row);
// console.log(row);
var that = this;
that.pictureList = [];
that.dedDetail = [];
......@@ -948,7 +948,7 @@ export default {
}
that.depositRefundRecord = arr;
console.log(that.depositRefundRecord);
// console.log(that.depositRefundRecord);
}
});
});
......@@ -1069,7 +1069,7 @@ export default {
page(this.listQuery).then(response => {
if (response.data.data) {
response.data.data.map(function(el) {
console.log(el);
// console.log(el);
if (el.status == 2) {
el.ststusName = "取消";
}
......@@ -1107,6 +1107,7 @@ export default {
handleCurrentChange(val) {
this.listQuery.page = val;
this.getList();
},
templateModel() {
this.costDetail = {
......
<template>
<div class="app-container calendar-list-container">
<div class="filter-container">
<el-form ref="queryForm" :inline="inline" :model="query" label-width="100px">
<el-row>
<el-form-item label="峰会名称">
<el-input v-model="query.title" placeholder="请输入峰会名称"></el-input>
</el-form-item>
<el-form-item label="开始时间">
<el-date-picker
v-model="query.startTime"
type="datetime"
format="yyyy-MM-dd HH"
placeholder="报名截止时间"
@change="changeTime"
></el-date-picker>
</el-form-item>
<el-form-item label="用户来源">
<el-select class="filter-item" v-model="query.status" placeholder="状态">
<el-option
v-for="(val,index) in status"
:key="index"
:label="val.name"
:value="val.id"
></el-option>
</el-select>
</el-form-item>
</el-row>
</el-form>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="createSummit">创建峰会</el-button>
</div>
<el-table
:key="tableKey"
:data="list"
v-loading="listLoading"
border
fit
highlight-current-row
style="width: 100%"
>
<el-table-column align="center" width="150px" label="id">
<template scope="scope">
<span>{{scope.row.id}}</span>
</template>
</el-table-column>
<el-table-column align="center" width="500px" label="标题">
<template scope="scope">
<span>{{scope.row.title}}</span>
</template>
</el-table-column>
<el-table-column align="center" width="400" label="开始-结束时间">
<template scope="scope">
<span>{{timestamp2Date(scope.row.startTime)}}</span>
<span>-</span>
<span>{{timestamp2Date(scope.row.endTime)}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="当前状态">
<template scope="scope">
<span>{{getStatusName(scope.row.status)}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="操作" fixed="right">
<template scope="scope">
<el-button
size="small"
class="el-button el-button--text el-button--small"
v-if="scope.row.isPublish===1"
@click="viewDetails({id:scope.row.id,isPublish:0})"
>取消发布</el-button>
<el-button
size="small"
class="el-button el-button--text el-button--small"
v-if="scope.row.isPublish===0"
@click="viewDetails({id:scope.row.id,isPublish:1})"
>发布</el-button>
<el-button
size="small"
class="el-button el-button--text el-button--small"
@click="enrollData(scope.row)"
>报名信息</el-button>
<!-- <el-button
<div class="app-container calendar-list-container">
<div class="filter-container">
<el-form ref="queryForm" :inline="inline" :model="query" label-width="100px">
<el-row>
<el-form-item label="峰会名称">
<el-input v-model="query.title" placeholder="请输入峰会名称"></el-input>
</el-form-item>
<el-form-item label="开始时间">
<el-date-picker
v-model="query.startTime"
type="datetime"
format="yyyy-MM-dd HH"
placeholder="报名截止时间"
@change="changeTime"
></el-date-picker>
</el-form-item>
<el-form-item label="峰会状态">
<el-select class="filter-item" v-model="query.status" placeholder="状态">
<el-option v-for="(val,index) in status" :key="index" :label="val.name" :value="val.id"></el-option>
</el-select>
</el-form-item>
</el-row>
</el-form>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="createSummit">创建峰会</el-button>
</div>
<el-table
:key="tableKey"
:data="list"
v-loading="listLoading"
border
fit
highlight-current-row
style="width: 100%"
>
<el-table-column align="center" width="150px" label="id">
<template scope="scope">
<span>{{scope.row.id}}</span>
</template>
</el-table-column>
<el-table-column align="center" width="500px" label="标题">
<template scope="scope">
<span>{{scope.row.title}}</span>
</template>
</el-table-column>
<el-table-column align="center" width="400" label="开始-结束时间">
<template scope="scope">
<span>{{timestamp2Date(scope.row.startTime)}}</span>
<span>-</span>
<span>{{timestamp2Date(scope.row.endTime)}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="当前状态">
<template scope="scope">
<span>{{getStatusName(scope.row.status)}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="操作" fixed="right">
<template scope="scope">
<el-button
size="small"
class="el-button el-button--text el-button--small"
v-if="scope.row.isPublish===1"
@click="viewDetails({id:scope.row.id,isPublish:0})"
>取消发布</el-button>
<el-button
size="small"
class="el-button el-button--text el-button--small"
v-if="scope.row.isPublish===0"
@click="viewDetails({id:scope.row.id,isPublish:1})"
>发布</el-button>
<el-button
size="small"
class="el-button el-button--text el-button--small"
@click="enrollData(scope.row)"
>报名信息</el-button>
<!-- <el-button
size="small"
class="el-button el-button--text el-button--small"
@click="applyPage(scope.row)"
>报名页面</el-button> -->
<el-button
class="el-button el-button--text el-button--small"
size="small"
@click="edit(scope.row)"
>编辑</el-button>
<el-button
size="small"
class="el-button el-button--text el-button--small"
@click="review(scope.row)"
>回顾页面</el-button>
<el-button
class="el-button el-button--text el-button--small"
style="color:red"
size="small"
v-if="scope.row.isPublish==0"
@click="deleteSummit(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
>报名页面</el-button>-->
<el-button
class="el-button el-button--text el-button--small"
size="small"
@click="edit(scope.row)"
>编辑</el-button>
<el-button
size="small"
class="el-button el-button--text el-button--small"
@click="review(scope.row)"
>回顾页面</el-button>
<el-button
class="el-button el-button--text el-button--small"
style="color:red"
size="small"
v-if="scope.row.isPublish==0"
@click="deleteSummit(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="query.page"
:page-sizes="[10,20,30, 50]"
:page-size="query.limit"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
></el-pagination>
</div>
<summitPopup
v-if="popupShow"
:popupRow="popupRow"
:titleNme="titleNme"
v-on:summitDialogEvent="summitDialogEvent"
/>
<enrollDataPopup
v-if="enrollShow"
:enrollRow="enrollRow"
v-on:enrollDialogEvent="enrollDialogEvent"
/>
<reviewPopup
v-if="reviewShow"
:reviewRow="reviewRow"
v-on:reviewDialogEvent="reviewDialogEvent"
/>
<div v-show="!listLoading" class="pagination-container">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="query.page"
:page-sizes="[10,20,30, 50]"
:page-size="query.limit"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
></el-pagination>
</div>
<summitPopup
v-if="popupShow"
:popupRow="popupRow"
:titleNme="titleNme"
v-on:summitDialogEvent="summitDialogEvent"
/>
<enrollDataPopup
v-if="enrollShow"
:enrollRow="enrollRow"
v-on:enrollDialogEvent="enrollDialogEvent"
/>
<reviewPopup v-if="reviewShow" :reviewRow="reviewRow" v-on:reviewDialogEvent="reviewDialogEvent" />
<!-- <applyPage :applyInfo='applyInfo'></applyPage> -->
</div>
<!-- <applyPage :applyInfo='applyInfo'></applyPage> -->
</div>
</template>
<script>
import { mapGetters } from "vuex";
import { timestamp2Date } from "src/utils/dateUtils";
import { page, update } from "src/api/summit/activity";
import summitPopup from "src/views/summit/model/summitPopup";
import enrollDataPopup from "src/views/summit/model/enrollDataPopup";
import reviewPopup from "src/views/summit/model/reviewPopup";
import { mapGetters } from 'vuex'
import { timestamp2Date } from 'src/utils/dateUtils'
import { page, update, remove } from 'src/api/summit/activity'
import summitPopup from 'src/views/summit/model/summitPopup'
import enrollDataPopup from 'src/views/summit/model/enrollDataPopup'
import reviewPopup from 'src/views/summit/model/reviewPopup'
// import applyPage from "src/views/summit/model/applyPage";
import { getToken } from "src/utils/auth";
import { getToken } from 'src/utils/auth'
export default {
name: "summitList",
components: {
summitPopup,
enrollDataPopup,
reviewPopup,
// applyPage
},
data() {
return {
applyInfo:{
dialogVisible:false,
},
query: {
page: 1,
limit: 10,
title: "",
startTime: "",
status: undefined,
type: 1
},
tableKey: 0,
list: [],
listLoading: true,
status: [
{ id: 0, name: "默认" },
{ id: 1, name: "报名中" },
{ id: 2, name: "进行中" },
{ id: 3, name: "已结束" }
],
total: 0,
inline: true,
popupShow: false,
titleNme: "创建峰会",
popupRow: undefined,
enrollRow: undefined,
enrollShow: false,
reviewRow: undefined,
reviewShow: false,
name: 'summitList',
components: {
summitPopup,
enrollDataPopup,
reviewPopup
// applyPage
},
data() {
return {
applyInfo: {
dialogVisible: false
},
query: {
page: 1,
limit: 10,
title: '',
startTime: '',
status: undefined,
type: 1
},
tableKey: 0,
list: [],
listLoading: true,
status: [
{ id: 0, name: '全部' },
{ id: 1, name: '报名中' },
{ id: 2, name: '进行中' },
{ id: 3, name: '已结束' }
],
total: 0,
inline: true,
popupShow: false,
titleNme: '创建峰会',
popupRow: undefined,
enrollRow: undefined,
enrollShow: false,
reviewRow: undefined,
reviewShow: false,
statusNameList: {
1: "默认",
2: "报名中",
3: "进行中",
4: "已结束"
}
};
},
created() {
this.getList();
},
computed: {
...mapGetters(["elements"]),
statusNameList: {
1: '默认',
2: '报名中',
3: '进行中',
4: '已结束'
}
}
},
created() {
this.getList()
},
computed: {
...mapGetters(['elements']),
getHeaderWithToken() {
return { Authorization: getToken() };
}
},
methods: {
//报名页面
// applyPage(){
// this.applyInfo.dialogVisible = true;
// },
getList() {
this.listLoading = true;
page(this.query).then(res => {
this.list = res.data.list;
this.total = res.data.total;
});
setTimeout(() => {
this.listLoading = false;
}, 500);
},
changeTime(val) {
!!val
? (this.query.startTime = Date.now(val))
: this.query.startTime == "";
},
handleFilter() {
this.getList();
},
viewDetails(row) {
update(row).then(res => {
if (res.rel) {
this.$notify.success({
title: "编辑成功",
message: `success`
});
this.getList();
} else {
this.$notify.warning({
title: "编辑失败",
message: `failed`
});
}
});
},
handleSizeChange(val) {
this.query.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.query.page = val;
this.getList();
},
timestamp2Date(timeStamp) {
return timestamp2Date(timeStamp);
},
enrollData(row) {
this.enrollRow = row;
this.enrollShow = true;
},
edit(row) {
// debugger;
this.popupRow = row;
this.titleNme = "编辑峰会";
this.popupShow = true;
},
createSummit() {
this.popupRow = {};
this.titleNme = "创建峰会";
this.popupShow = true;
},
review(row) {
this.reviewRow = row;
this.reviewShow = true;
},
deleteSummit() {},
getStatusName(status) {
return status + 1 ? this.statusNameList[status + 1] : "";
},
summitDialogEvent(e) {
this.popupShow = false;
if (e) {
this.getList();
}
},
enrollDialogEvent(e) {
this.enrollShow = false;
},
reviewDialogEvent(e) {
this.reviewShow = false;
}
}
};
getHeaderWithToken() {
return { Authorization: getToken() }
}
},
methods: {
//报名页面
// applyPage(){
// this.applyInfo.dialogVisible = true;
// },
getList() {
this.listLoading = true
page(this.query).then(res => {
this.list = res.data.list
this.total = res.data.total
})
setTimeout(() => {
this.listLoading = false
}, 500)
},
changeTime(val) {
!!val
? (this.query.startTime = Date.now(val))
: this.query.startTime == ''
},
handleFilter() {
this.getList()
},
viewDetails(row) {
update(row).then(res => {
if (res.rel) {
this.$notify.success({
title: '编辑成功',
message: `success`
})
this.getList()
} else {
this.$notify.warning({
title: '编辑失败',
message: `failed`
})
}
})
},
handleSizeChange(val) {
this.query.limit = val
this.getList()
},
handleCurrentChange(val) {
this.query.page = val
this.getList()
},
timestamp2Date(timeStamp) {
return timestamp2Date(timeStamp)
},
enrollData(row) {
this.enrollRow = row
this.enrollShow = true
},
edit(row) {
// debugger;
this.popupRow = row
this.titleNme = '编辑峰会'
this.popupShow = true
},
createSummit() {
this.popupRow = {}
this.titleNme = '创建峰会'
this.popupShow = true
},
review(row) {
this.reviewRow = row
this.reviewShow = true
},
deleteSummit(row) {
this.$confirm('此操作将删除该峰会, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
remove(row.id).then(data => {
if (data.status == 200) {
this.getList()
this.$message({
type: 'success',
message: '删除成功!'
})
} else {
this.$message({
type: 'error',
message: data.message
})
}
})
})
},
getStatusName(status) {
return status + 1 ? this.statusNameList[status + 1] : ''
},
summitDialogEvent(e) {
this.popupShow = false
if (e) {
this.getList()
}
},
enrollDialogEvent(e) {
this.enrollShow = false
},
reviewDialogEvent(e) {
this.reviewShow = false
}
}
}
</script>
......@@ -41,7 +41,7 @@
list-type="picture-card"
:file-list="list"
:on-success="handlePictureCardPreview"
:on-remove="handleRemove"
:on-remove="handleRemoveZip"
:before-upload="beforeAvatarUpload"
>
<i class="el-icon-plus"></i>
......@@ -64,11 +64,11 @@
>
<i class="el-icon-plus"></i>
</el-upload>
<video
<!-- <video
v-if="$utils.isString(form.videoPath) && !$utils.isEmpty(form.videoPath) && !imgFlag"
:src="form.videoPath"
style="width:300px;max-height:300px;"
/>
/>-->
<!-- <i
v-else-if="!imgFlag"
class="el-icon-plus avatar-uploader-icon"
......@@ -78,8 +78,8 @@
</el-col>
<el-col>
<el-form-item>
<el-button class="button" type="primary" @click="cre">确 定</el-button>
<el-button class="button" @click="cancelHandel">取 消</el-button>
<!-- <el-button class="button" type="primary" @click="cre">确 定</el-button> -->
</el-form-item>
</el-col>
</el-row>
......@@ -117,12 +117,14 @@ export default {
imgFlag: false,
BASE_API: process.env.BASE_API,
percent: 0, //上传进度
list: [],
list: [], //压缩包
oldList: '',
oldVadio: '',
vadio: [], //视频
activeId: '', //峰会id
form: {
id: undefined,
banner: undefined,
activityId: undefined,
banner: undefined,
videoPath: undefined,
picturePath: undefined
}
......@@ -142,54 +144,82 @@ export default {
return { Authorization: getToken() }
}
},
watch: {
dialogVisible(newValue, oldValue) {
if (!newValue) {
this.$emit('summitDialogEvent', this.result)
}
}
},
// watch: {
// dialogVisible(newValue, oldValue) {
// if (!newValue) {
// this.$emit('summitDialogEvent', this.result)
// }
// }
// },
mounted() {
this.getOrderInfo()
console.log(this.reviewRow)
},
methods: {
vidioSuccess(res) {
console.log(res)
this.$notify({
title: '成功',
message: res.message,
type: 'success',
duration: 2000
})
vidioSuccess(res, file, fileList) {
if (res.status == 200) {
this.$notify({
title: '提示',
message: res.message,
type: 'success',
duration: 2000
})
this.vadio = fileList
}
},
beforeAvatarUpload(file) {
const zip = file.type === 'application/zip'
if (!zip) {
this.$message.error('上传头像图片只能是 zip 格式!')
var index = file.name.lastIndexOf('.')
var ext = file.name.substr(index + 1)
console.log(ext)
if (ext != 'zip') {
this.$message.error('上传压缩包只能是 zip 格式!')
return false
}
return zip
return true
},
videoUpload(file) {
console.log(file.type)
const isJPG = file.type === 'video/mp4'
if (!isJPG) {
this.$message.error('上传头像图片只能是 mp4 格式!')
this.$message.error('上传压缩包只能是 mp4 格式!')
}
return isJPG
},
getOrderInfo() {
console.log(this.reviewRow.id)
one(this.reviewRow.id).then(res => {
this.form = res.data
this.activeId = res.data.id //峰会id
this.oldList = res.data.picturePath || '' //压缩包
this.oldVadio = res.data.videoPath || '' //视频
this.dialogVisible = true
this.imgDialogVisible = true
})
},
cre() {
console.log(this.form.picturePath)
save(this.form).then(res => {
let zipPic = []
this.list.forEach(element => {
zipPic.push(element.url)
})
let mp4Vadio = []
this.vadio.forEach(element => {
mp4Vadio.push(element.response.data)
})
let params = {
id: this.activeId, //回顾id
banner: this.form.banner,
activityId: this.reviewRow.id, //峰会id
videoPath: this.oldVadio
? mp4Vadio == ''
? this.oldVadio
: mp4Vadio.join(',') + ',' + this.oldVadio
: mp4Vadio.join(','),
picturePath: this.oldList
? zipPic == ''
? this.oldList
: zipPic.join(',') + ',' + this.oldList
: zipPic.join(',')
}
save(params).then(res => {
this.responseResult(res)
})
},
......@@ -242,20 +272,22 @@ export default {
this.form.videoPath = file.data
this.imgDialogVisible = true
},
handleRemoveZip(file, fileList) {
this.list = fileList
},
handleRemove(file, fileList) {
// console.log(file)
console.log(file, fileList)
this.vadio = fileList
},
handlePictureCardPreview(res, file) {
this.$notify({
title: '成功',
message: res.message,
type: 'success',
duration: 2000
})
this.list.push({ url: res.data })
// this.imgDialogVisible = true;
handlePictureCardPreview(res, file, fileList) {
if (res.status == 200) {
this.$notify({
title: '提示',
message: '上传成功',
type: 'success'
})
this.list = fileList
}
},
cleanForm() {
this.form = {
......
<template>
<el-dialog :title="title" :visible.sync="dialogVisible" class="order-details">
<el-dialog
:title="title"
:visible.sync="dialogVisible"
class="order-details"
:close-on-click-modal="false"
>
<div>
<!-- <el-form :model="ruleForm2" :rules="rules2" ref="ruleForm2" label-width="100px" class="demo-ruleForm"> -->
<el-form :model="form" ref="form" :rules="rules" label-width="120px">
<div>
<p style="padding:20px 0;border-bottom:1px solid #d9d9d9">基础信息</p>
<div class="steLine">
<el-row>
<el-col :span="12">
......@@ -77,11 +81,6 @@
<el-form-item style="display:inline-block;margin-left:-120px">
<el-input class="content" v-model="form.latitude" placeholder="纬度" style="width:100px"></el-input>
</el-form-item>
<!-- <el-col :span="6" class="content">
<el-form-item>
<el-input class="content" v-model="form.latitude" placeholder="纬度"></el-input>
</el-form-item>
</el-col>-->
</el-row>
<el-row>
<el-col :span="8">
......@@ -93,7 +92,7 @@
</el-form-item>
</el-col>
<el-col :span="9" v-if="form.state==='自定义'">
<el-radio-group v-model="form.status">
<el-radio-group v-model="statusRadio">
<el-radio class="status" :label="0">默认</el-radio>
<el-radio class="status" :label="1">报名中</el-radio>
<el-radio class="status" :label="2">进行中</el-radio>
......@@ -102,48 +101,54 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-col :span="12">
<el-form-item label="活动id:">
<el-input v-model="form.rid" placeholder="请输入签到/抽奖活动的id"></el-input>
<!-- <el-input v-model="form.rid" placeholder="请输入签到/抽奖活动的id"></el-input> -->
<el-select v-model="form.rid" placeholder="请选择签到/抽奖活动id">
<el-option
v-for="(item,index) in optionsId"
:key="index"
:label="item"
:value="item"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-tabs v-model="activeNameTab">
<el-tab-pane label="峰会主题" name="first">
<UE
:editorId="activeName"
:defaultMsg="form.content"
:config="config"
ref="ue"
@ready="editorReadyEvent"
></UE>
</el-tab-pane>
<el-tab-pane label="诚邀莅临" name="second">
<UE
:editorId="activeNameShare"
:defaultMsg="form.actDesc "
:config="config"
ref="ue"
@ready="editorReadyEventShare"
></UE>
</el-tab-pane>
<el-tab-pane label="公司简章" name="third">
<UE
:editorId="activeNameFirm"
:defaultMsg="form.companyDesc"
:config="config"
ref="ue"
@ready="editorReadyEventFirm"
></UE>
</el-tab-pane>
</el-tabs>
</div>
</div>
<div>
<p style="padding:20px 0;border-bottom:1px solid #d9d9d9">报名页面</p>
<div>
<el-row>
<el-col>
<el-form-item label="峰会主题:">
<UE
:editorId="activeName"
:defaultMsg="form.content"
:config="config"
ref="ue"
@ready="editorReadyEvent"
></UE>
</el-form-item>
<el-form-item label="诚邀莅临:" prop="name">
<UE
:editorId="activeNameShare"
:defaultMsg="form.actDesc "
:config="config"
ref="ue"
@ready="editorReadyEventShare"
></UE>
</el-form-item>
<el-form-item label="公司简章:" prop="name">
<UE
:editorId="activeNameFirm"
:defaultMsg="form.companyDesc"
:config="config"
ref="ue"
@ready="editorReadyEventFirm"
></UE>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item label="房车介绍:">
......@@ -165,12 +170,15 @@
<el-form-item label="峰会流程:">
<el-row class="height" v-for="(item, index) in processJson" :key="index">
<el-col :span="6">
<el-date-picker
<el-time-select
v-model="item.time"
type="datetime"
format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择时间"
></el-date-picker>
:picker-options="{
start: '06:00',
step: '00:15',
end: '23:59'
}"
placeholder="选择/输入时间"
></el-time-select>
</el-col>
<el-col :span="8">
<el-input class="content" v-model="item.content" placeholder="请输入内容"></el-input>
......@@ -213,7 +221,7 @@ import ElRow from 'element-ui/packages/row/src/row'
import ElInput from '../../../../node_modules/element-ui/packages/input/src/input.vue'
import ElCol from 'element-ui/packages/col/src/col'
import ElFormItem from '../../../../node_modules/element-ui/packages/form/src/form-item.vue'
import { getOne, update, add } from 'src/api/summit/activity'
import { getOne, update, add, activityIds } from 'src/api/summit/activity'
import { getToken } from 'src/utils/auth'
import { mapGetters } from 'vuex'
import UE from '../../modal/Ueditor' // 百度ue富文本
......@@ -230,6 +238,9 @@ export default {
},
data() {
return {
optionsId: [],
statusRadio: '0',
activeNameTab: 'first',
fileList2: [],
config: {
initialFrameWidth: null,
......@@ -256,21 +267,30 @@ export default {
longitude: undefined,
latitude: undefined,
state: '默认',
status: 0,
rid: undefined,
content: '', // 峰会主题
contentFirm: '',
actDesc: '', // 诚邀莅临
companyDesc: '', // 公司简章
vehicleImgs: [] // 房车介绍
vehicleImgs: [], // 房车介绍
processJson: []
},
result: false,
processJson: []
processJson: [{ time: undefined, content: '' }]
}
},
mounted() {
this.cleanForm()
this.getOrderInfo()
},
created() {
activityIds().then(data => {
if (data.status == 200) {
this.optionsId = data.data;
}
})
},
computed: {
...mapGetters(['elements']),
......@@ -303,12 +323,13 @@ export default {
getOne(this.popupRow.id).then(res => {
res.data.state = this.getState(res.data.status)
this.form = res.data
this.form.bmCloseTime = Number(res.data.bmCloseTime)
let introduce = this.form.vehicleImgs.split(',');
introduce.forEach(element => {
this.fileList2.push({name:'峰会介绍',url:element})
});
this.form = res.data
this.form.bmCloseTime = Number(res.data.bmCloseTime)
let introduce = this.form.vehicleImgs.split(',')
this.statusRadio = res.data.status
introduce.forEach(element => {
this.fileList2.push({ name: '峰会介绍', url: element })
})
if (res.data.processJson) {
this.processJson = JSON.parse(res.data.processJson)
}
......@@ -363,6 +384,7 @@ export default {
},
getState(status) {
if (this.$utils.isInteger(status)) {
console.log(status);
if (status == 0) {
return '默认'
} else {
......@@ -378,7 +400,7 @@ export default {
},
addTag() {
const t = {
time: undefined,
time: null,
content: ''
}
this.processJson.push(t)
......@@ -388,53 +410,114 @@ export default {
*
* */
update1() {
this.dataProcessing()
update(this.form).then(res => {
this.responseResult(res)
})
if (!this.form.title) {
this.$notify({
title: '失败',
message: '标题不能为空',
type: 'error',
duration: 2000
})
return false
} else if (!this.form.startTime) {
this.$notify({
title: '失败',
message: '开始时间不能为空',
type: 'error',
duration: 2000
})
} else if (!this.form.endTime) {
this.$notify({
title: '失败',
message: '结束时间不能为空',
type: 'error',
duration: 2000
})
} else if (!this.form.bmCloseTime) {
this.$notify({
title: '失败',
message: '报名截止时间不能为空',
type: 'error',
duration: 2000
})
} else {
typeof this.form.endTime == 'number'
? (this.form.endTime = this.form.endTime)
: (this.form.endTime = this.form.endTime.getTime())
typeof this.form.startTime == 'number'
? (this.form.startTime = this.form.startTime)
: (this.form.startTime = this.form.startTime.getTime())
typeof this.form.bmCloseTime == 'number'
? (this.form.bmCloseTime = this.form.bmCloseTime)
: (this.form.bmCloseTime = this.form.bmCloseTime.getTime())
let pic = []
if (!!this.form.vehicleImgs) {
this.form.vehicleImgs.forEach(element => {
pic.push(element.url)
})
this.form.vehicleImgs = pic.join(',')
}
this.form.processJson = this.processJson
update(this.form).then(res => {
this.responseResult(res)
})
this.dataProcessing()
}
},
create(formName) {
if (
!this.form.title ||
!this.form.startTime ||
!this.form.endTime
) {
create() {
if (!this.form.title) {
this.$notify({
title: '失败',
message: '必填项不能为空',
message: '标题不能为空',
type: 'error',
duration: 2000
})
return false
} else if (!this.form.startTime) {
this.$notify({
title: '失败',
message: '开始时间不能为空',
type: 'error',
duration: 2000
})
} else if (!this.form.endTime) {
this.$notify({
title: '失败',
message: '结束时间不能为空',
type: 'error',
duration: 2000
})
} else if (!this.form.bmCloseTime) {
this.$notify({
title: '失败',
message: '报名截止时间不能为空',
type: 'error',
duration: 2000
})
} else {
// this.form.processJson = this.processJson
this.form.endTime = this.form.endTime.getTime()
this.form.startTime = this.form.startTime.getTime()
this.form.bmCloseTime = this.form.bmCloseTime.getTime()
let pic = []
this.form.vehicleImgs.forEach(element => {
pic.push(element.url)
})
this.form.vehicleImgs = pic.join(',')
let demo = []
this.processJson.forEach(element => {
demo.push({
time:
formatDate(element.time, 'yyyy-MM-dd hh') +
':00:00',
content: element.content
if (!!this.form.vehicleImgs) {
this.form.vehicleImgs.forEach(element => {
pic.push(element.url)
})
})
this.form.processJson = demo
this.form.vehicleImgs = pic.join(',')
}
this.dataProcessing()
add(this.form).then(res => {
this.responseResult(res)
})
this.dataProcessing()
}
},
dataProcessing() {
if (this.form.state === '默认') {
this.form.status = 0
this.form.status = '0'
}else{
this.form.status = this.statusRadio
}
this.form.processJson = JSON.stringify(this.processJson)
},
......@@ -489,7 +572,8 @@ export default {
contentFirm: '',
actDesc: '', // 诚邀莅临
companyDesc: '', // 公司简章
vehicleImgs: [] // 房车介绍
vehicleImgs: [], // 房车介绍
processJson: []
}
}
}
......
......@@ -42,6 +42,13 @@
<img class="image" :src="scope.row.bigIcon" />
</span>
</template>
</el-table-column>
<el-table-column align="center" label="商品图片">
<template scope="scope">
<span>
<img class="image" :src="scope.row.itemImg" />
</span>
</template>
</el-table-column>
<el-table-column align="center" label="折扣">
<template scope="scope">
......@@ -210,6 +217,29 @@
</el-upload>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="商品图片" :style="{display:'block'}">
<el-upload
class="upload-demo"
:headers="getHeaderWithToken"
:action="BASE_API+'/api/universal/file/app/unauth/admin/upload'"
:show-file-list="false"
:on-success="product"
list-type="picture"
>
<img
v-if="$utils.isString(add.itemImg) && !$utils.isEmpty(add.itemImg)"
:src="add.itemImg"
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>
</el-upload>
</el-form-item>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelSetMemberArea('membershipGrade')">取消</el-button>
......@@ -250,7 +280,8 @@ export default {
price: undefined,
endDate: undefined,
icon: undefined,
bigIcon: null
bigIcon: null,
itemImg:null
},
endDatelist: [
{ id: 0, name: "永久" },
......@@ -336,7 +367,8 @@ export default {
price: row.price,
endDate: row.endDate,
icon: row.icon,
bigIcon: row.bigIcon
bigIcon: row.bigIcon,
itemImg:row.itemImg
};
this.activeId = row.id
},
......@@ -445,6 +477,10 @@ export default {
//大图标
handleAvatarSuccessBig(res) {
this.add.bigIcon = res.data;
},
//商品展示
product(res) {
this.add.itemImg = res.data;
}
}
};
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -17,7 +17,7 @@
<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"
<el-option v-for="(val,index) in getAllVehicleStatus() " :key="index" :label="val.val"
:value="val.code"></el-option>
</el-select>
</el-form-item>
......@@ -92,7 +92,7 @@
<el-form-item label="保险公司" prop="insuranceCompany">
<el-select class="filter-item" v-model="listQuery.insuranceCompany" placeholder="请选择保险公司">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="(val, key, index) in getAllInsuranceCompany() " :key="val.code" :label="val.val"
<el-option v-for="(val, index ) in getAllInsuranceCompany() " :key="index" :label="val.val"
:value="val.code"></el-option>
</el-select>
</el-form-item>
......@@ -345,7 +345,7 @@
<!-- 对话框相关html元素 -->
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" @close='closePop'>
<el-form :model="form" :rules="rules" ref="form" label-width="90px">
<el-row>
......@@ -369,7 +369,7 @@
<el-col :span="12">
<el-form-item label="车辆状态" prop="status">
<el-select class="filter-item" v-model="form.status" placeholder="请选择车辆状态">
<el-option v-for="(val, key, index) in getAllVehicleStatus() " :key="val.code" :label="val.val"
<el-option v-for="(val,index ) in getAllVehicleStatus() " :key="index" :label="val.val"
:value="val.code"></el-option>
</el-select>
</el-form-item>
......@@ -396,7 +396,7 @@
<el-col :span="12">
<el-form-item label="所属人">
<el-select v-model.number="form.belongTo" placeholder="请选择所属人">
<el-option v-for="(val, key, index) in getAllBelong2Type() " :key="val.code" :label="val.val"
<el-option v-for="(val,index ) in getAllBelong2Type() " :key="index" :label="val.val"
:value="val.code"></el-option>
</el-select>
<el-input v-if="typeof(form.belongTo) !== 'undefined' && form.belongTo != 1" v-model="form.belongToName"
......@@ -409,7 +409,7 @@
<el-form-item label="保险公司" prop="insuranceCompany">
<el-select class="filter-item" v-model="form.insuranceCompany" placeholder="请选择保险公司">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="(val, key, index) in getAllInsuranceCompany() " :key="val.code" :label="val.val"
<el-option v-for="(val, index) in getAllInsuranceCompany() " :key="index" :label="val.val"
:value="val.code"></el-option>
</el-select>
</el-form-item>
......@@ -638,7 +638,7 @@
<el-form-item label="用途" prop="bookType">
<el-select class="filter-item" v-model="form4Apply.bookType" placeholder="请选择用途">
<el-option :key="undefined" label="" :value="undefined"></el-option>
<el-option v-for="(val, key, index) in book_type_list " :key="val.id" :label="val.name"
<el-option v-for="(val, index) in book_type_list " :key="index" :label="val.name"
:value="val.id"></el-option>
</el-select>
</el-form-item>
......@@ -895,6 +895,7 @@
}
//检验code码
checkCode(value, this.form.id).then(response => {
// console.log(response.data);
if (response.data === true) {
return callback(new Error("该车辆编码已经被占用,请重新输入"));
} else {
......@@ -911,17 +912,18 @@
min: 0,
max: 200,
message: '长度小于 200 个字符',
trigger: 'blur'
}
],
numberPlate: [
{
min: 0,
max: 20,
message: '长度小于 20 个字符',
trigger: 'blur'
trigger: 'blur',
}
],
numberPlate: [
{
min: 0,
max: 20,
trigger: 'blur',
message: '车牌不能为空且长度小于20个字符',
required: true
}
],
remark: [
{
min: 0,
......@@ -1241,7 +1243,8 @@
return getSonRegionByCodes(this.listQuery.addrProvince);
},
getAllZoneList() {
this.allZoneArr = getAllZone();
let that = this;
that.allZoneArr = getAllZone();
return getAllZone();
},
townRegions4Query() {
......@@ -1455,11 +1458,11 @@
},
queryVehicleModelSearch(queryString, cb) {
let selectArry = [];
let iitem = {
value: "全部",
name: "全部"
};
selectArry.push(iitem);
// let iitem = {
// value: "全部",
// name: "全部"
// };
// selectArry.push(iitem);
this.allVehicleList.map(function (item) {
item.value = item.name;
selectArry.push(item);
......@@ -2027,6 +2030,10 @@
this.dialogFormVisible = false;
this.dialogForm4ApplyVisible = false;
this.$refs[formName].resetFields();
// this.listQuery.code = ''
},
closePop(formName){
this.$refs.form.resetFields();
},
cancel4Apply(formName) {
this.dialogForm4ApplyVisible = false;
......
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