Commit bb8b0960 authored by Mac's avatar Mac

数据绑定

parent 1e551a4a
...@@ -6,23 +6,23 @@ ...@@ -6,23 +6,23 @@
</div> </div>
<div class="content"> <div class="content">
<el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="150px" style="width: 70%"> <el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="150px" style="width: 70%">
<el-form-item label="榜单类型" class="is-required" prop="billboardType"> <el-form-item label="榜单类型" class="is-required" prop="ListType">
<el-select class="w400" v-model="addMsg.billboardType" size="small" placeholder="请选择"> <el-select class="w400" v-model="addMsg.ListType" size="small" placeholder="请选择">
<el-option v-for="item in billboardTYpeList" :key="item.Id" :label="item.Name" :value="item.Id"> <el-option v-for="item in ListType" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="面向群体" class="is-required" prop="groupType"> <el-form-item label="面向群体" class="is-required" prop="ObjectTypeIds">
<el-select class="w400" multiple v-model="addMsg.groupType" size="small" placeholder="请选择"> <el-select class="w400" multiple v-model="addMsg.ObjectTypeIds" size="small" placeholder="请选择">
<el-option v-for="item in grouporientedList" :key="item.Id" :label="item.Name" :value="item.Id"> <el-option v-for="item in ListObjectType" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="主办方" prop="Sponsor" class="is-required" size="small"> <el-form-item label="主办方" prop="Sponsor" class="is-required" size="small">
<el-input v-model="addMsg.Sponsor" class="w600" placeholder="请输入品牌全名" maxlength="100" /> <el-input v-model="addMsg.Sponsor" class="w600" placeholder="请输入品牌全名" maxlength="100" />
</el-form-item> </el-form-item>
<el-form-item label="榜单名称" prop="Name" class="is-required" size="small"> <el-form-item label="榜单名称" prop="ListName" class="is-required" size="small">
<el-input v-model="addMsg.Name" class="w600" placeholder="请输入品牌全名" maxlength="100" /> <el-input v-model="addMsg.ListName" class="w600" placeholder="请输入品牌全名" maxlength="100" />
</el-form-item> </el-form-item>
...@@ -36,24 +36,25 @@ ...@@ -36,24 +36,25 @@
</el-image> </el-image>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="报名截止时间" class="is-required" prop="Endtime"> <el-form-item label="报名时间" class="is-required">
<el-date-picker class="w300" v-model="addMsg.Endtime" type="datetime" size="small" value-format="yyyy-MM-dd HH:mm:ss"
placeholder="报名截止时间"> <el-date-picker v-model="value" value-format="yyyy-MM-dd" type="daterange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="公示日期" class="is-required" prop="publicitytime"> <el-form-item label="公示日期" class="is-required" prop="FinishDate">
<el-date-picker class="w300" value-format="yyyy-MM-dd" v-model="addMsg.publicitytime" type="date" size="small" <el-date-picker class="w300" value-format="yyyy-MM-dd HH:mm:ss" v-model="addMsg.FinishDate" type="datetime"
placeholder="公示日期"> size="small" placeholder="公示日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="入围名额" prop="Finalists" size="small"> <el-form-item label="入围名额" prop="PrizeNum" size="small">
<el-input v-model="addMsg.Finalists" class="w600" :min='0' placeholder="请输入数量" type='number' /> <el-input v-model="addMsg.PrizeNum" class="w600" :min='0' placeholder="请输入数量" type='number' />
</el-form-item> </el-form-item>
<el-form-item label="是否启用排名" class="is-required"> <el-form-item label="是否启用排名" class="is-required">
<el-radio v-model="addMsg.rankingType" :label="1"></el-radio> <el-radio v-model="addMsg.EnableRank" :label="1"></el-radio>
<el-radio v-model="addMsg.rankingType" :label="0"></el-radio> <el-radio v-model="addMsg.EnableRank" :label="0"></el-radio>
</el-form-item> </el-form-item>
...@@ -88,19 +89,21 @@ ...@@ -88,19 +89,21 @@
data() { data() {
return { return {
addMsg: { addMsg: {
ID: 0, Id: 0,
billboardType: '', ListType: '',//类型
groupType: '',//面向群体 ObjectTypeIds: '',//面向群体 多选
Sponsor:'',//主办方 Sponsor: '',//主办方
Name:"",//榜单名称 ListName: "",//榜单名称
CoverImage:'',//封面图 CoverImage: '',//封面图
Endtime:'',//报名截止时间 FinishDate: '',//公示日期
publicitytime:'',//公示日期 StartDate: '',//开始时间
rankingType:1,//是否启用排名 EndDate: '',//结束时间
Finalists:0,//入围名额 EnableRank: 1,//是否启用排名
content:'',//详情内容 PrizeNum: 0,//入围名额
Content: '',//详情内容
}, },
value: [],
Advertising: "", Advertising: "",
config: { config: {
...@@ -108,14 +111,14 @@ ...@@ -108,14 +111,14 @@
initialFrameHeight: 200, initialFrameHeight: 200,
}, },
rules: { rules: {
billboardType: [ ListType: [
{ {
required: true, required: true,
message: "请选择榜单类型", message: "请选择榜单类型",
trigger: "blur", trigger: "blur",
}, },
], ],
groupType: [ ObjectTypeIds: [
{ {
required: true, required: true,
message: "请选择面向群体", message: "请选择面向群体",
...@@ -129,7 +132,7 @@ ...@@ -129,7 +132,7 @@
trigger: "blur", trigger: "blur",
}, },
], ],
Name: [ ListName: [
{ {
required: true, required: true,
message: "请输入榜单名称", message: "请输入榜单名称",
...@@ -143,22 +146,22 @@ ...@@ -143,22 +146,22 @@
trigger: "blur", trigger: "blur",
}, },
], ],
Finalists: [ PrizeNum: [
{ {
required: true, required: true,
message: "请输入入围名额", message: "请输入入围名额",
trigger: "blur", trigger: "blur",
}, },
], ],
Endtime:[ DeadlineDate: [
{ {
required: true, required: true,
message: "请选择报名截止时间", message: "请选择报名截止时间",
trigger: "blur", trigger: "blur",
}, },
], ],
publicitytime:[ StartDate: [
{ {
required: true, required: true,
message: "请选择公示日期", message: "请选择公示日期",
trigger: "blur", trigger: "blur",
...@@ -168,20 +171,36 @@ ...@@ -168,20 +171,36 @@
loading: false, loading: false,
changeState: false, changeState: false,
imgType: 0, imgType: 0,
billboardTYpeList: [{ Name: '招引贡献', Id: 1 }, { Name: '首发', Id: 2 }, { Name: '首秀', Id: 3 }, { Name: '首展', Id: 4 }], //榜单类型列表
grouporientedList: [{ Name: '载体', Id: 1 }, { Name: '品牌', Id: 2 }, { Name: '服务商', Id: 3 }],//面向群体
logoList: [], logoList: [],
ShopWish: 1, ShopWish: 1,
ListType: [],//榜单类型 枚举
ListObjectType: [],//面向群体 枚举
}; };
}, },
created() { created() {
this.getListType()//榜单类型 枚举
this.getListObject()//面向群体 枚举
}, },
mounted() { mounted() {
if (this.$route.query.ID) { if (this.$route.query.Id) {
this.getData(this.$route.query.ID); this.getData(this.$route.query.Id);
} }
}, },
methods: { methods: {
getListType() {
this.apipost("/api/Trade/GetListTypeEnumList", {}, res => {
if (res.data.resultCode == 1) {
this.ListType = res.data.data
}
})
},
getListObject() {
this.apipost("/api/Trade/GetListObjectTypeEnumList", {}, res => {
if (res.data.resultCode == 1) {
this.ListObjectType = res.data.data
}
})
},
//选择图片 //选择图片
SelectId(msg) { SelectId(msg) {
...@@ -200,14 +219,22 @@ ...@@ -200,14 +219,22 @@
//保存品牌 //保存品牌
Save(formName) { Save(formName) {
//广告
let advertising = this.$refs.ue.getUEContent(); let advertising = this.$refs.ue.getUEContent();
this.addMsg.content = advertising; this.addMsg.Content = advertising;
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
this.apipost("/api/Trade/GetSetBrand", this.addMsg, (res) => { console.log(this.addMsg.ObjectTypeIds)
let addMsg = JSON.parse(JSON.stringify(this.addMsg))
addMsg.ObjectTypeIds = addMsg.ObjectTypeIds.join(',')
if (this.value != '' && this.value != null) {
this.addMsg.StartDate = this.value[0];
this.addMsg.EndDate = this.value[1];
} else {
this.Error('请选择日期范围');
}
this.apipost("/api/Trade/SetFistShopPrizeListInfo", addMsg, (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.CommonJump("brandManagement"); this.CommonJump("billboardList");
this.Success(res.data.message); this.Success(res.data.message);
} else { } else {
this.Error(res.data.message); this.Error(res.data.message);
...@@ -222,23 +249,29 @@ ...@@ -222,23 +249,29 @@
getData(ID) { getData(ID) {
this.loading = true; this.loading = true;
this.apipost( this.apipost(
"/api/Trade/GetBrandDetails", "/api/Trade/GetFistShopPrizeListInfo",
{ {
ID: ID, ListId: ID,
}, },
(res) => { (res) => {
this.loading = false; this.loading = false;
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.addMsg = res.data.data; this.addMsg = res.data.data;
if (this.addMsg.content && this.addMsg.content != "") { if (this.addMsg.Content && this.addMsg.Content != "") {
this.Advertising = this.addMsg.content; this.Advertising = this.addMsg.Content;
} }
let ids = this.addMsg.ObjectTypeIds.split(',')
if (this.addMsg.OpenShopWish == -1) { if(ids.length>0){//下拉多选的额数据处理
this.ShopWish = 0 this.addMsg.ObjectTypeIds=[];
ids.forEach(x=>{
let num = Number(x)
this.addMsg.ObjectTypeIds.push(num)
})
}
if(this.addMsg.StartDate && this.addMsg.EndDate ){
this.value = [this.addMsg.StartDate,this.addMsg.EndDate ]
} }
this.logoList = [];
this.logoList.push(this.addMsg.Logo);
} }
} }
); );
......
...@@ -3,94 +3,116 @@ ...@@ -3,94 +3,116 @@
<div class="head-title"> <div class="head-title">
榜单管理 榜单管理
<div style="float:right;margin-top:5px"> <div style="float:right;margin-top:5px">
<el-button style="float:right;margin-top: -5px;" size="small" type="primary" @click="CommonJump('addbillboard')">新增 <el-button style="float:right;margin-top: -5px;" size="small" type="primary"
@click="CommonJump('addbillboard')">新增
</el-button> </el-button>
</div> </div>
</div> </div>
<div class="content"> <div class="content">
<div> <div>
<!-- <span style="margin-left: 10px">品牌信息</span> <span style="margin-left: 10px">主办方</span>
<div class="searchInput" style="width:250px"> <div class="searchInput" style="width:250px">
<el-input @keyup.enter.native="msg.pageIndex=1,getList()" @clear="msg.pageIndex=1,getList()" <el-input @keyup.enter.native="msg.pageIndex=1,getList()" @clear="msg.pageIndex=1,getList()"
style="display:inline-block;width:225px;height:30px" placeholder="品牌信息" v-model="msg.BranchName" size="small" style="display:inline-block;width:225px;height:30px" placeholder="主办方" v-model="msg.Sponsor"
clearable> size="small" clearable>
</el-input> </el-input>
<span @click="msg.pageIndex=1,getList()" class="el-icon-search" <span @click="msg.pageIndex=1,getList()" class="el-icon-search"
style="color:#979dad;font-size:14px;position:relative;top:1px"></span> style="color:#979dad;font-size:14px;position:relative;top:1px"></span>
</div> </div>
<span style="margin-left: 10px">对标载体</span> <span style="margin-left: 10px">榜单名称</span>
<div class="searchInput" style="width:250px"> <div class="searchInput" style="width:250px">
<el-input @keyup.enter.native="msg.pageIndex=1,getList()" @clear="msg.pageIndex=1,getList()" <el-input @keyup.enter.native="msg.pageIndex=1,getList()" @clear="msg.pageIndex=1,getList()"
style="display:inline-block;width:225px;height:30px" placeholder="对标载体" v-model="msg.CarrierName" size="small" style="display:inline-block;width:225px;height:30px" placeholder="榜单名称" v-model="msg.ListName"
clearable> size="small" clearable>
</el-input> </el-input>
<span @click="msg.pageIndex=1,getList()" class="el-icon-search" <span @click="msg.pageIndex=1,getList()" class="el-icon-search"
style="color:#979dad;font-size:14px;position:relative;top:1px"></span> style="color:#979dad;font-size:14px;position:relative;top:1px"></span>
</div> </div>
--> <span style="margin-left: 10px">榜单类型</span>
<el-select size="small" v-model="msg.ListType" filterable @change="(msg.pageIndex = 1), getList()"
placeholder="请选择">
<el-option label="不限" :value="0"></el-option>
<el-option v-for="item in ListType" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
<span style="margin-left: 10px">面向群体</span>
<el-select size="small" v-model="msg.ObjectTypeId" filterable @change="(msg.pageIndex = 1), getList()"
placeholder="请选择">
<el-option label="不限" :value="0"></el-option>
<el-option v-for="item in ListObjectType" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
<span style="margin-left: 10px">榜单状态</span>
<el-select size="small" v-model="msg.ListState" filterable @change="(msg.pageIndex = 1), getList()"
placeholder="请选择">
<el-option label="不限" :value="0"></el-option>
<el-option v-for="item in ListState" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
</div> </div>
<el-table :data="tableData" v-loading="loading" border style="width: 100%;margin:20px 0"> <el-table :data="tableData" v-loading="loading" border style="width: 100%;margin:20px 0">
<el-table-column prop="UserName" label="榜单信息"> <el-table-column prop="UserName" label="榜单信息" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="app-image"
:style="{backgroundImage:'url(' + scope.row.CoverImage + ')',backgroundSize:'cover'}"> <el-image
</div> class="app-image"
:src="scope.row.CoverImage"
:preview-src-list="[scope.row.CoverImage]">
</el-image>
<div flex="dir:left cross:center"> <div flex="dir:left cross:center">
{{scope.row.Name}} {{scope.row.ListName}}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="Sponsor" label="主办方"> <el-table-column prop="Sponsor" label="主办方">
</el-table-column> </el-table-column>
<el-table-column prop="TypeName" label="榜单类型"> <el-table-column prop="ListTypeName" label="榜单类型">
</el-table-column>
<el-table-column prop="group" label="面向群体">
</el-table-column>
<el-table-column prop="Endtime" label="报名截止时间">
</el-table-column> </el-table-column>
<el-table-column prop="publicitytime" label="公示日期"> <el-table-column prop="ObjectTypeList" label="面向群体">
</el-table-column>
<el-table-column prop="Area" label="是否启用排名">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.rankingType==1" style="color:green;">启用</span> <span v-for="(x,y) in scope.row.ObjectTypeList">{{x}}{{scope.row.ObjectTypeList.length-1==y?'':'、'}}</span>
<span v-if="scope.row.rankingType==2" style="color:#e95252;">不启用</span> </template>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="DeadlineDate" label="报名时间">
<el-table-column prop="Status" label="状态">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.Status==1">报名中</span> <div>开始:{{scope.row.StartDate}}</div>
<span v-if="scope.row.Status==2">评比中</span> <div>结束:{{scope.row.EndDate}}</div>
<span v-if="scope.row.Status==3">已放榜</span>
<span v-if="scope.row.Status==4">取消</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="JoinNum" label="报名人数"> <el-table-column prop="FinishDate" label="公示日期">
</el-table-column>
<el-table-column prop="EnableRank" label="是否启用排名">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="getItem(scope.row)"> <span v-if="scope.row.EnableRank==1" style="color:green;">启用</span>
{{scope.row.JoinNum}} <span v-else style="color:#e95252;">不启用</span>
</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="130"> <el-table-column prop="ListStateName" label="状态">
</el-table-column>
<el-table-column label="操作" width="170">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip class="item" effect="dark" content="报名列表" placement="top">
<img src="../../assets/img/userman/baoming.png" alt="" class="imgstyle"
@click="getItem(scope.row)" />
</el-tooltip>
<el-tooltip class="item" effect="dark" content="放榜" placement="top"> <el-tooltip class="item" effect="dark" content="放榜" placement="top">
<img src="../../assets/img/setup/fangbang.png" alt="" class="imgstyle" @click="fangbang(scope.row)"/> <img src="../../assets/img/setup/fangbang.png" alt="" class="imgstyle"
@click="fangbang(scope.row)" />
</el-tooltip> </el-tooltip>
<el-tooltip class="item" effect="dark" content="编辑" placement="top"> <el-tooltip class="item" effect="dark" content="编辑" placement="top">
<img src="../../assets/img/setup/edit.png" alt="" class="imgstyle" <img src="../../assets/img/setup/edit.png" alt="" class="imgstyle"
@click="EditgoUrl(scope.row)" /> @click="EditgoUrl(scope.row)" />
</el-tooltip> </el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top"> <el-tooltip class="item" effect="dark" content="取消" placement="top">
<img src="../../assets/img/setup/del.png" alt="" class="imgstyle" <img src="../../assets/img/setup/del.png" alt="" class="imgstyle"
@click="delete_b(scope.row)" /> @click="delete_b(scope.row)" />
</el-tooltip> </el-tooltip>
...@@ -121,35 +143,52 @@ ...@@ -121,35 +143,52 @@
msg: { msg: {
pageIndex: 1, pageIndex: 1,
pageSize: 15, pageSize: 15,
UserId: 0, // 用户id Sponsor: '', // 主办方
BranchName: '', // 品牌 ListName: '', //榜单名称
CarrierName: '', // 对标载体 ListType: 0, //榜单类型 枚举
ObjectTypeId: 0,//面向群体 枚举
ListState: 0,//榜单状态 枚举
}, },
total: 0, total: 0,
tableData: [{ tableData: [], //数据列表
CoverImage: 'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1616557590000_450.png',
Name: '成都优质火锅',
Sponsor: "小龙坎",
TypeName: "招引贡献",
group: '服务商',
Endtime: '2021-10-01',
publicitytime: "2021-08-31",
rankingType: 1,//1启用 2不启用
Status: 1,//1报名中,2评比中,3已放榜,4取消
JoinNum: 2,
}], //数据列表
joinData: [], joinData: [],
ListType: [],//榜单类型 枚举
ListState: [],//榜单状态 枚举
ListObjectType: [],//面向群体 枚举
}; };
}, },
created() { created() {
// this.getList(); this.getListType()//榜单类型 枚举
this.getListState()//榜单状态 枚举
this.getListObject()//面向群体 枚举
this.getList();
}, },
methods: { methods: {
getListType() {
this.apipost("/api/Trade/GetListTypeEnumList", {}, res => {
if (res.data.resultCode == 1) {
this.ListType = res.data.data
}
})
},
getListState() {
this.apipost("/api/Trade/GetListStateEnumList", {}, res => {
if (res.data.resultCode == 1) {
this.ListState = res.data.data
}
})
},
getListObject() {
this.apipost("/api/Trade/GetListObjectTypeEnumList", {}, res => {
if (res.data.resultCode == 1) {
this.ListObjectType = res.data.data
}
})
},
getList() { getList() {
this.loading = true; this.loading = true;
this.apipost("/api/Trade/GetFirstShopPrizeListPageList", this.msg, res => {
this.apipost("/api/Trade/GetFirstShopWishPageList", this.msg, res => {
this.loading = false; this.loading = false;
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.total = res.data.data.count; this.total = res.data.data.count;
...@@ -167,9 +206,9 @@ ...@@ -167,9 +206,9 @@
let that = this; let that = this;
that.Confirm("是否删除?", function () { that.Confirm("是否删除?", function () {
that.apipost( that.apipost(
"/api/Trade/DelFirstShopWishInfo", "/api/Trade/DelFistShopPrizeListInfo",
{ {
WishId: row.Id, ListId: row.Id,
}, },
(res) => { (res) => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
...@@ -182,8 +221,14 @@ ...@@ -182,8 +221,14 @@
); );
}); });
}, },
EditgoUrl() { EditgoUrl(row) {
this.$router.push({
name: "addbillboard",
query: {
Id: row.Id,
blank: "y",
},
});
}, },
guanlianbrand(UserId) { guanlianbrand(UserId) {
this.$router.push({ this.$router.push({
...@@ -208,7 +253,7 @@ ...@@ -208,7 +253,7 @@
name: "addbillboard", name: "addbillboard",
}); });
}, },
fangbang(){//放榜功能 fangbang() {//放榜功能
this.$router.push({ this.$router.push({
name: "publishAlist", name: "publishAlist",
query: { query: {
......
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