Browse Source

区管理员

pengjing 10 months ago
parent
commit
a1ef7354fd

+ 2 - 1
src/main/java/com/hz/employmentsite/controller/UserController.java

@@ -12,6 +12,7 @@ import com.hz.employmentsite.util.DesUtils;
 import com.hz.employmentsite.util.JsonMapper;
 import com.hz.employmentsite.vo.DesModel;
 import com.github.pagehelper.PageInfo;
+import com.hz.employmentsite.vo.user.UserEditVo;
 import com.hz.employmentsite.vo.user.UserInfoModel;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -60,7 +61,7 @@ public class UserController {
     }
 
     @PostMapping("save")
-    public BaseResponse<Integer> save(@RequestBody SysUser data) {
+    public BaseResponse<Integer> save(@RequestBody UserEditVo data) {
         return RespGenerstor.success(userService.save(data,accountService.getLoginUserID()));
     }
 

+ 29 - 7
src/main/java/com/hz/employmentsite/services/impl/UserServiceImpl.java

@@ -8,6 +8,7 @@ import com.hz.employmentsite.services.service.UserService;
 import com.hz.employmentsite.util.DateUtils;
 import com.hz.employmentsite.util.StringUtils;
 import com.hz.employmentsite.vo.user.DataRange;
+import com.hz.employmentsite.vo.user.UserEditVo;
 import com.hz.employmentsite.vo.user.UserInfoModel;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -29,8 +30,10 @@ public class UserServiceImpl implements UserService {
     @Autowired
     private StringUtils stringUtils;
 
-    private String defaultPassword = "52653B706ADC444F6660FAB66D6DC210";//Hjy@2024
+    @Autowired
+    private SysUserDatarangeMapper sysUserDatarangeMapper;
 
+    private String defaultPassword = "52653B706ADC444F6660FAB66D6DC210";//Hjy@2024
 
 
     @Override
@@ -121,13 +124,13 @@ public class UserServiceImpl implements UserService {
     public UserInfoModel getUserInfo(String userId) {
         if (stringUtils.IsNullOrEmpty(userId)) {
             return null;
-        }else{
+        } else {
             return sysUserCQuery.selectUserInfo(userId);
         }
     }
 
     @Override
-    public Integer save(SysUser data, String userId) {
+    public Integer save(UserEditVo data, String userId) {
         int result = 0;
         UserInfoModel record = getUserInfo(data.getUserID());
         SysUser dbData = record == null ? null : sysUserMapper.selectByPrimaryKey(record.userID);
@@ -138,9 +141,9 @@ public class UserServiceImpl implements UserService {
             dbData.setUserID(data.getUserID());
             dbData.setName(data.getName());
             dbData.setLoginID(data.getLoginID());
-            if(data.getPassword()==null){
+            if (data.getPassword() == null) {
                 dbData.setPassword(defaultPassword);
-            }else{
+            } else {
                 dbData.setPassword(DigestUtils.md5DigestAsHex(data.getPassword().getBytes()).toUpperCase());
             }
             dbData.setUserTypeID(data.getUserTypeID());
@@ -152,9 +155,9 @@ public class UserServiceImpl implements UserService {
             //修改
             dbData.setName(data.getName());
             dbData.setLoginID(data.getLoginID());
-            if(data.getPassword()==null){
+            if (data.getPassword() == null) {
                 dbData.setPassword(defaultPassword);
-            }else{
+            } else {
                 dbData.setPassword(DigestUtils.md5DigestAsHex(data.getPassword().getBytes()).toUpperCase());
             }
             dbData.setUserTypeID(data.getUserTypeID());
@@ -163,6 +166,24 @@ public class UserServiceImpl implements UserService {
             dbData.setUpdateTime(new Date());
             result = sysUserMapper.updateByPrimaryKey(dbData);
         }
+
+        SysUserDatarangeExample udExp = new SysUserDatarangeExample();
+        SysUserDatarangeExample.Criteria udCri = udExp.or();
+        udCri.andUserIdEqualTo(data.getUserID());
+        sysUserDatarangeMapper.deleteByExample(udExp);
+
+        if (data.datarangeIdList!=null) {
+
+            data.datarangeIdList.forEach(datarangeId -> {
+                SysUserDatarangeKey sysUserDatarange = new SysUserDatarangeKey();
+                sysUserDatarange.setUserId(data.getUserID());
+                sysUserDatarange.setDatarangeId(datarangeId);
+
+                sysUserDatarangeMapper.insert(sysUserDatarange);
+            });
+
+        }
+
         return result;
     }
 
@@ -244,6 +265,7 @@ public class UserServiceImpl implements UserService {
     public List<SysMenu> getUserShortcutMenuList(String userID) {
         return sysUserCQuery.selectUserShortcutMenuList(userID);
     }
+
     public SysUser getUserByLoginID(String loginID) {
         SysUserExample exp = new SysUserExample();
         SysUserExample.Criteria criteria = exp.or();

+ 2 - 1
src/main/java/com/hz/employmentsite/services/service/UserService.java

@@ -5,6 +5,7 @@ import com.hz.employmentsite.model.SysRole;
 import com.hz.employmentsite.model.SysUser;
 import com.hz.employmentsite.vo.baseSettings.InstitutionVo;
 import com.hz.employmentsite.vo.user.DataRange;
+import com.hz.employmentsite.vo.user.UserEditVo;
 import com.hz.employmentsite.vo.user.UserInfoModel;
 import com.github.pagehelper.PageInfo;
 
@@ -16,7 +17,7 @@ public interface UserService {
     List<DataRange> getUserDataRange(String userID);
     int updateUserStatus(String userId, Integer status);
     UserInfoModel getUserInfo(String userId);
-    Integer save(SysUser data, String userId);
+    Integer save(UserEditVo data, String userId);
     PageInfo<HashMap<String, Object>> getUserList(int page, int rows, String name,String loginID, Integer sex, Integer recordStatus, Integer userType);
     SysUser getIsCacheUserInfoByID(String userId);
 

+ 11 - 0
src/main/java/com/hz/employmentsite/vo/user/UserEditVo.java

@@ -0,0 +1,11 @@
+package com.hz.employmentsite.vo.user;
+
+import com.hz.employmentsite.model.SysUser;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class UserEditVo extends SysUser {
+    public List<String> datarangeIdList;
+}

+ 29 - 3
src/main/resources/mapping/cquery/SysUserCQuery.xml

@@ -12,13 +12,33 @@
     </select>
 
     <select id="selectUserList" resultType="java.util.HashMap">
-        select us.*,dic.Name as UserTypeName ,urole.roleName from sys_user us
-         left join sys_dictionary_item dic on dic.Value = us.UserTypeID and dic.DictionaryCode='UserType'
+        select us.*,dic.Name as UserTypeName ,urole.roleName
+        ,case when us.UserTypeID=3 then userDataRange_Site.dataRangeNames
+              when us.UserTypeID=5 then userDataRange_Region.dataRangeNames
+              else '' end as dataRangeNames
+        ,case when us.UserTypeID=3 then userDataRange_Site.dataRangeIds
+              when us.UserTypeID=5 then userDataRange_Region.dataRangeIds
+              else '' end as dataRangeIds
+        from sys_user us
+        left join sys_dictionary_item dic on dic.Value = us.UserTypeID and dic.DictionaryCode='UserType'
         left join (
             select usr.UserID, group_concat(sr.Name) roleName from sys_user_sys_role usr
             inner join sys_role sr on usr.RoleID = sr.RoleID
             group by usr.UserID
         ) urole on us.UserID=urole.UserID
+        left join (
+            select d.userId,GROUP_CONCAT(a.code) as dataRangeIds,GROUP_CONCAT(a.name) as dataRangeNames
+            from sys_user_datarange d
+            inner join area_code a on d.datarangeId = a.code
+            group by d.userId
+        )userDataRange_Region on us.UserTypeID=5 and us.userId = userDataRange_Region.userId -- 区管理员
+        left join (
+             select su.userId,GROUP_CONCAT(s.SiteID) as dataRangeIds,GROUP_CONCAT(s.SiteName) as dataRangeNames
+             from pc_site s
+             inner join pc_site_user su on s.SiteID = su.SiteID
+             where su.userId is not null
+             group by su.userId
+        )userDataRange_Site on us.UserTypeID=3 and us.userId = userDataRange_Site.userId -- 驿站工作者
         where 1=1
         <if test="name != null and name != ''">
             and us.Name like Concat('%',#{name},'%')
@@ -70,12 +90,18 @@
         select sysUser.UserID from sys_user sysUser where UserID=#{userID})))
     </select>
 
-    <select id="selectUserRegion" resultType="java.lang.String">
+    <!--<select id="selectUserRegion" resultType="java.lang.String">
         select distinct a.code from area_code a
         inner join pc_site s on a.code = s.RegionCode
         inner join pc_site_user su on s.SiteID = su.SiteID
         inner join sys_user us on su.UserID = us.UserID
         where us.UserID = #{userID}
+    </select>-->
+    <select id="selectUserRegion" resultType="java.lang.String">
+        select distinct a.code from sys_user us
+        inner join sys_user_datarange usd on us.UserID = usd.UserID
+        inner join area_code a on usd.datarangeId = a.code
+        where us.UserID = #{userID}
     </select>
 
     <select id="selectUserCity" resultType="java.lang.String">

+ 183 - 97
vue/src/views/system/users/addUser.vue

@@ -2,127 +2,213 @@
   <!--
       cancel-text="取消"
       :ok-button-props="{ style: { display: 'none' } }"-->
-  <a-modal :width="1000" v-model:visible="visible"
-            title="新增用户" :closable="false" :keyboard="false"
-            :mask-closable="false" ok-text="提交" @ok="onCommit">
+  <a-modal
+    v-model:visible="visible"
+    :width="800"
+    title="新增用户"
+    :closable="false"
+    :keyboard="false"
+    :mask-closable="false"
+    ok-text="提交"
+    @ok="onCommit"
+  >
     <div class="modal-search">
-      <a-form ref="formRef" name="advanced_search" class="ant-advanced-search-form" :model="dataModel" autocomplete="off">
+      <a-form
+        ref="formRef"
+        name="advanced_search"
+        class="ant-advanced-search-form"
+        :model="dataModel"
+        autocomplete="off"
+      >
         <a-row type="flex" :gutter="24">
-          <a-col :span="8">
-            <a-form-item label="用户名" :label-col="{ span: 6 }" name="name" :rules="[{ required: true, message: '请输入用户名!' }]" >
-              <a-input v-model:value="dataModel.name" placeholder=""/>
+          <a-col :span="12">
+            <a-form-item
+              label="用户类型"
+              :label-col="{ span: 6 }"
+              name="userTypeID"
+              :rules="[{ required: true, message: '请选择用户类型!' }]"
+            >
+              <a-select
+                ref="select"
+                v-model:value="dataModel.userTypeID"
+                :options="userTypeList"
+                :field-names="{ label: 'name', value: 'value' }"
+                :allow-clear="true"
+                @change="userTypeChange"
+              ></a-select>
             </a-form-item>
           </a-col>
-          <a-col :span="8">
-            <a-form-item label="账号" :label-col="{ span: 6 }" name="loginID" :rules="[{ required: true, message: '请输入用户账号!' }]" >
-              <a-input v-model:value="dataModel.loginID" placeholder="" ></a-input>
+          <a-col v-if="dataModel.userTypeID === 5" :span="12">
+            <a-form-item
+              label="所属县区"
+              name="datarangeIds"
+              :label-col="{ span: 6 }"
+              :rules="[{ required: true, message: '请选择所属县区!' }]"
+            >
+              <a-select
+                ref="select"
+                v-model:value="dataModel.datarangeIds"
+                :options="regionList"
+                :field-names="{ label: 'name', value: 'code' }"
+                :allow-clear="true"
+              ></a-select>
             </a-form-item>
           </a-col>
-          <a-col :span="8">
-            <a-form-item label="密码" :label-col="{span:6}" name="password" :rules="[{ required: true, message: '请输入密码!' }]">
-<!--              type="password"-->
-              <a-input  v-model:value="dataModel.password" placeholder="" ></a-input>
+        </a-row>
+        <a-row type="flex" :gutter="24">
+          <a-col :span="12">
+            <a-form-item
+              label="用户名"
+              :label-col="{ span: 6 }"
+              name="name"
+              :rules="[{ required: true, message: '请输入用户名!' }]"
+            >
+              <a-input v-model:value="dataModel.name" placeholder="" />
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item
+              label="账号"
+              :label-col="{ span: 6 }"
+              name="loginID"
+              :rules="[{ required: true, message: '请输入用户账号!' }]"
+            >
+              <a-input v-model:value="dataModel.loginID" placeholder=""></a-input>
             </a-form-item>
           </a-col>
         </a-row>
         <a-row :gutter="24">
-          <a-col :span="8">
-            <a-form-item label="用户类型" :label-col="{span:6}" name="userTypeID" :rules="[{ required: true, message: '请选择用户类型!' }]">
-              <a-select ref="select" v-model:value="dataModel.userTypeID"
-                        :options="userTypeList" :field-names="{ label: 'name', value: 'value' }"
-                        :allow-clear="true" ></a-select>
+          <a-col :span="12">
+            <a-form-item
+              label="密码"
+              :label-col="{ span: 6 }"
+              name="password"
+              :rules="[{ required: true, message: '请输入密码!' }]"
+            >
+              <!--              type="password"-->
+              <a-input v-model:value="dataModel.password" placeholder=""></a-input>
             </a-form-item>
           </a-col>
-          <a-col :span="8">
-            <a-form-item label="状态" :label-col="{ span: 6 }" name="recordStatus"  :rules="[{ required: true, message: '请选择状态!' }]" >
-              <a-select ref="select" v-model:value="dataModel.recordStatus"
-                        :options="statusList" :field-names="{ label: 'name', value: 'value' }"
-                        :allow-clear="true" ></a-select>
+          <a-col :span="12">
+            <a-form-item
+              label="状态"
+              :label-col="{ span: 6 }"
+              name="recordStatus"
+              :rules="[{ required: true, message: '请选择状态!' }]"
+            >
+              <a-select
+                ref="select"
+                v-model:value="dataModel.recordStatus"
+                :options="statusList"
+                :field-names="{ label: 'name', value: 'value' }"
+                :allow-clear="true"
+              ></a-select>
             </a-form-item>
           </a-col>
-          <a-col :span="8">
-
-          </a-col>
         </a-row>
       </a-form>
     </div>
   </a-modal>
 </template>
 <script lang="ts">
-import {defineComponent, reactive, ref, toRefs} from "vue";
-import type {FormInstance, SelectProps} from 'ant-design-vue';
-import {getUserByID,saveSysUser} from '@/api/system/user';
-import {getSysDictionaryList} from "@/api/system/dictionary"
-import {message} from "ant-design-vue";
+  import { defineComponent, reactive, ref, toRefs } from 'vue';
+  import { message } from 'ant-design-vue';
+  import type { FormInstance, SelectProps } from 'ant-design-vue';
+  import { getUserByID, saveSysUser } from '@/api/system/user';
+  import { getSysDictionaryList } from '@/api/system/dictionary';
+  import { getRegionCodeList } from '@/api/system/area/index';
 
-interface userModel {
-  dataModel: any;
-}
-export default defineComponent({
-  props: {
-    loadData: {
-      type: Function,
-      default: null
-    }
-  },
-  setup() {
-    const visible = ref<boolean>(false);
-    const isAllowCommit = ref<boolean>(true);
-    const modalFormRef = ref<FormInstance>();
-    const userTypeList = ref<SelectProps['options']>();
-    const statusList = ref([{name:"启用",value:1},{name:"禁用",value:0}]);
-    const formData = reactive<userModel>({dataModel: {}});
-    const formState = reactive({
-      total: 0,
-      selectedRowKeys: [],
-      loading: false
-    });
+  interface userModel {
+    dataModel: any;
+  }
 
-    const getUserTypeList = async function (){
-      const userTypeResult = await getSysDictionaryList("UserType");
-      userTypeList.value = userTypeResult;
-    }
+  export default defineComponent({
+    props: {
+      loadData: {
+        type: Function,
+        default: null,
+      },
+    },
+    setup() {
+      const visible = ref<boolean>(false);
+      const isAllowCommit = ref<boolean>(true);
+      const modalFormRef = ref<FormInstance>();
+      const userTypeList = ref<SelectProps['options']>();
+      const statusList = ref([
+        { name: '启用', value: 1 },
+        { name: '禁用', value: 0 },
+      ]);
+      const formData = reactive<userModel>({ dataModel: {} });
+      const formState = reactive({
+        total: 0,
+        selectedRowKeys: [],
+        loading: false,
+      });
+      const regionList = ref<SelectProps['options']>();
 
-    const show = async function () {
-      formState.loading = true;
-      await getUserTypeList();
-      const reqData = await getUserByID("");
-      formData.dataModel = reqData;
-      console.log("dataModel",formData.dataModel);
-      formState.loading = false;
-      visible.value = true;
-    };
+      const getUserTypeList = async function () {
+        const userTypeResult = await getSysDictionaryList('UserType');
+        userTypeList.value = userTypeResult;
+      };
 
-    const onCommit = async function (){
-      isAllowCommit.value = true;
-      if(formData.dataModel.name==null||formData.dataModel.loginID==null||formData.dataModel.password==null||
-         formData.dataModel.userTypeID==null||formData.dataModel.recordStatus==null){
-        message.error("请填写完整的用户信息!");
-        isAllowCommit.value = false;
-      }
-      if (isAllowCommit.value){
-        saveSysUser(formData.dataModel).then(result => {
-          if (result) {
-            visible.value = false;
-          }
-        });
-      }
-    };
+      const show = async function () {
+        formState.loading = true;
+        await getUserTypeList();
+        await getRegionList();
+        const reqData = await getUserByID('');
+        formData.dataModel = reqData;
+        console.log('dataModel', formData.dataModel);
+        formState.loading = false;
+        visible.value = true;
+      };
 
-    return {
-      ...toRefs(formData),
-      visible,
-      modalFormRef,
-      show,
-      onCommit,
-      formState,
-      statusList,
-      userTypeList,
-    };
-  },
-  created() {
+      const onCommit = async function () {
+        isAllowCommit.value = true;
+        if (
+          formData.dataModel.name == null ||
+          formData.dataModel.loginID == null ||
+          formData.dataModel.password == null ||
+          formData.dataModel.userTypeID == null ||
+          formData.dataModel.recordStatus == null
+        ) {
+          message.error('请填写完整的用户信息!');
+          isAllowCommit.value = false;
+        }
+        if (isAllowCommit.value) {
+          //多选时不需要转类型
+          formData.dataModel.datarangeIdList = [formData.dataModel.datarangeIds];
 
-  },
-})
-</script>
+          saveSysUser(formData.dataModel).then((result) => {
+            if (result) {
+              visible.value = false;
+            }
+          });
+        }
+      };
+
+      const getRegionList = async function () {
+        const regionResult: any = await getRegionCodeList();
+        regionList.value = regionResult;
+      };
 
+      const userTypeChange = () => {
+        formData.dataModel.datarangeIds = null;
+        formData.dataModel.datarangeIdList = null;
+      };
+
+      return {
+        ...toRefs(formData),
+        visible,
+        modalFormRef,
+        show,
+        onCommit,
+        formState,
+        statusList,
+        userTypeList,
+        regionList,
+        userTypeChange,
+      };
+    },
+    created() {},
+  });
+</script>

+ 184 - 138
vue/src/views/system/users/index.vue

@@ -8,52 +8,80 @@
     >
       <a-row :gutter="24">
         <a-col :span="6">
-          <a-form-item label="用户名" :label-col="{span:8}" name="name">
-            <a-input v-model:value="searchParamsState.name" placeholder=""/>
+          <a-form-item label="用户名" :label-col="{ span: 8 }" name="name">
+            <a-input v-model:value="searchParamsState.name" placeholder="" />
           </a-form-item>
         </a-col>
         <a-col :span="6">
-          <a-form-item label="帐号" :label-col="{span:8}" name="loginID">
-            <a-input v-model:value="searchParamsState.loginID" placeholder=""/>
+          <a-form-item label="帐号" :label-col="{ span: 8 }" name="loginID">
+            <a-input v-model:value="searchParamsState.loginID" placeholder="" />
           </a-form-item>
         </a-col>
         <a-col :span="6">
-          <a-form-item label="用户类型" :label-col="{span:8}" name="userType">
+          <a-form-item label="用户类型" :label-col="{ span: 8 }" name="userType">
             <a-select
               ref="select"
               v-model:value="searchParamsState.userType"
               :options="userTypeList"
-              :field-names="{label:'name',value:'value'}"
-              @change="loadData"
+              :field-names="{ label: 'name', value: 'value' }"
               :allow-clear="true"
+              @change="loadData"
             >
             </a-select>
           </a-form-item>
         </a-col>
         <a-col :span="6" style="text-align: left">
           <a-button type="primary" html-type="submit" @click="onFinish">查询</a-button>
-          <a-button style="margin: 0 8px" @click="() => {formRef.resetFields();loadData()}">重置</a-button>
+          <a-button
+            style="margin: 0 8px"
+            @click="
+              () => {
+                formRef.resetFields();
+                loadData();
+              }
+            "
+            >重置</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" functioncode="T0199010105" @click='onAdd' >新增</a-button>
+          <a-button type="primary" html-type="submit" functioncode="T0199010105" @click="onAdd"
+            >新增</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.UserID"
-               bordered>
+      <a-table
+        :columns="columns"
+        :data-source="dataList"
+        :scroll="{ x: '100%', y: 500 }"
+        :pagination="pagination"
+        :loading="formState.loading"
+        :row-selection="{ selectedRowKeys: formState.selectedRowKeys, onChange: onSelectChange }"
+        :row-key="(record) => record.UserID"
+        bordered
+        @change="handleTableChange"
+      >
         <template #bodyCell="{ column, text, record }">
           <template v-if="column.key === 'operation'">
             <div class="table-operation">
-              <a-button type="link" @click="onUpdateUserStatus(record.UserID,1)" functioncode="T0199010102">启用</a-button>
-              <a-button type="link" @click="onUpdateUserStatus(record.UserID,0)" functioncode="T0199010103">禁用</a-button>
-              <a-button type="link" @click="onUpdatePassword(record)" functioncode="T0199010104">修改密码</a-button>
+              <a-button
+                type="link"
+                functioncode="T0199010102"
+                @click="onUpdateUserStatus(record.UserID, 1)"
+                >启用</a-button
+              >
+              <a-button
+                type="link"
+                functioncode="T0199010103"
+                @click="onUpdateUserStatus(record.UserID, 0)"
+                >禁用</a-button
+              >
+              <a-button type="link" functioncode="T0199010104" @click="onUpdatePassword(record)"
+                >修改密码</a-button
+              >
             </div>
           </template>
         </template>
@@ -65,137 +93,155 @@
 </template>
 
 <script lang="ts">
-import {reactive, ref, computed, defineComponent} from 'vue';
-import type {FormInstance} from 'ant-design-vue';
-import type {TableColumnsType, TableProps, SelectProps} from 'ant-design-vue';
-import {getUserListPage, updateUserStatus} from '@/api/system/user'
-import {getSysDictionaryList} from "@/api/system/dictionary";
-import UpdatePassword from '@/views/system/users/updatePassword.vue';
-import UserAdd from '@/views/system/users/addUser.vue';
-import {getPaginationTotalTitle} from "@/utils/common";
+  import { reactive, ref, computed, defineComponent } from 'vue';
+  import type { FormInstance, TableColumnsType, TableProps, SelectProps } from 'ant-design-vue';
+  import { getUserListPage, updateUserStatus } from '@/api/system/user';
+  import { getSysDictionaryList } from '@/api/system/dictionary';
+  import UpdatePassword from '@/views/system/users/updatePassword.vue';
+  import UserAdd from '@/views/system/users/addUser.vue';
+  import { getPaginationTotalTitle } from '@/utils/common';
 
-export default defineComponent({
-  name: 'UserList',
-  components: { UpdatePassword,UserAdd},
-  setup() {
-    const modalRoleUserRef = ref();
-    const modalRoleEditRef = ref();
-    const formRef = ref<FormInstance>();
-    const searchParamsState = reactive({page: 1, limit: 20, name: '',loginID:'', userType: ''});
-    const formState = reactive({
-      total: 0,
-      selectedRowKeys: [],
-      loading: false
-    });
-    const columns: TableColumnsType = [
-      {
-        title: '序号',
-        align: 'center',
-        width: 80,
-        key: 'roleID',
-        customRender: item => `${searchParamsState.limit * (searchParamsState.page - 1) + item.index + 1}`
-      },
-      {title: '用户名', dataIndex: 'Name', key: 'Name', width: 150},
-      {title: '帐号', dataIndex: 'LoginID', key: 'LoginID', width: 150},
-      {title: '用户类型', dataIndex: 'UserTypeName', key: 'UserTypeName', width: 150},
-      {title: '角色', dataIndex: 'roleName', key: 'roleName',},
-      {
-        title: '账号状态', dataIndex: 'RecordStatus', key: 'RecordStatus', width: 150, customRender: ({record}) => (
-          record.RecordStatus == 1 ? "正常" : "禁用"
-        )
-      },
-      {title: '操作', key: 'operation', width: 250, align: "center"},
-    ];
-    const pagination = computed(() => ({
-      total: formState.total,
-      current: searchParamsState.page,
-      pageSize: searchParamsState.limit,
-      showSizeChanger: true,
-      showTotal: total => getPaginationTotalTitle(total)
-    }));
+  export default defineComponent({
+    name: 'UserList',
+    components: { UpdatePassword, UserAdd },
+    setup() {
+      const modalRoleUserRef = ref();
+      const modalRoleEditRef = ref();
+      const formRef = ref<FormInstance>();
+      const searchParamsState = reactive({
+        page: 1,
+        limit: 20,
+        name: '',
+        loginID: '',
+        userType: '',
+      });
+      const formState = reactive({
+        total: 0,
+        selectedRowKeys: [],
+        loading: false,
+      });
+      const columns: TableColumnsType = [
+        {
+          title: '序号',
+          align: 'center',
+          width: 80,
+          key: 'roleID',
+          customRender: (item) =>
+            `${searchParamsState.limit * (searchParamsState.page - 1) + item.index + 1}`,
+        },
+        { title: '用户名', dataIndex: 'Name', key: 'Name', width: 150 },
+        { title: '帐号', dataIndex: 'LoginID', key: 'LoginID', width: 150 },
+        {
+          title: '用户类型',
+          dataIndex: 'UserTypeName',
+          key: 'UserTypeName',
+          width: 150,
+        },
+        {
+          title: '所属区县/驿站',
+          dataIndex: 'dataRangeNames',
+          key: 'dataRangeNames',
+          width: 150,
+        },
+        { title: '角色', dataIndex: 'roleName', key: 'roleName' },
+        {
+          title: '账号状态',
+          dataIndex: 'RecordStatus',
+          key: 'RecordStatus',
+          width: 150,
+          customRender: ({ record }) => (record.RecordStatus == 1 ? '正常' : '禁用'),
+        },
+        { title: '操作', key: 'operation', width: 250, align: 'center' },
+      ];
+      const pagination = computed(() => ({
+        total: formState.total,
+        current: searchParamsState.page,
+        pageSize: searchParamsState.limit,
+        showSizeChanger: true,
+        showTotal: (total) => getPaginationTotalTitle(total),
+      }));
 
-    const dataList = ref([]);
-    const userTypeList = ref<SelectProps['options']>();
-    const updatePasswordRef = ref();
-    const userAddRef = ref();
+      const dataList = ref([]);
+      const userTypeList = ref<SelectProps['options']>();
+      const updatePasswordRef = ref();
+      const userAddRef = ref();
 
-    const onSelectChange = (selectedRowKeys: any) => {
-      formState.selectedRowKeys = selectedRowKeys;
-    };
+      const onSelectChange = (selectedRowKeys: any) => {
+        formState.selectedRowKeys = selectedRowKeys;
+      };
 
-    const handleTableChange: TableProps['onChange'] = (
-      pag: { pageSize: number; current: number }
-    ) => {
-      searchParamsState.page = pag.current;
-      searchParamsState.limit = pag.pageSize;
-      loadData();
-    };
+      const handleTableChange: TableProps['onChange'] = (pag: {
+        pageSize: number;
+        current: number;
+      }) => {
+        searchParamsState.page = pag.current;
+        searchParamsState.limit = pag.pageSize;
+        loadData();
+      };
 
-    const onFinish = () => {
-      loadData();
-    }
+      const onFinish = () => {
+        loadData();
+      };
 
-    const onAdd = ()=>{
-      userAddRef.value.show();
-      loadData();
-    }
+      const onAdd = () => {
+        userAddRef.value.show();
+        loadData();
+      };
 
-    const onUpdateUserStatus = async function (userID, status) {
-      await updateUserStatus({userId: userID, status: status});
-      await loadData();
-    }
+      const onUpdateUserStatus = async function (userID, status) {
+        await updateUserStatus({ userId: userID, status });
+        await loadData();
+      };
 
-    const onUpdatePassword = (item) => {
-      updatePasswordRef.value.show(item.UserID,item.Name,item.LoginID);
-    };
+      const onUpdatePassword = (item) => {
+        updatePasswordRef.value.show(item.UserID, item.Name, item.LoginID);
+      };
 
-    const loadData = async function () {
-      formState.loading = true;
-      const result: any = await getUserListPage(searchParamsState);
-      dataList.value = result.list;
-      console.log("dataList",dataList.value);
-      formState.total = result.total;
-      formState.loading = false;
-    }
+      const loadData = async function () {
+        formState.loading = true;
+        const result: any = await getUserListPage(searchParamsState);
+        dataList.value = result.list;
+        console.log('dataList', dataList.value);
+        formState.total = result.total;
+        formState.loading = false;
+      };
 
-    const loadUserTypeList = () => {
-      getSysDictionaryList("UserType").then(data => {
-        userTypeList.value = data;
-      });
-    }
+      const loadUserTypeList = () => {
+        getSysDictionaryList('UserType').then((data) => {
+          userTypeList.value = data;
+        });
+      };
 
-    return {
-      modalRoleUserRef,
-      modalRoleEditRef,
-      formRef,
-      loadData,
-      loadUserTypeList,
-      searchParamsState,
-      formState,
-      columns,
-      pagination,
-      dataList,
-      userTypeList,
-      onSelectChange,
-      handleTableChange,
-      onAdd,
-      onFinish,
-      onUpdateUserStatus,
-      onUpdatePassword,
-      updatePasswordRef,
-      userAddRef
-    };
-  },
-  created() {
-    this.loadData();
-    this.loadUserTypeList();
-  },
-  activated() {
-    if (history.state.params?.reload)
+      return {
+        modalRoleUserRef,
+        modalRoleEditRef,
+        formRef,
+        loadData,
+        loadUserTypeList,
+        searchParamsState,
+        formState,
+        columns,
+        pagination,
+        dataList,
+        userTypeList,
+        onSelectChange,
+        handleTableChange,
+        onAdd,
+        onFinish,
+        onUpdateUserStatus,
+        onUpdatePassword,
+        updatePasswordRef,
+        userAddRef,
+      };
+    },
+    created() {
       this.loadData();
-  }
-});
+      this.loadUserTypeList();
+    },
+    activated() {
+      if (history.state.params?.reload) this.loadData();
+    },
+  });
 </script>
 
-<style lang="less" scoped>
-</style>
+<style lang="less" scoped></style>