|
@@ -5,17 +5,19 @@
|
|
|
</el-tabs>
|
|
|
<div style="display: flex; justify-content: space-between;">
|
|
|
<div style="display: flex; color: orange; align-items: center;">
|
|
|
- <Icon :size="20" icon="ep:warning" class="mr-3px" />
|
|
|
- 图片规格:
|
|
|
- <span class="m-l-10px">{{ tabList[tab].size }}</span>
|
|
|
+ <div v-if="tab !== 9">
|
|
|
+ <Icon :size="20" icon="ep:warning" class="mr-3px" />
|
|
|
+ 图片规格:
|
|
|
+ <span class="m-l-10px">{{ tabList[tab].size }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div>
|
|
|
<el-button @click="getList"><Icon icon="ep:refresh" class="mr-5px" /> 刷 新</el-button>
|
|
|
- <el-button type="primary" @click="handleAdd"><Icon icon="ep:plus" class="mr-5px" />新 增</el-button>
|
|
|
+ <el-button type="primary" @click="handleAdd"><Icon icon="ep:plus" class="mr-5px" v-hasPermi="['menduner:system:web-content:create']" />新 增</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <el-table v-loading="loading" :data="info[tabList[tab].key]" :stripe="true">
|
|
|
- <!-- <el-table-column label="排序" align="center" prop="sort" /> -->
|
|
|
+
|
|
|
+ <el-table v-if="tab !== 9" v-loading="loading" :data="info[tabList[tab].key]" :stripe="true">
|
|
|
<el-table-column label="标题" align="center" prop="title" />
|
|
|
<el-table-column label="图片" align="center" prop="img">
|
|
|
<template #default="scope">
|
|
@@ -24,7 +26,6 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="点击跳转链接" align="center" prop="link">
|
|
|
<template #default="scope">
|
|
|
- <!-- <el-link v-if="scope.row.link" :href="scope.row.link" type="primary" target="_blank">点击查看</el-link> -->
|
|
|
{{ scope.row.link }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -35,8 +36,19 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="操作" align="center" fixed="right" min-width="220">
|
|
|
<template #default="scope">
|
|
|
- <el-button link type="primary" @click="handleEdit(scope.row.mark)">编辑</el-button>
|
|
|
- <el-button link type="danger" @click="handleDelete(scope.row.mark)">删除</el-button>
|
|
|
+ <el-button link type="primary" v-hasPermi="['menduner:system:web-content:update']" @click="handleEdit(scope.row.mark)">编辑</el-button>
|
|
|
+ <el-button link type="danger" v-hasPermi="['menduner:system:web-content:delete']" @click="handleDelete(scope.row.mark)">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ <el-table v-else v-loading="loading" :data="preferredGroup(info)" :stripe="true">
|
|
|
+ <el-table-column label="企业ID" align="center" prop="enterpriseId" />
|
|
|
+ <el-table-column label="企业名称" align="center" prop="title" />
|
|
|
+ <el-table-column label="操作" align="center" fixed="right" min-width="220">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-button link type="primary" v-hasPermi="['menduner:system:web-content:update']" @click="handleEditPreferredGroup(scope.row.enterpriseId)">编辑</el-button>
|
|
|
+ <el-button link type="danger" v-hasPermi="['menduner:system:web-content:delete']" @click="handleDeletePreferredGroup(scope.row.enterpriseId)">删除</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -45,11 +57,16 @@
|
|
|
<!-- 表单弹窗:添加/修改 -->
|
|
|
<WebContentForm ref="formRef" @success="getList" />
|
|
|
|
|
|
+ <!-- 优选集团 -->
|
|
|
+ <PreferredGroup ref="preferredGroupRef" @success="getList" />
|
|
|
+
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { WebContentApi } from '@/api/menduner/system/web'
|
|
|
import WebContentForm from './WebContentForm.vue'
|
|
|
+import PreferredGroup from './PreferredGroup.vue'
|
|
|
+import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
|
|
|
|
|
|
/** 页面内容 列表 */
|
|
|
defineOptions({ name: 'WebContent' })
|
|
@@ -59,7 +76,7 @@ const { t } = useI18n() // 国际化
|
|
|
const loading = ref(false)
|
|
|
const tab = ref(0)
|
|
|
let info = reactive({})
|
|
|
-const tabList = [
|
|
|
+const tabList = ref([
|
|
|
{ label: 'PC首页顶部广告图', value: 0, key: 'pcTop', size: '宽1429px*高80px' },
|
|
|
{ label: 'PC首页左侧广告图', value: 1, key: 'pcLeft', size: '宽869px*高1512px' },
|
|
|
{ label: 'PC首页弹窗广告图', value: 2, key: 'pcAdvertisement', size: '宽900px*高530px' },
|
|
@@ -69,8 +86,17 @@ const tabList = [
|
|
|
{ label: 'PC登录页背景图', value: 6, key: 'pcLoginBackground', size: '宽1920px*高940px' },
|
|
|
{ label: '小程序首页轮播图', value: 7, key: 'appHomeCarousel', size: '宽750px*高350px' },
|
|
|
{ label: '小程序首页弹窗广告图', value: 8, key: 'appAdvertisement', size: '宽331px*高442px' },
|
|
|
- // { label: '小程序首页功能模块', value: 9, key: 'appHomeColumn', size: '宽72px*高72px' },
|
|
|
-]
|
|
|
+ // { label: '小程序首页功能模块', value: 10, key: 'appHomeColumn', size: '宽72px*高72px' },
|
|
|
+])
|
|
|
+
|
|
|
+// 只有我们自己用的admin账号显示
|
|
|
+const { wsCache } = useCache()
|
|
|
+let userInfo = wsCache.get(CACHE_KEY.USER)
|
|
|
+if (userInfo && userInfo.user.nickname === 'admin') {
|
|
|
+ const obj = tabList.value.find(e => e.value === 9)
|
|
|
+ if (!obj) tabList.value.push({ label: '优选集团内容', value: 9, key: 'appPreferredGroup' })
|
|
|
+ else tabList.value = tabList.value.filter(e => e.value !== 9)
|
|
|
+}
|
|
|
|
|
|
/** 查询列表 */
|
|
|
const getList = async () => {
|
|
@@ -83,29 +109,57 @@ const getList = async () => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// 优选集团
|
|
|
+const preferredGroup = computed(() => (data) => {
|
|
|
+ const list = []
|
|
|
+ for (let i in data.appPreferredGroup) {
|
|
|
+ list.push({ title: data.appPreferredGroup[i].title, enterpriseId: i, data: data.appPreferredGroup[i] })
|
|
|
+ }
|
|
|
+ return list
|
|
|
+})
|
|
|
+
|
|
|
const tabClick = (val) => {
|
|
|
tab.value = val.paneName
|
|
|
getList()
|
|
|
}
|
|
|
|
|
|
const handleAdd = () => {
|
|
|
- formRef.value.open('add', tabList[tab.value].key, tabList[tab.value].label)
|
|
|
+ if (tab.value === 9) return preferredGroupRef.value.open(tabList.value[tab.value].key) // 优选集团
|
|
|
+ formRef.value.open('add', tabList.value[tab.value].key, tabList.value[tab.value].label)
|
|
|
}
|
|
|
|
|
|
const formRef = ref()
|
|
|
const handleEdit = (mark: string) => {
|
|
|
- formRef.value.open('edit', tabList[tab.value].key, tabList[tab.value].label, mark)
|
|
|
+ formRef.value.open('edit', tabList.value[tab.value].key, tabList.value[tab.value].label, mark)
|
|
|
}
|
|
|
|
|
|
/** 删除按钮操作 */
|
|
|
const handleDelete = async (mark: string) => {
|
|
|
- const index = info[tabList[tab.value].key].findIndex((item) => item.mark === mark)
|
|
|
+ const index = info[tabList.value[tab.value].key].findIndex((item) => item.mark === mark)
|
|
|
if (index === -1) return message.warning('图片不存在')
|
|
|
try {
|
|
|
// 删除的二次确认
|
|
|
await message.delConfirm()
|
|
|
// 发起删除
|
|
|
- info[tabList[tab.value].key].splice(index, 1)
|
|
|
+ info[tabList.value[tab.value].key].splice(index, 1)
|
|
|
+ await WebContentApi.updateWebContent(info)
|
|
|
+
|
|
|
+ message.success(t('common.delSuccess'))
|
|
|
+ // 刷新列表
|
|
|
+ await getList()
|
|
|
+ } catch {}
|
|
|
+}
|
|
|
+
|
|
|
+// 优选集团
|
|
|
+const preferredGroupRef = ref()
|
|
|
+const handleDeletePreferredGroup = async (id) => {
|
|
|
+ if (!info[tabList.value[tab.value].key][id]) return message.warning('数据不存在')
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 删除的二次确认
|
|
|
+ await message.delConfirm()
|
|
|
+ // 发起删除
|
|
|
+ delete info[tabList.value[tab.value].key][id]
|
|
|
await WebContentApi.updateWebContent(info)
|
|
|
|
|
|
message.success(t('common.delSuccess'))
|
|
@@ -113,6 +167,9 @@ const handleDelete = async (mark: string) => {
|
|
|
await getList()
|
|
|
} catch {}
|
|
|
}
|
|
|
+const handleEditPreferredGroup = (id) => {
|
|
|
+ preferredGroupRef.value.open(tabList.value[tab.value].key, id)
|
|
|
+}
|
|
|
|
|
|
/** 初始化 **/
|
|
|
onMounted(() => {
|