<template> <div class="app-container"> <el-row :gutter="20"> <div style="padding: 40px;" v-loading="loading" :element-loading-text="loadingText" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)" > <el-form :model="form" ref="form" size="small" :rules="rules" label-width="120px"> <el-form-item label="积分功能" prop="status"> <el-radio-group v-model="form.status"> <el-radio :label="1">关闭</el-radio> <el-radio :label="2">开启</el-radio> </el-radio-group> </el-form-item> <el-form-item label="积分抵现" prop="isDischarge"> <el-radio-group v-model="form.isDischarge"> <el-radio :label="1">关闭</el-radio> <el-radio :label="2">开启</el-radio> </el-radio-group> </el-form-item> <div style="display: flex;align-items: center;"> <el-form-item v-if="form.isDischarge==2" label="积分抵现系数" prop="dischargeRate"> <el-input-number style="width: 300px" v-model="form.dischargeRate" placeholder="请输积分抵现系数" controls-position="right"></el-input-number> </el-form-item> <span style="margin-left: 15px; padding-bottom:15px; font-size: 12px;color: #ccc;"></span> </div> <div v-if="form.status==2" style="display: flex;align-items: center;"> <el-form-item label="积分奖励系数" prop="exchangeRate"> <el-input-number style="width: 300px" v-model="form.exchangeRate" placeholder="请输积分奖励系数" controls-position="right"></el-input-number> </el-form-item> <span style="margin-left: 15px; padding-bottom:15px; font-size: 12px;color: #ccc;">(会员下单获取积分值=实付金额*积分规则基础系数奖励系数越大,获得成长值越多,建议数值设置不要过大)</span> </div> <div style="display: flex;align-items: center;"> <el-form-item label="积分自动清零" prop="isClean"> <el-radio-group v-model="form.isClean"> <el-radio :label="1">关闭</el-radio> <el-radio :label="2">开启</el-radio> </el-radio-group> </el-form-item> <el-form-item v-if="form.isClean==2" label="每年固定" prop="cleanTime"> <el-date-picker style="width: 300px" v-model="form.cleanTime" type="datetime" format="MM-dd" value-format="MM-dd" placeholder="请选择每年固定自动清零时间"> </el-date-picker> </el-form-item> <span v-if="form.isClean==2" style="margin-left: 15px; padding-bottom:15px; font-size: 12px;color: #ccc;">自动清零</span> </div> <el-form-item style="margin-top: 15px;"> <el-button :loading="loading" @click="initData()">取消</el-button> <el-button v-hasPermi="configPermi.seva" type="primary" @click="submitForm" :loading="loading" element-loading-text="提交中..." element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)" > {{ loading ? '提交中...' : '保存' }} </el-button> </el-form-item> </el-form> </div> </el-row> </div> </template> <script> import { getTableDeatilsByIdApi, addTableApi, } from '@/api/CURD' export default { name: "IntegralRule", dicts: [], data() { return { title: "积分规则",// 通用标题 loading: false, loadingText: "拼命加载数据中...", configPermi: { add: [''], // 新增权限 details: [''], // 详情权限 delect: [''], // 删除权限 edit: [''], // 编辑权限http://localhost/scenicAreaManagement/contentManagement/scenicAreaManagement/contentManagement/questions upload: [''],// 导入权限 export: [''],// 导出权限http://localhost/scenicAreaManagement/contentManagement/scenicAreaManagement/contentManagement/suggestions release: [''], seva: ['pointsManagement:IntegralRecord:seva'] // 保存 }, configUrl: { details: '/merchant/creditConfig/getCreditConfig', // 详情地址 edit: '/merchant/creditConfig/insertOrUpdate', // 编辑地址 }, form: {}, rules: { status: [{ required: true, message: "请选择积分功能", trigger: ["change","blur"] }], isDischarge: [{ required: true, message: "请选择积分抵现", trigger: ["change","blur"] }], isClean: [{ required: true, message: "请选择积分自动清零", trigger: ["change","blur"] }], cleanTime: [{ required: true, message: "请选择每年固定自动清零时间", trigger: ["change","blur"] }], dischargeRate: [{ required: true, message: "请输积分抵现系数", trigger: ["change","blur"] }], exchangeRate: [{ required: true, message: "请输入积分奖励系数", trigger: ["change","blur"] }], }, }; }, created() { this.initData() }, methods: { /** 初始化 */ initData() { this.loadingText = "拼命加载数据中..." this.loading = true this.getTableDeatilsFun() }, /** 获取详情 */ async getTableDeatilsFun(row) { this.loading = true try { let res = await getTableDeatilsByIdApi(this.configUrl.details,{}) if(res.code == 200) { let obj = { ...res.data } this.$set(this,'form',JSON.parse(JSON.stringify(obj))) this.formStatus = 1 this.$nextTick(()=>{ if(this.form.longitude&&this.form.latitude){ console.log("dsfasfdasdfasdfadsfads") this.$refs.qqMapBox.setMakerLayer({ height: 0, lat: this.form.latitude, lng: this.form.longitude, },true) } }) }else { this.$message.error('获取详情失败!!!'); this.formStatus = 2 this.loading = false this.open = false; } this.$nextTick(()=>{ this.reset() }) this.loading = false } catch (error) { console.error('获取详情失败!!!!',error) this.formStatus = 2 this.loading = false this.open = false; } }, /** * 保存 * @date 2023-11-22 * @returns {any} */ submitForm() { this.$refs["form"].validate(valid => { if (valid) { this.loadingText = "提交数据中..." this.loading = true addTableApi( this.configUrl.edit,{ ...this.form }).then(response => { this.$modal.msgSuccess("修改成功"); this.loading = false this.initData() }).catch(()=>{ this.$message.error("修改失败!!!"); this.loading = false }) } }); }, /** * 重置 * @date 2023-11-22 * @returns {any} */ reset() { if(this.$refs["form"]) { this.$refs["form"].clearValidate(); } }, setDot(params){ this.$set(this.form,'longitude',params.lng) this.$set(this.form,'latitude',params.lat) } } }; </script>