Просмотр исходного кода

推广计划 & 广告 总计 、 自定义表头

liuxiaona 1 год назад
Родитель
Сommit
ae17269bfb

+ 7 - 1
src/common/common.ts

125
     return formatNum((num + '').indexOf('.') != -1 ? parseFloat(Number(num).toFixed(digit)) : num);
125
     return formatNum((num + '').indexOf('.') != -1 ? parseFloat(Number(num).toFixed(digit)) : num);
126
 }
126
 }
127
 
127
 
128
-
128
+export const getCurrentTime = ()=>{
129
+    var today = new Date();
130
+    var hours = today.getHours();
131
+    var minutes = today.getMinutes(); //分
132
+    var seconds = today.getSeconds(); //秒
133
+    return hours + ':' + fillZero(minutes) + ':' + fillZero(seconds)
134
+}
129
 
135
 
130
 export const getDay = (day:number, haveHours?:boolean)=>{
136
 export const getDay = (day:number, haveHours?:boolean)=>{
131
     //day为0表示今天的日期   -1为昨天   haveHours存在表示要时分秒 haveHours:true,false
137
     //day为0表示今天的日期   -1为昨天   haveHours存在表示要时分秒 haveHours:true,false

+ 161 - 155
src/components/businessMoudle/gdtList/advert.vue

21
       <el-button class="lMarauto" type="primary" @click="goNewPlanEvent">新建计划</el-button>
21
       <el-button class="lMarauto" type="primary" @click="goNewPlanEvent">新建计划</el-button>
22
     </div>
22
     </div>
23
 
23
 
24
-    <div>
24
+    <div  v-loading="loading">
25
       <div class="bMar10 flex">
25
       <div class="bMar10 flex">
26
-  <!--
27
         <Dropdown title="批量操作" :list="tableInfo.moreList" @close="dropdownEvent" class="rMar10"
26
         <Dropdown title="批量操作" :list="tableInfo.moreList" @close="dropdownEvent" class="rMar10"
28
                   :disabledFlag="tableInfo.multipleSelection&&tableInfo.multipleSelection.length == 0"></Dropdown>
27
                   :disabledFlag="tableInfo.multipleSelection&&tableInfo.multipleSelection.length == 0"></Dropdown>
29
-      -->
30
-
31
         <div>已选 : <span>{{tableInfo.multipleSelection&&tableInfo.multipleSelection.length}}</span></div>
28
         <div>已选 : <span>{{tableInfo.multipleSelection&&tableInfo.multipleSelection.length}}</span></div>
32
         <div  class="lMarauto">
29
         <div  class="lMarauto">
33
-          <Indicators type="campaign_base" @refresh="IndicatorsRefreshList"></Indicators>
30
+          <Indicators type="campaign_base" @refresh="init"></Indicators>
34
         </div>
31
         </div>
35
       </div>
32
       </div>
36
 
33
 
37
-      <el-table v-loading="loading" ref="tableRef" :data="tableInfo.tableList"
38
-                :header-cell-style="tableHeaderStyle"
39
-                :key="tableInfo.updateKey" style="width: 100%"
40
-                border empty-text="暂无数据"
41
-                row-key="adgroup_id"
42
-                max-height="calc(100vh - 294px)">
43
-        <el-table-column fixed width="80" >
44
-          <template #header>
45
-            <div class="flex">
46
-              <el-checkbox v-model="tableInfo.chooseAll" @change="allChooseCheckboxEvent"></el-checkbox>
47
-              <el-dropdown class="lMar10" @command="handleCommandChoosePage">
48
-                <el-icon color="#3173FF"><i-ep-ArrowDownBold /></el-icon>
49
-                <template #dropdown>
50
-                  <el-dropdown-menu>
51
-                    <el-dropdown-item command="1">当前页</el-dropdown-item>
52
-                    <el-dropdown-item command="2">全部</el-dropdown-item>
53
-                  </el-dropdown-menu>
54
-                </template>
55
-              </el-dropdown>
56
-            </div>
57
-          </template>
58
-          <template #default="scope">
59
-            <div class="checkBoxSelf flex"
60
-                 @click="singleChooseCheckboxEvent(tableInfo.multipleSelection.findIndex(n=>n.adgroup_id == scope.row.adgroup_id),scope.row)"
61
-                 :class="tableInfo.multipleSelection.findIndex(n=>n.adgroup_id == scope.row.adgroup_id)>=0 ? 'active' : ''">
62
-              <el-icon color="#fff" v-if="tableInfo.multipleSelection.findIndex(n=>n.adgroup_id == scope.row.adgroup_id)>=0"><i-ep-Check /></el-icon>
63
-            </div>
64
-          </template>
65
-        </el-table-column>
66
-        <template v-for="item in tableInfo.descol">
67
-          <el-table-column :fixed="item.isfixed" :min-width="item.minWidth ? item.minWidth : '80px'">
34
+      <div class="noDataBcg" v-if="Number(tableInfo.total) == 0">
35
+        <noData></noData>
36
+      </div>
37
+      <template v-else>
38
+        <el-table ref="tableRef" :data="tableInfo.tableList"
39
+                  :header-cell-style="tableHeaderStyle"
40
+                  :key="tableInfo.updateKey" style="width: 100%"
41
+                  border empty-text="暂无数据"
42
+                  row-key="adgroup_id"
43
+                  max-height="calc(100vh - 294px)">
44
+          <el-table-column fixed width="80" >
68
             <template #header>
45
             <template #header>
69
-              <div class="flex"
70
-                   :style="{ justifyContent: item.alignSelf ? item.alignSelf : 'center' }"
71
-                   :class="[tableInfo.sortKey == item.column ? 'active_css' : '',item.isSort ? 'pointer' : '']"
72
-                   @click="item.isSort&&sortEvent(item.column)">
73
-                {{ item.name }}
74
-                <el-tooltip v-if="item.notes" effect="dark" :content="item.notes"><i-ep-QuestionFilled class="lMar5 c-999 f14 pointer" /></el-tooltip>
75
-                <div v-if="item.isSort">
76
-                  <div class="sortItem"><el-icon :color="tableInfo.sortKey == item.column ? '#3173FF' : ''"><i-ep-CaretBottom /></el-icon></div>
77
-                </div>
46
+              <div class="flex">
47
+                <el-checkbox v-model="tableInfo.chooseAll" @change="allChooseCheckboxEvent"></el-checkbox>
48
+                <el-dropdown class="lMar10" @command="handleCommandChoosePage">
49
+                  <el-icon color="#3173FF"><i-ep-ArrowDownBold /></el-icon>
50
+                  <template #dropdown>
51
+                    <el-dropdown-menu>
52
+                      <el-dropdown-item command="1">当前页</el-dropdown-item>
53
+                      <el-dropdown-item command="2">全部</el-dropdown-item>
54
+                    </el-dropdown-menu>
55
+                  </template>
56
+                </el-dropdown>
78
               </div>
57
               </div>
79
             </template>
58
             </template>
80
             <template #default="scope">
59
             <template #default="scope">
81
-              <div class="flex" :style="{ justifyContent: item.alignSelf ? item.alignSelf : 'center' }">
82
-
83
-                <div v-if="item.column == 'campaign_name'">
84
-                <span class="c-theme flex campaignName">
85
-                  <span class="pointer">{{scope.row[item.column]}}</span>
86
-                  <el-icon color="#3173FF" class="pointer lMarauto f16 icon" @click="edit_campaign_name_event(scope.row)"><i-ep-Edit /></el-icon>
87
-                </span>
88
-                </div>
89
-                <div v-else-if="item.column == 'configured_status'">
90
-                  <span class="c-green" v-if="scope.row[item.column] == 'AD_STATUS_NORMAL'">正常</span>
91
-                  <span class="c-red" v-else-if="scope.row[item.column] == 'AD_STATUS_SUSPEND'">暂停</span>
92
-                  <span v-else>-</span>
93
-                </div>
94
-                <div v-else-if="item.column == 'speed_mode'">
95
-                  <span v-if="scope.row[item.column] == 'SPEED_MODE_STANDARD'">标准投</span>
96
-                  <span v-else-if="scope.row[item.column] == 'SPEED_MODE_FAST'">加速投放</span>
97
-                  <span v-else>-</span>
98
-                </div>
99
-                <div v-else-if="item.column == 'operate'">
100
-                  <div class="flex">
101
-                    <span class="c-theme pointer" @click="copyEvent(scope.row)">复制</span>
102
-                    <span class="c-theme pointer lMar10" @click="goDetial(scope.row)">详情</span>
103
-                  </div>
104
-                </div>
105
-                <div class="flex c-theme pointer" v-else-if="item.column == 'daily_budget'" @click="editPlanEvent(scope.row)">
106
-                  {{scope.row[item.column] ? NumberHandle(scope.row[item.column]) : '不限'}}
107
-                </div>
108
-                <div class="flex c-theme pointer" v-else-if="item.column == 'site_set'">
109
-                  {{scope.row[item.column]}}
110
-<!--                  {{siteIdtoText(scope.row[item.column])}}-->
111
-                </div>
112
-
113
-
114
-                <div class="cellDiv" :class="tableInfo.sortKey == item.column ? 'active_css' : ''" v-else>
115
-                  <el-tooltip :disabled="!(scope.row[item.column] && scope.row[item.column].length >30)" effect="dark" :content="scope.row[item.column]+''">
116
-                    <div class="clampTwo line21" style="flex: 1">
117
-                      {{ scope.row[item.column] || scope.row[item.column]==0 ?
118
-                        (item.cancleForMat ? (scope.row[item.column] ? scope.row[item.column] : '-') : NumberHandle(scope.row[item.column])) : '-'}}
119
-                      <span v-if="item.hasPercent&&(scope.row[item.column] || scope.row[item.column] ==0)">%</span>
120
-                    </div>
121
-                  </el-tooltip>
122
-                </div>
60
+              <div class="checkBoxSelf flex"
61
+                   @click="singleChooseCheckboxEvent(tableInfo.multipleSelection.findIndex(n=>n.adgroup_id == scope.row.adgroup_id),scope.row)"
62
+                   :class="tableInfo.multipleSelection.findIndex(n=>n.adgroup_id == scope.row.adgroup_id)>=0 ? 'active' : ''">
63
+                <el-icon color="#fff" v-if="tableInfo.multipleSelection.findIndex(n=>n.adgroup_id == scope.row.adgroup_id)>=0"><i-ep-Check /></el-icon>
123
               </div>
64
               </div>
124
             </template>
65
             </template>
125
           </el-table-column>
66
           </el-table-column>
126
-        </template>
127
-      </el-table>
128
-
129
-      <div class="paginationBox flex" style="justify-content: center" v-if="Number(tableInfo.total) > 0">
130
-        <el-pagination
131
-            v-model:currentPage="tableInfo.currentPage"
132
-            v-model:page-size="tableInfo.pageSize"
133
-            background
134
-            :total="tableInfo.total"
135
-            @current-change="handleCurrentChange" />
136
-      </div>
67
+          <template v-for="bigItem in tableInfo.descol">
68
+            <el-table-column>
69
+              <template #header>
70
+                <div class="flex" style="justify-content:center"
71
+                     :class="[tableInfo.sortKey == bigItem.key_value ? 'active_css' : '']">
72
+                  <span :style="{color:tableInfo.sortKey == bigItem.key_value ? '#3173FF' : ''}">{{ bigItem.label }}</span>
73
+                  <el-tooltip v-if="bigItem.tooltip" effect="dark" :content="bigItem.tooltip"><i-ep-QuestionFilled class="lMar5 c-999 f12 pointer" /></el-tooltip>
74
+                  <div v-if="bigItem.if_sort == 1" class="sortBox lMar5">
75
+                    <div class="sortItem" @click="sortEvent(bigItem.key_value,'desc')">
76
+                      <el-icon :color="(tableInfo.sortType == 'desc' && tableInfo.sortKey == bigItem.key_value) ? '#3173FF' : ''"><i-ep-CaretTop /></el-icon>
77
+                    </div>
78
+                    <div class="sortItem" @click="sortEvent(bigItem.key_value,'asc')">
79
+                      <el-icon :color="(tableInfo.sortType == 'asc' && tableInfo.sortKey == bigItem.key_value) ? '#3173FF' : ''"><i-ep-CaretBottom /></el-icon>
80
+                    </div>
81
+                  </div>
82
+                </div>
83
+              </template>
84
+
85
+              <template v-for="item in bigItem.sub">
86
+                <el-table-column :label="item.label"  :fixed="item.disabled == 1"
87
+                                 :min-width="bigItem.key_value == 'adgroup_name' ? '200px' :
88
+                               (bigItem.label.length <= 4 ? '100px' : bigItem.label.length <= 8 ? '150px' : '200px')">
89
+
90
+                  <template #default="scope">
91
+                    <div class="flex" style="justify-content:center"  :style="{color:tableInfo.sortKey == item.key_value ? '#3173FF' : ''}">
92
+                      <div v-if="item.key_value == 'configured_status'">
93
+                        <span class="c-green" v-if="scope.row[item.key_value] == 'AD_STATUS_NORMAL'">正常</span>
94
+                        <span class="c-red" v-else-if="scope.row[item.key_value] == 'AD_STATUS_SUSPEND'">暂停</span>
95
+                        <span v-else>-</span>
96
+                      </div>
97
+                      <div v-else-if="item.key_value == 'speed_mode'">
98
+                        <span v-if="scope.row[item.key_value] == 'SPEED_MODE_STANDARD'">标准投</span>
99
+                        <span v-else-if="scope.row[item.key_value] == 'SPEED_MODE_FAST'">加速投放</span>
100
+                        <span v-else>-</span>
101
+                      </div>
102
+                      <div v-else-if="item.key_value == 'operate'">
103
+                        <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>
106
+                        </div>
107
+                      </div>
108
+                      <div class="flex c-theme pointer" v-else-if="item.key_value == 'daily_budget'" @click="editPlanEvent(scope.row)">
109
+                        {{scope.row[item.key_value] ? NumberHandle(scope.row[item.key_value]) : '不限'}}
110
+                      </div>
111
+                      <div class="flex c-theme pointer" v-else-if="item.key_value == 'site_set'">
112
+                        {{scope.row[item.key_value]}}
113
+                        <!--                  {{siteIdtoText(scope.row[item.key_value])}}-->
114
+                      </div>
115
+
116
+
117
+                      <div class="cellDiv" :class="tableInfo.sortKey == item.key_value ? 'active_css' : ''" v-else>
118
+                        <el-tooltip :disabled="!(scope.row[item.key_value] && scope.row[item.key_value].length >30)" effect="dark" :content="scope.row[item.key_value]+''">
119
+                          <div class="clampTwo line21" style="flex: 1">
120
+                            {{ scope.row[item.key_value] || scope.row[item.key_value]==0 ?
121
+                              (item.cancleForMat ? (scope.row[item.key_value] ? scope.row[item.key_value] : '-') : NumberHandle(scope.row[item.key_value])) : '-'}}
122
+                            <span v-if="item.hasPercent&&(scope.row[item.key_value] || scope.row[item.key_value] ==0)">%</span>
123
+                          </div>
124
+                        </el-tooltip>
125
+                      </div>
126
+                    </div>
127
+                  </template>
128
+                </el-table-column>
129
+              </template>
130
+            </el-table-column>
131
+          </template>
132
+        </el-table>
133
+
134
+        <div class="paginationBox flex" style="justify-content: center" v-if="Number(tableInfo.total) > 0">
135
+          <el-pagination
136
+              v-model:currentPage="tableInfo.currentPage"
137
+              v-model:page-size="tableInfo.pageSize"
138
+              background
139
+              :total="tableInfo.total"
140
+              @current-change="handleCurrentChange" />
141
+        </div>
142
+      </template>
137
     </div>
143
     </div>
138
 
144
 
139
     <EditIpt ref="planEditIptRef" title="推广计划" @confirm="planEditConfirm"></EditIpt>
145
     <EditIpt ref="planEditIptRef" title="推广计划" @confirm="planEditConfirm"></EditIpt>
158
 import { batchGdt_list, reactiveTableAndAny} from "@/api/ApiModel";
164
 import { batchGdt_list, reactiveTableAndAny} from "@/api/ApiModel";
159
 import Indicators from './indicators/index.vue'
165
 import Indicators from './indicators/index.vue'
160
 import {commonlistTs} from "@/components/businessMoudle/ts/commonList";
166
 import {commonlistTs} from "@/components/businessMoudle/ts/commonList";
167
+import {getCurrentTime} from "@/common/common";
168
+import _ from "lodash";
161
 
169
 
162
 
170
 
163
 const { proxy } = getCurrentInstance() as any;
171
 const { proxy } = getCurrentInstance() as any;
181
 const tableInfo = reactive<reactiveTableAndAny>({
189
 const tableInfo = reactive<reactiveTableAndAny>({
182
   tableList:[],
190
   tableList:[],
183
   tableList_all:[],
191
   tableList_all:[],
184
-  descol:[
185
-    { name:'广告',column:'adgroup_name',slotFlag: true,isfixed:true,alignSelf:'left'},
186
-    { name:'操作',column:'operate',slotFlag: true,isfixed:true},
187
-    { name:'账号ID',column:'account_id',cancleForMat:true},
188
-    { name:'日预算(元)',column:'daily_budget',slotFlag: true},
189
-    { name:'状态',column:'configured_status',slotFlag: true},
190
-    { name:'创建时间',column:'created_time',cancleForMat:true},
191
-    { name:'更新时间',column:'last_modified_time'},
192
-    { name:'托管状态',column:'promoted_object_type'},
193
-    { name:'推广日期',column:'begin_date'},
194
-    { name:'投放时间',column:'time_series',cancleForMat:true},
195
-    { name:'出价方式',column:'bid_amount'},
196
-    { name:'优化目标',column:'optimization_goal'},
197
-    { name:'版位',column:'site_set'},
198
-  ],
192
+  descol:[],
199
   multipleSelection:[],
193
   multipleSelection:[],
200
   updateKey:1,
194
   updateKey:1,
201
   chooseAll:false,
195
   chooseAll:false,
202
-  sortKey:'',
203
   moreList:[
196
   moreList:[
204
     {value:'1',label:'启用'},
197
     {value:'1',label:'启用'},
205
-    {value:'2',label:'暂停'},
198
+    {value:'2',label:'禁用'},
206
     {value:'3',label:'删除'},
199
     {value:'3',label:'删除'},
200
+    {value:'4',label:'修改日预算'},
201
+    {value:'5',label:'修改出价'},
202
+    {value:'6',label:'深度优化出价'},
203
+    {value:'7',label:'期望roi'},
204
+    {value:'8',label:'推广日期'},
205
+    {value:'9',label:'投放时段'},
206
+    {value:'10',label:'开启一键起量'},
207
+    {value:'11',label:'暂停一键起量'},
207
   ],
208
   ],
208
   currentPage:1,
209
   currentPage:1,
209
   pageSize:20,
210
   pageSize:20,
210
   total:0,
211
   total:0,
211
   totalPages:0,//共多少页
212
   totalPages:0,//共多少页
213
+  summary:[],
214
+  sortKey:'',
215
+  sortType:'',
212
 })
216
 })
213
 
217
 
218
+const dropdownEvent = (val: string | number | object) => {
219
+  // loading.value = true
220
+  // let arr:any = []
221
+  // tableInfo.multipleSelection.forEach(item=>{
222
+  //   arr.push({
223
+  //     account_id:item.account_id,
224
+  //     campaign_id:item.campaign_id
225
+  //   })
226
+  // })
227
+  // batchPlanApi(arr,val)
228
+}
229
+
214
 //复制
230
 //复制
215
 const copyEvent = (row:any) => {
231
 const copyEvent = (row:any) => {
216
 
232
 
253
   })
269
   })
254
 }
270
 }
255
 //修改计划名称
271
 //修改计划名称
256
-const edit_campaign_name_event = (row:any) => {
257
-  nextTick(()=>{
258
-    planEditIptRef.value!.switchShow(true,row.campaign_name)
259
-  })
260
-}
261
 //推广计划 - 确定
272
 //推广计划 - 确定
262
 const planEditConfirm = () => {
273
 const planEditConfirm = () => {
263
 
274
 
265
 
276
 
266
 
277
 
267
 //排序
278
 //排序
268
-const sortEvent = (row:any) => {
269
-
279
+const sortEvent = (sortKey,sortType) => {
280
+  tableInfo.sortKey = sortKey
281
+  tableInfo.sortType = sortType
282
+  init()
270
 }
283
 }
271
 
284
 
272
 //列表
285
 //列表
273
 const init = async (page?:any,totalPages?:any) => {
286
 const init = async (page?:any,totalPages?:any) => {
274
-  console.log(props.campaign_id,'props.campaign_id');
275
   loading.value = true
287
   loading.value = true
276
   const paramsModel = reactive<batchGdt_list>({
288
   const paramsModel = reactive<batchGdt_list>({
277
     account_ids:acRef.value!.value,
289
     account_ids:acRef.value!.value,
283
     page:page?page:1,
295
     page:page?page:1,
284
     pageSize:totalPages ? totalPages : tableInfo.pageSize
296
     pageSize:totalPages ? totalPages : tableInfo.pageSize
285
   })
297
   })
298
+  if(tableInfo.sortKey){
299
+    paramsModel['field'] = tableInfo.sortKey
300
+    paramsModel['order'] = tableInfo.sortType
301
+  }
286
   let res:any = await proxy.$http.get(Api.batchGdt_advert_list,paramsModel)
302
   let res:any = await proxy.$http.get(Api.batchGdt_advert_list,paramsModel)
287
   loading.value = false
303
   loading.value = false
288
   if(res&&res.errNo=='0'){
304
   if(res&&res.errNo=='0'){
305
+    tableInfo.updateKey++
289
     if(totalPages){
306
     if(totalPages){
290
       tableInfo.tableList_all = res.rst.data.list
307
       tableInfo.tableList_all = res.rst.data.list
291
     }else{
308
     }else{
292
-      tableInfo.tableList = res.rst.data.list
293
       tableInfo.total = res.rst.pageInfo.total
309
       tableInfo.total = res.rst.pageInfo.total
294
       tableInfo.totalPages = res.rst.pageInfo.total
310
       tableInfo.totalPages = res.rst.pageInfo.total
311
+      if(!res.rst.data){
312
+        tableInfo.tableList = []
313
+        return
314
+      }
315
+      tableInfo.summary = res.rst.data.summary
316
+      tableInfo.summary[0].adgroup_name = '合计(缓存时间:' + getCurrentTime() + ')'
317
+      tableInfo.descol = []
318
+      res.rst.data.explain.forEach(ex=>{
319
+        ex.sub = []
320
+        let subObj:any = _.cloneDeep(ex)
321
+        subObj.label = tableInfo.summary[0][ex.key_value] || ''
322
+        ex.sub.push(subObj)
323
+      })
324
+      tableInfo.descol = res.rst.data.explain;
325
+      tableInfo.descol.splice(1,0,{label:'操作',key_value:'operate',disabled:1,sub:[{label:'',key_value:'operate',disabled:1}]})
326
+      tableInfo.tableList = res.rst.data.list
295
     }
327
     }
296
   }else{
328
   }else{
297
     ElMessage.error(res.errMsg)
329
     ElMessage.error(res.errMsg)
356
   }
388
   }
357
 }
389
 }
358
 
390
 
359
-const IndicatorsRefreshList = () => {
360
-  //这里刷新列表
361
-}
362
-
363
 
391
 
364
 const {
392
 const {
365
   init_acList,
393
   init_acList,
371
   clearEvent,
399
   clearEvent,
372
   tableHeaderStyle,
400
   tableHeaderStyle,
373
   planEditIptRef,
401
   planEditIptRef,
374
-  TargetEditRef
402
+  TargetEditRef,
403
+  init_ad_statusList
375
 } = listTs()
404
 } = listTs()
376
 
405
 
377
 
406
 
378
 const initAll = () => {
407
 const initAll = () => {
379
   nextTick(async ()=>{
408
   nextTick(async ()=>{
380
     await init_acList()
409
     await init_acList()
381
-    await get_siteSet_list()
410
+    // await get_siteSet_list()
382
     await init()
411
     await init()
412
+    init_ad_statusList()
383
   })
413
   })
384
 }
414
 }
385
 
415
 
391
 })
421
 })
392
 </script>
422
 </script>
393
 <style lang="scss" scoped>
423
 <style lang="scss" scoped>
394
-.campaignName{
395
-  .icon{
396
-    color: #3173FF;
397
-    opacity: 0;
398
-  }
399
-  &:hover{
400
-    .icon{
401
-      opacity: 1;
402
-    }
403
-  }
404
-}
405
-.checkBoxSelf{
406
-  width: 13px;
407
-  height: 13px;
408
-  border: 1px solid #d9d9d9;
409
-  border-radius: 2px;
410
-  &:hover{
411
-    cursor: pointer;
412
-    border: 1px solid #3173FF;
413
-  }
414
-  &.active{
415
-    border: 1px solid #3173FF;
416
-    background-color: #3173FF;
417
-  }
418
-}
424
+@import "./index.scss";
419
 </style>
425
 </style>

+ 43 - 0
src/components/businessMoudle/gdtList/index.scss

1
+.campaignName{
2
+  .icon{
3
+    color: #3173FF;
4
+    opacity: 0;
5
+  }
6
+  &:hover{
7
+    .icon{
8
+      opacity: 1;
9
+    }
10
+  }
11
+}
12
+.checkBoxSelf{
13
+  width: 13px;
14
+  height: 13px;
15
+  border: 1px solid #d9d9d9;
16
+  border-radius: 2px;
17
+  &:hover{
18
+    cursor: pointer;
19
+    border: 1px solid #3173FF;
20
+  }
21
+  &.active{
22
+    border: 1px solid #3173FF;
23
+    background-color: #3173FF;
24
+  }
25
+}
26
+.sortBox{
27
+  height: 16px;
28
+  margin-left: 2px;
29
+  margin-top: -4px;
30
+  .sortItem{
31
+    width: 8px;
32
+    height: 8px;
33
+    line-height: 8px;
34
+    cursor: pointer;
35
+    color: #999;
36
+  }
37
+}
38
+.noDataBcg{
39
+  height: 500px;
40
+  width: 100%;
41
+  background-color: #fff;
42
+  padding-top: 80px;
43
+}

+ 5 - 2
src/components/businessMoudle/gdtList/index.vue

33
 
33
 
34
 // 类型切换公共ts
34
 // 类型切换公共ts
35
 const typeListParams = reactive([
35
 const typeListParams = reactive([
36
-    {name:'媒体账户',key:'account'},
36
+  {name:'媒体账户',key:'account'},
37
   {name:'推广计划',key:'plan'},
37
   {name:'推广计划',key:'plan'},
38
   {name:'广告',key:'advert'},
38
   {name:'广告',key:'advert'},
39
 ])
39
 ])
60
 const advertRef = ref<{initAll:()=>void}>()
60
 const advertRef = ref<{initAll:()=>void}>()
61
 //去广告栏
61
 //去广告栏
62
 const goAdvert = (campaign_id:any) => {
62
 const goAdvert = (campaign_id:any) => {
63
-  switchTypeItem(typeList.list[1])
63
+  let arr:any = typeList.list.filter(n=>{
64
+    return n.key == 'advert'
65
+  })
66
+  switchTypeItem(arr[0])
64
   pageInfo.campaign_id = campaign_id
67
   pageInfo.campaign_id = campaign_id
65
   nextTick(()=>{
68
   nextTick(()=>{
66
     advertRef.value!.initAll()
69
     advertRef.value!.initAll()

+ 138 - 154
src/components/businessMoudle/gdtList/plan.vue

20
       <span class="pointer c-theme lMar10" @click="clearEvent">清空</span>
20
       <span class="pointer c-theme lMar10" @click="clearEvent">清空</span>
21
       <el-button class="lMarauto" type="primary" @click="goNewPlanEvent">新建计划</el-button>
21
       <el-button class="lMarauto" type="primary" @click="goNewPlanEvent">新建计划</el-button>
22
     </div>
22
     </div>
23
-    <div>
23
+    <div v-loading="loading">
24
       <div class="bMar10 flex">
24
       <div class="bMar10 flex">
25
         <Dropdown title="批量操作" :list="tableInfo.moreList" @close="dropdownEvent" class="rMar10"
25
         <Dropdown title="批量操作" :list="tableInfo.moreList" @close="dropdownEvent" class="rMar10"
26
                   :disabledFlag="tableInfo.multipleSelection&&tableInfo.multipleSelection.length == 0"></Dropdown>
26
                   :disabledFlag="tableInfo.multipleSelection&&tableInfo.multipleSelection.length == 0"></Dropdown>
27
         <div>已选 : <span>{{tableInfo.multipleSelection&&tableInfo.multipleSelection.length}}</span></div>
27
         <div>已选 : <span>{{tableInfo.multipleSelection&&tableInfo.multipleSelection.length}}</span></div>
28
-<!--        <el-button class="lMarauto" type="primary" @click="customIndEvent">自定义指标</el-button>-->
29
-
30
         <div  class="lMarauto">
28
         <div  class="lMarauto">
31
-          <Indicators type="campaign_base" @refresh="IndicatorsRefreshList"></Indicators>
29
+          <Indicators type="campaign_base" @refresh="init()"></Indicators>
32
         </div>
30
         </div>
33
       </div>
31
       </div>
34
-
35
-      <el-table v-loading="loading" ref="tableRef" :data="tableInfo.tableList"
36
-                :header-cell-style="tableHeaderStyle"
37
-                :key="tableInfo.updateKey" style="width: 100%"
38
-                border empty-text="暂无数据"
39
-                row-key="campaign_id"
40
-                max-height="calc(100vh - 294px)">
41
-        <el-table-column fixed width="80" >
42
-          <template #header>
43
-            <div class="flex">
44
-              <el-checkbox v-model="tableInfo.chooseAll" @change="allChooseCheckboxEvent"></el-checkbox>
45
-              <el-dropdown class="lMar10" @command="handleCommandChoosePage">
46
-                <el-icon color="#3173FF"><i-ep-ArrowDownBold /></el-icon>
47
-                <template #dropdown>
48
-                  <el-dropdown-menu>
49
-                    <el-dropdown-item command="1">当前页</el-dropdown-item>
50
-                    <el-dropdown-item command="2">全部</el-dropdown-item>
51
-                  </el-dropdown-menu>
52
-                </template>
53
-              </el-dropdown>
54
-            </div>
55
-          </template>
56
-          <template #default="scope">
57
-            <div class="checkBoxSelf flex"
58
-                 @click="singleChooseCheckboxEvent(tableInfo.multipleSelection.findIndex(n=>n.campaign_id == scope.row.campaign_id),scope.row)"
59
-                 :class="tableInfo.multipleSelection.findIndex(n=>n.campaign_id == scope.row.campaign_id)>=0 ? 'active' : ''">
60
-              <el-icon color="#fff" v-if="tableInfo.multipleSelection.findIndex(n=>n.campaign_id == scope.row.campaign_id)>=0"><i-ep-Check /></el-icon>
61
-            </div>
62
-          </template>
63
-        </el-table-column>
64
-        <template v-for="item in tableInfo.descol">
65
-          <el-table-column :fixed="item.isfixed" :min-width="item.minWidth ? item.minWidth : '80px'">
32
+      <div class="noDataBcg" v-if="Number(tableInfo.total) == 0">
33
+        <noData></noData>
34
+      </div>
35
+      <template v-else>
36
+        <el-table ref="tableRef" :data="tableInfo.tableList"
37
+                  :header-cell-style="tableHeaderStyle"
38
+                  :key="tableInfo.updateKey" style="width: 100%"
39
+                  border empty-text="暂无数据"
40
+                  row-key="campaign_id"
41
+                  max-height="calc(100vh - 294px)">
42
+          <el-table-column fixed width="80" >
66
             <template #header>
43
             <template #header>
67
-              <div class="flex"
68
-                   :style="{ justifyContent: item.alignSelf ? item.alignSelf : 'center' }"
69
-                   :class="[tableInfo.sortKey == item.column ? 'active_css' : '',item.isSort ? 'pointer' : '']"
70
-                   @click="item.isSort&&sortEvent(item.column)">
71
-                {{ item.name }}
72
-                <el-tooltip v-if="item.notes" effect="dark" :content="item.notes"><i-ep-QuestionFilled class="lMar5 c-999 f14 pointer" /></el-tooltip>
73
-                <div v-if="item.isSort">
74
-                  <div class="sortItem"><el-icon :color="tableInfo.sortKey == item.column ? '#3173FF' : ''"><i-ep-CaretBottom /></el-icon></div>
75
-                </div>
44
+              <div class="flex">
45
+                <el-checkbox v-model="tableInfo.chooseAll" @change="allChooseCheckboxEvent"></el-checkbox>
46
+                <el-dropdown class="lMar10" @command="handleCommandChoosePage">
47
+                  <el-icon color="#3173FF"><i-ep-ArrowDownBold /></el-icon>
48
+                  <template #dropdown>
49
+                    <el-dropdown-menu>
50
+                      <el-dropdown-item command="1">当前页</el-dropdown-item>
51
+                      <el-dropdown-item command="2">全部</el-dropdown-item>
52
+                    </el-dropdown-menu>
53
+                  </template>
54
+                </el-dropdown>
76
               </div>
55
               </div>
77
             </template>
56
             </template>
78
             <template #default="scope">
57
             <template #default="scope">
79
-              <div class="flex" :style="{ justifyContent: item.alignSelf ? item.alignSelf : 'center' }">
80
-
81
-              <div v-if="item.column == 'campaign_name'">
82
-                <span class="c-theme flex campaignName">
83
-                  <span class="pointer" @click="goAdvertEvent(scope.row.campaign_id)">{{scope.row[item.column]}}</span>
84
-                  <el-icon color="#3173FF" class="pointer lMarauto f16 icon" @click="edit_campaign_name_event(scope.row)"><i-ep-Edit /></el-icon>
85
-                </span>
86
-              </div>
87
-              <div v-else-if="item.column == 'configured_status'">
88
-                <span class="c-green" v-if="scope.row[item.column] == 'AD_STATUS_NORMAL'">正常</span>
89
-                <span class="c-red" v-else-if="scope.row[item.column] == 'AD_STATUS_SUSPEND'">暂停</span>
90
-                <span v-else>-</span>
58
+              <div class="checkBoxSelf flex"
59
+                   @click="singleChooseCheckboxEvent(tableInfo.multipleSelection.findIndex(n=>n.campaign_id == scope.row.campaign_id),scope.row)"
60
+                   :class="tableInfo.multipleSelection.findIndex(n=>n.campaign_id == scope.row.campaign_id)>=0 ? 'active' : ''">
61
+                <el-icon color="#fff" v-if="tableInfo.multipleSelection.findIndex(n=>n.campaign_id == scope.row.campaign_id)>=0"><i-ep-Check /></el-icon>
91
               </div>
62
               </div>
92
-              <div v-else-if="item.column == 'speed_mode'">
93
-                <span v-if="scope.row[item.column] == 'SPEED_MODE_STANDARD'">标准投</span>
94
-                <span v-else-if="scope.row[item.column] == 'SPEED_MODE_FAST'">加速投放</span>
95
-                <span v-else>-</span>
96
-              </div>
97
-              <div v-else-if="item.column == 'operate'">
98
-                <div class="flex">
99
-                  <span class="c-theme pointer" @click="editPlanEvent(scope.row)">修改</span>
100
-                  <span class="lMar10"
101
-                        :class="scope.row.configured_status == 'AD_STATUS_NORMAL' ? 'pointer-drop c-green-opa' : 'pointer c-green'"
102
-                        @click="scope.row.configured_status == 'AD_STATUS_SUSPEND'&&batchPlanEvent(scope.row,1)">启用</span>
103
-                </div>
104
-                <div>
105
-                    <span :class="scope.row.configured_status == 'AD_STATUS_SUSPEND' ? 'pointer-drop c-red-opa' : 'pointer c-red'"
106
-                          @click="scope.row.configured_status == 'AD_STATUS_NORMAL'&&batchPlanEvent(scope.row,2)">暂停</span>
107
-                  <Popconfirm key="dele" @confirm="batchPlanEvent(scope.row,3)" :slotFlag="true">
108
-                    <template #con>
109
-                      <span class="pointer lMar10">删除</span>
110
-                    </template>
111
-                  </Popconfirm>
112
-
63
+            </template>
64
+          </el-table-column>
65
+          <template v-for="bigItem in tableInfo.descol">
66
+            <el-table-column>
67
+              <template #header>
68
+                <div class="flex" style="justify-content:center"
69
+                     :class="[tableInfo.sortKey == bigItem.key_value ? 'active_css' : '']">
70
+                  <span :style="{color:tableInfo.sortKey == bigItem.key_value ? '#3173FF' : ''}">{{ bigItem.label }}</span>
71
+                  <el-tooltip v-if="bigItem.tooltip" effect="dark" :content="bigItem.tooltip"><i-ep-QuestionFilled class="lMar5 c-999 f12 pointer" /></el-tooltip>
72
+                  <div v-if="bigItem.if_sort == 1" class="sortBox lMar5">
73
+                    <div class="sortItem" @click="sortEvent(bigItem.key_value,'desc')">
74
+                      <el-icon :color="(tableInfo.sortType == 'desc' && tableInfo.sortKey == bigItem.key_value) ? '#3173FF' : ''"><i-ep-CaretTop /></el-icon>
75
+                    </div>
76
+                    <div class="sortItem" @click="sortEvent(bigItem.key_value,'asc')">
77
+                      <el-icon :color="(tableInfo.sortType == 'asc' && tableInfo.sortKey == bigItem.key_value) ? '#3173FF' : ''"><i-ep-CaretBottom /></el-icon>
78
+                    </div>
79
+                  </div>
113
                 </div>
80
                 </div>
81
+              </template>
82
+              <template v-for="item in bigItem.sub">
83
+                <el-table-column :label="item.label"  :fixed="item.disabled == 1"
84
+                                 :min-width="bigItem.key_value == 'campaign_name' ? '200px' :
85
+                               (bigItem.label.length <= 4 ? '100px' : bigItem.label.length <= 8 ? '150px' : '200px')">
114
 
86
 
87
+                  <template #default="scope">
88
+                    <div class="flex"  style="justify-content:center" :style="{color:tableInfo.sortKey == item.key_value ? '#3173FF' : ''}">
89
+                      <div v-if="item.key_value == 'campaign_name'">
90
+                    <span class="c-theme flex campaignName">
91
+                      <span class="pointer" @click="goAdvertEvent(scope.row.campaign_id)">{{scope.row[item.key_value]}}</span>
92
+                      <el-icon color="#3173FF" class="pointer lMarauto f16 icon" @click="edit_campaign_name_event(scope.row)"><i-ep-Edit /></el-icon>
93
+                    </span>
94
+                      </div>
95
+                      <div v-else-if="item.key_value == 'configured_status'">
96
+                        <span class="c-green" v-if="scope.row[item.key_value] == 'AD_STATUS_NORMAL'">正常</span>
97
+                        <span class="c-red" v-else-if="scope.row[item.key_value] == 'AD_STATUS_SUSPEND'">暂停</span>
98
+                        <span v-else>-</span>
99
+                      </div>
100
+                      <div v-else-if="item.key_value == 'speed_mode'">
101
+                        <span v-if="scope.row[item.key_value] == 'SPEED_MODE_STANDARD'">标准投</span>
102
+                        <span v-else-if="scope.row[item.key_value] == 'SPEED_MODE_FAST'">加速投放</span>
103
+                        <span v-else>-</span>
104
+                      </div>
105
+                      <div v-else-if="item.key_value == 'operate'">
106
+                        <div class="flex">
107
+                          <span class="c-theme pointer" @click="editPlanEvent(scope.row)">修改</span>
108
+                          <span class="lMar10"
109
+                                :class="scope.row.configured_status == 'AD_STATUS_NORMAL' ? 'pointer-drop c-green-opa' : 'pointer c-green'"
110
+                                @click="scope.row.configured_status == 'AD_STATUS_SUSPEND'&&batchPlanEvent(scope.row,1)">启用</span>
111
+                        </div>
112
+                        <div>
113
+                        <span :class="scope.row.configured_status == 'AD_STATUS_SUSPEND' ? 'pointer-drop c-red-opa' : 'pointer c-red'"
114
+                              @click="scope.row.configured_status == 'AD_STATUS_NORMAL'&&batchPlanEvent(scope.row,2)">暂停</span>
115
+                          <Popconfirm key="dele" @confirm="batchPlanEvent(scope.row,3)" :slotFlag="true">
116
+                            <template #con>
117
+                              <span class="pointer lMar10">删除</span>
118
+                            </template>
119
+                          </Popconfirm>
115
 
120
 
116
-              </div>
117
-              <div class="flex c-theme pointer" v-else-if="item.column == 'daily_budget'" @click="editPlanEvent(scope.row)">
118
-                {{scope.row[item.column] ? NumberHandle(scope.row[item.column]) : '不限'}}
119
-              </div>
120
-
121
+                        </div>
122
+                      </div>
123
+                      <div class="flex c-theme pointer" v-else-if="item.key_value == 'daily_budget'" @click="editPlanEvent(scope.row)">
124
+                        {{scope.row[item.key_value] ? NumberHandle(scope.row[item.key_value]) : '不限'}}
125
+                      </div>
121
 
126
 
122
-              <div class="cellDiv" :class="tableInfo.sortKey == item.column ? 'active_css' : ''" v-else>
123
-                <el-tooltip :disabled="!(scope.row[item.column] && scope.row[item.column].length >30)" effect="dark" :content="scope.row[item.column]+''">
124
-                  <div class="clampTwo line21" style="flex: 1">
125
-                    {{ scope.row[item.column] || scope.row[item.column]==0 ?
126
-                      (item.cancleForMat ? (scope.row[item.column] ? scope.row[item.column] : '-') : NumberHandle(scope.row[item.column])) : '-'}}
127
-                    <span v-if="item.hasPercent&&(scope.row[item.column] || scope.row[item.column] ==0)">%</span>
128
-                  </div>
129
-                </el-tooltip>
130
-              </div>
131
-              </div>
132
-            </template>
133
-          </el-table-column>
134
-        </template>
135
-      </el-table>
127
+                      <div class="cellDiv" :class="tableInfo.sortKey == item.key_value ? 'active_css' : ''" v-else>
128
+                        <el-tooltip :disabled="!(scope.row[item.key_value] && scope.row[item.key_value].length >30)" effect="dark" :content="scope.row[item.key_value]+''">
129
+                          <div class="clampTwo line21" style="flex: 1">
130
+                            {{ scope.row[item.key_value] || scope.row[item.key_value]==0 ?
131
+                              (item.if_sort == 1 ?  NumberHandle(scope.row[item.key_value]) : (scope.row[item.key_value] || '-')) : '-'}}
132
+                            <span v-if="item.hasPercent&&(scope.row[item.key_value] || scope.row[item.key_value] ==0)">%</span>
133
+                          </div>
134
+                        </el-tooltip>
135
+                      </div>
136
+                    </div>
137
+                  </template>
138
+                </el-table-column>
139
+              </template>
140
+            </el-table-column>
141
+          </template>
142
+        </el-table>
143
+        <div class="paginationBox flex" style="justify-content: center" v-if="Number(tableInfo.total) > 0">
144
+          <el-pagination
145
+              v-model:currentPage="tableInfo.currentPage"
146
+              v-model:page-size="tableInfo.pageSize"
147
+              background
148
+              :total="tableInfo.total"
149
+              @current-change="handleCurrentChange" />
150
+        </div>
151
+      </template>
136
 
152
 
137
-      <div class="paginationBox flex" style="justify-content: center" v-if="Number(tableInfo.total) > 0">
138
-        <el-pagination
139
-            v-model:currentPage="tableInfo.currentPage"
140
-            v-model:page-size="tableInfo.pageSize"
141
-            background
142
-            :total="tableInfo.total"
143
-            @current-change="handleCurrentChange" />
144
-      </div>
145
     </div>
153
     </div>
146
 
154
 
147
     <EditIpt ref="planEditIptRef" title="推广计划" @confirm="planEditConfirm"></EditIpt>
155
     <EditIpt ref="planEditIptRef" title="推广计划" @confirm="planEditConfirm"></EditIpt>
163
 import {ElMessage} from "element-plus";
171
 import {ElMessage} from "element-plus";
164
 import {batchGdt_edit, batchGdt_list, reactiveTableAndAny} from "@/api/ApiModel";
172
 import {batchGdt_edit, batchGdt_list, reactiveTableAndAny} from "@/api/ApiModel";
165
 import Indicators from './indicators/index.vue'
173
 import Indicators from './indicators/index.vue'
174
+import _ from "lodash";
175
+import {getCurrentTime} from "@/common/common";
166
 
176
 
167
 const { proxy } = getCurrentInstance() as any;
177
 const { proxy } = getCurrentInstance() as any;
168
 // 全局方法定义
178
 // 全局方法定义
183
 const tableInfo = reactive<reactiveTableAndAny>({
193
 const tableInfo = reactive<reactiveTableAndAny>({
184
   tableList:[],
194
   tableList:[],
185
   tableList_all:[],
195
   tableList_all:[],
186
-  descol:[
187
-    { name:'计划名称',column:'campaign_name',slotFlag: true,isfixed:true,alignSelf:'left'},
188
-    { name:'操作',column:'operate',slotFlag: true,isfixed:true},
189
-    { name:'账号ID',column:'account_id',cancleForMat:true},
190
-    { name:'计划ID',column:'campaign_id',cancleForMat:true},
191
-    { name:'计划类型',column:'campaign_type'},
192
-    { name:'推广目标类型',column:'promoted_object_type'},
193
-    { name:'日预算(元)',column:'daily_budget',slotFlag: true},
194
-    // { name:'总预算',column:'total_budget'},
195
-    { name:'投放日期',column:'created_time'},
196
-    { name:'客户状态',column:'configured_status',slotFlag: true},
197
-    { name:'投放速度',column:'speed_mode',slotFlag: true},
198
-  ],
196
+  descol:[],
199
   multipleSelection:[],
197
   multipleSelection:[],
200
   updateKey:1,
198
   updateKey:1,
201
   chooseAll:false,
199
   chooseAll:false,
202
   sortKey:'',
200
   sortKey:'',
201
+  sortType:'',
203
   moreList:[
202
   moreList:[
204
     {value:'1',label:'启用'},
203
     {value:'1',label:'启用'},
205
     {value:'2',label:'暂停'},
204
     {value:'2',label:'暂停'},
209
   pageSize:20,
208
   pageSize:20,
210
   total:0,
209
   total:0,
211
   totalPages:0,//共多少页
210
   totalPages:0,//共多少页
211
+  summary:[]
212
 })
212
 })
213
 
213
 
214
 
214
 
215
-
216
-//批量操作
217
-const batchEvent = () => {
218
-
219
-}
220
-
221
 // 启用 暂停 删除
215
 // 启用 暂停 删除
222
 const batchPlanApi = async (arr?:any,val?:any) => {
216
 const batchPlanApi = async (arr?:any,val?:any) => {
223
   const paramsModel = reactive<batchGdt_edit>({
217
   const paramsModel = reactive<batchGdt_edit>({
274
 
268
 
275
 
269
 
276
 //排序
270
 //排序
277
-const sortEvent = (row:any) => {
278
-
271
+const sortEvent = (sortKey,sortType) => {
272
+  tableInfo.sortKey = sortKey
273
+  tableInfo.sortType = sortType
274
+  init()
279
 }
275
 }
280
 
276
 
281
 //列表
277
 //列表
290
     page:page?page:1,
286
     page:page?page:1,
291
     pageSize:totalPages ? totalPages : tableInfo.pageSize
287
     pageSize:totalPages ? totalPages : tableInfo.pageSize
292
   })
288
   })
289
+  if(tableInfo.sortKey){
290
+    paramsModel['field'] = tableInfo.sortKey
291
+    paramsModel['order'] = tableInfo.sortType
292
+  }
293
   let res:any = await proxy.$http.get(Api.batchGdt_plan_list,paramsModel)
293
   let res:any = await proxy.$http.get(Api.batchGdt_plan_list,paramsModel)
294
   loading.value = false
294
   loading.value = false
295
   if(res&&res.errNo=='0'){
295
   if(res&&res.errNo=='0'){
296
     if(totalPages){
296
     if(totalPages){
297
       tableInfo.tableList_all = res.rst.data.list
297
       tableInfo.tableList_all = res.rst.data.list
298
     }else{
298
     }else{
299
+      tableInfo.summary = res.rst.data.summary
300
+      tableInfo.summary[0].campaign_name = '合计(缓存时间:' + getCurrentTime() + ')'
301
+      tableInfo.descol = []
302
+      res.rst.data.explain.forEach(ex=>{
303
+        ex.sub = []
304
+        let subObj:any = _.cloneDeep(ex)
305
+        subObj.label = tableInfo.summary[0][ex.key_value] || ''
306
+        ex.sub.push(subObj)
307
+      })
308
+      tableInfo.descol = res.rst.data.explain;
309
+      tableInfo.descol.splice(1,0,{label:'操作',key_value:'operate',disabled:1,sub:[{label:'',key_value:'operate',disabled:1}]})
299
       tableInfo.tableList = res.rst.data.list
310
       tableInfo.tableList = res.rst.data.list
300
       tableInfo.total = res.rst.pageInfo.total
311
       tableInfo.total = res.rst.pageInfo.total
301
       tableInfo.totalPages = res.rst.pageInfo.total
312
       tableInfo.totalPages = res.rst.pageInfo.total
363
   }
374
   }
364
 }
375
 }
365
 
376
 
366
-const IndicatorsRefreshList = () => {
367
-  //这里刷新列表
368
-}
369
 
377
 
370
 const {
378
 const {
371
   init_acList,
379
   init_acList,
389
 })
397
 })
390
 </script>
398
 </script>
391
 <style lang="scss" scoped>
399
 <style lang="scss" scoped>
392
-.campaignName{
393
-  .icon{
394
-    color: #3173FF;
395
-    opacity: 0;
396
-  }
397
-  &:hover{
398
-    .icon{
399
-      opacity: 1;
400
-    }
401
-  }
402
-}
403
-.checkBoxSelf{
404
-  width: 13px;
405
-  height: 13px;
406
-  border: 1px solid #d9d9d9;
407
-  border-radius: 2px;
408
-  &:hover{
409
-    cursor: pointer;
410
-    border: 1px solid #3173FF;
411
-  }
412
-  &.active{
413
-    border: 1px solid #3173FF;
414
-    background-color: #3173FF;
415
-  }
416
-}
400
+@import "./index.scss";
417
 </style>
401
 </style>

+ 2 - 1
src/components/businessMoudle/gdtList/ts/list.ts

12
         return {
12
         return {
13
             backgroundColor: '#FAFAFA',
13
             backgroundColor: '#FAFAFA',
14
             color: '#161E46',
14
             color: '#161E46',
15
-            height: '44px'
15
+            height: '44px',
16
+            textAlign: 'center'
16
         }
17
         }
17
     }
18
     }
18
 
19