|
|
@@ -0,0 +1,115 @@
|
|
|
+<template>
|
|
|
+ <div class="app-container">
|
|
|
+ <el-card shadow="never">
|
|
|
+ <div slot="header">
|
|
|
+ <span>数字能量配置</span>
|
|
|
+ <div style="float: right">
|
|
|
+ <el-select v-model="filterType" placeholder="筛选类型" clearable size="small" style="width: 160px" @change="load">
|
|
|
+ <el-option label="生命灵数" value="life_path" />
|
|
|
+ <el-option label="天赋数" value="talent" />
|
|
|
+ <el-option label="生日数" value="birthday" />
|
|
|
+ <el-option label="命运数" value="destiny" />
|
|
|
+ </el-select>
|
|
|
+ <el-button type="primary" size="small" style="margin-left: 8px" @click="showCreate">新增</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-table :data="list" border stripe>
|
|
|
+ <el-table-column prop="numberType" label="类型" width="110">
|
|
|
+ <template slot-scope="scope">{{ typeLabel(scope.row.numberType) }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="numberValue" label="数字" width="80" />
|
|
|
+ <el-table-column prop="title" label="称号" width="120" />
|
|
|
+ <el-table-column prop="keywords" label="关键词" />
|
|
|
+ <el-table-column prop="mindBase" label="心先天分" width="100" />
|
|
|
+ <el-table-column prop="mindAdvice" label="成长建议" show-overflow-tooltip />
|
|
|
+ <el-table-column label="代表色" width="80">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span :style="{ display: 'inline-block', width: '20px', height: '20px', background: scope.row.colorHex, borderRadius: '4px' }" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" width="140">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="text" @click="showEdit(scope.row)">编辑</el-button>
|
|
|
+ <el-button type="text" style="color: #f56c6c" @click="remove(scope.row)">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ <el-dialog :title="form.id ? '编辑' : '新增'" :visible.sync="dialogVisible" width="520px">
|
|
|
+ <el-form :model="form" label-width="100px">
|
|
|
+ <el-form-item label="类型">
|
|
|
+ <el-select v-model="form.numberType">
|
|
|
+ <el-option label="生命灵数" value="life_path" />
|
|
|
+ <el-option label="天赋数" value="talent" />
|
|
|
+ <el-option label="生日数" value="birthday" />
|
|
|
+ <el-option label="命运数" value="destiny" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="数字"><el-input-number v-model="form.numberValue" :min="1" :max="99" /></el-form-item>
|
|
|
+ <el-form-item label="称号"><el-input v-model="form.title" /></el-form-item>
|
|
|
+ <el-form-item label="关键词"><el-input v-model="form.keywords" /></el-form-item>
|
|
|
+ <el-form-item label="心先天分"><el-input-number v-model="form.mindBase" :min="0" :max="100" /></el-form-item>
|
|
|
+ <el-form-item label="成长建议"><el-input type="textarea" v-model="form.mindAdvice" /></el-form-item>
|
|
|
+ <el-form-item label="代表色"><el-color-picker v-model="form.colorHex" /></el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer">
|
|
|
+ <el-button @click="dialogVisible = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="save">保存</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </el-card>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { listNumSoulDetailConfigs, createNumSoulDetailConfig, updateNumSoulDetailConfig, deleteNumSoulDetailConfig } from '@/api/admin'
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: 'NumSoulDetailConfig',
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ list: [],
|
|
|
+ filterType: '',
|
|
|
+ dialogVisible: false,
|
|
|
+ form: { id: null, numberType: 'life_path', numberValue: 1, title: '', keywords: '', mindBase: 50, mindAdvice: '', colorHex: '#FF4444' }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.load()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ typeLabel(t) {
|
|
|
+ return { life_path: '生命灵数', talent: '天赋数', birthday: '生日数', destiny: '命运数' }[t] || t
|
|
|
+ },
|
|
|
+ load() {
|
|
|
+ listNumSoulDetailConfigs({ numberType: this.filterType || undefined }).then(res => {
|
|
|
+ this.list = res.data || []
|
|
|
+ })
|
|
|
+ },
|
|
|
+ showCreate() {
|
|
|
+ this.form = { id: null, numberType: 'life_path', numberValue: 1, title: '', keywords: '', mindBase: 50, mindAdvice: '', colorHex: '#FF4444' }
|
|
|
+ this.dialogVisible = true
|
|
|
+ },
|
|
|
+ showEdit(row) {
|
|
|
+ this.form = Object.assign({}, row)
|
|
|
+ this.dialogVisible = true
|
|
|
+ },
|
|
|
+ save() {
|
|
|
+ const promise = this.form.id ? updateNumSoulDetailConfig(this.form) : createNumSoulDetailConfig(this.form)
|
|
|
+ promise.then(() => {
|
|
|
+ this.$message.success('保存成功')
|
|
|
+ this.dialogVisible = false
|
|
|
+ this.load()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ remove(row) {
|
|
|
+ this.$confirm('确认删除该配置?', '提示', { type: 'warning' }).then(() => {
|
|
|
+ deleteNumSoulDetailConfig(row.id).then(() => {
|
|
|
+ this.$message.success('删除成功')
|
|
|
+ this.load()
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|