liuxiaona преди 1 година
родител
ревизия
f84839e72e
променени са 36 файла, в които са добавени 98 реда и са изтрити 53 реда
  1. 1 1
      dist/assets/index.21d1f4e5.css
  2. 1 1
      dist/assets/index.b7275a50.css
  3. 1 1
      dist/assets/index.5385692d.js
  4. 1 1
      dist/index.html
  5. 1 1
      dist/js/_dialog/_dialog.b783e2c8.js
  6. 1 1
      dist/js/_input/_input.1136344b.js
  7. 1 1
      dist/js/_select/_select.7ff0f15b.js
  8. 1 1
      dist/js/adTask/index.35fa08f4.js
  9. 1 1
      dist/js/api/api.49c6912a.js
  10. 1 1
      dist/js/basisMoudle/accountManage.9bfaf5c7.js
  11. 1 1
      dist/js/basisMoudle/error.61183680.js
  12. 1 1
      dist/js/basisMoudle/home.6cca499b.js
  13. 1 1
      dist/js/basisMoudle/login.60638401.js
  14. 1 1
      dist/js/businessMoudle/adqManage.040eb1dd.js
  15. 1 1
      dist/js/collectClip/index.7cb8bf77.js
  16. 0 1
      dist/js/configArea/index.0783a3f1.js
  17. 1 0
      dist/js/configArea/index.aff7ae3d.js
  18. 1 0
      dist/js/gdtList/index.283465ae.js
  19. 0 1
      dist/js/gdtList/index.e87ef822.js
  20. 1 1
      dist/js/index/index.dab65e97.js
  21. 1 1
      dist/js/index/index.ef63f596.js
  22. 1 1
      dist/js/layout/index.5421f8cf.js
  23. 1 1
      dist/js/layout/index_head.c6bfcbcd.js
  24. 1 1
      dist/js/materialBlock/materialBlock.66a88cc7.js
  25. 1 1
      dist/js/materialLibrary/index.5eb4318f.js
  26. 1 1
      dist/js/menuPermission/menuList.48e98f9c.js
  27. 1 1
      dist/js/miniprogram/index.202fdcdc.js
  28. 1 1
      dist/js/noData/noData.7c936cdd.js
  29. 1 1
      dist/js/tableInfo/tableInfo.2fde3e1f.js
  30. 1 1
      dist/js/taskList/index.6f823cfa.js
  31. 1 1
      dist/js/timeScreen/timeScreen.3fd5d348.js
  32. 1 1
      dist/js/weekTime/weekTime.4861f43d.js
  33. 38 5
      src/components/businessMoudle/batchGdt/configArea/creativeMaterial/index.vue
  34. 9 1
      src/components/businessMoudle/batchGdt/configArea/creativeMaterial/testNew.vue
  35. 17 13
      src/components/businessMoudle/batchGdt/configArea/index.vue
  36. 4 4
      src/components/businessMoudle/gdtList/detial/creativeInfo.vue

Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/assets/index.21d1f4e5.css


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/assets/index.b7275a50.css


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/assets/index.5385692d.js


+ 1 - 1
dist/index.html

@@ -6,7 +6,7 @@
6 6
     <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
7 7
     <title>广告系统</title>
8 8
       <script src="//open.thunderurl.com/thunder-link.js"></script>
9
-    <script type="module" crossorigin src="./assets/index.5385692d.js"></script>
9
+    <script type="module" crossorigin src="./assets/index.fd526f1e.js"></script>
10 10
     <link rel="modulepreload" href="./js/@vue/@vue.e7eafc10.js">
11 11
     <link rel="modulepreload" href="./js/vue-router/vue-router.647267ed.js">
12 12
     <link rel="modulepreload" href="./js/axios/axios.27022086.js">

Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/_dialog/_dialog.b783e2c8.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/_input/_input.1136344b.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/_select/_select.7ff0f15b.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/adTask/index.35fa08f4.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/api/api.49c6912a.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/basisMoudle/accountManage.9bfaf5c7.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/basisMoudle/error.61183680.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/basisMoudle/home.6cca499b.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/basisMoudle/login.60638401.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/businessMoudle/adqManage.040eb1dd.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/collectClip/index.7cb8bf77.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 1
dist/js/configArea/index.0783a3f1.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 0
dist/js/configArea/index.aff7ae3d.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 0
dist/js/gdtList/index.283465ae.js


Файловите разлики са ограничени, защото са твърде много
+ 0 - 1
dist/js/gdtList/index.e87ef822.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/index/index.dab65e97.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/index/index.ef63f596.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/layout/index.5421f8cf.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/layout/index_head.c6bfcbcd.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/materialBlock/materialBlock.66a88cc7.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/materialLibrary/index.5eb4318f.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/menuPermission/menuList.48e98f9c.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/miniprogram/index.202fdcdc.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/noData/noData.7c936cdd.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/tableInfo/tableInfo.2fde3e1f.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/taskList/index.6f823cfa.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/timeScreen/timeScreen.3fd5d348.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
dist/js/weekTime/weekTime.4861f43d.js


+ 38 - 5
src/components/businessMoudle/batchGdt/configArea/creativeMaterial/index.vue

@@ -30,9 +30,14 @@
30 30
           <div class="title">创意内容</div>
31 31
           <div class="smallTitle lMar20">创意组数量: {{pageInfo.creativeTeamList&&pageInfo.creativeTeamList.length}}组</div>
32 32
           <div class="lMarauto">
33
-            <el-button type="primary" v-if="haveCoverOrVideo == 1 || haveCoverOrVideo == 2" @click="openLibraryDialog(1)">批量添加视频</el-button>
34
-            <el-button type="primary" v-if="haveCoverOrVideo == 1 || haveCoverOrVideo == 3" @click="openLibraryDialog(2)">批量添加封面</el-button>
35
-            <el-button type="primary" @click="openTestNew">一键测新</el-button>
33
+            <el-button type="primary"
34
+                       :disabled="pageInfo.creativeTeamList?.length >= max_creative_num"
35
+                       v-if="haveCoverOrVideo == 1 || haveCoverOrVideo == 2" @click="openLibraryDialog(1)">批量添加视频</el-button>
36
+            <el-button type="primary"
37
+                       :disabled="pageInfo.creativeTeamList?.length >= max_creative_num"
38
+                       v-if="haveCoverOrVideo == 1 || haveCoverOrVideo == 3" @click="openLibraryDialog(2)">批量添加封面</el-button>
39
+            <el-button type="primary"
40
+                       :disabled="pageInfo.creativeTeamList?.length >= max_creative_num" @click="openTestNew">一键测新</el-button>
36 41
           </div>
37 42
         </div>
38 43
 
@@ -137,6 +142,7 @@ const props = withDefaults(defineProps<{
137 142
   haveShowVideoObj?:any,
138 143
   minNum_imageList?:number,
139 144
   maxNum_imageList?:number,
145
+  max_creative_num?:any
140 146
 }>(), {
141 147
   haveCoverOrVideo:1,
142 148
   video_tips:{},
@@ -144,6 +150,7 @@ const props = withDefaults(defineProps<{
144 150
   haveShowVideoObj:{},
145 151
   minNum_imageList:1,
146 152
   maxNum_imageList:1,
153
+  max_creative_num:0
147 154
 })
148 155
 
149 156
 interface radioFace{
@@ -232,6 +239,13 @@ const deleItemUrlEvent = (item: any,type:string,subId:number) => {
232 239
 //添加创意组
233 240
 const addItemEvent = () => {
234 241
   let arr:any = pageInfo.creativeTeamList
242
+  if(props.max_creative_num){
243
+    if(arr?.length >= props.max_creative_num){
244
+      ElMessage.error('创意组内素材数上限为:' + props.max_creative_num )
245
+      return
246
+    }
247
+  }
248
+
235 249
   let _id:number = arr[arr.length-1].id
236 250
   arr.push({
237 251
     id:_id+1,
@@ -253,6 +267,12 @@ const deleItemEvent = (item:any) => {
253 267
 //复制创意组
254 268
 const copyItemEvent = async (item:any) => {
255 269
   let arr:any = pageInfo.creativeTeamList
270
+  if(props.max_creative_num){
271
+    if(arr?.length >= props.max_creative_num){
272
+      ElMessage.error('创意组内素材数上限为:' + props.max_creative_num )
273
+      return
274
+    }
275
+  }
256 276
   let idx:number = arr.findIndex(n=>n.id== item.id)
257 277
   let _id:number = arr[arr.length-1].id
258 278
   let obj:any = _.cloneDeep(arr[idx])
@@ -296,10 +316,23 @@ const clearEvent = () => {
296 316
 }
297 317
 
298 318
 //一件测新
299
-const TestNewDialogRef = ref<{switchShow:(val:boolean)=>void}>()
319
+const TestNewDialogRef = ref<{switchShow:(val:boolean,creativeNum:any)=>void}>()
300 320
 const openTestNew = () => {
301 321
   nextTick(()=>{
302
-    TestNewDialogRef.value!.switchShow(true)
322
+    let arr:any = pageInfo.creativeTeamList
323
+    let satisfyLen:number = 0 // 创意组列表中 满足条件的个数
324
+    arr.forEach(async (item,idx)=>{
325
+      if(update_haveCoverOrVideoFlag2(item.list)){ //还有空白格
326
+      }else{
327
+        satisfyLen += 1
328
+      }
329
+    })
330
+    let newMaxLen:any = props.max_creative_num - satisfyLen // 最大创意组个数 - 满足的 = 还可以上传的创意组个数
331
+    if(newMaxLen <= 0){
332
+      ElMessage.error('所选素材已达上线,请删除素材后再来操作')
333
+      return
334
+    }
335
+    TestNewDialogRef.value!.switchShow(true,newMaxLen)
303 336
   })
304 337
 }
305 338
 

+ 9 - 1
src/components/businessMoudle/batchGdt/configArea/creativeMaterial/testNew.vue

@@ -80,6 +80,7 @@ const pageInfo = reactive<reactiveTableAndAny>({
80 80
   materialList:[],
81 81
   up_record_id:-1,
82 82
   requestNum:0,
83
+  creativeNum:0,
83 84
 })
84 85
 
85 86
 const CataRef = ref<{value:string,idVal:number,initAllAlbum:()=>void}>()
@@ -127,10 +128,11 @@ const cateRadioList = reactive<radioFace>({
127 128
 
128 129
 
129 130
 // 切换显隐
130
-const switchShow = (val:boolean)=>{
131
+const switchShow = (val:boolean,creativeNum:any)=>{
131 132
   dialogShow.value = val
132 133
   if(val){
133 134
     nextTick(()=>{
135
+      pageInfo.creativeNum = creativeNum
134 136
       formatRadioList.list[0].name = props.propInfo.text || '竖版视频9:16'
135 137
       clearTimeout(requestObj.timer_get_upload_res)
136 138
       CataRef.value!.initAllAlbum()
@@ -195,6 +197,12 @@ const confirmEvent = async () => {
195 197
   //将这些素材id走API.creative_upload接口得到up_record_id
196 198
   //将up_record_id轮询API.creative_upload_getRes接口得到是否上传完成
197 199
   //上传完成 - 将完成的列表push进index.vue的pageInfo.creativeTeamList
200
+
201
+  if(Number(numRadioList.value) > pageInfo.creativeNum){
202
+    ElMessage.error('创意组数量最大为:' + pageInfo.creativeNum)
203
+    return
204
+  }
205
+
198 206
   clearTimeout(requestObj.timer_get_upload_res)
199 207
   await getmaterialList()
200 208
   let ids:any = []

+ 17 - 13
src/components/businessMoudle/batchGdt/configArea/index.vue

@@ -4,7 +4,6 @@
4 4
   </div>
5 5
   <div class="areaBox">
6 6
     <div class="areaTitle">配置区
7
-<!--      {{cMaterial.list}}-->
8 7
       <span class="smallTitle lMarauto">预览广告数 : <span class="c-theme">{{NumberHandle(pageInfo.num_total.adNum)||0}}</span></span>
9 8
     </div>
10 9
     <div class="areaCon">
@@ -72,18 +71,22 @@
72 71
                   </template>
73 72
                 </div>
74 73
                 <template v-if="sub.name == '创意素材'">
75
-                  <div class="flex bMar8" v-for="cItem in cMaterial.list" :key="cItem.id">
76
-                    <template v-for="cSub in cItem.list" :key="cSub.itemId">
77
-<!--                      <div class="flex" style="width: 100%;justify-content: center" v-if="cMaterial.haveCoverOrVideo == 2 || cMaterial.haveCoverOrVideo == 1">-->
78
-                      <div class="flex" style="width: 100%;justify-content: center" v-if="cSub.videoUrl">
79
-                        <video :src="cSub.videoUrl" height="50"></video>
80
-                      </div>
81
-<!--                      <div style="width: 100%;justify-content: center" class="lMar10 flex" v-if="cMaterial.haveCoverOrVideo == 3 || cMaterial.haveCoverOrVideo == 1">-->
82
-                      <div style="width: 100%;justify-content: center" class="lMar10 flex" v-if="cSub.picUrl">
83
-                        <img :src="cSub.picUrl" height="50"/>
84
-                      </div>
85
-                    </template>
86
-                  </div>
74
+                  <template  v-for="cItem in cMaterial.list" :key="cItem.id">
75
+                    <div class="flex bMar8">
76
+                      <template v-for="cSub in cItem.list" :key="cSub.itemId">
77
+                        <!--                      <div class="flex" style="width: 100%;justify-content: center" v-if="cMaterial.haveCoverOrVideo == 2 || cMaterial.haveCoverOrVideo == 1">-->
78
+                        {{cSub.videoUrl}}
79
+                        <div class="flex" style="width: 100%;justify-content: center" v-if="cSub.videoUrl">
80
+                          <video :src="cSub.videoUrl" height="50"></video>
81
+                        </div>
82
+                        <!--                      <div style="width: 100%;justify-content: center" class="lMar10 flex" v-if="cMaterial.haveCoverOrVideo == 3 || cMaterial.haveCoverOrVideo == 1">-->
83
+                        {{cSub.picUrl}}
84
+                        <div style="width: 100%;justify-content: center" class="lMar10 flex" v-if="cSub.picUrl">
85
+                          <img :src="cSub.picUrl" height="50"/>
86
+                        </div>
87
+                      </template>
88
+                    </div>
89
+                  </template>
87 90
                 </template>
88 91
               </div>
89 92
               <div class="btn" @click="openDialogEvent(sub)">{{sub.haveContent ? '编辑' : '添加'}}</div>
@@ -119,6 +122,7 @@
119 122
                     :video_tips="cMaterial.video_tips"
120 123
                     :image_tips="cMaterial.image_tips"
121 124
                     @closeLoading="close_reuse_loading"
125
+                    :max_creative_num="pageInfo.RuleConfigObj?.adcreative_max || 0"
122 126
                     :maxNum_imageList="cMaterial.array_property?.max_number || 1"
123 127
                     @assignEvent="assignEvent_CreativeMaterial"></CreativeMaterial>
124 128
 

+ 4 - 4
src/components/businessMoudle/gdtList/detial/creativeInfo.vue

@@ -7,12 +7,12 @@
7 7
         <div v-for="sub in item.list" class="tMar13">
8 8
           <div class="flex">
9 9
             <span class="smallTitle">{{sub.title}}</span>
10
-            <div v-if="item.title == '创意素材'">
10
+            <div v-if="item.title == '创意素材'" class="flex">
11 11
               <template v-if="sub.value.video_url || sub.value.image_url || sub.value?.image_url_list?.length>0">
12
-                <video :src="sub.value.video_url" controls v-if="sub.value.video_url" style="width: 176px" class="rMar10"></video>
13
-                <img :src="sub.value.image_url" alt="" v-if="sub.value.image_url" style="width: 176px" class="rMar10"/>
12
+                <video :src="sub.value.video_url" controls v-if="sub.value.video_url" style="width: 176px;height: 200px" class="rMar10"></video>
13
+                <img :src="sub.value.image_url" alt="" v-if="sub.value.image_url" style="width: 100px" class="rMar10"/>
14 14
                 <template v-if="sub.value?.image_url_list?.length>0">
15
-                  <img  v-for="im in sub.value.image_url_list" :src="im" alt="" style="width: 176px" class="rMar10"/>
15
+                  <img  v-for="im in sub.value.image_url_list" :src="im" alt="" style="width: 100px" class="rMar10"/>
16 16
                 </template>
17 17
               </template>
18 18
               <template v-else>-</template>