fix: scene list

This commit is contained in:
zzc
2026-03-13 04:07:07 +08:00
parent 7895cdcfc6
commit dde13eae14
3 changed files with 105 additions and 117 deletions

View File

@@ -7,6 +7,11 @@
</vab-query-form-left-panel>
<vab-query-form-right-panel :span="12">
<el-form :inline="true" :model="queryForm" @submit.native.prevent>
<el-form-item>
<el-select v-model="queryForm.scene" clearable placeholder="请选择场景" @change="queryData">
<el-option v-for="item in sceneList" :key="item.scene" :label="item.sceneName" :value="item.scene" />
</el-select>
</el-form-item>
<el-form-item>
<el-input v-model.trim="queryForm.keyword" clearable placeholder="请输入查询条件" />
</el-form-item>
@@ -26,6 +31,11 @@
</div>
</template>
</el-table-column>
<el-table-column align="center" label="场景" show-overflow-tooltip>
<template #default="{ row }">
{{ getSceneName(row.scene) }}
</template>
</el-table-column>
<el-table-column align="center" label="使用次数" prop="useCount" show-overflow-tooltip />
<el-table-column align="center" label="是否启用" show-overflow-tooltip>
<template #default="{ row }">
@@ -60,6 +70,7 @@
<script>
import { doDelete, getList, toggleEnable, doMoveUp, doMoveDown } from '@/api/spring/blessing/contentTemplate'
import { getAll as getAllScenes } from '@/api/spring/blessing/scene'
import Edit from './components/AppManagementEdit'
export default {
@@ -77,9 +88,10 @@
pageNo: 1,
pageSize: 10,
keyword: '',
fortuneLevel: '',
scene: '',
},
timeOutID: null,
sceneList: [],
}
},
created() {
@@ -88,6 +100,7 @@
this.queryForm.keyword = templateId
this.queryForm.pageNo = 1
}
this.fetchSceneList()
this.fetchData()
},
@@ -99,7 +112,7 @@
this.selectRows = val
},
handleEdit(row) {
if (row.id) {
if (row && row.id) {
this.$refs['edit'].showEdit(row)
} else {
this.$refs['edit'].showEdit()
@@ -189,13 +202,14 @@
if (enabled.length === 0) return false
return enabled[enabled.length - 1].id === row.id
},
async fetchSceneList() {
const { data } = await getAllScenes()
this.sceneList = data || []
},
getSceneName(scene) {
const found = this.sceneList.find((item) => item.scene === scene)
return found ? found.sceneName : scene
},
},
}
</script>
<style scoped>
.content-cell {
white-space: pre-wrap;
word-break: break-word;
line-height: 1.6;
}
</style>

View File

@@ -7,6 +7,11 @@
</vab-query-form-left-panel>
<vab-query-form-right-panel :span="12">
<el-form :inline="true" :model="queryForm" @submit.native.prevent>
<el-form-item>
<el-select v-model="queryForm.scene" clearable placeholder="请选择场景" @change="queryData">
<el-option v-for="item in sceneList" :key="item.scene" :label="item.sceneName" :value="item.scene" />
</el-select>
</el-form-item>
<el-form-item>
<el-input v-model.trim="queryForm.keyword" clearable placeholder="请输入查询条件" />
</el-form-item>
@@ -34,6 +39,11 @@
</template>
</el-table-column>
<el-table-column align="center" label="标题" prop="name" show-overflow-tooltip />
<el-table-column align="center" label="场景" show-overflow-tooltip>
<template #default="{ row }">
{{ getSceneName(row.scene) }}
</template>
</el-table-column>
<el-table-column align="center" label="使用次数" prop="useCount" show-overflow-tooltip />
<el-table-column align="center" label="是否启用" show-overflow-tooltip>
<template #default="{ row }">
@@ -68,6 +78,7 @@
<script>
import { doDelete, getList, toggleEnable, doMoveUp, doMoveDown } from '@/api/spring/blessing/template'
import { getAll as getAllScenes } from '@/api/spring/blessing/scene'
import { formatTime } from '@/utils'
import { getThumbUrl } from '@/utils/blessing'
import Edit from './components/AppManagementEdit'
@@ -87,9 +98,10 @@
pageNo: 1,
pageSize: 10,
keyword: '',
fortuneLevel: '',
scene: '',
},
timeOutID: null,
sceneList: [],
}
},
created() {
@@ -98,43 +110,26 @@
this.queryForm.keyword = templateId
this.queryForm.pageNo = 1
}
this.fetchSceneList()
this.fetchData()
},
beforeDestroy() {
clearTimeout(this.timeOutID)
},
methods: {
getThumbUrl,
setSelectRows(val) {
this.selectRows = val
},
handleEdit(row) {
if (row.id) {
this.$refs['edit'].showEdit(row)
} else {
this.$refs['edit'].showEdit()
}
this.$refs['edit'].showEdit(row)
},
handleDelete(row) {
if (row.id) {
this.$baseConfirm('你确定要删除当前项吗', null, async () => {
const { msg } = await doDelete({ ids: [row.id] })
const { msg } = await doDelete(row.id)
this.$baseMessage(msg, 'success')
this.fetchData()
})
} else {
if (this.selectRows.length > 0) {
const ids = this.selectRows.map((item) => item.id).join()
this.$baseConfirm('你确定要删除选中项吗', null, async () => {
const { msg } = await doDelete({ ids: ids.split(',') })
this.$baseMessage(msg, 'success')
this.fetchData()
})
} else {
this.$baseMessage('未选中任何行', 'error')
return false
}
}
},
handleSizeChange(val) {
@@ -156,49 +151,41 @@
this.total = data.totalCount
this.timeOutID = setTimeout(() => {
this.listLoading = false
}, 300)
}, 500)
},
async handleToggleEnable(row, val) {
const prev = row.isEnabled
row.isEnabled = val
try {
const { msg } = await toggleEnable(row.id, val)
if (msg) this.$baseMessage(msg, 'success')
async handleToggleEnable(row, value) {
this.$baseConfirm(`你确定要${value ? '启用' : '禁用'}当前项吗`, null, async () => {
const { msg } = await toggleEnable(row.id, value)
this.$baseMessage(msg, 'success')
this.fetchData()
} catch (e) {
row.isEnabled = prev
this.$baseMessage('更新失败', 'error')
}
})
},
async handleMoveUp(row) {
try {
const { msg } = await doMoveUp(row.id)
if (msg) this.$baseMessage(msg, 'success')
this.fetchData()
} catch (e) {
this.$baseMessage('操作失败', 'error')
}
const { msg } = await doMoveUp(row.id)
this.$baseMessage(msg, 'success')
this.fetchData()
},
async handleMoveDown(row) {
try {
const { msg } = await doMoveDown(row.id)
if (msg) this.$baseMessage(msg, 'success')
this.fetchData()
} catch (e) {
this.$baseMessage('操作失败', 'error')
}
const { msg } = await doMoveDown(row.id)
this.$baseMessage(msg, 'success')
this.fetchData()
},
isFirstEnabled(row) {
if (!this.list || this.list.length === 0) return false
const enabled = this.list.filter((item) => item.isEnabled)
if (enabled.length === 0) return false
return enabled[0].id === row.id
const enabledList = this.list.filter((item) => item.isEnabled)
return enabledList.length > 0 && enabledList[0].id === row.id
},
isLastEnabled(row) {
if (!this.list || this.list.length === 0) return false
const enabled = this.list.filter((item) => item.isEnabled)
if (enabled.length === 0) return false
return enabled[enabled.length - 1].id === row.id
const enabledList = this.list.filter((item) => item.isEnabled)
return enabledList.length > 0 && enabledList[enabledList.length - 1].id === row.id
},
getThumbUrl,
async fetchSceneList() {
const { data } = await getAllScenes()
this.sceneList = data || []
},
getSceneName(scene) {
const found = this.sceneList.find((item) => item.scene === scene)
return found ? found.sceneName : scene
},
},
}

View File

@@ -7,6 +7,11 @@
</vab-query-form-left-panel>
<vab-query-form-right-panel :span="12">
<el-form :inline="true" :model="queryForm" @submit.native.prevent>
<el-form-item>
<el-select v-model="queryForm.scene" clearable placeholder="请选择场景" @change="queryData">
<el-option v-for="item in sceneList" :key="item.scene" :label="item.sceneName" :value="item.scene" />
</el-select>
</el-form-item>
<el-form-item>
<el-input v-model.trim="queryForm.keyword" clearable placeholder="请输入查询条件" />
</el-form-item>
@@ -34,6 +39,11 @@
</template>
</el-table-column>
<el-table-column align="center" label="标题" prop="name" show-overflow-tooltip />
<el-table-column align="center" label="场景" show-overflow-tooltip>
<template #default="{ row }">
{{ getSceneName(row.scene) }}
</template>
</el-table-column>
<el-table-column align="center" label="使用次数" prop="useCount" show-overflow-tooltip />
<el-table-column align="center" label="是否启用" show-overflow-tooltip>
<template #default="{ row }">
@@ -68,6 +78,7 @@
<script>
import { doDelete, getList, toggleEnable, doMoveUp, doMoveDown } from '@/api/spring/blessing/titleTemplate/index'
import { getAll as getAllScenes } from '@/api/spring/blessing/scene'
import { formatTime } from '@/utils'
import { getThumbUrl } from '@/utils/blessing'
import Edit from './components/AppManagementEdit'
@@ -87,9 +98,10 @@
pageNo: 1,
pageSize: 10,
keyword: '',
fortuneLevel: '',
scene: '',
},
timeOutID: null,
sceneList: [],
}
},
created() {
@@ -98,43 +110,26 @@
this.queryForm.keyword = templateId
this.queryForm.pageNo = 1
}
this.fetchSceneList()
this.fetchData()
},
beforeDestroy() {
clearTimeout(this.timeOutID)
},
methods: {
getThumbUrl,
setSelectRows(val) {
this.selectRows = val
},
handleEdit(row) {
if (row.id) {
this.$refs['edit'].showEdit(row)
} else {
this.$refs['edit'].showEdit()
}
this.$refs['edit'].showEdit(row)
},
handleDelete(row) {
if (row.id) {
this.$baseConfirm('你确定要删除当前项吗', null, async () => {
const { msg } = await doDelete({ ids: [row.id] })
const { msg } = await doDelete(row.id)
this.$baseMessage(msg, 'success')
this.fetchData()
})
} else {
if (this.selectRows.length > 0) {
const ids = this.selectRows.map((item) => item.id).join()
this.$baseConfirm('你确定要删除选中项吗', null, async () => {
const { msg } = await doDelete({ ids: ids.split(',') })
this.$baseMessage(msg, 'success')
this.fetchData()
})
} else {
this.$baseMessage('未选中任何行', 'error')
return false
}
}
},
handleSizeChange(val) {
@@ -156,49 +151,41 @@
this.total = data.totalCount
this.timeOutID = setTimeout(() => {
this.listLoading = false
}, 300)
}, 500)
},
async handleToggleEnable(row, val) {
const prev = row.isEnabled
row.isEnabled = val
try {
const { msg } = await toggleEnable(row.id, val)
if (msg) this.$baseMessage(msg, 'success')
async handleToggleEnable(row, value) {
this.$baseConfirm(`你确定要${value ? '启用' : '禁用'}当前项吗`, null, async () => {
const { msg } = await toggleEnable(row.id, value)
this.$baseMessage(msg, 'success')
this.fetchData()
} catch (e) {
row.isEnabled = prev
this.$baseMessage('更新失败', 'error')
}
})
},
async handleMoveUp(row) {
try {
const { msg } = await doMoveUp(row.id)
if (msg) this.$baseMessage(msg, 'success')
this.fetchData()
} catch (e) {
this.$baseMessage('操作失败', 'error')
}
const { msg } = await doMoveUp(row.id)
this.$baseMessage(msg, 'success')
this.fetchData()
},
async handleMoveDown(row) {
try {
const { msg } = await doMoveDown(row.id)
if (msg) this.$baseMessage(msg, 'success')
this.fetchData()
} catch (e) {
this.$baseMessage('操作失败', 'error')
}
const { msg } = await doMoveDown(row.id)
this.$baseMessage(msg, 'success')
this.fetchData()
},
isFirstEnabled(row) {
if (!this.list || this.list.length === 0) return false
const enabled = this.list.filter((item) => item.isEnabled)
if (enabled.length === 0) return false
return enabled[0].id === row.id
const enabledList = this.list.filter((item) => item.isEnabled)
return enabledList.length > 0 && enabledList[0].id === row.id
},
isLastEnabled(row) {
if (!this.list || this.list.length === 0) return false
const enabled = this.list.filter((item) => item.isEnabled)
if (enabled.length === 0) return false
return enabled[enabled.length - 1].id === row.id
const enabledList = this.list.filter((item) => item.isEnabled)
return enabledList.length > 0 && enabledList[enabledList.length - 1].id === row.id
},
getThumbUrl,
async fetchSceneList() {
const { data } = await getAllScenes()
this.sceneList = data || []
},
getSceneName(scene) {
const found = this.sceneList.find((item) => item.scene === scene)
return found ? found.sceneName : scene
},
},
}