Commit f931c36b by crushh

update: dist

parent b6e08e77
......@@ -83,7 +83,7 @@
<el-table-column min-width="80" align="left" prop="receiveName" label="投放渠道"></el-table-column>
<el-table-column width="100" align="left" prop="receiveName" label="来源明细">
<template slot-scope="scope">
{{ scope.row.receiveCode == 'RECEIVE_003' || scope.row.receiveCode == 'RECEIVE_005' || scope.row.receiveCode == 'RECEIVE_007' || scope.row.receiveCode == 'RECEIVE_004' || scope.row.receiveCode == 'RECEIVE_010' || scope.row.receiveCode == 'RECEIVE_025' ? scope.row.receiveTypeExcel : '--' }}
{{ scope.row.receiveCode == 'RECEIVE_003' || scope.row.receiveCode == 'RECEIVE_005' || scope.row.receiveCode == 'RECEIVE_007' || scope.row.receiveCode == 'RECEIVE_004' || scope.row.receiveCode == 'RECEIVE_010' || scope.row.receiveCode == 'RECEIVE_025' || scope.row.receiveCode == 'RECEIVE_026' ? scope.row.receiveTypeExcel : '--' }}
</template>
</el-table-column>
<el-table-column width="100" align="left" prop="receiveName" label="核销来源">
......
......@@ -25,7 +25,7 @@
</el-form-item>
<el-form-item label="抽奖样式">
<div class="lottery">
<div class="tips">图片建议尺寸 400*400px或等比图片,格式 jpg/png/gif,大小 1M 以内。</div>
<div class="tips">图片建议尺寸{{ baseForm.prizeStyleJsonSize0 }}或等比图片,格式 jpg/png/gif,大小 {{ prizeStyleJsonSize1 }}M 以内。</div>
<div v-for="item in baseForm.prizeStyleJson" :key="item.index">
<div class="imgContent">
<div class="imageOrigin">
......@@ -33,7 +33,7 @@
<div style="display: flex;">
<img :src="item.imageNoSelectUrl" alt="未选中效果" style="width: 120px;height: 120px;" />
<div class="imgBtn">
<el-upload class="avatar-uploader" action="123" :show-file-list="false" :before-upload="file => beforeAvatarUpload(file, 'imageNoSelectUrl')">
<el-upload class="avatar-uploader" action="123" :show-file-list="false" :before-upload="file => beforeAvatarUpload(file, 'imageNoSelectUrl', prizeStyleJsonSize1)">
<el-button type="text">替换</el-button>
</el-upload>
<el-button type="text" @click="replace('imageNoSelectUrl', item.index)">重置</el-button>
......@@ -45,7 +45,7 @@
<div style="display: flex;">
<img :src="item.imageSelectUrl" alt="选中效果" style="width: 120px;height: 120px;" />
<div class="imgBtn">
<el-upload class="avatar-uploader" action="123" :show-file-list="false" :before-upload="file => beforeAvatarUpload(file, 'imageSelectUrl')">
<el-upload class="avatar-uploader" action="123" :show-file-list="false" :before-upload="file => beforeAvatarUpload(file, 'imageSelectUrl', prizeStyleJsonSize1)">
<el-button type="text">替换</el-button>
</el-upload>
<el-button type="text" @click="replace('imageSelectUrl', item.index)">重置</el-button>
......
......@@ -8,7 +8,7 @@
<div class="rightBtn">
<el-button @click="returnNext" v-if="!isInfo">退出</el-button>
<el-button @click="$router.go(-1)" v-else>返回</el-button>
<el-button type="primary" @click="submitForm">发布并预览</el-button>
<el-button type="primary" @click="submitForm" v-if="isCopy || isEdit">发布并预览</el-button>
</div>
</div>
<div class="content">
......@@ -36,7 +36,7 @@
<div class="formContent">
<baseConfig ref="baseConfig" :gameStatus="gameStatus" :templateArr="templateData" :echoData="baseForm" v-show="active == 0" @change="handleBaseConfigChange" @nextStep="nextStep" />
<prizeConfig ref="prizeConfig" :gameStatus="gameStatus" :invalidCard="invalidCard" :prizeMax="prizeMax" :echoData="prizeForm" :prizeMin="prizeMin" v-show="active == 1" @nextStep="nextStep" @prevStep="step => active--" />
<ruleConfig ref="ruleConfig" :gameStatus="gameStatus" :gameTime="gameTime" :shareCard="shareCard" :shareReport="shareReport" :echoData="ruleForm" v-show="active == 2" @nextStep="nextStep" @prevStep="step => active--" @submit="submitForm" :btnLoading="btnLoading" />
<ruleConfig ref="ruleConfig" :gameStatus="gameStatus" :gameTime="gameTime" :shareImgData="shareImgData" :echoData="ruleForm" v-show="active == 2" @nextStep="nextStep" @prevStep="step => active--" @submit="submitForm" :btnLoading="btnLoading" />
</div>
</div>
<info :data="echoData" :invalidCard="invalidCard" v-if="isInfo" />
......@@ -88,7 +88,8 @@ export default {
gameStatus: 0,
invalidCard: {},
gameTime: [],
echoData: {}
echoData: {},
shareImgData: {}
};
},
computed: {
......@@ -129,7 +130,12 @@ export default {
getGameDetail(id) {
getGameDetail({ gameId: id }).then(async res => {
const { result } = res;
this.echoData = JSON.parse(JSON.stringify(result));
if (this.isInfo) {
const templateData = this.templateData.filter(item => item.templateId == result.templateId)[0];
this.echoData = JSON.parse(JSON.stringify(result));
this.echoData.templateName = templateData.templateName;
}
let {
gameRuleInfo, // 游戏规则信息
gameRuleConditionList, // 游戏规则-参与门槛
......@@ -193,15 +199,22 @@ export default {
handleBaseConfigChange(data) {
console.log('handleBaseConfigChange----->');
console.log(data);
const { backImageUrl, noticeImageUrl, adsImageUrl, gameName, templateId, shareCard, shareReport, gameTime } = data;
const { backImageUrl, noticeImageUrl, adsImageUrl, gameName, templateId, shareCard, shareReport, gameTime, shareCardSize0, shareCardSize1, shareReportSize1, shareReportSize0 } = data;
this.bgImg = backImageUrl;
this.tipsImg = noticeImageUrl;
this.boxImg = data.prizeStyleJson[0].imageNoSelectUrl;
this.adImg = adsImageUrl;
this.gameName = gameName;
this.templateId = templateId;
this.shareCard = shareCard;
this.shareReport = shareReport;
this.shareImgData = {
shareCard,
shareReport,
shareCardSize0,
shareCardSize1,
shareReportSize1,
shareReportSize0
};
this.gameTime = gameTime;
},
returnNext() {
......@@ -223,14 +236,14 @@ export default {
this.$route.meta.refresh = false;
const { templateId } = res.result[0];
this.templateId = templateId;
res.result[0].gameTemplateMaterialList.forEach(item => {
if (item.materialKey == 'shareCard') {
this.shareCard = item.materialValue;
}
if (item.materialKey == 'shareReport') {
this.shareReport = item.materialValue;
}
});
// res.result[0].gameTemplateMaterialList.forEach(item => {
// if (item.materialKey == 'shareCard') {
// this.shareCard = item.materialValue;
// }
// if (item.materialKey == 'shareReport') {
// this.shareReport = item.materialValue;
// }
// });
} else {
const { id } = this.$route.params;
this.getGameDetail(id);
......@@ -244,16 +257,19 @@ export default {
}
},
async handleSubmitData() {
console.log('=====》submit');
this.submitData = JSON.parse(JSON.stringify(this.submitData));
console.log(this.submitData);
const { ruleId, winChance, filterJson, filterJsonView, memberDesc, memberType, playConditionFlag, playTimes, shareFlag, shareImageUrl, gameRuleConditionList, gameName, gamePrizeList, prizeNoticeStock, prizeNoticeFlag, adsFlag, bulletFlag, backMusicFlag, templateId, gameRule, gameTime, gameExt } = this.submitData;
const gameRuleInfo = { ruleId, winChance, filterJson, filterJsonView, memberDesc, memberType, playConditionFlag, playTimes, shareFlag, shareImageUrl, shareRuleDesc: gameName };
let cardIdArr = [];
let zeroStock = [];
gamePrizeList.forEach(item => {
if (item.prizeType == 2) {
cardIdArr.push(item.prizeRelationId);
}
if (item.prizeStock == 0) {
zeroStock.push(item);
}
});
if (cardIdArr.length) {
const { result } = await cardView({ ids: cardIdArr.join(',') });
......@@ -300,7 +316,7 @@ export default {
delete gameRuleInfo.gameId;
}
this.$confirm('确认发布游戏?', {
this.$confirm(`${zeroStock.length ? '有奖品数量为0,该奖项将不会被抽中。确认保存?' : '确认发布游戏?'}`, {
type: 'warning'
}).then(() => {
let submitData = {
......
<template>
<div class="rightForm">
<div class="rightForm" :style="`height:${heightPx}px`">
<dm-sub-title type="line">基本信息</dm-sub-title>
<div class="section">
<el-descriptions column="3">
......@@ -14,7 +14,7 @@
<dm-sub-title type="line">展示信息配置</dm-sub-title>
<div class="section">
<el-descriptions column="3">
<el-descriptions-item label="游戏模板"> {{ form.gameName }}</el-descriptions-item>
<el-descriptions-item label="游戏模板"> {{ form.templateName }}</el-descriptions-item>
<el-descriptions-item label="背景音乐">
<div v-if="form.backMusicFlag == 1">
{{ form.gameExt && form.gameExt.backMusicUrl.materialName }} <el-button type="text" @click="handleListen"> <i :class="['iconfont fz14', isPlay ? 'icon-zanting' : 'icon-kaiqi']"></i> 点击试听</el-button>
......@@ -90,11 +90,11 @@
<dm-sub-title type="line">玩法配置</dm-sub-title>
<div class="section">
<el-descriptions column="3">
<el-descriptions-item label="参与人群"> </el-descriptions-item>
<el-descriptions-item label="参与人群">{{ form.gameRuleInfo.memberType == 0 && !form.gameRuleInfo.filterJson ? '全部人群' : '' }} </el-descriptions-item>
<el-descriptions-item label="适用人群说明">{{ form.gameRuleInfo && form.gameRuleInfo.memberDesc }}</el-descriptions-item>
</el-descriptions>
<div v-show="form.gameRuleInfo.memberType == 0">
<vue-gic-people projectName="marketing" :isAdd="false" :hasSearchData="hasSearchData" :useId="form.memberWeightView.searchId" @findFilter="findFilter" @getBackData="getBackData" sceneValue="member" ref="peopleFilter" @editShow="toggleTag = true" @editHide="toggleTag = false" @hideBtn="toggleTag = false" />
<div v-if="form.gameRuleInfo.memberType == 0 && form.gameRuleInfo.filterJson">
<vue-gic-people projectName="marketing" :isAdd="false" :hasSearchData="form.gameRuleInfo.filterJson" :useId="form.memberWeightView.searchId" sceneValue="member" ref="peopleFilter" @editShow="toggleTag = true" @editHide="toggleTag = false" @hideBtn="toggleTag = false" />
<div class="gic-people--button" v-show="toggleTag">
<el-button size="small" type="primary" :disabled="true"> </el-button>
<el-button size="small" @click="cancelFilter"> </el-button>
......@@ -188,16 +188,20 @@ export default {
gameRuleInfo: {},
memberWeightView: {}
},
hasSearchData: '',
isPlay: false,
prizeType: {
0: '谢谢参与',
1: '积分',
2: '卡券'
},
isAdd: this.$route.meta.type === 'add'
isAdd: this.$route.meta.type === 'add',
heightPx: 0
};
},
mounted() {
this.heightPx = document.body.clientHeight - 52;
},
components: {
gicNewMemberGroup
},
......@@ -256,15 +260,7 @@ export default {
cancelFilter() {
this.$refs.peopleFilter.cancelSet();
},
getBackData(val) {
console.log(val);
this.ruleForm.filterJsonView = val;
},
// 子组件触发父组件事件,返回过滤条件数据
findFilter(val) {
console.log(val);
this.hasSearchData = val;
},
calculateRate() {
const prizeNumTotal = this.form.gamePrizeList.map(item => (item.prizeType != 0 ? item.prizeStock : 0)).reduce((pre, current) => pre + current);
this.form.gamePrizeList.forEach(item => {
......@@ -295,7 +291,6 @@ export default {
padding: 30px 20px 0 30px;
box-sizing: border-box;
width: calc(100vw - 520px);
height: 877px;
overflow-y: auto;
overflow-x: hidden;
background: #ffffff;
......
......@@ -84,22 +84,22 @@
<el-form-item label="小程序卡片图片" label-width="122px">
<div class="flex">
<img :src="item.conditionJson.shareCard" alt="游戏背景" style="width: 100px;height: 75px;" />
<el-upload class="avatar-uploader" action="123" :show-file-list="false" :before-upload="file => beforeAvatarUpload(file, 'shareCard')">
<el-upload class="avatar-uploader" action="123" :show-file-list="false" :before-upload="file => beforeAvatarUpload(file, 'shareCard', shareCardSize1)">
<el-button type="text" class="ml16">替换图片</el-button>
</el-upload>
</div>
<div class="tips">图片建议尺寸xxx,格式 jpg/png/gif,大小 xxx 以内。</div>
<div class="tips">图片建议尺寸{{ shareCardSize0 }},格式 jpg/png/gif,大小 {{ shareCardSize1 }} M以内。</div>
</el-form-item>
<el-form-item label="分享海报" label-width="122px">
<div class="flex">
<img :src="item.conditionJson.shareReport" alt="游戏背景" style="width: 100px;height: 178px;" />
<el-upload class="avatar-uploader" action="123" :show-file-list="false" :before-upload="file => beforeAvatarUpload(file, 'shareReport')">
<el-upload class="avatar-uploader" action="123" :show-file-list="false" :before-upload="file => beforeAvatarUpload(file, 'shareReport', shareReportSize1)">
<el-button type="text" class="ml16">替换图片</el-button>
</el-upload>
<el-button type="text" class="ml16 downloadBtn" @click="downloadTmp">下载模板</el-button>
</div>
<div class="tips">图片建议尺寸xxx,格式 jpg/png/gif,大小 xxx 以内。</div>
<div class="tips">图片建议尺寸{{ shareReportSize0 }},格式 jpg/png/gif,大小 {{ shareReportSize1 }} M以内。</div>
</el-form-item>
</div>
<div v-show="item.conditionJson.type == 12">
......@@ -136,21 +136,21 @@ export default {
callback();
};
const mpUrlViewVal = (rule, value, callback) => {
if (this.ruleForm.gameRuleConditionList[1].conditionType != -1 && !this.ruleForm.gameRuleConditionList[1].conditionJson.dumpPath) {
if (this.ruleForm.playConditionFlag == 1 && this.ruleForm.gameRuleConditionList[1].conditionType != -1 && !this.ruleForm.gameRuleConditionList[1].conditionJson.dumpPath) {
callback(new Error('请选择'));
return;
}
callback();
};
const shareTitleVal = (rule, value, callback) => {
if (this.ruleForm.gameRuleConditionList[2].conditionType != -1 && this.ruleForm.gameRuleConditionList[2].conditionJson.type == 11 && !this.ruleForm.gameRuleConditionList[2].conditionJson.shareTitle) {
if (this.ruleForm.playConditionFlag == 1 && this.ruleForm.gameRuleConditionList[2].conditionType != -1 && this.ruleForm.gameRuleConditionList[2].conditionJson.type == 11 && !this.ruleForm.gameRuleConditionList[2].conditionJson.shareTitle) {
callback(new Error('请输入'));
return;
}
callback();
};
const subscribeMsgVal = (rule, value, callback) => {
if (this.ruleForm.gameRuleConditionList[2].conditionType != -1 && this.ruleForm.gameRuleConditionList[2].conditionJson.type == 12 && !this.ruleForm.gameRuleConditionList[2].conditionJson.subscribeMsg) {
if (this.ruleForm.playConditionFlag == 1 && this.ruleForm.gameRuleConditionList[2].conditionType != -1 && this.ruleForm.gameRuleConditionList[2].conditionJson.type == 12 && !this.ruleForm.gameRuleConditionList[2].conditionJson.subscribeMsg) {
callback(new Error('请输入'));
return;
}
......@@ -226,12 +226,18 @@ export default {
isAdd: this.$route.meta.type === 'add',
isEdit: this.$route.meta.type === 'edit',
gameDays: 0,
boolVal: true
boolVal: true,
shareCardSize0: '',
shareCardSize1: 1,
shareReportSize1: 1,
shareReportSize0: ''
};
},
props: {
shareCard: '',
shareReport: '',
shareImgData: {
type: Object,
default: () => {}
},
gameStatus: 0,
btnLoading: false,
echoData: {
......@@ -244,14 +250,16 @@ export default {
}
},
watch: {
shareCard(val) {
shareImgData(val) {
console.log(val);
this.ruleForm.gameRuleConditionList[2].conditionJson.shareCard = val;
this.ruleForm.shareImageUrl = val;
this.ruleForm.gameRuleConditionList = this.ruleForm.gameRuleConditionList.splice(0);
},
shareReport(val) {
this.ruleForm.gameRuleConditionList[2].conditionJson.shareReport = val;
const { shareCard, shareReport, shareCardSize0, shareCardSize1, shareReportSize1, shareReportSize0 } = val;
this.ruleForm.gameRuleConditionList[2].conditionJson.shareCard = shareCard;
this.ruleForm.gameRuleConditionList[2].conditionJson.shareReport = shareReport;
this.ruleForm.shareImageUrl = shareCard;
this.shareCardSize0 = shareCardSize0;
this.shareCardSize1 = shareCardSize1;
this.shareReportSize1 = shareReportSize1;
this.shareReportSize0 = shareReportSize0;
this.ruleForm.gameRuleConditionList = this.ruleForm.gameRuleConditionList.splice(0);
},
echoData(val) {
......@@ -326,8 +334,7 @@ export default {
this.ruleForm.hasSearchData = val;
},
downloadTmp() {
// const prev = process.env['NODE_ENV'] === 'development' ? '' : '/marketing'; // eslint-disable-line
// window.open(`${prev}/static/file/.xlsx`, '_blank');
// window.location = downloadOImportSmsTemp;
},
// 保存链接小工具返回的链接数据
onSaveLink(linkData) {
......
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