xiuli.gao hace 7 meses
padre
commit
66667f0f6a
Se han modificado 43 ficheros con 177 adiciones y 68 borrados
  1. 1 1
      dist/assets/index.10d08de1.js
  2. 1 0
      dist/assets/index.ee551318.css
  3. 0 1
      dist/assets/index.f3716eb7.css
  4. 1 1
      dist/index.html
  5. 1 1
      dist/js/Home/index.e9767018.js
  6. 1 1
      dist/js/_dialog/_dialog.543e1a3a.js
  7. 1 1
      dist/js/_input/_input.7d807462.js
  8. 1 1
      dist/js/_select/_select.6d0e6ae2.js
  9. 0 3
      dist/js/acStatement.vue/index.00bbdb48.js
  10. 3 0
      dist/js/acStatement.vue/index.a3e0e672.js
  11. 1 1
      dist/js/adTask/index.563a392b.js
  12. 1 1
      dist/js/adqManage/index.c878db47.js
  13. 1 1
      dist/js/basisMoudle/error.615a2467.js
  14. 1 1
      dist/js/basisMoudle/login.634dbd58.js
  15. 1 1
      dist/js/collectClip/index.0c3f2799.js
  16. 1 1
      dist/js/configArea/index.4bf9251e.js
  17. 1 1
      dist/js/define/define.eb2aff49.js
  18. 1 1
      dist/js/gdtList/index.cee64210.js
  19. 1 1
      dist/js/index/index.18820022.js
  20. 1 1
      dist/js/index/index.e278f0f3.js
  21. 1 1
      dist/js/index/index.bdc1adf7.js
  22. 1 1
      dist/js/layout/index.2a9fea76.js
  23. 1 1
      dist/js/layout/index_head.e795a871.js
  24. 1 1
      dist/js/limitManage/index.6d8c07a8.js
  25. 1 1
      dist/js/materialBlock/materialBlock.72491be0.js
  26. 1 1
      dist/js/materialLibrary/index.48b08b1a.js
  27. 1 1
      dist/js/memberManage/index.33c6c1ac.js
  28. 1 1
      dist/js/menu/index.026f0bfa.js
  29. 1 1
      dist/js/miniprogram/index.8aa88431.js
  30. 1 1
      dist/js/projectManage/index.c1d85721.js
  31. 1 1
      dist/js/radioGroup/radioGroup.58b9d65b.js
  32. 1 1
      dist/js/tableInfo/tableInfo.a0ddca1a.js
  33. 1 1
      dist/js/taskList/index.9e1e9989.js
  34. 1 1
      dist/js/teamManage/index.acfc443e.js
  35. 1 1
      dist/js/timeScreen/timeScreen.2742a66c.js
  36. 1 1
      dist/js/warning/warning.6e0fa8aa.js
  37. 1 1
      dist/js/wechatPage/index.55a51ea8.js
  38. 1 1
      dist/js/weekTime/weekTime.4ea50224.js
  39. 34 1
      src/components/businessMoudle/dataManagement/acStatement.vue/hooks/index.ts
  40. 3 1
      src/components/businessMoudle/dataManagement/acStatement.vue/hooks/trend.ts
  41. 72 25
      src/components/businessMoudle/dataManagement/acStatement.vue/index.vue
  42. 20 2
      src/components/businessMoudle/dataManagement/acStatement.vue/projectDataList.vue
  43. 10 1
      src/components/businessMoudle/dataManagement/acStatement.vue/trend.vue

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/assets/index.10d08de1.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 0
dist/assets/index.ee551318.css


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 1
dist/assets/index.f3716eb7.css


+ 1 - 1
dist/index.html

@@ -12,7 +12,7 @@
12 12
 			document.write('<script src="' + src + '"><\/script>');
13 13
 			})();
14 14
     </script>
15
-    <script type="module" crossorigin src="./assets/index.10d08de1.js"></script>
15
+    <script type="module" crossorigin src="./assets/index.48c5a837.js"></script>
16 16
     <link rel="modulepreload" href="./js/@vue/@vue.5bfcce30.js">
17 17
     <link rel="modulepreload" href="./js/vue-router/vue-router.ccba075e.js">
18 18
     <link rel="modulepreload" href="./js/vue-demi/vue-demi.4f3c4c97.js">

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/Home/index.e9767018.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/_dialog/_dialog.543e1a3a.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/_input/_input.7d807462.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/_select/_select.6d0e6ae2.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 3
dist/js/acStatement.vue/index.00bbdb48.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 3 - 0
dist/js/acStatement.vue/index.a3e0e672.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/adTask/index.563a392b.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/adqManage/index.c878db47.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/basisMoudle/error.615a2467.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/basisMoudle/login.634dbd58.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/collectClip/index.0c3f2799.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/configArea/index.4bf9251e.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/define/define.eb2aff49.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/gdtList/index.cee64210.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/index/index.18820022.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/index/index.e278f0f3.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/index/index.bdc1adf7.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/layout/index.2a9fea76.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/layout/index_head.e795a871.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/limitManage/index.6d8c07a8.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/materialBlock/materialBlock.72491be0.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/materialLibrary/index.48b08b1a.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/memberManage/index.33c6c1ac.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/menu/index.026f0bfa.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/miniprogram/index.8aa88431.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/projectManage/index.c1d85721.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/radioGroup/radioGroup.58b9d65b.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/tableInfo/tableInfo.a0ddca1a.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/taskList/index.9e1e9989.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/teamManage/index.acfc443e.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/timeScreen/timeScreen.2742a66c.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/warning/warning.6e0fa8aa.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/wechatPage/index.55a51ea8.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1 - 1
dist/js/weekTime/weekTime.4ea50224.js


+ 34 - 1
src/components/businessMoudle/dataManagement/acStatement.vue/hooks/index.ts

@@ -10,6 +10,7 @@ export const ExpIndex = () => {
10 10
   const dataListRef = ref()
11 11
   const acTrendRef = ref<{change: ()=>void}>()
12 12
   const teamRef = ref()
13
+  const projectRef = ref()
13 14
   const acRef = ref()
14 15
   const userRef = ref()
15 16
   const pageInfo = reactive({
@@ -26,9 +27,17 @@ export const ExpIndex = () => {
26 27
     acList: [],
27 28
     userList: [],
28 29
     teamList: [],
30
+    projectList: [],//项目
31
+    departList: [],//部门
32
+    project_ids: [],
33
+    department_ids: [],
29 34
     user_ids: [],//优化师
30 35
     account_ids: [],//账号
31 36
     team_ids: [],//团队
37
+    departmentProps: {
38
+      children: 'childs',
39
+      label: 'name',
40
+    }
32 41
   })
33 42
 
34 43
   /**获取账户列表 */
@@ -57,7 +66,29 @@ export const ExpIndex = () => {
57 66
     })
58 67
   }
59 68
 
69
+  /**项目列表 */
70
+  const getProjectList = async (page?:any,pageSize?:any) => {
71
+    let res:any = await http.get(Api.project_list,{})
72
+    if(res&&res.errNo=='0'){
73
+      pageInfo.projectList = res.rst
74
+    }else{
75
+      ElMessage.error(res.errMsg)
76
+    }
77
+  }
78
+
79
+  /**部门列表 */
80
+  const getDepartList = async () => {
81
+    let res:any = await http.get(Api.depart_list)
82
+    if(res&&res.errNo=='0'){
83
+      let resNew:any = res.rst
84
+      pageInfo.departList = resNew
85
+    }else{
86
+      ElMessage.error(res.errMsg)
87
+    }
88
+  }
89
+
60 90
   return {
91
+    projectRef,
61 92
     dataListRef,
62 93
     projectDataListRef,
63 94
     acTrendRef,
@@ -67,6 +98,8 @@ export const ExpIndex = () => {
67 98
     pageInfo,
68 99
     init_acList,
69 100
     getUserList,
70
-    getTeamList
101
+    getTeamList,
102
+    getProjectList,
103
+    getDepartList
71 104
   }
72 105
 }

+ 3 - 1
src/components/businessMoudle/dataManagement/acStatement.vue/hooks/trend.ts

@@ -12,7 +12,9 @@ export interface IReportTrend {
12 12
   user_ids?: any[],
13 13
   account_ids?: any[],
14 14
   team_ids?: any[],
15
-  top_num: number
15
+  top_num: number,
16
+  project_ids?: any[],
17
+  department_ids?: any[]
16 18
 }
17 19
 
18 20
 export const ExpTrend = () => {

+ 72 - 25
src/components/businessMoudle/dataManagement/acStatement.vue/index.vue

@@ -24,11 +24,51 @@
24 24
     <div class="flex tMar15">
25 25
       <div class="label">筛选维度:</div>
26 26
       <div class="flex flex_1">
27
-        <el-input v-model="pageInfo.keyword" v-if="pageInfo.data_group != 'project'" style="width: 200px" placeholder="请输入关键词" clearable @clear="init" @keyup.enter.native="init">
28
-          <template #append>
29
-            <el-button :icon="Search" @click="init"/>
27
+        <template v-if="pageInfo.data_group != 'project'" >
28
+          <el-input v-model="pageInfo.keyword" style="width: 200px" placeholder="请输入关键词" clearable @clear="init" @keyup.enter.native="init">
29
+            <template #append>
30
+              <el-button :icon="Search" @click="init"/>
31
+            </template>
32
+          </el-input>
33
+          <template v-if="userInfo?.userAuth <= 10">
34
+            <div class="label lMar20 rMar10">团队</div>
35
+            <Select ref="teamRef"
36
+                  selectWidth="180px"
37
+                  @changeEvent="selectChange('teamRef')" @clearEvent="selectChange('teamRef')"
38
+                  :isMultiple="true"
39
+                  :filterFlag="true"
40
+                  :optObj="{k:'id',la:'name',val:'id'}"
41
+                  :options="pageInfo.teamList"/>
30 42
           </template>
31
-        </el-input>
43
+        </template>
44
+
45
+        <template v-if="pageInfo.data_group == 'project'">
46
+          <div class="label lMar20 rMar10">项目</div>
47
+          <Select ref="projectRef"
48
+              selectWidth="180px"
49
+              @changeEvent="selectChange('projectRef')" @clearEvent="selectChange('projectRef')"
50
+              :isMultiple="true"
51
+              :filterFlag="true"
52
+              :optObj="{k:'id',la:'name',val:'id'}"
53
+              :options="pageInfo.projectList"/>
54
+          <div class="label lMar20 rMar10">部门</div>
55
+          <el-tree-select
56
+            v-model="pageInfo.department_ids"
57
+            :data="pageInfo.departList"
58
+            :props="pageInfo.departmentProps"
59
+            node-key="id"
60
+            multiple
61
+            collapse-tags
62
+            clearable
63
+            check-strictly
64
+            :render-after-expand="false"
65
+            show-checkbox
66
+            @clear="selectChange('departmentRef')"
67
+            @change="selectChange('departmentRef')"
68
+            style="width: 240px"
69
+          />
70
+        </template>
71
+
32 72
         <div class="label lMar20 rMar10">优化师</div>
33 73
         <Select ref="userRef"
34 74
               selectWidth="180px"
@@ -37,16 +77,6 @@
37 77
               :filterFlag="true"
38 78
               :optObj="{k:'id',la:'username',val:'id'}"
39 79
               :options="pageInfo.userList"/>
40
-        <template v-if="userInfo?.userAuth <= 10">
41
-          <div class="label lMar20 rMar10">团队</div>
42
-          <Select ref="teamRef"
43
-                selectWidth="180px"
44
-                @changeEvent="selectChange('teamRef')" @clearEvent="selectChange('teamRef')"
45
-                :isMultiple="true"
46
-                :filterFlag="true"
47
-                :optObj="{k:'id',la:'name',val:'id'}"
48
-                :options="pageInfo.teamList"/>
49
-        </template>
50 80
         <div class="label lMar20 rMar10">账户</div>
51 81
         <Select ref="acRef"
52 82
               selectWidth="180px"
@@ -77,6 +107,7 @@ import projectDataList from './projectDataList.vue'
77 107
 const userInfo = ref()
78 108
 const showDateGroup = ref(true)
79 109
 const {
110
+  projectRef,
80 111
   projectDataListRef,
81 112
   dataListRef,
82 113
   acTrendRef,
@@ -86,7 +117,9 @@ const {
86 117
   pageInfo,
87 118
   init_acList,
88 119
   getUserList,
89
-  getTeamList
120
+  getTeamList,
121
+  getProjectList,
122
+  getDepartList
90 123
 } = ExpIndex()
91 124
 
92 125
 /**点击数据维度 */
@@ -108,30 +141,44 @@ const selectChange = (key) => {
108 141
   if(key == 'acRef') {
109 142
     pageInfo.account_ids = acRef.value?.value;
110 143
   }
144
+  if(key == 'projectRef') {
145
+    pageInfo.project_ids = projectRef.value?.value;
146
+  }
111 147
   init()
112 148
 }
113 149
 
114 150
 const init = () => {
115
-  nextTick(()=>{
116
-    if(acTrendRef.value) {
117
-      acTrendRef.value.change()
118
-    }
119
-    if(pageInfo.data_group == 'project') {
120
-      if(projectDataListRef.value) {
121
-        projectDataListRef.value.init(1)
151
+  if(pageInfo.data_group == 'project') {
152
+      pageInfo.keyword = '';
153
+      pageInfo.team_ids = [];
154
+      nextTick(()=>{
155
+        if(acTrendRef.value) {
156
+          acTrendRef.value.change()
157
+        }
158
+        if(projectDataListRef.value) {
159
+          projectDataListRef.value.init(1)
160
+        }
161
+      })
162
+  }else{
163
+    pageInfo.project_ids = [];
164
+    pageInfo.department_ids = [];
165
+    nextTick(()=>{
166
+      if(acTrendRef.value) {
167
+        acTrendRef.value.change()
122 168
       }
123
-    }else {
124 169
       if(dataListRef.value) {
125 170
         dataListRef.value.init(1)
126 171
       }
127
-    }
128
-  })
172
+    })
173
+  }
129 174
 }
130 175
 
131 176
 onBeforeMount(()=>{
132 177
   userInfo.value = JSON.parse(getCookie('userInfo') as string)
133 178
   init_acList()
134 179
   getUserList()
180
+  getProjectList()
181
+  getDepartList()
135 182
   if(userInfo.value?.userAuth <= 10){//管理员
136 183
     getTeamList()
137 184
   }

+ 20 - 2
src/components/businessMoudle/dataManagement/acStatement.vue/projectDataList.vue

@@ -125,7 +125,8 @@ const exportEvent = async () => {
125 125
     dimension: dimensionRef.value?.value,
126 126
     sys_user_ids: props.mainPageInfo.user_ids,
127 127
     account_ids: props.mainPageInfo.account_ids,
128
-    team_ids: props.mainPageInfo.team_ids,
128
+    project_ids: props.mainPageInfo.project_ids,
129
+    department_ids: props.mainPageInfo.department_ids,
129 130
   }
130 131
   if (tableInfo.sortKey) {
131 132
     params['field'] = tableInfo.sortKey
@@ -141,6 +142,12 @@ const exportEvent = async () => {
141 142
         key_value: "time",
142 143
         label: "时间",
143 144
         tooltip: ""
145
+      },{
146
+        disabled: 1,
147
+        if_sort: 0,
148
+        key_value: "project_name",
149
+        label: "项目名称",
150
+        tooltip: ""
144 151
       }].concat(res.rst.data?.explain)
145 152
 
146 153
     let tHeader = descol.map((v) => {
@@ -175,7 +182,8 @@ const init = async (page?: any, pageSize?: any) => {
175 182
     dimension: dimensionRef.value?.value,
176 183
     sys_user_ids: props.mainPageInfo.user_ids,
177 184
     account_ids: props.mainPageInfo.account_ids,
178
-    team_ids: props.mainPageInfo.team_ids,
185
+    project_ids: props.mainPageInfo.project_ids,
186
+    department_ids: props.mainPageInfo.department_ids,
179 187
   }
180 188
   if (tableInfo.sortKey) {
181 189
     params['field'] = tableInfo.sortKey
@@ -191,6 +199,12 @@ const init = async (page?: any, pageSize?: any) => {
191 199
         key_value: "time",
192 200
         label: "时间",
193 201
         tooltip: ""
202
+      },{
203
+        disabled: 1,
204
+        if_sort: 0,
205
+        key_value: "project_name",
206
+        label: "项目名称",
207
+        tooltip: ""
194 208
       }].concat(res.rst?.data?.explain);
195 209
     tableInfo.tableList = res.rst?.data?.list;
196 210
     tableInfo.total = res.rst?.pageInfo.total
@@ -207,6 +221,10 @@ const getSummaries = (param) => {
207 221
   const sums: string[] = []
208 222
   columns.forEach((column, index) => {
209 223
     if (index === 0) {
224
+      sums[index] = ''
225
+      return
226
+    }
227
+    if (index === 1) {
210 228
       sums[index] = '合计'
211 229
       return
212 230
     }

+ 10 - 1
src/components/businessMoudle/dataManagement/acStatement.vue/trend.vue

@@ -18,6 +18,7 @@
18 18
                   :optObj="{k:'key',la:'name',val:'key'}"
19 19
                   :options="overviewData.list"/>
20 20
           <Select ref="topNumRef"
21
+                  :disableFlag="mainPageInfo.data_group == 'project' ? true : false"
21 22
                   selectWidth="180px"
22 23
                   @changeEvent="change" @clearEvent="change"
23 24
                   :isMultiple="false"
@@ -104,7 +105,11 @@ const change = () => {
104 105
     overviewRef.value.value = 'cost'
105 106
   }
106 107
   if (topNumRef.value && !topNumRef.value.value) {
107
-    topNumRef.value.value = 0
108
+    if(props.mainPageInfo.data_group == 'project') {
109
+      topNumRef.value.value = 10
110
+    }else{
111
+      topNumRef.value.value = 0
112
+    }
108 113
   }
109 114
   if(tabInfo.value == 'trend') {
110 115
     reportTrendEvent({
@@ -117,6 +122,8 @@ const change = () => {
117 122
       user_ids: props.mainPageInfo.user_ids,
118 123
       account_ids: props.mainPageInfo.account_ids,
119 124
       team_ids: props.mainPageInfo.team_ids,
125
+      project_ids: props.mainPageInfo.project_ids,
126
+      department_ids: props.mainPageInfo.department_ids
120 127
     })
121 128
   }
122 129
   if(tabInfo.value == 'ratio'){//占比分析
@@ -133,6 +140,8 @@ const change = () => {
133 140
       user_ids: props.mainPageInfo.user_ids,
134 141
       account_ids: props.mainPageInfo.account_ids,
135 142
       team_ids: props.mainPageInfo.team_ids,
143
+      project_ids: props.mainPageInfo.project_ids,
144
+      department_ids: props.mainPageInfo.department_ids
136 145
     })
137 146
   }
138 147