init
This commit is contained in:
@@ -34,18 +34,18 @@
|
|||||||
<div class="msg" style="width: 100%">
|
<div class="msg" style="width: 100%">
|
||||||
<div class="miniprogram">
|
<div class="miniprogram">
|
||||||
<div class='img_panel' style="position: relative;">
|
<div class='img_panel' style="position: relative;">
|
||||||
<div class="img_title">
|
<div class="img_title" v-if="data.oneImageTitleType === 1">
|
||||||
<span>测试文字title</span>
|
<span>{{ data.title }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="img-box">
|
<div class="img-box">
|
||||||
<img class="mini-img" :src="imageFunc(data.oneImageImage)" @click="goTo(data.oneImageLinkType,data.oneImageLinkUrl)"/>
|
<img class="mini-img" :src="imageFunc(data.oneImageImage)" @click="goTo(data.oneImageLinkType,data.oneImageLinkUrl)"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="word-title" style="margin-top: 10px;font-weight: bold;">
|
<div class="word-title" style="margin-top: 10px;font-weight: bold;" v-if="data.oneImageTitleType === 2">
|
||||||
测试数据标题
|
{{ data.title }}
|
||||||
</div>
|
</div>
|
||||||
<div class="word">
|
<div class="word" v-if="data.oneImageTitleType === 2">
|
||||||
测试数据文本
|
{{ data.oneImageText }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -55,13 +55,13 @@
|
|||||||
<div class="miniprogram" >
|
<div class="miniprogram" >
|
||||||
<div class='img_panel' style="position: relative;">
|
<div class='img_panel' style="position: relative;">
|
||||||
<div class="img-box" style="position: relative;">
|
<div class="img-box" style="position: relative;">
|
||||||
<img class="mini-img" src="" alt="">
|
<img class="mini-img" :src="imageFunc(imageContext[0]?imageContext[0].image:'')" alt="">
|
||||||
<div class="img_desc">3211</div>
|
<div class="img_desc">{{ imageContext[0]?imageContext[0].title:'' }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="msg-list">
|
<div class="msg-list" v-for="(v,i) in imageContext">
|
||||||
<div class="msg-list_item" v-for="item in 2">
|
<div class="msg-list_item" v-if="i !== 0">
|
||||||
<div class="text">123</div>
|
<div class="text" >{{v.title}}</div>
|
||||||
<div class="img"></div>
|
<img class="img" :src="imageFunc(v.image)" alt="" @click="goTo(v.linkType,v.linkUrl)">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -73,10 +73,7 @@
|
|||||||
<div class="msg">
|
<div class="msg">
|
||||||
<div class="miniprogram">
|
<div class="miniprogram">
|
||||||
<div class='img_panel' style="position: relative;">
|
<div class='img_panel' style="position: relative;">
|
||||||
<img class="mini-img" src="https://nono-1257812345.cos.ap-shanghai.myqcloud.com/cai/2024/01/29/4c8a98ad0de14341a5fbf1a4787e45dd.png" alt="">
|
<img class="mini-img" :src="imageFunc(data.onlyImage)" alt="">
|
||||||
<!-- <div class="img-box" style="position: relative;">
|
|
||||||
<img class="mini-img" src="" alt="">
|
|
||||||
</div>-->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -84,7 +81,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<!--cursor: pointer;-->
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'PreviewClient',
|
name: 'PreviewClient',
|
||||||
@@ -123,6 +119,11 @@ export default {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.pointer_img {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.pd_12 {
|
.pd_12 {
|
||||||
padding: 12px!important;
|
padding: 12px!important;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog title="新增系统推送" :close-on-click-modal="false" :visible.sync="open" width="900px" append-to-body>
|
<el-dialog title="新增系统推送" :close-on-click-modal="false" :visible.sync="open" width="900px" append-to-body>
|
||||||
<el-row :gutter="`10`">
|
<el-row :gutter="10">
|
||||||
<el-col style="width: 550px">
|
<el-col style="width: 550px">
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
<el-form-item label="群体类型" prop="groupId">
|
<el-form-item label="群体类型" prop="groupId">
|
||||||
@@ -100,14 +100,14 @@
|
|||||||
|
|
||||||
<el-form-item label="标题类型" prop="oneImageTitleType" v-if="form.type === 2">
|
<el-form-item label="标题类型" prop="oneImageTitleType" v-if="form.type === 2">
|
||||||
<el-select v-model="form.oneImageTitleType" size="small">
|
<el-select v-model="form.oneImageTitleType" size="small">
|
||||||
<el-option :key="0" label="普通标题" :value="0"/>
|
<el-option :key="2" label="普通标题" :value="2"/>
|
||||||
<el-option :key="1" label="水印标题" :value="1"/>
|
<el-option :key="1" label="水印标题" :value="1"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="图片" prop="oneImageImage" v-if="form.type === 2">
|
<el-form-item label="图片" prop="oneImageImage" v-if="form.type === 2">
|
||||||
<image-upload2 v-model="form.oneImageImage" custom-tip="建议图片比例16:9"/>
|
<image-upload2 v-model="form.oneImageImage" custom-tip="建议图片比例16:9"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="文本" prop="oneImageText" v-if="form.type === 2 && form.oneImageTitleType === 0">
|
<el-form-item label="文本" prop="oneImageText" v-if="form.type === 2 && form.oneImageTitleType === 2">
|
||||||
<el-input v-model="form.oneImageText" placeholder="请输入消息文本" type="textarea" :rows="2"/>
|
<el-input v-model="form.oneImageText" placeholder="请输入消息文本" type="textarea" :rows="2"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="链接类型" prop="oneImageLinkType" v-if="form.type === 2">
|
<el-form-item label="链接类型" prop="oneImageLinkType" v-if="form.type === 2">
|
||||||
@@ -128,12 +128,13 @@
|
|||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
:row-key="(row) => {return row.id}"
|
:row-key="(row) => {return row.id}"
|
||||||
>
|
>
|
||||||
|
<el-table-column align="center" prop="title" label="图片标题" min-width="60" show-overflow-tooltip/>
|
||||||
<el-table-column align="center" prop="image" label="图片" min-width="60">
|
<el-table-column align="center" prop="image" label="图片" min-width="60">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<image-preview :src="scope.row.image" :width="60" :height="40"/>
|
<image-preview :src="scope.row.image" :width="60" :height="40"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" prop="linkType" label="链接类型" min-width="50">
|
<el-table-column align="center" prop="linkType" label="链接类型" min-width="60">
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<span v-if="scope.row.linkType === 0">不可点击</span>
|
<span v-if="scope.row.linkType === 0">不可点击</span>
|
||||||
<span v-if="scope.row.linkType === 1">打开H5</span>
|
<span v-if="scope.row.linkType === 1">打开H5</span>
|
||||||
@@ -148,11 +149,10 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="图片" prop="onlyImage" v-if="form.type === 4">
|
<el-form-item label="图片" prop="onlyImage" v-if="form.type === 4">
|
||||||
<image-upload2 v-model="form.onlyImage"/>
|
<image-upload2 v-model="form.onlyImage"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="remark" prop="remark">
|
<el-form-item label="备注说明" prop="remark">
|
||||||
<el-input v-model="form.remark" placeholder="请输入备注说明" type="textarea" :rows="2"/>
|
<el-input v-model="form.remark" placeholder="请输入备注说明" type="textarea" :rows="2"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
<el-dialog :title="imageTitle" :close-on-click-modal="false" :visible.sync="imageOpen" width="500px" append-to-body>
|
<el-dialog :title="imageTitle" :close-on-click-modal="false" :visible.sync="imageOpen" width="500px" append-to-body>
|
||||||
<el-form ref="imageForm" :model="imageForm" :rules="imageRules" label-width="80px">
|
<el-form ref="imageForm" :model="imageForm" :rules="imageRules" label-width="80px">
|
||||||
<el-form-item label="图片标题" prop="title">
|
<el-form-item label="图片标题" prop="title">
|
||||||
<image-upload2 v-model="imageForm.image"/>
|
<el-input v-model="imageForm.title" placeholder="请输入图片标题" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="图片" prop="image">
|
<el-form-item label="图片" prop="image">
|
||||||
<image-upload2 v-model="imageForm.image"/>
|
<image-upload2 v-model="imageForm.image"/>
|
||||||
@@ -192,7 +192,6 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { addBanner, updateBanner } from '@/api/cai/banner'
|
|
||||||
import {
|
import {
|
||||||
systemPushGroupIdList,
|
systemPushGroupIdList,
|
||||||
systemPushLogStatus,
|
systemPushLogStatus,
|
||||||
@@ -203,6 +202,7 @@ import {
|
|||||||
import { getUserByUsercode, listUserByUserCode } from '@/api/cai/user'
|
import { getUserByUsercode, listUserByUserCode } from '@/api/cai/user'
|
||||||
import Sortable from 'sortablejs'
|
import Sortable from 'sortablejs'
|
||||||
import PreviewClient from '@/components/PreviewInMobileClient/index.vue'
|
import PreviewClient from '@/components/PreviewInMobileClient/index.vue'
|
||||||
|
import {addSysPush, updateSysPush} from "@/api/cai/sysPush";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
@@ -225,7 +225,7 @@ export default {
|
|||||||
textLinkType: 0,
|
textLinkType: 0,
|
||||||
textLinkUrl: undefined,
|
textLinkUrl: undefined,
|
||||||
|
|
||||||
oneImageTitleType:0,
|
oneImageTitleType:2,
|
||||||
oneImageImage:undefined,
|
oneImageImage:undefined,
|
||||||
oneImageText:undefined,
|
oneImageText:undefined,
|
||||||
oneImageLinkType: 0,
|
oneImageLinkType: 0,
|
||||||
@@ -303,6 +303,9 @@ export default {
|
|||||||
this.open = true
|
this.open = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs['form'].resetFields()
|
this.$refs['form'].resetFields()
|
||||||
|
this.userInfo = {}
|
||||||
|
this.textContext = []
|
||||||
|
this.imageContext = []
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
rowDrop() {
|
rowDrop() {
|
||||||
@@ -381,9 +384,10 @@ export default {
|
|||||||
const index = this.imageContext.findIndex((item) => {
|
const index = this.imageContext.findIndex((item) => {
|
||||||
return item.id === this.imageForm.id
|
return item.id === this.imageForm.id
|
||||||
})
|
})
|
||||||
let copy = {}
|
this.imageContext[index].image = this.imageForm.image
|
||||||
Object.assign(copy,this.imageForm)
|
this.imageContext[index].title = this.imageForm.title
|
||||||
this.imageContext[index] = copy
|
this.imageContext[index].linkType = this.imageForm.linkType
|
||||||
|
this.imageContext[index].linkUrl = this.imageForm.linkUrl
|
||||||
this.imageOpen = false
|
this.imageOpen = false
|
||||||
console.log(this.imageContext)
|
console.log(this.imageContext)
|
||||||
} else {
|
} else {
|
||||||
@@ -391,7 +395,8 @@ export default {
|
|||||||
id: this.genNonDuplicateID(),
|
id: this.genNonDuplicateID(),
|
||||||
image: this.imageForm.image,
|
image: this.imageForm.image,
|
||||||
linkType: this.imageForm.linkType,
|
linkType: this.imageForm.linkType,
|
||||||
linkUrl: this.imageForm.linkUrl
|
linkUrl: this.imageForm.linkUrl,
|
||||||
|
title: this.imageForm.title
|
||||||
})
|
})
|
||||||
this.imageOpen = false
|
this.imageOpen = false
|
||||||
console.log(this.imageContext)
|
console.log(this.imageContext)
|
||||||
@@ -428,7 +433,7 @@ export default {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
this.buttonLoading = true
|
this.buttonLoading = true
|
||||||
if (this.form.id != null) {
|
if (this.form.id != null) {
|
||||||
updateBanner(this.form).then(data => {
|
updateSysPush(this.form).then(data => {
|
||||||
this.$modal.msgSuccess('修改成功')
|
this.$modal.msgSuccess('修改成功')
|
||||||
this.$modal.buttonLoading = false
|
this.$modal.buttonLoading = false
|
||||||
this.open = false
|
this.open = false
|
||||||
@@ -437,8 +442,12 @@ export default {
|
|||||||
this.buttonLoading = false
|
this.buttonLoading = false
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
addBanner(this.form).then(data => {
|
addSysPush({
|
||||||
this.$modal.msgSuccess('修改成功')
|
master: this.form,
|
||||||
|
textContext: this.textContext,
|
||||||
|
imageContext: this.imageContext
|
||||||
|
}).then(data => {
|
||||||
|
this.$modal.msgSuccess('新增成功')
|
||||||
this.buttonLoading = false
|
this.buttonLoading = false
|
||||||
this.open = false
|
this.open = false
|
||||||
this.$emit('refreshDataList')
|
this.$emit('refreshDataList')
|
||||||
|
|||||||
@@ -54,12 +54,12 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column label="用户id,仅在group_id=单个用户时生效" align="center" prop="userId" />-->
|
<!-- <el-table-column label="用户id,仅在group_id=单个用户时生效" align="center" prop="userId" />-->
|
||||||
<el-table-column label="标题" align="center" prop="title" />
|
<el-table-column label="标题" align="center" prop="title" />
|
||||||
<el-table-column label="内容" align="center" prop="content" />
|
<!-- <el-table-column label="内容" align="center" prop="content" />-->
|
||||||
<el-table-column label="前端参数" align="center" prop="params" />
|
<!-- <el-table-column label="前端参数" align="center" prop="params" />-->
|
||||||
<el-table-column label="备注说明" align="center" prop="remark" />
|
<el-table-column label="备注说明" align="center" prop="remark" />
|
||||||
<el-table-column label="发送类型" align="center" prop="sendTimeType" >
|
<el-table-column label="发送类型" align="center" prop="sendTimeType" >
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
<cai-dict-tag :options="systemPushSendTimeTypeList" :value="scope.row.type"/>
|
<cai-dict-tag :options="systemPushSendTimeTypeList" :value="scope.row.sendTimeType"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="发送时间" align="center" prop="sendTime" width="180" />
|
<el-table-column label="发送时间" align="center" prop="sendTime" width="180" />
|
||||||
@@ -77,10 +77,10 @@
|
|||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-edit"
|
icon="el-icon-info"
|
||||||
@click="handleUpdate(scope.row)"
|
@click="handleInfo(scope.row)"
|
||||||
v-hasPermi="['cai:sysPush:edit']"
|
v-hasPermi="['cai:sysPush:edit']"
|
||||||
>修改</el-button>
|
>预览</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
@@ -100,7 +100,14 @@
|
|||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<add-sys-push-dialog v-if="addSysPushDialogVisible" ref="addSysPushDialog" />
|
<add-sys-push-dialog v-if="addSysPushDialogVisible" ref="addSysPushDialog" @refreshDataList="getList" />
|
||||||
|
|
||||||
|
<el-dialog title="系统消息查看" :close-on-click-modal="false" :visible.sync="infoOpen" width="350px" append-to-body>
|
||||||
|
<preview-client :data="infoData.form" :textContext="infoData.textContext" :imageContext="infoData.imageContext"></preview-client>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="infoOpen = false">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -114,16 +121,23 @@ import {
|
|||||||
systemPushTypeList
|
systemPushTypeList
|
||||||
} from '@/constant/statusMap'
|
} from '@/constant/statusMap'
|
||||||
import AddSysPushDialog from '@/views/cai/sysPush/add-sys-push-dialog.vue'
|
import AddSysPushDialog from '@/views/cai/sysPush/add-sys-push-dialog.vue'
|
||||||
|
import PreviewClient from '@/components/PreviewInMobileClient/index.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "SysPush",
|
name: "SysPush",
|
||||||
components: {
|
components: {
|
||||||
AddSysPushDialog
|
AddSysPushDialog,PreviewClient
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
systemPushGroupIdList,systemPushLogStatus,systemPushSendTimeTypeList,systemPushStatusList,systemPushTypeList,
|
systemPushGroupIdList,systemPushLogStatus,systemPushSendTimeTypeList,systemPushStatusList,systemPushTypeList,
|
||||||
addSysPushDialogVisible: false,
|
addSysPushDialogVisible: false,
|
||||||
|
infoOpen: false,
|
||||||
|
infoData:{
|
||||||
|
form:{},
|
||||||
|
textContext:[],
|
||||||
|
imageContext:[]
|
||||||
|
},
|
||||||
// 按钮loading
|
// 按钮loading
|
||||||
buttonLoading: false,
|
buttonLoading: false,
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
@@ -158,6 +172,14 @@ export default {
|
|||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handleInfo(row){
|
||||||
|
let parse = JSON.parse(row.params);
|
||||||
|
this.$set(this.infoData,'form',parse.master)
|
||||||
|
this.$set(this.infoData,'textContext',parse.textContext)
|
||||||
|
this.$set(this.infoData,'imageContext',parse.imageContext)
|
||||||
|
console.log(this.infoData)
|
||||||
|
this.infoOpen = true;
|
||||||
|
},
|
||||||
/** 查询推送系统消息列表 */
|
/** 查询推送系统消息列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ module.exports = {
|
|||||||
proxy: {
|
proxy: {
|
||||||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||||
[process.env.VUE_APP_BASE_API]: {
|
[process.env.VUE_APP_BASE_API]: {
|
||||||
// target: `http://localhost:8080`,
|
target: `http://localhost:8080`,
|
||||||
target: `http://124.222.254.188:9779/prod-api`,
|
// target: `http://124.222.254.188:9779/prod-api`,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
['^' + process.env.VUE_APP_BASE_API]: ''
|
['^' + process.env.VUE_APP_BASE_API]: ''
|
||||||
|
|||||||
Reference in New Issue
Block a user