talk_appAmin/pages/work/guanli_level/guanli_level.vue

411 lines
9.1 KiB
Vue
Raw Normal View History

2024-07-01 22:36:02 +08:00
<template>
<view class="content">
2024-07-07 22:18:26 +08:00
<view class="box_item" v-for="(item, index) in item_List">
2024-07-01 22:36:02 +08:00
<!-- 标题 -->
2024-07-07 22:18:26 +08:00
<p class="box_title">{{ getDictLively(item.livelyName) }}</p>
2024-07-01 22:36:02 +08:00
<!-- 输入 -->
2024-07-07 22:18:26 +08:00
<view class="input_box" v-if="item.cut == 0">
2024-07-01 22:36:02 +08:00
<p>每日可获取奖励次数:</p>
2024-07-07 22:18:26 +08:00
<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">
2024-07-04 17:56:55 +08:00
2024-07-07 22:18:26 +08:00
</input>
</view>
<view class="input_box" v-else>
<p>每日可获取奖励次数:</p>
<!-- <input type="number" :placeholder="item.cutInfo" disabled class="cut1" v-model="item.cutInfo">
</input> -->
<up-input v-model="item.cutInfo" disabled="true" disabledColor="#F4F5F6"
:customStyle="{
borderRadius: '4px !important',
borderColor:'#FA3939 !important',
width: '100%',
height: '40rpx'
}"
fontSize="24rpx" color="#999999"
>
<template #suffix>
<view class="cut1">不可修改</view>
</template>
</up-input>
2024-07-01 22:36:02 +08:00
</view>
<!-- 第二个输入 -->
<view class="input_box">
2024-07-07 22:18:26 +08:00
<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" />
2024-07-01 22:36:02 +08:00
</view>
<!-- 按钮 -->
2024-07-07 22:18:26 +08:00
<view class="item_btns" v-if="change_id == item.id">
2024-07-01 22:36:02 +08:00
<view class="btns_left" @click="cancel_change">
取消
</view>
2024-07-04 17:56:55 +08:00
<view class="btns_right" @click="queding_change(item)">
2024-07-01 22:36:02 +08:00
确认
</view>
</view>
2024-07-07 22:18:26 +08:00
<view class="item_btn" v-else @click="changetext(index, item.id)">
2024-07-08 08:40:25 +08:00
<image :src="adupdate" style="width: 32rpx; height: 30rpx; margin-right: 12rpx;"></image>
2024-07-01 22:36:02 +08:00
修改
</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">
2024-07-07 22:18:26 +08:00
2024-07-01 22:36:02 +08:00
</view>
</view>
<!-- 输入区域 -->
2024-07-07 22:18:26 +08:00
<view class="shezhi_box_else" v-for="(item, index) in level_List">
2024-07-01 22:36:02 +08:00
<view class="left_shezhi_box">
2024-07-08 17:15:11 +08:00
<input v-model="item.grade" type="text" style="text-align: center;" />
2024-07-01 22:36:02 +08:00
</view>
<view class="center_shezhi_box">
2024-07-07 22:18:26 +08:00
<input type="text" class="inputs" :class="index == if_focus ? 'input_active' : ''"
:disabled="if_focus != index" v-model="item.livelyInfo"
:focus="if_focus == index ? true : false" />
2024-07-01 22:36:02 +08:00
</view>
2024-07-07 22:18:26 +08:00
<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>
2024-07-01 22:36:02 +08:00
</view>
</view>
<!-- 增加等级区域 -->
<view class="add_level" @click="add_levels">
增加等级
</view>
</view>
</view>
2024-07-07 22:18:26 +08:00
<view>
<up-modal :show="show1" :content='content' @confirm="confirm" @cancel="show1 = false" @close="show1 = false"
:closeOnClickOverlay="true" showCancelButton="true"></up-modal>
</view>
2024-07-01 22:36:02 +08:00
</template>
<script setup>
2024-07-04 17:56:55 +08:00
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();
2024-07-07 22:18:26 +08:00
const gradeInfo = ref({})
2024-07-04 17:56:55 +08:00
const iconConfig = proxy.iconConfig;
2024-07-08 08:40:25 +08:00
const adupdate = iconConfig.adupdate;
2024-07-07 22:18:26 +08:00
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;
});
2024-07-04 17:56:55 +08:00
getDicts('lively_cut').then(e => {
2024-07-07 22:18:26 +08:00
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;
2024-07-04 17:56:55 +08:00
})
2024-07-07 22:18:26 +08:00
})
const getDictLively = (state) => {
const dict = lively.value.find((dict) => dict.dictValue === state);
return dict ? dict.dictLabel : '未知状态';
2024-07-04 17:56:55 +08:00
};
const getDictLivelyCut = (state) => {
2024-07-07 22:18:26 +08:00
const dict = livelyCutInfo.value.find((dict) => dict.dictValue === state);
return dict ? dict.dictLabel : '未知状态';
2024-07-04 17:56:55 +08:00
};
2024-07-07 22:18:26 +08:00
// 点击修改按钮
function changetext(index, id) {
change_id.value = id
}
// 点击取消修改按钮
function cancel_change() {
change_id.value = -1
}
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
function queding_change(item) {
proxy.$modal.loading("数据发送中");
change_id.value = -1
2024-07-04 17:56:55 +08:00
let form = {
2024-07-07 22:18:26 +08:00
id: item.id,
dayCount: item.dayCount,
livelySum: item.livelySum
}
updateLively(form).then(e => {
if (e.code == 200) {
proxy.$modal.closeLoading();
proxy.$modal.msgSuccess("修改成功");
2024-07-04 17:56:55 +08:00
}
2024-07-07 22:18:26 +08:00
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
2024-07-04 17:56:55 +08:00
})
2024-07-07 22:18:26 +08:00
let form = {
2024-07-01 22:36:02 +08:00
}
2024-07-07 22:18:26 +08:00
}
function bianji_level(index, item) {
console.log(index === 10);
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
2024-07-01 22:36:02 +08:00
}
2024-07-07 22:18:26 +08:00
updateGrade(form).then(e => {
if (e.code == 200) {
proxy.$modal.closeLoading();
proxy.$modal.msgSuccess("操作成功");
2024-07-04 17:56:55 +08:00
}
2024-07-07 22:18:26 +08:00
console.log(e);
})
}
2024-07-01 22:36:02 +08:00
</script>
<style>
2024-07-07 22:18:26 +08:00
page {
background-color: #ffffff;
}
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.cut1 {
font-weight: 400;
font-size: 24rpx;
color: #FA3939;
}
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.content {
padding-top: 32rpx;
}
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.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;
}
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.box_title {
font-weight: 600;
margin-bottom: 32rpx;
}
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.input_box {
display: flex;
margin-bottom: 14rpx;
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
p {
font-size: 26rpx;
margin-right: 24rpx;
width: 258rpx;
2024-07-01 22:36:02 +08:00
}
2024-07-07 22:18:26 +08:00
input {
background-color: #F4F5F6;
border-radius: 8rpx 8rpx 8rpx 8rpx;
padding-left: 10rpx;
2024-07-01 22:36:02 +08:00
}
2024-07-07 22:18:26 +08:00
}
.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;
2024-07-04 17:56:55 +08:00
}
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.btns_right {
width: 300rpx;
2024-07-01 22:36:02 +08:00
height: 80rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx;
background: #6aa2ff;
display: flex;
align-items: center;
2024-07-07 22:18:26 +08:00
justify-content: space-around;
2024-07-01 22:36:02 +08:00
color: #fff;
font-weight: 600;
}
2024-07-07 22:18:26 +08:00
}
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.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;
2024-07-01 22:36:02 +08:00
}
2024-07-07 22:18:26 +08:00
}
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.shezhi_box {
width: 100%;
margin-top: 20rpx;
display: flex;
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.left_shezhi_box {
width: 60rpx;
height: 60rpx;
font-size: 28rpx;
margin-right: 30rpx;
margin-left: 24rpx;
2024-07-01 22:36:02 +08:00
}
2024-07-07 22:18:26 +08:00
.center_shezhi_box {
width: 472rpx;
text-align: center;
2024-07-01 22:36:02 +08:00
}
2024-07-07 22:18:26 +08:00
}
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.shezhi_box_else {
width: 100%;
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
display: flex;
margin-bottom: 20rpx;
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.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;
}
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
.center_shezhi_box {
width: 472rpx;
text-align: center;
box-shadow: 0rpx 0rpx 10rpx #efefef;
border-radius: 8rpx 8rpx 8rpx 8rpx;
2024-07-01 22:36:02 +08:00
2024-07-07 22:18:26 +08:00
input {
height: 100%;
width: 100%;
border-radius: 6rpx;
2024-07-01 22:36:02 +08:00
}
}
2024-07-07 22:18:26 +08:00
.right_shezhi_box {
width: 60rpx;
height: 60rpx;
border-radius: 8rpx 8rpx 8rpx 8rpx;
background: #6aa2ff;
margin-left: 30rpx;
2024-07-01 22:36:02 +08:00
display: flex;
align-items: center;
justify-content: center;
2024-07-07 22:18:26 +08:00
image {
width: 37rpx;
height: 37rpx;
}
2024-07-01 22:36:02 +08:00
}
2024-07-07 22:18:26 +08:00
}
.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;
}
2024-07-01 22:36:02 +08:00
</style>