Commit b35685fa by zhangmeng

add:修改了bug

parent ed2dccfc
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/marketing/static/css/app.9a693a609744b9953041f61013daf5e1.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.66eed37ef79aa0fd6d4f.js></script><script type=text/javascript src=/marketing/static/js/app.b7341a08bda4986edcd4.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/marketing/static/css/app.e390f1a7b79f7d0ecdc00de8ca1464a2.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.66eed37ef79aa0fd6d4f.js></script><script type=text/javascript src=/marketing/static/js/app.e204ce5ec2d13f3ce2ef.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -44455,6 +44455,13 @@
/* 新增的一些样式 */
.navheader__status--tooltip {
background: rgba(0,0,0,0.7);
font-size: 14px;
line-height: 1.5;
}
......@@ -202,3 +202,33 @@ export const filterAvatar = (img) => {
return img?img.replace(/^http(s)?/,'https'):defaultAvatar;
}
//base64转blob
export const base64ToBlob = (code) => {
let parts = code.split(';base64,');
let contentType = parts[0].split(':')[1];
let raw = window.atob(parts[1]);
let rawLength = raw.length;
let uInt8Array = new Uint8Array(rawLength);
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
return new Blob([uInt8Array], {type: contentType});
}
//下载
export const downloadFile = (fileName, content) => {
let aLink = document.createElement('a');
let blob = base64ToBlob(content); //new Blob([content]);
let evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true);//initEvent 不加后两个参数在FF下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
// aLink.dispatchEvent(evt);
//aLink.click()
aLink.dispatchEvent(new MouseEvent('click', {bubbles: true, cancelable: true, view: window}));//兼容火狐
}
......@@ -14,7 +14,7 @@
</template>
<script>
import VueQr from 'vue-qr';
import { formateDateTimeByType } from '@/utils/index.js'
import { formateDateTimeByType,downloadFile } from '@/utils/index.js'
export default {
name:'links',
components:{
......@@ -59,10 +59,7 @@ import { formateDateTimeByType } from '@/utils/index.js'
downloadImg(){
const qrWrap = document.getElementById("qrWrap");
const qrImg = qrWrap && qrWrap.childNodes[0].src;
var a = document.createElement('a')
a.download = this.gameTypeName + '-' + this.obj.gameName + formateDateTimeByType(this.obj.gameStartTime,'yyyy-MM-dd-HH-mm-ss') || '游戏链接';
a.href = qrImg;
a.click();
downloadFile(this.gameTypeName + '-' + this.obj.gameName + formateDateTimeByType(this.obj.gameStartTime,'yyyy-MM-dd-HH-mm-ss') || '游戏链接',qrImg);
}
}
};
......
......@@ -46,7 +46,7 @@
<el-form-item label="免费抽奖" prop="gameFreeCount">
<el-input-number controls-position="right" v-model="form.gameFreeCount" :min="0" :precision="0" class="w400" :disabled="isInfo"></el-input-number>
<p class="fz12 gray">
<el-checkbox class="pl10" v-model="form.gameFreeDay" :disabled="isInfo" :true-label="1" :false-label="0">每天</el-checkbox>
<el-checkbox class="pl10" v-model="form.gameFreeDay" :disabled="isInfo" :true-label="1" :false-label="0">每天</el-checkbox>
0表示无免费抽奖次数</p>
</el-form-item>
<el-form-item label="中奖机制">
......@@ -123,12 +123,12 @@ export default {
return {
loading:false,
form:{
gameId:'',
gameName : '',
dateTime : ['',''],
gameImage : {
code:'',
imgUrl:'',
gameId: '',
gameName: '',
dateTime: ['',''],
gameImage: {
code: '',
imgUrl: '',
},
background: '',
gameIntroduction: '',
......@@ -138,38 +138,39 @@ export default {
gameLimitDay: '',
gameFreeCount: '',
gameFreeDay: '',
ruleList: [{"ruleId": "","prizeId": "","gameId": null,"ruleSort": 0,"ruleStatus": 0,"prizeSort": null}],
skinType:0
ruleList: [{ ruleId: '', prizeId: '', gameId: null, ruleSort: 0, ruleStatus: 0, prizeSort: null}],
skinType: 0
},
endRuleObj:{"ruleId": "","prizeId": "","gameId": null,"ruleSort": 0,"ruleStatus": 0,"prizeSort": null},
prizeReferTypeOptions:[{value:1,label:'积分'},{value:2,label:'卡券'},{value:3,label:'谢谢参与'}],
sortList:[{label:'奖品1',value:1},
{label:'奖品2',value:2},
{label:'奖品3',value:3},
{label:'奖品4',value:4},
{label:'奖品5',value:5},
{label:'奖品6',value:6},
{label:'奖品7',value:7},
{label:'奖品8',value:8},
{label:'随机',value:null}],
tableList:Array(8).fill({
"prizeId": "", "prizeType": 3,"prizeCount": null,"prizeIntegral": null,"prizeCardId": "","gameId": "","prizeStatus": 0,"prizeSort":null,"prizeRate": 0,"cardName": "","cardType": null,"cardDenomination": null,"cardImageUrl": "","cardStock": null,"wechatCardId": null,"winRecordCode": 0,"receiveCount": 0
endRuleObj: { ruleId: '', prizeId: '', gameId: null, ruleSort: 0, ruleStatus: 0, prizeSort: null },
prizeReferTypeOptions: [{ value: 1, label: '积分' }, { value: 2, label: '卡券' }, { value: 3, label: '谢谢参与' }],
sortList: [{label: '奖品1', value: 1 },
{ label: '奖品2', value: 2 },
{ label: '奖品3', value: 3 },
{ label: '奖品4', value: 4 },
{ label: '奖品5', value: 5 },
{ label: '奖品6', value: 6 },
{ label: '奖品7', value: 7 },
{ label: '奖品8', value: 8 },
{ label: '随机', value: null }
],
tableList: Array(8).fill({
prizeId: '', prizeType: 3, prizeCount: null, prizeIntegral: null, prizeCardId: '', gameId: '', prizeStatus: 0, prizeSort:null, prizeRate: 0, cardName: '', cardType: null, cardDenomination: null, cardImageUrl: '', cardStock: null, wechatCardId: null, winRecordCode: 0, receiveCount: 0
}).map((v,i) => ({...v,key:i})),
prizeIndex:0,
showCardDialog:false,
rules:{
gameName:{type:'string', required: true, message: '游戏标题不能为空', trigger: 'blur' },
dateTime:{type:'array', required: true, message: '游戏时间不能为空', trigger: 'blur' },
skinType:{type:'number', required: true, message: '请选择皮肤', trigger: 'blur' },
gameIntroduction:{type:'string', required: true, message: '游戏说明不能为空', trigger: 'blur' },
gameLimitCount:{type:'number', required: true, message: '限制次数不能为空', trigger: 'blur' },
gameFreeCount:{type:'number', required: true, message: '免费次数不能为空', trigger: 'blur' },
gameIntegral:{type:'number', required: true, message: '请输入消耗积分', trigger: 'blur' },
gameWinningRate:{type:'number', required: true, message: '中奖概率不能为空', trigger: 'blur' }
prizeIndex: 0,
showCardDialog: false,
rules: {
gameName: { type: 'string', required: true, message: '游戏标题不能为空', trigger: 'blur' },
dateTime: { type: 'array', required: true, message: '游戏时间不能为空', trigger: 'blur' },
skinType: { type: 'number', required: true, message: '请选择皮肤', trigger: 'blur' },
gameIntroduction: { type:'string', required: true, message: '游戏说明不能为空', trigger: 'blur' },
gameLimitCount: { type: 'number', required: true, message: '限制次数不能为空', trigger: 'blur' },
gameFreeCount: { type: 'number', required: true, message: '免费次数不能为空', trigger: 'blur' },
gameIntegral: { type: 'number', required: true, message: '请输入消耗积分', trigger: 'blur' },
gameWinningRate: { type: 'number', required: true, message: '中奖概率不能为空', trigger: 'blur' }
},
isInfo:this.$route.meta.type === 'detail',
isEdit:this.$route.meta.type === 'edit',
isAdd:this.$route.meta.type === 'add',
isInfo: this.$route.meta.type === 'detail',
isEdit: this.$route.meta.type === 'edit',
isAdd: this.$route.meta.type === 'add',
pickerOptions: {
disabledDate(now) {
return now.getTime() < (Date.now() - 24*60*60*1000) && that.isAdd;
......@@ -177,7 +178,7 @@ export default {
}
}
},
watch:{
watch: {
'form.gameFreeCount'(val){
if (this.form.gameLimitCount != -1 && (this.form.gameFreeCount>this.form.gameLimitCount)) {
this.$tips({type:'warning',message:'免费次数不能大于限制次数'});
......@@ -215,9 +216,11 @@ export default {
resetCount(index) {
this.tableList[index].prizeCount = 0;
},
// 添加规则
addRule(i) {
this.form.ruleList.push({"ruleId": "","prizeId": "","gameId": null,"ruleSort": 0,"ruleStatus": 0,"prizeSort": null})
},
// 删除规则
delRule(i) {
this.form.ruleList.splice(i,1);
},
......@@ -294,6 +297,11 @@ export default {
this.$tips({type:'warning',message:`必须有一个奖项为谢谢参与`});
return;
}
if (this.form.dateTime[0] < Date.now()) {
this.$tips({type:'warning',message:`开始时间不能小于当前时间`});
return;
};
if (await this.editAlert()) return;
this.$refs[formName].validate((valid) => {
......
......@@ -275,6 +275,10 @@ export default {
}
if (flag) return;
});
if (this.form.dateTime[0] < Date.now()) {
this.$tips({type:'warning',message:`开始时间不能小于当前时间`});
return;
};
// 编辑弹窗提示
if (await this.editAlert()) return;
......
......@@ -524,6 +524,10 @@ export default {
},
//提交保存
async klflSave (formName) {
if (this.form.dateTime[0] < Date.now()) {
this.$tips({type:'warning',message:`开始时间不能小于当前时间`});
return;
};
// 编辑弹窗提示
if (await this.editAlert()) return;
this.$refs[formName].validate((valid) => {
......
......@@ -430,6 +430,11 @@ export default {
})
if (flag) return;
if (this.form.dateTime[0] < Date.now()) {
this.$tips({type:'warning',message:`开始时间不能小于当前时间`});
return;
};
// 编辑弹窗提示
if (await this.editAlert()) return;
......
......@@ -235,6 +235,12 @@ export default {
this.$tips({type:'warning',message:'首次奖项和后续奖不能为空'});
return;
}
if (this.form.dateTime[0] < Date.now()) {
this.$tips({type:'warning',message:`开始时间不能小于当前时间`});
return;
};
// 编辑弹窗提示
if (await this.editAlert()) return;
......
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