Commit 50199d3c authored by hanfeng's avatar hanfeng

Merge remote-tracking branch 'origin/base-modify' into base-modify-hf

parents 2a3d71b1 88e091d1
...@@ -4,6 +4,7 @@ export function appPage(obj) { ...@@ -4,6 +4,7 @@ export function appPage(obj) {
return fetch({ return fetch({
url: '/api/admin/appUsersManage/findAll', url: '/api/admin/appUsersManage/findAll',
method: 'post', method: 'post',
timeout: '30000',
data: obj data: obj
}); });
} }
......
import fetch from 'utils/fetch';
/**
* 获取消息列表
* @param query
*/
export function page(query) {
return fetch({
url: '/api/im/msg/bg/app/unauth/list',
method: 'post',
data: query
});
}
/**
* 获取更新
* @param query
*/
export function updateMsg(params) {
return fetch({
url: '/api/im/msg/bg/app/unauth/update',
method: 'post',
data: params
});
}
/**
* 删除消息
*/
export function delMsg(query) {
return fetch({
url: '/api/im/msg/bg/app/unauth/delete',
method: 'get',
params: query
});
}
/**
* 获取问答列表
*/
export function geImQuestionList(query) {
return fetch({
url: '/api/im/imQuestion/list',
method: 'get',
params: query
});
}
/**
* 更新问答
* @param query
*/
export function updateImQuestion(params) {
return fetch({
url: '/api/im/imQuestion/bg/app/unauth/update',
method: 'post',
data: params
});
}
/**
* 删除消息
*/
export function delQuestion(query) {
return fetch({
url: '/api/im/imQuestion/bg/app/unauth/delete',
method: 'get',
params: query
});
}
...@@ -31,7 +31,6 @@ export function getOneGoodsById(query) { ...@@ -31,7 +31,6 @@ export function getOneGoodsById(query) {
} }
/** /**
* 获取bannerList * 获取bannerList
// url: '/api/tour/admin/tourBanner/page',
*/ */
export function getBannerList(query) { export function getBannerList(query) {
return fetch({ return fetch({
...@@ -41,7 +40,7 @@ export function getBannerList(query) { ...@@ -41,7 +40,7 @@ export function getBannerList(query) {
}); });
} }
/** /**
* 添加banner '/api/tour/admin/tourBanner', * 添加banner
*/ */
export function addBanner(params) { export function addBanner(params) {
return fetch({ return fetch({
......
...@@ -309,6 +309,33 @@ export const asyncRouterMap = [{ ...@@ -309,6 +309,33 @@ export const asyncRouterMap = [{
} }
] ]
}, },
{
path: '/discoveryModule',
component: Layout,
name: '发现模块',
icon: 'setting',
authority: 'discoveryModule',
children: [
{
path: 'clapIndex',
component: _import('discoveryModule/clapIndex'),
name: '拍拍',
authority: 'clapIndex'
},
{
path: 'shortVideo',
component: _import('discoveryModule/shortVideo'),
name: '短视频',
authority: 'shortVideo'
},
{
path: 'questionsAndAnswers',
component: _import('discoveryModule/questionsAndAnswers'),
name: '问答',
authority: 'questionsAndAnswers'
}
]
},
{ {
path: '/campsiteManage', path: '/campsiteManage',
component: Layout, component: Layout,
......
...@@ -268,3 +268,15 @@ ...@@ -268,3 +268,15 @@
} }
return targetObj; return targetObj;
} }
/**
* 深拷贝
*/
export function objDeepCopy(source) {
const sourceCopy = source instanceof Array ? [] : {};
for (const item in source) {
sourceCopy[item] = typeof source[item] === 'object' ? objDeepCopy(source[item]) : source[item];
}
return sourceCopy;
}
<template>
<div class="app-container calendar-list-container" v-loading.body="showLoadingBody">
<div>
<div class="filter-container" ref="filter-container">
<el-form :inline="inline" ref="queryForm" :model="listQuery" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="发布时间" prop="startTime">
<el-date-picker
v-model="listQuery.startTime"
type="date"
:editable="false"
format="yyyy-MM-dd"
prop="startTime"
placeholder="请选择开始时间">
</el-date-picker>~
<el-date-picker
v-model="listQuery.endTime"
type="date"
:editable="false"
format="yyyy-MM-dd"
prop="endTime"
placeholder="请选择结束时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="来源">
<el-select class="filter-item" v-model="listQuery.source" placeholder="请选择来源">
<el-option :key="undefined" label="全部" :value="undefined"></el-option>
<el-option key="1" label="后台创建" value="1"></el-option>
<el-option key="2" label="app用户" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="点赞数 >">
<el-input v-model.number="listQuery.praise" type="number" min="0" placeholder="请输入点赞数"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="评论数 >">
<el-input v-model.number="listQuery.comment" type="number" min="0" placeholder="请输入评论数"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="用户名">
<el-input v-model.number="listQuery.username" placeholder="请输入用户名"></el-input>
</el-form-item>
</el-col>
</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 @click="reloadPage">重置</el-button>
<el-button class="filter-item" style="margin-left: 10px;" @click="handleCreate"
type="primary" icon="edit">添加
</el-button>
</div>
<el-table :key='tableKey' :data="list" border fit highlight-current-row
style="width: 100%">
<el-table-column
type="index"
align="center" label="序号" width="65">
</el-table-column>
<el-table-column align="center" label="msgId">
<template scope="scope">
<span>{{scope.row.msgId}}</span>
</template>
</el-table-column>
<!--<el-table-column align="center" label="标题">-->
<!--<template scope="scope">-->
<!--<span>{{scope.row.body?scope.row.body.title:''}}</span>-->
<!--</template>-->
<!--</el-table-column>-->
<el-table-column align="center" label="描述">
<template scope="scope">
<span>{{scope.row.body?scope.row.body.text:''}}</span>
</template>
</el-table-column>
<el-table-column align="center" width="100" label="图片">
<template scope="scope">
<el-button v-if="scope.row.body.images" size="small" @click="handleImg(scope.row.body.images)" class="el-button el-button--text el-button--small" >点击查看
</el-button>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="点赞数">
<template scope="scope">
<span>{{scope.row.count?scope.row.count.praise:0}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="评论数">
<template scope="scope">
<span>{{scope.row.count?scope.row.count.comment:0}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="来源">
<template scope="scope">
<span>{{scope.row.source == 1? '后台创建':'app用户'}}</span>
</template>
</el-table-column>
<el-table-column align="center" width="200" label="操作" fixed="right">
<template scope="scope">
<el-button size="small" class="el-button el-button--text el-button--small" @click="handleUpdate(scope.row)">编辑
</el-button>
<el-button size="small"class="el-button el-button--text el-button--small" style="color: green;" v-if="scope.row.visible==2" @click="upStatus(scope.row)">设置为公开
</el-button>
<el-button size="small" class="el-button el-button--text el-button--small" style="color: red" v-if="scope.row.visible==1" @click="upStatus(scope.row)">设置为保密
</el-button>
<el-button class="el-button el-button--text el-button--small" style="color:red;" size="small" v-if="scope.row.source == 1" @click="deleteHandler(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div v-show="!listLoading" class="pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="listQuery.page" :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
</div>
<!-- 编辑 -->
<el-dialog title="编辑" :visible.sync="oneTypeDialogVisible">
<el-form label-width="90px">
<el-row>
<el-col :span="16">
<el-row>
<el-col :span="16">
<el-form-item label="标题">
<el-input v-model="formE.title" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="描述">
<el-input v-model="formE.desc" disabled type="textarea" :rows="4"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="图片" :style="{display:'block'}">
<img style="width: 100px;height: 100px;object-fit: cover;margin: 5px;" v-for="(iitem, iindex) in formE.images" :key="iindex" class="text item" :src="iitem.oUrl"/>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-form-item label="创建时间" prop="name">
<el-input v-model="formE.crtTime" disabled></el-input>
</el-form-item>
<el-form-item label="userId" prop="name">
<el-input v-model="formE.userId" disabled></el-input>
</el-form-item>
<el-form-item label="点赞数" prop="name">
<el-input v-model="formE.praise" disabled></el-input>
</el-form-item>
<el-form-item label="评论数" prop="name">
<el-input v-model="formE.comment" disabled></el-input>
</el-form-item>
<el-form-item label="分享次数" prop="name">
<el-input v-model="formE.share" disabled></el-input>
</el-form-item>
<el-form-item label="创建位置" prop="name">
<el-input v-model="formE.address" disabled></el-input>
</el-form-item>
<el-form-item label="对外可见">
<el-select class="filter-item" v-model="formE.visible" placeholder="请选择来源">
<el-option key="1" label="是" value="1"></el-option>
<el-option key="2" label="否" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="来源">
<el-select class="filter-item" v-model="formE.source" placeholder="请选择来源">
<el-option key="1" label="后台创建" value="1"></el-option>
<el-option key="2" label="app用户" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelHandel">取 消</el-button>
<el-button type="primary" @click="updateMsgs">确 定</el-button>
</div>
</el-dialog>
<!-- 创建 -->
<el-dialog title="创建" :visible.sync="createDialogVisible">
<el-form label-width="90px">
<el-row>
<el-col :span="16">
<el-row>
<el-col :span="16">
<el-form-item label="标题">
<el-input v-model="formC.title"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="描述">
<el-input :rows="4" v-model="formC.desc" type="textarea"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="图片" :style="{display:'block'}">
<el-upload
class="upload-demo"
:headers="getHeaderWithToken"
:action="BASE_API+'/api/universal/file/app/unauth/admin/upload'"
:on-remove="handleRemove"
:file-list="fileList2"
:on-success="handleBannerSuccess"
list-type="picture">
<div slot="tip" class="el-upload__tip">最多上传9张</div>
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-form-item label="点赞数" prop="name">
<el-input v-model="formC.praise"></el-input>
</el-form-item>
<el-form-item label="评论数" prop="name">
<el-input v-model="formC.comment"></el-input>
</el-form-item>
<el-form-item label="分享次数" prop="name">
<el-input v-model="formC.share"></el-input>
</el-form-item>
<el-form-item label="创建位置" prop="name">
<el-input v-model="formC.addressStr" readonly placeholder="请拾取地址" :on-icon-click="selectDestination"
icon="edit"></el-input>
</el-form-item>
<el-form-item label="对外可见">
<el-select class="filter-item" v-model="formC.visible" placeholder="请选择来源">
<el-option key="1" label="是" value="1"></el-option>
<el-option key="2" label="否" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="来源">
<el-select class="filter-item" v-model="formC.source" placeholder="请选择来源">
<el-option key="1" label="后台创建" value="1"></el-option>
<el-option key="2" label="app用户" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelCreateHandel">取 消</el-button>
<el-button type="primary" @click="createMsgs">确 定</el-button>
</div>
</el-dialog>
<!--查看图片-->
<el-dialog title="查看图片" :visible.sync="imgDialogVisible">
<el-carousel arrow="always" height="500px" :interval="5000">
<el-carousel-item v-for="item in imgList" :key="item.oUrl" style="display: flex;align-content: center;justify-content: center;">
<img style="height:500px;object-fit: cover;" class="text item" :src="item.oUrl"/>
</el-carousel-item>
</el-carousel>
</el-dialog>
<!--拾取创建位置-->
<address-modal v-if="showAddressVisible" :obj="addressObj" v-on:addressEvent="addressEvent"></address-modal>
</div>
</template>
<style>
textarea {
display: none;
}
.el-upload-list {
display: flex;
flex-wrap: wrap;
}
.el-upload-list li {
margin-left: 10px;
}
.el-upload-list--picture .el-upload-list__item{
width: 100px;
}
</style>
<script>
import 'static/css/uploadImg.css';// 引入图片上传组件对话框
import addressModal from './modal/addressModal'
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 {
objDeepCopy
} from 'utils/index';
import {
page,
updateMsg,
delMsg
} from 'api/discoveryModule';
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";
import {
getSonRegionByCodes,
getRegionByCodes,
} from 'api/base_info/region/';
export default {
name: 'tourManage',
components: {
ElCol,
ElRow,
Element1,
addressModal
},
data() {
return {
modalTitle: "创建",
BASE_API: process.env.BASE_API,
oneTypeDialogVisible: false,//编辑弹框
showLoadingBody: false,
createDialogVisible: false,//创建弹框
imgDialogVisible: false,//查看图片
imgList: [],//查看图片列表
form: {
tagNames:"",//标签
name: undefined,//旅游名称
saleCount: undefined,//销量
stock: undefined,//总数量
},
showAddressVisible: false,//拾取创建地址
addressObj: {},//创建位置实体
formE:{
msgId: undefined,//消息id
title: undefined,//标题
desc:undefined,//描述
crtTime: undefined,//创建时间
userId: undefined,
share: undefined,//分享次数
praise:undefined,//点赞数
comment: undefined,//评论数
address: undefined,//创建位置
visible: undefined,//1、公开 2、保密
source: undefined,//来源: 1、'后台创建' 2、'app用户'
},
formC: {
title: undefined,//标题
desc:undefined,//描述
share: undefined,//分享次数
praise:undefined,//点赞数
comment: undefined,//评论数
address: undefined,//创建位置
addressStr:'',
visible: '1',//1、公开 2、保密
source: "1",//来源: 1、'后台创建' 2、'app用户'
listPicUrl:'',//图片
},
fileList2: [],//图片
list: null,
total: null,
listLoading: true,
listQuery: {
page: 1,
limit: 20,
startTime: undefined,//开始时间
endTime: undefined,//结束时间
source: undefined,//来源
praise:undefined,//点赞数
comment: undefined,//评论数
username: undefined,//用户名
type: 2,// 消息类型 1=文字消息、2=图文消息(拍拍)、3=语音消息、4=视频消息、 5=文件消息 、 6=SDK分享消息
},
inline: true,
textMap: {
update: '编辑',
create: '创建'
},
tableKey: 0,
}
},
created() {
this.getList();
},
computed: {
...mapGetters([
'elements',
'belong2Type'
]),
getHeaderWithToken() {
return {Authorization: getToken()};
}
},
methods: {
/**
* 关闭关键标签配置
* */
cancelHandel() {
this.oneTypeDialogVisible = false;
},
/**
* 编辑创建地址
* */
selectDestination() {
let that = this;
this.addressObj.eventName = 'addressEvent';
this.addressObj.keyword = this.addressObj.address?this.addressObj.address:this.addressObj.addressStr?this.addressObj.addressStr:'';
this.showAddressVisible = true;
},
/**
* 关闭创建弹框
* */
cancelCreateHandel(){
this.createDialogVisible = false;
},
/**
* 关闭地址弹框
* */
addressEvent(obj) {
this.showAddressVisible = false;
if (obj) {
this.addressObj = obj;
let provinceObj = getRegionByCodes([obj.province]);
let cityObj = getRegionByCodes([obj.city]);
this.addressObj.provinceName = provinceObj[0].name;
this.addressObj.cityName = cityObj[0].name;
this.formC.addressStr = this.addressObj.provinceName + this.addressObj.cityName + this.addressObj.address;
console.log(this.addressObj);
}
},
/**
* 创建拍拍消息
* */
createMsgs(){
this.createDialogVisible = false;
// let params = {
// id: this.formE.msgId,
// visible: this.formE.visible,//1、公开 2、保密
// source: this.formE.source,//来源: 1、'后台创建' 2、'app用户'
// };
console.log(this.formC);
console.log(this.addressObj);
// updateMsg(params).then(response => {
// if (response.status === 200) {
// this.$notify({
// title: '成功',
// message: '成功',
// type: 'success',
// duration: 2000
// });
// this.oneTypeDialogVisible = false;
// this.getList();
// } else {
// this.$notify({
// title: '失败',
// message: '操作失败!',
// type: 'error',
// duration: 2000
// });
// }
// });
},
/**
* 保存编辑
* */
updateMsgs(){
let params = {
id: this.formE.msgId,
visible: this.formE.visible,//1、公开 2、保密
source: this.formE.source,//来源: 1、'后台创建' 2、'app用户'
};
console.log(params);
updateMsg(params).then(response => {
if (response.status === 200) {
this.$notify({
title: '成功',
message: '成功',
type: 'success',
duration: 2000
});
this.oneTypeDialogVisible = false;
this.getList();
} else {
this.$notify({
title: '失败',
message: '操作失败!',
type: 'error',
duration: 2000
});
}
});
},
/**
* 添加
* */
handleCreate() {
this.modalTitle = '创建';
this.formC = {
title: undefined,//标题
desc:undefined,//描述
share: undefined,//分享次数
praise:undefined,//点赞数
comment: undefined,//评论数
address: undefined,//创建位置
listPicUrl:'',//图片
visible: '1',//1、公开 2、保密
source: "1",//来源: 1、'后台创建' 2、'app用户'
};
this.createDialogVisible = true;
},
/**
* 查看图片
* */
handleImg(imgList){
this.imgList = imgList;
this.imgDialogVisible = true;
},
/**
* 删除图片
* */
handleRemove(file, fileList) {
let list = [];
fileList.map(function (item) {
if (item.url != file.url) {
list.push(item);
}
});
this.fileList2 = list;
let arr = [];
let listPicUrl = this.form.listPicUrl.split(",");
listPicUrl.map(function (item) {
if (item != file.url) {
arr.push(item);
}
});
this.formC.listPicUrl = arr.join(",");
},
/**
* 图片上传
* */
handleBannerSuccess(res, file) {
this.fileList2.push({url: res.data});
let c = [];
this.fileList2.map(function (i) {
c.push(i.url);
});
this.formC.listPicUrl = c.join(",");
},
/**
* 公开、秘密 参数 visible 1:公开,2:私密
*/
upStatus(row){
let params = {
id: row.msgId,
visible: row.visible==1?2:1
};
updateMsg(params).then(response => {
if (response.status === 200) {
this.$notify({
title: '成功',
message: '成功',
type: 'success',
duration: 2000
});
this.getList();
} else {
this.$notify({
title: '失败',
message: '操作失败!',
type: 'error',
duration: 2000
});
}
});
},
/**
* 删除
* */
deleteHandler(row) {
this.$confirm('确定删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delMsg({id: row.msgId}).then(response => {
if (response.status === 200) {
this.$notify({
title: '成功',
message: '删除成功',
type: 'success',
duration: 2000
});
this.bannerDialogVisible = false;
this.getList();
} else {
this.$notify({
title: '删除失败',
message: rsCode.msg[response.code] ? rsCode.msg[response.code] : '操作失败!',
type: 'error',
duration: 2000
});
}
});
})
},
/**
* 编辑
* */
handleUpdate(row) {
this.modalTitle = '编辑';
console.log(row);
this.formE = {
msgId: row.msgId,//消息id
title: row.body.title?row.body.title:'',//标题
images: row.body.images?row.body.images:{},//图片
desc:row.body.text,//描述
crtTime: timestamp2Date(row.body.time),//创建时间
userId: row.userId,
share: row.count.share,//分享次数
praise: row.count.praise,//点赞数
comment: row.count.comment,//评论数
address: row.body.address,//创建位置
visible: row.visible+'',//1、公开 2、保密
source: row.source+''
};
this.oneTypeDialogVisible = true;
},
/**
* 详情modal传递回来的数据
* */
oneDialogEvent(e){
this.oneTypeDialogVisible = false;
if(e){
//编辑成功-重新加载列表
this.getList();
}
},
/**
* 获取拍拍列表
* */
getList() {
this.listLoading = true;
let params = objDeepCopy(this.listQuery);
params.comment = this.listQuery.comment? this.listQuery.comment:undefined;
params.praise = this.listQuery.praise?this.listQuery.praise:undefined;
if(this.listQuery.startTime && (typeof this.listQuery.startTime == "object")){
params.startTime = this.listQuery.startTime.getTime()/1000;
}
if(this.listQuery.endTime && (typeof this.listQuery.endTime == "object")){
params.endTime = this.listQuery.endTime.getTime()/1000;
}
page(params).then(response => {
let totalCountRs = undefined;
let listRs = undefined;
if (!this.$utils.isEmpty(response.data.list) && this.$utils.isInteger(response.data.total)) {
response.data.list.map(function(item){
});
listRs = response.data.list;
totalCountRs = response.data.total;
}
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();
},
/**
* 重置
* */
reloadPage() {
this.listQuery = {
page: 1,
limit: 20,
startTime: undefined,//开始时间
endTime: undefined,//结束时间
source: undefined,//来源
startTime: undefined,//创建时间
praise:undefined,//点赞数
comment: undefined,//评论数
username: undefined,//用户名
type: 2,//消息类型
};
this.getList()
},
}
}
</script>
<template>
<el-dialog title="拾取位置" :visible.sync="isVisible">
<el-form :model="form" :rules="rules" ref="form" label-width="120px">
<el-row>
<el-col :span="8">
<el-form-item label="省份">
<el-select class="filter-item" v-model="listQuery.addrProvince" placeholder="请选择省份(直辖市)" @change='getValue'>
<el-option v-for="item in provinceRegions" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="城市">
<el-select class="filter-item" v-model="listQuery.addrCity" placeholder="请选择城市">
<el-option v-for="item in cityRegions4Query" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="详细地址" prop="address">
<el-input v-model="form.address" placeholder="请输入详细地址"></el-input>
</el-form-item>
<el-row>
<el-col :span="8">
<el-form-item label="纬度" prop="latitude">
<el-input :value="form.latitude" readonly></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="经度" prop="longitude">
<el-input :value="form.longitude" readonly></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="拾取经纬度">
<el-input v-model="keyword" placeholder="请输入详细地址获取经纬度"></el-input>
</el-form-item>
<el-form-item v-if="1>2">
<baidu-map class="map" id="mapID" center="东莞市" :zoom="zoom" :scroll-wheel-zoom="true" @click="getPoint" @ready="handler">
<!--地图类型,两种:一种是路线一种是绿的那种-->
<bm-map-type :map-types="['BMAP_NORMAL_MAP', 'BMAP_HYBRID_MAP']" anchor="BMAP_ANCHOR_TOP_LEFT"></bm-map-type>
<!--地图搜索功能,绑定上面的input,-->
<!--display: none样式很关键,因为下面默认会有地址提示信息很长,很烦,这样搜索会很舒服,-->
<!--zoom是搜索结果的视图比例,个人觉得12.8很舒服显示-->
<bm-local-search :keyword="keyword" :auto-viewport="true" :location="location" zoom="12.8" style="display: none"></bm-local-search>
<bm-navigation anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-navigation>
<!--信息窗口,show属性是控制显示隐藏,infoWindowClose和infoWindowOpen是控制信息窗口关闭隐藏的方法-->
<bm-marker :position="postionMap" >
<bm-info-window :show="show" class="bm-info" @close="infoWindowClose" @open="infoWindowOpen" style="font-size: 14px">
<!--<p>站点地址:{{ add.site }}</p>-->
</bm-info-window>
</bm-marker>
</baidu-map>
</el-form-item>
<el-form-item >
<!--:center="center"-->
<baidu-map
:zoom="zoom"
:dragging="true"
:scroll-wheel-zoom="true"
class="map"
@ready="handler"
@click="getPoint"
>
<bm-local-search
:keyword="keyword"
:auto-viewport="true"
:location="location"
style="display: none"
></bm-local-search>
<bm-navigation anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-navigation>
<bm-geolocation
anchor="BMAP_ANCHOR_BOTTOM_RIGHT"
:showAddressBar="true"
:autoLocation="true"
></bm-geolocation>
<bm-marker :position="{lng:form.longitude, lat: form.latitude}"></bm-marker>
</baidu-map>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button>
<el-button v-if="form.showTitle == '途径地编辑'" type="danger" @click="deleteHandler()">删除</el-button>
<el-button type="primary" @click="okHandler('form')">确 定</el-button>
</div>
</el-dialog>
</template>
<script src="http://api.map.baidu.com/api?v=2.0&ak=iSEprDCqtYn5aC06Y3cDyGCEOP1hydwR"></script>
<script>
import BaiduMap from 'vue-baidu-map';
import {
getSonRegionByCodes,
getRegionByCodes,
} from 'api/base_info/region/';
import rsCode from '../../../utils/rsCode';
import {mapGetters} from 'vuex';
import {
getAllCompany,
getAll
} from 'api/base_info/branch_company/';
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";
export default {
props: ["obj"],
name: 'destinationDialog',
components: {
ElCol,
ElInput,
ElRow
},
data() {
return {
jgNameDialog: false,
show: false,
postionMap:{ //地图坐标
lng: 120.211486,
lat: 30.256576
},
visible2: false,//是否显示删除确认框
location: '',
keyword: '', //搜索框关键词
zoom: 12.8, //放大比例
address:'', //位置详细信息
add:{
siteName:'',
site:'',
jd:'',
wd:'',
desce:'',
type:'',
jgName:'',
jgNum:'',
},
organizationData:[],
jgName:'',
jgNum:'',
form: {
showTitle: "",//弹框名称
name: undefined,//地址名称
keyword:"",//根据关键词查找经纬度
address:undefined,//详细地址
longitude: undefined,
latitude:undefined,
eventName: undefined
},
listQuery: {
addrProvince: undefined,
addrCity: undefined,
},
rules: {
name: [
{
type: 'string',
required: true,
message: '请输入名称',
trigger: 'blur'
},
{
min: 0,
max: 2000,
message: '长度小于 2000 个字符',
trigger: 'blur'
}
],
address: [
{
type: 'string',
required: true,
message: '请输入详细地址',
trigger: 'blur'
},
{
min: 0,
max: 2000,
message: '长度小于 2000 个字符',
trigger: 'blur'
}
],
longitude:{
required: true,
message: '请拾取经纬度'
},
latitude:{
required: true,
message: '请拾取经纬度'
},
addrProvince:{
required: true,
message: '请选择省份',
trigger: 'blur'
},
addrCity:{
required: true,
message: '请选择城市',
trigger: 'blur'
},
},
allCompanies: {},
allCompaniesArr: [],
isVisible: false,
allUpkeepItems: null,
dialogStatus: undefined,
baidumapSwitch:false,
zoom: 16,
location: "深圳市",
}
},
created() {
},
watch: {
isVisible(newValue, oldValue){
if(!newValue){
this.$emit(this.form.eventName, false);
this.cleanForm();
}
},
},
mounted() {
let that = this;
this.cleanForm();
let row = this.obj;debugger
this.form = this.obj;
this.listQuery.addrProvince = this.obj.province;
this.listQuery.addrCity = this.obj.city;
this.keyword = row.keyword?row.keyword:"东莞市";
this.isVisible = true;
},
computed: {
...mapGetters([
'elements',
]),
provinceRegions() {
return getSonRegionByCodes(1);
},
cityRegions4Query() {
if (!this.$utils.isInteger(this.listQuery.addrProvince)) {
return null;
}
return getSonRegionByCodes(this.listQuery.addrProvince);
},
},
methods: {
/**
* 删除
* */
deleteHandler(formName) {
// 删除
this.$confirm('确定删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.form.method = 'delete';
this.$emit(this.form.eventName, this.form);
})
},
querySearch(queryString, cb) {
let selectArry = [];
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);
},
handleSelect(item) {
this.upkeepForm.branchCompanyId = item.id;
console.log(item);
},
createFilter(queryString) {
return (restaurant) => {
return (restaurant.name.indexOf(queryString.toLowerCase()) != -1);
};
},
getTypeName: function(type) {
if (this.$utils.isEmpty(this.vehicleWarningMsgType[type])) {
return '未知';
}
return this.vehicleWarningMsgType[type].val;
},
getValue(e){
this.listQuery.addrCity = undefined;
},
/**
* 确定
* */
okHandler(formName) {
const set = this.$refs;
if(!this.listQuery.addrProvince){
this.$notify({
title: '请选择省份',
message: '操作失败!',
type: 'error',
duration: 2000
});
return;
}
if(!this.listQuery.addrCity){
this.$notify({
title: '请选择城市',
message:'操作失败!',
type: 'error',
duration: 2000
});
return;
}
this.form.province = this.listQuery.addrProvince;
this.form.city = this.listQuery.addrCity;
set[formName].validate(valid => {
if (valid) {
this.$emit(this.form.eventName, this.form);
} else {
return;
}
});
},
/**
* 加载地图
* */
handler ({BMap, map}) {
console.log(BMap, map)
this.postionMap = { //地图坐标
lng: 120.211486,
lat: 30.256576
};
},
//点击获取到当前经纬度
getClickInfo(e) {
console.log(e.point.lng);
console.log(e.point.lat);
this.form.longitude = e.point.lng;
this.form.latitude = e.point.lat;
},
//双向绑定经纬度以及缩放尺寸
syncCenterAndZoom(e) {
const { lng, lat } = e.target.getCenter();
this.form.longitude = lng;
this.form.latitude = lat;
// this.zoom = e.target.getZoom();
},
//经纬度同步
baidumap(){
this.baiduDevicelocationx = this.form.longitude
this.baiduDevicelocationy = this.form.latitude
},
/**
* 弹框-取消
* */
cancel() {
this.$emit(this.form.eventName, false);
this.cleanForm();
},
/**
* 清空弹框数据
*/
cleanForm() {
this.form = {
showTitle: "",//弹框名称
name: undefined,//地址名称
keyword:"",//根据关键词查找经纬度
address:undefined,//详细地址
longitude: undefined,
latitude:undefined,
eventName: undefined
};
this.listQuery = {
addrProvince: undefined,
addrCity: undefined,
}
},
getPoint(e){ //点击地图获取一些信息,
this.show = true;
this.postionMap.lng = e.point.lng; //通过 e.point.lng获取经度
this.postionMap.lat = e.point.lat; //通过 e.point.lat获取纬度
this.add.jd = e.point.lng;
this.add.wd = e.point.lat;
this.zoom = e.target.getZoom();
let geocoder= new BMap.Geocoder(); //创建地址解析器的实例
geocoder.getLocation(e.point,rs=>{
this.add.site = rs.address;
this.keyword = rs.address;
this.form.latitude = rs.point.lat;
this.form.longitude = rs.point.lng;
//地址描述(string)=
// console.log(rs.address); //这里打印可以看到里面的详细地址信息,可以根据需求选择想要的
// console.log(rs.addressComponents);//结构化的地址描述(object)
console.log(rs.addressComponents.province); //省
console.log(rs.addressComponents.city); //城市
console.log(rs.addressComponents.district); //区县
console.log(rs.addressComponents.street); //街道
console.log(rs.addressComponents.streetNumber); //门牌号
// console.log(rs.surroundingPois); //附近的POI点(array)
// console.log(rs.business); //商圈字段,代表此点所属的商圈(string)
});
},
infoWindowClose () {
this.show = false
},
infoWindowOpen () {
//这里有个问题纠结了很久,百度的信息窗口默认有个点击其他地方就消失的事件,我没有找到
//并且信息窗口点击一次显示,一次消失
//于是我加了一个100毫秒的定时器,保证每次点击地图都可以展示信息窗口
setInterval(()=>{
this.show = true
},100)
},
}
}
</script>
<style scoped>
.map {
width: 100%;
height: 500px;
}
.bm-info input[type="button"]{
width: 30px;
}
</style>
<template>
<div class="app-container calendar-list-container" v-loading.body="showLoadingBody">
<div>
<div class="filter-container" ref="filter-container">
<el-form :inline="inline" ref="queryForm" :model="listQuery" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="发布时间" prop="startTime">
<el-date-picker
v-model="listQuery.startTime"
type="date"
:editable="false"
format="yyyy-MM-dd"
prop="startTime"
placeholder="请选择开始时间">
</el-date-picker>~
<el-date-picker
v-model="listQuery.endTime"
type="date"
:editable="false"
format="yyyy-MM-dd"
prop="endTime"
placeholder="请选择结束时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="来源">
<el-select class="filter-item" v-model="listQuery.source" placeholder="请选择来源">
<el-option :key="undefined" label="全部" :value="undefined"></el-option>
<el-option key="1" label="后台创建" value="1"></el-option>
<el-option key="2" label="app用户" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="点赞数 >">
<el-input v-model.number="listQuery.praiseCount" type="number" min="0" placeholder="请输入点赞数"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="评论数 >">
<el-input v-model.number="listQuery.commentCount" type="number" min="0" placeholder="请输入评论数"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="用户名">
<el-input v-model.number="listQuery.username" placeholder="请输入用户名"></el-input>
</el-form-item>
</el-col>
</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 @click="reloadPage">重置</el-button>
<el-button class="filter-item" style="margin-left: 10px;" @click="handleCreate"
type="primary" icon="edit">添加
</el-button>
</div>
<el-table :key='tableKey' :data="list" border fit highlight-current-row
style="width: 100%">
<el-table-column
type="index"
align="center" label="序号" width="65">
</el-table-column>
<el-table-column align="center" label="标题">
<template scope="scope">
<span>{{scope.row.title}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="描述">
<template scope="scope">
<span>{{scope.row.content}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="点赞数">
<template scope="scope">
<span>{{scope.row.praiseCount?scope.row.praiseCount:0}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="评论数">
<template scope="scope">
<span>{{scope.row.commentCount?scope.row.commentCount:0}}</span>
</template>
</el-table-column>
<el-table-column width="200" align="center" label="发布时间">
<template scope="scope">
<span>{{scope.row.timeStr}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="来源">
<template scope="scope">
<span>{{scope.row.source == 1? '后台创建':'app用户'}}</span>
</template>
</el-table-column>
<el-table-column align="center" width="200" label="操作" fixed="right">
<template scope="scope">
<el-button size="small" class="el-button el-button--text el-button--small" @click="handleUpdate(scope.row)">编辑
</el-button>
<el-button size="small"class="el-button el-button--text el-button--small" style="color: green;" v-if="scope.row.visible==2" @click="upStatus(scope.row)">设置为公开
</el-button>
<el-button size="small" class="el-button el-button--text el-button--small" style="color: red" v-if="scope.row.visible==1" @click="upStatus(scope.row)">设置为保密
</el-button>
<el-button class="el-button el-button--text el-button--small" style="color:red;" size="small" v-if="scope.row.source == 1" @click="deleteHandler(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div v-show="!listLoading" class="pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="listQuery.page" :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
</div>
<!-- 编辑 -->
<el-dialog title="编辑" :visible.sync="oneTypeDialogVisible">
<el-form label-width="90px">
<el-row>
<el-col :span="16">
<el-row>
<el-col :span="16">
<el-form-item label="标题">
<el-input v-model="formE.title" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="描述">
<el-input v-model="formE.desc" disabled type="textarea" :rows="4"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-form-item label="发布时间" prop="name">
<el-input v-model="formE.time" disabled></el-input>
</el-form-item>
<el-form-item label="userId" prop="name">
<el-input v-model="formE.userId" disabled></el-input>
</el-form-item>
<el-form-item label="点赞数" prop="name">
<el-input v-model="formE.praiseCount" disabled></el-input>
</el-form-item>
<el-form-item label="评论数" prop="name">
<el-input v-model="formE.commentCount" disabled></el-input>
</el-form-item>
<el-form-item label="创建位置" prop="name">
<el-input v-model="formE.address" disabled></el-input>
</el-form-item>
<el-form-item label="对外可见">
<el-select class="filter-item" v-model="formE.visible" placeholder="请选择来源">
<el-option key="1" label="是" value="1"></el-option>
<el-option key="2" label="否" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="来源">
<el-select class="filter-item" v-model="formE.source" placeholder="请选择来源">
<el-option key="1" label="后台创建" value="1"></el-option>
<el-option key="2" label="app用户" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelHandel">取 消</el-button>
<el-button type="primary" @click="updateMsgs">确 定</el-button>
</div>
</el-dialog>
<!-- 创建 -->
<el-dialog title="创建" :visible.sync="createDialogVisible">
<el-form label-width="90px">
<el-row>
<el-col :span="16">
<el-row>
<el-col :span="16">
<el-form-item label="标题">
<el-input v-model="formC.title"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="描述">
<el-input :rows="4" v-model="formC.desc" type="textarea"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-form-item label="点赞数" prop="name">
<el-input v-model="formC.praise"></el-input>
</el-form-item>
<el-form-item label="评论数" prop="name">
<el-input v-model="formC.comment"></el-input>
</el-form-item>
<el-form-item label="创建位置" prop="name">
<el-input v-model="formC.addressStr" readonly placeholder="请拾取地址" :on-icon-click="selectDestination"
icon="edit"></el-input>
</el-form-item>
<el-form-item label="对外可见">
<el-select class="filter-item" v-model="formC.visible" placeholder="请选择来源">
<el-option key="1" label="是" value="1"></el-option>
<el-option key="2" label="否" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="来源">
<el-select class="filter-item" v-model="formC.source" placeholder="请选择来源">
<el-option key="1" label="后台创建" value="1"></el-option>
<el-option key="2" label="app用户" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelCreateHandel">取 消</el-button>
<el-button type="primary" @click="createMsgs">确 定</el-button>
</div>
</el-dialog>
<!--拾取创建位置-->
<address-modal v-if="showAddressVisible" :obj="addressObj" v-on:addressEvent="addressEvent"></address-modal>
</div>
</template>
<style>
textarea {
display: none;
}
.el-upload-list {
display: flex;
flex-wrap: wrap;
}
.el-upload-list li {
margin-left: 10px;
}
.el-upload-list--picture .el-upload-list__item{
width: 100px;
}
</style>
<script>
import 'static/css/uploadImg.css';// 引入图片上传组件对话框
import addressModal from './modal/addressModal'
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 {
objDeepCopy
} from 'utils/index';
import {
updateImQuestion,
geImQuestionList,
delQuestion
} from 'api/discoveryModule';
import {
getSonRegionByCodes,
getRegionByCodes,
} from 'api/base_info/region/';
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: 'tourManage',
components: {
ElCol,
ElRow,
Element1,
addressModal
},
data() {
return {
modalTitle: "创建",
BASE_API: process.env.BASE_API,
oneTypeDialogVisible: false,//编辑弹框
showLoadingBody: false,
createDialogVisible: false,//创建弹框
imgDialogVisible: false,//查看图片
imgList: [],//查看图片列表
form: {
tagNames:"",//标签
name: undefined,//旅游名称
saleCount: undefined,//销量
stock: undefined,//总数量
},
showAddressVisible: false,//拾取创建地址
addressObj: {},//创建位置实体
formE:{
id: undefined,//消息id
title: undefined,//标题
desc:undefined,//描述
crtTime: undefined,//创建时间
userId: undefined,
share: undefined,//分享次数
praise:undefined,//点赞数
comment: undefined,//评论数
address: undefined,//创建位置
visible: undefined,//1、公开 2、保密
source: undefined,//来源: 1、'后台创建' 2、'app用户'
},
formC: {
title: undefined,//标题
desc:undefined,//描述
share: undefined,//分享次数
praise:undefined,//点赞数
comment: undefined,//评论数
address: undefined,//创建位置
addressStr:'',
visible: '1',//1、公开 2、保密
source: "1",//来源: 1、'后台创建' 2、'app用户'
listPicUrl:'',//图片
},
fileList2: [],//图片
list: null,
total: null,
listLoading: true,
listQuery: {
page: 1,
limit: 20,
startTime: undefined,//开始时间
endTime: undefined,//结束时间
source: undefined,//来源
praiseCount:undefined,//点赞数
commentCount: undefined,//评论数
username: undefined,//用户名
},
inline: true,
textMap: {
update: '编辑',
create: '创建'
},
tableKey: 0,
}
},
created() {
this.getList();
},
computed: {
...mapGetters([
'elements',
'belong2Type'
]),
getHeaderWithToken() {
return {Authorization: getToken()};
}
},
methods: {
/**
* 关闭关键标签配置
* */
cancelHandel() {
this.oneTypeDialogVisible = false;
},
/**
* 关闭创建弹框
* */
cancelCreateHandel(){
this.createDialogVisible = false;
},
/**
* 创建拍拍消息
* */
createMsgs(){
this.createDialogVisible = false;
// let params = {
// id: this.formE.msgId,
// visible: this.formE.visible,//1、公开 2、保密
// source: this.formE.source,//来源: 1、'后台创建' 2、'app用户'
// };
console.log(this.formC);
console.log(this.addressObj);
// updateMsg(params).then(response => {
// if (response.status === 200) {
// this.$notify({
// title: '成功',
// message: '成功',
// type: 'success',
// duration: 2000
// });
// this.oneTypeDialogVisible = false;
// this.getList();
// } else {
// this.$notify({
// title: '失败',
// message: '操作失败!',
// type: 'error',
// duration: 2000
// });
// }
// });
},
/**
* 关闭地址弹框
* */
addressEvent(obj) {
this.showAddressVisible = false;
if (obj) {
this.addressObj = obj;
let provinceObj = getRegionByCodes([obj.province]);
let cityObj = getRegionByCodes([obj.city]);
this.addressObj.provinceName = provinceObj[0].name;
this.addressObj.cityName = cityObj[0].name;
this.formC.addressStr = this.addressObj.provinceName + this.addressObj.cityName + this.addressObj.address;
console.log(this.addressObj);
}
},
/**
* 编辑创建地址
* */
selectDestination() {
let that = this;
this.addressObj.eventName = 'addressEvent';
this.addressObj.keyword = this.addressObj.address?this.addressObj.address:this.addressObj.addressStr?this.addressObj.addressStr:'';
this.showAddressVisible = true;
},
/**
* 保存编辑
* */
updateMsgs(){
let params = {
id: this.formE.id,
visible: this.formE.visible,//1、公开 2、保密
source: this.formE.source,//来源: 1、'后台创建' 2、'app用户'
};
console.log(params);
updateImQuestion(params).then(response => {
if (response.status === 200) {
this.$notify({
title: '成功',
message: '成功',
type: 'success',
duration: 2000
});
this.oneTypeDialogVisible = false;
this.getList();
} else {
this.$notify({
title: '失败',
message: '操作失败!',
type: 'error',
duration: 2000
});
}
});
},
/**
* 添加
* */
handleCreate() {
this.modalTitle = '创建';
this.formC = {
title: undefined,//标题
desc:undefined,//描述
share: undefined,//分享次数
praiseCount:undefined,//点赞数
commentCount: undefined,//评论数
address: undefined,//创建位置
listPicUrl:'',//图片
visible: '1',//1、公开 2、保密
source: "1",//来源: 1、'后台创建' 2、'app用户'
};
this.createDialogVisible = true;
},
/**
* 查看图片
* */
handleImg(imgList){
this.imgList = imgList;
this.imgDialogVisible = true;
},
/**
* 删除图片
* */
handleRemove(file, fileList) {
let list = [];
fileList.map(function (item) {
if (item.url != file.url) {
list.push(item);
}
});
this.fileList2 = list;
let arr = [];
let listPicUrl = this.form.listPicUrl.split(",");
listPicUrl.map(function (item) {
if (item != file.url) {
arr.push(item);
}
});
this.formC.listPicUrl = arr.join(",");
},
/**
* 图片上传
* */
handleBannerSuccess(res, file) {
this.fileList2.push({url: res.data});
let c = [];
this.fileList2.map(function (i) {
c.push(i.url);
});
this.formC.listPicUrl = c.join(",");
},
/**
* 公开、秘密 参数 visible 1:公开,2:私密
*/
upStatus(row){
let params = {
id: row.id,
visible: row.visible==1?2:1
};
updateImQuestion(params).then(response => {
if (response.status === 200) {
this.$notify({
title: '成功',
message: '成功',
type: 'success',
duration: 2000
});
this.getList();
} else {
this.$notify({
title: '失败',
message:response.message?response.message : '操作失败!',
type: 'error',
duration: 2000
});
}
});
},
/**
* 删除
* */
deleteHandler(row) {
this.$confirm('确定删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delQuestion({id:row.id}).then(response => {
if (response.status === 200) {
this.$notify({
title: '成功',
message: '删除成功',
type: 'success',
duration: 2000
});
this.bannerDialogVisible = false;
this.getList();
} else {
this.$notify({
title: '删除失败',
message: rsCode.msg[response.code] ? rsCode.msg[response.code] : '操作失败!',
type: 'error',
duration: 2000
});
}
});
})
},
/**
* 编辑
* */
handleUpdate(row) {
this.modalTitle = '编辑';
console.log(row);
this.formE = {
id: row.id,//消息id
title: row.title,//标题
desc:row.content,//描述
time: timestamp2Date(row.time),//发布时间
userId: row.userId,
praiseCount: row.praiseCount?row.praiseCount: 0,//点赞数
commentCount: row.commentCount?row.commentCount:0,//评论数
address: row.address?row.address:'',//创建位置
visible: row.visible+'',//1、公开 2、保密
source: row.source+''
};
this.oneTypeDialogVisible = true;
},
/**
* 详情modal传递回来的数据
* */
oneDialogEvent(e){
this.oneTypeDialogVisible = false;
if(e){
//编辑成功-重新加载列表
this.getList();
}
},
/**
* 获取列表
* */
getList() {
this.listLoading = true;
let params = objDeepCopy(this.listQuery);
params.commentCount = this.listQuery.commentCount? this.listQuery.commentCount:undefined;
params.praiseCount = this.listQuery.praiseCount?this.listQuery.praiseCount:undefined;
if(this.listQuery.startTime && (typeof this.listQuery.startTime == "object")){
params.startTime = this.listQuery.startTime.getTime();
}
if(this.listQuery.endTime && (typeof this.listQuery.endTime == "object")){
params.endTime = this.listQuery.endTime.getTime();
}
geImQuestionList(params).then(response => {
let totalCountRs = undefined;
let listRs = undefined;
if (!this.$utils.isEmpty(response.data.data) && this.$utils.isInteger(response.data.totalCount)) {
response.data.data.map(function(item){
item.timeStr = timestamp2Date(item.time);
});
listRs = response.data.data;
totalCountRs = response.data.totalCount;
}
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();
},
/**
* 重置
* */
reloadPage() {
this.listQuery = {
page: 1,
limit: 20,
startTime: undefined,//开始时间
endTime: undefined,//结束时间
source: undefined,//来源
praiseCount:undefined,//点赞数
commentCount: undefined,//评论数
username: undefined,//用户名
};
this.getList()
},
}
}
</script>
<template>
<div class="app-container calendar-list-container" v-loading.body="showLoadingBody">
<div>
<div class="filter-container" ref="filter-container">
<el-form :inline="inline" ref="queryForm" :model="listQuery" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="发布时间" prop="startTime">
<el-date-picker
v-model="listQuery.startTime"
type="date"
:editable="false"
format="yyyy-MM-dd"
prop="startTime"
placeholder="请选择开始时间">
</el-date-picker>~
<el-date-picker
v-model="listQuery.endTime"
type="date"
:editable="false"
format="yyyy-MM-dd"
prop="endTime"
placeholder="请选择结束时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="来源">
<el-select class="filter-item" v-model="listQuery.source" placeholder="请选择来源">
<el-option :key="undefined" label="全部" :value="undefined"></el-option>
<el-option key="1" label="后台创建" value="1"></el-option>
<el-option key="2" label="app用户" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
<el-form-item label="点赞数 >">
<el-input v-model.number="listQuery.praise" type="number" min="0" placeholder="请输入点赞数"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="评论数 >">
<el-input v-model.number="listQuery.comment" type="number" min="0" placeholder="请输入评论数"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="用户名">
<el-input v-model.number="listQuery.username" placeholder="请输入用户名"></el-input>
</el-form-item>
</el-col>
</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 @click="reloadPage">重置</el-button>
<el-button class="filter-item" style="margin-left: 10px;" @click="handleCreate"
type="primary" icon="edit">添加
</el-button>
</div>
<el-table :key='tableKey' :data="list" border fit highlight-current-row
style="width: 100%">
<el-table-column
type="index"
align="center" label="序号" width="65">
</el-table-column>
<el-table-column align="center" label="msgId">
<template scope="scope">
<span>{{scope.row.msgId}}</span>
</template>
</el-table-column>
<!--<el-table-column align="center" label="标题">-->
<!--<template scope="scope">-->
<!--<span>{{scope.row.body?scope.row.body.title:''}}</span>-->
<!--</template>-->
<!--</el-table-column>-->
<el-table-column align="center" label="描述">
<template scope="scope">
<span>{{scope.row.body?scope.row.body.text:''}}</span>
</template>
</el-table-column>
<el-table-column align="center" width="100" label="视频">
<template scope="scope">
<el-button v-if="scope.row.body.videos" size="small" @click="handleVideo(scope.row.body.videos)" class="el-button el-button--text el-button--small" >点击查看
</el-button>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="点赞数">
<template scope="scope">
<span>{{scope.row.count?scope.row.count.praise:0}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="评论数">
<template scope="scope">
<span>{{scope.row.count?scope.row.count.comment:0}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" label="来源">
<template scope="scope">
<span>{{scope.row.source == 1? '后台创建':'app用户'}}</span>
</template>
</el-table-column>
<el-table-column align="center" width="200" label="操作" fixed="right">
<template scope="scope">
<el-button size="small" class="el-button el-button--text el-button--small" @click="handleUpdate(scope.row)">编辑
</el-button>
<el-button size="small"class="el-button el-button--text el-button--small" style="color: green;" v-if="scope.row.visible==2" @click="upStatus(scope.row)">设置为公开
</el-button>
<el-button size="small" class="el-button el-button--text el-button--small" style="color: red" v-if="scope.row.visible==1" @click="upStatus(scope.row)">设置为保密
</el-button>
<el-button class="el-button el-button--text el-button--small" style="color:red;" size="small" v-if="scope.row.source == 1" @click="deleteHandler(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div v-show="!listLoading" class="pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="listQuery.page" :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
</div>
<!-- 编辑 -->
<el-dialog title="编辑" :visible.sync="oneTypeDialogVisible">
<el-form label-width="90px">
<el-row>
<el-col :span="16">
<el-row>
<el-col :span="16">
<el-form-item label="标题">
<el-input v-model="formE.title" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="描述">
<el-input v-model="formE.desc" type="textarea" :rows="4" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="视频" :style="{display:'block'}">
<video height="300" width="80%" v-for="(iitem, iindex) in formE.videos" :key="iindex" :src="iitem.oUrl" controls="controls" class="text item"></video>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-form-item label="创建时间" prop="name">
<el-input v-model="formE.crtTime" disabled></el-input>
</el-form-item>
<el-form-item label="userId" prop="name">
<el-input v-model="formE.userId" disabled></el-input>
</el-form-item>
<el-form-item label="点赞数" prop="name">
<el-input v-model="formE.praise" disabled></el-input>
</el-form-item>
<el-form-item label="评论数" prop="name">
<el-input v-model="formE.comment" disabled></el-input>
</el-form-item>
<el-form-item label="分享次数" prop="name">
<el-input v-model="formE.share" disabled></el-input>
</el-form-item>
<el-form-item label="创建位置" prop="name">
<el-input v-model="formE.address" disabled></el-input>
</el-form-item>
<el-form-item label="对外可见">
<el-select class="filter-item" v-model="formE.visible" placeholder="请选择来源">
<el-option key="1" label="是" value="1"></el-option>
<el-option key="2" label="否" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="来源">
<el-select class="filter-item" v-model="formE.source" placeholder="请选择来源">
<el-option key="1" label="后台创建" value="1"></el-option>
<el-option key="2" label="app用户" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelHandel">取 消</el-button>
<el-button type="primary" @click="updateMsgs">确 定</el-button>
</div>
</el-dialog>
<!-- 创建 -->
<el-dialog title="创建" :visible.sync="createDialogVisible">
<el-form label-width="90px">
<el-row>
<el-col :span="16">
<el-row>
<el-col :span="16">
<el-form-item label="标题">
<el-input v-model="formC.title"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="描述">
<el-input v-model="formC.desc" type="textarea" :rows="4"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="视频" :style="{display:'block'}">
<el-upload class="avatar-uploader el-upload--text" :headers="getHeaderWithToken" :action="BASE_API+'/api/universal/file/app/unauth/uploadVideo'"
:show-file-list="false" :on-success="handleVideoSuccess" :before-upload="beforeUploadVideo" :on-progress="uploadVideoProcess">
<video v-if="videoForm.Video !='' && videoFlag == false" :src="videoForm.Video" class="avatar" controls="controls">您的浏览器不支持视频播放</video>
<i v-else-if="videoForm.Video =='' && videoFlag == false" class="el-icon-plus avatar-uploader-icon"></i>
<el-progress v-if="videoFlag == true" type="circle" :percentage="videoUploadPercent" style="margin-top:30px;"></el-progress>
</el-upload>
<p class="text">请保证视频格式正确,且不超过10M</p>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-form-item label="点赞数" prop="name">
<el-input v-model="formC.praise"></el-input>
</el-form-item>
<el-form-item label="评论数" prop="name">
<el-input v-model="formC.comment"></el-input>
</el-form-item>
<el-form-item label="分享次数" prop="name">
<el-input v-model="formC.share"></el-input>
</el-form-item>
<el-form-item label="创建位置" prop="name">
<el-input v-model="formC.addressStr" readonly placeholder="请拾取地址" :on-icon-click="selectDestination"
icon="edit"></el-input>
</el-form-item>
<el-form-item label="对外可见">
<el-select class="filter-item" v-model="formC.visible" placeholder="请选择来源">
<el-option key="1" label="是" value="1"></el-option>
<el-option key="2" label="否" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="来源">
<el-select class="filter-item" v-model="formC.source" placeholder="请选择来源">
<el-option key="1" label="后台创建" value="1"></el-option>
<el-option key="2" label="app用户" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelCreateHandel">取 消</el-button>
<el-button type="primary" @click="createMsgs">确 定</el-button>
</div>
</el-dialog>
<!--查看图片-->
<el-dialog title="查看视频" :visible.sync="videoDialogVisible">
<div style="display: flex;align-items: center;justify-content: center;" v-if="videosList.length>0">
<video height="500" :src="videosList[0].oUrl" controls="controls" class="text item"></video>
</div>
</el-dialog>
<!--拾取创建位置-->
<address-modal v-if="showAddressVisible" :obj="addressObj" v-on:addressEvent="addressEvent"></address-modal>
</div>
</template>
<style>
textarea {
display: none;
}
.el-upload-list {
display: flex;
flex-wrap: wrap;
}
.el-upload-list li {
margin-left: 10px;
}
.el-upload-list--picture .el-upload-list__item{
width: 100px;
}
</style>
<script>
import 'static/css/uploadImg.css';// 引入图片上传组件对话框
import addressModal from './modal/addressModal'
import {
getSonRegionByCodes,
getRegionByCodes,
} from 'api/base_info/region/';
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 {
objDeepCopy
} from 'utils/index';
import {
page,
updateMsg,
delMsg
} from 'api/discoveryModule';
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: 'tourManage',
components: {
ElCol,
ElRow,
Element1,
addressModal
},
data() {
return {
modalTitle: "创建",
BASE_API: process.env.BASE_API,
oneTypeDialogVisible: false,//编辑弹框
showLoadingBody: false,
createDialogVisible: false,//创建弹框
videoDialogVisible: false,//查看视频
videosList: [],//查看视频列表
videoFlag: false,
form: {
tagNames:"",//标签
name: undefined,//旅游名称
saleCount: undefined,//销量
stock: undefined,//总数量
},
showAddressVisible: false,//拾取创建地址
addressObj: {},//创建位置实体
formE:{
msgId: undefined,//消息id
title: undefined,//标题
desc:undefined,//描述
crtTime: undefined,//创建时间
userId: undefined,
share: undefined,//分享次数
praise:undefined,//点赞数
comment: undefined,//评论数
address: undefined,//创建位置
visible: undefined,//1、公开 2、保密
source: undefined,//来源: 1、'后台创建' 2、'app用户'
},
formC: {
title: undefined,//标题
desc:undefined,//描述
share: undefined,//分享次数
praise:undefined,//点赞数
comment: undefined,//评论数
address: undefined,//创建位置
addressStr:'',
visible: '1',//1、公开 2、保密
source: "1",//来源: 1、'后台创建' 2、'app用户'
listVideoUrl:'',//视频
},
fileList2: [],//图片
list: null,
total: null,
videoForm: {},//上传视频
listLoading: true,
listQuery: {
page: 1,
limit: 20,
startTime: undefined,//开始时间
endTime: undefined,//结束时间
source: undefined,//来源
praise:undefined,//点赞数
comment: undefined,//评论数
username: undefined,//用户名
type: 4,// 消息类型 1=文字消息、2=图文消息(拍拍)、3=语音消息、4=视频消息、 5=文件消息 、 6=SDK分享消息
},
inline: true,
textMap: {
update: '编辑',
create: '创建'
},
tableKey: 0,
videoUploadPercent: 0,
}
},
created() {
this.getList();
},
computed: {
...mapGetters([
'elements',
'belong2Type'
]),
getHeaderWithToken() {
return {Authorization: getToken()};
}
},
methods: {
/**
* 关闭关键标签配置
* */
cancelHandel() {
this.oneTypeDialogVisible = false;
},
/**
* 关闭创建弹框
* */
cancelCreateHandel(){
this.createDialogVisible = false;
},
beforeUploadVideo(file) {
const isLt10M = file.size / 1024 / 1024 < 10;
if (['video/mp4', 'video/ogg', 'video/flv','video/avi','video/wmv','video/rmvb'].indexOf(file.type) == -1) {
this.$message.error('请上传正确的视频格式');
return false;
}
if (!isLt10M) {
this.$message.error('上传视频大小不能超过10MB哦!');
return false;
}
},
uploadVideoProcess(event, file, fileList){
this.videoFlag = true;debugger
this.videoUploadPercent = file.percentage.toFixed(0)*1;
},
handleVideoSuccess(res, file) {
this.videoFlag = false;
this.videoUploadPercent = 0;
if(res.status == 200){
this.videoForm.Video = res.data;
}else{
this.$message.error('视频上传失败,请重新上传!');
}
},
/**
* 创建拍拍消息
* */
createMsgs(){
this.createDialogVisible = false;
// let params = {
// id: this.formE.msgId,
// visible: this.formE.visible,//1、公开 2、保密
// source: this.formE.source,//来源: 1、'后台创建' 2、'app用户'
// };
console.log(this.formC);
console.log(this.addressObj);
// updateMsg(params).then(response => {
// if (response.status === 200) {
// this.$notify({
// title: '成功',
// message: '成功',
// type: 'success',
// duration: 2000
// });
// this.oneTypeDialogVisible = false;
// this.getList();
// } else {
// this.$notify({
// title: '失败',
// message: '操作失败!',
// type: 'error',
// duration: 2000
// });
// }
// });
},
/**
* 保存编辑
* */
updateMsgs(){
let params = {
id: this.formE.msgId,
visible: this.formE.visible,//1、公开 2、保密
source: this.formE.source,//来源: 1、'后台创建' 2、'app用户'
};
console.log(params);
updateMsg(params).then(response => {
if (response.status === 200) {
this.$notify({
title: '成功',
message: '成功',
type: 'success',
duration: 2000
});
this.oneTypeDialogVisible = false;
this.getList();
} else {
this.$notify({
title: '失败',
message: '操作失败!',
type: 'error',
duration: 2000
});
}
});
},
/**
* 添加
* */
handleCreate() {
this.modalTitle = '创建';
this.formC = {
title: undefined,//标题
desc:undefined,//描述
share: undefined,//分享次数
praise:undefined,//点赞数
comment: undefined,//评论数
address: undefined,//创建位置
listVideoUrl:'',//视频
visible: '1',//1、公开 2、保密
source: "1",//来源: 1、'后台创建' 2、'app用户'
};
this.createDialogVisible = true;
},
/**
* 查看视频
* */
handleVideo(videosList){
this.videosList = videosList;
this.videoDialogVisible = true;
},
/**
* 公开、秘密 参数 visible 1:公开,2:私密
*/
upStatus(row){
let params = {
id: row.msgId,
visible: row.visible==1?2:1
};
updateMsg(params).then(response => {
if (response.status === 200) {
this.$notify({
title: '成功',
message: '成功',
type: 'success',
duration: 2000
});
this.getList();
} else {
this.$notify({
title: '失败',
message: '操作失败!',
type: 'error',
duration: 2000
});
}
});
},
/**
* 删除
* */
deleteHandler(row) {
this.$confirm('确定删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delMsg({id:row.msgId}).then(response => {
if (response.status === 200) {
this.$notify({
title: '成功',
message: '删除成功',
type: 'success',
duration: 2000
});
this.bannerDialogVisible = false;
this.getList();
} else {
this.$notify({
title: '删除失败',
message: rsCode.msg[response.code] ? rsCode.msg[response.code] : '操作失败!',
type: 'error',
duration: 2000
});
}
});
})
},
/**
* 关闭地址弹框
* */
addressEvent(obj) {
this.showAddressVisible = false;
if (obj) {
this.addressObj = obj;
let provinceObj = getRegionByCodes([obj.province]);
let cityObj = getRegionByCodes([obj.city]);
this.addressObj.provinceName = provinceObj[0].name;
this.addressObj.cityName = cityObj[0].name;
this.formC.addressStr = this.addressObj.provinceName + this.addressObj.cityName + this.addressObj.address;
console.log(this.addressObj);
}
},
/**
* 编辑创建地址
* */
selectDestination() {
let that = this;
this.addressObj.eventName = 'addressEvent';
this.addressObj.keyword = this.addressObj.address?this.addressObj.address:this.addressObj.addressStr?this.addressObj.addressStr:'';
this.showAddressVisible = true;
},
/**
* 编辑
* */
handleUpdate(row) {
this.modalTitle = '编辑';
console.log(row);
this.formE = {
msgId: row.msgId,//消息id
title: row.body.title?row.body.title:'',//标题
videos: row.body.videos?row.body.videos:[],//视频
desc:row.body.text,//描述
crtTime: timestamp2Date(row.body.time),//创建时间
userId: row.userId,
share: row.count.share,//分享次数
praise: row.count.praise,//点赞数
comment: row.count.comment,//评论数
address: row.body.address,//创建位置
visible: row.visible+'',//1、公开 2、保密
source: row.source+''
};
this.oneTypeDialogVisible = true;
},
/**
* 详情modal传递回来的数据
* */
oneDialogEvent(e){
this.oneTypeDialogVisible = false;
if(e){
//编辑成功-重新加载列表
this.getList();
}
},
/**
* 获取拍拍列表
* */
getList() {
this.listLoading = true;
let params = objDeepCopy(this.listQuery);
params.comment = this.listQuery.comment? this.listQuery.comment:undefined;
params.praise = this.listQuery.praise?this.listQuery.praise:undefined;
if(this.listQuery.startTime && (typeof this.listQuery.startTime == "object")){
params.startTime = this.listQuery.startTime.getTime()/1000;
}
if(this.listQuery.endTime && (typeof this.listQuery.endTime == "object")){
params.endTime = this.listQuery.endTime.getTime()/1000;
}
page(params).then(response => {
let totalCountRs = undefined;
let listRs = undefined;
if (!this.$utils.isEmpty(response.data.list) && this.$utils.isInteger(response.data.total)) {
response.data.list.map(function(item){
});
listRs = response.data.list;
totalCountRs = response.data.total;
}
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();
},
/**
* 重置
* */
reloadPage() {
this.listQuery = {
page: 1,
limit: 20,
startTime: undefined,//开始时间
endTime: undefined,//结束时间
source: undefined,//来源
startTime: undefined,//创建时间
praise:undefined,//点赞数
comment: undefined,//评论数
username: undefined,//用户名
type: 4,//消息类型
};
this.getList()
},
}
}
</script>
...@@ -27,12 +27,14 @@ ...@@ -27,12 +27,14 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="姓名/手机号:"> <el-form-item label="姓名/手机号:">
<span>{{form.realName}}/{{form.telephone}}</span> <span v-if="form.realName">{{form.realName}}/{{form.telephone}}</span>
<span v-else></span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="会员等级/身份:"> <el-form-item label="会员等级/身份:">
<span>{{form.memberName}}/{{form. jobTitle}}</span> <span v-if='form.memberName'>{{form.memberName}}/{{form. jobTitle}}</span>
<span v-else></span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="8"> <!-- <el-col :span="8">
...@@ -97,43 +99,84 @@ ...@@ -97,43 +99,84 @@
<th>取/还时间</th> <th>取/还时间</th>
<th>交车公司</th> <th>交车公司</th>
<th>还车公司</th> <th>还车公司</th>
<th>免费天数</th> <th>免费天数</th>
<th>车辆租赁费</th> <th>车辆租赁费</th>
<th>优惠券</th> <th>优惠券</th>
<th>不计免赔</th> <th>不计免赔</th>
<th>租房车押金</th> <th>租房车押金</th>
<th>专职司机服务费</th>
</tr> </tr>
<tr> <tr>
<td>{{form.name}}</td> <td>{{form.name}}{{form.vehicleNumberPlat}}<span v-if="form.vehicleCode">({{form.vehicleCode}})</span><span v-else></span></td>
<td> <td>
<p>取:{{form.orderRentVehicleDetail.startTime}}</p> <p>取:{{form.orderRentVehicleDetail.startTime}}</p>
<p>还:{{form.orderRentVehicleDetail.endTime}}</p> <p>还:{{form.orderRentVehicleDetail.endTime}}</p>
<p v-show="form.orderRentVehicleDetail.dayNum">租借天数{{form.orderRentVehicleDetail.dayNum}}</p>
</td> </td>
<td>{{form.startCompanyName}}</td> <td>{{form.startCompanyName}}</td>
<td>{{form.endCompanyName}}</td> <td>{{form.endCompanyName}}</td>
<td></td>
<td></td>
<td>
<p v-if="form.rentVehiclePriceVO">
<span v-if="form.rentVehiclePriceVO.freeDayNum == 0">
</span>
<span v-else>
会员特权{{form.rentVehiclePriceVO.freeDayNum}}
</span>
</p>
<p v-else>
{{orderInfo('免费天数')}}
</p>
</td>
<td>
<p v-if="form.rentVehiclePriceVO && form.rentVehiclePriceVO.vehicleDayNum > 0">
¥{{form.rentVehiclePriceVO.modelAmount}}*{{form.rentVehiclePriceVO.vehicleNum}}/{{form.rentVehiclePriceVO.vehicleDayNum}}
</p>
<p v-else>
{{orderInfo('车辆租赁费')}}
</p>
</td>
<td> <td>
<p v-if="form.couponList"> <p v-if="form.couponList">
优惠券:
<span <span
v-for="(item,index) in form.couponList" v-for="(item,index) in form.couponList"
:key="index" :key="index"
>{{item.title}}-{{item.usedAmount}}</span> >{{item.title}}-{{item.usedAmount}}</span>
</p> </p>
<p v-else>优惠券:</p> <p v-else></p>
</td> </td>
<td></td>
<td> <td>
<!-- {{form.orderRentVehicleDetail.costDetail.children}} --> <p v-if="form.rentVehiclePriceVO && form.damageSafeAmount > 0">
<!-- <div v-show="form.orderRentVehicleDetail.costDetail"> ¥{{form.rentVehiclePriceVO.damageSafePrice}}/{{form.rentVehiclePriceVO.dayNum}}
<p </p>
v-for="(item,index) in JSON.parse(form.orderRentVehicleDetail.costDetail).children" <p v-else>
:key="index" {{orderInfo('不计免赔')}}
>{{item.key}}:{{item.detail || '无'}}</p> </p>
</div> --> </td>
<td>
<p v-if='form.rentVehiclePriceVO'>
{{form.rentVehiclePriceVO.deposit}}
</p>
<p v-else>
{{orderInfo('租房车押金')}}
</p>
</td>
<td>
<p v-if='form.rentVehiclePriceVO && form.driverAmount > 0'>
¥{{form.rentVehiclePriceVO.driverPrice}}*{{form.rentVehiclePriceVO.driverNum}}/{{form.rentVehiclePriceVO.dayNum}}
</p>
<p v-else>
{{orderInfo('专职司机服务费')}}
</p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
...@@ -149,7 +192,7 @@ ...@@ -149,7 +192,7 @@
@click="resetReturn = true" @click="resetReturn = true"
>更换</el-button> >更换</el-button>
</td> </td>
<td colspan="5">{{form.payWay == 1 ? '微信公众号支付' : form.payWay == 2 ? '支付宝即时支付' : form.payWay == 3 ? '银联支付' : ''}} 共计:¥{{form.realAmount}}</td> <td colspan="6">{{form.payWay == 1 ? '微信支付' : form.payWay == 2 ? '支付宝支付' : form.payWay == 3 ? '银联支付' : '微信支付'}} 共计:¥{{form.realAmount}}</td>
</tr> </tr>
</table> </table>
...@@ -298,6 +341,14 @@ export default { ...@@ -298,6 +341,14 @@ export default {
this.getAllFn() this.getAllFn()
}, },
methods: { methods: {
orderInfo(val){
let info = this.form.detailsOfExpenses.filter(item=>item.key == val)
if (info == '' || info < 0) {
return '无'
}else{
return info[0].detail || info[0].val
}
},
timestamp(now) { timestamp(now) {
var year = now.getFullYear() var year = now.getFullYear()
var month = now.getMonth() + 1 var month = now.getMonth() + 1
...@@ -444,6 +495,9 @@ export default { ...@@ -444,6 +495,9 @@ export default {
width: 50px; width: 50px;
height: 50px; height: 50px;
} }
.order-details .el-dialog--small{
width: 1100px !important;
}
.order-details .el-form-item { .order-details .el-form-item {
margin-bottom: 10px !important; margin-bottom: 10px !important;
} }
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
</span> </span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> --> </el-row>-->
<el-row> <el-row>
<el-col> <el-col>
<el-form-item label="违章截图" :style="{display:'block'}"> <el-form-item label="违章截图" :style="{display:'block'}">
...@@ -87,7 +87,8 @@ ...@@ -87,7 +87,8 @@
</el-row> </el-row>
<el-row> <el-row>
<el-form-item label="违章罚款" style="display: inline-block;width:100%"> <el-form-item label="违章罚款" style="display: inline-block;width:100%">
<el-input style="width:300px" v-model="price" type="number" placeholder="请输入违章罚款金额"></el-input><span style="margin-left:10px"></span> <el-input style="width:300px" v-model="price" type="number" placeholder="请输入违章罚款金额"></el-input>
<span style="margin-left:10px"></span>
</el-form-item> </el-form-item>
</el-row> </el-row>
</el-form> </el-form>
...@@ -157,18 +158,20 @@ export default { ...@@ -157,18 +158,20 @@ export default {
let t = this let t = this
getOneIllegalRow(id).then(response => { getOneIllegalRow(id).then(response => {
if (response.status == 200) { if (response.status == 200) {
let arr = response.data.picture.split(',') if (response.data) {
let fileList2 = [] let arr = response.data.picture.split(',')
let p = {} let fileList2 = []
arr.map(function(item) { let p = {}
p = { arr.map(function(item) {
url: item p = {
} url: item
fileList2.push(p) }
}) fileList2.push(p)
t.price = parseFloat(response.data.price) })
t.fileList2 = fileList2 t.price = parseFloat(response.data.price)
t.id = response.data.id ? response.data.id : undefined t.fileList2 = fileList2
t.id = response.data.id ? response.data.id : undefined
}
} else { } else {
this.$notify({ this.$notify({
title: '失败', title: '失败',
......
...@@ -75,8 +75,8 @@ ...@@ -75,8 +75,8 @@
<el-input v-model="listQuery.vehicleCode" placeholder="请输入车辆编号"></el-input> <el-input v-model="listQuery.vehicleCode" placeholder="请输入车辆编号"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="开始时间" prop="bookStartDate4Query"> <el-form-item label="开始时间" prop="bookStartDate4Query">
<el-date-picker <el-date-picker
...@@ -113,11 +113,11 @@ ...@@ -113,11 +113,11 @@
highlight-current-row highlight-current-row
style="width: 100%" style="width: 100%"
> >
<el-table-column align="center" label="ID" width="70"> <!-- <el-table-column align="center" label="ID" width="70">
<template scope="scope"> <template scope="scope">
<span>{{scope.row.id}}</span> <span>{{scope.row.id}}</span>
</template> </template>
</el-table-column> </el-table-column>-->
<el-table-column width="200" align="center" label="订单号/下单时间"> <el-table-column width="200" align="center" label="订单号/下单时间">
<template scope="scope"> <template scope="scope">
<span>{{scope.row.no}}</span> <span>{{scope.row.no}}</span>
...@@ -154,15 +154,15 @@ ...@@ -154,15 +154,15 @@
<el-table-column width="200" align="center" label="交车公司"> <el-table-column width="200" align="center" label="交车公司">
<template scope="scope"> <template scope="scope">
<span>{{scope.row.startCompanyName}}</span> <span>{{scope.row.startCompanyName}}</span>
<br /> <!-- <br />
<span>({{scope.row.orderRentVehicleDetail.startAddr}})</span> <span>({{scope.row.orderRentVehicleDetail.startAddr}})</span>-->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="200" align="center" label="收车公司"> <el-table-column width="200" align="center" label="收车公司">
<template scope="scope"> <template scope="scope">
<span>{{scope.row.endCompanyName}}</span> <span>{{scope.row.endCompanyName}}</span>
<br /> <!-- <br />
<span>({{scope.row.orderRentVehicleDetail.endAddr}})</span> <span>({{scope.row.orderRentVehicleDetail.endAddr}})</span>-->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="110" align="center" label="订单金额"> <el-table-column width="110" align="center" label="订单金额">
...@@ -170,6 +170,11 @@ ...@@ -170,6 +170,11 @@
<span>{{scope.row.orderAmount}}</span> <span>{{scope.row.orderAmount}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="110" align="center" label="支付方式">
<template scope="scope">
<span>{{scope.row.payWay == 1 ? '微信支付' : scope.row.payWay == 2 ? '支付宝支付' : scope.row.payWay == 3 ? '银联支付' : '微信支付'}}</span>
</template>
</el-table-column>
<!-- <el-table-column align="center" label="订单状态">--> <!-- <el-table-column align="center" label="订单状态">-->
<!-- <template scope="scope">--> <!-- <template scope="scope">-->
...@@ -190,31 +195,31 @@ ...@@ -190,31 +195,31 @@
<template scope="scope"> <template scope="scope">
<el-button <el-button
size="small" size="small"
v-if="scope.row.status >=4" v-if="scope.row.status >4 || scope.row.status == '-1'"
class="el-button el-button--text el-button--small" class="el-button el-button--text el-button--small"
@click="handleHandoverOrderVehicle(scope.row)" @click="handleHandoverOrderVehicle(scope.row)"
>交车记录</el-button> >交车记录</el-button>
<el-button <el-button
size="small" size="small"
v-if="scope.row.status == 6" v-if="scope.row.status == 6 || scope.row.status == '-1'"
class="el-button el-button--text el-button--small" class="el-button el-button--text el-button--small"
@click="handleReturnOrderVehicle(scope.row)" @click="handleReturnOrderVehicle(scope.row)"
>还车记录</el-button> >还车记录</el-button>
<el-button <el-button
size="small" size="small"
v-if="scope.row.status!=5&&scope.row.status > 3" v-if="scope.row.status!=5&&scope.row.status > 4 || scope.row.status == '-1'"
class="el-button el-button--text el-button--small" class="el-button el-button--text el-button--small"
@click="handleRefundVehicle(scope.row)" @click="handleRefundVehicle(scope.row)"
>押金记录</el-button> >押金记录</el-button>
<el-button <el-button
size="small" size="small"
v-if="scope.row.status == 6&&order_btn_order_violcation_save" v-if="scope.row.status == 6&&order_btn_order_violcation_save || scope.row.status == '-1'"
class="el-button el-button--text el-button--small" class="el-button el-button--text el-button--small"
@click="illegalInquiry(scope.row)" @click="illegalInquiry(scope.row)"
>违章查询</el-button> >违章查询</el-button>
<el-button <el-button
size="small" size="small"
v-if="scope.row.status == 3 || scope.row.status == 4" v-if="scope.row.status == 4"
class="el-button el-button--text el-button--small" class="el-button el-button--text el-button--small"
@click="handleViolatePrice(scope.row)" @click="handleViolatePrice(scope.row)"
>取消订单</el-button> >取消订单</el-button>
...@@ -265,21 +270,9 @@ ...@@ -265,21 +270,9 @@
</el-row> </el-row>
<el-form-item label="驾驶证:"> <el-form-item label="驾驶证:">
<viewer> <viewer>
<img :src="form.userLicenseImg" class="voucher" /> <img :src="orderReturnVehicleCrosstown.userLicenseImg" class="voucher" />
</viewer> </viewer>
</el-form-item> </el-form-item>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="交车操作人:">
<span class="label-text">{{orderReturnVehicleCrosstown.operatorName}} {{orderReturnVehicleCrosstown.operatorPhone}}</span>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="交车时间:">
<span class="label-text">{{orderReturnVehicleCrosstown.operatorTime ? dateFormat(orderReturnVehicleCrosstown.operatorTime) : ''}}</span>
</el-form-item>
</el-col>
</el-row>
</div> </div>
<div v-else-if="modalTitle=='还车记录'"> <div v-else-if="modalTitle=='还车记录'">
...@@ -330,7 +323,24 @@ ...@@ -330,7 +323,24 @@
<span>{{form.remak}}</span> <span>{{form.remak}}</span>
</el-form-item> </el-form-item>
</div> </div>
<div v-if="modalTitle=='交车记录'">
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="交车操作人:">
<span
class="label-text"
>{{orderReturnVehicleCrosstown.operatorName}} {{orderReturnVehicleCrosstown.operatorPhone}}</span>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="交车时间:">
<span
class="label-text"
>{{orderReturnVehicleCrosstown.operatorTime ? dateFormat(orderReturnVehicleCrosstown.operatorTime) : ''}}</span>
</el-form-item>
</el-col>
</el-row>
</div>
<div v-show="modalTitle=='还车记录'"> <div v-show="modalTitle=='还车记录'">
<div v-show="orderReturnVehicleCrosstown.type == 3"> <div v-show="orderReturnVehicleCrosstown.type == 3">
<el-form-item label="定损类型:"> <el-form-item label="定损类型:">
...@@ -340,17 +350,20 @@ ...@@ -340,17 +350,20 @@
<span>{{dedDetailDTOListAll}}</span> <span>{{dedDetailDTOListAll}}</span>
</el-form-item> </el-form-item>
<el-form-item label="赔偿事项:"> <el-form-item label="赔偿事项:">
<div v-for="(item,index) in orderReturnVehicleCrosstown.dedDetailDTOList" :key="index"> <div v-if="orderReturnVehicleCrosstown.dedDetailDTOList != ''">
<p <div v-for="(item,index) in orderReturnVehicleCrosstown.dedDetailDTOList" :key="index">
style="line-height: 1;position: relative;top: -3px;" <p
>事项{{index+1}} {{item.deductions}} {{item.cost}}</p> style="line-height: 1;position: relative;top: -3px;"
<viewer :images="item.picList"> >事项{{index+1}} {{item.deductions}} {{item.cost}}</p>
<img v-for="src in item.picList" :src="src" :key="src" class="voucher" /> <viewer :images="item.picList">
</viewer> <img v-for="src in item.picList" :src="src" :key="src" class="voucher" />
</viewer>
</div>
</div> </div>
<div v-else>暂无赔偿事项</div>
</el-form-item> </el-form-item>
<el-form-item label="定损时间:"> <el-form-item label="定损时间:">
<span>{{dateFormat(orderReturnVehicleCrosstown.statusTime)}}</span> <span>{{dateFormat(orderReturnVehicleCrosstown.updTime)}}</span>
</el-form-item> </el-form-item>
</div> </div>
...@@ -364,16 +377,18 @@ ...@@ -364,16 +377,18 @@
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10">
<el-form-item label="收车时间:"> <el-form-item label="收车时间:">
<span class="label-text">{{dateFormat(orderReturnVehicleCrosstown.operatorTime)}}</span> <span
class="label-text"
>{{orderReturnVehicleCrosstown.operatorTime ? dateFormat(orderReturnVehicleCrosstown.operatorTime): ''}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<div class="stepBox" v-if="depositDetail"> <div class="stepBox" v-if="depositDetail">
<div class="title" v-if="depositRefundRecord.length>0">押金退还进度</div> <div class="title" v-if="depositRefundRecord.length>0">押金退还进度</div>
<ul> <ul>
<li > <li>
<p class="inline successInline"></p> <p class="inline successInline"></p>
<p> <p>
成功收车 成功收车
...@@ -397,17 +412,37 @@ ...@@ -397,17 +412,37 @@
<template v-if="item.status==2"> <template v-if="item.status==2">
<div class="picBox"> <div class="picBox">
<div v-show="item.iscomplete">退还押金{{item.restAmount}}(扣除{{item.amount}}元)</div> <div v-show="item.iscomplete">退还押金{{item.restAmount}}(扣除{{item.amount}}元)</div>
<div v-show='!item.iscomplete'>退还押金15000元</div> <div v-show="!item.iscomplete">退还押金15000元</div>
<div style="color: #999" v-show="item.iscomplete">{{item.updTimeStr}}</div> <div style="color: #999" v-show="item.iscomplete">
<button v-if="item.iscomplete">详情</button> {{item.updTimeStr}}
<span>
详情可在
<el-button
type="text"
v-if="item.iscomplete"
style="color:#20a0ff !important"
@click="handleReturnOrderVehicle(activeInfo)"
>【还车记录】</el-button>中查看
</span>
</div>
</div> </div>
</template> </template>
<template v-if="item.status==3"> <template v-if="item.status==3">
<div class="picBox"> <div class="picBox">
<div v-show="item.iscomplete">退还违章保证金{{item.restAmount}}元(扣除{{item.amount}}元)</div> <div v-show="item.iscomplete">退还违章保证金{{item.restAmount}}元(扣除{{item.amount}}元)</div>
<div v-show="!item.iscomplete">退还押金5000元</div> <div v-show="!item.iscomplete">退还押金5000元</div>
<div style="color: #999" v-show="item.iscomplete">{{item.updTimeStr}}</div> <div style="color: #999" v-show="item.iscomplete">
<div v-if="item.iscomplete">详情</div> {{item.updTimeStr}}
<span>
详情可在
<el-button
type="text"
v-if="item.iscomplete"
style="color:#20a0ff !important"
@click="illegalInquiry(activeInfo)"
>【违章记录】</el-button>中查看
</span>
</div>
</div> </div>
</template> </template>
<template v-if="item.status==5"> <template v-if="item.status==5">
...@@ -419,9 +454,19 @@ ...@@ -419,9 +454,19 @@
<template v-if="item.status==6"> <template v-if="item.status==6">
<div class="picBox"> <div class="picBox">
<div v-show="item.iscomplete">退还押金{{item.restAmount}}(扣除{{item.amount}}元)</div> <div v-show="item.iscomplete">退还押金{{item.restAmount}}(扣除{{item.amount}}元)</div>
<div v-show='!item.iscomplete'>退还押金15000元</div> <div v-show="!item.iscomplete">退还押金15000元</div>
<div style="color: #999" v-show="item.iscomplete">{{item.updTimeStr}}</div> <div style="color: #999" v-show="item.iscomplete">
<button v-if="item.iscomplete">详情</button> {{item.updTimeStr}}
<span>
详情可在
<el-button
type="text"
v-if="item.iscomplete"
style="color:#20a0ff !important"
@click="handleReturnOrderVehicle(activeInfo)"
>【还车记录】</el-button>中查看
</span>
</div>
</div> </div>
</template> </template>
</p> </p>
...@@ -438,7 +483,7 @@ ...@@ -438,7 +483,7 @@
定损流程有疑问可联系滴房车 客服 定损流程有疑问可联系滴房车 客服
<a :href="'tel://'+Tel" style="color: #666666;">{{Tel}}</a> <a :href="'tel://'+Tel" style="color: #666666;">{{Tel}}</a>
</template> </template>
</p> --> </p>-->
<!-- <p <!-- <p
class="detailTitle" class="detailTitle"
v-if="item.orderViolation && item.status==3" v-if="item.orderViolation && item.status==3"
...@@ -467,7 +512,7 @@ ...@@ -467,7 +512,7 @@
<div class="picBox"> <div class="picBox">
<img class="picItem" :src="it" alt v-for="(it,ix) in itm.picList" :key="ix" /> <img class="picItem" :src="it" alt v-for="(it,ix) in itm.picList" :key="ix" />
</div> </div>
</div> --> </div>-->
</li> </li>
</ul> </ul>
</div> </div>
...@@ -511,7 +556,12 @@ import { ...@@ -511,7 +556,12 @@ import {
calculate, calculate,
getViolatePrice getViolatePrice
} from 'api/order/rentVehicle' } from 'api/order/rentVehicle'
import { toEast8Date, deepCopyDate, newEast8Date,timestamp2Date } from 'utils/dateUtils' import {
toEast8Date,
deepCopyDate,
newEast8Date,
timestamp2Date
} from 'utils/dateUtils'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import rsCode from '../../../utils/rsCode' import rsCode from '../../../utils/rsCode'
import { getSysRegionByIds } from 'api/vehicle/vehicleInfo/' import { getSysRegionByIds } from 'api/vehicle/vehicleInfo/'
...@@ -532,7 +582,7 @@ export default { ...@@ -532,7 +582,7 @@ export default {
}, },
data() { data() {
return { return {
isInline:false, isInline: false,
pictureList: [], pictureList: [],
dedDetail: [], dedDetail: [],
depositRefundRecord: [], depositRefundRecord: [],
...@@ -543,6 +593,7 @@ export default { ...@@ -543,6 +593,7 @@ export default {
violateAmount: null, violateAmount: null,
row: null, row: null,
topAmount: null, topAmount: null,
activeInfo: null,
form: { form: {
couponAmount: undefined, couponAmount: undefined,
crtHost: undefined, crtHost: undefined,
...@@ -644,7 +695,7 @@ export default { ...@@ -644,7 +695,7 @@ export default {
orderStartTime: undefined, orderStartTime: undefined,
orderEndTime: undefined orderEndTime: undefined
}, },
crtTimeIndex:null, crtTimeIndex: null,
baranchQuery: { baranchQuery: {
zoneId: null zoneId: null
}, },
...@@ -761,40 +812,43 @@ export default { ...@@ -761,40 +812,43 @@ export default {
return getAllZone() return getAllZone()
}, },
bookStartDate4Query: { bookStartDate4Query: {
get: function() { get: function() {
if ( if (
this.$utils.isString(this.listQuery.orderStartTime) && this.$utils.isString(this.listQuery.orderStartTime) &&
this.listQuery.orderStartTime !== '' this.listQuery.orderStartTime !== ''
) { ) {
return toEast8Date(this.listQuery.orderStartTime) return toEast8Date(this.listQuery.orderStartTime)
}
return undefined
},
set: function(date) {
if (this.$utils.isDate(date)) {
this.listQuery.orderStartTime = formatDate(date, 'yyyy-MM-dd')
} else {
this.listQuery.orderStartTime = undefined
}
} }
return undefined
}, },
bookEndDate4Query: { set: function(date) {
get: function() { if (this.$utils.isDate(date)) {
if ( this.listQuery.orderStartTime = formatDate(
this.$utils.isString(this.listQuery.orderEndTime) && date,
this.listQuery.orderEndTime !== '' 'yyyy-MM-dd'
) { )
return toEast8Date(this.listQuery.orderEndTime) } else {
} this.listQuery.orderStartTime = undefined
return undefined }
}, }
set: function(date) { },
if (this.$utils.isDate(date)) { bookEndDate4Query: {
this.listQuery.orderEndTime = formatDate(date, 'yyyy-MM-dd') get: function() {
} else { if (
this.listQuery.orderEndTime = undefined this.$utils.isString(this.listQuery.orderEndTime) &&
} this.listQuery.orderEndTime !== ''
) {
return toEast8Date(this.listQuery.orderEndTime)
}
return undefined
},
set: function(date) {
if (this.$utils.isDate(date)) {
this.listQuery.orderEndTime = formatDate(date, 'yyyy-MM-dd')
} else {
this.listQuery.orderEndTime = undefined
} }
}
}, },
cityRegions() { cityRegions() {
if (!this.$utils.isInteger(this.form.addrProvince)) { if (!this.$utils.isInteger(this.form.addrProvince)) {
...@@ -986,6 +1040,7 @@ export default { ...@@ -986,6 +1040,7 @@ export default {
* 操作-违章查询按钮,显示违章弹框 * 操作-违章查询按钮,显示违章弹框
*/ */
illegalInquiry(row) { illegalInquiry(row) {
this.activeInfo = row
this.currentRow = row this.currentRow = row
this.illegalVisible = true this.illegalVisible = true
}, },
...@@ -1067,7 +1122,6 @@ export default { ...@@ -1067,7 +1122,6 @@ export default {
}, },
getAllOrderVehicleCrosstown() { getAllOrderVehicleCrosstown() {
getOrderVehicleCrosstown(this.orderVehicleQuery).then(response => { getOrderVehicleCrosstown(this.orderVehicleQuery).then(response => {
// console.log(response);
if (response.data.length <= 0) { if (response.data.length <= 0) {
alert('交还车记录不存在') alert('交还车记录不存在')
} else { } else {
...@@ -1082,7 +1136,6 @@ export default { ...@@ -1082,7 +1136,6 @@ export default {
) )
this.dedDetailDTOListAll = sum this.dedDetailDTOListAll = sum
} }
if (response.data[0].imgs) { if (response.data[0].imgs) {
this.otherImg = response.data[0].imgs.split(',') this.otherImg = response.data[0].imgs.split(',')
} }
...@@ -1143,13 +1196,14 @@ export default { ...@@ -1143,13 +1196,14 @@ export default {
}, },
handleRefundVehicle(row) { handleRefundVehicle(row) {
// console.log(row); // console.log(row);
this.activeInfo = row
var that = this var that = this
that.pictureList = [] that.pictureList = []
that.dedDetail = [] that.dedDetail = []
that.depositRefundRecord = [] that.depositRefundRecord = []
that.dedTotal = 0 that.dedTotal = 0
that.Tel = '' that.Tel = ''
getStep(row.no+'&address=1').then(response => { getStep(row.no + '&address=1').then(response => {
response.data.forEach(function(item) { response.data.forEach(function(item) {
if (item.type != 1) { if (item.type != 1) {
that.Tel = item.customerPhone that.Tel = item.customerPhone
...@@ -1192,8 +1246,6 @@ export default { ...@@ -1192,8 +1246,6 @@ export default {
var arr = item.depositRefundRecord var arr = item.depositRefundRecord
} }
that.depositRefundRecord = arr that.depositRefundRecord = arr
// console.log(that.depositRefundRecord); // console.log(that.depositRefundRecord);
} }
...@@ -1298,7 +1350,7 @@ export default { ...@@ -1298,7 +1350,7 @@ export default {
endTime: undefined, endTime: undefined,
zoneId: undefined, zoneId: undefined,
orderEndTime: undefined, orderEndTime: undefined,
orderStartTime:undefined, orderStartTime: undefined,
startCompanyId: undefined startCompanyId: undefined
} }
this.getList() this.getList()
...@@ -1309,10 +1361,15 @@ export default { ...@@ -1309,10 +1361,15 @@ export default {
getList() { getList() {
this.listLoading = true this.listLoading = true
if (this.listQuery.orderStartTime) { if (this.listQuery.orderStartTime) {
this.listQuery.startTime = toEast8Date(this.listQuery.orderStartTime).getTime() this.listQuery.startTime = toEast8Date(
this.listQuery.orderStartTime
).getTime()
} }
if(this.listQuery.orderEndTime){ if (this.listQuery.orderEndTime) {
this.listQuery.endTime = toEast8Date(this.listQuery.orderEndTime).getTime() + 1000*3600*24 - 1; this.listQuery.endTime =
toEast8Date(this.listQuery.orderEndTime).getTime() +
1000 * 3600 * 24 -
1
} }
if (this.listQuery) { if (this.listQuery) {
localStorage.setItem( localStorage.setItem(
...@@ -1396,6 +1453,7 @@ export default { ...@@ -1396,6 +1453,7 @@ export default {
width: 100px; width: 100px;
height: 100px; height: 100px;
border: 1px solid #d9d9d9; border: 1px solid #d9d9d9;
margin-right: 20px;
} }
.label-text { .label-text {
margin-left: 10px; margin-left: 10px;
...@@ -1451,13 +1509,12 @@ export default { ...@@ -1451,13 +1509,12 @@ export default {
color: #333; color: #333;
} }
.stepBox li p span { .stepBox li p span {
color: #999; /* color: #999; */
} }
.successInline{ .successInline {
background: rgb(0, 153, 255) !important; background: rgb(0, 153, 255) !important;
} }
.successInline::before{ .successInline::before {
background: rgb(0, 153, 255) !important; background: rgb(0, 153, 255) !important;
} }
.stepBox li .inline:nth-child(1) { .stepBox li .inline:nth-child(1) {
...@@ -1472,7 +1529,7 @@ export default { ...@@ -1472,7 +1529,7 @@ export default {
content: ''; content: '';
position: absolute; position: absolute;
left: -40px; left: -40px;
top: -43px; top: -51px;
width: 100px; width: 100px;
height: 1px; height: 1px;
/* background: rgb(0, 153, 255); */ /* background: rgb(0, 153, 255); */
......
...@@ -273,25 +273,26 @@ export default { ...@@ -273,25 +273,26 @@ export default {
setPrice() { setPrice() {
let params = [] let params = []
//全局设置 //全局设置
console.log(this.setForm.isGlobal);
if (this.setForm.isGlobal == 1) { if (this.setForm.isGlobal == 1) {
if (this.chooseData == '') { if (this.chooseData == '') {
this.$message.error('请选择要设置的日期') this.$message.error('请选择要设置的日期')
return false return false
} else if(this.setForm.type == 1 && this.setForm.multiple == ''){ } else if (
this.setForm.type == 1 &&
this.setForm.multiple == ''
) {
this.$message.error('请输入倍数') this.$message.error('请输入倍数')
return false return false
}else if(this.setForm.type == 2 && !this.setForm.price){ } else if (this.setForm.type == 2 && !this.setForm.price) {
this.$message.error('请输入绝对值') this.$message.error('请输入绝对值')
return false return false
}else if(this.setForm.type == 3 && this.setForm.level == ''){ } else if (this.setForm.type == 3 && this.setForm.level == '') {
this.$message.error('请选择会员等级') this.$message.error('请选择会员等级')
return false return false
}else if(this.setForm.freeDays == ''){ } else if (this.setForm.freeDays == '') {
this.$message.error('请设置天数') this.$message.error('请设置天数')
return false return false
}else{ } else {
this.chooseData.forEach(element => { this.chooseData.forEach(element => {
let defaults = {} let defaults = {}
defaults.date = element defaults.date = element
...@@ -312,6 +313,7 @@ export default { ...@@ -312,6 +313,7 @@ export default {
}) })
} }
} else { } else {
//特殊设置
this.dayListData.forEach(element => { this.dayListData.forEach(element => {
if (this.setForm.type == 1) { if (this.setForm.type == 1) {
if (!!element.multiple || !!element.freeDays) { if (!!element.multiple || !!element.freeDays) {
...@@ -324,10 +326,11 @@ export default { ...@@ -324,10 +326,11 @@ export default {
vehicleModelId: element.vehicleModelId, vehicleModelId: element.vehicleModelId,
type: this.setForm.type type: this.setForm.type
}) })
} else {
this.$message.error('请设置不同车型不同价格')
return false
} }
// else {
// this.$message.error('请设置不同车型不同价格1')
// return false
// }
} else if (this.setForm.type == 2) { } else if (this.setForm.type == 2) {
if (!!element.price || !!element.freeDays) { if (!!element.price || !!element.freeDays) {
params.push({ params.push({
...@@ -339,10 +342,11 @@ export default { ...@@ -339,10 +342,11 @@ export default {
vehicleModelId: element.vehicleModelId, vehicleModelId: element.vehicleModelId,
type: this.setForm.type type: this.setForm.type
}) })
} else {
this.$message.error('请设置不同车型不同价格')
return false
} }
// else {
// this.$message.error('请设置不同车型不同价格2')
// return false
// }
} else { } else {
if (!!element.level || !!element.freeDays) { if (!!element.level || !!element.freeDays) {
params.push({ params.push({
...@@ -354,20 +358,23 @@ export default { ...@@ -354,20 +358,23 @@ export default {
vehicleModelId: element.vehicleModelId, vehicleModelId: element.vehicleModelId,
type: this.setForm.type type: this.setForm.type
}) })
} else {
this.$message.error('请设置不同车型不同价格')
return false
} }
// else {
// this.$message.error('请设置不同车型不同价格3')
// return false
// }
} }
}) })
} }
if (params == '') { if (params == '') {
this.$message.error('请设置不同车型不同价格') this.$message.error('请设置不同车型不同价格4')
return false return false
} else { } else {
add_edit(params).then(data => { add_edit(params).then(data => {
if (data.status == 200) { if (data.status == 200) {
this.$message.success('设置成功') this.$message.success('设置成功')
this. this.chooseData = []
this.getList() this.getList()
} else { } else {
this.$message.error(data.message) this.$message.error(data.message)
...@@ -389,10 +396,10 @@ export default { ...@@ -389,10 +396,10 @@ export default {
if (this.calendarStatus == 1 && this.setForm.isGlobal == 0) { if (this.calendarStatus == 1 && this.setForm.isGlobal == 0) {
dayList(val).then(data => { dayList(val).then(data => {
data.data.forEach(element => { data.data.forEach(element => {
element.multiple = '' element.multiple = element.multiple || ''
element.price = '' element.price = element.price || ''
element.level = '' element.level = element.level||''
element.freeDays = '' element.freeDays = element.freeDays||''
}) })
this.dayListData = data.data this.dayListData = data.data
this.setMultiplePop = true this.setMultiplePop = true
......
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