liuxiaona 1 rok temu
rodzic
commit
812795a8a1
97 zmienionych plików z 425 dodań i 76 usunięć
  1. 1 0
      dist/assets/_dialog.5c0eecd7.css
  2. 0 1
      dist/assets/_dialog.8cd140fd.css
  3. 0 1
      dist/assets/_input.2f756a28.css
  4. 1 0
      dist/assets/_input.8be04cf3.css
  5. 0 1
      dist/assets/_select.2a9f1999.css
  6. 1 0
      dist/assets/_select.97e73788.css
  7. 0 1
      dist/assets/accountManage.0532d389.css
  8. 1 0
      dist/assets/accountManage.896650f8.css
  9. 0 1
      dist/assets/adqManage.694a1958.css
  10. 1 0
      dist/assets/adqManage.c4615848.css
  11. 0 1
      dist/assets/element-plus.bcd240b3.css
  12. 1 0
      dist/assets/element-plus.f07d23db.css
  13. 1 0
      dist/assets/error.284bd084.css
  14. 0 1
      dist/assets/error.97c715ec.css
  15. 0 1
      dist/assets/home.1a33e614.css
  16. 1 0
      dist/assets/home.9f35d1d5.css
  17. 0 1
      dist/assets/index.03bcea03.css
  18. 1 0
      dist/assets/index.0aba4cba.css
  19. 0 1
      dist/assets/index.28168f3c.css
  20. 0 1
      dist/assets/index.2b4782a6.css
  21. 0 1
      dist/assets/index.3191aa97.css
  22. 1 0
      dist/assets/index.37b5a88f.css
  23. 0 1
      dist/assets/index.4d3598a8.css
  24. 0 1
      dist/assets/index.563e5dd5.css
  25. 0 1
      dist/assets/index.648b9e10.css
  26. 1 0
      dist/assets/index.661d5a46.css
  27. 0 1
      dist/assets/index.6fff4b74.css
  28. 1 0
      dist/assets/index.766d410e.js
  29. 1 0
      dist/assets/index.887b6b4f.css
  30. 1 0
      dist/assets/index.9234b91e.css
  31. 0 1
      dist/assets/index.9f20b33d.js
  32. 1 0
      dist/assets/index.9f34d59b.css
  33. 1 1
      dist/assets/index.3ba3880e.css
  34. 0 1
      dist/assets/index.a956448f.css
  35. 1 0
      dist/assets/index.ca1fc3d5.css
  36. 1 0
      dist/assets/index.d52cf2c0.css
  37. 1 0
      dist/assets/index.eb07d23d.css
  38. 1 0
      dist/assets/index_head.bd849dfa.css
  39. 0 1
      dist/assets/index_head.fddecd4a.css
  40. 0 1
      dist/assets/login.1a99fd9e.css
  41. 1 0
      dist/assets/login.38e47126.css
  42. 1 0
      dist/assets/materialBlock.4d7b717e.css
  43. 0 1
      dist/assets/materialBlock.8868a5d8.css
  44. 0 1
      dist/assets/menuList.30c26da6.css
  45. 1 0
      dist/assets/menuList.45586ed7.css
  46. 1 0
      dist/assets/noData.10280069.css
  47. 0 1
      dist/assets/noData.c79b2ed6.css
  48. 0 1
      dist/assets/tableInfo.b66a93c1.css
  49. 1 0
      dist/assets/tableInfo.fc4a7715.css
  50. 1 0
      dist/assets/timeScreen.0ab73184.css
  51. 0 1
      dist/assets/timeScreen.9bc08e8b.css
  52. 1 0
      dist/assets/weekTime.4d489b20.css
  53. 0 1
      dist/assets/weekTime.d5ba4542.css
  54. 3 3
      dist/index.html
  55. 1 1
      dist/js/_dialog/_dialog.2ed4ce45.js
  56. 1 1
      dist/js/_drawer/_drawer.eab510de.js
  57. 0 1
      dist/js/_dropdown/_dropdown.8cd6ec7c.js
  58. 1 0
      dist/js/_dropdown/_dropdown.ec288103.js
  59. 1 1
      dist/js/_input/_input.4824d8b5.js
  60. 1 0
      dist/js/_popconfirm/_popconfirm.26f3fae4.js
  61. 0 1
      dist/js/_popconfirm/_popconfirm.b4f5b3a7.js
  62. 1 1
      dist/js/_select/_select.deb22e1c.js
  63. 1 0
      dist/js/adTask/index.0eff1f81.js
  64. 0 1
      dist/js/adTask/index.b27ebda0.js
  65. 0 1
      dist/js/api/api.2cda37ce.js
  66. 1 0
      dist/js/api/api.2de2b1d9.js
  67. 1 1
      dist/js/basisMoudle/accountManage.71bd8dcd.js
  68. 1 1
      dist/js/basisMoudle/error.90e99c2f.js
  69. 1 1
      dist/js/basisMoudle/home.9e7bf74a.js
  70. 1 1
      dist/js/basisMoudle/login.59032fb6.js
  71. 1 1
      dist/js/businessMoudle/adqManage.b9bbcf08.js
  72. 1 1
      dist/js/collectClip/index.1b73a5d9.js
  73. 1 1
      dist/js/configArea/index.a69947ab.js
  74. 2 0
      dist/js/element-plus/element-plus.169ac68f.js
  75. 0 2
      dist/js/element-plus/element-plus.92d15e14.js
  76. 1 1
      dist/js/gdtList/index.d5404575.js
  77. 1 1
      dist/js/index/index.e0a5370e.js
  78. 1 1
      dist/js/index/index.d5b52aae.js
  79. 1 1
      dist/js/layout/index.23e2d7f4.js
  80. 1 1
      dist/js/layout/index_head.aeb3c484.js
  81. 1 1
      dist/js/materialBlock/materialBlock.ae08e942.js
  82. 1 1
      dist/js/materialLibrary/index.18f64472.js
  83. 1 1
      dist/js/materialTs/materialTs.baa935cb.js
  84. 1 1
      dist/js/menuPermission/menuList.ef90f14d.js
  85. 1 1
      dist/js/miniprogram/index.4eeb923e.js
  86. 1 1
      dist/js/noData/noData.ddc2af49.js
  87. 0 0
      dist/js/sortablejs/sortablejs.cbc4d4ad.js
  88. 1 1
      dist/js/tableInfo/tableInfo.edf1f453.js
  89. 1 1
      dist/js/taskList/index.6a75fab4.js
  90. 1 1
      dist/js/timeScreen/timeScreen.4eedec65.js
  91. 0 0
      dist/js/vue/vue.051f0374.js
  92. 1 1
      dist/js/vuedraggable/vuedraggable.e4c47c81.js
  93. 1 1
      dist/js/weekTime/weekTime.985d19cf.js
  94. 325 0
      src/components/businessMoudle/adTask/detail/index.vue
  95. 11 3
      src/components/businessMoudle/adTask/index.vue
  96. 17 1
      src/components/businessMoudle/adTask/ts/api.ts
  97. 9 9
      src/components/businessMoudle/adTask/ts/define.ts

Plik diff jest za duży
+ 1 - 0
dist/assets/_dialog.5c0eecd7.css


Plik diff jest za duży
+ 0 - 1
dist/assets/_dialog.8cd140fd.css


Plik diff jest za duży
+ 0 - 1
dist/assets/_input.2f756a28.css


Plik diff jest za duży
+ 1 - 0
dist/assets/_input.8be04cf3.css


Plik diff jest za duży
+ 0 - 1
dist/assets/_select.2a9f1999.css


Plik diff jest za duży
+ 1 - 0
dist/assets/_select.97e73788.css


Plik diff jest za duży
+ 0 - 1
dist/assets/accountManage.0532d389.css


Plik diff jest za duży
+ 1 - 0
dist/assets/accountManage.896650f8.css


Plik diff jest za duży
+ 0 - 1
dist/assets/adqManage.694a1958.css


Plik diff jest za duży
+ 1 - 0
dist/assets/adqManage.c4615848.css


Plik diff jest za duży
+ 0 - 1
dist/assets/element-plus.bcd240b3.css


Plik diff jest za duży
+ 1 - 0
dist/assets/element-plus.f07d23db.css


Plik diff jest za duży
+ 1 - 0
dist/assets/error.284bd084.css


Plik diff jest za duży
+ 0 - 1
dist/assets/error.97c715ec.css


Plik diff jest za duży
+ 0 - 1
dist/assets/home.1a33e614.css


Plik diff jest za duży
+ 1 - 0
dist/assets/home.9f35d1d5.css


Plik diff jest za duży
+ 0 - 1
dist/assets/index.03bcea03.css


Plik diff jest za duży
+ 1 - 0
dist/assets/index.0aba4cba.css


Plik diff jest za duży
+ 0 - 1
dist/assets/index.28168f3c.css


Plik diff jest za duży
+ 0 - 1
dist/assets/index.2b4782a6.css


Plik diff jest za duży
+ 0 - 1
dist/assets/index.3191aa97.css


Plik diff jest za duży
+ 1 - 0
dist/assets/index.37b5a88f.css


Plik diff jest za duży
+ 0 - 1
dist/assets/index.4d3598a8.css


Plik diff jest za duży
+ 0 - 1
dist/assets/index.563e5dd5.css


Plik diff jest za duży
+ 0 - 1
dist/assets/index.648b9e10.css


Plik diff jest za duży
+ 1 - 0
dist/assets/index.661d5a46.css


Plik diff jest za duży
+ 0 - 1
dist/assets/index.6fff4b74.css


Plik diff jest za duży
+ 1 - 0
dist/assets/index.766d410e.js


Plik diff jest za duży
+ 1 - 0
dist/assets/index.887b6b4f.css


Plik diff jest za duży
+ 1 - 0
dist/assets/index.9234b91e.css


Plik diff jest za duży
+ 0 - 1
dist/assets/index.9f20b33d.js


Plik diff jest za duży
+ 1 - 0
dist/assets/index.9f34d59b.css


Plik diff jest za duży
+ 1 - 1
dist/assets/index.3ba3880e.css


Plik diff jest za duży
+ 0 - 1
dist/assets/index.a956448f.css


Plik diff jest za duży
+ 1 - 0
dist/assets/index.ca1fc3d5.css


Plik diff jest za duży
+ 1 - 0
dist/assets/index.d52cf2c0.css


Plik diff jest za duży
+ 1 - 0
dist/assets/index.eb07d23d.css


Plik diff jest za duży
+ 1 - 0
dist/assets/index_head.bd849dfa.css


Plik diff jest za duży
+ 0 - 1
dist/assets/index_head.fddecd4a.css


Plik diff jest za duży
+ 0 - 1
dist/assets/login.1a99fd9e.css


Plik diff jest za duży
+ 1 - 0
dist/assets/login.38e47126.css


Plik diff jest za duży
+ 1 - 0
dist/assets/materialBlock.4d7b717e.css


Plik diff jest za duży
+ 0 - 1
dist/assets/materialBlock.8868a5d8.css


Plik diff jest za duży
+ 0 - 1
dist/assets/menuList.30c26da6.css


Plik diff jest za duży
+ 1 - 0
dist/assets/menuList.45586ed7.css


Plik diff jest za duży
+ 1 - 0
dist/assets/noData.10280069.css


Plik diff jest za duży
+ 0 - 1
dist/assets/noData.c79b2ed6.css


Plik diff jest za duży
+ 0 - 1
dist/assets/tableInfo.b66a93c1.css


Plik diff jest za duży
+ 1 - 0
dist/assets/tableInfo.fc4a7715.css


Plik diff jest za duży
+ 1 - 0
dist/assets/timeScreen.0ab73184.css


Plik diff jest za duży
+ 0 - 1
dist/assets/timeScreen.9bc08e8b.css


Plik diff jest za duży
+ 1 - 0
dist/assets/weekTime.4d489b20.css


Plik diff jest za duży
+ 0 - 1
dist/assets/weekTime.d5ba4542.css


+ 3 - 3
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.9f20b33d.js"></script>
9
+    <script type="module" crossorigin src="./assets/index.766d410e.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">
@@ -21,13 +21,13 @@
21 21
     <link rel="modulepreload" href="./js/@ctrl/@ctrl.9c8f424f.js">
22 22
     <link rel="modulepreload" href="./js/escape-html/escape-html.d572c0fd.js">
23 23
     <link rel="modulepreload" href="./js/normalize-wheel-es/normalize-wheel-es.94de1731.js">
24
-    <link rel="modulepreload" href="./js/element-plus/element-plus.92d15e14.js">
24
+    <link rel="modulepreload" href="./js/element-plus/element-plus.169ac68f.js">
25 25
     <link rel="modulepreload" href="./js/@element-plus/@element-plus.6e467d43.js">
26 26
     <link rel="modulepreload" href="./js/tslib/tslib.e35f93b8.js">
27 27
     <link rel="modulepreload" href="./js/zrender/zrender.fe59a237.js">
28 28
     <link rel="modulepreload" href="./js/echarts/echarts.5b4b2848.js">
29 29
     <link rel="stylesheet" href="./assets/nprogress.18a10d8a.css">
30
-    <link rel="stylesheet" href="./assets/element-plus.bcd240b3.css">
30
+    <link rel="stylesheet" href="./assets/element-plus.f07d23db.css">
31 31
     <link rel="stylesheet" href="./assets/index.c232086f.css">
32 32
   </head>
33 33
   <body>

Plik diff jest za duży
+ 1 - 1
dist/js/_dialog/_dialog.2ed4ce45.js


Plik diff jest za duży
+ 1 - 1
dist/js/_drawer/_drawer.eab510de.js


Plik diff jest za duży
+ 0 - 1
dist/js/_dropdown/_dropdown.8cd6ec7c.js


Plik diff jest za duży
+ 1 - 0
dist/js/_dropdown/_dropdown.ec288103.js


Plik diff jest za duży
+ 1 - 1
dist/js/_input/_input.4824d8b5.js


Plik diff jest za duży
+ 1 - 0
dist/js/_popconfirm/_popconfirm.26f3fae4.js


Plik diff jest za duży
+ 0 - 1
dist/js/_popconfirm/_popconfirm.b4f5b3a7.js


Plik diff jest za duży
+ 1 - 1
dist/js/_select/_select.deb22e1c.js


Plik diff jest za duży
+ 1 - 0
dist/js/adTask/index.0eff1f81.js


Plik diff jest za duży
+ 0 - 1
dist/js/adTask/index.b27ebda0.js


Plik diff jest za duży
+ 0 - 1
dist/js/api/api.2cda37ce.js


Plik diff jest za duży
+ 1 - 0
dist/js/api/api.2de2b1d9.js


Plik diff jest za duży
+ 1 - 1
dist/js/basisMoudle/accountManage.71bd8dcd.js


Plik diff jest za duży
+ 1 - 1
dist/js/basisMoudle/error.90e99c2f.js


Plik diff jest za duży
+ 1 - 1
dist/js/basisMoudle/home.9e7bf74a.js


Plik diff jest za duży
+ 1 - 1
dist/js/basisMoudle/login.59032fb6.js


Plik diff jest za duży
+ 1 - 1
dist/js/businessMoudle/adqManage.b9bbcf08.js


Plik diff jest za duży
+ 1 - 1
dist/js/collectClip/index.1b73a5d9.js


Plik diff jest za duży
+ 1 - 1
dist/js/configArea/index.a69947ab.js


Plik diff jest za duży
+ 2 - 0
dist/js/element-plus/element-plus.169ac68f.js


Plik diff jest za duży
+ 0 - 2
dist/js/element-plus/element-plus.92d15e14.js


Plik diff jest za duży
+ 1 - 1
dist/js/gdtList/index.d5404575.js


Plik diff jest za duży
+ 1 - 1
dist/js/index/index.e0a5370e.js


Plik diff jest za duży
+ 1 - 1
dist/js/index/index.d5b52aae.js


Plik diff jest za duży
+ 1 - 1
dist/js/layout/index.23e2d7f4.js


Plik diff jest za duży
+ 1 - 1
dist/js/layout/index_head.aeb3c484.js


Plik diff jest za duży
+ 1 - 1
dist/js/materialBlock/materialBlock.ae08e942.js


Plik diff jest za duży
+ 1 - 1
dist/js/materialLibrary/index.18f64472.js


Plik diff jest za duży
+ 1 - 1
dist/js/materialTs/materialTs.baa935cb.js


Plik diff jest za duży
+ 1 - 1
dist/js/menuPermission/menuList.ef90f14d.js


Plik diff jest za duży
+ 1 - 1
dist/js/miniprogram/index.4eeb923e.js


Plik diff jest za duży
+ 1 - 1
dist/js/noData/noData.ddc2af49.js


dist/js/sortablejs/sortablejs.4f86162a.js → dist/js/sortablejs/sortablejs.cbc4d4ad.js


Plik diff jest za duży
+ 1 - 1
dist/js/tableInfo/tableInfo.edf1f453.js


Plik diff jest za duży
+ 1 - 1
dist/js/taskList/index.6a75fab4.js


Plik diff jest za duży
+ 1 - 1
dist/js/timeScreen/timeScreen.4eedec65.js


dist/js/vue/vue.86f330e1.js → dist/js/vue/vue.051f0374.js


Plik diff jest za duży
+ 1 - 1
dist/js/vuedraggable/vuedraggable.e4c47c81.js


Plik diff jest za duży
+ 1 - 1
dist/js/weekTime/weekTime.985d19cf.js


+ 325 - 0
src/components/businessMoudle/adTask/detail/index.vue

@@ -0,0 +1,325 @@
1
+<template>
2
+  <Drawer :drawerShow="drawer_show" @close="closeDrawer" drawerSize="70%" :headerSlotFlag="true">
3
+    <template v-slot:headerSlot>
4
+      <div class="flex_between">
5
+        <h4 class="lMar10 c-000 f22 c-theme_text">{{ '详情' }}</h4>
6
+        <el-icon class="pointer" @click="closeDrawer">
7
+          <CloseBold />
8
+        </el-icon>
9
+      </div>
10
+    </template>
11
+    <template v-slot:content>
12
+      <div class="container" v-loading="loading">
13
+        <el-collapse v-model="activeNames" @change="handleCollapseChange">
14
+          <el-collapse-item title="任务基本信息" name="1">
15
+            <div class="flexWrap">
16
+              <div class="base-info">
17
+                <div class="label">任务名称:</div>
18
+                <div class="con">{{ task_info?.info?.name }}</div>
19
+              </div>
20
+              <div class="base-info">
21
+                <div class="label">账户:</div>
22
+                <el-tooltip effect="dark" placement="top">
23
+                  <template #content><span
24
+                      v-html="task_info?.info?.account?.map((v) => `${v.account_name}(${v.account_id})<br/>`).join('')"></span></template>
25
+                  <div class="con">
26
+                    <span v-for="(item, index) in task_info?.info?.account">{{ item.account_name }}
27
+                      <em v-if="index != task_info?.info?.account?.length - 1">、</em>
28
+                    </span>
29
+                  </div>
30
+                </el-tooltip>
31
+              </div>
32
+              <div class="base-info">
33
+                <div class="label">提交广告计划数:</div>
34
+                <div class="con">{{ task_info?.info?.camp_count }}</div>
35
+              </div>
36
+              <div class="base-info">
37
+                <div class="label">提交广告数:</div>
38
+                <div class="con">{{ task_info?.info?.ad_count }}</div>
39
+              </div>
40
+              <div class="base-info">
41
+                <div class="label">提交规则:</div>
42
+                <div class="con">{{ task_info?.info?.comtype == '1' ? '立即提交' : task_info?.info?.comtype == '2' ? '定时提交' :
43
+                  '' }}</div>
44
+              </div>
45
+              <div class="base-info">
46
+                <div class="label">开始执行时间:</div>
47
+                <div class="con">{{ task_info?.info?.dotime }}</div>
48
+              </div>
49
+            </div>
50
+          </el-collapse-item>
51
+        </el-collapse>
52
+        <!-- tab切换 -->
53
+        <div class="menu bMar15">
54
+          <div :class="['menu-item', tab == item.value ? 'menu-item-active' : '']" v-for="item in tab_list" @click="handleSelect(item.value)">{{ item.label
55
+          }}</div>
56
+        </div>
57
+        <!-- 提交信息 -->
58
+        <template v-if="tab == 1">
59
+          <el-table ref="tableRef" :data="task_info?.list" :header-cell-style="tableHeaderStyle"
60
+          border empty-text="暂无数据" max-height="70vh">
61
+          <template v-for="item in tableInfo.descol">
62
+            <el-table-column :fixed="item.fixed" :prop="item.prop" :min-width="item.width ? item.width : '80px'">
63
+              <template #header>
64
+                <div class="flex">
65
+                  <span>{{ item.label }}</span>
66
+                </div>
67
+              </template>
68
+              <template #default="scope">
69
+                <!-- 提交状态 -->
70
+                <div v-if="item.prop == 'status'">
71
+                  <span
72
+                    :class="['task-status', 'rMar10', scope.row.status == 2 && (scope.row.fail_num == 0 ? 'success' : 'fail')]">
73
+                    <span class="icon task-status--finish-icon"></span>
74
+                    <span class="task-status--finish-font">{{ scope.row.status == 0 ? '待提交' : scope.row.status == 1 ?
75
+                      '提交中' :
76
+                      scope.row.status == 2 ? '提交完成' : '' }} </span>
77
+                  </span>
78
+                  <span class="opt-link" v-if="scope.row.status == 2"> 成功:{{ scope.row.success_num }} 失败:{{
79
+                    scope.row.fail_num
80
+                  }} </span>
81
+                </div>
82
+                <!-- 其他 -->
83
+                <div class="cellDiv" v-else>
84
+                  <el-tooltip :disabled="!(scope.row[item.prop] && scope.row[item.prop].length > 30)" effect="dark"
85
+                    :content="scope.row[item.prop] + ''">
86
+                    <div class="clampTwo line21" style="flex: 1">
87
+                      {{ scope.row[item.prop] || scope.row[item.prop] == 0 ? scope.row[item.prop] : '-' }}
88
+                    </div>
89
+                  </el-tooltip>
90
+                </div>
91
+              </template>
92
+            </el-table-column>
93
+          </template>
94
+        </el-table>
95
+        </template>
96
+        <!-- 执行记录 -->
97
+        <template v-if="tab == 2">
98
+          <el-table ref="tableRef" :data="tableInfo.taskRecordList" :header-cell-style="tableHeaderStyle"
99
+          border empty-text="暂无数据" max-height="70vh">
100
+          <template v-for="item in tableInfo.recordDescol">
101
+            <el-table-column :fixed="item.fixed" :prop="item.prop" :min-width="item.width ? item.width : '80px'">
102
+              <template #header>
103
+                <div class="flex">
104
+                  <span>{{ item.label }}</span>
105
+                </div>
106
+              </template>
107
+              <template #default="scope">
108
+                <!-- 提交状态 -->
109
+                <div v-if="item.prop == 'status'">
110
+                  <span
111
+                    :class="['task-status', 'rMar10', scope.row.status == 2 && (scope.row.fail_num == 0 ? 'success' : 'fail')]">
112
+                    <span class="icon task-status--finish-icon"></span>
113
+                    <span class="task-status--finish-font">{{ scope.row.status == 0 ? '待提交' : scope.row.status == 1 ?
114
+                      '提交中' :
115
+                      scope.row.status == 2 ? '提交完成' : '' }} </span>
116
+                  </span>
117
+                </div>
118
+                <!-- 其他 -->
119
+                <div class="cellDiv" v-else>
120
+                  <el-tooltip :disabled="!(scope.row[item.prop] && scope.row[item.prop].length > 30)" effect="dark"
121
+                    :content="scope.row[item.prop] + ''">
122
+                    <div class="clampTwo line21" style="flex: 1">
123
+                      {{ scope.row[item.prop] || scope.row[item.prop] == 0 ? scope.row[item.prop] : '-' }}
124
+                    </div>
125
+                  </el-tooltip>
126
+                </div>
127
+              </template>
128
+            </el-table-column>
129
+          </template>
130
+        </el-table>
131
+        </template>
132
+      </div>
133
+    </template>
134
+  </Drawer>
135
+</template>
136
+<script setup lang="ts">
137
+import Drawer from '@/components/capsulationMoudle/_drawer.vue'
138
+import { reactive, ref } from 'vue';
139
+import { taskDetail, taskRecord } from '../ts/api'
140
+import { exportDefine } from '../ts/define';
141
+
142
+const loading = ref(false)
143
+const drawer_show = ref(false)
144
+const task_id = ref()
145
+const task_info = ref()
146
+const activeNames = ref(["1"])
147
+const tab = ref(1)
148
+const tab_list = [
149
+  { label: '提交信息', value: 1 },
150
+  { label: '执行记录', value: 2 },
151
+]
152
+const tableInfo:any = reactive({
153
+  taskRecordList:[],//执行记录
154
+  descol: [
155
+    { prop: 'account_name', label: '账户', fixed: '', width: '120' },
156
+    { prop: 'optimization_goal', label: '转化目标', fixed: '' },
157
+    { prop: 'deep_conversion_spec_goal', label: '深度转化目标', fixed: '' },
158
+    { prop: 'bid_amount', label: '转化目标出价', fixed: '' },
159
+    { prop: 'deep_bid_amount', label: '深度转化目标出价', fixed: '' },
160
+    { prop: 'ad_count', label: '新建广告数', fixed: '' },
161
+    { prop: 'status', label: '提交结果', fixed: '' ,width: '140' },
162
+  ],
163
+  recordDescol: [
164
+    { prop: 'created_at', label: '创建时间', fixed: ''},
165
+    { prop: 'ad_count', label: '提交广告数', fixed: ''},
166
+    { prop: 'status', label: '状态', fixed: ''},
167
+  ]
168
+})
169
+const {
170
+  tableHeaderStyle,
171
+} = exportDefine()
172
+
173
+/**获取任务详情 */
174
+const getTaskDetail = () => {
175
+  loading.value = true
176
+  taskDetail({
177
+    task_id: task_id.value,
178
+  }).then((res) => {
179
+    loading.value = false
180
+    task_info.value = res
181
+  }).catch(() => { loading.value = false })
182
+}
183
+
184
+/**获取执行记录 */
185
+const getTaskRecord = () => {
186
+  loading.value = true
187
+  taskRecord({task_id: task_id.value}).then((res:any)=>{
188
+    loading.value = false
189
+    if(res){
190
+      tableInfo.taskRecordList = [res]
191
+    }
192
+  }).catch(()=>{ loading.value = false})
193
+}
194
+
195
+/**点击切换 */
196
+const handleSelect = (key: any) => {
197
+  if(key != tab.value && key == 2) {
198
+    getTaskRecord()
199
+  }
200
+  tab.value = key
201
+}
202
+
203
+/**折叠面板 */
204
+const handleCollapseChange = (val: string[]) => {
205
+  console.log(val)
206
+}
207
+
208
+/**关闭Detail */
209
+const closeDrawer = () => {
210
+  drawer_show.value = false
211
+  tab.value = 1;
212
+}
213
+
214
+const switchShow = (val: boolean, id: any) => {
215
+  drawer_show.value = val
216
+  task_id.value = id
217
+  if (val) {
218
+    getTaskDetail()
219
+  }
220
+}
221
+// 父组件共享值
222
+defineExpose({
223
+  switchShow,
224
+});
225
+</script>
226
+<style scoped lang="scss">
227
+:deep(.el-collapse-item__header) {
228
+  color: #333;
229
+  font-weight: bold;
230
+  font-size: 16px;
231
+}
232
+
233
+:deep(.el-collapse-item__arrow) {
234
+  color: #333;
235
+}
236
+
237
+:deep(.el-collapse-item__wrap) {
238
+  border-bottom: 0;
239
+}
240
+
241
+.container {
242
+  min-height: 80vh;
243
+  margin-top: -20px;
244
+}
245
+
246
+.base-info {
247
+  display: flex;
248
+  align-items: center;
249
+  width: 50%;
250
+
251
+  .label,
252
+  .con {
253
+    line-height: 31px;
254
+    overflow: hidden;
255
+    font-size: 12px;
256
+    line-height: 31px;
257
+    color: #444;
258
+    text-overflow: ellipsis;
259
+    white-space: nowrap;
260
+  }
261
+
262
+  .label {
263
+    width: 100px;
264
+  }
265
+}
266
+
267
+.menu {
268
+  display: flex;
269
+  align-items: center;
270
+  border-bottom: 1px solid #ebeef5;
271
+  height: 40px;
272
+
273
+  .menu-item {
274
+    font-size: 16px;
275
+    color: #333;
276
+    font-weight: bold;
277
+    margin-right: 40px;
278
+    cursor: pointer;
279
+
280
+    &.menu-item-active {
281
+      color: #3173FF;
282
+      position: relative;
283
+
284
+      &::after {
285
+        content: "";
286
+        position: absolute;
287
+        left: 0;
288
+        bottom: -13px;
289
+        width: 100%;
290
+        height: 2px;
291
+        background-color: #3173FF;
292
+        z-index: 1;
293
+      }
294
+    }
295
+  }
296
+}
297
+.task-status {
298
+  .icon {
299
+    display: inline-block;
300
+    width: 7px;
301
+    height: 7px;
302
+    margin-right: 8px;
303
+    border-radius: 50%;
304
+  }
305
+
306
+  &.success {
307
+    .icon {
308
+      background-color: #28ba52;
309
+    }
310
+
311
+    color: #28ba52;
312
+  }
313
+
314
+  &.fail {
315
+    .icon {
316
+      background-color: #ec5f2e;
317
+    }
318
+
319
+    color: #ec5f2e;
320
+  }
321
+}
322
+.opt-link {
323
+  color: #197afb;
324
+  text-decoration: none;
325
+}</style>

+ 11 - 3
src/components/businessMoudle/adTask/index.vue

@@ -8,7 +8,7 @@
8 8
       :options="pageInfo.statusList" />
9 9
     <TimeScreen title="时间" selectWidth="260px" :haveQuick="false" :clearFlag="true" :valueIsKong="true" ref="timeRef"
10 10
       @init="() => init()"></TimeScreen>
11
-    <span class="pointer c-theme lMar10" @click="clearEvent">清空</span>
11
+    <span class="pointer c-theme lMar10" @click="()=>{clearEvent();init()}">清空</span>
12 12
   </div>
13 13
   <!-- 表格 -->
14 14
   <el-table v-loading="loading" ref="tableRef" :data="tableInfo.tableList" :header-cell-style="tableHeaderStyle"
@@ -47,7 +47,7 @@
47 47
             }} </span>
48 48
           </div>
49 49
           <div v-else-if="item.prop == 'operate'">
50
-            <span class="opt-link rMar10 pointer"> 详情 </span>
50
+            <span class="opt-link rMar10 pointer" @click="goDetail(scope.row.id)"> 详情 </span>
51 51
             <el-popconfirm title="确定要删除该任务?" @confirm="deleteTask(scope.row.id)">
52 52
               <template #reference>
53 53
                 <span class="opt-link pointer"> 删除 </span>
@@ -73,6 +73,8 @@
73 73
   </div>
74 74
   <!-- 修改任务名称 -->
75 75
   <EditTaskName ref="EditTaskNameRef" @confirm="EditTaskNameConfig"></EditTaskName>
76
+  <!-- 任务详情 -->
77
+  <Detail ref="DetailRef"></Detail>
76 78
 </template>
77 79
 <script setup lang="ts">
78 80
 import Input from '@/components/capsulationMoudle/_input.vue'
@@ -83,8 +85,10 @@ import { onBeforeMount } from 'vue'
83 85
 import { getTaskList, adTaskDel, adTaskEdit } from './ts/api'
84 86
 import { ElMessage } from 'element-plus'
85 87
 import EditTaskName from './dialog/editTaskName.vue'
88
+import Detail from './detail/index.vue'
86 89
 
87 90
 const {
91
+  DetailRef,
88 92
   EditTaskNameRef,
89 93
   InputRef_text,
90 94
   acRef,
@@ -117,7 +121,6 @@ const init = (page?: number) => {
117 121
   }
118 122
   getTaskList(paramsModel).then((res: any) => {
119 123
     loading.value = false
120
-    console.log(res)
121 124
     tableInfo.tableList = res.data;
122 125
     tableInfo.total = res.pageInfo.total;
123 126
     tableInfo.totalPages = res.pageInfo.totalPages;
@@ -130,6 +133,11 @@ const handleCurrentChange = (val) => {
130 133
   init(val)
131 134
 }
132 135
 
136
+/**详情 */
137
+const goDetail = (id) => {
138
+  DetailRef.value?.switchShow(true,id)
139
+}
140
+
133 141
 /**删除任务 */
134 142
 const deleteTask = (id) => {
135 143
   loading.value = true

+ 17 - 1
src/components/businessMoudle/adTask/ts/api.ts

@@ -62,7 +62,23 @@ interface IAdTaskEdit {
62 62
 }
63 63
 export function adTaskEdit(params: IAdTaskEdit) {
64 64
   return new Promise(async (resolve,reject)=>{
65
-    const res: any = await http.post('api/ad/adTaskEdit', params)
65
+    const res: any = await http.post('/api/ad/adTaskEdit', params)
66
+    if (res.errNo == 0) {
67
+      resolve(res.rst)
68
+    } else {
69
+      ElMessage.error(res.errMsg)
70
+      reject()
71
+    }
72
+  })
73
+}
74
+
75
+/**广告任务详情 */
76
+interface ITaskDetail {
77
+  task_id: string
78
+}
79
+export function taskDetail(params: ITaskDetail) {
80
+  return new Promise(async (resolve,reject)=>{
81
+    const res: any = await http.get('/api/ad/taskDetail', params)
66 82
     if (res.errNo == 0) {
67 83
       resolve(res.rst)
68 84
     } else {

+ 9 - 9
src/components/businessMoudle/adTask/ts/define.ts

@@ -9,6 +9,7 @@ const acRef = ref<{value:any}>()
9 9
 const statusRef = ref<{value:any}>()
10 10
 const timeRef = ref<{dateVal:any}>()
11 11
 const EditTaskNameRef = ref<{ switchShow: (val: Boolean, info?: any) => void }>()
12
+const DetailRef = ref<{ switchShow: (val: Boolean, info?: any) => void }>()
12 13
 const loading = ref(false)
13 14
 
14 15
 const tableInfo = reactive({
@@ -33,9 +34,9 @@ const tableInfo = reactive({
33 34
 const pageInfo = reactive({
34 35
   acList:[],
35 36
   statusList:[
36
-      {value:1,label:'所有未删除'},
37
-      {value:2,label:'启用'},
38
-      {value:3,label:'暂停'},
37
+      {value:0,label:'待提交'},
38
+      {value:1,label:'提交中'},
39
+      {value:2,label:'提交完成'},
39 40
   ],
40 41
   ad_statusList:[]
41 42
 })
@@ -62,16 +63,15 @@ const init_acList = async () => {
62 63
 }
63 64
 
64 65
 const clearEvent = () => {
65
-  nextTick(()=>{
66
-    InputRef_text.value!.value = ''
67
-    acRef.value!.value = []
68
-    statusRef.value!.value = ''
69
-    timeRef.value!.dateVal = ''
70
-  })
66
+  InputRef_text.value!.value = ''
67
+  acRef.value!.value = []
68
+  statusRef.value!.value = ''
69
+  timeRef.value!.dateVal = ''
71 70
 }
72 71
 
73 72
 export const exportDefine = () => {
74 73
   return {
74
+    DetailRef,
75 75
     EditTaskNameRef,
76 76
     InputRef_text,
77 77
     acRef,