From 3c3824245511e1f6fc2cad7d25cd8fa33187b287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=AE=8F=E6=9D=B0?= <1943105267@qq.com> Date: Fri, 24 Nov 2023 16:41:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E6=88=B7=E4=B8=9A=E5=8A=A1=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E7=BC=96=E5=86=99=E5=AE=8C=E6=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 10 +- src/api/netEwm/poster.js | 47 +++-- src/assets/icons/svg/shanghu.svg | 2 +- src/assets/styles/general.scss | 18 ++ src/components/VideoUpload/index.vue | 91 ++++++--- src/views/login.vue | 6 +- src/views/netEwm/poster/index.vue | 42 +++-- .../netEwm/shanghu/components/MyTable.vue | 178 ++++++++++++++++++ src/views/netEwm/shanghu/index.vue | 103 ++++++++-- 9 files changed, 415 insertions(+), 82 deletions(-) create mode 100644 src/views/netEwm/shanghu/components/MyTable.vue diff --git a/src/App.vue b/src/App.vue index 6602508..cc7d72a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -12,14 +12,14 @@ export default { name: "App", mounted() { //获取当前屏幕可视区域宽度与高度 - var screenWidth = window.innerWidth; - var screenHeight = window.innerHeight; - console.log(screenWidth, screenHeight); + // var screenWidth = window.innerWidth; + // var screenHeight = window.innerHeight; + // console.log(screenHeight); // 初始化(适配) autofit.init( { - dh: screenHeight, - dw: screenWidth, + dh: 931, + dw: 1920, el: "#app", resize: true, }, diff --git a/src/api/netEwm/poster.js b/src/api/netEwm/poster.js index 9f3a3b9..38ac71a 100644 --- a/src/api/netEwm/poster.js +++ b/src/api/netEwm/poster.js @@ -1,44 +1,53 @@ -import request from '@/utils/request' +import request from "@/utils/request"; // 查询广告列表 export function listPoster(query) { return request({ - url: '/netEwm/poster/list', - method: 'get', - params: query - }) + url: "/netEwm/poster/list", + method: "get", + params: query, + }); } // 查询广告详细 export function getPoster(id) { return request({ - url: '/netEwm/poster/' + id, - method: 'get' - }) + url: "/netEwm/poster/" + id, + method: "get", + }); } // 新增广告 export function addPoster(data) { return request({ - url: '/netEwm/poster', - method: 'post', - data: data - }) + url: "/netEwm/poster", + method: "post", + data: data, + }); } // 修改广告 export function updatePoster(data) { return request({ - url: '/netEwm/poster', - method: 'put', - data: data - }) + url: "/netEwm/poster", + method: "put", + data: data, + }); } // 删除广告 export function delPoster(id) { return request({ - url: '/netEwm/poster/' + id, - method: 'delete' - }) + url: "/netEwm/poster/" + id, + method: "delete", + }); +} + +//广告批量分配给商户 +export function batchAllocation(data) { + return request({ + url: "/netEwm/poster/batchAllocation", + method: "post", + data: data, + }); } diff --git a/src/assets/icons/svg/shanghu.svg b/src/assets/icons/svg/shanghu.svg index c7e3f8e..691ba2d 100644 --- a/src/assets/icons/svg/shanghu.svg +++ b/src/assets/icons/svg/shanghu.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/assets/styles/general.scss b/src/assets/styles/general.scss index 0e40e6e..8fb7428 100644 --- a/src/assets/styles/general.scss +++ b/src/assets/styles/general.scss @@ -19,3 +19,21 @@ color: blue !important; } } +.el-date-editor.el-input { + width: 100%; +} + +// 详情弹出层 +.my-info { + .cell-info { + margin: 15px 0; + font-size: 16px; + font-weight: bold; + } + .info-container { + .avatar { + height: 200px; + width: 400px; + } + } +} diff --git a/src/components/VideoUpload/index.vue b/src/components/VideoUpload/index.vue index f346a96..fe8e5e6 100644 --- a/src/components/VideoUpload/index.vue +++ b/src/components/VideoUpload/index.vue @@ -5,21 +5,32 @@ :on-progress="uploadVideoProcess" :on-success="handleVideoSuccess" :before-upload="beforeUploadVideo" + :on-error="handleUploadError" :show-file-list="false" :headers="headers" > - - +
+ + +
+ +
+
+ import { getToken } from "@/utils/auth"; export default { + props: { + value: [String, Object, Array], + }, data() { return { baseUrl: process.env.VUE_APP_BASE_API, @@ -50,20 +64,29 @@ export default { }, }; }, + watch: { + value: { + handler(val) { + console.log("会显示", val); + if (val) { + this.videoForm.showVideoPath = this.baseUrl + val; + } + }, + deep: true, + immediate: true, + }, + }, methods: { + /**s删除视频 */ + handleClose() { + this.videoForm.showVideoPath = ""; + this.videoFlag = false; + }, //上传前回调 beforeUploadVideo(file) { var fileSize = file.size / 1024 / 1024 < 50; //控制大小 修改50的值即可 if ( - [ - "video/mp4", - "video/ogg", - "video/flv", - "video/avi", - "video/wmv", - "video/rmvb", - "video/mov", - ].indexOf(file.type) == -1 //控制格式 + ["video/mp4", "video/avi", "video/rmvb"].indexOf(file.type) == -1 //控制格式 ) { this.$modal.msgError("请上传正确的视频格式"); return false; @@ -85,8 +108,14 @@ export default { this.isShowUploadVideo = true; this.videoFlag = false; this.videoUploadPercent = 0; - console.log(res); - this.videoForm.showVideoPath = res.url; + this.videoForm.showVideoPath = this.baseUrl + res.fileName; + this.$emit("input", res.fileName); + this.$modal.msgSuccess("上传成功"); + }, + // 上传失败 + handleUploadError() { + this.$modal.msgError("上传视频失败,请重试"); + this.$modal.closeLoading(); }, }, }; @@ -119,4 +148,20 @@ export default { height: 178px; display: block; } +.video-main { + position: relative; + .close-btn { + position: absolute; + top: -10px; + right: -10px; + height: 25px; + width: 25px; + border-radius: 50%; + border: 1px solid red; + text-align: center; + line-height: 25px; + color: red; + background: #fff; + } +} diff --git a/src/views/login.vue b/src/views/login.vue index b583579..bf851a6 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -78,9 +78,9 @@ - @@ -114,7 +114,7 @@ export default { // 验证码开关 captchaEnabled: true, // 注册开关 - register: false, + register: true, redirect: undefined, }; }, diff --git a/src/views/netEwm/poster/index.vue b/src/views/netEwm/poster/index.vue index d752b19..f826c5a 100644 --- a/src/views/netEwm/poster/index.vue +++ b/src/views/netEwm/poster/index.vue @@ -110,34 +110,30 @@ > - + - + - - @@ -221,6 +216,10 @@ export default { name: "Poster", data() { return { + //分配弹出层 + fpShow: false, + //分配标题 + fpTitle: "", // 遮罩层 loading: true, // 选中数组 @@ -257,6 +256,11 @@ export default { this.getList(); }, methods: { + /**批量分配广告给商户 */ + handleFp() { + this.fpTitle = "批量分配广告"; + this.fpShow = true; + }, /** 查询广告列表 */ getList() { this.loading = true; diff --git a/src/views/netEwm/shanghu/components/MyTable.vue b/src/views/netEwm/shanghu/components/MyTable.vue new file mode 100644 index 0000000..a5e54ea --- /dev/null +++ b/src/views/netEwm/shanghu/components/MyTable.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/views/netEwm/shanghu/index.vue b/src/views/netEwm/shanghu/index.vue index 1dacc57..87c27c0 100644 --- a/src/views/netEwm/shanghu/index.vue +++ b/src/views/netEwm/shanghu/index.vue @@ -106,17 +106,23 @@ > - + - - @@ -187,11 +235,21 @@ import { addShanghu, updateShanghu, } from "@/api/netEwm/shanghu"; +import { getPoster } from "@/api/netEwm/poster"; +import MyTable from "./components/MyTable.vue"; export default { + components: { + MyTable, + }, name: "Shanghu", data() { return { + baseUrl: process.env.VUE_APP_BASE_API, + //详情标题 + titleInfo: "", + //详情弹出层 + openInfo: false, // 遮罩层 loading: true, // 选中数组 @@ -242,6 +300,18 @@ export default { this.getList(); }, methods: { + /**分配广告 */ + handleFp(row) { + getShanghu(row.id).then((response) => { + let data = { + shanghuCity: response.data.city, + shanghuIds: [response.data.id], + shanghuName: response.data.posName, + }; + let posterId = response.data.posterId; + this.$refs.MyTable.openDialog(data, posterId); + }); + }, /** 查询商户列表 */ getList() { this.loading = true; @@ -296,14 +366,23 @@ export default { this.open = true; this.title = "添加商户"; }, + /** 修改按钮操作 */ - handleUpdate(row) { + handleUpdate(row, type) { this.reset(); const id = row.id || this.ids; getShanghu(id).then((response) => { this.form = response.data; - this.open = true; - this.title = "修改商户"; + if (type == "info") { + getPoster(this.form.posterId).then((info) => { + this.form.videoPath = this.baseUrl + info.data.videoPath; + this.openInfo = true; + this.titleInfo = "查看商户详细信息"; + }); + } else { + this.open = true; + this.title = "修改商户"; + } }); }, /** 提交按钮 */