Commit 8c9c1b69 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/luochao/superman into master

parents 891c77ae 35b51642
......@@ -102,6 +102,10 @@
</div>
</div>
</div>
<el-form-item label="地址说明">
<el-input type="text" class="w300" v-model="addMsg.AddressDes" size="small">
</el-input>
</el-form-item>
<el-form-item label="标签">
<el-tag :key="tag" v-for="(tag,index) in TagsList" style="margin-right:5px;" closable
:disable-transitions="false" @close="handleClose(tag,index)">
......@@ -139,7 +143,7 @@
</div>
<div>
<el-tabs>
<el-tab-pane v-for="(subItem,subIndex) in addMsg.InnerHotelImaList" :key="subIndex" :label="subItem.Label==''?'酒店图片':subItem.Label">
<el-tab-pane v-for="(subItem,subIndex) in addMsg.InnerHotelImaList" :key="subIndex" :label="subItem.Label==''?'默认':subItem.Label">
<div class="InnerHotelDiv">
<div class="InnerHoImgDiv" v-for="(sItem,sIndex) in subItem.ImgList" :key="sIndex">
<img :src="sItem.Path" />
......@@ -152,7 +156,6 @@
</div>
</template>
<template v-if="activeName==2">
<!-- <div class="jz_HotelName">{{addMsg.HotelRealName}}</div> -->
<el-form-item label="开业时间">
<el-input placeholder="开业时间" class="w300" v-model="addMsg.HotelInfo.OpenTime"></el-input>
</el-form-item>
......@@ -356,6 +359,7 @@
DecorationTime: "", //装修时间
Into: "", //酒店介绍
},
AddressDes:'' //地址说明
},
//酒店图片
HotelImgArr: [],
......@@ -401,7 +405,6 @@
methods: {
//获取子组件新增分类和图片
getHotelImg(data){
console.log(data,'datasss');
this.addMsg.InnerHotelImaList = data;
this.isShowHotelImg=false;
},
......@@ -485,7 +488,6 @@
this.addMsg.RoomFacilities = this.chooseObj.RoomFacilities.toString();
this.addMsg.ServiceItems = this.chooseObj.ServiceItems.toString();
this.addMsg.Bookings = this.chooseObj.Bookings;
// this.addMsg.InnerHotelImaList = this.HotelImgArr;
this.addMsg.ID = this.hotelID;
this.addMsg.Tags = this.TagsList.toString();
this.addMsg.HotelImageList = this.HotelImageArray;
......@@ -523,7 +525,6 @@
msg,
res => {
if (res.data.resultCode == 1) {
console.log("res.data", res.data);
var tempMsg = res.data.data;
_self.addMsg.ID = tempMsg.ID;
_self.addMsg.HotelRealName = tempMsg.HotelRealName;
......
<style>
.hotelmanagement .hotelResource {
.GnHotelmanagement .hotelResource {
width: 100%;
min-height: 500px;
margin-top: 20px;
}
.hotelmanagement .resourceListMan {
.GnHotelmanagement .resourceListMan {
width: 215px;
height: 350px;
background-color: #fff;
......@@ -17,18 +17,18 @@
float: left;
}
.hotelmanagement .resourceListMan:hover {
.GnHotelmanagement .resourceListMan:hover {
box-shadow: 0px 0px 20px rgba(191, 191, 191, 1);
transition: all linear 0.5s;
}
.hotelmanagement .reTopInfo {
.GnHotelmanagement .reTopInfo {
width: 100%;
height: 123px;
position: relative;
}
.hotelmanagement .reTopInfo img {
.GnHotelmanagement .reTopInfo img {
position: absolute;
width: 100%;
height: 100%;
......@@ -37,13 +37,13 @@
border-top-right-radius: 4px;
}
.hotelmanagement .resTypeList {
.GnHotelmanagement .resTypeList {
position: absolute;
top: 10px;
left: 10px;
}
.hotelmanagement .resTypeList span {
.GnHotelmanagement .resTypeList span {
display: inline-block;
padding: 1px 5px;
border-radius: 10px;
......@@ -51,34 +51,34 @@
margin-right: 10px;
}
.hotelmanagement .L1 {
.GnHotelmanagement .L1 {
background-color: #e95252;
}
.hotelmanagement .L2 {
.GnHotelmanagement .L2 {
background-color: #47bf8c;
}
.hotelmanagement .L3 {
.GnHotelmanagement .L3 {
background-color: #2aaef2;
}
.hotelmanagement .L4 {
.GnHotelmanagement .L4 {
background-color: #9cf;
}
.hotelmanagement .L5 {
.GnHotelmanagement .L5 {
background-color: #00c6ff;
margin-top: 5px;
}
.hotelmanagement .starSu {
.GnHotelmanagement .starSu {
position: absolute;
bottom: 8px;
right: 10px;
}
.hotelmanagement .sushe {
.GnHotelmanagement .sushe {
background-color: #ffc800;
display: inline-block;
padding: 1px 5px;
......@@ -86,7 +86,7 @@
color: #fff;
}
.hotelmanagement .hotelTitle {
.GnHotelmanagement .hotelTitle {
margin: 22px 16px 0 16px;
font-size: 14px;
color: #333333;
......@@ -95,16 +95,16 @@
white-space: nowrap;
}
.hotelmanagement .brandList {
.GnHotelmanagement .brandList {
margin: 10px 16px;
}
.hotelmanagement .brandList i {
.GnHotelmanagement .brandList i {
position: relative;
top: 2px;
}
.hotelmanagement .brand {
.GnHotelmanagement .brand {
float: left;
width: 120px;
overflow: hidden;
......@@ -112,46 +112,40 @@
white-space: nowrap;
}
.hotelmanagement .dayNum {
.GnHotelmanagement .dayNum {
float: right;
}
.hotelmanagement .Address {
.GnHotelmanagement .Address {
margin: 0 16px;
height: 17px;
overflow: hidden;
}
.hotelmanagement .Address i {
.GnHotelmanagement .Address i {
color: #bbbbbb;
}
.hotelmanagement .iconfont {
margin-right: 5px;
position: relative;
top: -4px;
}
.hotelmanagement .icon-star1 {
.GnHotelmanagement .icon-star1 {
color: #ffc800;
}
.hotelmanagement .star i {
.GnHotelmanagement .star i {
margin-right: 3px;
font-size: 12px;
}
.hotelmanagement .honor {
.GnHotelmanagement .honor {
color: #ff793e;
}
.hotelmanagement .dieline {
.GnHotelmanagement .dieline {
color: #2aaef2;
font-size: 14px;
top: 1px !important;
}
.hotelmanagement .AddressInner {
.GnHotelmanagement .AddressInner {
float: right;
width: 160px;
height: 18px;
......@@ -162,12 +156,12 @@
-webkit-box-orient: vertical;
}
.hotelmanagement .btnList {
.GnHotelmanagement .btnList {
margin-top: 12px;
text-align: center;
}
.hotelmanagement .hotelBtnMan {
.GnHotelmanagement .hotelBtnMan {
width: 50px;
height: 28px;
border-radius: 14px;
......@@ -176,11 +170,11 @@
background-color: #f76f6f;
}
.hotelmanagement .w150 .el-input {
.GnHotelmanagement .w150 .el-input {
width: 150px;
}
.hotelmanagement .RemainingInventory {
.GnHotelmanagement .RemainingInventory {
position: absolute;
width: 60px;
height: 60px;
......@@ -197,29 +191,29 @@
margin-left: -30px;
}
.hotelmanagement .delScien {
.GnHotelmanagement .delScien {
position: absolute;
right: 10px;
top: 10px;
display: none;
}
.hotelmanagement .delScien:hover {
.GnHotelmanagement .delScien:hover {
color: #f76f6f;
cursor: pointer;
}
.hotelmanagement .resourceListMan:hover .delScien {
.GnHotelmanagement .resourceListMan:hover .delScien {
display: block;
}
.hotelmanagement .comCursorUrl {
.GnHotelmanagement .comCursorUrl {
cursor: pointer;
}
</style>
<template>
<div class="flexOne hotelmanagement">
<div class="flexOne GnHotelmanagement">
<div class="query-box">
<ul>
<li>
......@@ -232,7 +226,6 @@
<li>
<span>
<em>{{$t('system.quety_area')}}</em>
<el-select v-model="msg.QProvince" class="w150" filterable @change="getProvinceList(msg.QProvince,2)"
:placeholder="$t('hotel.hotel_province')">
<el-option v-for="item in provinceList" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
......@@ -287,75 +280,69 @@
<button class="hollowFixedBtn" type="button"
@click="resetPageIndex(),selectResource()">{{$t('pub.searchBtn')}}</button>
<button class="normalBtn" type="button" @click="goSubInfo('GnHotelInfo')">{{$t('pub.addBtn')}}</button>
<button class="normalBtn" type="button" @click="goShelves(1)">批量上架</button>
<button class="normalBtn" type="button" @click="goShelves(2)">批量下架</button>
</li>
</ul>
</div>
<div class="hotelResource clearfix" v-loading="loading">
<div class="resourceListMan" v-for="(item,index) in tableData" :key="index">
<div class="reTopInfo" :class="{'comCursorUrl':item.URL}" @click="OpenNewUrl(item.URL)">
<img v-if="!item.PicPath" src="../../assets/img/bg_c3@3x.png">
<img v-else :src='compressImg(item.PicPath, "filt", 213, "")' :onerror="defaultImg">
<div class="resTypeList">
<span v-for="(items,index) in item.OpenPlatformList" :key="index"
:class="{'L1':items.ID==1,'L2':items.ID==2,'L3':items.ID==3,'L4':items.ID==4,'L5':items.ID==5}">{{items.Name}}</span>
</div>
<div class="delScien" @click.stop="isdelete(item.ID)">
<i class="iconfont icon-xingzhuang"></i>
</div>
<div class="starSu">
<div class="star" v-if="item.Star<8">
<i v-for="(items,index) in item.starArr" class="iconfont icon-star1" :key="index"></i>
</div>
<span v-if="item.Star==8" class="sushe">{{$t('restaurant.res_homeFacility')}}</span>
<span v-if="item.Star==9" class="sushe">{{$t('restaurant.res_SpringHotel')}}</span>
</div>
</div>
<el-tooltip class="item" effect="dark" :content="item.Name" placement="top-start" popper-class="max-w250">
<div class="hotelTitle">{{item.Name}}</div>
</el-tooltip>
<el-tooltip class="item" effect="dark" :content="item.HotelRealName" placement="top-start"
popper-class="max-w250">
<div class="hotelTitle fz12">{{$t('ground.zhenshimingcheng')}}: {{item.HotelRealName}}</div>
</el-tooltip>
<div class="brandList clearfix" style="display:none;">
<div class="brand">
<i class="iconfont honor icon-img_biaozhi"></i>
{{item.ChainBrand}}
</div>
<div class="dayNum">
<i class="iconfont dieline icon-img_shijian"></i>
{{item.DieLine}}{{$t('hotel.hotel_day')}}
</div>
</div>
<div class="Address" style="margin-top:10px;">
<div v-show="item.Address">
<i class="iconfont icon-img_dz"></i>
<el-tooltip class="item" effect="dark" :content="item.Address" placement="top-start">
<div class="AddressInner">{{item.Address}}</div>
</el-tooltip>
</div>
</div>
<el-tooltip class="item" effect="dark" :content="item.UpdateName+''+item.UpdateTimeStr" placement="top-start">
<div style="padding-left:15px;padding-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">
<i style="top:2px" class="iconfont icon-renyuanguanli"></i>
<span v-if="item.UpdateName && item.UpdateName!=''">{{item.UpdateName}}</span>
{{item.UpdateTimeStr}}
</div>
</el-tooltip>
<div class="btnList">
<div style="display:flex;justify-content:center;">
<button @click="goSubInfo('GnHotelInfo',item.ID)" class="hotelBtnMan">{{$t('pub.updateMsg')}}</button>
<button @click="goproduct('HotelProductManage',item)" class="hotelBtnMan"
v-if="userInfo.RB_Group_id!=QjGroupId()">房型</button>
<br />
<button v-if="IsHotelPriceStock==1" style="width:80px;margin-left:10px;"
@click="goUrl('HotelProductManage',item)" class="hotelBtnMan">{{$t('ground.baojiayukucun')}}</button>
<el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" style="width: 100%;min-height:450px;"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="50px">
</el-table-column>
<el-table-column prop="Name" label="酒店名称">
<template slot-scope="scope">
<div style="display:flex;align-items:center;">
<div><img :src="scope.row.PicPath" style="width:50px;" /></div>
<div style="margin-left:5px;">{{scope.row.Name}}</div>
</div>
</div>
</div>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.currentPage"
:page-size="this.msg.pageSize" layout="total,prev, pager, next, jumper" :total="msg.total"></el-pagination>
</template>
</el-table-column>
<el-table-column prop="StarName" label="星级" width="100px">
</el-table-column>
<!-- <el-table-column prop="OpenPlatformList" label="开放平台">
<template slot-scope="scope">
<el-tag v-for="(item,index) in scope.row.OpenPlatformList" size="small" style="margin-right:5px;" :key="index">{{item.Name}}</el-tag>
</template>
</el-table-column> -->
<el-table-column prop="TagList" label="标签">
<template slot-scope="scope">
<el-tag v-for="(item,index) in scope.row.TagList" size="small" style="margin-right:5px;" :key="index">{{item}}</el-tag>
</template>
</el-table-column>
<el-table-column prop="UpdateName" label="修改人">
</el-table-column>
<el-table-column prop="UpdateTimeStr" label="修改时间">
</el-table-column>
<el-table-column prop="Address" label="地址">
<template slot-scope="scope">
{{scope.row.ProvinceName}}-{{scope.row.CityName}}
</template>
</el-table-column>
<el-table-column prop="Tel" label="电话">
</el-table-column>
<el-table-column prop="HotelStatus" label="状态">
<template slot-scope="scope">
<span v-if="scope.row.HotelStatus==1" style="color:green;">上架</span>
<span v-if="scope.row.HotelStatus==2" style="color:red;">下架</span>
</template>
</el-table-column>
<el-table-column label="操作" width="100">
<template slot-scope="scope">
<!-- <button @click="goSubInfo('GnHotelInfo',scope.row.ID)" class="hotelBtnMan">修改</button> -->
<!-- <button @click="goUrl('HotelProductManage',item)" class="hotelBtnMan">报价与库存</button> -->
<el-tooltip class="item" effect="dark" content="修改" placement="top">
<el-button @click="goSubInfo('GnHotelInfo',scope.row.ID)" type="primary" icon="el-icon-edit" circle></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="房型" placement="top">
<el-button @click="goUrl('HotelProductManage',scope.row)" style="font-size:12px;" type="primary" icon="iconfont icon-shouye1-copy" circle></el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<el-pagination style="text-align:center" background @current-change="handleCurrentChange" :page-size="msg.pageSize"
layout="prev, pager, next" :total="msg.total">
</el-pagination>
</div>
</template>
<script>
......@@ -400,11 +387,41 @@
currentPage: 1,
ID: 0,
UpdateBy: 0, //操作人
ProductType:2,
ProductType: 2,
},
multipleSelection: [],
shelveMsg:{
HotelStatus:1, //1上架 2下架
HotelIds:''
}
};
},
methods: {
//批量上下架
goShelves(type){
if(this.multipleSelection.length==0){
this.Error('请选择酒店');
return
}
this.shelveMsg.HotelStatus=type;
let Ids = [];
this.multipleSelection.forEach(x=>{
Ids.push(x.ID);
})
this.shelveMsg.HotelIds=Ids.toString();
this.apipost("hotel_post_SetHotelStatus",
this.shelveMsg,
res => {
if (res.data.resultCode == 1) {
this.selectResource();
}
},
null
);
},
handleSelectionChange(val){
this.multipleSelection = val;
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.selectResource();
......
......@@ -439,7 +439,7 @@
</el-form-item>
</div>
<div class="resDiv">
<el-form-item :label="$t('hotel.hotel_SalesPrice')" prop="SalesPrice">
<el-form-item label="原价" prop="SalesPrice">
<el-input type="text" class="w210" v-model="addMsg.SalesPrice" @keyup.native="checkPrice(addMsg,'SalesPrice')"></el-input>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_Supplier')" v-if="IsSelfBook==1" prop="Supplier">
......
......@@ -114,7 +114,7 @@
.hotelproduct .descripTion {
border-radius: 4px;
width: 266px;
width: 100%;
text-align: left;
padding: 5px;
height: 40px;
......@@ -139,12 +139,43 @@
padding-left: 20px;
}
.HotelAdd_ImgBtn {
width: 100px;
height: 100px;
line-height: 100px;
color: #419efb;
border: 1px solid #e2e2e2;
cursor: pointer;
text-align: center;
}
.hotl_ImgDiv {
margin: 0 20px 0 0;
position: relative;
display: inline-block;
}
.hotelproduct .colapp-image {
background-size: cover;
background-position: 50%;
width: 100px;
height: 100px;
border-radius: 0;
}
.hotelproduct .delBtn {
position: absolute;
right: -8px;
top: -8px;
padding: 4px 4px !important;
}
</style>
<template>
<div class="flexOne hotelproduct">
<div class="query-box">
<ul>
<li>
<li style="display:none;">
<span>
<em>{{$t('hotel.hotel_roomName')}}</em>
<el-select filterable v-model='msg.HotelProductType' :placeholder="$t('pub.pleaseSel')">
......@@ -153,6 +184,12 @@
</el-select>
</span>
</li>
<li>
<span>
<em>{{$t('hotel.hotel_roomName')}}</em>
<el-input class="w300" type="text" v-model="msg.Name" maxlength="20"></el-input>
</span>
</li>
<li>
<button class="hollowFixedBtn" type="success"
@click="resetPageIndex(),initData()">{{$t('pub.searchBtn')}}</button>
......@@ -164,29 +201,69 @@
<el-dialog custom-class='addGroup' :visible.sync="outerVisible" :title="dialogTitle" center
:before-close="closeChangeMachie">
<el-form :model="addMsg" :rules="rules" ref="addMsg">
<el-form-item :label="$t('hotel.hotel_resource')" prop="Hotel_ID">
<el-form-item label="酒店名称" prop="Hotel_ID">
<el-select :placeholder="$t('pub.pleaseSel')" filterable class="w300" disabled clearable
v-model="addMsg.Hotel_ID">
<el-option v-for="item in HotelName" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('hotel.product_name')">
<el-form-item label="名称">
<el-input class="w300" type="text" v-model="addMsg.Name" maxlength="20"></el-input>
</el-form-item>
<!-- <el-form-item :label="$t('hotel.product_type_name')" prop="HotelProductType" >
<el-select filterable v-model='addMsg.HotelProductType' :placeholder="$t('pub.pleaseSel')" class="w300">
<el-option v-for='item in HotelProductTypeList' :label='item.Name' :value='item.Id' :key='item.Id'>
</el-option>
</el-select>
</el-form-item> -->
<el-form-item :label="$t('hotel.table_servers')" prop="ServiceNumber">
<el-form-item label="入住人数" prop="ServiceNumber">
<el-input type="text" class="w300" v-model="addMsg.ServiceNumber"
@keyup.native="checkInteger(addMsg,'ServiceNumber')"></el-input>
</el-form-item>
<el-form-item label="早餐类型">
<el-select :placeholder="$t('pub.pleaseSel')" class="w300" v-model="addMsg.BreakfastType">
<el-option v-for="item in BreakfastList" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="床型">
<el-select :placeholder="$t('pub.pleaseSel')" class="w300" v-model="addMsg.BedType">
<el-option v-for="item in BedTypeList" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="床型描述">
<el-input class="w300" type="textarea" v-model="addMsg.BedDesc" :rows="4" maxlength="200"></el-input>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_produceDes')" prop="Description">
<el-input class="w300" type="textarea" v-model="addMsg.Description"></el-input>
</el-form-item>
<el-form-item label="是否有窗">
<el-switch v-model="addMsg.HasWindow" :active-value="1" :inactive-value="2">
</el-switch>
</el-form-item>
<el-form-item label="免费取消">
<el-switch v-model="addMsg.IsCancel" :active-value="2" :inactive-value="1">
</el-switch>
</el-form-item>
<el-form-item label="免费取消时间" v-if="addMsg.IsCancel==2">
<el-input class="w300" type="text" v-model="addMsg.CancelTime" maxlength="200"></el-input>
</el-form-item>
<el-form-item label="房型图">
<div style="display:flex;flex-wrap:wrap;">
<div style="display:inline-block;">
<div class="hotl_ImgDiv" v-for="(item,index) in addMsg.RoomImage" :key="index">
<div class="colapp-image" :style="{backgroundImage: 'url(' + item.Path + ')'}">
</div>
<el-button @click="delHotelImg(item,index)" class="delBtn" type="danger" icon="el-icon-close" circle>
</el-button>
</div>
</div>
<el-upload class="avatar-uploader" action="" style="display:inline-block;"
accept="image/jpeg,image/gif,image/png,image/bmp" :show-file-list="false" :http-request="UploadImage"
multiple>
<div class="HotelAdd_ImgBtn">
+ 添加图片
</div>
</el-upload>
</div>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn"
......@@ -197,6 +274,10 @@
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading"
style="border-collapse:separate;border-spacing:0px 10px;table-layout:fixed;">
<tr>
<th>名称</th>
<th>入住人数</th>
<th>床型/早餐</th>
<th>是否可取消</th>
<th>{{$t('scen.sc_bjts')}}</th>
<th>{{$t('scen.sc_dj')}}</th>
<th>{{$t('scen.sc_gj')}}</th>
......@@ -204,6 +285,25 @@
<th>{{$t('hotel.table_operat')}}</th>
</tr>
<tr v-for="(item,index) in pageData" :key="item.subCode">
<td>
{{item.Name}}
</td>
<td>
{{item.ServiceNumber}}
</td>
<td>
{{item.BedTypeStr}} ({{item.BedDesc}})
<br />
{{item.BreakfastTypeStr}}
<br />
{{item.HasWindowStr}}
</td>
<td>
{{item.IsCancelStr}}
<template v-if="item.IsCancel">
<br /> {{item.CancelTime}}
</template>
</td>
<td class="DaysInfo">
<span><i class="iconfont icon-kaoqintongji"></i>{{item.Days}}{{$t('hotel.hotel_day')}}</span>
</td>
......@@ -276,8 +376,40 @@
Name: "",
HotelProductType: 0,
Description: "",
ServiceNumber: ""
ServiceNumber: "",
BreakfastType: 1, //早餐类型 1-含早餐,2-单早餐,3-双早餐
BedType: 1, //床型 1-单人床,2-大床,3-双床
BedDesc: '', //床型描述
HasWindow: 1, //是否有窗(1-有窗,2-无窗)
IsCancel: 1, //'是否可免费取消(1-不可取消,2-可取消
CancelTime: '', //免费取消时间
RoomImage: [], //房型图
},
//早餐类型下拉
BreakfastList: [{
Id: 1,
Name: '含早餐'
}, {
Id: 2,
Name: '单早餐'
}, {
Id: 3,
Name: '双早餐'
}, {
Id: 4,
Name: '无早餐'
}],
//床型下拉
BedTypeList: [{
Id: 1,
Name: '单人床'
}, {
Id: 2,
Name: '大床'
}, {
Id: 3,
Name: '双床'
}],
rules: {
//表单必填验证
Hotel_ID: [{
......@@ -297,6 +429,41 @@
};
},
methods: {
//上传酒店图片
UploadImage(file) {
let newArr = [];
newArr.push(file.file);
let fileName = file.file.name;
var path = "/Upload/DMC/";
this.UploadSelfFileT(path, newArr, x => {
var str = x.data.FilePath;
var imgUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
var obj = {
TagName: '',
Path: imgUrl
}
this.addMsg.RoomImage.push(obj);
});
},
//删除房型图片
delHotelImg(item, index) {
var that = this
that.Confirm("删除图片将不能恢复?", function () {
if (item.ID > 0) {
let msg = {
Id: item.ID,
PicId: item.Pic
}
that.apipost("hotel_post_RemoveHotelImage", msg, res => {
if (res.data.resultCode == 1) {
that.addMsg.RoomImage.splice(index, 1);
}
});
} else {
that.addMsg.RoomImage.splice(index, 1);
}
});
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.initData();
......@@ -395,6 +562,7 @@
this.innerVisible = true;
this.insideDialogTxt = res.data.message;
this.isDeleteNote = true;
this.Error(res.data.message);
}
},
null
......@@ -407,7 +575,13 @@
Hotel_ID: parseInt(this.HotelID),
Name: "",
Description: "",
ServiceNumber: ""
ServiceNumber: "",
BreakfastType: 1,
BedType: 1,
BedDesc: '',
HasWindow: 1,
IsCancel: 1,
CancelTime: ''
};
this.addMsg = newMsg;
},
......
......@@ -11,9 +11,13 @@
</el-form-item>
<el-form-item label="LOGO" size="small">
<el-tooltip class="item" effect="dark" content="建议尺寸100*100" placement="top">
<el-button @click="openChangeDig(1)">选择文件</el-button>
</el-tooltip>
<el-upload class="avatar-uploader" action="" accept="image/jpeg,image/gif,image/png,image/bmp"
:show-file-list="false" :http-request="UploadImage">
<el-tooltip class="item" effect="dark" content="建议尺寸100*100" placement="top">
<el-button >选择文件</el-button>
</el-tooltip>
</el-upload>
<div class="app-gallery-item" style="position: relative;width: 100px;margin-top: 10px;">
<img v-if="!addMsg.CarLogo || addMsg.CarLogo==''"
src="../../../assets/img/default.png" style="width:80px;height:80px" alt="">
......@@ -64,10 +68,14 @@
<el-button @click="ClearCarouse(index,index2)" class="delBtn" type="danger" icon="el-icon-close"
circle></el-button>
</div>
<div @click="openChangeDig(2),Picindex = index" v-if="item.PicList&&item.PicList.length<9"
<el-upload class="avatar-uploader" action="" accept="image/jpeg,image/gif,image/png,image/bmp"
:show-file-list="false" :http-request="UploadImage2">
<div @click="Picindex = index" v-if="item.PicList&&item.PicList.length<9"
class="add-image-btn">
+ 添加图片
</div>
</el-upload>
</div>
......@@ -164,6 +172,33 @@
this.changeState = false;
},
//图片上传
UploadImage(file) {
let newArr = [];
newArr.push(file.file);
let fileName = file.file.name;
var path = "/Upload/DMC/";
this.UploadSelfFileT(path, newArr, x => {
var str = x.data.FilePath;
var imgUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
this.addMsg.CarLogo = imgUrl
});
},
UploadImage2(file){
let that = this;
let newArr = [];
console.log(that.addMsg.ColorList[that.Picindex].PicList)
newArr.push(file.file);
let fileName = file.file.name;
var path = "/Upload/DMC/";
this.UploadSelfFileT(path, newArr, x => {
var str = x.data.FilePath;
var imgUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
that.addMsg.ColorList[that.Picindex].PicList.push(imgUrl);
});
},
SelectId2(msg){
let that = this;
let data =[]
......
......@@ -11,7 +11,11 @@
</el-form-item>
<el-form-item label="LOGO" class="is-required">
<el-button @click="openChangeDig(1)" size="small">选择文件</el-button>
<el-upload class="avatar-uploader" action="" accept="image/jpeg,image/gif,image/png,image/bmp"
:show-file-list="false" :http-request="UploadImage">
<el-button size="small">选择文件</el-button>
</el-upload>
<div class="app-gallery-item" style="position: relative;width: 100px;margin-top: 10px;">
<img v-if="!addMsg.BrandLogo || addMsg.BrandLogo==''"
src="../../../assets/img/default.png" style="width:80px;height:80px" alt="">
......@@ -78,6 +82,20 @@
}
this.changeState = false;
},
//图片上传
UploadImage(file) {
console.log(file)
let newArr = [];
newArr.push(file.file);
let fileName = file.file.name;
var path = "/Upload/DMC/";
this.UploadSelfFileT(path, newArr, x => {
var str = x.data.FilePath;
var imgUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
this.addMsg.BrandLogo = imgUrl
});
},
openChangeDig(num) {
......
......@@ -46,7 +46,9 @@
</el-form-item>
<el-form-item label="简介">
<!-- <UE style="width:750px;" :defaultMsg="defaultMsg" :config="config" :IsMultiple="true" ref="ue"></UE>-->
<quill-editor :options="tl" v-model="addMsg.Introduction"></quill-editor>
<my-edit v-on:edit-value="addMsg.Introduction = arguments[0]" v-bind:editValue="addMsg.Introduction"
v-bind:toolbarShow="toolbar" v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit>
<!-- <quill-editor :options="editorOption" v-model="addMsg.Introduction"></quill-editor> -->
</el-form-item>
</el-form>
......@@ -65,11 +67,13 @@
<script>
// import ChooseImg from "@/components/global/ChooseImg.vue";
// import UE from "@/components/global/UE.vue";
import tl from './js/tl'
import MyEdit from "../../EditTemplate.vue";
export default {
components: {
// ChooseImg,
// UE,
"my-edit": MyEdit
},
data() {
return {
......@@ -83,25 +87,27 @@
EmergencyPhone:'',
Introduction:'',
},
tl:tl,
editorOption: {
modules:{
toolbar:[
['bold', 'italic', 'underline', 'strike', 'image'], // toggled buttons
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
[{ 'color': [] }, {'background': [] }],
[{ 'font': [] }],
[{ 'align': [] }],
[{ 'size': ['small', false, 'large', 'huge'] }],
[{ 'list': 'ordered'}, { 'list': 'bullet' }]
]
}
toolbar: {
clean: true,
font: false, //字体
narrative: false, //叙述,
image:true,
bold: true, //加粗
underline: true, //下划线
header1: true, //H1
header2: true, //H2
fontColor: true, //字体颜色
fontBackgroundColor: true, //背景颜色
},
DefaultList: [],
placeholder: "请输入",
defaultMsg: "",
config: {
initialFrameWidth: null,
initialFrameHeight: 350
},
rules: {
Name: [{
......@@ -231,6 +237,9 @@
.app-add-cat .el-checkbox-group {
font-size: 14px !important;
}
.app-add-cat .ql-toolbar span{
line-height: 24px;
}
.app-add-cat .el-checkbox {
margin-right: 0;
......@@ -349,4 +358,8 @@
height: 32px;
margin: 0 5px;
}
.addGuide .ql-toolbar.ql-snow .ql-formats {
margin-right: 5px;
line-height: 24px;
}
</style>
......@@ -94,16 +94,20 @@
</div>
<div @click="openChangeDig(1)" v-if="addMsg.CarouselImageList.length<9"
class="add-image-btn 2222">
+ 添加图片
</div>
<el-upload class="avatar-uploader" action="" accept="image/jpeg,image/gif,image/png,image/bmp"
:show-file-list="false" :http-request="openChangeDig1" multiple>
<div v-if="addMsg.CarouselImageList.length<9"
class="add-image-btn 2222">
+ 添加图片
</div>
</el-upload>
</div>
</el-form-item>
<el-form-item label="商品视频">
<el-input v-model="addMsg.VideoAddress" size="small" placeholder="请输入内容">
<el-button @click="changeState1 = true" slot="append">添加视频</el-button>
</el-input>
<a v-if="addMsg.VideoAddress != ''" class="blue noline" :href="addMsg.VideoAddress"
target="_blank">视频链接</a>
......@@ -122,9 +126,13 @@
style="position: absolute;left: -22px;top:12px">
<i class="elzk el-tooltip el-icon-info"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="建议尺寸420*336" placement="top">
<el-button @click="openChangeDig(2)" size="small">选择图片</el-button>
</el-tooltip>
<el-upload class="avatar-uploader" action="" accept="image/jpeg,image/gif,image/png,image/bmp"
:show-file-list="false" :http-request="openChangeDig2">
<el-tooltip class="item" effect="dark" content="建议尺寸420*336" placement="top">
<el-button size="small">选择图片</el-button>
</el-tooltip>
</el-upload>
<div class="app-gallery-item" style="position: relative;width: 100px;margin-top: 10px;border:none">
<img v-if="
!addMsg.CustomShareImage ||
......@@ -453,9 +461,13 @@
</el-color-picker>
</el-form-item>
<el-form-item class="commonLabel discount" label="标签图片" v-if="addMsg.MarketingLogo.iswords==2">
<el-tooltip class="item" effect="dark" content="建议尺寸" placement="top">
<el-button @click="openChangeDig(4)" size="small">选择图片</el-button>
</el-tooltip>
<el-upload class="avatar-uploader" action="" accept="image/jpeg,image/gif,image/png,image/bmp"
:show-file-list="false" :http-request="openChangeDig4">
<el-tooltip class="item" effect="dark" content="建议尺寸" placement="top">
<el-button size="small">选择图片</el-button>
</el-tooltip>
</el-upload>
<div class="app-gallery-item" style="position: relative;width: 100px;margin-top: 10px;border:none">
<img v-if="
!addMsg.MarketingLogo.ico ||
......@@ -480,7 +492,9 @@
</div>
<el-row>
<el-col :span="242">
<UE style="width:750px;" :defaultMsg="defaultMsg" :config="config" :IsMultiple="true" ref="ue"></UE>
<!-- <UE style="width:750px;" :defaultMsg="defaultMsg" :config="config" :IsMultiple="true" ref="ue"></UE>-->
<my-edit v-on:edit-value="addMsg.GoodsDetails = arguments[0]" v-bind:editValue="addMsg.GoodsDetails"
v-bind:toolbarShow="toolbar" v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit>
</el-col>
</el-row>
</el-card>
......@@ -631,11 +645,11 @@
<h3 style="padding:15px 0">一级分类</h3>
<div class="app-goods-cat-list active">
<el-checkbox-group v-model="NewCategoryList" @change="handleCheckChange">
<div v-for="(item, index) in fenleiData" :key="index+'19'" flex="dir:left box:first" class="cat-item">
<div v-for="(item, index) in fenleiData" :key="index+'19'" flex="dir:left box:first" class="cat-item" style="display: flex;align-items: center;">
<el-checkbox :label="item.Id">
<span style="display: none;">{{ item.Name }}</span>
</el-checkbox>
<div flex="box:last cross:center">
<div flex="box:last cross:center" style="display: flex;align-items: center;">
<span>{{ item.Name }}</span>
<i v-if="item.ChildList.length > 0" @click="getChild2(item.ChildList)"
class="el-icon-arrow-right"></i>
......@@ -648,11 +662,11 @@
<h3 style="padding:15px 0">二级分类</h3>
<div class="app-goods-cat-list active">
<el-checkbox-group v-model="NewCategoryList" @change="handleCheckChange">
<div v-for="(item, index) in childList2" :key="index+'20'" flex="dir:left box:first" class="cat-item">
<div v-for="(item, index) in childList2" :key="index+'20'" flex="dir:left box:first" class="cat-item" style="display: flex;align-items: center;">
<el-checkbox :label="item.Id">
<span style="display: none;">{{ item.Name }}</span>
</el-checkbox>
<div flex="box:last cross:center">
<div flex="box:last cross:center" style="display: flex;align-items: center;">
<span>{{ item.Name }}</span>
<i v-if="item.ChildList.length > 0" @click="getChild3(item.ChildList)"
class="el-icon-arrow-right"></i>
......@@ -665,11 +679,11 @@
<h3 style="padding:15px 0">三级分类</h3>
<div class="app-goods-cat-list active">
<el-checkbox-group v-model="NewCategoryList" @change="handleCheckChange">
<div v-for="(item, index) in childList3" :key="index+'21'" flex="dir:left box:first" class="cat-item">
<div v-for="(item, index) in childList3" :key="index+'21'" flex="dir:left box:first" class="cat-item" style="display: flex;align-items: center;">
<el-checkbox :label="item.Id">
<span style="display: none;">{{ item.Name }}</span>
</el-checkbox>
<div flex="box:last cross:center">
<div flex="box:last cross:center" style="display: flex;align-items: center;">
<span>{{ item.Name }}</span>
<i class="el-icon-arrow-right"></i>
</div>
......@@ -738,12 +752,16 @@
// import Choosevideo from "@/components/global/Choosevideo.vue";
import region_Choice from "./view/regionChoice";
// import UE from "@/components/global/UE.vue";
import draggable from "vuedraggable"
import draggable from "vuedraggable";
import MyEdit from "../../EditTemplate.vue";
export default {
components: {
// ChooseImg,
// Choosevideo,
region_Choice,
"my-edit": MyEdit,
// UE,
draggable
},
......@@ -1028,7 +1046,21 @@
}
},
subDateList: [], //日期数组
My_cateList:[]
My_cateList:[],
toolbar: {
clean: true,
font: false, //字体
narrative: false, //叙述,
image:true,
bold: true, //加粗
underline: true, //下划线
header1: true, //H1
header2: true, //H2
fontColor: true, //字体颜色
fontBackgroundColor: true, //背景颜色
},
DefaultList: [],
placeholder: "请输入",
};
},
created() {
......@@ -1049,7 +1081,7 @@
this.getCateList();
},
mounted() {
this.$refs.ue.loadUe();
// this.$refs.ue.loadUe();
if (this.$route.query.GoodsId) {
this.GoodsId = this.$route.query.GoodsId;
this.getData();
......@@ -1178,8 +1210,8 @@
Save(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
let content = this.$refs.ue.getUEContent();
this.addMsg.GoodsDetails = content;
// let content = this.$refs.ue.getUEContent();
// this.addMsg.GoodsDetails = content;
if (this.addMsg.CategoryList.length == 0) {
this.Error('请选择商品分类');
return false
......@@ -1204,13 +1236,13 @@
this.addMsg.MemberPriceList = this.memberList1;
this.addMsg.MemberPriceTreeList = this.memberList1;
}
let mall_userInfo = JSON.parse(localStorage.mall_userInfo)
if (mall_userInfo.TenantId == 1 && mall_userInfo.MallBaseId == 1 && this.SupplierId == '') {
this.Error("请选择供应商!");
return
} else {
// let mall_userInfo = JSON.parse(localStorage.mall_userInfo)
// if (mall_userInfo.TenantId == 1 && mall_userInfo.MallBaseId == 1 && this.SupplierId == '') {
// this.Error("请选择供应商!");
// return
// } else {
this.addMsg.SupplierId = this.SupplierId != '' ? this.SupplierId : 0;
}
// }
if (this.addMsg.PresentFXGrade == '') { //没选择的时候默认为0
this.addMsg.PresentFXGrade = 0
......@@ -1323,9 +1355,41 @@
this.imgListIndex1 = index;
this.imgListIndex2 = index2;
},
openChangeDig1(file){
this.UploadImage(1,file)
},
openChangeDig2(file){
this.UploadImage(2,file)
},
openChangeDig4(file){
this.UploadImage(4,file)
},
openChangeDig(val) {
this.changeState = true;
this.imgType = val;
},
//图片上传
UploadImage(val,file) {
console.log(file)
let newArr = [];
newArr.push(file.file);
let fileName = file.file.name;
var path = "/Upload/DMC/";
this.UploadSelfFileT(path, newArr, x => {
console.log(x)
var str = x.data.FilePath;
var imgUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
if(val == 1){
let obj = {
Id: 0,
Path:imgUrl ,
};
this.addMsg.CarouselImageList.push(obj);
}else if(val == 2){
this.addMsg.CustomShareImage = imgUrl
}else if(val == 4){
this.addMsg.MarketingLogo.ico = imgUrl
}
});
},
//选择图片
SelectId(msg) {
......@@ -1483,9 +1547,9 @@
GradeCommissionList: this.GradeCommissionList
};
this.disList1.push(objNew);
if (this.addMsg.GoodsDetails && this.addMsg.GoodsDetails != "") {
this.defaultMsg = this.addMsg.GoodsDetails;
}
// if (this.addMsg.GoodsDetails && this.addMsg.GoodsDetails != "") {
// this.defaultMsg = this.addMsg.GoodsDetails;
// }
this.NewCategoryList = [];
this.addMsg.CategoryList.forEach(item => {
item.Name = item.CategoryName;
......@@ -2074,5 +2138,9 @@
.directorGoodsEdit .w130 {
width: 130px !important;
}
.directorGoodsEdit .ql-toolbar.ql-snow .ql-formats {
margin-right: 5px;
line-height: 24px;
}
</style>
......@@ -165,11 +165,11 @@
<h3 style="padding:15px 0">一级分类</h3>
<div class="app-goods-cat-list active">
<el-checkbox-group v-model="checkList">
<div v-for="(item,index) in fenleiData" :key="index" flex="dir:left box:first" class="cat-item">
<div v-for="(item,index) in fenleiData" :key="index" flex="dir:left box:first" class="cat-item" style="display: flex;align-items: center;">
<el-checkbox :label="item">
<span style="display: none;">{{item.Name}}</span>
</el-checkbox>
<div flex="box:last cross:center">
<div flex="box:last cross:center" style="display: flex;align-items: center;">
<span>{{item.Name}}</span>
<i v-if="item.ChildList.length>0" @click="getChild2(item.ChildList)" class="el-icon-arrow-right"></i>
</div>
......@@ -182,11 +182,11 @@
<h3 style="padding:15px 0">二级分类</h3>
<div class="app-goods-cat-list active">
<el-checkbox-group v-model="checkList">
<div v-for="(item,index) in childList2" :key="index" flex="dir:left box:first" class="cat-item">
<div v-for="(item,index) in childList2" :key="index" flex="dir:left box:first" class="cat-item" style="display: flex;align-items: center;" >
<el-checkbox :label="item">
<span style="display: none;">{{item.Name}}</span>
</el-checkbox>
<div flex="box:last cross:center">
<div flex="box:last cross:center" style="display: flex;align-items: center;">
<span>{{item.Name}}</span>
<i v-if="item.ChildList.length>0" @click="getChild3(item.ChildList)" class="el-icon-arrow-right"></i>
</div>
......@@ -195,15 +195,15 @@
</div>
</el-col>
<el-col v-show="childList3.length>0" :span="8" style="padding:0 10px;box-sizing:border-box">
<el-col v-show="childList3.length>0" :span="8" style="padding:0 10px;box-sizing:border-box" >
<h3 style="padding:15px 0">三级分类</h3>
<div class="app-goods-cat-list active">
<el-checkbox-group v-model="checkList">
<div v-for="(item,index) in childList3" :key="index" flex="dir:left box:first" class="cat-item">
<div v-for="(item,index) in childList3" :key="index" flex="dir:left box:first" class="cat-item" style="display: flex;align-items: center;">
<el-checkbox :label="item">
<span style="display: none;">{{item.Name}}</span>
</el-checkbox>
<div flex="box:last cross:center">
<div flex="box:last cross:center" style="display: flex;align-items: center;">
<span>{{item.Name}}</span>
<i class="el-icon-arrow-right"></i>
</div>
......@@ -722,4 +722,12 @@
padding: 20px;
box-sizing: border-box;
}
.directorGoodsList .el-pagination ul li {
text-align: center;
line-height: 28px;
position: static !important;
display: flex;
align-items: center;
justify-content: center;
}
</style>
......@@ -255,8 +255,7 @@
this.$router.push({
name: 'addGuide',
query: {
ID:row.ID,
blank: "y"
ID:row.ID
}
});
},
......
......@@ -138,7 +138,7 @@
</div>
<div>
<el-form-item label="订单状态">
<div flex="dir:left wrap:wrap">
<div flex="dir:left wrap:wrap" style="display: flex">
<div v-for="item in addMsg.OrderStateList" :key="item.Id" style="margin-right: 15px" flex="dir:left">
<span>{{item.Id}}</span>
<el-input style="width:100px" placeholder="请输入" size="small" v-model="item.Name"></el-input>
......@@ -151,7 +151,7 @@
</el-form-item>
<el-form-item label="详情页面链接">
<el-input style="width:350px" placeholder="请输入" size="small" v-model="addMsg.PagePath">
</el-input>
</el-form-item>
<el-form-item label="提前预定天数">
......@@ -196,7 +196,9 @@
</div>
<el-row>
<el-col :span="242">
<UE style="width:750px;" :defaultMsg="defaultMsg" :config="config" :IsMultiple="true" ref="ue"></UE>
<!-- <UE style="width:750px;" :defaultMsg="defaultMsg" :config="config" :IsMultiple="true" ref="ue"></UE> -->
<my-edit v-on:edit-value="addMsg.InsuranceDescription = arguments[0]" v-bind:editValue="addMsg.InsuranceDescription"
v-bind:toolbarShow="toolbar" v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit>
</el-col>
</el-row>
</el-card>
......@@ -385,12 +387,15 @@
// import chooseMenu from "../common/chooseMenu.vue";
// import ChooseImg from "@/components/global/ChooseImg.vue";
// import UE from "@/components/global/UE.vue";
import MyEdit from "../../EditTemplate.vue";
export default {
components: {
// chooseMenu,
// UE,
// ChooseImg
"my-edit": MyEdit
},
data() {
......@@ -429,6 +434,20 @@
},
choicImg: false,
imgType: -1,
toolbar: {
clean: true,
font: false, //字体
narrative: false, //叙述,
image:true,
bold: true, //加粗
underline: true, //下划线
header1: true, //H1
header2: true, //H2
fontColor: true, //字体颜色
fontBackgroundColor: true, //背景颜色
},
DefaultList: [],
placeholder: "请输入",
};
},
created() {
......@@ -460,8 +479,8 @@
this.$refs[formName].validate((valid) => {
if (valid) {
let content = this.$refs.ue.getUEContent();
this.addMsg.InsuranceDescription = content;
// let content = this.$refs.ue.getUEContent();
// this.addMsg.InsuranceDescription = content;
let cmd = "/api/GuideCar/SetGuideCarInfo";
this.saveload = true
this.lxymallapipost(cmd, this.addMsg,
......@@ -488,9 +507,9 @@
this.loading = false;
if (res.data.resultCode == 1) {
this.addMsg = res.data.data;
if (this.addMsg.InsuranceDescription && this.addMsg.InsuranceDescription != "") {
this.defaultMsg = this.addMsg.InsuranceDescription;
}
// if (this.addMsg.InsuranceDescription && this.addMsg.InsuranceDescription != "") {
// this.defaultMsg = this.addMsg.InsuranceDescription;
// }
}
})
},
......@@ -583,5 +602,9 @@
margin-top: 10px;
box-sizing: border-box;
}
.directorSetting .ql-toolbar.ql-snow .ql-formats {
margin-right: 5px;
line-height: 24px;
}
</style>
/*富文本编辑图片上传配置*/
let locationName = window.location.hostname;
let UploadUrl= locationName.indexOf('oytour') !== -1 || locationName.indexOf('viitto') !== -1 ? "http://upload.oytour.com" : "http://192.168.20.214:8120";
const uploadConfig = {
action: UploadUrl + "/Upload?filePath=" , // 必填参数 图片上传地址
methods:'POST', // 必填参数 图片上传方式
headers:{}, // 可选参数 设置请求头部
token:'', // 可选参数 如果需要token验证,假设你的token有存放在sessionStorage
name:'image', // 必填参数 文件的参数名
size:500, // 可选参数 图片大小,单位为Kb, 1M = 1024Kb
accept:'image/png, image/gif, image/jpeg, image/bmp, image/x-icon' // 可选 可上传的图片格式
};
// toolbar工具栏的工具选项(默认展示全部)
const toolOptions = [
['bold', 'italic', 'underline', 'strike', 'image'], // toggled buttons
[{ 'header': [1, 2, 3, 4, 5, 6, false] }],
[{ 'color': [] }, {'background': [] }],
[{ 'font': [] }],
[{ 'align': [] }],
[{ 'size': ['small', false, 'large', 'huge'] }],
[{ 'list': 'ordered'}, { 'list': 'bullet' }]
];
const handlers = {
image:function image() {
var self =this;
var fileInput =this.container.querySelector('input.ql-image[type=file]');
if (fileInput ===null) {
fileInput =document.createElement('input');
fileInput.setAttribute('type', 'file');
// 设置图片参数名
if (uploadConfig.name) {
fileInput.setAttribute('name', uploadConfig.name);
}
fileInput.setAttribute('accept', uploadConfig.accept);
fileInput.classList.add('ql-image');
// 监听选择文件
fileInput.addEventListener('change', function () {
// 创建formData
var formData =new FormData();
console.log(fileInput.files[0])
let files = [];
files.push(fileInput.files[0]);
formData.append(uploadConfig.name, fileInput.files[0]);
formData.append('object','product');
// 如果需要token且存在token
// 图片上传
var xhr =new XMLHttpRequest();
// 可设置上传图片的格式
xhr.open(uploadConfig.methods, uploadConfig.action, true);
xhr.setRequestHeader('authorization',uploadConfig.token)
// 上传数据成功,会触发
// xhr.onload =function (e) {
//
// if (xhr.status ===200) {
//
// var res =JSON.parse(xhr.responseText);
//
// let length = self.quill.getSelection(true).index;
//
// //这里很重要,你图片上传成功后,img的src需要在这里添加,res.path就是你服务器返回的图片链接。
//
// self.quill.insertEmbed(length, 'image', res.data);
//
// self.quill.setSelection(length +1)
//
// }
//
// fileInput.value =''
//
// };
});
this.container.appendChild(fileInput);
}
fileInput.click();
}
};
export default {
placeholder:'',
theme:'snow', // 主题
modules: {
toolbar: {
container: toolOptions, // 工具栏选项
handlers: handlers// 事件重写
}
}
};
......@@ -96,7 +96,7 @@
created() {},
computed: {},
mounted() {
console.log(this.saveObj, 'saveObj');
},
methods: {
//新增分组
......@@ -137,8 +137,6 @@
},
//选定
SelectImgId() {
console.log('1111');
console.log(this.saveObj,'saveObj');
},
//上传酒店图片
UploadImage(file) {
......@@ -156,7 +154,6 @@
var imgUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
obj.Path = str;
obj.ShowPath = imgUrl;
console.log(obj,'obj');
this.saveObj[this.commonIndex].imgArr.push(obj.ShowPath);
});
},
......
......@@ -7,17 +7,21 @@
<div class="el-scrollbar" style="height: 450px; width: 100%;overflow-y:auto;">
<div style="margin-bottom: -8px; margin-right: -8px;">
<div class="el-scrollbar__view">
<!-- <li class="el-menu-item" style="padding-left: 10px;padding-right: 10px;"
:class="commonIndex==-1?'selectActive' : ''" @click="getImgList(-1,saveObj)">
<i class="el-icon-tickets"></i>
<span>全部</span>
</li> -->
<li class="el-menu-item" :class="commonIndex==index?'selectActive' : ''"
@click="getImgList(-1,saveObj)" :key="index" style="padding-left: 10px;padding-right: 10px;">
<div flex="dir:left box:last">
<el-col :span="18" style="overflow: hidden; text-overflow: ellipsis;">
<i class="el-icon-tickets"></i>
<span>全部</span>
</el-col>
</div>
</li>
<li class="el-menu-item" v-for="(item,index) in saveObj" :class="commonIndex==index?'selectActive' : ''"
@click="getImgList(index,saveObj)" :key="index" style="padding-left: 10px;padding-right: 10px;">
<div flex="dir:left box:last">
<el-col :span="18" style="overflow: hidden; text-overflow: ellipsis;">
<i class="el-icon-tickets"></i>
<span>{{item.Label==''?'酒店图片':item.Label}}</span>
<span>{{item.Label==''?'默认':item.Label}}</span>
</el-col>
<el-col class="blue" :span="6" v-if="index!=0">
<span @click="editGroup(index)">编辑</span>
......@@ -40,10 +44,11 @@
</div>
</el-upload>
</div>
<div style="display:inline-block;margin-left:9px;position:relative" v-for="(item,index) in comImgArr" :key="index">
<img :src="item.Path" class="app-attachment-img" style="width: 100px; height: 100px;">
<i class="iconfont icon-bumenguanli-shanchu hotel_DelIcon" @click="delHotelImg(index)"></i>
</div>
<div style="display:inline-block;margin-left:9px;position:relative" v-for="(item,index) in comImgArr"
:key="index">
<img :src="item.Path" class="app-attachment-img" style="width: 100px; height: 100px;">
<i class="iconfont icon-bumenguanli-shanchu hotel_DelIcon" @click="delHotelImg(item,index)"></i>
</div>
</div>
</el-col>
</el-row>
......@@ -97,23 +102,38 @@
this.getAll();
},
methods: {
getAll(){
// this.commonIndex=-1;
this.comImgArr=[];
if(this.saveObj.length>0){
getAll() {
this.comImgArr = [];
if (this.saveObj.length > 0) {
this.saveObj.forEach(item => {
this.comImgArr=this.comImgArr.concat(item.ImgList);
this.comImgArr = this.comImgArr.concat(item.ImgList);
})
} else {
let obj = {
Label: '',
ImgList: this.comImgArr
}
this.saveObj.unshift(obj);
}
let obj={
Label:'',
ImgList:this.comImgArr
}
this.saveObj.unshift(obj);
},
//删除图片
delHotelImg(index){
this.comImgArr.splice(index,1);
delHotelImg(item, index) {
var that = this
that.Confirm("删除图片将不能恢复?", function () {
if (item.MappingId && item.MappingId > 0) {
let msg = {
Id: item.MappingId,
PicId: item.PicId
}
that.apipost("hotel_post_RemoveHotelImage", msg, res => {
if (res.data.resultCode == 1) {
that.comImgArr.splice(index, 1);
}
});
} else {
that.comImgArr.splice(index, 1);
}
});
},
//清空消息
clearGroupMsg() {
......@@ -144,15 +164,18 @@
},
//删除
delGroup(index) {
this.saveObj.splice(index, 1);
var that = this
that.Confirm("删除图片将不能恢复?", function () {
this.saveObj.splice(index, 1);
});
},
//点击获取图片arr
getImgList(index, obj) {
this.commonIndex = index;
if (index == -1) {
this.comImgArr=[];
this.comImgArr = [];
this.saveObj.forEach(item => {
this.comImgArr=this.comImgArr.concat(item.ImgList);
this.comImgArr = this.comImgArr.concat(item.ImgList);
})
} else {
this.comImgArr = this.saveObj[index].ImgList;
......@@ -160,21 +183,15 @@
},
//选定
SelectImgId() {
this.$emit('getHotelImg',this.saveObj);
this.$emit('getHotelImg', this.saveObj);
},
//上传酒店图片
UploadImage(file) {
// if (this.commonIndex == -2) {
// this.Error('请选择分类')
// return;
// }
let newArr = [];
newArr.push(file.file);
let fileName = file.file.name;
var path = "/Upload/DMC/";
this.UploadSelfFileT(path, newArr, x => {
console.log(x,'xxxx');
;
var str = x.data.FilePath;
var imgUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
var obj = {
......@@ -271,11 +288,13 @@
border-left: none;
padding: 0 15px;
}
.hotel_DelIcon{
.hotel_DelIcon {
position: absolute;
right:-5px;
top:-7px;
color:red;
right: -5px;
top: -7px;
color: red;
cursor: pointer;
}
</style>
......@@ -317,6 +317,10 @@
},
//提交验证
submitForm(SaveType) {
if(this.PostConfig.LineteamId==0){
this.Error('请选择系列');
return
}
if (this.isSubmit) {
this.isSubmit = false;
this.SaveData(SaveType);
......
......@@ -2591,7 +2591,7 @@ export default {
},
},{
path: '/addCar', //司导专区=>车辆管理
name: 'addSite',
name: 'addCar',
component: resolve => require(['@/components/TravelManager/Lxy/addCar'], resolve),
meta: {
title: '车辆管理'
......
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