书写慢直播站点编辑页面样式、添加早晚高峰时间段页面

saber
jinna 3 years ago
parent eac4d451fc
commit 42507f829b
  1. 18
      src/api/station/station.js
  2. BIN
      src/assets/image/time.png
  3. 175
      src/option/user/info.js
  4. 4
      src/page/index/top/index.vue
  5. 9
      src/router/views/index.js
  6. 296
      src/views/peak/editpeak.vue
  7. 378
      src/views/peak/index.vue
  8. 85
      src/views/station/index.vue
  9. 51
      src/views/stationEdit/index.vue

@ -50,3 +50,21 @@ export const deleteCar = (ids) => {
},
});
};
// 查询早晚高峰时段
export const getPeakList = (query) => {
return request({
url: "/api/blade-business/poc_morning_evening/get-list-all",
method: "get",
params: query,
});
};
// 编辑早晚高峰
export const editPeak = (data) => {
return request({
url: "/api/blade-business/poc_morning_evening/update",
method: "POST",
data,
});
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -1,94 +1,105 @@
import { Message } from 'element-ui';
import { Message } from "element-ui";
export default {
tabs: true,
tabsActive: 1,
column: [
{
label:'tabs',
prop:'tabs',
display: false
}
label: "tabs",
prop: "tabs",
display: false,
},
],
group: [
{
label: '个人信息',
prop: 'info',
column: [{
label: '头像',
type: 'upload',
listType: 'picture-img',
propsHttp: {
res: 'data',
url: 'link',
},
// canvasOption: {
// text: ' ',
// ratio: 0.1
// },
action: '/api/blade-resource/oss/endpoint/put-file',
fileType: 'img',//img/video/audio,
accept: 'image/png, image/jpeg',
tip: '只能上传jpg/png用户头像,且不超过500kb',
span: 12,
row: true,
prop: 'avatar',
uploadBefore: (file, done, loading) => {
if (['image/png', 'image/jpeg'].indexOf(file.type) == -1) {
Message({
message: '只能上传jpg/png用户头像',
type: 'error'
});
loading();
}
else {
done();
}
label: "个人信息",
prop: "info",
column: [
{
label: "头像",
type: "upload",
listType: "picture-img",
propsHttp: {
res: "data",
url: "link",
},
// canvasOption: {
// text: ' ',
// ratio: 0.1
// },
action: "/api/blade-resource/oss/endpoint/put-file",
fileType: "img", //img/video/audio,
accept: "image/png, image/jpeg",
tip: "只能上传jpg/png用户头像,且不超过500kb",
span: 12,
row: true,
prop: "avatar",
uploadBefore: (file, done, loading) => {
if (["image/png", "image/jpeg"].indexOf(file.type) == -1) {
Message({
message: "只能上传jpg/png用户头像",
type: "error",
});
loading();
} else if (file.size / 1024 / 1024 > 0.48) {
Message({
message: "上传的用户头像大小应小于500k",
type: "error",
});
loading();
} else {
done();
}
},
},
}, {
label: '姓名',
span: 12,
row: true,
prop: 'realName'
}, {
label: '用户名',
span: 12,
row: true,
prop: 'name'
}, {
label: '手机号',
span: 12,
row: true,
prop: 'phone'
}, {
label: '邮箱',
prop: 'email',
span: 12,
row: true,
}]
// {
// label: '姓名',
// span: 12,
// row: true,
// prop: 'realName'
// }, {
// label: '用户名',
// span: 12,
// row: true,
// prop: 'name'
// }, {
// label: '手机号',
// span: 12,
// row: true,
// prop: 'phone'
// }, {
// label: '邮箱',
// prop: 'email',
// span: 12,
// row: true,
// }
],
},
{
label: '修改密码',
prop: 'password',
column: [{
label: '原密码',
span: 12,
row: true,
type: 'password',
prop: 'oldPassword'
}, {
label: '新密码',
span: 12,
row: true,
type: 'password',
prop: 'newPassword'
}, {
label: '确认密码',
span: 12,
row: true,
type: 'password',
prop: 'newPassword1'
}]
}
label: "修改密码",
prop: "password",
column: [
{
label: "原密码",
span: 12,
row: true,
type: "password",
prop: "oldPassword",
},
{
label: "新密码",
span: 12,
row: true,
type: "password",
prop: "newPassword",
},
{
label: "确认密码",
span: 12,
row: true,
type: "password",
prop: "newPassword1",
},
],
},
],
}
};

@ -65,7 +65,7 @@
<top-lang></top-lang>
</div>
</el-tooltip> -->
<el-tooltip v-if="showFullScren"
<!-- <el-tooltip v-if="showFullScren"
effect="dark"
:content="isFullScren?$t('navbar.screenfullF'):$t('navbar.screenfull')"
placement="bottom">
@ -73,7 +73,7 @@
<i :class="isFullScren?'icon-tuichuquanping':'icon-quanping'"
@click="handleScreen"></i>
</div>
</el-tooltip>
</el-tooltip> -->
<!-- <img class="top-bar__img"
:src="userInfo.avatar ? website.filePrex + userInfo.avatar : require('@/assets/image/hospital_logo.png')"> -->
<img class="top-bar__img"

@ -151,6 +151,15 @@ export default [
component: () =>
import(/* webpackChunkName: "views" */ "@/views/stationEdit/index"),
},
{
path: "/peak/editpeak",
name: "早晚高峰",
meta: {
i18n: "work",
},
component: () =>
import(/* webpackChunkName: "views" */ "@/views/peak/editpeak"),
},
],
},
];

@ -0,0 +1,296 @@
<template>
<div class="container">
<div class="title_box">
<div class="left">
<div class="img_box" ><img src="~@/assets/image/time.png" alt=""></div>
<div class="left_txt" >{{form.name}}</div>
</div>
<div class="right" @click="handleCancel">X</div>
</div>
<el-form class="form_box" ref="form" :model="form" :inline="true" label-width="80px" label-position="top" :rules="rules">
<el-form-item v-show="form.type == '编辑'" label="早高峰时间段">
<el-time-picker
v-model="mornStart"
:picker-options="{
selectableRange: '00:00:00 - 12:00:00'
}"
placeholder="开始时间段"
value-format="HH:mm"
format="HH:mm"
>
</el-time-picker>
-
<el-time-picker
v-model="mornEnd"
:picker-options="{
selectableRange: '00:00:00 - 12:00:00',
}"
value-format="HH:mm"
format="HH:mm"
placeholder="结束时间段">
</el-time-picker>
</el-form-item>
<el-form-item v-show="form.type == '编辑'" label="晚高峰时间段">
<el-time-picker
v-model="evenStart"
:picker-options="{
selectableRange: '12:00:00 - 23:59:00'
}"
placeholder="任意时间点"
value-format="HH:mm"
format="HH:mm">
</el-time-picker>
-
<el-time-picker
v-model="evenEnd"
:picker-options="{
selectableRange: '12:00:00 - 23:59:00',
}"
value-format="HH:mm"
format="HH:mm"
placeholder="任意时间点">
</el-time-picker>
</el-form-item>
<el-form-item v-show="form.type == '查看'" label="早高峰时间段">
<el-time-picker
v-model="mornStart"
:picker-options="{
selectableRange: '00:00:00 - 12:00:00'
}"
placeholder="开始时间段"
value-format="HH:mm"
format="HH:mm"
disabled>
</el-time-picker>
-
<el-time-picker
v-model="mornEnd"
:picker-options="{
selectableRange: '00:00:00 - 12:00:00',
}"
value-format="HH:mm"
format="HH:mm"
placeholder="结束时间段"
disabled>
</el-time-picker>
</el-form-item>
<el-form-item v-show="form.type == '查看'" label="晚高峰时间段">
<el-time-picker
v-model="evenStart"
:picker-options="{
selectableRange: '12:00:00 - 23:59:00'
}"
placeholder="任意时间点"
value-format="HH:mm"
format="HH:mm"
disabled>
</el-time-picker>
-
<el-time-picker
v-model="evenEnd"
:picker-options="{
selectableRange: '12:00:00 - 23:59:00',
}"
value-format="HH:mm"
format="HH:mm"
placeholder="任意时间点"
disabled>
</el-time-picker>
</el-form-item>
<el-form-item class="btn_box" v-show="form.type == '查看'">
<el-button class="sub_btn" @click="editForm">编辑</el-button>
</el-form-item>
<el-form-item class="btn_box" v-show="form.type == '编辑'">
<el-button class="can_btn" type="primary" @click="handleCancel">取消</el-button>
<el-button class="sub_btn" @click="submitForm">发布</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
import {editPeak} from "@/api/station/station"
import {mapGetters} from "vuex";
export default {
data() {
return {
form:{},
mornStart: '08:30',
mornEnd: '10:30',
evenStart: "17:30",
evenEnd: "18:30",
startTime:null,
rules:{
// mornpeak: [
// { required: true, message: '', trigger: 'blur' },
// ],
// evenpeak: [
// { required: true, message: '', trigger: 'blur' },
// ],
}
}
},
created() {
this.form = this.$route.query;
console.log(this.form)
this.mornStart = this.form.morningStart;
this.mornEnd = this.form.morningEnd;
this.evenStart = this.form.eveningStart;
this.evenEnd = this.form.eveningEnd;
},
computed:{
...mapGetters(["tagWel", "tagList", "tag", "website"]),
},
methods: {
findTag(value) {
let tag, key;
this.tagList.map((item, index) => {
if (item.value === value) {
tag = item;
key = index;
}
});
return {tag: tag, key: key};
},
handleCancel(){
let {tag, key} = this.findTag(this.$route.fullPath);
this.$store.commit("DEL_TAG", tag);
if (tag.value === this.tag.value) {
tag = this.tagList[key === 0 ? key : key - 1]; //
this.$router.push({
path:"/peak/index"
})
}
},
editForm(){
this.form.type = '编辑'
this.form.name = '时间段编辑'
},
submitForm(){
console.log(this.mornStart,this.mornEnd)
console.log(this.mornStart > this.mornEnd)
if(this.mornStart == null || this.mornEnd == null || this.evenStart == null || this.evenEnd == null){
this.$message.error('请选择早晚高峰时间段')
}else{
if(this.mornStart > this.mornEnd || this.evenStart > this.evenEnd){
this.$message.error('结束时间不应该小于开始时间')
}else{
let tmp = {
id: this.form.id,
morningStart: this.mornStart,
morningEnd: this.mornEnd,
eveningStart: this.evenStart,
eveningEnd: this.evenEnd
}
console.log(tmp)
this.$confirm('是否修改为当前车辆信息?', '提示信息', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
editPeak(tmp).then(res =>{
console.log(res)
if(res.data.code == 200){
this.$message.success('修改成功')
setTimeout(() =>{
let {tag, key} = this.findTag(this.$route.fullPath);
this.$store.commit("DEL_TAG", tag);
if (tag.value === this.tag.value) {
tag = this.tagList[key === 0 ? key : key - 1]; //
this.$router.push({
path:"/peak/index"
})
}
},500)
}
})
})
}
}
},
},
}
</script>
<style lang="scss" scoped>
.container{
width: 98%;
height: 95%;
background: #FFF;
margin: 0 auto;
overflow: auto;
.title_box{
width: 95%;
height: 80px;
display: flex;
align-items: center;
justify-content: space-between;
margin: 0 auto;
.left{
height: 100%;
display: flex;
align-items: center;
.img_box{
width: 30px;
height: 30px;
margin:0px 18px 0px 0px;
}
.left_txt{
font-size: 20px;
font-weight: 800;
color: #333333;
}
}
.right{
cursor: pointer;
}
}
.form_box{
width: 95%;
margin: 0 auto;
/deep/ .el-form-item{
width: 49%;
margin-bottom: 7px;
.el-date-editor{
width: 48%;
}
}
}
/deep/ .btn_box{
display: flex;
align-items: center;
justify-content: center;
width: 100% !important;
margin-top: 60px;
.can_btn{
width: 118px;
height: 48px;
background: #E2E2E2;
box-shadow: inset 3px 4px 5px 1px rgba(0,0,0,0.07);
border-radius: 2px 2px 2px 2px;
border: none;
color: #999999;
}
.sub_btn{
width: 120px;
height: 50px;
background: url("~@/assets/image/btn.png") no-repeat;
background-size: 100% 100%;
color: #fff;
border: none;
margin-left: 30px;
}
}
}
</style>

@ -0,0 +1,378 @@
<template>
<basic-container>
<avue-crud :option="option" :table-loading="loading" :page.sync="page" :data="data"
ref="crud" v-model="form" @search-change="searchChange" @search-reset="searchReset" @current-change="currentChange"
@size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"
:before-open="beforeOpen">
<template slot-scope="{row}" slot="default">
<span>{{row.carLiveChannelVoList.length > 0 ? row.carLiveChannelVoList.find(item => item.status == "1") ? row.carLiveChannelVoList.find(item => item.status == "1").channelName : '' : ''}}</span>
</template>
<template slot-scope="{row}" slot="mornPeak">
<span>{{row.morningStart + '-' + row.morningEnd}}</span>
</template>
<template slot-scope="{row}" slot="evenPeak">
<span>{{row.eveningStart + '-' + row.eveningEnd}}</span>
</template>
<template slot-scope="{row}" slot="menu">
<el-button size="small"  @click="handleView(row)">查看</el-button>
<el-button size="small"  @click="handleEdit(row)">编辑</el-button>
</template>
<!-- <template slot-scope="scope" slot="menuLeft">
<el-button type="primary" size="small" @click="addCar">新增车辆</el-button>
</template> -->
<!-- 自定义弹窗按钮 -->
<template slot-scope="{row,index,type}" slot="menuForm">
<el-button icon="el-icon-circle-plus-outline" size="small" v-if="type == 'add'"
@click="$refs.crud.rowSave()">保存</el-button>
<el-button v-if="type == 'add'" type="primary" icon="el-icon-check" size="small"
@click="addPublish">提交</el-button>
</template>
</avue-crud>
</basic-container>
</template>
<script>
import {getPeakList} from "@/api/station/station"
export default {
data() {
return {
deptName: "",
form: {
addData:[{
aisleNum:'1',aisleName:''
}]
},
loading: true,
parentId: 0,
// page: {
// pageSize: 10,
// currentPage: 1,
// total: 0,
// },
isShow: true,
selectDay: '',
addOption: {},
addOption1: {},
activeName: '',
isNumber: false,
option: {
height: 'auto',
calcHeight: 30,
tip: false,
searchShowBtn:false,
refreshBtn:false,
columnBtn:false,
searchShow: true,
searchMenuSpan: 6,
border: false,
index: true,
viewBtn: false,
editBtn: false,
delBtn: false,
addBtn: false,
selection: true,
saveBtn: false,
updateBtn: false,
cancelBtn: false,
dialogType: 'dialog',
dialogClickModal: false,
dialogMenuPosition:'center',
align:'center',
column: [
{
label: '早高峰时段',
prop: 'mornPeak',
type: 'input',
viewDisplay: false,
addDisplay:false,
editDisplay:false,
viewDisplay:false,
},
{
label: '晚高峰时段',
prop: 'evenPeak',
type: 'input',
viewDisplay: false,
addDisplay:false,
editDisplay:false,
viewDisplay:false,
},
]
},
data: [],
count: 0,
dayArr: [],
depId: '',
tabArr: [],
tabsArr: [],
roleName: '',
isSelect: false,
hospitalArr: [],
isEdit: false,
valTime: '',
isShowHos: false,
tabArr1: [],
deadline: ''
};
},
computed: {
},
methods: {
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
// console.log(params)
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}){
// console.log(params)
// console.log(page)
// this.loading = true
getPeakList().then(res =>{
console.log(res)
this.data = res.data.data;
// this.page.total = res.data.data.total
this.loading = false
})
},
beforeOpen(done, type) {
console.log(type)
if(type == 'add'){
this.form = {
addData:[{
aisleNum:undefined,aisleName:''
}]
}
}
done();
},
//
handleEdit(row){
row.type = "编辑",
row.name = '时间段编辑'
this.$router.push({
path:"/peak/editpeak",
query:row
})
},
//
handleView(row){
console.log(row)
row.type="查看"
row.name = '时间段查看'
this.$router.push({
path:"/peak/editpeak",
query:row
})
},
},
};
</script>
<style lang='scss' scoped>
::v-deep .el-tabs__content {
height: 550px;
}
::v-deep .avue-crud__menu{
display: none;
}
::v-deep .cla {
color: #F93A4A;
}
::v-deep .avue-input-number {
width: 40% !important;
}
::v-deep .el-calendar-day {
display: flex;
align-items: center;
justify-content: center;
&:hover{
cursor: default;
}
}
::v-deep .selected {
background: #EBEEF5;
pointer-events: none;
// cursor: move;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
::v-deep .select {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
::v-deep .isSelected {
background: #1677FF;
}
::v-deep .isCal{
height: 80%;
overflow-y: auto;
}
</style>
<style lang="scss">
.el-drawer .avue-form {
padding: 0 !important;
}
.dialog_box {
right: 10%;
position: absolute;
top: 50%;
transform: translateY(-50%);
}
.el-drawer__wrapper {
.number_box {
width: 800px !important;
overflow: hidden !important;
.el-drawer__body {
overflow: hidden;
.el-tabs__content{
height: auto;
position: absolute;
bottom: 0;
top: 60px;
left: 20px;
right: 20px;
overflow: auto;
}
}
.isTab{
.el-tabs{
.el-tabs__content{
bottom: 100px !important;
}
}
}
.title_box {
// padding: 0 40px;
// margin-top: 40px;
.title_txt {
display: flex;
height: 30px;
align-items: center;
justify-content: space-between;
.txt {
color: rgba(0, 0, 0, .85);
font-weight: 500;
line-height: 24px;
}
.img_box {
img {
width: 30px;
height: 30px;
}
}
}
.sub_txt {
font-size: 14px;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-weight: 400;
color: #999999;
line-height: 16px;
}
}
.tab_box {
margin-top: 40px;
padding: 0 40px;
position: absolute;
left: 0;
right: 0;
top: 80px;
bottom: 100px;
overflow: hidden;
.hos_box {
font-size: 16px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
font-weight: bold;
color: #333333;
bottom: 65px;
position: absolute;
}
.hos_sele{
bottom: 15px;
position: absolute;
}
.monment_txt {
margin: 15px 0 20px 0;
font-size: 16px;
font-family: Microsoft YaHei-Bold, Microsoft YaHei;
font-weight: bold;
color: #333333;
}
// .form_box {
// position: absolute;
// left: 0;
// right: 0;
// top: 20px;
// bottom: 10px;
// padding-bottom: 20px;
// overflow: scroll;
// }
}
.button_box {
width: 100%;
height: 90px;
background: #FFFFFF;
box-shadow: 0px -8px 16px 1px rgba(32, 50, 101, 0.15);
position: absolute;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
}
}
}
</style>

@ -75,25 +75,26 @@
width="560"
trigger="hover"
effect="light"
>
<div slot="content" class="pop_box" @mouseleave="leaveBox" @mouseenter="enterBox">
<div class="pop_tit">信息展示</div>
<div class="tips_box">
<div class="tips">{{item.tips}}</div>
</div>
<div class="tip_box red">
<div class="tip_txt">{{item.red}}</div>
</div>
<div class="tip_box green">
<div class="tip_txt green_txt">{{item.green}}</div>
</div>
<div class="tip_box yellow">
<div class="tip_txt yellow_txt">{{item.yellow}}</div>
<div class="tip_Box">
<div class="tips_box">
<div class="tips">{{item.tips}}</div>
</div>
<div class="tip_box red">
<div class="tip_txt">{{item.red}}</div>
</div>
<div class="tip_box green">
<div class="tip_txt green_txt">{{item.green}}</div>
</div>
<div class="tip_box yellow">
<div class="tip_txt yellow_txt">{{item.yellow}}</div>
</div>
</div>
<el-carousel
trigger="click"
height="240px"
indicator-position="outside"
>
<el-carousel-item v-for="item1 in item.imgList" :key="item1">
@ -158,25 +159,25 @@
width="560"
trigger="hover"
effect="light"
>
<div slot="content" class="pop_box" @mouseleave="leaveBox1" @mouseenter="enterBox1">
<div class="pop_tit">信息展示</div>
<div class="tips_box">
<div class="tips">{{item.tips}}</div>
</div>
<div class="tip_box red">
<div class="tip_txt">{{item.red}}</div>
</div>
<div class="tip_box green">
<div class="tip_txt green_txt">{{item.green}}</div>
</div>
<div class="tip_box yellow">
<div class="tip_txt yellow_txt">{{item.yellow}}</div>
<div class="tip_Box">
<div class="tips_box">
<div class="tips">{{item.tips}}</div>
</div>
<div class="tip_box red">
<div class="tip_txt">{{item.red}}</div>
</div>
<div class="tip_box green">
<div class="tip_txt green_txt">{{item.green}}</div>
</div>
<div class="tip_box yellow">
<div class="tip_txt yellow_txt">{{item.yellow}}</div>
</div>
</div>
<el-carousel
trigger="click"
height="240px"
indicator-position="outside"
>
<el-carousel-item v-for="item1 in item.imgList" :key="item1">
@ -274,7 +275,7 @@ export default {
}else{
this.active = ''
}
},100)
},500)
},
hidePopver2(val){
setTimeout(() =>{
@ -289,7 +290,7 @@ export default {
}else{
this.active1 = ''
}
},200)
},500)
},
@ -309,7 +310,6 @@ export default {
let ranm = [];
this.stationArr.forEach( (item, index)=> {
if(index < parseInt(this.stationArr.length / 2)){
item.isShow = false;
temp.push(item)
}else{
ranm.push(item)
@ -325,9 +325,11 @@ export default {
</script>
<style lang="scss">
.pop_box{
height: 100%;
padding-bottom: 20px;
.pop_tit{
width: 100%;
height: 60px;
height: 8%;
border-bottom: 1px solid #EEEEEE;
font-weight: bold;
color: #333333;
@ -336,12 +338,18 @@ export default {
align-items: center;
justify-content: center;
}
.tip_Box{
width: 100%;
height: 38%;
}
.tips_box{
width: 99%;
height: 32px;
// height: 32px;
background: url("~@/assets/image/tips_bag.png") no-repeat;
background-size: 100% 100%;
margin: 25px 0 15px 0;
margin: 3% 0 0 0;
height: 20%;
.tips{
@ -364,10 +372,12 @@ export default {
.tip_box{
width: 99%;
height: 32px;
// height: 32px;
background: url("~@/assets/image/red_bag.png") no-repeat;
// background-size: 100% 100%;
margin-top: 15px;
margin-top: 10px;
height: 20%;
.tip_txt{
width:88%;
@ -409,12 +419,17 @@ export default {
}
.el-carousel{
margin-top:36px
margin-top:5px;
height:55%
}
.el-carousel__container{
height: 86%;
}
.el-tooltip__popper {
width: 560px !important;
border: 1px solid #F9F9F9 !important;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
height:50% !important;
}
/* 改变三角形颜色 */

@ -20,21 +20,24 @@
<el-form-item label="情怀励志信息提示:" prop="yellow">
<el-input type="textarea" v-model="form.yellow"></el-input>
</el-form-item>
<el-form-item label="景区图片:" prop="imgs">
<el-form-item :label="'景区图片' + ' ' + imgList.length + '/' + 5" prop="imgs">
<el-upload
v-model="form.imgs"
class="upload_box"
:class="imgList.length >= 5 ? 'hide' : ''"
:headers="headers"
action="/api/pro-bus-line-img/upload"
:data={imgType:1,busLineId:form.id}
:data={imgType:1}
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-success="handleAvatarSuccess"
:on-remove="handleRemove1"
:before-upload="beforeAvatarUpload"
:file-list="fileList"
accept="jpg,png">
<div class="up_box">
limit="5"
accept=".jpg,.png"
>
<div class="up_box" v-show="imgList.length < 5">
<div class="upload_item">
<div class="img">
<img src="~@/assets/image/upload.png" alt="">
@ -48,9 +51,10 @@
</div>
</el-upload>
</el-form-item>
<el-form-item label="广告位图片:" prop="adverimgs">
<el-form-item :label="'广告位图片' + ' ' + adverimgs.length + '/' + 5" prop="adverimgs">
<el-upload
class="upload_box"
:class="adverimgs.length >= 5 ? 'hide' : ''"
action="/api/pro-bus-line-img/upload"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
@ -59,9 +63,9 @@
:headers="headers"
:on-success="handleAdverSuccess"
:file-list="fileList1"
:data={imgType:2,busLineId:form.id}
:data={imgType:2}
accept=".jpg,.png">
<div class="up_box">
<div class="up_box" v-show="adverimgs.length < 5">
<div class="upload_item">
<div class="img">
<img src="~@/assets/image/upload.png" alt="">
@ -75,9 +79,10 @@
</div>
</el-upload>
</el-form-item>
<el-form-item label="地图图片:" prop="mapimgs">
<el-form-item :label="'地图图片' + ' ' + mapimgs.length + '/' + 5" prop="mapimgs">
<el-upload
class="upload_box"
:class="mapimgs.length >= 5 ? 'hide' : ''"
action="/api/pro-bus-line-img/upload"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
@ -86,9 +91,9 @@
:headers="headers"
:before-upload="beforeAvatarUpload"
:file-list="fileList2"
:data={imgType:3,busLineId:form.id}
accept="jpg,png">
<div class="up_box">
:data={imgType:3}
accept=".jpg,.png">
<div class="up_box" v-show="mapimgs.length < 5">
<div class="upload_item">
<div class="img">
<img src="~@/assets/image/upload.png" alt="">
@ -220,6 +225,7 @@ export default {
if(res.code == 200){
this.imgList.push({imgType:res.data.imgType,imgUrl:res.data.imgUrl,busLineId:this.form.id})
}
console.log(this.imgList)
// this.form.imgs = this.imgList
},
//广
@ -238,19 +244,21 @@ export default {
beforeAvatarUpload(file) {
const isJPG = file.type === 'image/jpeg';
const isPNG = file.type === 'image/png';
const isLt2M = file.size / 1024 / 1024 < 2;
const isLt2M = file.size / 1024 / 1024 < 1;
if (!isJPG && !isPNG) {
this.$message.error('上传头像图片只能是 JPG 格式或者 PNG 格式!');
return false
}
if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 2MB!');
this.$message.error('上传头像图片大小不能超过 1MB!');
return false
}
// return isJPG && isLt2M;
return true;
},
submitForm(){
this.$refs['form'].validate((valid) => {
if (valid) {
if(this.adverimgs.length !== 0 && this.mapimgs.length !== 0 && this.imgList.length !== 0){
if(this.adverimgs.length !== 0 && this.imgList.length !== 0){
this.$confirm('是否发布最新提示信息、图片信息?', '提示信息', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -296,8 +304,8 @@ export default {
// });
});
}else{
this.$message.error('景区图片、广告位图片、地图图片均为必填项,请上传相关图片')
}
this.$message.error('景区图片、广告位图片为必填项,请上传相关图片')
}
}
})
@ -378,6 +386,9 @@ export default {
/deep/.el-upload{
width: 394px;
height: 174px;
border: none;
.up_box{
width: 100%;
@ -386,6 +397,7 @@ export default {
align-items: center;
justify-content: center;
flex-direction: column;
border: 1px dashed #c0ccda;
.upload_item{
@ -435,6 +447,11 @@ export default {
}
}
}
.hide{
/deep/ .el-upload--picture-card {
display: none;
}
}
/deep/ .btn_box{
display: flex;
align-items: center;

Loading…
Cancel
Save