Browse Source

后台代码提交

liao-sea 1 year ago
parent
commit
079c4a0e30
22 changed files with 1946 additions and 4 deletions
  1. 41 0
      src/main/java/com/hz/employmentsite/controller/baseSettings/SiteInfoController.java
  2. 39 0
      src/main/java/com/hz/employmentsite/controller/baseSettings/UserInfoController.java
  3. 15 0
      src/main/java/com/hz/employmentsite/mapper/SiteInfoMapper.java
  4. 13 0
      src/main/java/com/hz/employmentsite/mapper/cquery/SiteInfoCQuery.java
  5. 11 0
      src/main/java/com/hz/employmentsite/mapper/cquery/UserInfoCQuery.java
  6. 87 0
      src/main/java/com/hz/employmentsite/model/SiteInfoRecord.java
  7. 1155 0
      src/main/java/com/hz/employmentsite/model/SiteInfoRecordExample.java
  8. 32 0
      src/main/java/com/hz/employmentsite/services/impl/baseSettings/SiteInfoImpl.java
  9. 32 0
      src/main/java/com/hz/employmentsite/services/impl/baseSettings/UserInfoImpl.java
  10. 11 0
      src/main/java/com/hz/employmentsite/services/service/baseSettings/SiteInfoService.java
  11. 11 0
      src/main/java/com/hz/employmentsite/services/service/baseSettings/UserInfoService.java
  12. 27 0
      src/main/java/com/hz/employmentsite/vo/baseSettings/SiteInfoModel.java
  13. 21 0
      src/main/java/com/hz/employmentsite/vo/baseSettings/UserInfoModel.java
  14. 27 0
      src/main/resources/mapping/cquery/SiteInfoCQuery.xml
  15. 15 0
      src/main/resources/mapping/cquery/UserInfoCQuery.xml
  16. 17 0
      vue/src/api/baseSettings/siteInfo.ts
  17. 17 0
      vue/src/api/baseSettings/userInfo.ts
  18. 2 0
      vue/src/router/asyncModules/basesettings.ts
  19. 1 1
      vue/src/views/baseSettings/institution/edit.vue
  20. 3 3
      vue/src/views/baseSettings/institution/index.vue
  21. 199 0
      vue/src/views/baseSettings/site/index.vue
  22. 170 0
      vue/src/views/baseSettings/user/index.vue

+ 41 - 0
src/main/java/com/hz/employmentsite/controller/baseSettings/SiteInfoController.java

@@ -0,0 +1,41 @@
+package com.hz.employmentsite.controller.baseSettings;
+
+import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.filter.exception.BaseResponse;
+import com.hz.employmentsite.filter.exception.RespGenerstor;
+import com.hz.employmentsite.util.ExcelHelper;
+import com.hz.employmentsite.vo.baseSettings.SiteInfoModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.hz.employmentsite.services.service.baseSettings.SiteInfoService;
+import com.hz.employmentsite.services.service.AccountService;
+
+@RestController
+@RequestMapping("/api/siteInfo/")
+public class SiteInfoController {
+
+    @Autowired
+    private AccountService accountService;
+
+    @Autowired
+    private SiteInfoService siteService;
+
+    @Autowired
+    private ExcelHelper excelHelper;
+
+    @ResponseBody
+    @GetMapping("/getList")
+    public BaseResponse<PageInfo<SiteInfoModel>> getList(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize,
+                                                         @RequestParam(required = false) String primaryKey, @RequestParam(required = false) String siteCode,
+                                                         @RequestParam(required = false) String siteName, @RequestParam(required = false) String institutionName,
+                                                         @RequestParam(required = false) String regionName, @RequestParam(required = false) String streetName) {
+
+        PageInfo<SiteInfoModel> result = siteService.getList(pageIndex,pageSize,primaryKey,siteCode,siteName,institutionName,regionName,streetName);
+
+        return RespGenerstor.success(result);
+    }
+
+
+
+
+}

+ 39 - 0
src/main/java/com/hz/employmentsite/controller/baseSettings/UserInfoController.java

@@ -0,0 +1,39 @@
+package com.hz.employmentsite.controller.baseSettings;
+
+import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.filter.exception.BaseResponse;
+import com.hz.employmentsite.filter.exception.RespGenerstor;
+import com.hz.employmentsite.services.service.AccountService;
+import com.hz.employmentsite.services.service.baseSettings.UserInfoService;
+import com.hz.employmentsite.util.ExcelHelper;
+import com.hz.employmentsite.vo.baseSettings.UserInfoModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/api/userInfo/")
+public class UserInfoController {
+
+    @Autowired
+    private AccountService accountService;
+
+    @Autowired
+    private UserInfoService userInfoService;
+
+    @Autowired
+    private ExcelHelper excelHelper;
+
+    @ResponseBody
+    @GetMapping("/getList")
+    public BaseResponse<PageInfo<UserInfoModel>> getList(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize,
+                                                         @RequestParam(required = false) String primaryKey,@RequestParam(required = false) String userName) {
+
+        PageInfo<UserInfoModel> result = userInfoService.getList(pageIndex,pageSize, primaryKey,userName);
+
+        return RespGenerstor.success(result);
+    }
+
+
+
+
+}

+ 15 - 0
src/main/java/com/hz/employmentsite/mapper/SiteInfoMapper.java

@@ -0,0 +1,15 @@
+package com.hz.employmentsite.mapper;
+
+import com.hz.employmentsite.model.SiteInfoRecord;
+import com.hz.employmentsite.model.SiteInfoRecordExample;
+
+public interface SiteInfoMapper {
+
+    SiteInfoRecord selectByPrimaryKey(String problemLedgerRecordID);
+
+    int insert(SiteInfoRecord row);
+
+    int updateByPrimaryKey(SiteInfoRecord row);
+
+    int deleteByExample(SiteInfoRecordExample example);
+}

+ 13 - 0
src/main/java/com/hz/employmentsite/mapper/cquery/SiteInfoCQuery.java

@@ -0,0 +1,13 @@
+package com.hz.employmentsite.mapper.cquery;
+
+import com.hz.employmentsite.vo.baseSettings.SiteInfoModel;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface SiteInfoCQuery {
+    List<SiteInfoModel> getList(@Param("primaryKey") String primaryKey, @Param("siteCode") String siteCode,
+                                @Param("siteName") String siteName, @Param("institutionName") String institutionName,
+                                @Param("regionName") String regionName, @Param("streetName") String streetName);
+
+}

+ 11 - 0
src/main/java/com/hz/employmentsite/mapper/cquery/UserInfoCQuery.java

@@ -0,0 +1,11 @@
+package com.hz.employmentsite.mapper.cquery;
+
+import com.hz.employmentsite.vo.baseSettings.UserInfoModel;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface UserInfoCQuery {
+    List<UserInfoModel> getList(@Param("primaryKey") String primaryKey, @Param("userName") String userName);
+
+}

+ 87 - 0
src/main/java/com/hz/employmentsite/model/SiteInfoRecord.java

@@ -0,0 +1,87 @@
+package com.hz.employmentsite.model;
+
+public class SiteInfoRecord {
+    public String szkey;
+    public String szcode;
+    public String szregion;
+    public String szstreet;
+    public String szaddress;
+
+    public String szx;
+    public String szy;
+
+    public String szname;
+    public String szusername;
+    public String szusermobile;
+
+    public String szsaveuser;
+    public String szsavetime;
+    public String szupdateuser;
+    public String szupdatetime;
+
+    public String getszkey() {
+        return szkey;
+    }
+    public void setszkey(String szkey) {this.szkey = szkey == null ? null : szkey.trim();}
+
+
+    public String getszcode() {
+        return szcode;
+    }
+    public void setszcode(String szcode) {this.szcode = szcode == null ? null : szcode.trim();}
+    public String getszregion() {
+        return szregion;
+    }
+    public void setszregion(String szregion) {this.szregion = szregion == null ? null : szregion.trim();}
+    public String getszstreet() {
+        return szstreet;
+    }
+    public void setszstreet(String szcomaddress) {this.szstreet = szstreet == null ? null : szstreet.trim();}
+    public String getszaddress() {
+        return szaddress;
+    }
+    public void setszaddress(String szaddress) {this.szaddress = szaddress == null ? null : szaddress.trim();}
+
+
+
+    public String getszx() {
+        return szx;
+    }
+    public void setszx(String szx) {this.szx = szx == null ? null : szx.trim();}
+    public String getszy() {
+        return szy;
+    }
+    public void setszy(String szy) {this.szy = szy == null ? null : szy.trim();}
+
+    public String getszname() {
+        return szname;
+    }
+    public void setszname(String szname) {this.szname = szname == null ? null : szname.trim();}
+    public String getszusername() {
+        return szusername;
+    }
+    public void setsszusername(String szusername) {this.szusername = szusername == null ? null : szusername.trim();}
+    public String getszusermobile() {
+        return szusermobile;
+    }
+    public void setszusermobile(String szusermobile) {this.szusermobile = szusermobile == null ? null : szusermobile.trim();}
+
+
+    public String getszsaveuser() {
+        return szsaveuser;
+    }
+    public void setszsaveuser(String szsaveuser) {this.szsaveuser = szsaveuser == null ? null : szsaveuser.trim();}
+    public String getszsavetime() {
+        return szsavetime;
+    }
+    public void setszsavetime(String szsavetime) {this.szsavetime = szsavetime == null ? null : szsavetime.trim();}
+    public String getszupdateuser() {
+        return szupdateuser;
+    }
+    public void setszupdateuser(String szupdateuser) {this.szupdateuser = szupdateuser == null ? null : szupdateuser.trim();}
+    public String getszupdatetime() {
+        return szupdatetime;
+    }
+    public void setszupdatetime(String szupdatetime) {this.szupdatetime = szupdatetime == null ? null : szupdatetime.trim();}
+
+}

File diff suppressed because it is too large
+ 1155 - 0
src/main/java/com/hz/employmentsite/model/SiteInfoRecordExample.java


+ 32 - 0
src/main/java/com/hz/employmentsite/services/impl/baseSettings/SiteInfoImpl.java

@@ -0,0 +1,32 @@
+package com.hz.employmentsite.services.impl.baseSettings;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.mapper.cquery.SiteInfoCQuery;
+import com.hz.employmentsite.services.service.baseSettings.SiteInfoService;
+import com.hz.employmentsite.util.StringUtils;
+import com.hz.employmentsite.vo.baseSettings.SiteInfoModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("SiteInfoService")
+public class SiteInfoImpl implements SiteInfoService {
+
+    @Autowired
+    private SiteInfoCQuery siteCQuery;
+
+    @Autowired
+    private StringUtils stringUtils;
+
+    @Override
+    public PageInfo<SiteInfoModel> getList(int pageIndex, int pageSize, String primaryKey, String siteCode, String siteName, String institutionName, String regionName, String streetName) {
+        PageHelper.startPage(pageIndex, pageSize);
+        List<SiteInfoModel> dataList = siteCQuery.getList(primaryKey,siteCode,siteName,institutionName,regionName,streetName);
+        PageInfo<SiteInfoModel> result = new PageInfo(dataList);
+        return result;
+    }
+
+
+}

+ 32 - 0
src/main/java/com/hz/employmentsite/services/impl/baseSettings/UserInfoImpl.java

@@ -0,0 +1,32 @@
+package com.hz.employmentsite.services.impl.baseSettings;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.mapper.cquery.UserInfoCQuery;
+import com.hz.employmentsite.services.service.baseSettings.UserInfoService;
+import com.hz.employmentsite.util.StringUtils;
+import com.hz.employmentsite.vo.baseSettings.UserInfoModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("UserInfoService")
+public class UserInfoImpl implements UserInfoService {
+
+    @Autowired
+    private UserInfoCQuery userInfoCQuery;
+
+    @Autowired
+    private StringUtils stringUtils;
+
+    @Override
+    public PageInfo<UserInfoModel> getList(int pageIndex, int pageSize, String primaryKey, String userName) {
+        PageHelper.startPage(pageIndex, pageSize);
+        List<UserInfoModel> dataList = userInfoCQuery.getList(primaryKey,userName);
+        PageInfo<UserInfoModel> result = new PageInfo(dataList);
+        return result;
+    }
+
+
+}

+ 11 - 0
src/main/java/com/hz/employmentsite/services/service/baseSettings/SiteInfoService.java

@@ -0,0 +1,11 @@
+package com.hz.employmentsite.services.service.baseSettings;
+
+import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.vo.baseSettings.SiteInfoModel;
+
+
+public interface SiteInfoService {
+
+    PageInfo<SiteInfoModel> getList(int pageIndex, int pageSize, String primaryKey, String siteCode, String siteName, String institutionName, String regionName, String streetName);
+
+}

+ 11 - 0
src/main/java/com/hz/employmentsite/services/service/baseSettings/UserInfoService.java

@@ -0,0 +1,11 @@
+package com.hz.employmentsite.services.service.baseSettings;
+
+import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.vo.baseSettings.UserInfoModel;
+
+
+public interface UserInfoService {
+
+    PageInfo<UserInfoModel> getList(int pageIndex, int pageSize, String primaryKey, String userName);
+
+}

+ 27 - 0
src/main/java/com/hz/employmentsite/vo/baseSettings/SiteInfoModel.java

@@ -0,0 +1,27 @@
+package com.hz.employmentsite.vo.baseSettings;
+import lombok.Data;
+
+@Data
+public class SiteInfoModel {
+
+    public String szkey;
+    public String szcode;
+    public String szregion;
+    public String szstreet;
+    public String szaddress;
+
+    public String szx;
+    public String szy;
+
+    public String szname;
+    public String szusername;
+    public String szusermobile;
+
+    public String CompanyNameSiteInfoModel;
+
+    public String szsaveuser;
+    public String szsavetime;
+    public String szupdateuser;
+    public String szupdatetime;
+
+}

+ 21 - 0
src/main/java/com/hz/employmentsite/vo/baseSettings/UserInfoModel.java

@@ -0,0 +1,21 @@
+package com.hz.employmentsite.vo.baseSettings;
+import lombok.Data;
+import net.sf.jsqlparser.expression.DateTimeLiteralExpression;
+
+@Data
+public class UserInfoModel {
+
+    public String UserID;
+    public Integer UserTypeID;
+    public String LoginID;
+    public String Password;
+    public String Name;
+
+    public Integer RecordStatus;
+
+    public String CreateBy;
+    public DateTimeLiteralExpression.DateTime CreateTime;
+    public String UpdateBy;
+    public DateTimeLiteralExpression.DateTime UpdateTime;
+
+}

+ 27 - 0
src/main/resources/mapping/cquery/SiteInfoCQuery.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hz.employmentsite.mapper.cquery.SiteInfoCQuery">
+    <select id="getList" resultType="com.hz.employmentsite.vo.baseSettings.SiteInfoModel">
+        select  A.*,C.szcompanyname as CompanyName from pc_site A,pc_site_institution B,pc_institution C
+        where A.szkey = B.szsitekey and B.szinstitutionkey = C.szkey and 1=1
+        <if test="primaryKey!='' and primaryKey!=null">
+            and szkey in (${primaryKey})
+        </if>
+        <if test="siteCode!='' and siteCode!=null">
+            and szcode like Concat('%',#{siteCode},'%')
+        </if>
+        <if test="siteName!='' and siteName!=null">
+            and sznamae = #{siteName}
+        </if>
+        <if test="institutionName!='' and institutionName!=null">
+            and CompanyName like Concat('%',#{institutionName},'%')
+        </if>
+        <if test="regionName!='' and regionName!=null">
+            and szregion like Concat('%',#{regionName},'%')
+        </if>
+        <if test="streetName!='' and streetName!=null">
+            and szstreet like Concat('%',#{streetName},'%')
+        </if>
+    </select>
+
+</mapper>

+ 15 - 0
src/main/resources/mapping/cquery/UserInfoCQuery.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hz.employmentsite.mapper.cquery.UserInfoCQuery">
+    <select id="getList" resultType="com.hz.employmentsite.vo.baseSettings.UserInfoModel">
+        select * from pc_user and 1=1
+        <if test="primaryKey!='' and primaryKey!=null">
+            and szkey in (${primaryKey})
+        </if>
+        <if test="userName!='' and userName!=null">
+            and Name like Concat('%',#{userName},'%')
+        </if>
+
+    </select>
+
+</mapper>

+ 17 - 0
vue/src/api/baseSettings/siteInfo.ts

@@ -0,0 +1,17 @@
+import {request} from "@/utils/request";
+
+
+export function getList(params: any) {
+  return request<object>(
+    {
+      url: "siteInfo/getList",
+      method: 'get',
+      params: params,
+    },
+    {
+      isNew: true,
+    },
+  );
+}
+
+

+ 17 - 0
vue/src/api/baseSettings/userInfo.ts

@@ -0,0 +1,17 @@
+import {request} from "@/utils/request";
+
+
+export function getList(params: any) {
+  return request<object>(
+    {
+      url: "userInfo/getList",
+      method: 'get',
+      params: params,
+    },
+    {
+      isNew: true,
+    },
+  );
+}
+
+

+ 2 - 0
vue/src/router/asyncModules/basesettings.ts

@@ -1,4 +1,6 @@
 export default {
   'baseSettings/institution/index': () => import('@/views/baseSettings/institution/index.vue'),
   'baseSettings/institution/edit': () => import('@/views/baseSettings/institution/edit.vue'),
+  'baseSettings/site/index': () => import('@/views/baseSettings/site/index.vue'),
+  'baseSettings/user/index': () => import('@/views/baseSettings/user/index.vue'),
 };

+ 1 - 1
vue/src/views/baseSettings/institution/edit.vue

@@ -112,7 +112,7 @@ interface FormState {
   dataModel: any;
 }
 export default defineComponent({
-  name:'institutionEdit',
+  name:'institutionEditForm',
   components: {BUploadFile},
   props: {
     loadData: {

+ 3 - 3
vue/src/views/baseSettings/institution/index.vue

@@ -93,7 +93,7 @@
         </template>
       </a-table>
     </div>
-    <InstitutionEditModel ref="institutionEditModelRef" :loadData="loadData"></InstitutionEditModel>
+    <InstitutionEditForm ref="institutionEditModelRef" :loadData="loadData"></InstitutionEditForm>
   </div>
 </template>
 
@@ -103,14 +103,14 @@ import {DownOutlined, ExclamationCircleOutlined, UpOutlined} from '@ant-design/i
 import type {FormInstance} from 'ant-design-vue';
 import type {TableColumnsType, TableProps} from 'ant-design-vue';
 import {getList, del} from '@/api/baseSettings/institution';
-import InstitutionEditModel from "@/views/baseSettings/institution/edit.vue";
+import InstitutionEditForm from "@/views/baseSettings/institution/edit.vue";
 import BExportExcel from "@/components/basic/excel/exportExcel/exportExcel.vue";
 import {getPaginationTotalTitle} from "@/utils/common";
 import {message, Modal} from "ant-design-vue";
 
 export default defineComponent({
   name: 'InstitutionList',
-  components: {InstitutionEditModel, DownOutlined, UpOutlined, BExportExcel},
+  components: {InstitutionEditForm, DownOutlined, UpOutlined, BExportExcel},
   setup() {
     const formRef = ref<FormInstance>();
     const searchParams = reactive({

+ 199 - 0
vue/src/views/baseSettings/site/index.vue

@@ -0,0 +1,199 @@
+<template>
+  <div class="card-search">
+    <a-form ref="formRef" name="advanced_search"  class="ant-advanced-search-form" :model="searchParams" >
+      <a-row :gutter="24">
+        <a-col :span="6">
+          <a-form-item label="驿站编号" :label-col="{span:6}" name="SiteCode">
+            <a-input v-model:value="searchParams.siteCode" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="7">
+          <a-form-item label="站点名称" :label-col="{span:7}" name="SiteName">
+            <a-input v-model:value="searchParams.siteName" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="6">
+          <a-form-item label="所属机构" :label-col="{span:6}" name="InstitutionName">
+            <a-input v-model:value="searchParams.institutionName" placeholder=""/>
+          </a-form-item>
+        </a-col>
+      <a-col :span="5" style="text-align: right">
+          <a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
+        </a-col>
+      </a-row>
+      <a-row :gutter="24">
+        <a-col :span="6">
+          <a-form-item label="所属县区" :label-col="{span:6}" name="RegionName">
+            <a-input v-model:value="searchParams.regionName" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="7">
+          <a-form-item label="所属街道" :label-col="{span:7}" name="StreetName">
+            <a-input v-model:value="searchParams.streetName" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="6">
+        </a-col>
+        <a-col :span="5" style="text-align: right">
+        </a-col>
+      </a-row>
+      <a-row class="edit-operation">
+        <a-col :span="24" style="text-align: right">
+          <a-button type="primary" html-type="submit" @click='onOperates(null,"新增",false)' >新增</a-button>
+          <a-button type="primary" >导出</a-button>
+        </a-col>
+      </a-row>
+    </a-form>
+    <div class="search-result-list">
+      <a-table :columns="columns" :data-source="dataList" :scroll="{ x:'100%', y: 500 }" :pagination="pagination"
+               :loading="formState.loading"
+               @change="handleTableChange"
+               :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange}"
+               :row-key="record=>record.szkey"
+               bordered>
+        <template #bodyCell="{ column, text, record }">
+          <template v-if="column.key === 'operation'">
+            <div class="table-operation">
+              <a-button type="link" size="small" @click='onOperates(record.szkey.toString(),"修改",false)' >编辑</a-button>
+              <a-button type="link" size="small" @click="onDel(record)" >删除</a-button>
+            </div>
+          </template>
+        </template>
+      </a-table>
+    </div>
+  </div>
+</template>
+
+<script lang="ts">
+import {reactive, ref, computed, defineComponent, createVNode} from 'vue';
+import {DownOutlined, ExclamationCircleOutlined, UpOutlined} from '@ant-design/icons-vue';
+import type {FormInstance} from 'ant-design-vue';
+import type {TableColumnsType, TableProps} from 'ant-design-vue';
+import {getList} from '@/api/baseSettings/siteInfo';
+import BExportExcel from "@/components/basic/excel/exportExcel/exportExcel.vue";
+import {getPaginationTotalTitle} from "@/utils/common";
+import {message, Modal} from "ant-design-vue";
+
+export default defineComponent({
+  name: 'SiteList',
+  components: {DownOutlined, UpOutlined, BExportExcel},
+  setup() {
+    const formRef = ref<FormInstance>();
+    const searchParams = reactive({
+      pageIndex: 1,
+      pageSize: 20,
+      primaryKey:'',
+      siteCode: '',
+      siteName: '',
+      institutionName:'',
+      regionName:'',
+      streetName:'',
+    });
+    const formState = reactive({
+      total: 0,
+      selectedRowKeys: [],
+      loading: false
+    });
+    const columns: TableColumnsType = [
+      {title: '序号', align: "center",key: 'szkey',customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`},
+      {title: '驿站编号', dataIndex: 'szcode', key: 'szcode', align: "center"},
+      {title: '站点名称', dataIndex: 'szname', key: 'szname',width:120, align: "center"},
+      {title: '站点负责人', dataIndex: 'szusername', key: 'szusername', align: "center"},
+      {title: '联系电话', dataIndex: 'szusermobile', key: 'szusermobile', align: "center"},
+      {title: '所属县区', dataIndex: 'szregion', key: 'szregion', align: "center"},
+      {title: '所属街道', dataIndex: 'szstreet', key: 'szstreet', align: "center"},
+      {title: '详细地址', dataIndex: 'szaddress', key: 'szaddress', align: "center"},
+      {title: '所属机构', dataIndex: 'CompanyName', key: 'CompanyName', align: "center"},
+      {title: '驿站人员数量', key: 'UserNumber', fixed: 'right',width:170, align: "center"},
+      {title: '操作', key: 'operation', fixed: 'right',width:170, align: "center"},
+    ];
+    const pagination = computed(() => ({
+      total: formState.total,
+      current: searchParams.pageIndex,
+      pageSize: searchParams.pageSize,
+      showSizeChanger: true,
+      showTotal: total => getPaginationTotalTitle(total)
+    }));
+
+    const dataList = ref([]);
+    const SiteEditModelRef = ref();
+
+    const handleTableChange: TableProps['onChange'] = (pag: { pageSize: number; current: number },) => {
+      searchParams.pageIndex = pag.current;
+      searchParams.pageSize = pag.pageSize;
+      loadData();
+    };
+
+    const onSelectChange = (selectedRowKeys: any) => {
+      formState.selectedRowKeys = selectedRowKeys;
+    };
+
+    const onSearch = () => {
+      loadData();
+    }
+
+    const onDel= (item: any) => {
+      if (item) {
+        formState.selectedRowKeys.push(item.szkey as never)
+      }
+
+      if (formState.selectedRowKeys.length <= 0) {
+        message.warning('请选择需要删除的数据!');
+        return false;
+      }
+
+      Modal.confirm({
+        title: '确认删除选中的驿站站点?',
+        icon: createVNode(ExclamationCircleOutlined),
+        content: '',
+        okText: '确认删除',
+        okType: 'danger',
+        okButtonProps: {},
+        cancelText: '取消',
+        onOk() {
+
+        },
+        onCancel() {
+
+        },
+      });
+    };
+
+    const onOperates = (id: string,operation:string,isDetail:boolean) => {
+      SiteEditModelRef.value.show(id,operation,isDetail);
+    };
+    const loadData = async function () {
+      formState.loading = true;
+      const result: any = await getList(searchParams);
+      dataList.value = result.list;
+      formState.total = result.total;
+      formState.loading = false;
+    }
+
+
+
+    return {
+      formRef,
+      searchParams,
+      formState,
+      columns,
+      pagination,
+      dataList,
+      SiteEditModelRef,
+      handleTableChange,
+      onSelectChange,
+      onSearch,
+      onOperates,
+      onDel,
+      loadData
+    };
+  },
+  created() {
+    this.loadData();
+  },
+  activated() {
+    if (history.state.params?.reload)
+      this.loadData();
+  }
+});
+</script>

+ 170 - 0
vue/src/views/baseSettings/user/index.vue

@@ -0,0 +1,170 @@
+<template>
+  <div class="card-search">
+    <a-form ref="formRef" name="advanced_search"  class="ant-advanced-search-form" :model="searchParams" >
+      <a-row :gutter="24">
+        <a-col :span="6">
+          <a-form-item label="人员名称" :label-col="{span:6}" name="UserName">
+            <a-input v-model:value="searchParams.userName" placeholder=""/>
+          </a-form-item>
+        </a-col>
+        <a-col :span="7">
+
+        </a-col>
+        <a-col :span="6">
+
+        </a-col>
+      <a-col :span="5" style="text-align: right">
+          <a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
+        </a-col>
+      </a-row>
+
+      <a-row class="edit-operation">
+        <a-col :span="24" style="text-align: right">
+          <a-button type="primary" html-type="submit" @click='onOperates(null,"新增",false)' >新增</a-button>
+        </a-col>
+      </a-row>
+    </a-form>
+    <div class="search-result-list">
+      <a-table :columns="columns" :data-source="dataList" :scroll="{ x:'100%', y: 500 }" :pagination="pagination"
+               :loading="formState.loading"
+               @change="handleTableChange"
+               :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange}"
+               :row-key="record=>record.szkey"
+               bordered>
+        <template #bodyCell="{ column, text, record }">
+          <template v-if="column.key === 'operation'">
+            <div class="table-operation">
+              <a-button type="link" size="small" @click='onOperates(record.szkey.toString(),"修改",false)' >编辑</a-button>
+              <a-button type="link" size="small" @click="onDel(record)" >删除</a-button>
+            </div>
+          </template>
+        </template>
+      </a-table>
+    </div>
+  </div>
+</template>
+
+<script lang="ts">
+import {reactive, ref, computed, defineComponent, createVNode} from 'vue';
+import {DownOutlined, ExclamationCircleOutlined, UpOutlined} from '@ant-design/icons-vue';
+import type {FormInstance} from 'ant-design-vue';
+import type {TableColumnsType, TableProps} from 'ant-design-vue';
+import {getList} from '@/api/baseSettings/userInfo';
+import BExportExcel from "@/components/basic/excel/exportExcel/exportExcel.vue";
+import {getPaginationTotalTitle} from "@/utils/common";
+import {message, Modal} from "ant-design-vue";
+
+export default defineComponent({
+  name: 'UserInfoList',
+  components: {DownOutlined, UpOutlined, BExportExcel},
+  setup() {
+    const formRef = ref<FormInstance>();
+    const searchParams = reactive({
+      pageIndex: 1,
+      pageSize: 20,
+      primaryKey:'',
+      userName: ''
+    });
+    const formState = reactive({
+      total: 0,
+      selectedRowKeys: [],
+      loading: false
+    });
+    const columns: TableColumnsType = [
+      {title: '序号', align: "center",key: 'szkey',customRender: item => `${searchParams.pageSize * (searchParams.pageIndex - 1) + item.index + 1}`},
+      {title: '人员名称', dataIndex: 'Name', key: 'Name', align: "center"},
+      {title: '角色', dataIndex: 'UserTypeName', key: 'UserTypeName',width:120, align: "center"},
+      {title: '性别', dataIndex: 'UserSex', key: 'UserSex', align: "center"},
+      {title: '联系电话', dataIndex: 'UserMobile', key: 'UserMobile', align: "center"},
+      {title: '操作', key: 'operation', fixed: 'right',width:170, align: "center"},
+    ];
+    const pagination = computed(() => ({
+      total: formState.total,
+      current: searchParams.pageIndex,
+      pageSize: searchParams.pageSize,
+      showSizeChanger: true,
+      showTotal: total => getPaginationTotalTitle(total)
+    }));
+
+    const dataList = ref([]);
+    const UserInfoEditModelRef = ref();
+
+    const handleTableChange: TableProps['onChange'] = (pag: { pageSize: number; current: number },) => {
+      searchParams.pageIndex = pag.current;
+      searchParams.pageSize = pag.pageSize;
+      loadData();
+    };
+
+    const onSelectChange = (selectedRowKeys: any) => {
+      formState.selectedRowKeys = selectedRowKeys;
+    };
+
+    const onSearch = () => {
+      loadData();
+    }
+
+    const onDel= (item: any) => {
+      if (item) {
+        formState.selectedRowKeys.push(item.szkey as never)
+      }
+
+      if (formState.selectedRowKeys.length <= 0) {
+        message.warning('请选择需要删除的数据!');
+        return false;
+      }
+
+      Modal.confirm({
+        title: '确认删除选中的人员信息?',
+        icon: createVNode(ExclamationCircleOutlined),
+        content: '',
+        okText: '确认删除',
+        okType: 'danger',
+        okButtonProps: {},
+        cancelText: '取消',
+        onOk() {
+
+        },
+        onCancel() {
+
+        },
+      });
+    };
+
+    const onOperates = (id: string,operation:string,isDetail:boolean) => {
+      UserInfoEditModelRef.value.show(id,operation,isDetail);
+    };
+    const loadData = async function () {
+      formState.loading = true;
+      const result: any = await getList(searchParams);
+      dataList.value = result.list;
+      formState.total = result.total;
+      formState.loading = false;
+    }
+
+
+
+    return {
+      formRef,
+      searchParams,
+      formState,
+      columns,
+      pagination,
+      dataList,
+      UserInfoEditModelRef,
+      handleTableChange,
+      onSelectChange,
+      onSearch,
+      onOperates,
+      onDel,
+      loadData
+    };
+  },
+  created() {
+    this.loadData();
+  },
+  activated() {
+    if (history.state.params?.reload)
+      this.loadData();
+  }
+});
+</script>