zx 3 years ago
parent 2dace81b43
commit 542ea78b87

@ -42,8 +42,10 @@ export default defineComponent({
},
},
setup() {
const action = process.env.VUE_APP_URL + "/file/upload/file"; //
const headers = {};
const action = process.env.VUE_APP_URL + "util/upload"; //
const headers = {
};
const filePath = '';
return {
action, headers, filePath

@ -186,6 +186,15 @@ const routes = [
title: '奖励规则',
},
},
{
path: "/basicSetting/addReward",
name: "AddReward",
component: () => import("@/views/BasicSetting/_addReward/index.vue"),
meta: {
title: '添加奖励规则',
},
hidden: true
},
]
},
{

@ -0,0 +1,70 @@
<template>
<div class="main-content">
<div class="form-area">
<el-form size="default" :model="form" label-width="120px">
<el-form-item label="规则名" style="width: 80%">
<el-input placeholder="请输入" v-model="form.title" />
</el-form-item>
<el-form-item label="奖励规则">
<div>
<span>传播值</span>
<span style="margin-left: 312px">奖励积分</span>
</div>
<div v-for="(item,index) in form.rewardRuleList" :key="index" class="ruleTable">
<el-input-number v-model="form.rewardRuleList[index].min"></el-input-number>
<span style="margin: 0px 8px 0px 8px"></span>
<el-input-number v-model="form.rewardRuleList[index].max"></el-input-number>
<span style="margin: 0px 12px 0px 12px"></span>
<el-input-number v-model="form.rewardRuleList[index].reward"></el-input-number>
</div>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="confirm"></el-button>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
import {defineComponent,reactive, getCurrentInstance} from 'vue'
export default defineComponent({
name: 'v-matUpload',
setup() {
const activeId = reactive({
value: 0
});
const { proxy } = getCurrentInstance();
const form = reactive({
title: '',
rewardRuleList: [
{min: 0, max: 0, reward: 0},
{min: 0, max: 0, reward: 0},
{min: 0, max: 0, reward: 0},
{min: 0, max: 0, reward: 0}
]
});
return {
form,proxy,
activeId
}
},
methods: {
confirm() {
this.proxy.$post("/rewardRuleTemplate/add", this.form).then(res => {
this.$message.success(res.data)
this.$router.go(-1);
}).catch(() => {});
},
}
})
</script>
<style lang="less">
.form-area {
width: 600px
}
.ruleTable {
display: flex;
}
</style>

@ -5,7 +5,22 @@
<el-tab-pane label="车系" :name="2"></el-tab-pane>
</el-tabs>
<div class="button-tab">
<el-button size="default" type="primary" @click="goRelease"></el-button>
<el-popover v-model:visible="visible" placement="bottom" :width="180">
<h5>添加</h5>
<el-form>
<el-form-item style="width:80%">
<el-input v-if="index == 1" v-model="signForm.title" placeholder="请输入标签名"></el-input>
<el-input v-else-if="index == 2" v-model="brandForm.name" placeholder="请输入品牌名"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="addConfirm" type="primary">确定</el-button>
<el-button @click="visible = false">取消</el-button>
</el-form-item>
</el-form>
<template #reference>
<el-button size="default" type="primary" @click="visible = true">添加</el-button>
</template>
</el-popover>
</div>
<div class="area-table">
<el-table v-if="index == 1" :data="tableData.data" size="default" border :header-cell-style="{background: '#EEE'}">
@ -49,6 +64,12 @@ export default defineComponent({
const form = reactive({
status: 1,
});
const signForm = reactive({
title: '',
});
const brandForm = reactive({
name: '',
});
const tableData = reactive({
data: [],
});
@ -59,8 +80,9 @@ export default defineComponent({
pageSize: 10
})
const index = ref(1);
const visible = ref(false);
return {
form,proxy,
form,proxy,visible,signForm,brandForm,
index,tableData,pagination,
statusFormatter
}
@ -102,15 +124,41 @@ export default defineComponent({
},
goRelease() {
},
///
addConfirm() {
if(this.index == 1) {
this.proxy.$post("/tag/add", this.signForm).then(res => {
this.getData();
this.visible = false;
this.$message.success(res.data)
}).catch(() => {});
} else if (this.index == 2) {
this.proxy.$post("/brand/add", this.brandForm).then(res => {
this.getData();
this.visible = false;
this.$message.success(res.data)
}).catch(() => {});
}
},
//
singleDel(id) {
this.$alert(
'是否删除'+id+'?', //
'是否删除?', //
'删除', //
{type: 'warning'}
).then(() => {
this.$message.success('删除成功')
if(this.index == 1) {
this.proxy.$post("/tag/del", {id: id}).then(res => {
this.getData();
this.$message.success(res.data)
}).catch(() => {});
} else if (this.index == 2) {
this.proxy.$post("/brand/del", {id: id}).then(res => {
this.getData();
this.$message.success(res.data)
}).catch(() => {});
}
}).catch(() => {})
}
}

@ -3,21 +3,7 @@
<div class="area-form">
</div>
<div class="button-tab">
<el-popover v-model:visible="visible" placement="bottom" :width="180">
<h5>添加规则</h5>
<el-form>
<el-form-item style="width:80%">
<el-input v-model="setForm.name" placeholder="请输入规则名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary">确定</el-button>
<el-button @click="visible = false">取消</el-button>
</el-form-item>
</el-form>
<template #reference>
<el-button size="default" type="primary" @click="visible = true">添加奖励规则</el-button>
</template>
</el-popover>
<el-button size="default" type="primary" @click="goAdd"></el-button>
</div>
<div class="area-table">
<el-table :data="tableData.data" size="default" border
@ -29,8 +15,8 @@
<el-table-column prop="action" label="操作" fixed="right" width="240">
<template #default="scope">
<el-link type="primary" @click="handlerEdit(scope.row.id)"></el-link>
<el-link type="primary" style="margin-left: 8px" v-if="scope.row.isDefault == false"></el-link>
<el-link type="danger" @click="singleDel(scope.row.id)" style="margin-left: 8px" v-if="scope.row.isDefault == false"></el-link>
<el-link type="primary" @click="setDefault(scope.row.id)" style="margin-left: 8px" v-if="scope.row.isDefault == null"></el-link>
<el-link type="danger" @click="singleDel(scope.row.id)" style="margin-left: 8px" v-if="scope.row.isDefault == null"></el-link>
</template>
</el-table-column>
</el-table>
@ -76,7 +62,6 @@ export default defineComponent({
const setForm = reactive({
name: ''
});
const visible = ref(false);
const drawerVisible = ref(false);
const { proxy } = getCurrentInstance();
const drawerData = reactive({
@ -89,7 +74,7 @@ export default defineComponent({
tableData,
pagination,
statusFormatter,
visible,drawerVisible,drawerData
drawerVisible,drawerData
}
},
mounted() {
@ -105,8 +90,7 @@ export default defineComponent({
getData() {
let obj = Object.assign({pageNum: this.pagination.current,pageSize: this.pagination.pageSize})
this.proxy.$post("/rewardRuleTemplate/list", obj).then(res => {
const data = res.data
console.log(data)
const data = res.data;
this.tableData.data = data;
}).catch(() => {});
},
@ -115,15 +99,34 @@ export default defineComponent({
},
handlerEdit(value) {
},
goAdd() {
this.$router.push({name: 'AddReward'})
},
//
setDefault(id) {
this.$alert(
'是否设为默认?', //
'设为默认', //
{type: 'info'}
).then(() => {
this.proxy.$post("/referenceRuleTemplate/setDefault", {id: id}).then(res => {
this.getData();
this.$message.success(res.data)
}).catch(() => {});
}).catch(() => {})
},
//
singleDel(id) {
this.$alert(
'是否删除'+id+'?', //
'是否删除?', //
'删除', //
{type: 'warning'}
).then(() => {
this.$message.success('删除成功')
this.proxy.$post("/referenceRuleTemplate/del", {id: id}).then(res => {
this.getData();
this.$message.success(res.data)
}).catch(() => {});
}).catch(() => {})
}
}

@ -3,22 +3,32 @@
<div class="form-area">
<el-form size="default" :model="form" label-width="120px">
<el-form-item label="分组" style="width: 80%">
<el-select v-model="form.set" placeholder="请选择">
<el-option label="活动展览" :value="1"></el-option>
<el-option label="比赛项目" :value="2"></el-option>
<el-option label="星途揽月" :value="3"></el-option>
<el-option label="星途追风" :value="4"></el-option>
<el-select v-model="form.groupId" placeholder="请选择">
<el-option :value="0" label="不分组"></el-option>
</el-select>
</el-form-item>
<el-form-item label="车系" style="width: 80%">
<el-select v-model="form.series" placeholder="请选择">
<el-option label="车系1" :value="1"></el-option>
<el-option label="车系2" :value="2"></el-option>
<el-option label="车系3" :value="3"></el-option>
<div>
<el-checkbox-group v-model="form.brandList">
<el-checkbox v-for="(item,index) in brandData" :key="index" :label="item.id">
{{item.name}}
</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
<el-form-item label="类型" style="width: 80%">
<el-select v-model="form.type" placeholder="请选择">
<el-option :value="1" label="视频"></el-option>
<el-option :value="2" label="图片"></el-option>
<el-option :value="3" label="文字"></el-option>
</el-select>
</el-form-item>
<el-form-item label="标签" style="width: 80%">
<el-input placeholder="多个标签请用,隔开" type="textarea" v-model="form.tag" />
<el-checkbox-group v-model="form.tagList">
<el-checkbox v-for="(item,index) in tagData" :key="index" :label="item.id">
{{item.title}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="素材描述" style="width: 80%">
<el-input type="textarea" v-model="form.description" />
@ -37,7 +47,7 @@
</template>
<script>
import {defineComponent,reactive} from 'vue'
import {defineComponent,reactive,ref,getCurrentInstance} from 'vue'
export default defineComponent({
name: 'v-matUpload',
setup() {
@ -45,23 +55,38 @@ export default defineComponent({
value: 0
});
const form = reactive({
series: 1,
set: 1,
tag: '',
description: ''
groupId: 0,
title: '',
tagList: [],
brandList: [],
});
const tagData = ref([]);
const brandData = ref([]);
const { proxy } = getCurrentInstance();
return {
form,
form,proxy,
tagData,brandData,
activeId
}
},
mounted() {
this.getApi()
},
methods: {
getApi() {
this.proxy.$post("/tag/list", {}).then(res => {
this.tagData = res.data.records;
}).catch(() => {});
this.proxy.$post("/brand/list", {}).then(res => {
this.brandData = res.data.records;
}).catch(() => {});
},
confirm() {
this.$router.go(-1);
},
//
handlerUpload() {
handlerUpload(data) {
console.log(data)
}
}
})

@ -10,7 +10,7 @@
<el-input v-model="setForm.name" placeholder="请输入分组名"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary">确定</el-button>
<el-button @click="addConfirm" type="primary">确定</el-button>
<el-button @click="visible = false">取消</el-button>
</el-form-item>
</el-form>
@ -94,8 +94,7 @@ export default defineComponent({
getData() {
let obj = Object.assign({pageNum: this.pagination.current,pageSize: this.pagination.pageSize})
this.proxy.$post("/referenceGroup/list", obj).then(res => {
const data = res.data
console.log(data)
const data = res.data;
this.tableData.data = data.records;
this.pagination.total = data.total
}).catch(() => {});
@ -105,15 +104,26 @@ export default defineComponent({
},
handlerEdit(value) {
},
//
addConfirm() {
this.proxy.$post("/referencegroup/add", this.setForm).then(res => {
this.getData();
this.visible = false;
this.$message.success(res.data)
}).catch(() => {});
},
//
singleDel(id) {
this.$alert(
'是否删除'+id+'?', //
'是否删除?', //
'删除', //
{type: 'warning'}
).then(() => {
this.$message.success('删除成功')
this.proxy.$post("/referencegroup/del", {id: id}).then(res => {
this.getData();
this.$message.success(res.data)
}).catch(() => {});
}).catch(() => {})
}
}

@ -16,28 +16,29 @@
<el-input placeholder="请输入" type="textarea" v-model="form.task.subtitle" />
</el-form-item>
<el-form-item label="时间" style="width: 80%">
<el-date-picker v-model="form.time" type="daterange"></el-date-picker>
<el-date-picker format="YYYY-MM-DD HH:MM:SS" @change="timeChange" v-model="selTime" type="daterange"></el-date-picker>
</el-form-item>
<el-form-item label="标签类别">
<el-checkbox-group v-model="form.type">
<el-checkbox :label="1">媒体评测</el-checkbox>
<el-checkbox :label="2">产品宣传</el-checkbox>
<el-checkbox :label="3">用户活动</el-checkbox>
<el-checkbox :label="4">趣味互动</el-checkbox>
<el-checkbox-group v-model="form.tagList">
<el-checkbox v-for="(item,index) in tagData" :key="index" :label="item.id">
{{item.title}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="选择车系">
<div style="width: 80%"><el-checkbox :label="false" @change="selectAll"></el-checkbox></div>
<div>
<el-checkbox-group v-model="form.tagList">
<el-checkbox :label="1">车系1</el-checkbox>
<el-checkbox :label="2">车系2</el-checkbox>
<el-checkbox :label="3">车系3</el-checkbox>
<el-checkbox-group v-model="form.brandList">
<el-checkbox v-for="(item,index) in brandData" :key="index" :label="item.id">
{{item.name}}
</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
<el-form-item label="封面图片">
<uploadFile @change="handlerUpload" :config="{ limit: 1, accept: '.jpg, .jpeg, .png, .gif'}">
<el-icon class="img-upload"><Plus /></el-icon>
</uploadFile>
</el-form-item>
<el-form-item label="素材">
@ -47,8 +48,8 @@
</el-form-item>
<el-form-item label="奖励规则">
<el-select v-model="form.rewardRuleTemplateId" @change="ruleChange">
<el-option label="默认规则" :value="1"></el-option>
<el-option label="适用凌云系列奖励" :value="2"></el-option>
<el-option v-for="(item,index) in ruleData" :key="index" :value="item.id" :label="item.title">
</el-option>
</el-select>
<el-table :data="ruleTable.data" border style="margin-top: 16px">
<el-table-column prop="teleport" label="传播值"></el-table-column>
@ -64,7 +65,7 @@
</template>
<script>
import {defineComponent, reactive, getCurrentInstance} from 'vue'
import {defineComponent, reactive, ref, getCurrentInstance} from 'vue'
export default defineComponent({
name: 'v-questRelease',
setup() {
@ -84,20 +85,37 @@ export default defineComponent({
tagList: [],
referenceList: []
});
const selTime = ref([]);
const tagData = ref([]);
const brandData = ref([]);
const ruleData = ref([]);
const { proxy } = getCurrentInstance();
const ruleTable = reactive({
data: []
});
return {
form,proxy,
form,proxy,selTime,
tagData,brandData,ruleData,
ruleTable,
activeId
}
},
mounted() {
this.activeId.value = this.$route.params.id
this.getApi();
this.activeId.value = this.$route.params.id;
},
methods: {
getApi() {
this.proxy.$post("/tag/list", {}).then(res => {
this.tagData = res.data.records;
}).catch(() => {});
this.proxy.$post("/brand/list", {}).then(res => {
this.brandData = res.data.records;
}).catch(() => {});
this.proxy.$post("/rewardRuleTemplate/list", {}).then(res => {
this.ruleData = res.data;
}).catch(() => {});
},
selectAll(value) {
if(value == true) {
//
@ -106,17 +124,22 @@ export default defineComponent({
}
},
ruleChange(value) {
if(value == 1) {
this.ruleTable.data = [
{teleport: '0-1000', point: 200},
{teleport: '1000-5000', point: 300},
]
} else {
this.ruleTable.data = [ ]
}
// this.proxy.$post("/rewardRuleTemplate/list", {id: value}).then(res => {
// this.ruleData = res.data;
// }).catch(() => {});
},
confirm() {
this.proxy.$post("/taks/add", this.form).then(res => {
this.$message.success(res.data);
this.$router.go(-1);
}).catch(() => {});
},
timeChange(val) {
this.form.task.start = val[0];
this.form.task.end = val[1]
},
handlerUpload() {
}
}
})
@ -126,4 +149,12 @@ export default defineComponent({
.form-area {
width: 600px
}
.img-upload {
font-size: 28px;
color: #8c939d;
width: 135px;
height: 135px;
text-align: center;
border: 1px solid;
}
</style>

@ -16,8 +16,8 @@
<div class="area-table">
<el-table :data="tableData.data" size="default" border :header-cell-style="{background: '#EEE'}">
<el-table-column prop="title" label="标题" width="360"></el-table-column>
<el-table-column prop="type" label="动态类型" :formatter="statusFormatter"></el-table-column>
<el-table-column prop="content" label="内容" ></el-table-column>
<el-table-column prop="type" label="动态类型" :formatter="statusFormatter" width="100"></el-table-column>
<el-table-column prop="content" label="内容" width="600"></el-table-column>
<el-table-column prop="cover" label="封面" ></el-table-column>
<el-table-column prop="action" label="操作" fixed="right" width="240">
<template #default="scope">

Loading…
Cancel
Save