فهرست منبع

首页功能完善

Rockery 3 سال پیش
والد
کامیت
be4318d137

+ 3 - 2
src/api/home.js

@@ -9,9 +9,10 @@ export function getCountsHome() {
 }
 
 // 急需处理列表
-export function getUrgencyListHome() {
+export function getUrgencyListHome(query) {
   return request({
     url: '/town/partymember/urgencyList',
-    method: 'get'
+    method: 'get',
+    params: query
   });
 }

+ 1 - 0
src/store/getters.js

@@ -16,6 +16,7 @@ const getters = {
   sidebarRouters:state => state.permission.sidebarRouters,
   projectName: state => state.settings.projectName,
   nickName: state => state.user.nickName,
+  loginDate: state => state.user.loginDate,
   roleName: state => state.user.roleName
 }
 export default getters

+ 6 - 1
src/store/modules/user.js

@@ -9,6 +9,7 @@ const user = {
     roles: [],
     permissions: [],
     nickName: '',
+    loginDate: '',
     roleName: ''
   },
 
@@ -34,6 +35,9 @@ const user = {
     SET_NICKNAME: (state, nickName) => {
       state.nickName = nickName
     },
+    SET_LOGINDATE: (state, loginDate) => {
+      state.loginDate = loginDate
+    },
     SET_ROLENAME: (state, roleName) => {
       state.roleName = roleName
     }
@@ -65,7 +69,7 @@ const user = {
       return new Promise((resolve, reject) => {
         getInfo().then(res => {
           const user = res.user
-          const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : user.avatar;
+          const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : `${window.origin}${process.env.VUE_APP_FILE_VIEW_API}${user.avatar}`;
           if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
             commit('SET_ROLES', res.roles)
             commit('SET_PERMISSIONS', res.permissions)
@@ -75,6 +79,7 @@ const user = {
           commit('SET_NAME', user.userName)
           commit('SET_AVATAR', avatar)
           commit('SET_NICKNAME', user.nickName)
+          commit('SET_LOGINDATE', user.loginDate)
           commit('SET_ROLENAME', user.roles?.[0]?.roleName || '暂无')
           resolve(res)
         }).catch(error => {

+ 12 - 0
src/views/PartyBuildingMgr/PartyMemberDevelop/JsonData/AtStageNodeDataObj.js

@@ -0,0 +1,12 @@
+/**
+ * 所有阶段数据
+*/
+module.exports = {
+  '1': '申请入党',
+  '2': '入党积极分子的确定和培养',
+  '3': '发展对象的确定和考察',
+  '4': '发展党员的预审',
+  '5': '预备党员的接收',
+  '6': '预备党员的考察和转正',
+  '7': '未通过'
+};

+ 71 - 50
src/views/index.vue

@@ -6,14 +6,16 @@
           <div class="home-head-left">
             <div class="head-left-top">
               <div class="head-left-top-title">渔安街道党组织</div>
-              <div class="head-left-top-subtitle">上次登录时间:2021-11-04 10:23</div>
+              <div
+                class="head-left-top-subtitle"
+              >上次登录时间:{{ parseTime($store.getters.loginDate, '{y}年{m}月{d}日 {h}:{i}:{s}') || '—' }}</div>
             </div>
             <div class="head-left-middle">
               <div class="head-left-middle-avatar">
                 <img :src="$store.getters.avatar" @error="imgViewerOnerror" />
               </div>
-              <div class="head-left-middle-name">{{ $store.getters.nickName }}</div>
-              <div class="head-left-middle-role">{{ $store.getters.roleName }}</div>
+              <div class="head-left-middle-name">{{ $store.getters.nickName || '—' }}</div>
+              <div class="head-left-middle-role">{{ $store.getters.roleName || '—' }}</div>
             </div>
           </div>
         </el-col>
@@ -24,14 +26,15 @@
                 <div class="home-head-right_item">
                   <div class="home-head-right_item-title">正式党员数</div>
                   <div class="home-head-right_item-content">
-                    <div class="formal">
-                      <countTo
-                        :startVal="0"
-                        :endVal="countsObj.formalCounts || 258"
-                        :duration="3000"
-                      ></countTo>
+                    <div
+                      v-if="countsObj.formalCounts !== null && countsObj.formalCounts !== undefined"
+                    >
+                      <div class="formal">
+                        <countTo :startVal="0" :endVal="countsObj.formalCounts" :duration="3000"></countTo>
+                      </div>
+                      <div>人</div>
                     </div>
-                    <div>人</div>
+                    <div v-else>—</div>
                   </div>
                 </div>
               </el-col>
@@ -39,14 +42,15 @@
                 <div class="home-head-right_item">
                   <div class="home-head-right_item-title">预备党员数</div>
                   <div class="home-head-right_item-content">
-                    <div class="prep">
-                      <countTo
-                        :startVal="0"
-                        :endVal="countsObj.readyCounts || 258"
-                        :duration="3000"
-                      ></countTo>
+                    <div
+                      v-if="countsObj.readyCounts !== null && countsObj.readyCounts !== undefined"
+                    >
+                      <div class="prep">
+                        <countTo :startVal="0" :endVal="countsObj.readyCounts" :duration="3000"></countTo>
+                      </div>
+                      <div>人</div>
                     </div>
-                    <div>人</div>
+                    <div v-else>—</div>
                   </div>
                 </div>
               </el-col>
@@ -54,14 +58,15 @@
                 <div class="home-head-right_item">
                   <div class="home-head-right_item-title">发展党员数</div>
                   <div class="home-head-right_item-content">
-                    <div class="develop">
-                      <countTo
-                        :startVal="0"
-                        :endVal="countsObj.progressCounts || 591"
-                        :duration="3000"
-                      ></countTo>
+                    <div
+                      v-if="countsObj.progressCounts !== null && countsObj.progressCounts !== undefined"
+                    >
+                      <div class="develop">
+                        <countTo :startVal="0" :endVal="countsObj.progressCounts" :duration="3000"></countTo>
+                      </div>
+                      <div>人</div>
                     </div>
-                    <div>人</div>
+                    <div v-else>—</div>
                   </div>
                 </div>
               </el-col>
@@ -69,14 +74,15 @@
                 <div class="home-head-right_item">
                   <div class="home-head-right_item-title">积极分子数</div>
                   <div class="home-head-right_item-content">
-                    <div class="positive">
-                      <countTo
-                        :startVal="0"
-                        :endVal="countsObj.activeCounts || 591"
-                        :duration="3000"
-                      ></countTo>
+                    <div
+                      v-if="countsObj.activeCounts !== null && countsObj.activeCounts !== undefined"
+                    >
+                      <div class="positive">
+                        <countTo :startVal="0" :endVal="countsObj.activeCounts" :duration="3000"></countTo>
+                      </div>
+                      <div>人</div>
                     </div>
-                    <div>人</div>
+                    <div v-else>—</div>
                   </div>
                 </div>
               </el-col>
@@ -101,31 +107,41 @@
         </el-col>
         <el-col :span="24">
           <div class="home-main-list">
-            <el-row :gutter="10" type="flex" class="row-bg" justify="space-between">
+            <el-row :gutter="5">
               <template v-if="list.length > 0">
-                <el-col v-for="item in list" :key="'HOMEURGENCYLIST_' + item.id" :span="5">
+                <el-col
+                  v-for="(item, index) in list"
+                  :key="'HOMEURGENCYLIST_' + item.id + index"
+                  :xs="16"
+                  :sm="12"
+                  :md="8"
+                  :lg="6"
+                  :xl="4"
+                  class="mb10"
+                >
                   <div class="home-main-list_card">
                     <div class="home-main-list_card-basic">
                       <img
-                        :src="require('@/assets/images/home-main-list-card-img.png')"
+                        :src="item.personPhoto ||  require('@/assets/images/empty_img.png')"
                         @error="imgViewerOnerror"
                       />
 
                       <div class="list_card-basic-info">
-                        <div class="list_card-basic-info-name">{{ item.name || '郝爱党' }}</div>
-                        <div class="list_card-basic-info-idcard">{{ item.cardNo || '520103199512123412' }}</div>
-                        <div class="list_card-basic-info-sex">{{ item.sex || '' }}</div>
+                        <div class="list_card-basic-info-name">{{ item.name || '' }}</div>
+                        <div class="list_card-basic-info-idcard">{{ item.cardNo || '' }}</div>
+                        <div class="list_card-basic-info-sex">{{ item.sex || '' }}</div>
                       </div>
                     </div>
+                    <div style="clear: both;"></div>
                     <div class="home-main-list_card-stage">
                       <div>所处阶段:</div>
-                      <div>{{ item.atPoint || '发展对象的确认和考察' }}</div>
+                      <div>{{ atStageNodeDataObj[item.atPoint] || '—' }}</div>
                     </div>
                     <div class="home-main-list_card-node">
                       <div>待更新节点:</div>
-                      <div>{{ item.nextPoint || '确认为发展对象的支委会会议记录' }}</div>
+                      <div>{{ nodeDataObj[item.nextPoint] || '—' }}</div>
                     </div>
-                    <div class="home-main-list_card-status">{{ item.descrption || '已逾期2天' }}</div>
+                    <div class="home-main-list_card-status">{{ item.descrption || '' }}</div>
                     <div class="home-main-list_card-btn">
                       <el-button type="rocpartyprimarybtn">立即处理</el-button>
                     </div>
@@ -144,6 +160,7 @@
           <pagination
             v-show="total>0"
             :total="total"
+            :pageSizes="[12, 24, 36, 48, 60]"
             :page.sync="queryParams.pageNum"
             :limit.sync="queryParams.pageSize"
             @pagination="initData"
@@ -155,6 +172,8 @@
 </template>
 
 <script>
+import NodeDataObj from '@/views/PartyBuildingMgr/PartyMemberDevelop/JsonData/NodeDataObj';
+import AtStageNodeDataObj from '@/views/PartyBuildingMgr/PartyMemberDevelop/JsonData/AtStageNodeDataObj';
 import countTo from 'vue-count-to';
 import { getCountsHome, getUrgencyListHome } from "@/api/home";
 
@@ -165,13 +184,15 @@ export default {
   },
   data() {
     return {
-      total: 10,
+      total: 0,
       queryParams: {
-        pageNum: 0,
-        pageSize: 10
+        pageNum: 1,
+        pageSize: 12
       },
       list: [],
-      countsObj: {}
+      countsObj: {},
+      nodeDataObj: { ...NodeDataObj },
+      atStageNodeDataObj: { ...AtStageNodeDataObj }
     };
   },
   created() {
@@ -199,7 +220,7 @@ export default {
     getUrgencyListHomeData() {
       getUrgencyListHome(this.queryParams).then(response => {
         this.list = response?.rows || [];
-        this.total = response?.total ?? 20;
+        this.total = response?.total ?? 0;
       });
     },
   }
@@ -417,22 +438,22 @@ export default {
       margin-top: 20px;
 
       &_card {
-        padding: 20px 10px;
+        padding: 15px 8px;
+        overflow: hidden;
         width: 100%;
         border: 1px solid #b5b5b5;
         border-radius: 5px;
 
         &-basic {
-          display: flex;
-          align-items: center;
-
           img {
+            float: left;
+            margin-right: 6px;
             width: 73px;
             height: 91px;
           }
 
           .list_card-basic-info {
-            margin-left: 16px;
+            float: left;
 
             &-name {
               height: 25px;