444 lines
9.8 KiB
Vue
444 lines
9.8 KiB
Vue
<template>
|
||
<view class="content">
|
||
<view class="box_item" v-for="(item, index) in item_List">
|
||
<!-- 标题 -->
|
||
<p class="box_title">{{ getDictLively(item.livelyName) }}</p>
|
||
<!-- 输入 -->
|
||
<view class="input_box" v-if="item.cut == 0">
|
||
<p>每日可获取奖励次数:</p>
|
||
<input :class="change_id == item.id ? 'input_active' : ''" type="number" placeholder="1"
|
||
v-model.number="item.dayCount" :disabled="change_id == item.id & item.cut == 0 ? false : true">
|
||
|
||
</input>
|
||
</view>
|
||
<view class="input_box" v-else>
|
||
<p>每日可获取奖励次数:</p>
|
||
<!-- input type="number" :placeholder="item.cutInfo" disabled class="cut1" v-model="item.cutInfo"
|
||
style="width: 60%;"> -->
|
||
</input>
|
||
<!-- 无限制:是后端获取的字段cutInfo值,使用 up-input组件 进行 组合 值 + 不可修改固定字样 -->
|
||
<!-- height: '40rpx' 改为 46 尽量不减少字体大小-->
|
||
<up-input v-model="item.cutInfo" disabled="true" disabledColor="#F4F5F6" :customStyle="{
|
||
borderRadius: '4px !important',
|
||
borderColor:'#FA3939 !important',
|
||
width: '100%',
|
||
height: '46rpx'
|
||
}" fontSize="24rpx" color="#999999">
|
||
<template #suffix>
|
||
<view class="cut1">不可修改</view>
|
||
</template>
|
||
</up-input>
|
||
</view>
|
||
<!-- 第二个输入 -->
|
||
<view class="input_box">
|
||
<p>每次可获得活跃度:</p><input type="number" :class="change_id == item.id ? 'input_active' : ''" placeholder="1"
|
||
v-model.number="item.livelySum" :disabled="change_id == item.id ? false : true" />
|
||
</view>
|
||
<!-- 按钮 -->
|
||
<view class="item_btns" v-if="change_id == item.id">
|
||
<view class="btns_left" @click="cancel_change">
|
||
取消
|
||
</view>
|
||
<view class="btns_right" @click="queding_change(item)">
|
||
确认
|
||
</view>
|
||
</view>
|
||
<view class="item_btn" v-else @click="changetext(index, item.id)">
|
||
<image :src="adupdate" style="width: 32rpx; height: 30rpx; margin-right: 12rpx;"></image>
|
||
修改
|
||
</view>
|
||
|
||
</view>
|
||
<!-- 等级设置的功能区域 -->
|
||
<view class="level_shezhi">
|
||
<h4>等级设置</h4>
|
||
<!-- 标题区域 -->
|
||
<view class="shezhi_box">
|
||
<view class="left_shezhi_box">
|
||
等级
|
||
</view>
|
||
<view class="center_shezhi_box">
|
||
升级所需活跃度
|
||
</view>
|
||
<view class="right_shezhi_box"></view>
|
||
</view>
|
||
<!-- 输入区域 -->
|
||
<view class="shezhi_box_else" v-for="(item, index) in level_List">
|
||
<!-- 序号 -->
|
||
<view class="left_shezhi_box">
|
||
<input v-model="item.grade" type="text" style="text-align: center;" />
|
||
</view>
|
||
<!-- 输入框 -->
|
||
<view class="center_shezhi_box">
|
||
<input type="text" class="inputs" :class="index == if_focus ? 'input_active' : ''"
|
||
:disabled="if_focus != index" v-model="item.livelyInfo"
|
||
:placeholder="if_focus == index ? '请输入' : ''" :focus="if_focus == index ? true : false" />
|
||
</view>
|
||
<!-- 俩种图片切换 -->
|
||
<view class="right_shezhi_box" @click="bianji_level(index, item)">
|
||
<image src="../../../static/images/icon/bianji_whitea.png" v-if="if_focus != index" id="inputs"
|
||
mode="">
|
||
</image>
|
||
<image src="../../../static/images/icon/binggo.png" mode="" v-else
|
||
@click.stop="finfsh_bianji(item)">
|
||
</image>
|
||
</view>
|
||
</view>
|
||
<!-- 增加等级区域 -->
|
||
<view class="add_level" @click="add_levels">
|
||
增加等级
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view>
|
||
<up-modal :show="show1" :content='content' @confirm="confirm" @cancel="show1 = false" @close="show1 = false"
|
||
:closeOnClickOverlay="true" showCancelButton="true"></up-modal>
|
||
</view>
|
||
</template>
|
||
|
||
<script setup>
|
||
import {
|
||
listGrade,
|
||
getGrade,
|
||
delGrade,
|
||
addGrade,
|
||
updateGrade
|
||
} from "@/api/system/grade";
|
||
import {
|
||
listLively,
|
||
getLively,
|
||
delLively,
|
||
addLively,
|
||
updateLively
|
||
} from "@/api/system/lively";
|
||
import {
|
||
getAuditlistInfo
|
||
} from "@/api/activityInfo/info";
|
||
import {
|
||
useStore
|
||
} from 'vuex'
|
||
import {
|
||
useRouter
|
||
} from 'vue-router'
|
||
import {
|
||
ref,
|
||
getCurrentInstance,
|
||
reactive,
|
||
toRefs
|
||
} from 'vue';
|
||
import {
|
||
getDicts
|
||
} from "@/api/system/dict/data";
|
||
import {
|
||
onShow,
|
||
onLoad,
|
||
onPullDownRefresh
|
||
} from '@dcloudio/uni-app'
|
||
const {
|
||
proxy
|
||
} = getCurrentInstance();
|
||
const isOfficial = ref(true)
|
||
const store = useStore();
|
||
const gradeInfo = ref({})
|
||
const iconConfig = proxy.iconConfig;
|
||
const adupdate = iconConfig.adupdate;
|
||
var item_List = ref([])
|
||
const show1 = ref(false)
|
||
const content = ref('')
|
||
//等级列表
|
||
var level_List = ref([])
|
||
var change_id = ref(-1)
|
||
var if_focus = ref(-1)
|
||
const lively = ref([]);
|
||
const livelyCutInfo = ref([]);
|
||
onLoad(() => {
|
||
getDicts('lively').then(e => {
|
||
lively.value = e.data;
|
||
});
|
||
getDicts('lively_cut').then(e => {
|
||
livelyCutInfo.value = e.data;
|
||
});
|
||
listGrade().then(e => {
|
||
console.log("e1,", e);
|
||
level_List.value = e.rows // 赋值
|
||
})
|
||
listLively().then(e => {
|
||
console.log("e2", e);
|
||
item_List.value = e.rows;
|
||
})
|
||
})
|
||
const getDictLively = (state) => {
|
||
const dict = lively.value.find((dict) => dict.dictValue === state);
|
||
return dict ? dict.dictLabel : '未知状态';
|
||
};
|
||
const getDictLivelyCut = (state) => {
|
||
const dict = livelyCutInfo.value.find((dict) => dict.dictValue === state);
|
||
return dict ? dict.dictLabel : '未知状态';
|
||
};
|
||
// 点击修改按钮
|
||
function changetext(index, id) {
|
||
change_id.value = id
|
||
}
|
||
// 点击取消修改按钮
|
||
function cancel_change() {
|
||
change_id.value = -1
|
||
}
|
||
|
||
function queding_change(item) {
|
||
proxy.$modal.loading("数据发送中");
|
||
change_id.value = -1
|
||
let form = {
|
||
id: item.id,
|
||
dayCount: item.dayCount,
|
||
livelySum: item.livelySum
|
||
}
|
||
updateLively(form).then(e => {
|
||
if (e.code == 200) {
|
||
proxy.$modal.closeLoading();
|
||
proxy.$modal.msgSuccess("修改成功");
|
||
}
|
||
console.log(e);
|
||
})
|
||
}
|
||
|
||
function add_levels() {
|
||
|
||
let last_level = level_List.value[level_List.value.length - 1]
|
||
level_List.value.push({
|
||
grade: last_level.grade + 1
|
||
})
|
||
let form = {}
|
||
}
|
||
|
||
function bianji_level(index, item) {
|
||
// console.log(index === 10);
|
||
console.log(index)
|
||
console.log(item)
|
||
if_focus.value = index
|
||
}
|
||
|
||
function finfsh_bianji(item) {
|
||
gradeInfo.value = item;
|
||
show1.value = true;
|
||
content.value = "是否修改当前等级设置"
|
||
}
|
||
const confirm = () => {
|
||
show1.value = false;
|
||
if_focus.value = 10
|
||
proxy.$modal.loading("数据发送中");
|
||
let form = {
|
||
id: gradeInfo.value.id,
|
||
grade: gradeInfo.value.grade,
|
||
livelyInfo: gradeInfo.value.livelyInfo
|
||
}
|
||
updateGrade(form).then(e => {
|
||
if (e.code == 200) {
|
||
proxy.$modal.closeLoading();
|
||
proxy.$modal.msgSuccess("操作成功");
|
||
}
|
||
console.log(e);
|
||
})
|
||
}
|
||
</script>
|
||
|
||
<style>
|
||
page {
|
||
background-color: #ffffff;
|
||
}
|
||
|
||
.cut1 {
|
||
font-weight: 400;
|
||
font-size: 24rpx;
|
||
color: #FA3939;
|
||
}
|
||
|
||
.content {
|
||
padding-top: 32rpx;
|
||
}
|
||
|
||
.box_item {
|
||
width: 686rpx;
|
||
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||
box-shadow: 0rpx 0rpx 10rpx #efefef;
|
||
background: #ffffff;
|
||
margin: 0 auto;
|
||
padding: 24rpx;
|
||
margin-top: 24rpx;
|
||
}
|
||
|
||
.box_title {
|
||
font-weight: 600;
|
||
margin-bottom: 32rpx;
|
||
}
|
||
|
||
.input_box {
|
||
display: flex;
|
||
margin-bottom: 14rpx;
|
||
|
||
p {
|
||
font-size: 26rpx;
|
||
margin-right: 24rpx;
|
||
width: 258rpx;
|
||
}
|
||
|
||
input {
|
||
background-color: #F4F5F6;
|
||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||
padding-left: 10rpx;
|
||
}
|
||
}
|
||
|
||
.input_active {
|
||
box-shadow: 0rpx 0rpx 0rpx 2rpx #6aa2ff;
|
||
}
|
||
|
||
.input_active2 {
|
||
box-shadow: 0rpx 0rpx 0rpx 2rpx #FA3939;
|
||
}
|
||
|
||
.item_btn {
|
||
width: 638rpx;
|
||
height: 80rpx;
|
||
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||
background: #6aa2ff;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
color: #fff;
|
||
font-weight: 600;
|
||
margin-top: 36rpx;
|
||
}
|
||
|
||
.item_btns {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-around;
|
||
margin-top: 36rpx;
|
||
|
||
.btns_left {
|
||
width: 300rpx;
|
||
height: 80rpx;
|
||
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||
background: #f4f5f6;
|
||
color: #999999;
|
||
font-weight: 600;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-around;
|
||
}
|
||
|
||
.btns_right {
|
||
width: 300rpx;
|
||
height: 80rpx;
|
||
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||
background: #6aa2ff;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-around;
|
||
color: #fff;
|
||
font-weight: 600;
|
||
}
|
||
}
|
||
|
||
.level_shezhi {
|
||
width: 686rpx;
|
||
height: 557rpx;
|
||
border-radius: 24rpx 24rpx 24rpx 24rpx;
|
||
background: #ffffff;
|
||
box-shadow: 0rpx 0rpx 10rpx #efefef;
|
||
margin: 48rpx auto;
|
||
padding-top: 24rpx;
|
||
|
||
h4 {
|
||
text-align: center;
|
||
font-size: 30rpx;
|
||
|
||
}
|
||
}
|
||
|
||
.shezhi_box {
|
||
width: 100%;
|
||
margin-top: 20rpx;
|
||
display: flex;
|
||
|
||
.left_shezhi_box {
|
||
width: 60rpx;
|
||
height: 60rpx;
|
||
font-size: 28rpx;
|
||
margin-right: 30rpx;
|
||
margin-left: 24rpx;
|
||
|
||
}
|
||
|
||
.center_shezhi_box {
|
||
width: 472rpx;
|
||
text-align: center;
|
||
|
||
}
|
||
}
|
||
|
||
.shezhi_box_else {
|
||
width: 100%;
|
||
|
||
display: flex;
|
||
margin-bottom: 20rpx;
|
||
|
||
.left_shezhi_box {
|
||
width: 60rpx;
|
||
height: 60rpx;
|
||
font-size: 28rpx;
|
||
margin-right: 30rpx;
|
||
box-shadow: 0rpx 0rpx 10rpx #efefef;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
font-weight: 600;
|
||
margin-left: 24rpx;
|
||
border-radius: 6rpx;
|
||
}
|
||
|
||
.center_shezhi_box {
|
||
width: 472rpx;
|
||
text-align: center;
|
||
box-shadow: 0rpx 0rpx 10rpx #efefef;
|
||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||
|
||
input {
|
||
height: 100%;
|
||
width: 100%;
|
||
border-radius: 6rpx;
|
||
}
|
||
}
|
||
|
||
.right_shezhi_box {
|
||
width: 60rpx;
|
||
height: 60rpx;
|
||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||
background: #6aa2ff;
|
||
margin-left: 30rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
|
||
image {
|
||
width: 37rpx;
|
||
height: 37rpx;
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
.add_level {
|
||
width: 654rpx;
|
||
height: 80rpx;
|
||
border-radius: 16rpx 16rpx 16rpx 16rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
background: #6aa2ff;
|
||
margin-left: 24rpx;
|
||
margin-top: 32rpx;
|
||
color: #fff;
|
||
font-weight: 600;
|
||
}
|
||
</style> |