Showing
2 changed files
with
63 additions
and
10 deletions
| 1 | /* | 1 | /* |
| 2 | * @Date: 2024-09-26 13:36:06 | 2 | * @Date: 2024-09-26 13:36:06 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-10-25 16:49:54 | 4 | + * @LastEditTime: 2024-10-25 17:48:09 |
| 5 | * @FilePath: /hager/src/api/hager.js | 5 | * @FilePath: /hager/src/api/hager.js |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | */ | 7 | */ |
| ... | @@ -24,6 +24,8 @@ const Api = { | ... | @@ -24,6 +24,8 @@ const Api = { |
| 24 | GET_CODE: '/srv/?a=user&type=get_code', | 24 | GET_CODE: '/srv/?a=user&type=get_code', |
| 25 | EDIT_PASSWORD: '/srv/?a=user&type=edit_password', | 25 | EDIT_PASSWORD: '/srv/?a=user&type=edit_password', |
| 26 | SEARCH: '/srv/?a=search', | 26 | SEARCH: '/srv/?a=search', |
| 27 | + DOWN_EMAIL: '/srv/?a=down_email', | ||
| 28 | + DOWN_ZIP: '/srv/?a=down_zip', | ||
| 27 | }; | 29 | }; |
| 28 | 30 | ||
| 29 | export const honorAPI = (params) => fn(fetch.get(Api.HONOR, params)); | 31 | export const honorAPI = (params) => fn(fetch.get(Api.HONOR, params)); |
| ... | @@ -51,3 +53,6 @@ export const editUserInfoAPI = (params) => fn(fetch.post(Api.EDIT_USER, params)) | ... | @@ -51,3 +53,6 @@ export const editUserInfoAPI = (params) => fn(fetch.post(Api.EDIT_USER, params)) |
| 51 | export const getCodeAPI = (params) => fn(fetch.post(Api.GET_CODE, params)); | 53 | export const getCodeAPI = (params) => fn(fetch.post(Api.GET_CODE, params)); |
| 52 | export const editPasswordAPI = (params) => fn(fetch.post(Api.EDIT_PASSWORD, params)); | 54 | export const editPasswordAPI = (params) => fn(fetch.post(Api.EDIT_PASSWORD, params)); |
| 53 | export const searchAPI = (params) => fn(fetch.get(Api.SEARCH, params)); | 55 | export const searchAPI = (params) => fn(fetch.get(Api.SEARCH, params)); |
| 56 | + | ||
| 57 | +export const downEmailAPI = (params) => fn(fetch.post(Api.DOWN_EMAIL, params)); | ||
| 58 | +export const downZipAPI = (params) => fn(fetch.post(Api.DOWN_ZIP, params)); | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2024-09-29 14:26:41 | 2 | * @Date: 2024-09-29 14:26:41 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-10-25 12:22:18 | 4 | + * @LastEditTime: 2024-10-25 17:57:24 |
| 5 | * @FilePath: /hager/src/views/product/detail.vue | 5 | * @FilePath: /hager/src/views/product/detail.vue |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | --> | 7 | --> |
| ... | @@ -129,8 +129,8 @@ import mixin from 'common/mixin'; | ... | @@ -129,8 +129,8 @@ import mixin from 'common/mixin'; |
| 129 | import hagerBox from '@/components/common/hagerBox'; | 129 | import hagerBox from '@/components/common/hagerBox'; |
| 130 | import hagerCarousel from '@/components/hagerCarousel'; | 130 | import hagerCarousel from '@/components/hagerCarousel'; |
| 131 | import hagerH1 from '@/components/common/hagerH1.vue'; | 131 | import hagerH1 from '@/components/common/hagerH1.vue'; |
| 132 | -import { MessageBox, Message } from 'element-ui'; | 132 | +import { MessageBox, Message, Loading } from 'element-ui'; |
| 133 | -import { getProductInfoAPI } from "@/api/hager.js"; | 133 | +import { getProductInfoAPI, getUserInfoAPI, downEmailAPI, downZipAPI } from "@/api/hager.js"; |
| 134 | 134 | ||
| 135 | export default { | 135 | export default { |
| 136 | components: { hagerBox, hagerCarousel, hagerH1 }, | 136 | components: { hagerBox, hagerCarousel, hagerH1 }, |
| ... | @@ -170,6 +170,7 @@ export default { | ... | @@ -170,6 +170,7 @@ export default { |
| 170 | info_images: [], | 170 | info_images: [], |
| 171 | product_advantages: [], | 171 | product_advantages: [], |
| 172 | checked_items: [], | 172 | checked_items: [], |
| 173 | + is_login: false, | ||
| 173 | } | 174 | } |
| 174 | }, | 175 | }, |
| 175 | computed: { | 176 | computed: { |
| ... | @@ -187,6 +188,7 @@ export default { | ... | @@ -187,6 +188,7 @@ export default { |
| 187 | }, | 188 | }, |
| 188 | async mounted () { | 189 | async mounted () { |
| 189 | this.getInfo(); | 190 | this.getInfo(); |
| 191 | + this.getUserInfo(); | ||
| 190 | }, | 192 | }, |
| 191 | watch: { | 193 | watch: { |
| 192 | // 监听路由参数变化时,更新输入框的值 | 194 | // 监听路由参数变化时,更新输入框的值 |
| ... | @@ -228,7 +230,24 @@ export default { | ... | @@ -228,7 +230,24 @@ export default { |
| 228 | this.download_list.forEach(item => item.show = false); | 230 | this.download_list.forEach(item => item.show = false); |
| 229 | item.show = true; | 231 | item.show = true; |
| 230 | }, | 232 | }, |
| 231 | - goToDownload () { | 233 | + async getUserInfo () { |
| 234 | + const { code, data } = await getUserInfoAPI(); | ||
| 235 | + if (code) { | ||
| 236 | + if (data) { | ||
| 237 | + this.is_login = true; // 已登录 | ||
| 238 | + } else { | ||
| 239 | + this.is_login = false; // 未登录 | ||
| 240 | + } | ||
| 241 | + } | ||
| 242 | + }, | ||
| 243 | + async goToDownload () { | ||
| 244 | + if (!this.is_login) { | ||
| 245 | + Message({ | ||
| 246 | + type: 'error', | ||
| 247 | + message: '请先登录' | ||
| 248 | + }); | ||
| 249 | + return; | ||
| 250 | + } | ||
| 232 | if (this.is_download_checked) { | 251 | if (this.is_download_checked) { |
| 233 | let ids = []; | 252 | let ids = []; |
| 234 | this.download_list.forEach(item => { | 253 | this.download_list.forEach(item => { |
| ... | @@ -238,25 +257,54 @@ export default { | ... | @@ -238,25 +257,54 @@ export default { |
| 238 | } | 257 | } |
| 239 | }) | 258 | }) |
| 240 | }); | 259 | }); |
| 241 | - console.warn(ids); | 260 | + let loadingInstance = Loading.service({ fullscreen: true, background: 'rgba(0, 0, 0, 0.3)' }); |
| 261 | + const { code, data } = await downEmailAPI(); | ||
| 262 | + if (code) { | ||
| 263 | + await downZipAPI({ name: data.name, ids }); | ||
| 242 | // 发送邮箱接口 | 264 | // 发送邮箱接口 |
| 243 | Message({ | 265 | Message({ |
| 244 | type: 'success', | 266 | type: 'success', |
| 245 | - message: '发送成功' | 267 | + message: '邮件发送成功' |
| 268 | + }); | ||
| 269 | + this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 | ||
| 270 | + loadingInstance.close(); | ||
| 271 | + }); | ||
| 272 | + } else { | ||
| 273 | + this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 | ||
| 274 | + loadingInstance.close(); | ||
| 246 | }); | 275 | }); |
| 247 | } | 276 | } |
| 277 | + } | ||
| 248 | }, | 278 | }, |
| 249 | checkAll (item) { // 全选当前显示的下载列表 | 279 | checkAll (item) { // 全选当前显示的下载列表 |
| 250 | item.list.forEach(file => file.checked = true); | 280 | item.list.forEach(file => file.checked = true); |
| 251 | item.checked_sum = item.list.filter(item => item.checked).length; | 281 | item.checked_sum = item.list.filter(item => item.checked).length; |
| 252 | }, | 282 | }, |
| 253 | - sendEmail (item) { | 283 | + async sendEmail (item) { |
| 254 | - console.warn(item); | 284 | + if (!this.is_login) { |
| 285 | + Message({ | ||
| 286 | + type: 'error', | ||
| 287 | + message: '请先登录' | ||
| 288 | + }); | ||
| 289 | + return; | ||
| 290 | + } | ||
| 291 | + let loadingInstance = Loading.service({ fullscreen: true, background: 'rgba(0, 0, 0, 0.3)' }); | ||
| 292 | + const { code, data } = await downEmailAPI(); | ||
| 293 | + if (code) { | ||
| 294 | + await downZipAPI({ name: data.name, ids: [item.id] }); | ||
| 255 | // 发送邮箱接口 | 295 | // 发送邮箱接口 |
| 256 | Message({ | 296 | Message({ |
| 257 | type: 'success', | 297 | type: 'success', |
| 258 | - message: '发送成功' | 298 | + message: '邮件发送成功' |
| 299 | + }); | ||
| 300 | + this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 | ||
| 301 | + loadingInstance.close(); | ||
| 259 | }); | 302 | }); |
| 303 | + } else { | ||
| 304 | + this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭 | ||
| 305 | + loadingInstance.close(); | ||
| 306 | + }); | ||
| 307 | + } | ||
| 260 | }, | 308 | }, |
| 261 | preview (item) { | 309 | preview (item) { |
| 262 | window.open(item.value, '_blank'); | 310 | window.open(item.value, '_blank'); | ... | ... |
-
Please register or login to post a comment