liuxiaona 1 年間 前
コミット
45771512a9
共有42 個のファイルを変更した142 個の追加85 個の削除を含む
  1. 1 1
      dist/assets/index.33c0993e.js
  2. 1 1
      dist/assets/index.b0bfba57.css
  3. 1 1
      dist/assets/weekTime.07e6f724.css
  4. 1 1
      dist/index.html
  5. 1 1
      dist/js/_dialog/_dialog.276d775e.js
  6. 1 1
      dist/js/_input/_input.43f96fb6.js
  7. 1 1
      dist/js/_select/_select.0e5e0049.js
  8. 1 1
      dist/js/adTask/index.65d00428.js
  9. 1 1
      dist/js/api/api.66cb4039.js
  10. 1 1
      dist/js/basisMoudle/accountManage.bb4bf56b.js
  11. 1 1
      dist/js/basisMoudle/error.f941328b.js
  12. 1 1
      dist/js/basisMoudle/home.2a6d6088.js
  13. 1 1
      dist/js/basisMoudle/login.2e631738.js
  14. 1 1
      dist/js/businessMoudle/adqManage.9fe23d51.js
  15. 1 1
      dist/js/collectClip/index.c7f10b06.js
  16. 0 1
      dist/js/configArea/index.320a9191.js
  17. 1 0
      dist/js/configArea/index.f3f1b006.js
  18. 1 1
      dist/js/gdtList/index.a091cabe.js
  19. 1 1
      dist/js/index/index.c217a279.js
  20. 1 1
      dist/js/index/index.52e21fdf.js
  21. 1 1
      dist/js/layout/index.d8d2e8bb.js
  22. 1 1
      dist/js/layout/index_head.a4085d95.js
  23. 1 1
      dist/js/materialBlock/materialBlock.168838e8.js
  24. 1 1
      dist/js/materialLibrary/index.76958a3a.js
  25. 1 1
      dist/js/menuPermission/menuList.83c9492a.js
  26. 1 1
      dist/js/miniprogram/index.6ad80863.js
  27. 1 1
      dist/js/noData/noData.e6b9577c.js
  28. 1 1
      dist/js/tableInfo/tableInfo.6a5d306d.js
  29. 1 1
      dist/js/taskList/index.6f022e86.js
  30. 1 1
      dist/js/timeScreen/timeScreen.54e76d92.js
  31. 1 1
      dist/js/weekTime/weekTime.67890e93.js
  32. 6 2
      src/components/businessMoudle/batchGdt/configArea/basicInfo/components/radio.vue
  33. 3 0
      src/components/businessMoudle/batchGdt/configArea/basicInfo/ts/fillBack.ts
  34. 1 1
      src/components/businessMoudle/batchGdt/configArea/creativeMaterial/index.vue
  35. 2 2
      src/components/businessMoudle/batchGdt/configArea/creativeMaterial/libraryDialog.vue
  36. 2 3
      src/components/businessMoudle/batchGdt/configArea/index.vue
  37. 0 1
      src/components/businessMoudle/batchGdt/configArea/ts/adBasic.ts
  38. 10 0
      src/components/businessMoudle/batchGdt/configArea/ts/judgeEvent.ts
  39. 28 31
      src/components/businessMoudle/batchGdt/previewArea/index.vue
  40. 37 3
      src/components/businessMoudle/gdtList/advert.vue
  41. 16 6
      src/components/businessMoudle/gdtList/plan.vue
  42. 7 6
      src/components/businessMoudle/gdtList/ts/list.ts

File diff suppressed because it is too large
+ 1 - 1
dist/assets/index.33c0993e.js


File diff suppressed because it is too large
+ 1 - 1
dist/assets/index.b0bfba57.css


File diff suppressed because it is too large
+ 1 - 1
dist/assets/weekTime.07e6f724.css


+ 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.33c0993e.js"></script>
9
+    <script type="module" crossorigin src="./assets/index.41a8efcb.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">

File diff suppressed because it is too large
+ 1 - 1
dist/js/_dialog/_dialog.276d775e.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/_input/_input.43f96fb6.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/_select/_select.0e5e0049.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/adTask/index.65d00428.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/api/api.66cb4039.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/basisMoudle/accountManage.bb4bf56b.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/basisMoudle/error.f941328b.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/basisMoudle/home.2a6d6088.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/basisMoudle/login.2e631738.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/businessMoudle/adqManage.9fe23d51.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/collectClip/index.c7f10b06.js


File diff suppressed because it is too large
+ 0 - 1
dist/js/configArea/index.320a9191.js


File diff suppressed because it is too large
+ 1 - 0
dist/js/configArea/index.f3f1b006.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/gdtList/index.a091cabe.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/index/index.c217a279.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/index/index.52e21fdf.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/layout/index.d8d2e8bb.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/layout/index_head.a4085d95.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/materialBlock/materialBlock.168838e8.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/materialLibrary/index.76958a3a.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/menuPermission/menuList.83c9492a.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/miniprogram/index.6ad80863.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/noData/noData.e6b9577c.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/tableInfo/tableInfo.6a5d306d.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/taskList/index.6f022e86.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/timeScreen/timeScreen.54e76d92.js


File diff suppressed because it is too large
+ 1 - 1
dist/js/weekTime/weekTime.67890e93.js


+ 6 - 2
src/components/businessMoudle/batchGdt/configArea/basicInfo/components/radio.vue

@@ -125,8 +125,12 @@ interface IChange {
125 125
 }
126 126
 const onChange = ({ val, type, key }: IChange) => {
127 127
   if (!key) return;
128
-  if (key == 'wechat_position') return;//使用key: wechat_position_checkbox
129
-  if (key == 'wechat_position_checkbox') {
128
+  if (key == 'wechat_position') {//使用key: wechat_position_checkbox
129
+    emitData['wechat_position_self'] = val
130
+    if(val == 1) {
131
+      emitData['wechat_position'] = ''
132
+    }
133
+  }else if (key == 'wechat_position_checkbox' && emitData['wechat_position_self'] == 2) {
130 134
     emitData['wechat_position'] = val;
131 135
   }else{
132 136
     emitData[key] = val;

+ 3 - 0
src/components/businessMoudle/batchGdt/configArea/basicInfo/ts/fillBack.ts

@@ -121,6 +121,8 @@ export const FillBackData = ({ data, type, updateScene = {}, cb }: IFillBackData
121 121
       }) || []
122 122
     }
123 123
     time_series_writ = time_series_writ.filter((v) => { return v.length > 0 })
124
+    console.log(data)
125
+    // return
124 126
     if (type == 'me') {
125 127
       params = {
126 128
         'promoted_object_type': 'PROMOTED_OBJECT_TYPE_LEAD_AD',
@@ -304,6 +306,7 @@ export const FillBackData = ({ data, type, updateScene = {}, cb }: IFillBackData
304 306
           params[i] = String(params[i])
305 307
         }
306 308
       }
309
+      params.begin_date = getDay(2)
307 310
     }
308 311
 
309 312
     //对应展示文案

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

@@ -158,7 +158,7 @@ interface radioFace{
158 158
   value:number | string,
159 159
   name:string,
160 160
   EgName:string,
161
-  radioVal:string,
161
+  radioVal:any,
162 162
   haveNotes:boolean,
163 163
   list:any
164 164
 }

+ 2 - 2
src/components/businessMoudle/batchGdt/configArea/creativeMaterial/libraryDialog.vue

@@ -24,7 +24,7 @@
24 24
         <div class="c-theme lMarauto f13 pointer" @click="goMaterialLibrary">管理素材</div>
25 25
       </div>
26 26
     </template>
27
-    <div class="library_body">
27
+    <div class="library_body" :key="updateKey">
28 28
       <template v-if="typeAc == 'sucai'">
29 29
         <!--      搜索框-->
30 30
         <div class="flexWrap searchBox">
@@ -156,7 +156,7 @@
156 156
       </div>
157 157
     </div>
158 158
     <template #footer>
159
-      <div class="dialog-footer">
159
+      <div class="dialog-footer" :key="updateKey">
160 160
         <div class="flex">
161 161
           <span>已选素材: {{pageInfo?.chooseList_Item?.length || 0}} / {{ max_num ? max_num : (total || 0)}}</span>
162 162
           <Tooltip :contentSlotFalg="true" colorCss="c-d3">

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

@@ -108,7 +108,7 @@
108 108
     </div>
109 109
   </div>
110 110
   <!--  预览区-->
111
-  <PreviewArea :infoObj="previewObj"></PreviewArea>
111
+  <PreviewArea :infoObj="_.cloneDeep(previewObj)"></PreviewArea>
112 112
 
113 113
   <!--规则配置-->
114 114
   <RuleConfig ref="RuleConfigRef" @ExposeEvent="val=>pageInfo.RuleConfigObj = val"></RuleConfig>
@@ -444,7 +444,6 @@ const DirectPacketExhibitionRef = ref<{get_echoAcId:()=>void,
444 444
 // 打开添加 / 编辑
445 445
 const openDialogEvent = async (sub:any) => {
446 446
   if( !judgeEvent( sub.id ) ) return; // 判断是否完成前一模块
447
-  console.log('编辑',sub)
448 447
   if(sub.name == '定向包'){
449 448
     nextTick(()=>{
450 449
       if(DirectPacketExhibitionRef.value) { DirectPacketExhibitionRef.value[0]?.showDirectPacket() }
@@ -454,7 +453,6 @@ const openDialogEvent = async (sub:any) => {
454 453
     })
455 454
   }
456 455
   if(sub.name == '广告基本信息'){
457
-    console.log('广告基本信息')
458 456
     basicInfoData.visible = true;
459 457
   }
460 458
   if(sub.name == '创意基本信息'){
@@ -470,6 +468,7 @@ const openDialogEvent = async (sub:any) => {
470 468
 
471 469
   if(sub.name == '创意素材'){
472 470
     await get_cover_info()
471
+    console.log('cMaterial', cMaterial)
473 472
     console.log('打开之前CreativeMaterialRef',cMaterial.list);
474 473
     CreativeMaterialRef.value?.switchShow(true,sub.haveContent,cMaterial.list,cMaterial.testNew_text)
475 474
     console.log(cMaterial.array_property);

+ 0 - 1
src/components/businessMoudle/batchGdt/configArea/ts/adBasic.ts

@@ -106,7 +106,6 @@ export function handleAdBasic({
106 106
         }
107 107
         updateHaveContent(8, 0, false, true)
108 108
       }
109
-console.log(obj)
110 109
       basicInfoData.copywriting = obj.copywriting
111 110
       basicInfoData.fillBack = obj.params
112 111
       getButtonBasicOuter(obj.params)

+ 10 - 0
src/components/businessMoudle/batchGdt/configArea/ts/judgeEvent.ts

@@ -87,6 +87,16 @@ function handleJudge({
87 87
         !msgFlag && ElMessage.error('开始投放日期必须大于今日!')
88 88
         return false
89 89
       }
90
+      if (basicInfoData.fillBack.date_model == '2') {
91
+        if((basicInfoData.fillBack.end_date == '' || !basicInfoData.fillBack.end_date)){
92
+          !msgFlag && ElMessage.error('请选择投放结束日期')
93
+          return false
94
+        }
95
+        if(new Date(basicInfoData.fillBack.begin_date).getTime() > new Date(basicInfoData.fillBack.end_date).getTime()) {
96
+          !msgFlag && ElMessage.error('结束投放日期应不小于开始投放日期!')
97
+          return false
98
+        }
99
+      }
90 100
       if (basicInfoData.fillBack.first_day_begin_time && basicInfoData.fillBack.first_day_begin_time != '') {
91 101
         let daysOfWeek = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
92 102
         let time_series = _.cloneDeep(basicInfoData.fillBack.time_series)?.split(',')

+ 28 - 31
src/components/businessMoudle/batchGdt/previewArea/index.vue

@@ -1,5 +1,5 @@
1 1
 <template>
2
-  <div class="areaBox">
2
+  <div class="areaBox" :key="`previewAreaTable_${updateKey}`">
3 3
     <div class="empty-block"
4 4
       v-if="!infoObj || !infoObj.campaign_list || !pageInfo.campaign_list || pageInfo.campaign_list.length == 0">
5 5
       <h3 class="empty-title">预览区</h3>
@@ -29,10 +29,9 @@
29 29
             <!--          <Dropdown title="批量操作" lMar="10px" :list="pageInfo.moreList" @close="dropdownEvent" :disabledFlag="pageInfo.chooseList&&pageInfo.chooseList.length == 0"></Dropdown>-->
30 30
           </div>
31 31
         </div>
32
-        <el-table :data="pageInfo.tableList" :header-cell-style="tableHeaderStyle" :key="`previewAreaTable_${updateKey}`"
32
+        <el-table :data="pageInfo.tableList" :header-cell-style="tableHeaderStyle"
33 33
           style="width: 100%;" border empty-text="暂无数据" :row-key="rowKeyStr" @selection-change="selectionChangeEvent"
34 34
           :span-method="objectSpanMethod" max-height="calc(100vh - 240px)">
35
-          <!-- <el-table-column fixed reserve-selection type="selection" width="60" align="center"/> -->
36 35
           <template v-for="bigItem in pageInfo.descol">
37 36
             <el-table-column :label="bigItem.name">
38 37
               <template v-for="item in bigItem.list">
@@ -47,44 +46,44 @@
47 46
                   <template #default="scope">
48 47
                     <div class="cellDiv" v-if="item.column == 'a1'">
49 48
                       <div class="clampOne tMar10 flex">名称:
50
-                        <el-tooltip placement="top" :content="scope.row.main_info.campaign_name"
51
-                          :disabled="scope.row.main_info.campaign_name ? false : true">
52
-                          <div class="ellipsis">{{ scope.row.main_info.campaign_name || '-' }}</div>
49
+                        <el-tooltip placement="top" :content="scope.row.main_info?.campaign_name"
50
+                          :disabled="scope.row.main_info?.campaign_name ? false : true">
51
+                          <div class="ellipsis">{{ scope.row.main_info?.campaign_name || '-' }}</div>
53 52
                         </el-tooltip>
54 53
                         <el-icon color="#3173FF" class="pointer"
55 54
                           @click="openSubDialogEvent(scope.row, 'campaign_name')"><i-ep-Edit /></el-icon>
56 55
                       </div>
57 56
                       <div class="clampOne">推广目标: {{ pageInfo?.target?.desc || '-' }} </div>
58
-                      <div class="clampOne flex">推广计划日预算:{{ scope.row.main_info.daily_budget == '' ||
59
-                        scope.row.main_info.daily_budget <= 0 ? '不限' : scope.row.main_info.daily_budget + '元' }} <el-icon
57
+                      <div class="clampOne flex">推广计划日预算:{{ scope.row.main_info?.daily_budget == '' ||
58
+                        scope.row.main_info?.daily_budget <= 0 ? '不限' : scope.row.main_info?.daily_budget + '元' }} <el-icon
60 59
                           color="#3173FF" class="pointer" @click="openSubDialogEvent(scope.row, 'PromotePlanBudget_day')">
61 60
                           <i-ep-Edit /></el-icon>
62 61
                       </div>
63
-                      <div class="clampOne flex">推广计划总预算:{{ scope.row.main_info.total_budget == '' ||
64
-                        scope.row.main_info.total_budget <= 0 ? '不限' : scope.row.main_info.total_budget }} <el-icon
62
+                      <div class="clampOne flex">推广计划总预算:{{ scope.row.main_info?.total_budget == '' ||
63
+                        scope.row.main_info?.total_budget <= 0 ? '不限' : scope.row.main_info?.total_budget }} <el-icon
65 64
                           color="#3173FF" class="pointer"
66 65
                           @click="openSubDialogEvent(scope.row, 'PromotePlanBudget_total')"><i-ep-Edit /></el-icon>
67 66
                       </div>
68
-                      <div class="clampOne">投放方式:{{ scope.row.main_info.speed_mode == 'SPEED_MODE_FAST' ? '加速投放' :
69
-                        scope.row.main_info.speed_mode == 'SPEED_MODE_STANDARD' ? '标准投放' : '-' }} </div>
67
+                      <div class="clampOne">投放方式:{{ scope.row.main_info?.speed_mode == 'SPEED_MODE_FAST' ? '加速投放' :
68
+                        scope.row.main_info?.speed_mode == 'SPEED_MODE_STANDARD' ? '标准投放' : '-' }} </div>
70 69
                     </div>
71 70
                     <div class="cellDiv flex" v-else-if="item.column == 'ad_name'">
72
-                      <el-tooltip placement="top" :content="scope.row.ad_name"
73
-                        :disabled="scope.row.ad_name ? false : true">
74
-                        <div class="ellipsis">{{ scope.row.ad_name || '-' }}</div>
71
+                      <el-tooltip placement="top" :content="scope.row?.ad_name"
72
+                        :disabled="scope.row?.ad_name ? false : true">
73
+                        <div class="ellipsis">{{ scope.row?.ad_name || '-' }}</div>
75 74
                       </el-tooltip>
76 75
                       <el-icon color="#3173FF" class="pointer"
77 76
                         @click="openSubDialogEvent(scope.row, 'ad_name')"><i-ep-Edit /></el-icon>
78 77
                     </div>
79 78
                     <div class="cellDiv flex" v-else-if="item.column == 'bid_amount'">
80
-                      <span>{{ scope.row.bid_amount || 0 }}元/{{ scope.row.optimization_goal_name || '千次曝光' }}</span>
79
+                      <span>{{ scope.row?.bid_amount || 0 }}元/{{ scope.row?.optimization_goal_name || '千次曝光' }}</span>
81 80
                       <el-icon color="#3173FF" class="pointer"
82 81
                         @click="openSubDialogEvent(scope.row, 'bid_amount')"><i-ep-Edit /></el-icon>
83 82
                     </div>
84 83
                     <div class="cellDiv flex" v-else-if="item.column == 'adcreative_name'">
85
-                      <el-tooltip placement="top" :content="scope.row.adcreatives_info.adcreative_name"
86
-                        :disabled="scope.row.adcreatives_info.adcreative_name ? false : true">
87
-                        <div class="ellipsis">{{ scope.row.adcreatives_info.adcreative_name || '-' }}</div>
84
+                      <el-tooltip placement="top" :content="scope.row?.adcreatives_info?.adcreative_name"
85
+                        :disabled="scope.row?.adcreatives_info?.adcreative_name ? false : true">
86
+                        <div class="ellipsis">{{ scope.row?.adcreatives_info?.adcreative_name || '-' }}</div>
88 87
                       </el-tooltip>
89 88
                     </div>
90 89
                     <div class="cellDiv flex" v-else-if="item.column == 'a5'">
@@ -92,19 +91,19 @@
92 91
                     </div>
93 92
                     <div class="cellDiv pointer" style="color:#3173FF;" v-else-if="item.column == 'a7'"
94 93
                       @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>
94
+                      <span>{{scope.row?.adcreatives_info?.adcreative_elements?.self_image_count != 'self_image_count' ? scope.row?.adcreatives_info?.adcreative_elements?.self_image_count : 0}}张图片,</span>
95
+                      <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 96
                     </div>
98 97
                     <div class="cellDiv" v-else-if="item.column == 'description'">
99 98
                       <el-tooltip placement="top"
100
-                        :content="scope.row?.adcreatives_info.adcreative_elements.description"
101
-                        :disabled="scope.row?.adcreatives_info.adcreative_elements.description ? false : true">
102
-                        <span>文案:已选{{ (scope.row?.adcreatives_info.adcreative_elements.description && 1) ||
99
+                        :content="scope.row?.adcreatives_info?.adcreative_elements?.description"
100
+                        :disabled="scope.row?.adcreatives_info?.adcreative_elements?.description ? false : true">
101
+                        <span>文案:已选{{ (scope.row?.adcreatives_info?.adcreative_elements?.description && 1) ||
103 102
                           0 }}条文案</span>
104 103
                       </el-tooltip>
105 104
                     </div>
106 105
                     <div class="cellDiv flex" v-else-if="item.column == 'page_spec'">
107
-                      <span>{{ scope.row.adcreatives_info.page_spec.page_name || '-' }}</span>
106
+                      <span>{{ scope.row?.adcreatives_info?.page_spec?.page_name || '-' }}</span>
108 107
                     </div>
109 108
                     <div class="cellDiv" v-else-if="item.column == 'a10'">
110 109
                       <Popconfirm @confirm="deleTextEvent(scope.row, scope.$index)" />
@@ -113,10 +112,10 @@
113 112
                       {{ scope.row.a11 == 1 ? '已提交' : '待提交' }}
114 113
                     </div>
115 114
                     <div class="cellDiv" v-else-if="item.column == 'promoted_object_name'">
116
-                      {{ scope.row?.adcreatives_info.adcreative_elements.self_promoted_object_name || '暂未配置' }}
115
+                      {{ scope.row?.adcreatives_info?.adcreative_elements?.self_promoted_object_name || '暂未配置' }}
117 116
                     </div>
118 117
                     <div class="cellDiv" :style="{ justifyContent: item.alignSelf ? item.alignSelf : 'left' }" v-else>
119
-                      <el-tooltip :disabled="!(scope.row[item.column] && scope.row[item.column].length > 30)"
118
+                      <el-tooltip :disabled="!(scope.row[item.column] && scope.row[item.column]?.length > 30)"
120 119
                         effect="dark" :content="scope.row[item.column] + ''">
121 120
                         <div class="clampTwo line21" style="flex: 1">
122 121
                           {{ scope.row[item.column] || scope.row[item.column] == 0 ?
@@ -137,11 +136,9 @@
137 136
   <!--修改推广计划名称-->
138 137
   <EditPromotePlanName ref="EditPromotePlanNameRef" @confirm="val => echoVal(val, 'campaign_name')"></EditPromotePlanName>
139 138
   <!--推广计划日预算-->
140
-  <PromotePlanBudget_day ref="PromotePlanBudget_dayRef" @confirm="val => echoVal(val, 'PromotePlanBudget_day')">
141
-  </PromotePlanBudget_day>
139
+  <PromotePlanBudget_day ref="PromotePlanBudget_dayRef" @confirm="val => echoVal(val, 'PromotePlanBudget_day')"></PromotePlanBudget_day>
142 140
   <!--推广计划总预算-->
143
-  <PromotePlanBudget_total ref="PromotePlanBudget_totalRef" @confirm="val => echoVal(val, 'PromotePlanBudget_total')">
144
-  </PromotePlanBudget_total>
141
+  <PromotePlanBudget_total ref="PromotePlanBudget_totalRef" @confirm="val => echoVal(val, 'PromotePlanBudget_total')"></PromotePlanBudget_total>
145 142
   <!--修改广告名称-->
146 143
   <EditAdverteName ref="EditAdverteNameRef" @confirm="val => echoVal(val, 'ad_name')"></EditAdverteName>
147 144
   <!--修改出价-->

+ 37 - 3
src/components/businessMoudle/gdtList/advert.vue

@@ -99,12 +99,25 @@
99 99
                         <span v-else-if="scope.row[item.key_value] == 'SPEED_MODE_FAST'">加速投放</span>
100 100
                         <span v-else>-</span>
101 101
                       </div>
102
+
102 103
                       <div v-else-if="item.key_value == 'operate'">
103 104
                         <div class="flex">
104
-<!--                          <span class="c-theme pointer" @click="copyEvent(scope.row)">复制</span>-->
105
-                          <span class="c-theme pointer lMar10" @click="goDetial(scope.row)">详情</span>
105
+                          <span class="c-theme pointer" @click="goDetial(scope.row)">详情</span>
106
+                          <span class="lMar10"
107
+                                :class="scope.row.configured_status == 'AD_STATUS_NORMAL' ? 'pointer-drop c-green-opa' : 'pointer c-green'"
108
+                                @click="scope.row.configured_status == 'AD_STATUS_SUSPEND'&&batchPlanEvent(scope.row,1)">启用</span>
109
+                        </div>
110
+                        <div>
111
+                        <span :class="scope.row.configured_status == 'AD_STATUS_SUSPEND' ? 'pointer-drop c-red-opa' : 'pointer c-red'"
112
+                              @click="scope.row.configured_status == 'AD_STATUS_NORMAL'&&batchPlanEvent(scope.row,2)">禁用</span>
113
+                          <Popconfirm key="dele" @confirm="batchPlanEvent(scope.row,3)" :slotFlag="true">
114
+                            <template #con>
115
+                              <span class="pointer lMar10">删除</span>
116
+                            </template>
117
+                          </Popconfirm>
106 118
                         </div>
107 119
                       </div>
120
+
108 121
                       <div class="flex c-theme" v-else-if="item.key_value == 'daily_budget'">
109 122
                         {{scope.row[item.key_value] ? NumberHandle(scope.row[item.key_value]) : '不限'}}
110 123
                       </div>
@@ -176,6 +189,7 @@ import Indicators from './indicators/index.vue'
176 189
 import {commonlistTs} from "@/components/businessMoudle/ts/commonList";
177 190
 import {getCurrentTime} from "@/common/common";
178 191
 import _ from "lodash";
192
+import Popconfirm from '@/components/capsulationMoudle/_popconfirm.vue'
179 193
 
180 194
 
181 195
 const { proxy } = getCurrentInstance() as any;
@@ -225,6 +239,16 @@ const tableInfo = reactive<reactiveTableAndAny>({
225 239
   sortType:'',
226 240
 })
227 241
 
242
+const batchPlanEvent = async (row?:any,val?:any) => {
243
+  loading.value = true
244
+  let infos:any = []
245
+  infos.push({
246
+    account_id:row.account_id,
247
+    adgroup_id:row.adgroup_id
248
+  })
249
+  batchEventApi(infos,val)
250
+}
251
+
228 252
 const batchEventApi = async (infos?:any,flag?:any,flagVal?:any,callback?:any) => {
229 253
   const paramsModel = reactive<batchGdt_ads_edit>({
230 254
     infos:JSON.stringify(infos),
@@ -443,6 +467,17 @@ const singleChooseCheckboxEvent = (idx:number,row:any)=>{
443 467
   }
444 468
 }
445 469
 
470
+//清空
471
+const clearEvent = () => {
472
+  nextTick(()=>{
473
+    InputRef_text.value!.value = ''
474
+    acRef.value!.value = []
475
+    statusRef.value!.value = ''
476
+    timeRef.value!.dateVal = ''
477
+    init()
478
+  })
479
+}
480
+
446 481
 
447 482
 const {
448 483
   init_acList,
@@ -451,7 +486,6 @@ const {
451 486
   acRef,
452 487
   statusRef,
453 488
   InputRef_text,
454
-  clearEvent,
455 489
   tableHeaderStyle,
456 490
   init_ad_statusList
457 491
 } = listTs()

+ 16 - 6
src/components/businessMoudle/gdtList/plan.vue

@@ -117,7 +117,6 @@
117 117
                               <span class="pointer lMar10">删除</span>
118 118
                             </template>
119 119
                           </Popconfirm>
120
-
121 120
                         </div>
122 121
                       </div>
123 122
                       <div class="flex c-theme pointer" v-else-if="item.key_value == 'daily_budget'" @click="editPlanEvent(scope.row)">
@@ -235,7 +234,6 @@ const batchPlanEvent = async (row?:any,val?:any) => {
235 234
     campaign_id:row.campaign_id
236 235
   })
237 236
   batchPlanApi(arr,val)
238
-
239 237
 }
240 238
 const dropdownEvent = (val: string | number | object) => {
241 239
   loading.value = true
@@ -292,6 +290,12 @@ const init = async (page?:any,totalPages?:any) => {
292 290
     if(totalPages){
293 291
       tableInfo.tableList_all = res.rst.data.list
294 292
     }else{
293
+      tableInfo.total = res.rst.pageInfo.total
294
+      tableInfo.totalPages = res.rst.pageInfo.total
295
+      if(!res.rst.data){
296
+        tableInfo.tableList = []
297
+        return
298
+      }
295 299
       tableInfo.summary = res.rst.data.summary
296 300
       tableInfo.summary[0].campaign_name = '合计(缓存时间:' + getCurrentTime() + ')'
297 301
       tableInfo.descol = []
@@ -304,8 +308,6 @@ const init = async (page?:any,totalPages?:any) => {
304 308
       tableInfo.descol = res.rst.data.explain;
305 309
       tableInfo.descol.splice(1,0,{label:'操作',key_value:'operate',disabled:1,sub:[{label:'',key_value:'operate',disabled:1}]})
306 310
       tableInfo.tableList = res.rst.data.list
307
-      tableInfo.total = res.rst.pageInfo.total
308
-      tableInfo.totalPages = res.rst.pageInfo.total
309 311
     }
310 312
   }else{
311 313
     ElMessage.error(res.errMsg)
@@ -369,7 +371,16 @@ const singleChooseCheckboxEvent = (idx:number,row:any)=>{
369 371
     tableInfo.chooseAll = false
370 372
   }
371 373
 }
372
-
374
+//清空
375
+const clearEvent = () => {
376
+  nextTick(()=>{
377
+    InputRef_text.value!.value = ''
378
+    acRef.value!.value = []
379
+    statusRef.value!.value = ''
380
+    timeRef.value!.dateVal = ''
381
+    init()
382
+  })
383
+}
373 384
 
374 385
 const {
375 386
   init_acList,
@@ -378,7 +389,6 @@ const {
378 389
   acRef,
379 390
   statusRef,
380 391
   InputRef_text,
381
-  clearEvent,
382 392
   tableHeaderStyle,
383 393
   planEditIptRef,
384 394
   TargetEditRef,

+ 7 - 6
src/components/businessMoudle/gdtList/ts/list.ts

@@ -3,6 +3,7 @@ import {getCurrentInstance, nextTick, reactive, ref} from "vue";
3 3
 import {adqParam, reactiveTableAndAny} from "@/api/ApiModel";
4 4
 import {Api} from "@/api/api";
5 5
 import {ElMessage} from "element-plus";
6
+import http from "@/http/http";
6 7
 export function listTs(){
7 8
     const { proxy } = getCurrentInstance() as any;
8 9
 // 全局方法定义
@@ -66,12 +67,12 @@ export function listTs(){
66 67
 
67 68
 //清空
68 69
     const clearEvent = () => {
69
-      nextTick(()=>{
70
-          InputRef_text.value!.value = ''
71
-          acRef.value!.value = []
72
-          statusRef.value!.value = ''
73
-          timeRef.value!.dateVal = ''
74
-      })
70
+        nextTick(()=>{
71
+            InputRef_text.value!.value = ''
72
+            acRef.value!.value = []
73
+            statusRef.value!.value = ''
74
+            timeRef.value!.dateVal = ''
75
+        })
75 76
     }
76 77
 
77 78
     //打开自定义指标