Browse Source

app-处理个人信息修改部分数据无效问题

liao-sea 11 months ago
parent
commit
eba6ee8583

+ 2 - 2
h5app/src/api/siteUserInfo/index.ts

@@ -3,9 +3,9 @@ import {request} from '@/utils/request';
 export function getSiteUserByUserID(userID:any){
     return request<any>(
         {
-            url: 'userInfo/getList',
+            url: 'userInfo/getSiteUserByUserID',
             method: 'get',
-            params: {pageIndex:1,pageSize:1,userID:userID},
+            params: {userID:userID},
         },
         {
             isNew: true,

+ 74 - 76
h5app/src/views/pages/user/myInfo.vue

@@ -18,41 +18,41 @@
         </div>
         <div class="form-input">
           <ion-label>姓名</ion-label>
-          <ion-input readonly v-model:value="curLoginUserInfo.siteUserName"></ion-input>
+          <ion-input readonly v-model="dataModel.siteUserName"></ion-input>
         </div>
         <div class="form-input">
           <ion-label>性别</ion-label>
-          <ion-input readonly v-model:value="curLoginUserInfo.genderName"></ion-input>
+          <ion-input readonly v-model="dataModel.genderName"></ion-input>
         </div>
 
         <div class="form-input">
           <ion-label>联系电话</ion-label>
-          <ion-input name="mobile" v-model:value="curLoginUserInfo.mobile"></ion-input>
+          <ion-input name="mobile" v-model="dataModel.mobile"></ion-input>
         </div>
         <div class="form-input">
           <ion-label>工号</ion-label>
-          <ion-input readonly v-model:value="curLoginUserInfo.userNo"></ion-input>
+          <ion-input readonly v-model="dataModel.userNo"></ion-input>
         </div>
         <div class="form-input">
           <ion-label>身份证号</ion-label>
-          <ion-input readonly v-model:value="curLoginUserInfo.idCardShow"></ion-input>
+          <ion-input readonly v-model="dataModel.idCard"></ion-input>
         </div>
         <div class="form-input">
           <ion-label>用户类型</ion-label>
-          <ion-input readonly v-model:value="curLoginUserInfo.roleName"> </ion-input>
+          <ion-input readonly v-model="dataModel.roleName"> </ion-input>
         </div>
         <div class="form-input">
           <ion-label>所属驿站</ion-label>
-          <ion-input readonly v-model:value="curLoginUserInfo.siteName" > </ion-input>
+          <ion-input readonly v-model="dataModel.siteName" > </ion-input>
         </div>
         <div class="form-input">
           <ion-label>社保卡号</ion-label>
-          <ion-input v-model:value="curLoginUserInfo.socialSecurityCard" placeholder="请输入社保卡号" :clear-input="true"> </ion-input>
+          <ion-input name="socialSecurityCard" v-model="dataModel.socialSecurityCard" placeholder="请输入社保卡号" :clear-input="true"> </ion-input>
         </div>
         <div class="form-select">
           <ion-label>民族</ion-label>
           <ion-select name="nationID"  id="nationID" okText="确定" cancelText="取消"
-                      v-model="curLoginUserInfo.nation"
+                      v-model="dataModel.nation"
                       interface="action-sheet" placeholder="请选择民族" style="width:100%;text-align:left;" >
             <ion-select-option v-for=" (it,key) in nationTypeList" :key="key" :value="it.value">
               {{ it.name }}
@@ -62,7 +62,7 @@
         <div class="form-select">
           <ion-label>政治面貌</ion-label>
           <ion-select name="politicsStatusID"  id="politicsStatusID" okText="确定" cancelText="取消"
-                      v-model="curLoginUserInfo.politicsStatusID"
+                      v-model="dataModel.politicsStatusID"
                       interface="action-sheet" placeholder="请选择政治面貌" style="width:100%;text-align:left;" >
             <ion-select-option v-for=" (it,key) in politicsStatusList" :key="key" :value="it.value">
               {{ it.name }}
@@ -71,9 +71,8 @@
         </div>
         <div class="form-select">
           <ion-label>最高学历</ion-label>
-<!--          <ion-input  v-model:value="curLoginUserInfo.cultureRankName"> </ion-input>-->
           <ion-select name="cultureRank"  id="cultureRank" okText="确定" cancelText="取消"
-                      v-model="curLoginUserInfo.cultureRank"
+                      v-model="dataModel.cultureRank"
                       interface="action-sheet" placeholder="请选择最高学历" style="width:100%;text-align:left;">
             <ion-select-option v-for=" (it,key) in cultureRankList" :key="key" :value="it.value">
               {{ it.name }}
@@ -82,15 +81,15 @@
         </div>
         <div class="form-input">
           <ion-label>毕业院校</ion-label>
-          <ion-input  v-model:value="curLoginUserInfo.finishSchool" placeholder="请输入毕业院校" :clear-input="true"> </ion-input>
+          <ion-input  v-model="dataModel.finishSchool" placeholder="请输入毕业院校" :clear-input="true"> </ion-input>
         </div>
         <div class="form-input">
           <ion-label>专业</ion-label>
-          <ion-input  v-model:value="curLoginUserInfo.profession" placeholder="请输入专业" :clear-input="true"> </ion-input>
+          <ion-input  v-model="dataModel.profession" placeholder="请输入专业" :clear-input="true"> </ion-input>
         </div>
         <div class="form-select">
           <ion-label>是否全日制</ion-label>
-          <ion-select name="isFullTime"  id="isFullTime" okText="确定" cancelText="取消" v-model="curLoginUserInfo.isFullTime"
+          <ion-select name="isFullTime"  id="isFullTime" okText="确定" cancelText="取消" v-model="dataModel.isFullTime"
                       interface="action-sheet" placeholder="请选择是否非全日制" style="width:100%;text-align:left;" >
             <ion-select-option v-for=" (it,key) in isFullTimeList" :key="key" :value="it.value">
               {{ it.name }}
@@ -101,16 +100,16 @@
           <ion-label>职业资格类别</ion-label>
           <div>
             <ion-input placeholder="请选择职业资格类别" label-placement="stacked" style="float: left;width:78%;"
-                       v-model="curLoginUserInfo.occupationalCategoryName" readonly >
+                       v-model="dataModel.occupationalCategoryName" readonly >
             </ion-input>
             <ion-item style="width:22%;float: right;padding:0px;margin: 0px;">
-              <category-selection  :OccupationalID="curLoginUserInfo.occupationalCategory" @SetOccupationalID="onSetOccupationalID"></category-selection>
+              <category-selection  :OccupationalID="dataModel.occupationalCategory" @SetOccupationalID="onSetOccupationalID"></category-selection>
             </ion-item>
           </div>
         </div>
         <div class="form-select">
           <ion-label>职业资格等级</ion-label>
-          <ion-select name="occupationalLevel"  id="occupationalLevel" okText="确定" cancelText="取消" v-model="curLoginUserInfo.occupationalLevel"
+          <ion-select name="occupationalLevel"  id="occupationalLevel" okText="确定" cancelText="取消" v-model="dataModel.occupationalLevel"
                       interface="action-sheet" placeholder="请选择职业资格类别" style="width:100%;text-align:left;" >
             <ion-select-option v-for=" (it,key) in occupationalLevelList" :key="key" :value="it.value">
               {{ it.name }}
@@ -120,17 +119,17 @@
 
         <div class="form-input">
           <ion-label>籍贯</ion-label>
-          <ion-input  v-model:value="curLoginUserInfo.nativePlace" placeholder="请输入籍贯" :clear-input="true"> </ion-input>
+          <ion-input  v-model="dataModel.nativePlace" placeholder="请输入籍贯" :clear-input="true"> </ion-input>
         </div>
 
         <div class="form-input">
           <ion-label>邮箱</ion-label>
-          <ion-input  v-model:value="curLoginUserInfo.email" placeholder="请输入邮箱" :clear-input="true"> </ion-input>
+          <ion-input  v-model="dataModel.email" placeholder="请输入邮箱" :clear-input="true"> </ion-input>
         </div>
 
         <div class="form-input">
           <ion-label>住址</ion-label>
-          <ion-input  v-model:value="curLoginUserInfo.address" placeholder="请输入住址" :clear-input="true"> </ion-input>
+          <ion-input  v-model="dataModel.address" placeholder="请输入住址" :clear-input="true"> </ion-input>
         </div>
       </div>
       </form>
@@ -144,7 +143,7 @@
 </template>
 
 <script lang="ts">
-import {defineComponent, ref, toRefs} from 'vue';
+import {defineComponent, reactive, ref, toRefs} from 'vue';
 import router from '@/router';
 import {useUserStore} from '@/store/modules/user';
 import {addCircleOutline, arrowBackOutline, trashOutline} from 'ionicons/icons';
@@ -158,6 +157,9 @@ interface SelectProps {
   name: string,
   value: string
 }
+interface userModel {
+  dataModel: any;
+}
 
 export default defineComponent({
   name: 'myInfo',
@@ -165,58 +167,59 @@ export default defineComponent({
   setup() {
     const userStore = useUserStore();
     const userInfo = ref(userStore.getUserInfo);
-    const curLoginUserInfo = ref({
-      address: null,
-      age:null,
-      createBy:null,
-      createTime: "2024-01-12",
-      cultureRank: 14,
-      cultureRankName:"",
-      email: null,
-      errorMessage: null,
-      finishSchool: null,
-      gender:1,
-      genderName  :"",
-      idCard: "",
-      idCardShow:"",
-      institutionID: "",
-      isFullTime:null,
-      isFullTimeName: null,
-      mobile: "",
-      nation: null,
-      nationName: null,
-      nativePlace: null,
-      occupationalCategory: null,
-      occupationalCategoryName: null,
-      occupationalLevel: null,
-      occupationalLevelName: null,
-      politicsStatusID: null,
-      politicsStatusName: null,
-      profession:null,
-      regionCode: "",
-      roleID: 0,
-      roleName: "",
-      siteID: "",
-      siteName:"",
-      siteUserID: "",
-      siteUserName: "",
-      socialSecurityCard: null,
-      updateBy: "",
-      updateTime: "",
-      userID: "",
-      userNo: "",
-    });
+    const curLoginUserInfo = reactive<userModel>({
+          dataModel:{
+            address: null,
+            age:null,
+            createBy:null,
+            createTime: null,
+            cultureRank: null,
+            cultureRankName:"",
+            email: null,
+            errorMessage: null,
+            finishSchool: null,
+            gender:null,
+            genderName:"",
+            idCard: "",
+            institutionID:"",
+            isFullTime:null,
+            isFullTimeName: null,
+            mobile:"",
+            nation:null,
+            nationName: null,
+            nativePlace: null,
+            occupationalCategory: null,
+            occupationalCategoryName: null,
+            occupationalLevel: null,
+            occupationalLevelName: null,
+            politicsStatusID: null,
+            politicsStatusName: null,
+            profession:null,
+            regionCode: "",
+            roleID: 0,
+            roleName: "",
+            siteID: "",
+            siteName:"",
+            siteUserID: "",
+            siteUserName: "",
+            socialSecurityCard: "",
+            updateBy: "",
+            updateTime: "",
+            userID: "",
+            userNo: "",
+          }
+    }
+    );
 
     const onSetOccupationalID = (data: any)=>{
-       curLoginUserInfo.value.occupationalCategory = data.value;
-       curLoginUserInfo.value.occupationalCategoryName = data.text;
+       curLoginUserInfo.dataModel.occupationalCategory = data.value;
+       curLoginUserInfo.dataModel.occupationalCategoryName = data.text;
     }
 
     getSiteUserByUserID(userInfo.value.userID==undefined?"":userInfo.value.userID).then(data=> {
-      curLoginUserInfo.value = data.list[0];
-      const replaceStr =  curLoginUserInfo.value.idCard.substring(3,15);
-      curLoginUserInfo.value.idCardShow = String(curLoginUserInfo.value.idCard).replace(replaceStr,'************');
-      console.log("curLoginUserInfo", curLoginUserInfo.value);
+      curLoginUserInfo.dataModel = data;
+      // const replaceStr =  curLoginUserInfo.value.idCard.substring(3,15);
+      // curLoginUserInfo.value.idCardShow = String(curLoginUserInfo.value.idCard).replace(replaceStr,'************');
     });
 
       const nationTypeList = ref<SelectProps[]>([]);
@@ -236,18 +239,13 @@ export default defineComponent({
         cultureRankList.value = cultureRankResult;
         const occupationalLevelListResult: any = await getSysDictionaryList("OccupationalLevel");
         occupationalLevelList.value = occupationalLevelListResult;
-        console.log("民族", nationTypeList.value);
-        console.log("面貌", politicsStatusList.value);
-        console.log("全日制", isFullTimeList.value);
-        console.log("学历", cultureRankList.value);
-        console.log("等级", occupationalLevelList.value);
       }
 
       getDataList();
 
 
       const onSave = () => {
-        saveSiteUser(curLoginUserInfo.value).then(result => {
+        saveSiteUser(curLoginUserInfo.dataModel).then(result => {
           if (result) {
             router.push({path: '/tabs/tabUser'});
           }
@@ -255,11 +253,11 @@ export default defineComponent({
       }
 
       return {
+        ...toRefs(curLoginUserInfo),
         router,
         arrowBackOutline,
         addCircleOutline,
         trashOutline,
-        curLoginUserInfo,
         userInfo,
         nationTypeList,
         politicsStatusList,

+ 8 - 0
src/main/java/com/hz/employmentsite/controller/baseSettings/SiteUserController.java

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
 import com.hz.employmentsite.filter.exception.BaseErrorEnum;
 import com.hz.employmentsite.filter.exception.BaseResponse;
 import com.hz.employmentsite.filter.exception.RespGenerstor;
+import com.hz.employmentsite.model.PcSiteUserExample;
 import com.hz.employmentsite.model.SelectProps;
 import com.hz.employmentsite.services.service.AccountService;
 import com.hz.employmentsite.services.service.baseSettings.SiteUserService;
@@ -51,6 +52,13 @@ public class SiteUserController {
         return RespGenerstor.success(result);
     }
 
+    @GetMapping("getSiteUserByUserID")
+    public BaseResponse<SiteUserVo> getSiteUserByUserID(@RequestParam("userID")String curUserID){
+        var result = RespGenerstor.success(userInfoService.getSiteUserByUserID(curUserID));
+        return result;
+    }
+
+
     @PostMapping("getListBySiteID")
     public BaseResponse<Integer> getListBySiteID(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize,@RequestParam(required = false) String siteID) {
         return RespGenerstor.success(userInfoService.getListBySiteID(pageIndex,pageSize, siteID));

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

@@ -15,6 +15,8 @@ public interface UserInfoCQuery {
                              @Param("userNo") String userNo,
                              @Param("userID") String userID);
 
+    SiteUserVo getSiteUserByUserID(@Param("userID") String userID);
+
     List<SiteUserVo> getListBySiteID(@Param("siteID") String siteID);
 
     List<SiteUserVo> selectListForAddUser();

+ 6 - 0
src/main/java/com/hz/employmentsite/services/impl/baseSettings/SiteUserImpl.java

@@ -83,6 +83,12 @@ public class SiteUserImpl implements SiteUserService {
         return result;
     }
 
+    @Override
+    public SiteUserVo getSiteUserByUserID(String userID) {
+        var data = userInfoCQuery.getSiteUserByUserID(userID) ;
+        return data;
+    }
+
     @Override
     public PageInfo<SiteUserVo> getListBySiteID(int pageIndex, int pageSize, String siteID) {
         PageHelper.startPage(pageIndex, pageSize);

+ 2 - 0
src/main/java/com/hz/employmentsite/services/service/baseSettings/SiteUserService.java

@@ -10,6 +10,8 @@ public interface SiteUserService {
 
     PageInfo<SiteUserVo> getList(int pageIndex, int pageSize, List<String> siteUserIDList, String siteUserName, String siteID, String roleName, String regionCode, String userNo,String userID);
 
+    SiteUserVo getSiteUserByUserID(String userID);
+
     PageInfo<SiteUserVo> getListBySiteID(int pageIndex, int pageSize, String siteID);
 
     SiteUserVo get(String siteUserID);

+ 26 - 0
src/main/resources/mapping/cquery/SiteUserCQuery.xml

@@ -45,6 +45,32 @@
         </if>
     </select>
 
+    <select id="getSiteUserByUserID" resultType="com.hz.employmentsite.vo.baseSettings.SiteUserVo">
+        select siteUser.*,dic_userRole.Name as RoleName,dic_gender.Name as GenderName,site.SiteName
+        ,inSites.InstitutionID as institutionID,site.regionCode, dic_fullTime.Name as isFullTimeName
+        ,occ_cat.OccupationalName as occupationalCategoryName, dic_occ_level.Name as occupationalLevelName
+        ,dic_nation.Name as nationName, dic_politicsStatus.Name as politicsStatusName
+        ,dic_culture.Name as cultureRankName, updateUser.Name as updateUserName,curUser.RecordStatus
+        from pc_site_user siteUser
+        left join pc_site site on siteUser.siteID = site.siteID
+        left join (select * from sys_dictionary_item where DictionaryCode ='UserType' ) dic_userRole on siteUser.RoleID = dic_userRole.Value
+        left join (select * from sys_dictionary_item where DictionaryCode ='Gender' ) dic_gender on siteUser.Gender = dic_gender.Value
+        left join (select * from sys_dictionary_item where DictionaryCode ='IsFullTime' ) dic_fullTime on siteUser.IsFullTime = dic_fullTime.Value
+        left join pc_occupational occ_cat on siteUser.OccupationalCategory = occ_cat.OccupationalID
+        left join (select * from sys_dictionary_item where DictionaryCode ='OccupationalLevel' ) dic_occ_level on siteUser.OccupationalLevel = dic_occ_level.Value
+        left join (select * from sys_dictionary_item where DictionaryCode ='NationType' ) dic_nation on siteUser.Nation = dic_nation.Value
+        left join (select * from sys_dictionary_item where DictionaryCode ='PoliticsStatus' ) dic_politicsStatus on siteUser.PoliticsStatusID = dic_politicsStatus.Value
+        left join (select * from sys_dictionary_item where DictionaryCode ='HighestDegree' ) dic_culture on siteUser.CultureRank = dic_culture.Value
+        left join pc_site_institution inSites on site.SiteID = inSites.SiteID
+        left join pc_institution institution on inSites.institutionID = institution.InstitutionID
+        left join sys_user updateUser on siteUser.UpdateBy = updateUser.UserID
+        left join sys_user curUser on siteUser.UserID = curUser.UserID
+        where 1=1
+        <if test="userID!='' and userID!=null">
+            and siteUser.userID = #{userID}
+        </if>
+    </select>
+
     <select id="getListBySiteID" resultType="com.hz.employmentsite.vo.baseSettings.SiteUserVo">
         select siteUser.*,dic_userRole.Name as RoleName,dic_gender.Name as GenderName from pc_site_user siteUser
         left join (select * from sys_dictionary_item where DictionaryCode ='UserType' ) dic_userRole  on siteUser.RoleID = dic_userRole.Value