Browse Source

修复bug

master
前端-胡立永 3 weeks ago
parent
commit
01bbaa681a
1 changed files with 209 additions and 0 deletions
  1. +209
    -0
      CatmDogd-Mall-Front-test/src/views/model/AppletConfig/homeConfig.vue

+ 209
- 0
CatmDogd-Mall-Front-test/src/views/model/AppletConfig/homeConfig.vue View File

@ -0,0 +1,209 @@
<template>
<div class="app-container">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>首页配置管理</span>
<el-button style="float: right; padding: 3px 0" type="text" @click="handleSave">保存配置</el-button>
</div>
<el-form ref="homeForm" :model="homeConfig" :rules="rules" label-width="120px">
<!-- 历史记录统计配置 -->
<el-divider content-position="left">历史记录统计配置</el-divider>
<!-- 历史记录列表配置 -->
<el-card class="box-card" style="margin-bottom: 20px;">
<div slot="header">
<span>历史记录统计列表</span>
<el-button style="float: right; padding: 3px 0" type="text" @click="addHistoryRecord">添加记录</el-button>
</div>
<el-table :data="homeConfig.historyRecords" style="width: 100%">
<!-- <el-table-column label="类型" width="120">
<template slot-scope="scope">
<el-select v-model="scope.row.type" placeholder="选择类型">
<el-option label="狗狗" value="dog"></el-option>
<el-option label="猫咪" value="cat"></el-option>
<el-option label="服务次数" value="service"></el-option>
</el-select>
</template>
</el-table-column> -->
<el-table-column label="数量/次数" width="220">
<template slot-scope="scope">
<el-input v-model="scope.row.count" size="mini" placeholder="请输入数量/次数"></el-input>
</template>
</el-table-column>
<el-table-column label="时间" width="220">
<template slot-scope="scope">
<el-input v-model="scope.row.time" size="mini" placeholder="请输入时间"></el-input>
</template>
</el-table-column>
<el-table-column label="图片">
<template slot-scope="scope">
<oss-image-upload v-model="scope.row.image" :limit="1"></oss-image-upload>
</template>
</el-table-column>
<!-- <el-table-column label="描述">
<template slot-scope="scope">
<el-input v-model="scope.row.description" size="mini" placeholder="请输入描述"></el-input>
</template>
</el-table-column> -->
<el-table-column label="操作" width="100">
<template slot-scope="scope">
<el-button type="danger" size="mini" @click="removeHistoryRecord(scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-card>
</el-form>
<div style="text-align: center; margin-top: 20px;">
<el-button type="primary" @click="handleSave" :loading="saveLoading">保存配置</el-button>
<el-button @click="handleReset">重置</el-button>
</div>
</el-card>
</div>
</template>
<script>
import { listAppletConfig, getAppletConfig, addAppletConfig, updateAppletConfig } from "@/api/model/AppletConfig";
export default {
name: "HomeConfig",
data() {
return {
saveLoading: false,
//
homeConfig: {
//
historyRecords: [
{
count: '',
time: '',
image: '',
},
{
count: '',
time: '',
image: '',
},
{
count: '',
time: '',
image: '',
}
]
},
//
rules: {}
};
},
created() {
this.getHomeConfig();
},
methods: {
//
async getHomeConfig() {
try {
//
const response = await listAppletConfig({ paramCode: 'home_config' });
if (response.rows && response.rows.length > 0) {
const config = response.rows[0];
if (config.paramValueText) {
this.homeConfig = JSON.parse(config.paramValueText);
}
}
} catch (error) {
console.error('获取首页配置失败:', error);
this.$message.error('获取首页配置失败');
}
},
//
async handleSave() {
try {
this.$refs.homeForm.validate(async (valid) => {
if (valid) {
this.saveLoading = true;
//
const saveData = {
paramCode: 'home_config',
paramValue: '首页配置',
paramValueText: JSON.stringify(this.homeConfig, null, 2)
};
//
const response = await listAppletConfig({ paramCode: 'home_config' });
if (response.rows && response.rows.length > 0) {
//
saveData.id = response.rows[0].id;
await updateAppletConfig(saveData);
} else {
//
await addAppletConfig(saveData);
}
this.$message.success('首页配置保存成功');
this.saveLoading = false;
}
});
} catch (error) {
console.error('保存首页配置失败:', error);
this.$message.error('保存首页配置失败');
this.saveLoading = false;
}
},
//
handleReset() {
this.$confirm('确定要重置所有配置吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.getHomeConfig();
this.$message.success('配置已重置');
});
},
//
addHistoryRecord() {
this.homeConfig.historyRecords.push({
type: 'dog',
count: 0,
time: '',
image: '',
description: ''
});
},
//
removeHistoryRecord(index) {
this.homeConfig.historyRecords.splice(index, 1);
}
}
};
</script>
<style scoped>
.box-card {
margin-bottom: 20px;
}
.el-divider {
margin: 20px 0;
}
.el-form-item {
margin-bottom: 18px;
}
.small-img {
width: 50px;
height: 50px;
}
.circle-img {
border-radius: 50%;
}
</style>

Loading…
Cancel
Save