Commit 8fbff34d authored by zhengke's avatar zhengke
parents a25f89e7 12e38e9f
...@@ -708,7 +708,7 @@ export default { ...@@ -708,7 +708,7 @@ export default {
}, },
isdelete(ID) { isdelete(ID) {
var that = this; var that = this;
that.Confirm(this.$t('tips.shifoushanchu'), function() { that.Confirm(that.$t('tips.shifoushanchu'), function() {
that.apipost( that.apipost(
"dict_post_HotelOffer_Remove", "dict_post_HotelOffer_Remove",
{ {
...@@ -718,7 +718,7 @@ export default { ...@@ -718,7 +718,7 @@ export default {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
that.initDataTable(); that.initDataTable();
that.initCalendar(); that.initCalendar();
that.Success(this.$t('tips.shanchuchenggong')); that.Success(that.$t('tips.shanchuchenggong'));
} }
} }
); );
......
...@@ -718,7 +718,7 @@ ...@@ -718,7 +718,7 @@
this.Success(this.$t("ground.shezhichenggong")); this.Success(this.$t("ground.shezhichenggong"));
this.isShow = false; this.isShow = false;
} else { } else {
that.Confirm(this.$t('ground.sheizhichongtu'), function () { that.Confirm(that.$t('ground.sheizhichongtu'), function () {
that.addMsg.IsSure = 1; that.addMsg.IsSure = 1;
that.apipost( that.apipost(
"LeaderSchedule_post_Set", "LeaderSchedule_post_Set",
...@@ -727,7 +727,7 @@ ...@@ -727,7 +727,7 @@
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
that.getList(); that.getList();
that.getNoTaskLeader(); that.getNoTaskLeader();
that.Success(this.$t("ground.shezhichenggong")); that.Success(that.$t("ground.shezhichenggong"));
that.isShow = false; that.isShow = false;
} }
}, },
...@@ -748,7 +748,7 @@ ...@@ -748,7 +748,7 @@
}; };
that.apipost("LeaderSchedule_Post_Remove", msg, res => { that.apipost("LeaderSchedule_Post_Remove", msg, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
that.Success(this.$t('ground.quxiaochenggong')); that.Success(that.$t('ground.quxiaochenggong'));
that.getList(); that.getList();
} else { } else {
that.Error(res.data.message); that.Error(res.data.message);
......
<style>
.addIntegralMall {
padding-top: 25px;
}
.addIntegralMall .resource-lititle {
display: block;
border-left: 4px solid #e95252;
padding-left: 10px;
margin-bottom: 20px;
}
.addIntegralMall .resource-lititle.resource-lititle2 {
margin-top: 25px;
}
.addIntegralMall .re-img {
width: 140px;
height: 93px;
border-radius: 10px;
float: left;
margin: 0 30px 30px 0;
position: relative;
}
.addIntegralMall .re-img2 {
width: 100%;
height: auto;
}
.addIntegralMall .re-img:first-child {
margin-left: 0;
}
.addIntegralMall .resource-imglist {
width: 100%;
height: auto;
margin-top: 20px;
}
.addIntegralMall .resource-imglist img {
width: 100%;
height: 100%;
border-radius: 10px;
}
.addIntegralMall .add-img {
margin-top: 20px;
}
.addIntegralMall .reimg-add {
width: 140px;
height: 93px;
background: rgba(236, 236, 236, 1);
border-radius: 10px;
position: relative;
cursor: pointer;
z-index: 999;
}
.addIntegralMall .ad-one {
display: none;
background: rgba(0, 0, 0, 0.4);
width: 100%;
height: 100%;
border-radius: 10px;
position: absolute;
top: 0;
}
.addIntegralMall .bigAdd {
font-size: 50px;
color: #d1d1d1;
position: relative;
left: 45px;
top: 10px;
}
.addIntegralMall .imgzhe {
display: none;
background: rgba(0, 0, 0, 0.4);
width: 100%;
height: 100%;
border-radius: 10px;
position: absolute;
text-align: center;
line-height: 93px;
top: 0;
}
.addIntegralMall .reimg-add:hover .ad-one {
display: block;
}
.addIntegralMall .re-img:hover .imgzhe {
display: block;
}
.addIntegralMall .ad-one div {
width: 32px;
height: 32px;
border-radius: 50%;
line-height: 32px;
text-align: center;
background: gray;
color: #fff;
}
.addIntegralMall .ad-one div:hover {
background-color: #fff;
color: #e95252;
}
.addIntegralMall .re-upload {
position: absolute;
top: 30px;
left: 54px;
z-index: 999;
}
.addIntegralMall .re-find {
position: absolute;
top: 30px;
right: 30px;
z-index: 999;
}
.addIntegralMall .search-imgicon {
padding-right: 20px;
margin-left: -40px;
}
.addIntegralMall .resAddImg {
width: 520px;
padding-right: 45px;
}
.addIntegralMall .addimgContent {
height: 290px;
overflow: auto;
margin: 30px 0 30px 25px;
width: 545px;
}
.addIntegralMall .addimgDiv {
width: 160px;
height: 155px;
float: left;
margin: 0 20px 15px 0;
overflow: hidden;
}
.addIntegralMall .addimgContent div:first-child {
margin-left: 0;
}
.addimgContent div:nth-child(3n) {
margin-right: 0;
}
.addIntegralMall .itemImgdiv {
width: 160px;
height: 106px;
position: relative;
}
.addIntegralMall .itemImgdiv img {
width: 100%;
height: 100%;
border-radius: 10px;
}
.addIntegralMall .re-delte {
width: 32px;
height: 32px;
background: gray;
border-radius: 50%;
text-align: center;
line-height: 32px;
display: inline-block;
color: #fff;
cursor: pointer;
}
.addIntegralMall .re-delte:hover {
color: #e95252;
background: #fff;
}
.addIntegralMall .tips {
padding-left: 130px;
font-size: 12px;
position: relative;
bottom: 20px;
color: #777777;
}
.addIntegralMall .tips.tips2 {
bottom: 0;
padding-left: 0;
padding-top: 10px;
}
.addIntegralMall .bottom_sub {
padding-top: 25px;
}
.addIntegralMall .ql-editor{
min-height: 200px;
}
</style>
<template>
<el-row class="addIntegralMall">
<el-col :span="9">
<el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="130px">
<span class="resource-lititle">基本信息</span>
<el-form-item label="商品名称" prop="name">
<el-input v-model="addMsg.name" class="w217"/>
</el-form-item>
<el-form-item label="购买等级要求">
<el-select filterable v-model="addMsg.isReqRate">
<el-option label="不限" :value="-0" :key="0"></el-option>
<el-option
v-for="item in MenberList"
:label="item.name"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商品价格" prop="price">
<el-input v-model="addMsg.price" class="w217"/>
</el-form-item>
<el-form-item label="价格单位" prop="priceUnit">
<el-select filterable v-model="addMsg.priceUnit">
<el-option label="积分" :value="0" :key="0"></el-option>
<el-option label="人民币" :value="1" :key="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="市场价格" prop="marketPrice">
<el-input v-model="addMsg.marketPrice" class="w217"/>
</el-form-item>
<el-form-item label="限购">
<el-input v-model="addMsg.quota" class="w217"/>
</el-form-item>
<p class="tips" style="padding-left: 130px; font-size: 12px;">0为不限购</p>
<el-form-item label="商品类型" prop="state">
<el-select filterable v-model="addMsg.type">
<el-option
v-for="item in GoodsTypeList"
:label="item.name"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商品数量" prop="storeNum">
<el-input v-model="addMsg.storeNum" class="w217"/>
</el-form-item>
<el-form-item label="商品状态">
<el-select filterable v-model="addMsg.state">
<el-option label="上架" :value="1" :key="1"></el-option>
<el-option label="下架" :value="0" :key="0"></el-option>
<el-option label="删除" :value="-1" :key="-1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="包装说明">
<el-input v-model="addMsg.packing" class="w217"/>
</el-form-item>
<el-form-item label="商品所属活动">
<el-select filterable v-model="addMsg.ishot">
<el-option label="无" :value="0" :key="0"></el-option>
<el-option v-for="item in GoodsSeriesList" :label="item.name" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="配送说明">
<el-input v-model="addMsg.logistic" class="w217"/>
</el-form-item>
</el-form>
</el-col>
<el-col :span="9">
<span class="resource-lititle">商品图片</span>
<div class="resource-list">
<div class="resource-imglist clearfix">
<div class="re-img" v-for="(item,index) in DiningImageArray" :key="index">
<img v-if="!item" src="../../assets/img/bg_c3@3x.png">
<img :src="item" :onerror="defaultImg">
<div class="imgzhe">
<div class="re-delte">
<i @click.stop="showImg(item)" class="iconfont icon-img_cz"></i>
</div>
<div class="re-delte" @click="delImg(index)">
<i class="iconfont icon-xingzhuang"></i>
</div>
<div
class="re-delte"
@click.stop="ExchangeImg(index,0)"
v-if="index!=0&&item"
>
<i class="iconfont icon-zuoyi"></i>
</div>
<div
class="re-delte"
@click.stop="ExchangeImg(index,1)"
v-if="index!=DiningImageArray.length-1&&item"
>
<i class="iconfont icon-youyi"></i>
</div>
</div>
</div>
</div>
<div class="add-img" v-if="DiningImageArray.length<5">
<div class="reimg-add">
<i class="iconfont icon-img_haha bigAdd"></i>
<div class="ad-one">
<div class="re-upload">
<el-upload
:http-request="UploadImage"
:multiple="true"
accept="image/jpeg, image/gif, image/png, image/bmp"
:show-file-list="false"
action
>
<i class="iconfont icon-img_bdsc"></i>
</el-upload>
</div>
</div>
</div>
</div>
<p class="tips tips2">最多上传5张图片</p>
<span class="resource-lititle resource-lititle2">商品描述</span>
<my-edit v-on:edit-value="addMsg.description = arguments[0]" v-bind:editValue="addMsg.description"
v-bind:toolbarShow="toolbar" v-bind:placeholder="placeholder"></my-edit>
<!-- <span class="resource-lititle resource-lititle2">图片介绍</span>
<div class="resource-imglist clearfix">
<div class="re-img re-img2" v-for="(item,index) in DiningImageArray2" :key="index">
<img v-if="!item" src="../../assets/img/bg_c3@3x.png">
<img :src="item" :onerror="defaultImg">
<div class="imgzhe">
<div class="re-delte">
<i @click.stop="showImg(item)" class="iconfont icon-img_cz"></i>
</div>
<div class="re-delte" @click="delImg(index, 2)">
<i class="iconfont icon-xingzhuang"></i>
</div>
<div
class="re-delte"
@click.stop="ExchangeImg(index,0)"
v-if="index!=0&&item"
>
<i class="iconfont icon-zuoyi"></i>
</div>
<div
class="re-delte"
@click.stop="ExchangeImg(index,1)"
v-if="index!=DiningImageArray2.length-1&&item"
>
<i class="iconfont icon-youyi"></i>
</div>
</div>
</div>
</div>
<div class="add-img" v-if="DiningImageArray2.length<5">
<div class="reimg-add">
<i class="iconfont icon-img_haha bigAdd"></i>
<div class="ad-one">
<div class="re-upload">
<el-upload
:http-request="UploadImage2"
:multiple="true"
accept="image/jpeg, image/gif, image/png, image/bmp"
:show-file-list="false"
action
>
<i class="iconfont icon-img_bdsc"></i>
</el-upload>
</div>
</div>
</div>
</div> -->
</div>
<div class="bottom_sub">
<button
class="hollowFixedBtn"
@click="goIntegralMall('IntegralMall')"
>{{$t('pub.cancelBtn')}}</button> &nbsp;
<button class="normalBtn" @click="submitForm('addMsg')">{{$t('pub.saveBtn')}}</button>
</div>
</el-col>
<viewer :images="images" :options="imageOptions" @inited="inited" class="viewer" ref="viewer">
<img v-for="src in images" :src="src" :key="src">
</viewer>
</el-row>
</template>
<script>
import { setInterval, setTimeout } from "timers";
import MyEdit from "../EditTemplate.vue";
export default {
data() {
return {
toolbar: {
clean: true,
font: false, //字体
narrative: false, //叙述,
image:true,
bold: true, //加粗
underline: true, //下划线
header1: true, //H1
header2: true, //H2
fontColor: true, //字体颜色
fontBackgroundColor: true, //背景颜色
},
placeholder: "请输入内容",
editorOption: {
modules: {
toolbar: [
["bold", "italic", "underline", "strike"], // toggled buttons
[{ header: [1, 2, 3, 4, 5, 6, false] }],
[{ color: [] }, { background: [] }],
[{ font: [] }],
[{ align: [] }],
[{ size: ["small", false, "large", "huge"] }],
[{ list: "ordered" }, { list: "bullet" }]
]
}
},
addMsg: {
id: 0,
name: "",
type: "",
images: "",
price: "",
priceUnit: 0,
marketPrice: "",
isReqRate: "",
description: "",
packing: "",
logistic: "",
state: 1,
quota: 0,
ishot: 0,
descripImg: '',
storeNum:''
},
MenberList: [],
GoodsTypeList: [],
rules: {
memberLevel: [
{ required: true, message: "请输入会员等级", trigger: "blur" }
],
name: [{ required: true, message: "请输入商品名称", trigger: "blur" }],
price: [{ required: true, message: "请输入价格", trigger: "blur" }],
marketPrice: [
{ required: true, message: "请输入市场价格", trigger: "blur" }
],
state: [
{ required: true, message: "请选择商品类型", trigger: "change" }
],
tradeMoneyReq: [
{ required: true, message: "交易金额要求", trigger: "blur" }
],
tradePeopleReq: [
{ required: true, message: "交易人头数要求", trigger: "blur" }
],
remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
storeNum:[{ required: true, message: "请输入商品数量", trigger: "blur" }]
},
//上传的文件数组
DiningImageArray: [],
DiningImageArray2: [],
imageOptions: {
navbar: false,
title: false
},
images: [],
defaultImg: 'this.src="' + require("../../assets/img/bg_z1@2x.png") + '"',
apiUrl: 'addGoodsInfo',
GoodsSeriesList: [],
};
},
components: {
"my-edit": MyEdit
},
methods: {
getGoodsSeries() {
this.loading = true;
this.apiJavaPost(
"/api/IntegralManager/getGoodsSeries",
{},
res => {
this.loading = false;
if (res.data.resultCode === 1) {
this.GoodsSeriesList = res.data.data;
} else {
this.Error(res.data.message);
}
},
null
);
},
goIntegralMall: function(path) {
this.$router.push({ name: path });
},
//图片左移右移
ExchangeImg(index, IsMove) {
var imgItem = this.DiningImageArray[index];
//左移
if (IsMove == 0) {
var upItem = this.DiningImageArray[index - 1];
this.$set(this.DiningImageArray, index - 1, imgItem);
this.$set(this.DiningImageArray, index, upItem);
} else {
//右移动
var downItem = this.DiningImageArray[index + 1];
this.$set(this.DiningImageArray, index + 1, imgItem);
this.$set(this.DiningImageArray, index, downItem);
}
},
//上传图片
UploadImage(file) {
let newArr = [];
newArr.push(file.file);
let fileName = file.file.name;
var path = "/Upload/DMC/";
this.UploadSelfFileT(path, newArr, x => {
//统一图片处理
var obj = {}
var str = x.data.FilePath;
var imgUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
this.DiningImageArray.push(imgUrl);
});
},
UploadImage2(file) {
let newArr = [];
newArr.push(file.file);
let fileName = file.file.name;
var path = "/Upload/DMC/";
this.UploadSelfFileT(path, newArr, x => {
//统一图片处理
var obj = {}
var str = x.data.FilePath;
var imgUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
this.DiningImageArray2.push(imgUrl);
});
},
//删除图片
delImg(index, type) {
//更新图片
if (type) {
var item = this.DiningImageArray2[index];
this.DiningImageArray2.splice(index, 1);
} else {
var item = this.DiningImageArray[index];
this.DiningImageArray.splice(index, 1);
}
},
inited(viewer) {
this.$viewer = viewer;
},
showImg: function(src) {
let srcArr = src.split("?");
src = srcArr[0];
let isExsit = false;
this.images.forEach(x => {
if (x === src) isExsit = true;
});
if (!isExsit) {
this.images.push(src);
} else {
this.$viewer.view(this.images.indexOf(src));
}
this.$viewer.show();
},
getGoodsTypeManager: function() {
this.apiJavaPost(
"/api/IntegralManager/goodsTypeManager",
{ reqType: "find" },
res => {
if (res.data.resultCode === 1) {
this.GoodsTypeList = res.data.data;
} else {
this.Error(res.data.message);
}
},
null
);
},
getMenberList: function() {
let msg = {
state: 1,
name: ""
};
this.apiJavaPost(
"/api/member/getmemberrate",
msg,
res => {
if (res.data.resultCode === 1) {
this.MenberList = res.data.data;
} else {
this.Error(res.data.message);
}
},
null
);
},
submitForm(addMsg) {
//提交创建、修改表单
this.$refs[addMsg].validate(valid => {
if (valid) {
this.addIntegralMall();
} else {
return false;
}
});
},
addIntegralMall: function() {
let imgStr = '',imgStr2 = '';
for(let i = 0;i<this.DiningImageArray.length;i++) {
imgStr += `${this.DiningImageArray[i]},`
}
for(let i = 0;i<this.DiningImageArray2.length;i++) {
imgStr2 += `${this.DiningImageArray2[i]},`
}
this.addMsg.images = imgStr.substring(0, imgStr.length -1)
this.addMsg.descripImg = imgStr2.substring(0, imgStr2.length -1)
this.apiJavaPost(
"/api/IntegralManager/" + this.apiUrl,
this.addMsg,
res => {
if (res.data.resultCode === 1) {
this.$message.success(res.data.message);
setTimeout(() => {
this.goIntegralMall("IntegralMall");
}, 1000);
} else {
this.Error(res.data.message);
}
},
null
);
}
},
mounted() {
let obj = localStorage.editIntegralMall ? JSON.parse(localStorage.editIntegralMall) : false
if (obj) {
this.addMsg = obj
this.apiUrl = 'updateGoodsInfo'
if (obj.images) {
this.DiningImageArray = obj.images.split(',')
this.DiningImageArray2 = obj.descripImg.split(',')
}
}
this.getMenberList();
this.getGoodsTypeManager();
this.getGoodsSeries();
}
};
</script>
<style>
.height_auto.el-select .el-input{
height: auto
}
</style>
<template>
<div class="flexOne">
<div class="query-box">
<ul class="user_time_picker">
<li>
<span>
<em>{{$t('MarketingActi.commName')}}</em>
<el-input v-model="msg.name" @keyup.enter.native="getList"></el-input>
</span>
</li>
<li>
<span>
<em>商品类型</em>
<el-select filterable v-model="msg.SellType">
<el-option :label="$t('pub.unlimitedSel')" :value="0" key="0"></el-option>
<el-option v-for="item in CommodityTypeList" :label="item.Name" :value="item.Id" :key="item.Id"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>商品分类</em>
<el-select filterable v-model="msg.CategoryId">
<el-option :label="$t('pub.unlimitedSel')" :value="-1"></el-option>
<el-option v-for="item in GoodsTypeList" :label="item.Name" :value="item.Id" :key="item.Id"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>{{$t('admin.admin_status')}}</em>
<el-select filterable v-model="msg.Status">
<el-option :label="$t('pub.unlimitedSel')" :value="-1"></el-option>
<el-option label="展示" :value="0"></el-option>
<el-option label="不展示" :value="1"></el-option>
</el-select>
</span>
</li>
<li>
<input type="button" @click="getList" class="hollowFixedBtn" :value="$t('pub.searchBtn')">
<input type="button" @click="addIntegralMall('addIntegralMall', '', $t('MarketingActi.addComm'))" class="normalBtn" :value="$t('pub.addBtn')">
</li>
</ul>
</div>
<div class="clearfix"></div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th width='80'>{{$t('MarketingActi.commNum')}}</th>
<th>{{$t('MarketingActi.commName')}}</th>
<th>分类名称</th>
<th>类型名称</th>
<th>成本价</th>
<th>销售价</th>
<th>领队返佣</th>
<th>公司返佣</th>
<th>同行返佣</th>
<th>微途返佣</th>
<th>{{$t('system.table_operation')}}</th>
</tr>
<tr v-for="item in dataList">
<td>{{item.Id}}</td>
<td>{{item.Name}}</td>
<td>{{item.CategoryName}}</td>
<td>{{item.SellTypeName}}</td>
<td>{{item.price}}{{item.priceUnit === 1 ? '人民币' : '积分'}}</td>
<td>{{item.marketPrice}}</td>
<td>{{item.quota === 0 ? '不限购' : `限购${item.quota}次`}}</td>
<td>{{item.logistic}}</td>
<td>{{getHotName(item.ishot)}}</td>
<td>{{item.state === 1 ? '上架' : item.state === 0 ? '下架' : '删除'}}</td>
<td>
<el-tooltip class="item" effect="dark" :content="$t('active.ld_editInfo')" placement="top">
<el-button
type="primary"
icon="el-icon-edit"
circle
@click="addIntegralMall('addIntegralMall', item, '修改商品')"
></el-button>
</el-tooltip>
</td>
</tr>
</table>
<el-pagination background @current-change="handleCurrentChange" layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total>
</el-pagination>
<div class="noDataNotice" v-if="dataList.length<1">
<i class="iconfont icon-kong"></i>
<p>{{$t("active.ld_noData")}}</p>
</div>
</div>
</template>
<script>
export default {
data() {
return {
//请求
msg: {
pageSize: 15,
pageIndex: 1,
SellType: 0,
Name: '',
CategoryId: -1,
Status: -1
},
loading:false,
dataList:[],
GoodsTypeList: [],
GoodsSeriesList: [],
total:0,
CommodityTypeList: [],
};
},
mounted() {
this.getList();
this.getGoodsSeries();
this.getCommodityTypeList();
this.getGoodsTypeManager();
},
filters: {
},
methods: {
handleCurrentChange(val){
this.msg.pageIndex=val;
this.getList();
},
getHotName: function (id) {
for(let i = 0; i < this.GoodsSeriesList.length; i++ ) {
if (this.GoodsSeriesList[i].id === id) {
return this.GoodsSeriesList[i].name
}
}
return '无'
},
getGoodsSeries() {
this.loading = true;
this.apiJavaPost(
"/api/IntegralManager/getGoodsSeries",
{},
res => {
this.loading = false;
if (res.data.resultCode === 1) {
this.GoodsSeriesList = res.data.data;
} else {
this.Error(res.data.message);
}
},
null
);
},
addIntegralMall: function( path, obj, tab){
localStorage.editIntegralMall = JSON.stringify(obj);
this.$router.push({ name: path,query:{blank: 'y', tab: tab} })
},
getGoodsTypeManager() {
this.apipost("Shop_post_GetCommodityCategoryList",{Name: "", ParentId: 0},res => {
if (res.data.resultCode === 1) {
this.GoodsTypeList = res.data.data;
} else {
this.Error(res.data.message);
}
},
null
);
},
getCommodityTypeList() {
this.apipost(
"Shop_post_GetCommodityTypeList",
{},
res => {
if (res.data.resultCode === 1) {
this.CommodityTypeList = res.data.data;
} else {
this.Error(res.data.message);
}
},
null
);
},
//获取数据
getList() {
this.loading = true;
this.apipost("Shop_post_GetPageList", this.msg, res => {
this.loading = false;
if (res.data.resultCode === 1) {
this.dataList = res.data.data.pageData;
this.total= res.data.data.count;
} else {
this.Error(res.data.message)
}
}, null);
},
}
};
</script>
\ No newline at end of file
<style>
.height_auto.el-select .el-input {
height: auto;
}
.BuyingType ._addUpload_box {
display: block;
margin: 10px 0 0;
}
.BuyingType ._addUpload_box img {
width: 110px;
display: block;
margin-right: 25px;
}
.BuyingType ._addUpload_box > div.el-upload {
float: left;
width: 138px;
height: 92px;
border: 1px dashed rgba(210, 210, 210, 1);
border-radius: 2px;
cursor: pointer;
margin-bottom: 10px;
padding: 5px;
margin-right: 10px;
position: relative;
}
.BuyingType ._addUpload_box .icon-guanbi1 {
font-size: 12px;
color: white;
display: inline-block;
margin-left: 15px;
position: absolute;
left: 9px;
top: -5px;
background-color: #f56c6c;
border-radius: 50%;
height: 15px;
width: 15px;
text-align: center;
line-height: 15px;
}
.BuyingType ._addUpload_box > div:hover {
background-color: #f5f5f5;
}
.BuyingType .el-upload-dragger {
font-size: 28px;
color: #8c939d;
width: 126px;
height: 80px;
line-height: 41px;
text-align: center;
}
.BuyingType .bg_color_delete{
background-color: #ee4454;
border-color: #ee4454;
}
.comType_Img{
max-height: 50px;
}
</style>
<template>
<div class="flexOne BuyingType">
<div class="query-box">
<ul class>
<li>
<span>
<em>分类名称</em>
<el-input v-model="msg.Name" @keyup.enter.native="getList"></el-input>
</span>
</li>
<li>
<span>
<em>分类</em>
<el-select filterable v-model="msg.ParentId">
<el-option :label="$t('pub.unlimitedSel')" :value="-1" :key="-1"></el-option>
<el-option v-for="item in GoodsTypeList" :label="item.Name" :value="item.Id" :key="item.Id"></el-option>
</el-select>
</span>
</li>
<li>
<input type="button" @click="getList" class="hollowFixedBtn" :value="$t('pub.searchBtn')">
<input
type="button"
@click="outerVisible = true,dialogTitle=$t('MarketingActi.addCommType'), addMsg.reqType = 'add',resetInfo()"
class="normalBtn"
:value="$t('pub.addBtn')"
>
</li>
</ul>
</div>
<div class="clearfix"></div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th width="120px">{{$t('MarketingActi.typeNum')}}</th>
<th>分类名称</th>
<th>图片</th>
<th>上级名称</th>
<th>是否首页展示</th>
<th>操作人</th>
<th>操作时间</th>
<th>{{$t('system.table_operation')}}</th>
</tr>
<tr v-for="item in dataList">
<td>{{item.Id}}</td>
<td>{{item.Name}}</td>
<td>
<img :src="item.Image" class="comType_Img" />
</td>
<td>
{{item.ParentName}}
</td>
<td>
{{item.IsShowIndex === 1 ? "是" : "否"}}
</td>
<td>{{item.UpdateBy}}</td>
<td>{{item.UpdateDate}}</td>
<td>
<el-tooltip
class="item"
effect="dark"
:content="$t('active.ld_editInfo')"
placement="top"
>
<el-button
type="primary"
icon="el-icon-edit"
circle
@click="outerVisible=true,dialogTitle='修改商品类型',updateData(item)"
></el-button>
</el-tooltip>
</td>
</tr>
</table>
<el-pagination background @current-change="handleCurrentChange" layout="total,prev, pager, next, jumper" :page-size=msg.pageSize :total=total>
</el-pagination>
<div class="noDataNotice" v-if="dataList.length<1">
<i class="iconfont icon-kong"></i>
<p>{{$t("active.ld_noData")}}</p>
</div>
<el-dialog
custom-class="w400"
:title="dialogTitle"
:visible.sync="outerVisible"
center
:before-close="closeChangeMachie"
>
<el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="130px">
<el-form-item :label="$t('MarketingActi.commTypename')" prop="Name">
<el-input v-model="addMsg.Name" class="w217"/>
</el-form-item>
<el-form-item label="所属上级" prop="state">
<el-select filterable v-model="addMsg.ParentId" prop="ParentId" @change="changeParentId">
<el-option label="一级" :value="0"></el-option>
<el-option v-for="item in GoodsTypeList" :label="item.Name" :value="item.Id" :key="item.Id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="排序" prop="name">
<el-input v-model="addMsg.Sort" class="w217"/>
</el-form-item>
<el-form-item label="首页显示" prop="state" v-if="addMsg.ParentId == 0">
<el-select filterable v-model="addMsg.IsShowIndex">
<el-option :label="$t('system.table_isShows')" :value="1"></el-option>
<el-option :label="$t('MarketingActi.notShow')" :value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('MarketingActi.commTypeImg')" v-if="addMsg.ParentId == 0">
<div class="_addUpload_box">
<div class="_pic_upload">
<template v-if="addMsg.Image!==''">
<div>
<div
style="width:100%;height:100%;overflow: hidden;display: flex;align-items: center;"
>
<img :src="addMsg.Image">
<span
style="font-size:12px; color:#666666;cursor: pointer;line-height: 20px;"
@click="addMsg.Image=''"
>{{$t('system.up_againUp')}}</span>
</div>
</div>
</template>
<el-upload
v-else
drag
:http-request="uploadTypeImgBtn"
:multiple="false"
:show-file-list="false"
action
>
<i class="el-icon-plus avatar-uploader-icon"></i>
<div class="el-upload__text">{{$t("active.ld_djscwj")}}</div>
</el-upload>
</div>
</div>
</el-form-item>
<el-form-item label="是否展示" prop="state">
<el-select filterable v-model="addMsg.Status">
<el-option label="展示" :value="0"></el-option>
<el-option label="不展示" :value="1"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<button
class="hollowFixedBtn"
@click="outerVisible = false, resetForm('addMsg')"
>{{$t('pub.cancelBtn')}}</button> &nbsp;
<button class="normalBtn" @click="submitForm('addMsg')">{{$t('pub.saveBtn')}}</button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
//请求
msg: {
pageIndex: 1,
pageSize: 10,
Name: "",
ParentId: -1
},
addMsg: {
Name: "",
ParentId: '',
Sort: 0,
Image: "",
IsShowIndex: 1,
Id: 0,
Status: 0,
},
GoodsTypeList: [],
rules: {
Name: [
{ required: true, message: "请输入会员等级", trigger: "blur" }
],
Image: [
{ required: true, message: "请上传图片", trigger: "blur" }
],
ParentId: [
{ required: true, message: "请上传图片", trigger: "change" }
]
},
loading: false,
outerVisible: false,
dialogTitle: "",
dataList: [],
total:0,
};
},
mounted() {
this.getList();
this.getGoodsTypeManager()
},
filters: {},
methods: {
changeParentId(){
if(this.addMsg.ParentId !== 0) {
this.addMsg.Image = ""
this.addMsg.IsShowIndex = 2
}
},
handleCurrentChange(val){
this.msg.pageIndex=val;
this.getList();
},
// 删除
Delete(item) {
this.$confirm("是否删除"+ item.name+"? 删除后不可恢复", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.apiJavaPost(
"/api/IntegralManager/goodsTypeManager",
{ reqType: 'delete', id: item.id },
res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.getList();
} else {
this.Error(res.data.message);
}
},
err => {}
);
})
.catch(() => {});
},
//上传图片
uploadTypeImgBtn(file){
//上传
if (file.file.size > 1024 * 1024 * 10) {
this.$message.warning(this.$t("tips.wjdxbncgsz"));
return;
}
// 1 文档 2 数据 3 图片
let typeArr = [{ stringArr: "GIF|JPG|JPEG|PNG|BMP", type: 3 }];
let ft = file.file.name
.substring(file.file.name.lastIndexOf(".") + 1, file.file.name.length)
.toUpperCase();
let fileTypeNumber = 2;
let typeOk = false;
typeArr.forEach(x => {
if (x.stringArr.indexOf(ft) != "-1") {
fileTypeNumber = x.type;
typeOk = true;
}
});
if (!typeOk) return this.Error(this.$t("tips.qsctpian"));
let newArr = [];
newArr.push(file.file);
let path = "/Upload/Temporary/";
this.Success(this.$t("tips.shangchuanzhong"));
this.UploadSelfFileT(path, newArr, x => {
let fileSize =
file.file.size < 1024
? file.file.size
: (file.file.size / 1024).toFixed(0);
this.addMsg.Image = this.domainManager().ViittoFileUrl + x.data.FilePath;
this.Success(this.$t("tips.scchenggong"));
this.$forceUpdate();
});
},
getGoodsTypeManager() {
this.apipost("Shop_post_GetCommodityCategoryList",{Name: "", ParentId: 0},res => {
if (res.data.resultCode === 1) {
console.log(res.data.data)
this.GoodsTypeList = res.data.data;
} else {
this.Error(res.data.message);
}
},
null
);
},
//获取数据
getList() {
this.loading = true;
this.apipost(
"Shop_post_GetCommodityCategoryPageList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode === 1) {
this.dataList = res.data.data.pageData;
this.total= res.data.data.count;
} else {
this.Error(res.data.message);
}
},
null
);
},
//提交
submitForm(addMsg) {
//提交创建、修改表单
this.$refs[addMsg].validate(valid => {
if (valid) {
this.addAward();
} else {
return false;
}
});
},
//提交添加
addAward() {
this.apipost(
"Shop_post_SetCommodityCategoryInfo",
this.addMsg,
res => {
if (res.data.resultCode === 1) {
this.Success(res.data.message);
this.outerVisible = false;
this.getList();
this.getGoodsTypeManager()
} else {
this.Error(res.data.message);
}
},
null
);
},
//修改信息
updateData(item) {
this.outerVisible = true;
this.addMsg.IsShowIndex = item.IsShowIndex;
this.addMsg.Name = item.Name;
this.addMsg.ParentId = item.ParentId;
this.addMsg.Sort = item.Sort;
this.addMsg.Image = item.Image;
this.addMsg.Id = item.Id;
this.addMsg.Status = item.Status
},
//重置信息
resetInfo() {
var newMsg = {
Name: "",
ParentId: '',
Sort: 0,
Image: "",
IsShowIndex: 1,
Id: 0,
Status: 0
};
this.addMsg = newMsg;
},
closeChangeMachie(done) {
//弹出框关闭初始化弹框内表单
done();
this.resetForm("addMsg");
},
resetForm(formName) {
this.$refs[formName].resetFields();
}
}
};
</script>
\ No newline at end of file
...@@ -3950,7 +3950,22 @@ export default { ...@@ -3950,7 +3950,22 @@ export default {
title: '商品类型' title: '商品类型'
} }
}, },
{
path: '/BuyingType',
name: 'BuyingType',
component: resolve => require(['@/components/activity/BuyingType'], resolve),
meta: {
title: '代购商品类型'
}
},
{
path: '/BuyingList',
name: 'BuyingList',
component: resolve => require(['@/components/activity/BuyingList'], resolve),
meta: {
title: '代购商品列表'
}
},
{ {
path: '/IntegralMall', path: '/IntegralMall',
name: 'IntegralMall', name: 'IntegralMall',
......
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