xiuli.gao 1 year ago
parent
commit
542b9d32de

+ 3 - 2
src/components/businessMoudle/batchGdt/configArea/originalityBasic/index.vue

@@ -207,7 +207,6 @@ const backhaul = (obj) => {
207 207
 }
208 208
 /**确认 isMultiplex是否复用 */
209 209
 const submitEvent = (isMultiplex?: boolean, multiplexApiForm:any[] = []) => {
210
-  console.log('2222', form)
211 210
   let promise_arr: any = []
212 211
   let multiplex_load_acc: any[] = [];//复用需要上传的账号
213 212
   for (let i in form) {//检索是否有未填写信息
@@ -296,6 +295,9 @@ const submitEvent = (isMultiplex?: boolean, multiplexApiForm:any[] = []) => {
296 295
     }else{
297 296
       fullscreenLoading.value = false
298 297
     }
298
+  }).catch((err)=>{
299
+    console.log(err)
300
+    fullscreenLoading.value = false
299 301
   })
300 302
 }
301 303
 const loadingPage_event = () => {//落地页
@@ -511,7 +513,6 @@ const elementFillBack = () => {
511 513
 const switchShow = async (val: boolean, obj: any) => {
512 514
   visible.value = val
513 515
   if (val) {
514
-    console.log('obj',obj)
515 516
     if (obj.fillback && JSON.stringify(obj.fillback) != '{}') { //回显状态下
516 517
       fillBackInfo.value = _.cloneDeep(obj.fillback)
517 518
       templateCurr.value = _.cloneDeep(obj?.apiResult?.templateCurr)

+ 60 - 56
src/components/businessMoudle/batchGdt/configArea/ts/material.ts

@@ -3,7 +3,7 @@ import { reactiveTableAndAny } from '@/api/ApiModel'
3 3
 import _ from 'lodash'
4 4
 
5 5
 //变量声明
6
-export function materialDeclare () {
6
+export function materialDeclare() {
7 7
   const CreativeMaterialRef = ref<{
8 8
     switchShow: (val: boolean, isEdit: boolean, arr: any) => void,
9 9
     clearAllEvent: () => void, creatice_reuseEvent: () => void, deleAcEvent: (arr: any, haveAssign: boolean) => void
@@ -38,78 +38,60 @@ export function handleMultiple({
38 38
   cMaterial
39 39
 }) {
40 40
   //处理素材返回来的值
41
-  const handle_resResult = (resResult: any, val: any) => {
42
-    // let str_imageorVideo: any = originalityBasicInfoData?.receiveForm?.originalityForm?.api_value?.originalityForm
41
+  const handle_resResult = (resResult: any) => {
43 42
     let resArr: any = []
44 43
     console.log('resResultresResult', resResult)
45
-    resResult.forEach(item => {
46
-      if (item) {
47
-        let obj: any = {}
48
-        obj.account_id = item.account_id
49
-        obj.list = []
44
+    resResult.forEach(main => {
45
+      if (!main) return;//跳出本次循环
46
+      let itemObj: any = _.cloneDeep(cMaterial.imgOrVideoInfo)
47
+      let imageArr: any = []
48
+      let self_info_arr:any = []
49
+      let obj: any = {}
50
+      obj.account_id = main.account_id
51
+      obj.list = []
52
+      main.list?.forEach((list_item) => {
53
+        let item = _.cloneDeep(list_item)
54
+        self_info_arr.push(item.self_info)
50 55
         for (let i in item) {
51
-          let arr = val.filter((v) => {
52
-            return v.itemId == i
53
-          })
54
-          if(item[i]?.material_res){
55
-            let itemObj: any = _.cloneDeep(cMaterial.imgOrVideoInfo)
56
-            itemObj = Object.assign(itemObj, {self_info: arr.length > 0 ? arr[0] : {}})
57
-            if(cMaterial.haveCoverOrVideo == 1) {//视频和图片
56
+          if (item[i]?.material_res) {
57
+            if (cMaterial.haveCoverOrVideo == 1) {//视频和图片
58 58
               if (item[i]?.material_res?.video_id) {
59 59
                 setValueInNestedObject(itemObj, 'video_id', item[i].material_res.video_id);
60
+                setValueInNestedObject(itemObj, 'self_video_count', 1);
60 61
               }
61 62
               if (item[i]?.material_res?.cover?.image_id) {
62 63
                 setValueInNestedObject(itemObj, 'image_id', item[i].material_res.cover.image_id);
64
+                setValueInNestedObject(itemObj, 'self_image_count', 1);
63 65
               }
64 66
               if (cMaterial.haveShowVideoObj.show && cMaterial.haveShowVideoObj.name) {
65 67
                 itemObj[cMaterial.haveShowVideoObj.name] = cMaterial.haveShowVideoObj.val
66 68
               }
67 69
             }
68
-            if(cMaterial.haveCoverOrVideo == 2) {//视频
70
+            if (cMaterial.haveCoverOrVideo == 2) {//视频
69 71
               if (item[i]?.material_res?.video_id) {
70 72
                 setValueInNestedObject(itemObj, 'video_id', item[i].material_res.video_id);
73
+                setValueInNestedObject(itemObj, 'self_video_count', 1);
71 74
               }
72 75
             }
73
-            if(cMaterial.haveCoverOrVideo == 3) {//图片
74
-              if(itemObj.image && item[i]?.material_res?.image_id) {
76
+            if (cMaterial.haveCoverOrVideo == 3) {//图片
77
+              if (itemObj.image && item[i]?.material_res?.image_id) {
75 78
                 setValueInNestedObject(itemObj, 'image_id', item[i].material_res.cover.image_id);
79
+                setValueInNestedObject(itemObj, 'self_image_count', 1);
76 80
               }
77
-              if(itemObj.image_list && item[i]?.material_res?.image_id) {
78
-                let imageArr: any = []
81
+              if (itemObj.image_list && item[i]?.material_res?.image_id) {
79 82
                 imageArr.push(item[i]?.material_res?.image_id)
80
-                setValueInNestedObject(itemObj, 'image_list', imageArr);
81 83
               }
82 84
             }
83
-            obj.list.push(itemObj)
84 85
           }
85
-
86
-
87
-          // if (str_imageorVideo == 'video' && item[i]?.material_res) {
88
-          //   let itemObj: any = {
89
-          //     self_info: arr.length > 0 ? arr[0] : {}
90
-          //   }
91
-          //   if (item[i]?.material_res?.video_id) {
92
-          //     itemObj.video = item[i].material_res.video_id
93
-          //   } else if (item[i]?.material_res?.cover?.image_id) {
94
-          //     itemObj.image = item[i].material_res.cover.image_id
95
-          //   }
96
-          //   if (cMaterial.haveShowVideoObj.show && cMaterial.haveShowVideoObj.name) {
97
-          //     itemObj[cMaterial.haveShowVideoObj.name] = cMaterial.haveShowVideoObj.val
98
-          //   }
99
-          //   obj.list.push(itemObj)
100
-          // } else if (str_imageorVideo == 'img' && item[i]?.material_res) {
101
-          //   if (item[i]?.material_res?.image_id) {
102
-          //     let imageArr: any = []
103
-          //     imageArr.push(item[i]?.material_res?.image_id)
104
-          //     obj.list.push({
105
-          //       image_list: imageArr,
106
-          //       self_info: arr.length > 0 ? arr[0] : {}
107
-          //     })
108
-          //   }
109
-          // }
110 86
         }
111
-        resArr.push(obj)
87
+      })
88
+      if(imageArr.length > 0) {//说明是多图片
89
+        setValueInNestedObject(itemObj, 'image_list', imageArr);
90
+        setValueInNestedObject(itemObj, 'self_image_count', imageArr.length);
112 91
       }
92
+      itemObj = Object.assign(itemObj, { self_info: self_info_arr})
93
+      obj.list.push(itemObj)
94
+      resArr.push(obj)
113 95
     })
114 96
     return resArr
115 97
   }
@@ -117,18 +99,38 @@ export function handleMultiple({
117 99
   const assignEvent_CreativeMaterial = async (val: any, videoOnPuse?: any) => {
118 100
     cMaterial.list_copy = _.cloneDeep(val)
119 101
     cMaterial.haveShowVideoObj.val = videoOnPuse
120
-    console.log('val',val)
102
+    console.log('val', val)
121 103
     //所有素材列表,此时的素材个数已是正确的
122 104
     let cMaterial_resResult_list: any = []
123 105
     val.forEach(vItem => {
124
-      vItem.list.forEach(sub=>{
125
-        cMaterial_resResult_list = cMaterial_resResult_list.concat(sub.resResult)
106
+      let arr = []
107
+      vItem.list.forEach(sub => {
108
+        let sub_resResult = _.cloneDeep(sub.resResult);
109
+        sub_resResult.forEach((v) => {
110
+          v['self_info'] = _.cloneDeep(sub)
111
+        });
112
+        arr = arr.concat(sub_resResult)
126 113
       })
114
+
115
+      let acc_arr: any[] = []
116
+      arr.forEach((item: any) => {
117
+        let acc_item_arr = acc_arr.filter((v) => v.account_id == item.account_id)
118
+        if (acc_item_arr.length > 0) {
119
+          acc_item_arr[0].list.push(item)
120
+        } else {
121
+          acc_arr.push({
122
+            account_id: item.account_id,
123
+            list: [item]
124
+          })
125
+        }
126
+      })
127
+
128
+      cMaterial_resResult_list = cMaterial_resResult_list.concat(acc_arr)
127 129
     })
128
-    console.log(cMaterial_resResult_list,'cMaterial_resResult_list');
130
+    console.log(cMaterial_resResult_list, 'cMaterial_resResult_list');
129 131
 
130 132
     let arr_: any = []
131
-    let cloneRes: any = await handle_resResult(_.cloneDeep(cMaterial_resResult_list), _.cloneDeep(val))
133
+    let cloneRes: any = await handle_resResult(_.cloneDeep(cMaterial_resResult_list))
132 134
     //图片形式的originalityBasicInfoData.params格式需要给
133 135
     console.log(cloneRes, 'cloneRes');
134 136
     await originalityBasicInfoData.params.forEach(item => {
@@ -215,12 +217,14 @@ export function handleMultiple({
215 217
       cMaterial.array_property = obj?.image_list?.array_property;
216 218
       cMaterial.imgOrVideoInfo['image_list'] = 'image_list'
217 219
     }
220
+    cMaterial.imgOrVideoInfo['self_image_count'] = 'self_image_count'
221
+    cMaterial.imgOrVideoInfo['self_video_count'] = 'self_video_count'
218 222
     // 留口子 现在逻辑是image video image_list不共存 暂未发现共存的情况
219
-    situationArr.forEach((item)=>{
220
-      if(item.type == 'video'){
223
+    situationArr.forEach((item) => {
224
+      if (item.type == 'video') {
221 225
         cMaterial.video_tips = item._tips
222 226
       }
223
-      if(item.type == 'image' || item.type == 'image_list'){
227
+      if (item.type == 'image' || item.type == 'image_list') {
224 228
         cMaterial.image_tips = item._tips
225 229
       }
226 230
     })

+ 14 - 12
src/components/businessMoudle/batchGdt/previewArea/dialog/SeeVideoImg.vue

@@ -39,18 +39,20 @@ const propInfo = ref<{url:string,type:number}[]>([])
39 39
 const switchShow = (val:boolean, imgList: any)=>{
40 40
   dialogShow.value = val
41 41
   propInfo.value = []
42
-  if(imgList.videoUrl){
43
-    propInfo.value.push({
44
-      type: 1,
45
-      url: imgList.videoUrl
46
-    })
47
-  }
48
-  if(imgList.picUrl){
49
-    propInfo.value.push({
50
-      type: 2,
51
-      url: imgList.picUrl
52
-    })
53
-  }
42
+  imgList.forEach((item)=>{
43
+    if(item.videoUrl){
44
+      propInfo.value.push({
45
+        type: 1,
46
+        url: item.videoUrl
47
+      })
48
+    }
49
+    if(item.picUrl){
50
+      propInfo.value.push({
51
+        type: 2,
52
+        url: item.picUrl
53
+      })
54
+    }
55
+  })
54 56
 }
55 57
 // 父组件共享值
56 58
 defineExpose({

+ 6 - 3
src/components/businessMoudle/batchGdt/previewArea/index.vue

@@ -91,9 +91,10 @@
91 91
                       <span>暂未配置</span>
92 92
                     </div>
93 93
                     <div class="cellDiv pointer" style="color:#3173FF;" v-else-if="item.column == 'a7'"
94
-                      @click="openSubDialogEvent(scope.row, 'seeVideoImg')">已选<span
95
-                        v-if="scope.row?.adcreatives_info.adcreative_elements.image">1张图片,</span><span
96
-                        v-if="scope.row?.adcreatives_info.adcreative_elements.video">1个视频</span></div>
94
+                      @click="openSubDialogEvent(scope.row, 'seeVideoImg')">已选
95
+                      <span>{{scope.row?.adcreatives_info.adcreative_elements.self_image_count != 'self_image_count' ? scope.row?.adcreatives_info.adcreative_elements.self_image_count : 0}}张图片,</span>
96
+                      <span>{{scope.row?.adcreatives_info.adcreative_elements.self_video_count != 'self_video_count' ? scope.row?.adcreatives_info.adcreative_elements.self_video_count : 0}}个视频</span>
97
+                    </div>
97 98
                     <div class="cellDiv" v-else-if="item.column == 'description'">
98 99
                       <el-tooltip placement="top"
99 100
                         :content="scope.row?.adcreatives_info.adcreative_elements.description"
@@ -312,6 +313,8 @@ const auditSubmitEvent = () => {
312 313
       let item = main.ad_list[i]
313 314
       delete item.adcreatives_info.page_spec.page_name;
314 315
       delete item.adcreatives_info.adcreative_elements.self_info;
316
+      delete item.adcreatives_info.adcreative_elements.self_image_count;
317
+      delete item.adcreatives_info.adcreative_elements.self_video_count;
315 318
       delete item.adcreatives_info.adcreative_elements.self_promoted_object_name;
316 319
     }
317 320
   })