hookehuyr

✨ feat(上传作品,爱心捐书模块): 捐书信息和上传作品金数据传值,动态获取

1 +import { ref } from 'vue'
2 +import axios from '@/utils/axios';
3 +
4 +export const useDefaultPerf = (bookId) => {
5 + // 金数据准备数据
6 + const donateItem = ref({})
7 +
8 + /**
9 + * 获取默认儿童信息
10 + * @returns name, perf_id, kg_id
11 + */
12 + axios.get('/srv/?a=default_perf', {
13 + params: {
14 + book_id: bookId
15 + }
16 + })
17 + .then(res => {
18 + if (res.data.code === 1) {
19 + donateItem.value = {
20 + book_id: res.data.data.book_id,
21 + avatar: res.data.data.book_cover,
22 + name: res.data.data.book_name,
23 + price: res.data.data.book_price,
24 + perf_name: res.data.data.perf_name
25 + }
26 + } else {
27 + console.warn(res);
28 + Toast({
29 + icon: 'close',
30 + message: res.data.msg
31 + });
32 + }
33 + })
34 + .catch(err => {
35 + console.error(err);
36 + });
37 + return {
38 + donateItem
39 + }
40 +}
...@@ -107,6 +107,7 @@ import { storeToRefs } from 'pinia' ...@@ -107,6 +107,7 @@ import { storeToRefs } from 'pinia'
107 107
108 import Cookies from 'js-cookie' 108 import Cookies from 'js-cookie'
109 import { useVideoList } from '@/composables/useVideoList.js' 109 import { useVideoList } from '@/composables/useVideoList.js'
110 +import { useDefaultPerf } from '@/composables/useDefaultPerf.js'
110 111
111 import MyButton from '@/components/MyButton/index.vue' 112 import MyButton from '@/components/MyButton/index.vue'
112 import VideoCard from '@/components/VideoCard/index.vue' 113 import VideoCard from '@/components/VideoCard/index.vue'
...@@ -133,6 +134,7 @@ const $route = useRoute(); ...@@ -133,6 +134,7 @@ const $route = useRoute();
133 const $router = useRouter(); 134 const $router = useRouter();
134 135
135 const { toggleLanguage, onLoad, columns, prod_list, finished, loading, bookInfo, showPicker, checkLocalism, checkMandarin, onConfirm, chooseLanguage } = useVideoList($route); 136 const { toggleLanguage, onLoad, columns, prod_list, finished, loading, bookInfo, showPicker, checkLocalism, checkMandarin, onConfirm, chooseLanguage } = useVideoList($route);
137 +const { donateItem } = useDefaultPerf($route.query.id);
136 138
137 // 判断是否显示简介的展开图标 139 // 判断是否显示简介的展开图标
138 const hasToggle = ref(false); // 判断是否有展开文字,默认没有 140 const hasToggle = ref(false); // 判断是否有展开文字,默认没有
...@@ -184,21 +186,7 @@ const onSubscribe = () => { ...@@ -184,21 +186,7 @@ const onSubscribe = () => {
184 } 186 }
185 187
186 /*************** 捐书模块START ***************/ 188 /*************** 捐书模块START ***************/
187 -// 金数据准备数据 189 +
188 -const default_perf = ref({});
189 -// x_field_1 是金数据表单传入的参数,家长上传的格式为:user_id-book_id-perf_id,perf_id是当前缺省的儿童id
190 -default_perf.value = Cookies.get('default_perf') ? JSON.parse(Cookies.get('default_perf')) : '';
191 -const str = `${default_perf.value.user_id}-${$route.query.id}-${default_perf.value.perf_id}`;
192 -
193 -const donateItem = ref({})
194 -// 捐书数据
195 -donateItem.value = {
196 - book_id: default_perf.value.book_id,
197 - avatar: default_perf.value.book_cover,
198 - name: default_perf.value.book_name,
199 - price: default_perf.value.book_price,
200 - perf_name: default_perf.value.perf_name
201 -}
202 // 弹出捐赠弹框模块 190 // 弹出捐赠弹框模块
203 const showDonate = ref(false); 191 const showDonate = ref(false);
204 192
...@@ -235,6 +223,8 @@ const uploadVideo = () => { ...@@ -235,6 +223,8 @@ const uploadVideo = () => {
235 if (res.data.code === 1) { 223 if (res.data.code === 1) {
236 // 实名认证标识 224 // 实名认证标识
237 if (res.data.data.can_upload) { 225 if (res.data.data.can_upload) {
226 + // x_field_1 是金数据表单传入的参数,家长上传的格式为:user_id-book_id-perf_id,perf_id是当前缺省的儿童id
227 + const str = `${donateItem.value.user_id}-${$route.query.id}-${donateItem.value.perf_id}`;
238 // 已读隐私条例,直接跳转上传页面 228 // 已读隐私条例,直接跳转上传页面
239 if (Cookies.get('privacy_notice')) { 229 if (Cookies.get('privacy_notice')) {
240 show.value = true; 230 show.value = true;
......
...@@ -27,6 +27,8 @@ import icon_success from '@images/que-sucess@2x.png' ...@@ -27,6 +27,8 @@ import icon_success from '@images/que-sucess@2x.png'
27 import MyButton from '@/components/MyButton/index.vue' 27 import MyButton from '@/components/MyButton/index.vue'
28 import DonateBook from '@/components/DonateBook/index.vue' 28 import DonateBook from '@/components/DonateBook/index.vue'
29 29
30 +import { useDefaultPerf } from '@/composables/useDefaultPerf.js'
31 +
30 import { ref, reactive, onMounted } from 'vue' 32 import { ref, reactive, onMounted } from 'vue'
31 import { useRoute, useRouter } from 'vue-router' 33 import { useRoute, useRouter } from 'vue-router'
32 import axios from '@/utils/axios'; 34 import axios from '@/utils/axios';
...@@ -37,49 +39,18 @@ const $router = useRouter(); ...@@ -37,49 +39,18 @@ const $router = useRouter();
37 39
38 /*************** 捐书模块START ***************/ 40 /*************** 捐书模块START ***************/
39 41
40 -const donateItem = ref({})
41 const book_id = $route.query.x_field_1 ? $route.query.x_field_1.split('-')[1] : ''; 42 const book_id = $route.query.x_field_1 ? $route.query.x_field_1.split('-')[1] : '';
43 +const { donateItem } = useDefaultPerf(book_id);
42 if (!book_id) { 44 if (!book_id) {
43 Toast.fail('书籍数据不全'); 45 Toast.fail('书籍数据不全');
44 } 46 }
45 47
46 -/**
47 -* 获取默认儿童信息
48 -* @returns name, perf_id, kg_id
49 -*/
50 -axios.get('/srv/?a=default_perf', {
51 - params: {
52 - book_id
53 - }
54 -})
55 -.then(res => {
56 - if (res.data.code === 1) {
57 - donateItem.value = res.data.data;
58 - } else {
59 - console.warn(res);
60 - Toast({
61 - icon: 'close',
62 - message: res.data.msg
63 - });
64 - }
65 -})
66 -.catch(err => {
67 - console.error(err);
68 -});
69 -
70 // 弹出捐赠弹框模块 48 // 弹出捐赠弹框模块
71 const showDonate = ref(false); 49 const showDonate = ref(false);
72 50
73 const toDonate = () => { 51 const toDonate = () => {
74 showDonate.value = true; 52 showDonate.value = true;
75 // 生成捐赠数据 53 // 生成捐赠数据
76 - donateItem.value = {
77 - book_id: donateItem.value.book_id,
78 - avatar: donateItem.value.book_cover,
79 - name: donateItem.value.book_name,
80 - price: donateItem.value.book_price,
81 - perf_name: donateItem.value.perf_name
82 - }
83 } 54 }
84 55
85 const closeDonate = (v) => { 56 const closeDonate = (v) => {
......