sadjv3_admin/src/views/locality/materialLink.vue

248 lines
8.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<div style = "float: right;margin-right:2%;">
<el-button style = "margin: 10px 0;" :disabled = "!isAuth('materialLink:add')" size = "mini" type = "primary" icon = "document"
@click = "advertNotice">添加素材</el-button>
</div>
<el-table v-loading = "tableDataLoading" :data = "guangaoData">
<el-table-column fixed prop = "id" label = "编号" width = "80"></el-table-column>
<el-table-column prop = "imgUrl" label = "素材图片" width="180">
<template slot-scope = "scope">
<img :src = "scope.row.image_url" alt = "" width = "170px" height = "60">
</template>
</el-table-column>
<el-table-column prop = "url" label = "素材链接"></el-table-column>
<el-table-column prop = "createAt" label = "创建时间" width="180"></el-table-column>
<el-table-column label = "操作" width = "150">
<template slot-scope = "scope">
<el-button size = "mini" type = "primary" :disabled = "!isAuth('materialLink:update')"
@click = "advertUpdates(scope.row)">修改</el-button>
<el-button size = "mini" type = "danger" :disabled = "!isAuth('materialLink:delete')"
@click = "advertdeletes(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 添加素材 -->
<el-dialog title = "添加素材" :visible.sync = "dialogFormVisible" center>
<div style = "margin-bottom: 10px;display: flex;">
<span style = "width: 200px;display: inline-block;text-align: right;">素材图片</span>
<div style = " width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height: 148px;">
<el-upload class = "avatar-uploader" v-model = "imgUrl" :action="uploadUrl"
:show-file-list = "false" :on-success = "handleAvatarSuccess">
<img v-if = "imgUrl" :src = "imgUrl" class = "avatar" style = "border-radius: 6px;width:148px;height: 148px;"/>
<i v-else class = "el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</div>
<div style = "margin-bottom: 10px;">
<span style = "width: 200px;display: inline-block;text-align: right;position: relative;top: -68px;">素材地址</span>
<el-input style = "width:50%;" v-model = "linkUrl" placeholder = "请输入素材地址" type = "textarea" :rows = "4"></el-input>
</div>
<div slot = "footer" class = "dialog-footer">
<el-button @click = "dialogFormVisible = false"> </el-button>
<el-button type = "primary" @click = "advertNoticeTo()"> </el-button>
</div>
</el-dialog>
<!-- 修改素材 -->
<el-dialog title = "修改素材" :visible.sync = "dialogFormVisible1" center>
<el-form :model = "form">
<el-form-item label = "素材图片:" :label-width = "formLabelWidth">
<div style = " width:148px;height:148px;border: 1px dashed #c0ccda;border-radius: 6px;text-align: center;line-height:148px;">
<el-upload class = "avatar-uploader" v-model = "form.imgUrl" :action="uploadUrl"
:show-file-list = "false" :on-success = "handleAvatarSuccess1">
<img v-if = "form.imgUrl" :src = "form.imgUrl" class = "avatar" style = "border-radius: 6px;width:148px;height: 148px;"/>
<i v-else class = "el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</el-form-item>
<el-form-item label = "素材链接:" :label-width = "formLabelWidth">
<el-input v-model = "form.linkUrl" style = "width:65%;" type = "textarea" :rows = "4"></el-input>
</el-form-item>
</el-form>
<div slot = "footer" class = "dialog-footer">
<el-button @click = "dialogFormVisible1 = false"> </el-button>
<el-button type = "primary" @click = "amendadvertTo()"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { serverPaths } from '@/utils/enumData'
export default {
data () {
return {
uploadUrl: serverPaths.uploadUrl,
imgUrl: '',
linkUrl: '',
type: 3,
form: {
id: '',
imgUrl: '',
linkUrl: '',
createAt: ''
},
formLabelWidth: '200px',
tableDataLoading: false,
dialogFormVisible1: false,
dialogFormVisible: false,
guangaoData: [],
}
},
methods: {
handleAvatarSuccess (file) {
this.imgUrl = file.data
this.linkUrl = this.imgUrl
},
handleAvatarSuccess1 (file) {
this.form.imgUrl = file.data
this.form.linkUrl = this.form.imgUrl
},
handleSizeChange (val) {
this.size = val
this.guangaoSelect()
},
handleCurrentChange (val) {
this.page = val
this.guangaoSelect()
},
// 刷新
refresh () {
this.choicenSelect()
this.handpick()
},
// 添加素材弹框
advertNotice () {
this.dialogFormVisible = true
},
// 添加素材
advertNoticeTo () {
if (this.linkUrl == '') {
this.$notify({
title: '提示',
duration: 1800,
message: '请输入跳转链接',
type: 'warning'
})
return
}
if (this.imgUrl == '') {
this.$notify({
title: '提示',
duration: 1800,
message: '请上传素材图',
type: 'warning'
})
return
}
this.$http({
url: this.$http.adornUrl2(`/banner/update/-1?url=${this.linkUrl}&image=${this.imgUrl}&type=${this.type}`),
method: 'post',
data: this.$http.adornData({})
}).then(({data}) => {
this.dialogFormVisible = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.imgUrl = ''
this.linkUrl = ''
this.guangaoSelect()
}
})
})
},
// 点击修改
advertUpdates (rows) {
this.form.id = rows.id
this.form.imgUrl = rows.image_url
this.form.linkUrl = rows.url
this.dialogFormVisible1 = true
},
// 确定修改
amendadvertTo () {
if (this.form.linkUrl == '') {
this.$notify({
title: '提示',
duration: 1800,
message: '请输入跳转链接',
type: 'warning'
})
return
}
if (this.form.imgUrl == '') {
this.$notify({
title: '提示',
duration: 1800,
message: '请上传素材图',
type: 'warning'
})
return
}
this.$http({
url: this.$http.adornUrl2(`/banner/update/${this.form.id}?url=${this.form.linkUrl}&image=${this.form.imgUrl}&type=${this.type}`),
method: 'post',
data: this.$http.adornData({})
}).then(({data}) => {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.guangaoSelect()
this.dialogFormVisible1 = false
}
})
})
},
// 删除广告
advertdeletes (row) {
this.$confirm(`确定删除此条信息?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl2(`/banner/delete/${row.id}`),
method: 'get',
params: this.$http.adornParams({})
}).then(({data}) => {
this.$message({
message: '删除成功',
type: 'success',
duration: 1500,
onClose: () => {
this.guangaoSelect()
}
})
})
})
},
// 获取素材数据
guangaoSelect () {
let page = this.page - 1
this.tableDataLoading = true
this.$http({
url: this.$http.adornUrl2('/banner/user/list/3'),
method: 'get',
params: this.$http.adornParams({})
}).then(({data}) => {
this.tableDataLoading = false
let returnData = data.data
this.guangaoData = returnData
})
},
},
mounted () {
this.guangaoSelect()
}
}
</script>
<style>
.customWidth {
width: 80% !important;
}
</style>