Zhang Li, BBF-411-2(Neusoft) 1 year ago
parent
commit
cb50d2f0b5

+ 23 - 0
src/api/knowledge/statistics.js

@@ -69,6 +69,14 @@ returnData.moduleUserUniqueVisits=function (parameter) {
     return res
   })
 }
+// 人员/组织 访问量(综合)
+returnData.personVisit=function (parameter) {
+  var url= returnData.baseUrl + '/personVisit'
+  return rxAjax.postJson(url,parameter).then (res => {
+    return res
+  })
+}
+
 //知识仓库统计
 //知识类型访问量分布
 returnData.knowledgeTypeVisitProportion=function (parameter) {
@@ -106,6 +114,21 @@ returnData.level1AlbumHistogram=function (parameter) {
     return res
   })
 }
+// 人员/组织 创建专辑数量(专辑)
+returnData.personAlbum=function (parameter) {
+  var url= returnData.baseUrl + '/personAlbum'
+  return rxAjax.postJson(url,parameter).then (res => {
+    return res
+  })
+}
+
+// 人员/组织 创建知识数量 -(知识)
+returnData.personKnowledge=function (parameter) {
+  var url= returnData.baseUrl + '/personKnowledge'
+  return rxAjax.postJson(url,parameter).then (res => {
+    return res
+  })
+}
 //地图统计
 //地图创建总量
 returnData.mapAmount=function (parameter) {

+ 128 - 1
src/views/modules/knowledge/statistics/album.vue

@@ -33,6 +33,76 @@
           </div>
           <bar-echart @legendselectchanged="legendselectchanged" :barTitle="barTitle" :barXData="barXData" :barData="barData"></bar-echart>
         </div>
+        <div class="bar-style">
+          <div>
+            员工创建量统计
+          </div>
+          <div class="staff-style">
+            <a-form ref="searchForm" layout="inline" style="display: flex; flex-wrap: wrap">
+              <a-form-item class="form-item-style" style="width:240px;" label="查询选项" name="staff">
+                <!-- <a-input class="set-input" v-model="staffForm.staff" placeholder="请选择要查询的员工" /> -->
+                <div @click="handleAuditShow(1)">
+                  <a-select
+                    v-model="staffName"
+                    :showArrow="false"
+                    :open="false"
+                    placeholder="请选择要查询的员工"
+                  ></a-select>
+                  </div>
+              </a-form-item>
+              <a-form-item class="form-item-style" style="width:300px;" label="时间范围" name="staffTime">
+                <a-range-picker
+                  v-model="staffTime"
+                  class="set-range-picker"
+                  separator="→"
+                  format="YYYY/MM/DD"
+                  valueFormat="YYYY-MM-DD"
+                >
+                </a-range-picker>
+              </a-form-item>
+              <div style="display: flex;align-items:center;justify-content: center;margin-bottom: 1px;">
+                <a-button style="margin-right: 8px;" @click="handleResetClick(1)">重置</a-button>
+                <a-button type="primary" @click="handleSearchClick(1)">查询</a-button>
+              </div>
+            </a-form>
+          </div>
+          <bar-echart-one :barXData="barXUserData" :barData="barUserDataNew"></bar-echart-one>
+        </div>
+         <div class="bar-style">
+          <div>
+            组织创建量统计
+          </div>
+          <div class="staff-style">
+            <a-form ref="searchForm" layout="inline" style="display: flex; flex-wrap: wrap">
+              <a-form-item class="form-item-style" style="width:240px;" label="查询选项" name="staff">
+                <!-- <a-input class="set-input" v-model="staffForm.staff" placeholder="请选择要查询的员工" /> -->
+                <div @click="handleAuditShow(2)">
+                  <a-select
+                    v-model="orgName"
+                    :showArrow="false"
+                    :open="false"
+                    placeholder="请选择要查询的组织"
+                  ></a-select>
+                  </div>
+              </a-form-item>
+              <a-form-item class="form-item-style" style="width:300px;" label="时间范围" name="staffTime">
+                <a-range-picker
+                  v-model="orgTime"
+                  class="set-range-picker"
+                  separator="→"
+                  format="YYYY/MM/DD"
+                  valueFormat="YYYY-MM-DD"
+                >
+                </a-range-picker>
+              </a-form-item>
+              <div style="display: flex;align-items:center;justify-content: center;margin-bottom: 1px;">
+                <a-button style="margin-right: 8px;" @click="handleResetClick(2)">重置</a-button>
+                <a-button type="primary" @click="handleSearchClick(2)">查询</a-button>
+              </div>
+            </a-form>
+          </div>
+          <bar-echart-one isOrg :barXData="barXOrgData" :barData="barOrgDataNew"></bar-echart-one>
+        </div>
         <div class="table-style">
           <div>
              组织创建和访问专辑数量
@@ -52,6 +122,22 @@
           </rx-grid>-->
         </div>
       </rx-fit>
+        <a-modal
+        v-model="showAuditFlag"
+        class="chooseAuthor"
+        width="800"
+        :title="isOrgOrUser == 1 ? '员工选择' : '组织选择'"
+        centered
+        okText="保存"
+        @ok="handleSaveOk"
+      >
+        <org-people
+          ref="orgModalRef"
+          :isOnlyOrg="isOrgOrUser == 1 ? true : false"
+          :key="new Date().getTime()" 
+          style="width: 800px; height: 600px"
+        ></org-people>
+      </a-modal>
     </div> 
   </rx-layout>
 </template>
@@ -62,9 +148,13 @@ import pieChange from './components/pieChange'
 import roseEchart from './components/RoseEchart';
 import lineEchart from './components/LineEchart';
 import pieEchart from './components/PieEchart';
+import barEchartOne from './components/BarEchartOne';
 import barEchart from './components/BarEchart';
 import statistics from '@/api/knowledge/statistics'
 import DataShow from './components/DataShow';
+import orgPeople from './components/orgPeople'
+import mixin from "./sMixin/statisticsMixin"
+const albumMixin = new mixin('personAlbum')
 export default {
   name: 'synthesize',
   components: {
@@ -72,10 +162,13 @@ export default {
     lineEchart,
     pieEchart,
     barEchart,
+    barEchartOne,
     pieChange,
     roseEchart,
-    DataShow
+    DataShow,
+    orgPeople
   },
+  mixins:[ albumMixin ],
   data() {
     return {
       peitype:0,
@@ -303,6 +396,37 @@ export default {
     }
   }
 
+   .bar-style {
+    height: 400px;
+    background:#fff;
+    position: relative;
+    display: flex;
+    align-items: flex-end;
+    margin: 10px 0 20px;
+
+    >div:first-child {
+      position: absolute;
+      top: 8%;
+      left: 2.3%;
+      font-weight: bold;
+
+        span {
+        position: absolute;
+        top: 25%;
+        font-size: 12px;
+        font-weight: 400;
+        margin-left: 8px;
+      }
+    }
+
+    .staff-style {
+      position: absolute;
+      top: 3.3%;
+      left: 15%;
+      z-index: 100;
+    }
+  }
+
   .table-style {
     width: 100%;
     background-color: #fff;
@@ -332,4 +456,7 @@ export default {
 /deep/ .ant-table-tbody > tr > td {
   height: 54px;
 }
+.chooseAuthor /deep/.ant-modal-body {
+  padding: 0px;
+}
 </style>

+ 18 - 1
src/views/modules/knowledge/statistics/sMixin/statisticsMixin.js

@@ -60,9 +60,17 @@ export default (titlePromise) => {
                   this.barXUserData = data.map(item => item.organization)
                   this.barUserDataNew = data.map(item => item.map)
                 } else if(titlePromise == 'personSearch') {
-                  console.log(data)
                   this.barXUserData = data.map(item => item.organization)
                   this.barUserDataNew = data.map(item => item.item[0].value)
+                } else if(titlePromise == 'personAlbum') {
+                  this.barXUserData = data.map(item => item.organization)
+                  this.barUserDataNew = data.map(item => item.album)
+                } else if(titlePromise == 'personKnowledge') {
+                  this.barXUserData = data.map(item => item.organization)
+                  this.barUserDataNew = data.map(item => item.total)
+                } else {
+                  this.barXUserData = data.map(item => item.organization)
+                  this.barUserDataNew = data.map(item => item.total)
                 }
               }
             } else {
@@ -76,6 +84,15 @@ export default (titlePromise) => {
                 } else if(titlePromise == 'personSearch') {
                   this.barXOrgData = data.map(item => item.organization)
                   this.barOrgDataNew = data.map(item => item.item[0].value)
+                } else if(titlePromise == 'personAlbum') {
+                  this.barXOrgData = data.map(item => item.organization)
+                  this.barOrgDataNew = data.map(item => item.album)
+                } else if(titlePromise == 'personKnowledge') {
+                  this.barXOrgData = data.map(item => item.organization)
+                  this.barOrgDataNew = data.map(item => item.total)
+                } else {
+                  this.barXOrgData = data.map(item => item.organization)
+                  this.barOrgDataNew = data.map(item => item.total)
                 }
               }
             }

+ 5 - 2
src/views/modules/knowledge/statistics/search.vue

@@ -22,7 +22,7 @@
             <pie-echart v-else :pieData="pieData" :pieDataTitleLeft="pieDataTitleLeft" :pieDataTitleRight="pieDataTitleRight"></pie-echart>
           </div>
         </div>
-                <div class="bar-style">
+        <div class="bar-style">
           <div>
             员工创建量统计
           </div>
@@ -57,7 +57,7 @@
           </div>
           <bar-echart-one :barXData="barXUserData" :barData="barUserDataNew"></bar-echart-one>
         </div>
-         <div class="bar-style">
+        <div class="bar-style">
           <div>
             组织创建量统计
           </div>
@@ -368,4 +368,7 @@ export default {
 /deep/ .ant-table-tbody > tr > td {
   height: 54px;
 }
+.chooseAuthor /deep/.ant-modal-body {
+  padding: 0px;
+}
 </style>

+ 121 - 2
src/views/modules/knowledge/statistics/synthesize.vue

@@ -28,10 +28,80 @@
           <little-card title="知识仓库访问量(uv)" :num="dataNum.knowledge" :picture="warehousePicture"></little-card>
           <little-card title="搜索服务访问量(uv)" :num="dataNum.search" :picture="searchPicture"></little-card>
         </div>
+        <div class="bar-style">
+          <div>
+            员工创建量统计
+          </div>
+          <div class="staff-style">
+            <a-form ref="searchForm" layout="inline" style="display: flex; flex-wrap: wrap">
+              <a-form-item class="form-item-style" style="width:240px;" label="查询选项" name="staff">
+                <!-- <a-input class="set-input" v-model="staffForm.staff" placeholder="请选择要查询的员工" /> -->
+                <div @click="handleAuditShow(1)">
+                  <a-select
+                    v-model="staffName"
+                    :showArrow="false"
+                    :open="false"
+                    placeholder="请选择要查询的员工"
+                  ></a-select>
+                  </div>
+              </a-form-item>
+              <a-form-item class="form-item-style" style="width:300px;" label="时间范围" name="staffTime">
+                <a-range-picker
+                  v-model="staffTime"
+                  class="set-range-picker"
+                  separator="→"
+                  format="YYYY/MM/DD"
+                  valueFormat="YYYY-MM-DD"
+                >
+                </a-range-picker>
+              </a-form-item>
+              <div style="display: flex;align-items:center;justify-content: center;margin-bottom: 1px;">
+                <a-button style="margin-right: 8px;" @click="handleResetClick(1)">重置</a-button>
+                <a-button type="primary" @click="handleSearchClick(1)">查询</a-button>
+              </div>
+            </a-form>
+          </div>
+          <bar-echart-one :barXData="barXUserData" :barData="barUserDataNew"></bar-echart-one>
+        </div>
+        <div class="bar-style">
+          <div>
+            组织创建量统计
+          </div>
+          <div class="staff-style">
+            <a-form ref="searchForm" layout="inline" style="display: flex; flex-wrap: wrap">
+              <a-form-item class="form-item-style" style="width:240px;" label="查询选项" name="staff">
+                <!-- <a-input class="set-input" v-model="staffForm.staff" placeholder="请选择要查询的员工" /> -->
+                <div @click="handleAuditShow(2)">
+                  <a-select
+                    v-model="orgName"
+                    :showArrow="false"
+                    :open="false"
+                    placeholder="请选择要查询的组织"
+                  ></a-select>
+                  </div>
+              </a-form-item>
+              <a-form-item class="form-item-style" style="width:300px;" label="时间范围" name="staffTime">
+                <a-range-picker
+                  v-model="orgTime"
+                  class="set-range-picker"
+                  separator="→"
+                  format="YYYY/MM/DD"
+                  valueFormat="YYYY-MM-DD"
+                >
+                </a-range-picker>
+              </a-form-item>
+              <div style="display: flex;align-items:center;justify-content: center;margin-bottom: 1px;">
+                <a-button style="margin-right: 8px;" @click="handleResetClick(2)">重置</a-button>
+                <a-button type="primary" @click="handleSearchClick(2)">查询</a-button>
+              </div>
+            </a-form>
+          </div>
+          <bar-echart-one isOrg :barXData="barXOrgData" :barData="barOrgDataNew"></bar-echart-one>
+        </div>
         <div class="table-style">
           <div>
              组织访问量
-             
+  
           </div>
           <!--<rx-grid
             ref="table"
@@ -48,6 +118,22 @@
           <DataShow :type="type" interface="0"></DataShow>
         </div>
       </rx-fit>
+      <a-modal
+        v-model="showAuditFlag"
+        class="chooseAuthor"
+        width="800"
+        :title="isOrgOrUser == 1 ? '员工选择' : '组织选择'"
+        centered
+        okText="保存"
+        @ok="handleSaveOk"
+      >
+        <org-people
+          ref="orgModalRef"
+          :isOnlyOrg="isOrgOrUser == 1 ? true : false"
+          :key="new Date().getTime()" 
+          style="width: 800px; height: 600px"
+        ></org-people>
+      </a-modal>
     </div> 
   </rx-layout>
 </template>
@@ -57,6 +143,7 @@ import topNav from './components/topNav'
 import pieChange from './components/pieChange'
 import lineEchart from './components/LineEchart';
 import roseEchart from './components/RoseEchart';
+import barEchartOne from './components/BarEchartOne';
 import littleCard from './components/card';
 import mapPicture from '@/assets/img/map.png'
 import albumPicture from '@/assets/img/album.png'
@@ -65,6 +152,9 @@ import searchPicture from '@/assets/img/search.png'
 import statistics from '@/api/knowledge/statistics'
 import pieEchart from './components/PieEchart';
 import DataShow from './components/DataShow';
+import orgPeople from './components/orgPeople'
+import mixin from "./sMixin/statisticsMixin"
+const personMixin = new mixin('personVisit')
 export default {
   name: 'synthesize',
   components: {
@@ -72,10 +162,13 @@ export default {
     lineEchart,
     roseEchart,
     littleCard,
+    barEchartOne,
     pieEchart,
     pieChange,
-    DataShow
+    DataShow,
+    orgPeople
   },
+  mixins:[ personMixin ],
   data() {
     return {
       peitype:0,
@@ -248,6 +341,29 @@ export default {
     justify-content: space-between;
   }
 
+  .bar-style {
+    height: 400px;
+    background:#fff;
+    position: relative;
+    display: flex;
+    align-items: flex-end;
+    margin: 10px 0 20px;
+
+    >div:first-child {
+      position: absolute;
+      top: 8%;
+      left: 2.3%;
+      font-weight: bold;
+
+    }
+
+    .staff-style {
+      position: absolute;
+      top: 3.3%;
+      left: 15%;
+      z-index: 100;
+    }
+  }
   .table-style {
     display: inline-block;
     width: 100%;
@@ -286,4 +402,7 @@ export default {
 /deep/ .ant-table-tbody > tr > td {
   height: 54px;
 }
+.chooseAuthor /deep/.ant-modal-body {
+  padding: 0px;
+}
 </style>

+ 104 - 1
src/views/modules/knowledge/statistics/warehouse.vue

@@ -27,6 +27,76 @@
           </div>
           <bar-echart @legendselectchanged="legendselectchanged" :barTitle="barTitle" :barXData="barXData" :barData="barData"></bar-echart>
         </div>
+        <div class="bar-style">
+          <div>
+            员工创建量统计
+          </div>
+          <div class="staff-style">
+            <a-form ref="searchForm" layout="inline" style="display: flex; flex-wrap: wrap">
+              <a-form-item class="form-item-style" style="width:240px;" label="查询选项" name="staff">
+                <!-- <a-input class="set-input" v-model="staffForm.staff" placeholder="请选择要查询的员工" /> -->
+                <div @click="handleAuditShow(1)">
+                  <a-select
+                    v-model="staffName"
+                    :showArrow="false"
+                    :open="false"
+                    placeholder="请选择要查询的员工"
+                  ></a-select>
+                  </div>
+              </a-form-item>
+              <a-form-item class="form-item-style" style="width:300px;" label="时间范围" name="staffTime">
+                <a-range-picker
+                  v-model="staffTime"
+                  class="set-range-picker"
+                  separator="→"
+                  format="YYYY/MM/DD"
+                  valueFormat="YYYY-MM-DD"
+                >
+                </a-range-picker>
+              </a-form-item>
+              <div style="display: flex;align-items:center;justify-content: center;margin-bottom: 1px;">
+                <a-button style="margin-right: 8px;" @click="handleResetClick(1)">重置</a-button>
+                <a-button type="primary" @click="handleSearchClick(1)">查询</a-button>
+              </div>
+            </a-form>
+          </div>
+          <bar-echart-one :barXData="barXUserData" :barData="barUserDataNew"></bar-echart-one>
+        </div>
+        <div class="bar-style">
+          <div>
+            组织创建量统计
+          </div>
+          <div class="staff-style">
+            <a-form ref="searchForm" layout="inline" style="display: flex; flex-wrap: wrap">
+              <a-form-item class="form-item-style" style="width:240px;" label="查询选项" name="staff">
+                <!-- <a-input class="set-input" v-model="staffForm.staff" placeholder="请选择要查询的员工" /> -->
+                <div @click="handleAuditShow(2)">
+                  <a-select
+                    v-model="orgName"
+                    :showArrow="false"
+                    :open="false"
+                    placeholder="请选择要查询的组织"
+                  ></a-select>
+                  </div>
+              </a-form-item>
+              <a-form-item class="form-item-style" style="width:300px;" label="时间范围" name="staffTime">
+                <a-range-picker
+                  v-model="orgTime"
+                  class="set-range-picker"
+                  separator="→"
+                  format="YYYY/MM/DD"
+                  valueFormat="YYYY-MM-DD"
+                >
+                </a-range-picker>
+              </a-form-item>
+              <div style="display: flex;align-items:center;justify-content: center;margin-bottom: 1px;">
+                <a-button style="margin-right: 8px;" @click="handleResetClick(2)">重置</a-button>
+                <a-button type="primary" @click="handleSearchClick(2)">查询</a-button>
+              </div>
+            </a-form>
+          </div>
+          <bar-echart-one isOrg :barXData="barXOrgData" :barData="barOrgDataNew"></bar-echart-one>
+        </div>
         <div class="table-style">
           <div>
              组织创建知识数量
@@ -46,6 +116,22 @@
           </rx-grid>-->
         </div>
       </rx-fit>
+      <a-modal
+        v-model="showAuditFlag"
+        class="chooseAuthor"
+        width="800"
+        :title="isOrgOrUser == 1 ? '员工选择' : '组织选择'"
+        centered
+        okText="保存"
+        @ok="handleSaveOk"
+      >
+        <org-people
+          ref="orgModalRef"
+          :isOnlyOrg="isOrgOrUser == 1 ? true : false"
+          :key="new Date().getTime()" 
+          style="width: 800px; height: 600px"
+        ></org-people>
+      </a-modal>
     </div> 
   </rx-layout>
 </template>
@@ -55,10 +141,14 @@ import topNav from './components/topNav'
 import lineEchart from './components/LineEchart';
 import roseEchart from './components/RoseEchart';
 import pieChange from './components/pieChange'
+import barEchartOne from './components/BarEchartOne';
 import pieEchart from './components/PieEchart';
 import barEchart from './components/BarEchart';
 import statistics from '@/api/knowledge/statistics'
 import DataShow from './components/DataShow';
+import orgPeople from './components/orgPeople'
+import mixin from "./sMixin/statisticsMixin"
+const knowledgeMixin = new mixin('personKnowledge')
 export default {
   name: 'synthesize',
   components: {
@@ -66,10 +156,13 @@ export default {
     lineEchart,
     roseEchart,
     barEchart,
+    barEchartOne,
     pieChange,
     pieEchart,
-    DataShow
+    DataShow,
+    orgPeople
   },
+  mixins:[ knowledgeMixin ],
   data() {
     return {
       peitype:0,
@@ -255,6 +348,13 @@ export default {
       font-weight: bold;
 
     }
+
+    .staff-style {
+      position: absolute;
+      top: 3.3%;
+      left: 15%;
+      z-index: 100;
+    }
   }
 
   .table-style {
@@ -286,4 +386,7 @@ export default {
 /deep/ .ant-table-tbody > tr > td {
   height: 54px;
 }
+.chooseAuthor /deep/.ant-modal-body {
+  padding: 0px;
+}
 </style>