Commit e0fb6fa7 authored by xiaosl's avatar xiaosl

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

Conflicts:
	config/dev.env.js
	src/views/vehicle/vehicleInfo/index.vue
parents 4a7325f2 4ae432b1
module.exports = {
NODE_ENV: '"development"',
<<<<<<< HEAD
<<<<<<< HEAD
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(小威)
=======
BASE_API:'"https://xxtest.upyuns.com"',//'"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(小威)
>>>>>>> ed66af1f93f55e2551b0b09c15e1697c72ecb84b
=======
BASE_API:'"https://xxtest.upyuns.com"',//'"https://xxtest.upyuns.com"',//'"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(小威)
>>>>>>> 4ae432b1473866a6dc59f10c1ec4b5c66a9ad5cc
APP_ORIGIN: '"https://wallstreetcn.com"'
}
......@@ -11264,6 +11264,22 @@
"resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.3.2.tgz",
"integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE="
},
"v-viewer": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/v-viewer/-/v-viewer-1.4.2.tgz",
"integrity": "sha512-WEslW+dKPHg10f9jl1v0ilH0uk4ZFOz4vUp4wJjomwl+VQEnsWLjSzHCeFoayxjE9KyZspVu9lYLNxk+o3xzkw==",
"requires": {
"throttle-debounce": "^2.0.1",
"viewerjs": "^1.3.2"
},
"dependencies": {
"throttle-debounce": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.1.0.tgz",
"integrity": "sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg=="
}
}
},
"validate-npm-package-license": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
......@@ -11295,6 +11311,11 @@
"extsprintf": "^1.2.0"
}
},
"viewerjs": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/viewerjs/-/viewerjs-1.4.0.tgz",
"integrity": "sha512-HTtR44rzdX76VrDfZGaYNciUL3EEexGX4HkvdJHP0VFSR+d2I/ZXFqdx6Q4Cc+X5VwhEf0Fx1Hi3wQy7msmKOA=="
},
"vm-browserify": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
......
......@@ -98,6 +98,17 @@ export function calculate(no, params) {
});
}
/**
* @param {Object} no
* @param {Object} params计算违约价格
*/
export function getViolatePrice(no) {
return fetch({
url: '/api/order/orderRefund/bg-stage/getViolatePrice/'+ no,
method: 'get',
});
}
//创建订单
export function orderStatistics(params) {
return fetch({
......@@ -112,7 +123,34 @@ export function downloadExcel(params) {
return fetch({
url: '/api/order/orderStatistics/excel',
method: 'post',
data:params,
data: params,
responseType: 'blob'
});
}
//会员订单管理列表
export function pageList(params) {
return fetch({
url: '/api/order/orderMember/page',
method: 'post',
data: params
});
}
//会员订单管理导出
export function orderMemberExcel(params) {
return fetch({
url: '/api/order/orderMember/export',
method: 'post',
data: params,
responseType: 'blob'
});
}
//用户信息
export function user_info(id) {
return fetch({
url: '/api/admin/appUsersManage/user_info/' + id,
method: 'get'
});
}
\ No newline at end of file
......@@ -71,3 +71,21 @@ export function editObj(obj) {
params: obj
});
}
// 禁止||允许提现
export function forbidden(query) {
return fetch({
url: '/api/admin/wallet/admin/forbidden',
method: 'put',
params: query
});
}
// 佣金记录
export function recordList(params) {
return fetch({
url: 'api/admin/sellingwater/admin/page',
method: 'post',
data: params
});
}
......@@ -113,4 +113,13 @@ export function checkEngineNum(engineNum, id) {
url: '/vehicle/vehicleInfo/exist_engineNum/' + engineNum + '?id=' + id,
method: 'get'
});
}
\ No newline at end of file
}
export function downloadExcel(query) {
return fetch({
url: '/vehicle/VehicleInformationDownload/excel',
method: 'get',
params: {vehiclePageQueryVoJson: query},
responseType: 'blob'
});
}
......@@ -162,3 +162,71 @@ export function upStatusChange(query) {
method: 'put'
});
}
// 日历价格月份查询
export function priceList(month) {
return fetch({
url: '/vehicle/admin/vehicle_model/calendar_price/month?date=' + month,
method: 'get'
});
}
// 日历价格具体日期查询
export function dayList(day) {
return fetch({
url: '/vehicle/admin/vehicle_model/calendar_price/day?date=' + day,
method: 'get'
});
}
// 日历价格设置
export function add_edit(params) {
return fetch({
url: '/vehicle/admin/vehicle_model/calendar_price/add_edit',
method: 'post',
data: params
});
}
// 会员等级
export function levels() {
return fetch({
url: 'api/admin/member/app/unauth/levels',
method: 'get'
});
}
// 节假日设置
export function add_edit_set(params) {
return fetch({
url: '/vehicle/admin/vehicle_model/holiday_price/add_edit',
method: 'post',
data: params
});
}
// 节假日列表
export function pageList(params) {
return fetch({
url: '/vehicle/admin/vehicle_model/holiday_price/page',
method: 'post',
data: params
});
}
// 节假日删除
export function deleteList(id) {
return fetch({
url: '/vehicle/admin/vehicle_model/holiday_price/'+id,
method: 'delete'
});
}
// 通用规则设置
export function rule(query) {
return fetch({
url: 'vehicle/admin/vehicle_model/holiday_price/update',
method: 'put',
params: query
});
}
\ No newline at end of file
......@@ -64,7 +64,13 @@ import '../static/utf8-jsp/ueditor.config.js'
import '../static/utf8-jsp/ueditor.all.min.js'
import '../static/utf8-jsp/lang/zh-cn/zh-cn.js'
import '../static/utf8-jsp/ueditor.parse.min.js'
import Viewer from 'v-viewer'
import 'viewerjs/dist/viewer.css'
Vue.use(Viewer, {
defaultOptions: {
zIndex: 9999
}
})
// register globally
Vue.component('multiselect', Multiselect);
Vue.component('Sticky', Sticky);
......
......@@ -300,6 +300,12 @@ export const asyncRouterMap = [{
component: _import('vehicleType/priceList'),
name: '租车价格表',
authority: 'priceList'
},
{
path: 'mockSun',
component: _import('vehicleType/mockSun'),
name: '节日价格',
authority: 'mockSun'
}
]
},
......@@ -379,12 +385,12 @@ export const asyncRouterMap = [{
name: '车辆排班记录',
authority: 'vehicleRecords'
},
{
path: 'vehicleCount',
component: _import('vehicle/vehicleCount/index'),
name: '车辆出行统计',
authority: 'vehicleCount'
},
{
path: 'vehicleCount',
component: _import('vehicle/vehicleCount/index'),
name: '车辆出行统计',
authority: 'vehicleCount'
}
// {
// path: 'dispatchApply',
// component: _import('vehicle/dispatchApply/index'),
......@@ -483,6 +489,12 @@ export const asyncRouterMap = [{
component: _import('purseManage/discountRecord'),
name: '提现记录',
authority: 'discountRecord'
},
{
path: 'commissionRecord',
component: _import('purseManage/commissionRecord'),
name: '佣金记录',
authority: 'commissionRecord'
}
]
},
......@@ -515,7 +527,7 @@ export const asyncRouterMap = [{
path:'imCustomerServiceManger',
component: _import('userManagement/imCustomerServiceManger/cusomterServiceList'),
name:'客服列表',
authority: 'imCustomerServiceManger'
authority: 'imCustomerServiceManger'
},{
path: 'employeesInput',
component: _import('userManagement/employeesInput'),
......
......@@ -85,7 +85,15 @@ const baseInfo = {
5: {
code: 5,
val: '保养'
}
},
6: {
code: 6,
val: '维修中'
},
7: {
code: 7,
val: '保养中'
}
},
codeAndBranchCompany: {},
bookRecordStatusAndCode: {
......
This diff is collapsed.
......@@ -39,6 +39,7 @@
<span v-if="scope.row.channel==1">租车</span>
<span v-if="scope.row.channel==2">旅游</span>
<span v-if="scope.row.channel==3">营地</span>
<span v-if="scope.row.channel==4">会员</span>
</template>
</el-table-column>
<el-table-column align="center" label="金额">
......@@ -119,6 +120,7 @@
<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-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" :picker-options="pickerOptionsStart"></el-date-picker>
......@@ -328,6 +330,10 @@
{
id:3,
val:'营地'
},
{
id:4,
val:'会员'
}
],
BASE_API: process.env.BASE_API,
......@@ -448,7 +454,7 @@
console.log(response)
var item = response.data;
item.user_type_name = item.userType==0?'普通用户':'会员用户';
item.valid_type_name = item.validType==1?'绝对时效':'相对时效';
item.valid_type_name = item.validType==1?'绝对时效':item.validType==2?'相对时效':'永久时效';
//相对时效的时间
if(item.validStartTime>0){
item.validStartTimeStr = getYMD(item.validStartTime);
......@@ -517,7 +523,7 @@
set[formName].validate(valid => {
if (valid) {
that.formdata.userType = that.formdata.user_type_name=='普通用户'?0:1;
that.formdata.validType = that.formdata.valid_type_name=='绝对时效'?1:2;
that.formdata.validType = that.formdata.valid_type_name=='绝对时效'?1:that.formdata.valid_type_name=='相对时效'?2:3;
if(that.formdata.valid_type_name=='绝对时效'){
that.formdata.validStartTime = new Date(this.formdata.validStartTimeStr).getTime();
that.formdata.validEndTime = new Date(this.formdata.validEndTimeStr).getTime();
......@@ -582,7 +588,7 @@
set[formName].validate(valid => {
if (valid) {
that.formdata.userType = that.formdata.user_type_name=='普通用户'?0:1;
that.formdata.validType = that.formdata.valid_type_name=='绝对时效'?1:2;
that.formdata.validType = that.formdata.valid_type_name=='绝对时效'?1:that.formdata.valid_type_name=='相对时效'?2:3;
if(that.formdata.valid_type_name=='绝对时效'){
that.formdata.validStartTime = new Date(that.formdata.validStartTimeStr).getTime();
......
......@@ -65,6 +65,9 @@
<el-col :span="5">
<el-form-item label="手机号:" :prop="isHave === true ? domains.tel : ''">
<el-input v-model="listQuery.tel" placeholder="请输入手机号" @blur="lose"></el-input>
</el-form-item>
<el-form-item label="促成人手机号:" :prop="isHave === true ? domains.facilitatePhone : ''">
<el-input v-model="listQuery.facilitatePhone" placeholder="请输入促成人手机号"></el-input>
</el-form-item>
<el-form-item label="车损免赔:" :prop="isHave === true ? domains.damageSafe : ''">
<el-radio-group v-model="listQuery.damageSafe">
......@@ -136,7 +139,8 @@ export default {
modelId: "modelId",
tel: "tel",
damageSafe: "damageSafe",
rentFreeDay: "rentFreeDay"
rentFreeDay: "rentFreeDay",
facilitatePhone:'facilitatePhone'
},
rules: {
startCompanyId: [
......@@ -250,7 +254,7 @@ export default {
endCityName: this.listQuery.startCityName, //还车城市名称
endCompanyId: this.listQuery.endCompanyIds, //还车公司id
endTime: this.listQuery.time[1].getTime(), //结束时间
facilitatePhone:this.listQuery.facilitatePhone,//促成人手机号
modelId: this.listQuery.modelId, //车型
startAddr: this.listQuery.endEndAddr, //取车地点
startCity: this.listQuery.endAddrCity, //取车城市编号
......
This diff is collapsed.
......@@ -83,7 +83,7 @@
:page-size="listQuery.limit"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
style="margin-top:20px"
style="margin-top:20px"
></el-pagination>
</div>
</div>
......@@ -136,12 +136,14 @@ export default {
!!this.listQuery.time[1]
? (this.listQuery.endTime = this.listQuery.time[1].getTime())
: (this.listQuery.endTime = null)
this.listQuery.page = 1
this.getList()
},
//统计方式筛选
changeWay(val) {
this.isactive = val.label
this.listQuery.type = val.id
this.listQuery.page = 1
this.getList()
},
//导出
......@@ -202,8 +204,8 @@ export default {
element.hNumber = element.members[i].number
}
}
})
this.total = data.data.total;
})
this.total = data.data.total
this.list = data.data.list
}
setTimeout(() => {
......@@ -223,4 +225,4 @@ export default {
color: #409eff;
font-weight: bold;
}
</style>
\ No newline at end of file
</style>
<template>
<el-dialog title="订单详情" :visible.sync="isVisible">
<el-form>
<el-row>
<el-col :span="12">
<el-form-item label="订单号">
<span>{{row.no}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="支付时间">
<span>{{row.updTime}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="订单状态">
<span v-if="row.status == '2'">取消</span>
<span v-if="row.status == '3'">待付款</span>
<span v-if="row.status == '4'">待出行</span>
<span v-if="row.status == '5'">出行中</span>
<span v-if="row.status == '6'">已完成</span>
<span v-if="row.status == '-1'">定损中</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="用户ID/实名">
<span>{{row.userId}}</span>/<span>{{row.username}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="配车">
<span>{{row.vehicleNumberPlat}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="取车">
<span>{{dateFormat(row.orderRentVehicleDetail.startTime)}}</span>
<span>{{row.orderRentVehicleDetail.startCityName}}{{row.orderRentVehicleDetail.startAddr}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="交车公司">
<span>{{row.startCompanyName}}</span>
<span>({{row.orderRentVehicleDetail.startCityName}}{{row.orderRentVehicleDetail.startAddr}})</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="还车">
<span>{{dateFormat(row.orderRentVehicleDetail.endTime)}}</span>
<span>{{row.orderRentVehicleDetail.endCityName}}{{row.orderRentVehicleDetail.endAddr}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="收车公司">
<span>{{row.endCompanyName}}</span>
<!--<span>({{row.orderRentVehicleDetail.endCityName}}{{row.orderRentVehicleDetail.endAddr}})</span></span>-->
</el-form-item>
</el-col>
</el-row>
<!--<el-table :data="tableData" border fit highlight-current-row style="width: 100%">
<el-dialog title="订单详情" :visible.sync="isVisible">
<el-form>
<el-row>
<el-col :span="12">
<el-form-item label="订单号">
<span>{{row.no}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="支付时间">
<span>{{row.updTime}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="订单状态">
<span v-if="row.status == '2'">取消</span>
<span v-if="row.status == '3'">待付款</span>
<span v-if="row.status == '4'">待出行</span>
<span v-if="row.status == '5'">出行中</span>
<span v-if="row.status == '6'">已完成</span>
<span v-if="row.status == '-1'">定损中</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="用户ID/实名">
<span>{{row.userId}}</span>/
<span>{{row.username}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="配车">
<span>{{row.vehicleNumberPlat}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="取车">
<span>{{dateFormat(row.orderRentVehicleDetail.startTime)}}</span>
<span>{{row.orderRentVehicleDetail.startCityName}}{{row.orderRentVehicleDetail.startAddr}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="交车公司">
<span>{{row.startCompanyName}}</span>
<span>({{row.orderRentVehicleDetail.startCityName}}{{row.orderRentVehicleDetail.startAddr}})</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="还车">
<span>{{dateFormat(row.orderRentVehicleDetail.endTime)}}</span>
<span>{{row.orderRentVehicleDetail.endCityName}}{{row.orderRentVehicleDetail.endAddr}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="收车公司">
<span>{{row.endCompanyName}}</span>
<!--<span>({{row.orderRentVehicleDetail.endCityName}}{{row.orderRentVehicleDetail.endAddr}})</span></span>-->
</el-form-item>
</el-col>
</el-row>
<!--<el-table :data="tableData" border fit highlight-current-row style="width: 100%">
<el-table-column width="200" align="center" label="房车">
<template scope="scope">
<span>{{scope.no}}</span>
</template>
</el-table-column>
</el-table>-->
</el-form>
</el-table>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="sure">确 定</el-button>
</div>
</el-dialog>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="sure">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
import {
page,
saveOrderViolation
} from 'api/order/rentVehicle';
import {mapGetters} from 'vuex';
import {
formatDate
} from '../../../utils/dateFormattor';
import {
getToken
} from '../../../utils/auth';
import {
getOneIllegalRow
} from 'api/order/rentVehicle';
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";
export default {
props: ["row"],
name: 'illegalDialog',
components: {
ElForm,
ElFormItem,
ElCol,
ElInput,
ElRow
},
data() {
return {
isVisible: false,
tableData:[],
}
},
created() {
console.log(JSON.stringify(this.row))
},
watch: {
isVisible(newValue, oldValue){
if(!newValue){
this.$emit('detailEvent', false);
}
},
},
mounted() {
let that = this;
this.isVisible = true;
},
computed: {
...mapGetters([
'elements',
]),
getHeaderWithToken() {
return {Authorization: getToken()};
}
},
methods: {
/**
* 弹框-取消
* */
cancel() {
this.$emit('detailEvent', false);
},
sure:function(){
this.$emit('detailEvent', false);
},
/**
* 格式化时间
* @param timestamp
* @returns {*}
*/
dateFormat(timestamp) {
let date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
return formatDate(date, 'yyyy-MM-dd hh:mm');
},
}
}
import { page, saveOrderViolation } from 'api/order/rentVehicle'
import { mapGetters } from 'vuex'
import { formatDate } from '../../../utils/dateFormattor'
import { getToken } from '../../../utils/auth'
import { getOneIllegalRow } from 'api/order/rentVehicle'
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'
export default {
props: ['row'],
name: 'illegalDialog',
components: {
ElForm,
ElFormItem,
ElCol,
ElInput,
ElRow
},
data() {
return {
isVisible: false,
tableData: []
}
},
created() {
console.log(JSON.stringify(this.row))
},
watch: {
isVisible(newValue, oldValue) {
if (!newValue) {
this.$emit('detailEvent', false)
}
}
},
mounted() {
let that = this
this.isVisible = true
},
computed: {
...mapGetters(['elements']),
getHeaderWithToken() {
return { Authorization: getToken() }
}
},
methods: {
/**
* 弹框-取消
* */
cancel() {
this.$emit('detailEvent', false)
},
sure: function() {
this.$emit('detailEvent', false)
},
/**
* 格式化时间
* @param timestamp
* @returns {*}
*/
dateFormat(timestamp) {
let date = new Date(timestamp) //时间戳为10位需*1000,时间戳为13位的话不需乘1000
return formatDate(date, 'yyyy-MM-dd hh:mm')
}
}
}
</script>
<style>
.el-form-item__content{
display: inline-block;
}
.el-form-item__content {
display: inline-block;
}
</style>
This diff is collapsed.
......@@ -108,9 +108,15 @@
<span v-if="scope.row.status == '6'">已完成</span>
</template>
</el-table-column>
<el-table-column width="110" align="center" label="订单详情" fixed="right">
<el-table-column width="200" align="center" label="订单详情" fixed="right">
<template scope="scope">
<span style="color: #13CE66;cursor: pointer;" @click="handleBuy(scope.row)">订单详情</span>
<el-button
size="small"
v-if="scope.row.status == 3 || scope.row.status == 4"
class="el-button el-button--text el-button--small"
@click="handleViolatePrice(scope.row)"
>取消订单</el-button>
</template>
</el-table-column>
</el-table>
......@@ -124,7 +130,25 @@
<tourOrderDetailModal :tourRow="tourRow" :insureDetail="insureDetail" v-if="tourDialogVisible"
:tourCostDetail="tourCostDetail"
v-on:tourOrderDetailDialogEvent="tourOrderDetailDialogEvent"></tourOrderDetailModal>
</div>
<el-dialog title="取消订单" :visible.sync="showDialog">
<el-form>
<el-form-item label="违约金金额:" >
<el-input v-model="violateAmount" type="number" @blur="checkViolateAmount()" auto-complete="off"></el-input>
</el-form-item>
<el-form-item>
<span class="label-text">实际违约金是{{changeViolateAmount}}元</span>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click = "handleCancelDialog()">取 消</el-button>
<el-button type="primary" @click = "handleConfirm()">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
......@@ -133,7 +157,9 @@
import {
page,
getAllBranchCompany,
getAllBranchCompanyByZoneId
getAllBranchCompanyByZoneId,
calculate,
getViolatePrice
} from 'api/order/rentVehicle';
import {mapGetters} from 'vuex';
import rsCode from '../../../utils/rsCode';
......@@ -155,6 +181,11 @@
},
data() {
return {
showDialog:false,
changeViolateAmount:null,
violateAmount: null,
row:null,
topAmount: null,
form: {
couponAmount: undefined,
crtHost: undefined,
......@@ -286,6 +317,36 @@
}
},
created() {
let t = this;
let query = localStorage.getItem("tourOrderInfo");
this.listQuery.no = this.$route.query.id || null
if(query !="null" && query){
let queryJson = JSON.parse(query);
if(queryJson.page){
t.listQuery.page = queryJson.page;
}
if(queryJson.limit){
t.listQuery.limit = queryJson.limit;
}
if(queryJson.no){
t.listQuery.no = queryJson.no;
}
if(queryJson.type){
t.listQuery.type = queryJson.type;
}
if(queryJson.startTime){
t.listQuery.startTime = queryJson.startTime;
}
if(queryJson.endTime){
t.listQuery.endTime = queryJson.endTime;
}
if(queryJson.status){
t.listQuery.status = queryJson.status;
}
if(queryJson.phone){
t.listQuery.phone = queryJson.phone;
}
}
this.getList();
this.btn_del = this.elements['branchCompany/stockApply:btn_delete'];
},
......@@ -338,6 +399,128 @@
this.tourRow = row;
this.tourDialogVisible = true;
},
/**
* 取消订单
*/
//取消订单
cancel(row, changeViolateAmount) {
let that = this;
if (changeViolateAmount == null || changeViolateAmount == 0) {
this.$confirm('此操作将取消该订单, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let params = {
cancelReason: '后台取消',
appUserId: row.userId,
changeViolateAmount: null
}
calculate(row.no, params).then(data => {
if (data.status == 200) {
this.$notify({
title: '成功',
message: '取消订单成功',
type: 'success',
duration: 2000
})
this.getList()
} else {
this.$notify({
title: '失败',
message: '取消订单失败',
type: 'fail',
duration: 2000
})
}
})
})
} else {
// this.$prompt('请输入违约金', '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// inputPattern: /^[0-9]*$/,
// inputErrorMessage: '只能输入数字'
// }).then(({ value }) => {
// this.$message({
// type: 'success',
// message: '你的邮箱是: ' + value
// });
// }).catch(() => {
// this.$message({
// type: 'info',
// message: '取消输入'
// });
// });
that.showDialog = true
that.changeViolateAmount = changeViolateAmount
that.violateAmount = changeViolateAmount
that.row = row
}
},
checkViolateAmount() {
console.log(this.topAmount)
console.log(this.violateAmount)
if(this.topAmount < this.violateAmount) {
this.$notify({
title: '失败',
message: '违约金额不能大于最高限制金额' + this.topAmount,
type: 'fail',
duration: 2000
})
}
},
handleConfirm() {
let params = {
cancelReason: '后台取消',
appUserId: this.row.userId,
changeViolateAmount: this.violateAmount
}
calculate(this.row.no, params).then(data => {
if (data.status == 200) {
this.$notify({
title: '成功',
message: '取消订单成功',
type: 'success',
duration: 2000
})
this.showDialog = false
this.getList()
} else {
this.$notify({
title: '失败',
message: '取消订单失败',
type: 'fail',
duration: 2000
})
}
})
},
handleCancelDialog() {
this.showDialog = false
},
handleViolatePrice(row) {
let that = this;
let params = {
cancelReason: '后台取消',
appUserId: row.userId
}
getViolatePrice(row.no).then(data => {
if (data.status == 200) {
that.topAmount = data.data.topAmount;
that.cancel(row, data.data.cutAmount);
} else {
this.$notify({
title: '失败',
message: '获取违约金失败',
type: 'success',
duration: 2000
})
}
})
},
getProvinceRegions(item) {
this.listQuery.zoneId = item
this.baranchQuery.zoneId = item
......@@ -424,6 +607,9 @@
// if(this.listQuery.endTime){
// this.listQuery.endTime = this.listQuery.endTime.getTime();
// }
if(this.listQuery){
localStorage.setItem("tourOrderInfo", JSON.stringify(this.listQuery));
}
page(this.listQuery)
.then(response => {
this.list = response.data.data;
......
<template>
<div class="app-container calendar-list-container">
<div class="filter-container">
<el-row :gutter="20">
<el-col :span="4">
<el-input v-model="search.userName" placeholder="请输入用户姓名"></el-input>
</el-col>
<el-col :span="4">
<el-input v-model="search.phone" placeholder="请输入手机号"></el-input>
</el-col>
<el-col :span="6">
<el-date-picker v-model="time" type="datetimerange" placeholder="选择时间范围"></el-date-picker>
</el-col>
<el-col :span="4">
<el-button type="primary" @click="searchBtn">搜索</el-button>
</el-col>
</el-row>
<el-table
:data="list"
border
fit
highlight-current-row
style="width: 100%;margin-top:10px"
v-loading="loading"
>
<el-table-column align="center" label="姓名">
<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.sourceName}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="订单金额">
<template scope="scope">
<span>{{scope.row.price}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="提成比例">
<template scope="scope">
<span>{{scope.row.extract}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="金额变动">
<template scope="scope">
<span>{{scope.row.commission}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="状态">
<template scope="scope">
<span>{{scope.row.waiting == 1 ? '入账' : '未入账'}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="时间">
<template scope="scope">
<span>{{getLocalTime(scope.row.crtTime)}}</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"
@click="deposit(scope.row)"
>详情</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="search.page"
:page-sizes="[10,20,30, 50]"
:page-size="search.limit"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
style="margin-top:20px"
></el-pagination>
</div>
</div>
</template>
<script>
import { recordList } from 'api/purseManage'
export default {
created() {
this.getList()
},
data() {
return {
loading: false,
time: [],
list: [],
total: null,
search: {
page: 1,
limit: 10,
userName: null,
phone: null,
startTime: null,
endTime: null
}
}
},
methods: {
deposit(row) {
switch (row.orderType) {
case 1:
this.$router.push({
path: '/order/rentVehicleInfo',
query: {
id: row.orderNo
}
})
break
case 2:
this.$router.push({
path: '/order/tourOrderInfo',
query: {
id: row.orderNo
}
})
break
case 3:
this.$router.push({
path: '/order/memberOrderInfo',
query: {
id: row.orderNo
}
})
break
default:
break
}
},
handleSizeChange(val) {
this.search.limit = val
this.getList()
},
handleCurrentChange(val) {
this.search.page = val
this.getList()
},
getList() {
this.loading = true
this.search.startTime = new Date(this.time[0]).getTime() || null
this.search.endTime = new Date(this.time[1]).getTime() || null
recordList(this.search).then(data => {
if (data.status == 200) {
this.list = data.data.data
this.total = data.data.totalCount
}
setTimeout(() => {
this.loading = false
}, 300)
})
},
searchBtn() {
this.search.page = 1
this.getList()
},
getLocalTime(nS) {
//将时间戳(十三位时间搓,也就是带毫秒的时间搓)转换成时间格式
// d.cTime = 1539083829787
let date = new Date(nS)
let year = date.getFullYear()
let month = date.getMonth() + 1
let day = date.getDate()
let hours = date.getHours()
let minutes = date.getMinutes()
let secibds = date.getSeconds()
month = month < 10 ? '0' + month : month
day = day < 10 ? '0' + day : day
hours = hours < 10 ? '0' + hours : hours
minutes = minutes < 10 ? '0' + minutes : minutes
secibds = secibds < 10 ? '0' + secibds : secibds
date =
year +
'-' +
month +
'-' +
day +
' ' +
hours +
':' +
minutes +
':' +
secibds
return date
}
}
}
</script>
<style>
</style>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -31,7 +31,8 @@
<span>{{currentItem.ii.vehicleBookRecord.remark}}</span>
</el-form-item>
</el-form>
<div slot="footer" v-if='currentItem.ii.vehicleBookRecord.status==2&&bookRecord_btn_unbook&&currentItem.ii.vehicleBookRecord.vehicleDepartureLogVo!=undefined' class="dialog-footer">
<!--客户租车-已审核过-取消按钮权限-未出行-->
<div slot="footer" v-if='currentItem.ii.vehicleBookRecord.status==2 && currentItem.ii.bookType==9 &&bookRecord_btn_unbook && !currentItem.ii.vehicleBookRecord.vehicleDepartureLogVo' class="dialog-footer">
<el-button @click="cancel()">取消用车</el-button>
</div>
<div slot="footer" v-if='currentItem.ii.vehicleBookRecord.status==1' class="dialog-footer">
......@@ -91,21 +92,28 @@
* 弹框-取消
* */
cancel() {
console.log("展览取消用车");
var obj = {
vehicleBookRecordId:this.currentItem.ii.vehicleBookRecord.id
}
cancleBook(obj).then(response => {
if(response.code==1){
this.$emit("zhanlanDialogEvent", true);
}else{
this.$notify({
title: '失败',
message: response.message,
type: 'error',
duration: 2000
});
}
};
this.$confirm('确定取消吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
cancleBook(obj).then(response => {
if(response.code==1){
this.$emit("zhanlanDialogEvent", true);
}else{
this.$notify({
title: '失败',
message: response.message,
type: 'error',
duration: 2000
});
}
});
}).catch(() => {
console.log("cancel");
});
},
/**
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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