Commit bb8b0960 authored by Mac's avatar Mac

数据绑定

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