Michael Wang 4 роки тому
батько
коміт
c5860513b8

+ 17 - 0
src/api/system-org.js

@@ -0,0 +1,17 @@
+import { httpApp } from "@/plugins/axiosIndex";
+import { pickBy } from "lodash-es";
+import { object2QueryString } from "@/utils/utils";
+
+export function searchOrgs({
+  code = "",
+  name = "",
+  enable = "",
+  pageNumber = 1,
+  pageSize = 10,
+}) {
+  const data = pickBy(
+    { code, name, enable, pageNumber, pageSize },
+    (v) => v !== ""
+  );
+  return httpApp.get("/api/admin/org/query?" + object2QueryString(data));
+}

+ 2 - 2
src/components/StateSelect.vue

@@ -29,8 +29,8 @@ export default {
   data() {
     return {
       optionList: [
-        { code: "0", name: "" },
-        { code: "1", name: "" },
+        { code: "0", name: "禁用" },
+        { code: "1", name: "启用" },
       ],
       selected: "",
     };

+ 115 - 0
src/features/system/OrgManagement/OrgManagement.vue

@@ -0,0 +1,115 @@
+<template>
+  <div>
+    <el-form :model="form" inline>
+      <el-form-item label="中心代码">
+        <el-input v-model.trim="form.code"></el-input>
+      </el-form-item>
+      <el-form-item label="中心名称">
+        <el-input v-model.trim="form.name"></el-input>
+      </el-form-item>
+      <el-form-item label="状态">
+        <StateSelect v-model="form.enableState"></StateSelect>
+      </el-form-item>
+      <el-button @click="searchForm">查询</el-button>
+      <el-button>新增</el-button>
+      <el-button>导入</el-button>
+    </el-form>
+
+    <el-table :data="tableData" stripe style="width: 100%;">
+      <el-table-column type="selection" width="40" />
+      <el-table-column width="55" label="ID">
+        <span slot-scope="scope">{{ scope.row.id }}</span>
+      </el-table-column>
+      <el-table-column width="200" label="机构名称">
+        <span slot-scope="scope">{{ scope.row.name }}</span>
+      </el-table-column>
+      <el-table-column width="200" label="机构代码">
+        <span slot-scope="scope">{{ scope.row.code }}</span>
+      </el-table-column>
+      <el-table-column label="状态">
+        <span slot-scope="scope">{{
+          scope.row.enable | zeroOneEnableDisableFilter
+        }}</span>
+      </el-table-column>
+      <el-table-column width="100" label="负责人">
+        <span slot-scope="scope">{{ scope.row.contactName }}</span>
+      </el-table-column>
+      <el-table-column width="120" label="联系方式">
+        <span slot-scope="scope">{{ scope.row.contactPhone }}</span>
+      </el-table-column>
+      <el-table-column width="120" label="更新人">
+        <span slot-scope="scope">{{ scope.row.updateName }}</span>
+      </el-table-column>
+      <el-table-column sortable width="170" label="更新时间" prop="updateTime">
+      </el-table-column>
+      <el-table-column :context="_self" label="操作" width="210">
+        <div slot-scope="scope">
+          <el-button size="mini" type="primary" plain @click="edit(scope.row)">
+            <i class="el-icon-edit"></i> 编辑
+          </el-button>
+        </div>
+      </el-table-column>
+    </el-table>
+    <div class="page float-right">
+      <el-pagination
+        @current-change="handleCurrentChange"
+        :current-page="currentPage"
+        :page-size="pageSize"
+        :page-sizes="[10, 20, 50, 100, 200, 300]"
+        @size-change="handleSizeChange"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total"
+      />
+    </div>
+  </div>
+</template>
+
+<script>
+import StateSelect from "@/components/StateSelect";
+import { searchOrgs } from "../../../api/system-org";
+
+export default {
+  name: "OrgManagement",
+  components: {
+    StateSelect,
+  },
+  data() {
+    return {
+      form: {
+        code: "",
+        name: "",
+        enableState: "",
+      },
+      tableData: [],
+      currentPage: 1,
+      pageSize: 10,
+      total: 10,
+    };
+  },
+  async created() {},
+  methods: {
+    async searchForm() {
+      this.tableData = (
+        await searchOrgs({
+          enable: this.form.enableState,
+          code: this.form.code,
+          name: this.form.name,
+          pageNumber: this.currentPage,
+          pageSize: this.pageSize,
+        })
+      ).data.data.records.records;
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.searchForm();
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.searchForm();
+    },
+  },
+};
+</script>
+
+<style></style>

+ 7 - 5
src/features/system/UserManagement/UserManagement.vue

@@ -18,7 +18,7 @@
       <el-button>导入</el-button>
     </el-form>
 
-    <el-table :data="userList" stripe style="width: 100%;">
+    <el-table :data="tableData" stripe style="width: 100%;">
       <el-table-column type="selection" width="40" />
       <el-table-column width="55" label="ID">
         <span slot-scope="scope">{{ scope.row.id }}</span>
@@ -40,7 +40,9 @@
         <span slot-scope="scope">{{ scope.row.roleName }}</span>
       </el-table-column>
       <el-table-column width="120" label="状态">
-        <span slot-scope="scope">{{ scope.row.enable }}</span>
+        <span slot-scope="scope">{{
+          scope.row.enable | zeroOneEnableDisableFilter
+        }}</span>
       </el-table-column>
       <el-table-column width="120" label="更新人">
         <span slot-scope="scope">{{ scope.row.updateName }}</span>
@@ -55,7 +57,7 @@
         </div>
       </el-table-column>
     </el-table>
-    <div class="page pull-right">
+    <div class="page float-right">
       <el-pagination
         @current-change="handleCurrentChange"
         :current-page="currentPage"
@@ -89,7 +91,7 @@ export default {
         name: "",
         enableState: "",
       },
-      userList: [],
+      tableData: [],
       currentPage: 1,
       pageSize: 10,
       total: 10,
@@ -98,7 +100,7 @@ export default {
   async created() {},
   methods: {
     async searchForm() {
-      this.userList = (
+      this.tableData = (
         await searchUsers({
           role: this.form.roleCode,
           enable: this.form.enableState,

+ 15 - 0
src/filters/index.js

@@ -14,3 +14,18 @@ Vue.filter("booleanPassFilter", function (val) {
   if (val === null) return "无";
   return { true: "通过", false: "不通过" }[val];
 });
+
+Vue.filter("zeroOneYesNoFilter", function (val) {
+  if (val === null) return "无";
+  return { 1: "是", 0: "否" }[val];
+});
+
+Vue.filter("zeroOneEnableDisableFilter", function (val) {
+  if (val === null) return "无";
+  return { 1: "启用", 0: "禁用" }[val];
+});
+
+Vue.filter("zeroOnePassFilter", function (val) {
+  if (val === null) return "无";
+  return { 1: "通过", 0: "不通过" }[val];
+});

+ 8 - 0
src/router/index.js

@@ -56,6 +56,14 @@ const routes = [
             /* webpackChunkName: "system" */ "../features/system/UserManagement/UserManagement.vue"
           ),
       },
+      {
+        path: "org",
+        name: "OrgManagement",
+        component: () =>
+          import(
+            /* webpackChunkName: "system" */ "../features/system/OrgManagement/OrgManagement.vue"
+          ),
+      },
     ],
   },
   {