|
|
@ -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> |