Quellcode durchsuchen

列表优化查询条件

natasha vor 1 Monat
Ursprung
Commit
6a12a799bb
4 geänderte Dateien mit 344 neuen und 50 gelöschten Zeilen
  1. 5 0
      src/api/org.js
  2. 38 12
      src/views/org_manage/index.vue
  3. 133 21
      src/views/user_manage/index.vue
  4. 168 17
      src/views/user_manage_org/index.vue

+ 5 - 0
src/api/org.js

@@ -9,3 +9,8 @@ export function createOrg(data) {
 export function setUserToOrgManager(data) {
   return http.post(`${process.env.VUE_APP_EepServer}?MethodName=user_manager-SetUserToOrgManager`, data);
 }
+
+// 机构管理员停用用户
+export function setOrgUserStop(data) {
+  return http.post(`${process.env.VUE_APP_EepServer}?MethodName=user_manager-StopUser`, data);
+}

+ 38 - 12
src/views/org_manage/index.vue

@@ -1,16 +1,24 @@
 <template>
   <div class="org-manage">
     <div class="org-manage-list">
-      <el-button class="add-btn" type="primary" size="small" icon="el-icon-plus" @click="updateOrg('')"
-        >创建机构</el-button
-      >
-      <el-table :data="list">
+      <el-form inline id="query-form">
+        <el-form-item prop="name" label="名称">
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="queryList">查询</el-button>
+          <el-button class="add-btn" type="primary" size="small" icon="el-icon-plus" @click="updateOrg('')"
+            >创建机构</el-button
+          >
+        </el-form-item>
+      </el-form>
+      <el-table :data="list" :max-height="tableHeight + 'px'" v-if="tableHeight">
         <el-table-column
           type="index"
           label="序号"
           width="60"
           align="center"
-          :index="(cur_page - 1) * page_capacity + 1"
+          :index="(form.cur_page - 1) * form.page_capacity + 1"
         />
         <el-table-column prop="name" label="名称" align="center" />
         <el-table-column prop="user_count" label="注册用户数" align="center" />
@@ -69,8 +77,6 @@ export default {
     return {
       list: [],
       total: 0,
-      page_capacity: 10,
-      cur_page: 1,
       org_Info: {
         name: '',
       },
@@ -79,15 +85,21 @@ export default {
         name: [{ required: true, trigger: 'blur', message: '请输入名称' }],
       },
       loading: false,
+      tableHeight: 0,
+      form: {
+        name: '',
+        page_capacity: 10,
+        cur_page: 1,
+      },
     };
   },
   methods: {
     queryOrgList(data) {
-      queryOrgList(data).then(({ total_count, org_list }) => {
+      this.form.page_capacity = data.page_capacity;
+      this.form.cur_page = data.cur_page;
+      queryOrgList(this.form).then(({ total_count, org_list }) => {
         this.total = total_count;
         this.list = org_list;
-        this.page_capacity = data.page_capacity;
-        this.cur_page = data.cur_page;
       });
     },
     /**
@@ -120,7 +132,7 @@ export default {
         .then(function () {
           // transferFilesDelete({ id: id }).then((res) => {
           //   if (res.status === 1) {
-          _this.queryOrgList({ cur_page: _this.cur_page, page_capacity: _this.page_capacity });
+          _this.queryOrgList({ cur_page: _this.form.cur_page, page_capacity: _this.form.page_capacity });
           _this.$message({
             type: 'success',
             message: '删除成功!',
@@ -140,7 +152,7 @@ export default {
             .then((res) => {
               if (res.status === 1) {
                 this.loading = false;
-                _this.queryOrgList({ cur_page: _this.cur_page, page_capacity: _this.page_capacity });
+                _this.queryOrgList({ cur_page: _this.form.cur_page, page_capacity: _this.form.page_capacity });
                 _this.$message({
                   type: 'success',
                   message: '创建成功!',
@@ -153,6 +165,16 @@ export default {
         }
       });
     },
+    queryList() {
+      this.queryOrgList({ cur_page: 1, page_capacity: this.form.page_capacity });
+    },
+  },
+  mounted() {
+    this.tableHeight =
+      document.getElementsByClassName('app-container')[0].clientHeight -
+      document.getElementById('query-form').clientHeight -
+      document.getElementsByClassName('el-pagination')[0].clientHeight -
+      10;
   },
 };
 </script>
@@ -177,5 +199,9 @@ export default {
       flex: 1;
     }
   }
+
+  :deep .el-form-item--small.el-form-item {
+    margin-bottom: 5px;
+  }
 }
 </style>

+ 133 - 21
src/views/user_manage/index.vue

@@ -1,23 +1,72 @@
 <template>
   <div class="user-manage">
     <div class="user-manage-list">
-      <el-form ref="registerForm" inline>
+      <el-form inline id="query-form">
+        <el-form-item prop="real_name" label="真实姓名">
+          <el-input v-model="form.real_name"></el-input>
+        </el-form-item>
+        <el-form-item prop="email" label="邮箱">
+          <el-input v-model="form.email"></el-input>
+        </el-form-item>
         <el-form-item prop="org_id" label="机构">
-          <el-select v-model="org_id_list" filterable multiple collapse-tags>
+          <el-select v-model="form.org_id_list" filterable multiple collapse-tags>
             <el-option v-for="item in institutionList" :key="item.id" :value="item.id" :label="item.name"></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item prop="register_date" label="注册日期">
+          <el-date-picker
+            v-model="register_date"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="开始日期"
+            end-placeholder="截止日期"
+            value-format="yyyy-MM-dd"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item prop="user_name" label="用户名">
+          <el-input v-model="form.user_name"></el-input>
+        </el-form-item>
+        <el-form-item prop="phone" label="电话">
+          <el-input v-model="form.phone"></el-input>
+        </el-form-item>
+        <el-form-item prop="org_manager_status" label="机构管理员">
+          <el-select v-model="form.org_manager_status">
+            <el-option
+              v-for="item in org_manager_list"
+              :key="item.value"
+              :value="item.value"
+              :label="item.label"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="stop_status" label="已停用">
+          <el-select v-model="form.stop_status">
+            <el-option v-for="item in stop_list" :key="item.value" :value="item.value" :label="item.label"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="stop_date" label="停用日期">
+          <el-date-picker
+            v-model="stop_date"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="开始日期"
+            end-placeholder="截止日期"
+            value-format="yyyy-MM-dd"
+          >
+          </el-date-picker>
+        </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="queryList">搜索</el-button>
+          <el-button type="primary" @click="queryList">查询</el-button>
         </el-form-item>
       </el-form>
-      <el-table :data="list">
+      <el-table :data="list" :max-height="tableHeight + 'px'" v-if="tableHeight">
         <el-table-column
           type="index"
           label="序号"
           width="60"
           align="center"
-          :index="(cur_page - 1) * page_capacity + 1"
+          :index="(form.cur_page - 1) * form.page_capacity + 1"
         />
         <el-table-column prop="user_name" label="真实姓名" align="center" />
         <el-table-column prop="real_name" label="用户名" align="center" />
@@ -29,12 +78,12 @@
           </template>
         </el-table-column>
         <el-table-column prop="register_time" label="注册时间" align="center" width="170" />
-        <el-table-column prop="is_audited" label="已审核" align="center"
+        <el-table-column prop="is_stop" label="已停用" align="center"
           ><template slot-scope="{ row }">
-            <i class="el-icon-check" v-if="row.is_audited === 'true'"></i>
+            <i class="el-icon-check" v-if="row.is_stop === 'true'"></i>
           </template>
         </el-table-column>
-        <el-table-column prop="audit_time" label="审核时间" align="center" width="170" />
+        <el-table-column prop="stop_time" label="停用时间" align="center" width="170" />
 
         <el-table-column prop="operation" label="操作" fixed="right" width="200" align="center">
           <template slot-scope="{ row }">
@@ -66,24 +115,76 @@ export default {
     return {
       list: [],
       total: 0,
-      page_capacity: 10,
-      cur_page: 1,
-      org_id_list: [],
       institutionList: [],
+      form: {
+        real_name: '',
+        user_name: '',
+        email: '',
+        phone: '',
+        org_id_list: [],
+        org_manager_status: -1,
+        stop_status: -1,
+        register_date_begin: '',
+        register_date_end: '',
+        stop_date_begin: '',
+        stop_date_end: '',
+        page_capacity: 10,
+        cur_page: 1,
+      },
+      register_date: [],
+      stop_date: [],
+      tableHeight: 0,
+      org_manager_list: [
+        {
+          value: -1,
+          label: '全部',
+        },
+        {
+          value: 1,
+          label: '机构管理员',
+        },
+        {
+          value: 0,
+          label: '普通用户',
+        },
+      ],
+      stop_list: [
+        {
+          value: -1,
+          label: '全部',
+        },
+        {
+          value: 1,
+          label: '停用',
+        },
+        {
+          value: 0,
+          label: '未停用',
+        },
+      ],
     };
   },
   methods: {
     queryUserList(data) {
-      let datas = {
-        page_capacity: data.page_capacity,
-        cur_page: data.cur_page,
-        org_id_list: this.org_id_list,
-      };
-      queryUserList(datas).then(({ total_count, user_list }) => {
+      if (this.register_date && this.register_date.length === 2) {
+        this.form.register_date_begin = this.register_date[0];
+        this.form.register_date_end = this.register_date[1];
+      } else {
+        this.form.register_date_begin = '';
+        this.form.register_date_end = '';
+      }
+      if (this.stop_date && this.stop_date.length === 2) {
+        this.form.stop_date_begin = this.stop_date[0];
+        this.form.stop_date_end = this.stop_date[1];
+      } else {
+        this.form.stop_date_begin = '';
+        this.form.stop_date_end = '';
+      }
+      this.form.page_capacity = data.page_capacity;
+      this.form.cur_page = data.cur_page;
+      queryUserList(this.form).then(({ total_count, user_list }) => {
         this.total = total_count;
         this.list = user_list;
-        this.page_capacity = data.page_capacity;
-        this.cur_page = data.cur_page;
       });
     },
     // 设置机构管理员
@@ -94,7 +195,7 @@ export default {
       };
       setUserToOrgManager(data).then((res) => {
         if (res.status === 1) {
-          this.queryUserList({ cur_page: this.cur_page, page_capacity: this.page_capacity });
+          this.queryUserList({ cur_page: this.form.cur_page, page_capacity: this.form.page_capacity });
           this.$message({
             type: 'success',
             message: '操作成功!',
@@ -115,12 +216,19 @@ export default {
       });
     },
     queryList() {
-      this.queryUserList({ cur_page: 1, page_capacity: this.page_capacity });
+      this.queryUserList({ cur_page: 1, page_capacity: this.form.page_capacity });
     },
   },
   created() {
     this.getinstitutionList();
   },
+  mounted() {
+    this.tableHeight =
+      document.getElementsByClassName('app-container')[0].clientHeight -
+      document.getElementById('query-form').clientHeight -
+      document.getElementsByClassName('el-pagination')[0].clientHeight -
+      10;
+  },
 };
 </script>
 
@@ -143,5 +251,9 @@ export default {
   :deep .el-form-item--small.el-form-item {
     margin-bottom: 5px;
   }
+
+  :deep .el-range-editor .el-range-input {
+    background: transparent;
+  }
 }
 </style>

+ 168 - 17
src/views/user_manage_org/index.vue

@@ -2,19 +2,73 @@
   <div class="user-manage">
     <div class="user-manage-list">
       <div class="btn-box">
+        <span class="org-name">{{ token.org_name }} &nbsp;|</span>
         <el-button class="add-btn" type="primary" size="small" icon="el-icon-plus" @click="updateOrg('')"
           >添加用户</el-button
         >
         <el-button class="add-btn" type="primary" size="small" @click="updateOrg('')">批量导入用户</el-button>
       </div>
-
-      <el-table :data="list">
+      <el-form inline id="query-form">
+        <el-form-item prop="real_name" label="真实姓名">
+          <el-input v-model="form.real_name"></el-input>
+        </el-form-item>
+        <el-form-item prop="email" label="邮箱">
+          <el-input v-model="form.email"></el-input>
+        </el-form-item>
+        <el-form-item prop="org_manager_status" label="机构管理员">
+          <el-select v-model="form.org_manager_status">
+            <el-option
+              v-for="item in org_manager_list"
+              :key="item.value"
+              :value="item.value"
+              :label="item.label"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="register_date" label="注册日期">
+          <el-date-picker
+            v-model="register_date"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="开始日期"
+            end-placeholder="截止日期"
+            value-format="yyyy-MM-dd"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item prop="user_name" label="用户名">
+          <el-input v-model="form.user_name"></el-input>
+        </el-form-item>
+        <el-form-item prop="phone" label="电话">
+          <el-input v-model="form.phone"></el-input>
+        </el-form-item>
+        <el-form-item prop="stop_status" label="已停用">
+          <el-select v-model="form.stop_status">
+            <el-option v-for="item in stop_list" :key="item.value" :value="item.value" :label="item.label"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item prop="stop_date" label="停用日期">
+          <el-date-picker
+            v-model="stop_date"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="开始日期"
+            end-placeholder="截止日期"
+            value-format="yyyy-MM-dd"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="queryList">查询</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table :data="list" :max-height="tableHeight + 'px'" v-if="tableHeight">
         <el-table-column
           type="index"
           label="序号"
           width="60"
           align="center"
-          :index="(cur_page - 1) * page_capacity + 1"
+          :index="(form.cur_page - 1) * form.page_capacity + 1"
         />
         <el-table-column prop="user_name" label="真实姓名" align="center" />
         <el-table-column prop="real_name" label="用户名" align="center" />
@@ -25,18 +79,16 @@
           </template>
         </el-table-column>
         <el-table-column prop="register_time" label="注册时间" align="center" width="170" />
-        <el-table-column prop="is_audited" label="已审核" align="center"
+        <el-table-column prop="is_stop" label="已停用" align="center"
           ><template slot-scope="{ row }">
-            <i class="el-icon-check" v-if="row.is_audited === 'true'"></i>
+            <i class="el-icon-check" v-if="row.is_stop === 'true'"></i>
           </template>
         </el-table-column>
-        <el-table-column prop="audit_time" label="审核时间" align="center" width="170" />
+        <el-table-column prop="stop_time" label="停用时间" align="center" width="170" />
 
         <el-table-column prop="operation" label="操作" fixed="right" width="200" align="center">
           <template slot-scope="{ row }">
-            <span class="link" @click="setOrgManager(row)">{{
-              row.is_audited === 'true' ? '审核拒绝' : '审核通过'
-            }}</span>
+            <span class="link" @click="setOrgUserStop(row)">{{ row.is_stop === 'true' ? '启用' : '停用' }}</span>
             <span class="link" @click="setPower(row)">设置权限</span>
           </template>
         </el-table-column>
@@ -73,7 +125,8 @@
 import PaginationPage from '@/components/PaginationPage.vue';
 
 import { queryOrgUserList } from '@/api/list.js';
-import { createOrg } from '@/api/org.js';
+import { createOrg, setOrgUserStop } from '@/api/org.js';
+import { getToken } from '@/utils/auth';
 
 export default {
   name: 'UserManageOrg',
@@ -81,11 +134,10 @@ export default {
     PaginationPage,
   },
   data() {
+    const token = getToken();
     return {
       list: [],
       total: 0,
-      page_capacity: 10,
-      cur_page: 1,
       org_Info: {
         name: '',
       },
@@ -94,15 +146,76 @@ export default {
         name: [{ required: true, trigger: 'blur', message: '请输入名称' }],
       },
       loading: false,
+      token: token,
+      form: {
+        real_name: '',
+        user_name: '',
+        email: '',
+        phone: '',
+        org_manager_status: -1,
+        stop_status: -1,
+        register_date_begin: '',
+        register_date_end: '',
+        stop_date_begin: '',
+        stop_date_end: '',
+
+        page_capacity: 10,
+        cur_page: 1,
+      },
+      register_date: [],
+      stop_date: [],
+      tableHeight: 0,
+      org_manager_list: [
+        {
+          value: -1,
+          label: '全部',
+        },
+        {
+          value: 1,
+          label: '机构管理员',
+        },
+        {
+          value: 0,
+          label: '普通用户',
+        },
+      ],
+      stop_list: [
+        {
+          value: -1,
+          label: '全部',
+        },
+        {
+          value: 1,
+          label: '停用',
+        },
+        {
+          value: 0,
+          label: '未停用',
+        },
+      ],
     };
   },
   methods: {
     queryOrgList(data) {
-      queryOrgUserList(data).then(({ total_count, user_list }) => {
+      this.form.page_capacity = data.page_capacity;
+      this.form.cur_page = data.cur_page;
+      if (this.register_date && this.register_date.length === 2) {
+        this.form.register_date_begin = this.register_date[0];
+        this.form.register_date_end = this.register_date[1];
+      } else {
+        this.form.register_date_begin = '';
+        this.form.register_date_end = '';
+      }
+      if (this.stop_date && this.stop_date.length === 2) {
+        this.form.stop_date_begin = this.stop_date[0];
+        this.form.stop_date_end = this.stop_date[1];
+      } else {
+        this.form.stop_date_begin = '';
+        this.form.stop_date_end = '';
+      }
+      queryOrgUserList(this.form).then(({ total_count, user_list }) => {
         this.total = total_count;
         this.list = user_list;
-        this.page_capacity = data.page_capacity;
-        this.cur_page = data.cur_page;
       });
     },
     /**
@@ -122,7 +235,21 @@ export default {
       // this.orgAddFlag = true;
     },
     setPower(row) {},
-    setOrgManager(row) {},
+    setOrgUserStop(row) {
+      let data = {
+        user_id_list: [row.id],
+        is_stop: row.is_stop === 'true' ? 'false' : 'true',
+      };
+      setOrgUserStop(data).then((res) => {
+        if (res.status === 1) {
+          this.queryOrgList({ cur_page: this.form.cur_page, page_capacity: this.form.page_capacity });
+          this.$message({
+            type: 'success',
+            message: '操作成功!',
+          });
+        }
+      });
+    },
     submitOrg() {
       const _this = this;
       _this.$refs.formDialog.validate((valid) => {
@@ -132,7 +259,7 @@ export default {
             .then((res) => {
               if (res.status === 1) {
                 this.loading = false;
-                _this.queryOrgList({ cur_page: _this.cur_page, page_capacity: _this.page_capacity });
+                _this.queryOrgList({ cur_page: _this.form.cur_page, page_capacity: _this.form.page_capacity });
                 _this.$message({
                   type: 'success',
                   message: '创建成功!',
@@ -145,6 +272,16 @@ export default {
         }
       });
     },
+    queryList() {
+      this.queryOrgList({ cur_page: 1, page_capacity: this.form.page_capacity });
+    },
+  },
+  mounted() {
+    this.tableHeight =
+      document.getElementsByClassName('app-container')[0].clientHeight -
+      document.getElementById('query-form').clientHeight -
+      document.getElementsByClassName('el-pagination')[0].clientHeight -
+      50;
   },
 };
 </script>
@@ -157,6 +294,12 @@ export default {
 
   .btn-box {
     display: flex;
+
+    .org-name {
+      margin-right: 5px;
+      font-size: 14px;
+      line-height: 32px;
+    }
   }
 
   .add-btn {
@@ -173,5 +316,13 @@ export default {
       flex: 1;
     }
   }
+
+  :deep .el-form-item--small.el-form-item {
+    margin-bottom: 5px;
+  }
+
+  :deep .el-range-editor .el-range-input {
+    background: transparent;
+  }
 }
 </style>