Переглянути джерело

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	h5app/src/App.vue
lizeyu 11 місяців тому
батько
коміт
0d85514482
35 змінених файлів з 737 додано та 540 видалено
  1. 6 4
      doc/就业驿站管理系统.pdb
  2. 438 427
      doc/就业驿站管理系统.pdm
  3. 21 0
      doc/待更新脚本
  4. 21 4
      h5app/src/App.vue
  5. BIN
      h5app/src/assets/icon/tc.png
  6. 1 0
      h5app/src/views/pages/company/edit.vue
  7. 1 0
      h5app/src/views/pages/jobUserInfo/companyEdit.vue
  8. 26 4
      h5app/src/views/pages/jobUserInfo/index.vue
  9. 0 4
      h5app/src/views/pages/jobhunt/detail.vue
  10. 7 2
      h5app/src/views/pages/work/task/list.vue
  11. 36 18
      h5app/src/views/sapp/tabMain.vue
  12. 22 2
      h5app/src/views/sapp/tabUser.vue
  13. 2 2
      src/main/java/com/hz/employmentsite/controller/baseSettings/SiteUserController.java
  14. 2 1
      src/main/java/com/hz/employmentsite/controller/jobUserManager/JobUserController.java
  15. 2 1
      src/main/java/com/hz/employmentsite/controller/taskAndLog/DoWorkController.java
  16. 1 1
      src/main/java/com/hz/employmentsite/filter/exception/GlobalExceptionHandler.java
  17. 10 0
      src/main/java/com/hz/employmentsite/model/PcDowork.java
  18. 2 1
      src/main/java/com/hz/employmentsite/services/impl/baseSettings/SiteUserImpl.java
  19. 33 7
      src/main/java/com/hz/employmentsite/services/impl/companyService/CompanyServiceImpl.java
  20. 2 1
      src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobUserServiceImpl.java
  21. 2 0
      src/main/java/com/hz/employmentsite/services/impl/taskAndLog/DoWorkImpl.java
  22. 2 2
      src/main/java/com/hz/employmentsite/vo/taskAndLog/DoWorkVo.java
  23. 44 29
      src/main/resources/mapping/PcDoworkMapper.xml
  24. 2 2
      src/main/resources/mapping/cquery/DoWorkCQuery.xml
  25. BIN
      src/main/resources/static/doc/template/企业信息导入模板.xlsx
  26. 8 8
      vue/src/router/asyncModules/taskAndLog.ts
  27. 0 2
      vue/src/views/baseSettings/siteUser/detail.vue
  28. 0 1
      vue/src/views/baseSettings/siteUser/index.vue
  29. 9 2
      vue/src/views/companyService/company/index.vue
  30. 0 1
      vue/src/views/jobUserManager/jobuser/index.vue
  31. 0 1
      vue/src/views/jobUserManager/jobuser/vitae.vue
  32. 3 3
      vue/src/views/taskAndLog/dotask/edit.vue
  33. 3 3
      vue/src/views/taskAndLog/dotask/index.vue
  34. 28 4
      vue/src/views/taskAndLog/dowork/edit.vue
  35. 3 3
      vue/src/views/taskAndLog/dowork/index.vue

+ 6 - 4
doc/就业驿站管理系统.pdb

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<?PowerDesigner AppLocale="UTF16" ID="{2D964471-9870-48BE-90E9-524D40D03B42}" Label="" LastModificationDate="1714959146" Name="就业驿站管理系统" Objects="579" Symbols="48" Target="MySQL 5.0" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="16.0.0.3514"?>
+<?PowerDesigner AppLocale="UTF16" ID="{2D964471-9870-48BE-90E9-524D40D03B42}" Label="" LastModificationDate="1715052985" Name="就业驿站管理系统" Objects="568" Symbols="48" Target="MySQL 5.0" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="16.0.0.3514"?>
 <!-- do not edit this file -->
 
 <Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object">
@@ -4694,7 +4694,7 @@ Reference.ParentRole 1</a:SymbolContent>
 <o:ReferenceSymbol Id="o53">
 <a:CreationDate>1701934197</a:CreationDate>
 <a:ModificationDate>1701934341</a:ModificationDate>
-<a:Rect>((-121277,70117), (-86530,74445))</a:Rect>
+<a:Rect>((-121277,70117), (-86530,74446))</a:Rect>
 <a:ListOfPoints>((-120877,73349),(-89530,73349),(-89530,70517))</a:ListOfPoints>
 <a:CornerStyle>2</a:CornerStyle>
 <a:ArrowStyle>1</a:ArrowStyle>
@@ -8241,9 +8241,11 @@ LABL 0 Arial,8,N</a:FontList>
 <a:Code>WorkYear</a:Code>
 <a:CreationDate>1700726393</a:CreationDate>
 <a:Creator>bowinuser</a:Creator>
-<a:ModificationDate>1701231590</a:ModificationDate>
+<a:ModificationDate>1715052985</a:ModificationDate>
 <a:Modifier>bowinuser</a:Modifier>
-<a:DataType>int</a:DataType>
+<a:DataType>decimal(18,2)</a:DataType>
+<a:Length>18</a:Length>
+<a:Precision>2</a:Precision>
 </o:Column>
 <o:Column Id="o338">
 <a:ObjectID>D65E7851-2F97-4846-88E7-862E6EA3699D</a:ObjectID>

Різницю між файлами не показано, бо вона завелика
+ 438 - 427
doc/就业驿站管理系统.pdm


+ 21 - 0
doc/待更新脚本

@@ -0,0 +1,21 @@
+--2024-5-8 企业表索引
+ALTER TABLE `employmentsitedb`.`pc_firm` ADD INDEX `nameIndex` ( `FirmName` );
+--2024-05-08 日志、任务路由调整
+update sys_menu set IsVisible= 0  where MenuNo='T0104';
+update sys_menu set ParentMenuNo = 'T01' where ParentMenuNo='T0104';
+update sys_menu set OrderNo = '5',Icon='FlagOutlined',Url='/workTask',isLeaf=1 where MenuNo='T010401';
+update sys_menu set ViewPath = 'views/workTask/index'  where MenuNo='T01040101';
+update sys_menu set ViewPath = 'views/workTask/add'  where MenuNo='T01040102';
+update sys_menu set ViewPath = 'views/workTask/edit'  where MenuNo='T01040103';
+update sys_menu set ViewPath = 'views/workTask/detail'  where MenuNo='T01040105';
+
+update sys_menu set OrderNo = '6',Icon='ScheduleOutlined',Url='/taskAndLog',isLeaf=1 where MenuNo='T010402' ;
+update sys_menu set ViewPath = 'views/workLog/index'  where MenuNo='T01040201';
+update sys_menu set ViewPath = 'views/workLog/add'  where MenuNo='T01040202';
+update sys_menu set ViewPath = 'views/workLog/edit'  where MenuNo='T01040203';
+update sys_menu set ViewPath = 'views/workLog/detail'  where MenuNo='T01040205';
+
+update sys_menu set OrderNo = '7' where MenuNo='T0105';
+update sys_menu set OrderNo = '8' where MenuNo='T0106';
+--2024-5-8 工作日志表添加驿站ID
+ALTER TABLE `employmentsitedb`.`pc_dowork` ADD COLUMN `SiteID` VARCHAR ( 50 ) NULL AFTER `WorkTime`;

+ 21 - 4
h5app/src/App.vue

@@ -393,10 +393,28 @@ ion-grid {
   }
 }
 
+.b-badge {
+  padding: 8px;
+  margin-right: 8px;
+}
+
+.b-badge-dange {
+  background-color: #D9001B;
+}
+
+.b-badge-warning {
+  background-color: #F59A23;
+}
+
+.b-badge-default {
+  background-color: #008080;
+}
+
+
 .cascade-model{
-    --height: 50%;
-    --border-radius: 16px;
-    --box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
+  --height: 50%;
+  --border-radius: 16px;
+  --box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
 
 
   ::part(backdrop) {
@@ -474,5 +492,4 @@ ion-grid {
 
 }
 
-
 </style>

BIN
h5app/src/assets/icon/tc.png


+ 1 - 0
h5app/src/views/pages/company/edit.vue

@@ -564,6 +564,7 @@ export default defineComponent({
           formState.dataModel.industryID = matchedFirmInfo.industryID;
           formState.dataModel.industryName = matchedFirmInfo.industryName;
           formState.dataModel.signInPoliticalArea = matchedFirmInfo.signInPoliticalArea;
+          formState.dataModel.establishmentTime = matchedFirmInfo.establishmentTime;
           await setInfoLoadingOpen(false);
           infoAlterData.title = "提示";
           infoAlterData.message = "同步成功!";

+ 1 - 0
h5app/src/views/pages/jobUserInfo/companyEdit.vue

@@ -519,6 +519,7 @@ export default defineComponent({
           formState.dataModel.industryID = matchedFirmInfo.industryID;
           formState.dataModel.industryName = matchedFirmInfo.industryName;
           formState.dataModel.signInPoliticalArea = matchedFirmInfo.signInPoliticalArea;
+          formState.dataModel.establishmentTime = matchedFirmInfo.establishmentTime;
           await setInfoLoadingOpen(false);
           infoAlterData.title = "提示";
           infoAlterData.message = "同步成功!";

+ 26 - 4
h5app/src/views/pages/jobUserInfo/index.vue

@@ -6,6 +6,9 @@
       </ion-toolbar>
     </ion-header>
     <ion-content>
+      <div class="user_img">
+        <b-image v-if="user.userID" :file-ref-id="user.userID" :readonly="true" :is-single="true"></b-image>
+      </div>
       <div class="bw-vue-form">
         <div class="form-detail">
           <ion-label>姓名</ion-label>
@@ -15,10 +18,10 @@
           <ion-label>工号</ion-label>
           <ion-text>{{ user.userNo }}</ion-text>
         </div>
-        <div class="form-detail">
-          <ion-label>身份证号</ion-label>
-          <ion-text>{{ user.IDCard }}</ion-text>
-        </div>
+<!--        <div class="form-detail">-->
+<!--          <ion-label>身份证号</ion-label>-->
+<!--          <ion-text>{{ user.IDCard }}</ion-text>-->
+<!--        </div>-->
         <div class="form-detail">
           <ion-label>身份</ion-label>
           <ion-text>驿站工作人员</ion-text>
@@ -48,6 +51,7 @@ import {useRouter} from "vue-router";
 import {useUserStore} from "@/store/modules/user";
 import {getConfig} from "@/utils/config";
 import {qrcodeVerify} from "@/api/wechat";
+import BImage from "@/components/bImage.vue";
 
 const presentAlert = async (message) => {
   const alert = await alertController.create({
@@ -67,6 +71,7 @@ const qrCodeId = ref("");
 
 export default defineComponent({
   name: "jobUserInfoIndex",
+  components:{BImage},
   setup() {
     const router = useRouter();
     const user = ref({userNo: '', name: '', IDCard: '', siteName: ''});
@@ -79,6 +84,7 @@ export default defineComponent({
     const getUser = async function () {
       const reqData = await getUserByID(userId.value);
       user.value = reqData;
+      console.log("user",user.value);
     };
 
     const getQrcodeVerify = () => {
@@ -158,6 +164,22 @@ export default defineComponent({
   padding: 20px 10px;
 }
 
+.user_img {
+  .img-list {
+    width:100%;
+    padding-left: 30%;
+  }
+
+  .img-item:first-child,.img-item:first-child img{
+    width: 150px;
+    height:150px;
+  }
+
+  .img-item:not(:first-child){
+      display: none;
+  }
+}
+
 .page_button {
   display: flex;
   justify-content: space-around;

+ 0 - 4
h5app/src/views/pages/jobhunt/detail.vue

@@ -32,10 +32,6 @@
             <ion-label>姓名</ion-label>
             <ion-text>{{ dataModel.name }}</ion-text>
           </div>
-          <div class="form-detail">
-            <ion-label>身份证号码</ion-label>
-            <ion-text>{{ dataModel.identityNumberShow }}</ion-text>
-          </div>
           <div class="form-detail">
             <ion-label>性别</ion-label>
             <ion-text>{{ dataModel.genderName }}</ion-text>

+ 7 - 2
h5app/src/views/pages/work/task/list.vue

@@ -22,8 +22,13 @@
           <ion-list>
             <ion-item v-for="(record,key) in dataList" :key="key" detail @click="onDetail(record)">
               <ion-label>
-                <div class="multi-title">
-                  <h2>{{ record.doTaskName }}</h2>
+                <div style="display:flex;justify-content: space-between;">
+                  <div class="multi-title" style="justify-content: normal;align-items: center;">
+                    <span class="b-badge"
+                          :class="record.taskLevel==1?'b-badge-dange':(record.taskLevel==2?'b-badge-warning':'b-badge-default')"></span>
+                    <h2>{{ record.doTaskName }}</h2>
+                  </div>
+                  <p style="position: absolute;float: right;right: 15px;">{{ record.taskLevelName }}</p>
                 </div>
                 <p style="margin-top: 8px">任务类型:{{ record.workTypeName }}</p>
                 <p>

+ 36 - 18
h5app/src/views/sapp/tabMain.vue

@@ -64,7 +64,8 @@
             <div style="padding: 10px 0;">
               <ion-item style="--inner-border-width: 0px;" v-for="(record,key) in dataList" :key="key" detail
                         @click="onDetail(record.doTaskID)" v-show="record.taskStatus==0">
-                <span class="b-badge" :class="record.taskLevel==1?'b-badge-dange':(record.taskLevel==2?'b-badge-warning':'b-badge-default')"></span>
+                <span class="b-badge"
+                      :class="record.taskLevel==1?'b-badge-dange':(record.taskLevel==2?'b-badge-warning':'b-badge-default')"></span>
                 <ion-label style="color: #404040;">
                   {{ record.doTaskName }}
                 </ion-label>
@@ -85,7 +86,7 @@
 import {defineComponent, reactive, ref} from "vue";
 import {useRouter} from "vue-router";
 import {getMyWorkTasks} from '@/api/workTask';
-import {onIonViewDidEnter} from "@ionic/vue";
+import {alertController, onIonViewDidEnter} from "@ionic/vue";
 import dayjs from "dayjs";
 import BEmpty from "@/components/empty.vue";
 
@@ -105,7 +106,7 @@ export default defineComponent({
       pageIndex: 1,
       pageSize: 5,
       total: 0,
-    })
+    });
 
     const loadData = async function () {
       loading.value = true;
@@ -142,6 +143,36 @@ export default defineComponent({
       reload();
     });
 
+    const alertTaskWarning = async () => {
+      const result: any = await getMyWorkTasks({
+        pageIndex: 1,
+        pageSize: 1000,
+      });
+
+      const taskWarningList = result.list.filter((it: any) => it.taskLevel === 1);
+
+      if (taskWarningList.length > 0) {
+        const alert = await alertController.create({
+          header: '任务提醒',
+          message: '您有' + taskWarningList.length + '条特别重要任务需要处理!请及时处理!',
+          buttons: [
+            {
+              text: '去处理',
+              handler: () => {
+                onTaskList();
+              }
+            }
+          ],
+          cssClass: 'task_warning_alert'
+        });
+
+        await alert.present();
+      }
+
+    };
+
+    alertTaskWarning();
+
     return {
       router,
       loading,
@@ -273,21 +304,8 @@ export default defineComponent({
   }
 }
 
-.b-badge {
-  padding: 8px;
-  margin-right: 8px;
-}
-
-.b-badge-dange{
-  background-color: #D9001B;
-}
-
-.b-badge-warning{
-  background-color: #F59A23;
-}
-
-.b-badge-default{
-  background-color: #008080;
+.task_warning_alert .alert-title,.task_warning_alert .alert-message{
+  color: red;
 }
 
 </style>

+ 22 - 2
h5app/src/views/sapp/tabUser.vue

@@ -54,7 +54,7 @@
            </div>
            <div class="user_text">
              <h2>{{user.name}}</h2>
-             <p>驿站工作人员</p>
+             <p>{{ user.genderName }} {{ user.siteName }}</p>
            </div>
            <div class="qr_img">
              <img :src="infoQrcodeUrl" :style="imgStyle">
@@ -77,6 +77,10 @@
               <img src="@/assets/icon/gywm.png">
               <ion-label @click="router.push('/tabs/tabUser/about')">关于我们</ion-label>
             </ion-item>
+            <ion-item class="item-menu" detail mode="md">
+              <img src="@/assets/icon/tc.png">
+              <ion-label @click="presentAlert">退出登录</ion-label>
+            </ion-item>
           </div>
         </div>
       </div>
@@ -272,13 +276,29 @@ onMounted(() => {
     position: relative;
     z-index: 2;
 
+    .user_img {
+      width: 30%;
+    }
+
     .user_text{
-      padding-left: 20px;
+      width: 44%;
+      padding-left: 5px;
+
+      h2 {
+        margin-top: 12px;
+      }
 
       p{
+        margin-top: 3px;
+        margin-bottom: 18px;
+        font-size: 12px;
         color: #899099;
       }
     }
+
+    .qr_img {
+      width: 28%;
+    }
   }
 
   .user_info::before{

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

@@ -66,6 +66,7 @@ public class SiteUserController {
         } else {
             if (cipherType != null && cipherType == 1) {
                 data.setIdCard(stringUtils.desensitizeData(data.getIdCard(), "************", 3, 4));
+                data.setSocialSecurityCard(stringUtils.desensitizeData(data.socialSecurityCard, "****", 3, 3));
             }
         }
         return RespGenerstor.success(data);
@@ -89,7 +90,7 @@ public class SiteUserController {
                                @RequestParam(required = false) String siteID) throws Exception{
         PageInfo<SiteUserVo> result = userInfoService.getList(pageIndex, pageSize, siteUserIDList, siteUserName, siteID, null, null, null,null);
         ExcelHelper.ExcelData data = excelHelper.new ExcelData();
-        data.setTitles(Arrays.asList(new String[]{"序号", "工号", "人员名称", "角色", "性别", "联系电话", "年龄", "身份证号", "所属驿站"}));
+        data.setTitles(Arrays.asList(new String[]{"序号", "工号", "人员名称", "角色", "性别", "联系电话", "年龄", "所属驿站"}));
         int i = 0;
         List<List<Object>> rowsData= new ArrayList();
         for (SiteUserVo item : result.getList()) {
@@ -102,7 +103,6 @@ public class SiteUserController {
             row.add(item.genderName);
             row.add(item.mobile);
             row.add(item.age);
-            row.add(item.idCard);
             row.add(item.siteName);
             rowsData.add(row);
         }

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

@@ -82,8 +82,9 @@ public class JobUserController {
             }
         } else {
             if (cipherType != null && cipherType == 1) {
-                // 身份证脱敏
+                // 信息脱敏
                 data.setIdentityNumber(stringUtils.desensitizeData(data.getIdentityNumber(), "************", 3, 4));
+                data.setSocialSecurityCard(stringUtils.desensitizeData(data.getSocialSecurityCard(), "****", 3, 3));
             }
         }
         return RespGenerstor.success(data);

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

@@ -70,7 +70,7 @@ public class DoWorkController {
             if (curSiteUserInfo != null) {
                 data.siteUserID = curSiteUserInfo.getSiteUserID();
                 data.userId = curSiteUserInfo.getUserID();
-                // 查询提交用户的所属驿站,获取区县与街道编码
+                // 查询提交用户的所属驿站,获取ID、区县与街道编码
                 PcSiteExample siteExample = new PcSiteExample();
                 PcSiteExample.Criteria siteExampleCriteria = siteExample.createCriteria();
                 siteExampleCriteria.andSiteIDEqualTo(curSiteUserInfo.getSiteID());
@@ -78,6 +78,7 @@ public class DoWorkController {
                 if (pcSites != null) {
                     data.setRegionCode(pcSites.getRegionCode());
                     data.setStreetCode(pcSites.getStreetCode());
+                    data.setSiteID(pcSites.getSiteID());
                 }
             }
         }

+ 1 - 1
src/main/java/com/hz/employmentsite/filter/exception/GlobalExceptionHandler.java

@@ -25,7 +25,7 @@ public class GlobalExceptionHandler {
     @ExceptionHandler(value = Exception.class)
     public BaseResponse<Object> exceptionHandler(Exception e) {
         logger.error("未知异常!原因是:" + e);
-        return RespGenerstor.fail(BaseErrorEnum.INTERNAL_SERVER_ERROR,e.getMessage());
+        return RespGenerstor.fail(BaseErrorEnum.INTERNAL_SERVER_ERROR,"");
     }
 
 }

+ 10 - 0
src/main/java/com/hz/employmentsite/model/PcDowork.java

@@ -25,6 +25,8 @@ public class PcDowork {
 
     private Date workTime;
 
+    private String siteID;
+
     public String getDoworkID() {
         return doworkID;
     }
@@ -112,4 +114,12 @@ public class PcDowork {
     public void setWorkTime(Date workTime) {
         this.workTime = workTime;
     }
+
+    public String getSiteID() {
+        return siteID;
+    }
+
+    public void setSiteID(String siteID) {
+        this.siteID = siteID;
+    }
 }

+ 2 - 1
src/main/java/com/hz/employmentsite/services/impl/baseSettings/SiteUserImpl.java

@@ -73,10 +73,11 @@ public class SiteUserImpl implements SiteUserService {
     public PageInfo<SiteUserVo> getList(int pageIndex, int pageSize, List<String> siteUserIDList, String siteUserName, String siteID, String roleName, String regionCode, String userNo,String userID) {
         PageHelper.startPage(pageIndex, pageSize);
         List<SiteUserVo> dataList = userInfoCQuery.getList(stringUtils.ListToInSql(siteUserIDList), siteUserName, siteID, roleName, regionCode, userNo, userID);
-        // 身份证脱敏
+        // 重要信息脱敏
         dataList.forEach(item -> {
             item.setAge(dateUtils.getAgeForIdCard(item.idCard));
             item.setIdCard(stringUtils.desensitizeData(item.idCard, "************", 3, 4));
+            item.setSocialSecurityCard(stringUtils.desensitizeData(item.socialSecurityCard, "****", 3, 3));
         });
         PageInfo<SiteUserVo> result = new PageInfo(dataList);
         return result;

+ 33 - 7
src/main/java/com/hz/employmentsite/services/impl/companyService/CompanyServiceImpl.java

@@ -268,7 +268,14 @@ public class CompanyServiceImpl implements CompanyService {
         List<CompanyVo> resultList = new ArrayList<>();
         //企业规模
         List<SysDictionaryItem> dicCompanyModelList = dictionaryService.getDictionaryItemList("CompanyModel");
+        // 经济类型
         List<SysDictionaryItem> dicCompanyTypeList = dictionaryService.getDictionaryItemList("CompanyType");
+        // 企业状态
+        List<SysDictionaryItem> companyStatusList = dictionaryService.getDictionaryItemList("CompanyStatus");
+        // 企业行业
+        List<PcIndustry> industryList = industryService.getAllList();
+        // 企业产业分类
+        List<SysDictionaryItem> companyEstateCategory = dictionaryService.getDictionaryItemByCodeList("CompanyEstateCategory");
 
         dataList.forEach(item -> {
             String errorInfo = "";
@@ -298,10 +305,10 @@ public class CompanyServiceImpl implements CompanyService {
             if (stringUtils.IsNullOrEmpty(item.recordStatusName))
                 errorInfo += "请填写企业状态!";
             else {
-                if (item.recordStatusName.equals("在营"))
-                    item.recordStatus = 1;
-                else
-                    item.recordStatus = 0;
+                item.recordStatus = companyStatusList.stream().filter(it -> it.getName().equals(item.getRecordStatusName().trim()))
+                        .findFirst().orElse(new SysDictionaryItem()).getValue();
+                if (stringUtils.IsNullOrEmpty(item.regionCode))
+                    errorInfo += "企业状态不存在!";
             }
 
             if (stringUtils.IsNullOrEmpty(item.isShortageName))
@@ -338,16 +345,28 @@ public class CompanyServiceImpl implements CompanyService {
                 item.companyType = dicCompanyTypeList.stream().filter(it -> it.getName().equals(item.companyTypeStr.trim()))
                         .findFirst().orElse(new SysDictionaryItem()).getValue();
                 if (item.companyType == null || item.companyType == 0)
-                    errorInfo += "企业分类不存在!";
+                    errorInfo += "经济类型不存在!";
             }
 
-            if (!stringUtils.IsNullOrEmpty(item.companyModelStr))
-            {
+            if (!stringUtils.IsNullOrEmpty(item.companyModelStr)) {
                 item.companyModel = dicCompanyModelList.stream().filter(it -> it.getName().equals(item.companyModelStr.trim()))
                         .findFirst().orElse(new SysDictionaryItem()).getValue();
                 if (item.companyModel == null || item.companyModel == 0)
                     errorInfo += "企业规模不存在!";
             }
+
+            if (!stringUtils.IsNullOrEmpty(item.getSignInPoliticalAreaName())) {
+                item.signInPoliticalArea = regionList.stream().filter(it -> it.getName().equals(item.signInPoliticalAreaName.trim()))
+                        .findFirst().orElse(new AreaCode()).getCode();
+            }
+            if (!stringUtils.IsNullOrEmpty(item.getIndustryName())) {
+                item.industryID = industryList.stream().filter(it -> it.getIndustryName().equals(item.industryName.trim()))
+                        .findFirst().orElse(new PcIndustry()).getIndustryId();
+            }
+            if (!stringUtils.IsNullOrEmpty(item.getEstateCategoryName())) {
+                item.estateCategoryID = companyEstateCategory.stream().filter(it -> it.getName().equals(item.estateCategoryName.trim()))
+                        .findFirst().orElse(new SysDictionaryItem()).getValue();
+            }
         });
 
         if (dataList.stream().filter(it -> !stringUtils.IsNullOrEmpty(it.errorMessage)).collect(Collectors.toList()).size() > 0)
@@ -429,6 +448,13 @@ public class CompanyServiceImpl implements CompanyService {
         companyVo.setCompanyEmail(pcFirm.getEmail());
         companyVo.setCompanyAddress(pcFirm.getLatestAddress());
         companyVo.setBusinScope(pcFirm.getBusinessScope());
+        if (pcFirm.getEstablishmentDate() != null) {
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            try {
+                companyVo.setEstablishmentTime(dateFormat.parse(pcFirm.getEstablishmentDate()));
+            } catch (Exception e) {
+            }
+        }
         if (pcFirm.getIndustry() != null && !pcFirm.getIndustry().isBlank()) {
             // 获取行业数据
             List<PcIndustry> allList = industryService.getAllList();

+ 2 - 1
src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobUserServiceImpl.java

@@ -61,10 +61,11 @@ public class JobUserServiceImpl implements JobUserService {
         }
         PageHelper.startPage(pageIndex, pageSize);
         List<JobUserVo> list = jobUserCQuery.selectJobUserList(stringUtils.ListToInSql(jobUserIDList), name, siteId, jobStatus, sexId, educationTypeId, emphasisTypeId, createUserId, workTime, curLoginUserSiteID, regionCode, startDate, endDate);
-        // 身份证脱敏
+        // 信息脱敏
         list.forEach(item -> {
             item.setAge(dateUtils.getAgeForIdCard(item.getIdentityNumber()));
             item.setIdentityNumber(stringUtils.desensitizeData(item.getIdentityNumber(), "************", 3, 4));
+            item.setSocialSecurityCard(stringUtils.desensitizeData(item.getSocialSecurityCard(), "****", 3, 3));
         });
         PageInfo<JobUserVo> result = new PageInfo(list);
 

+ 2 - 0
src/main/java/com/hz/employmentsite/services/impl/taskAndLog/DoWorkImpl.java

@@ -67,6 +67,7 @@ public class DoWorkImpl implements DoWorkService {
             dbData.setRegionCode(data.getRegionCode());
             dbData.setStreetCode(data.getStreetCode());
             dbData.setWorkTime(data.getWorkTime());
+            dbData.setSiteID(data.getSiteID());
             dbData.setCreateUserID(userId);
             dbData.setCreateTime(new Date());
             result = pcDoworkMapper.insert(dbData);
@@ -79,6 +80,7 @@ public class DoWorkImpl implements DoWorkService {
             dbData.setRegionCode(data.regionCode);
             dbData.setStreetCode(data.streetCode);
             dbData.setWorkTime(data.workTime);
+            dbData.setSiteID(data.siteID);
             dbData.setModifyUserID(userId);
             dbData.setModifyTime(new Date());
             result = pcDoworkMapper.updateByPrimaryKey(dbData);

+ 2 - 2
src/main/java/com/hz/employmentsite/vo/taskAndLog/DoWorkVo.java

@@ -42,8 +42,8 @@ public class DoWorkVo {
     public Integer RecordsJobuserNum;
 
     @SiteID
-    private String siteID;
-    private String siteName;
+    public String siteID;
+    public String siteName;
     @InstitutionID
     public String institutionID;
 }

+ 44 - 29
src/main/resources/mapping/PcDoworkMapper.xml

@@ -13,6 +13,7 @@
     <result column="RegionCode" jdbcType="VARCHAR" property="regionCode" />
     <result column="StreetCode" jdbcType="VARCHAR" property="streetCode" />
     <result column="WorkTime" jdbcType="TIMESTAMP" property="workTime" />
+    <result column="SiteID" jdbcType="VARCHAR" property="siteID"/>
   </resultMap>
 
   <resultMap id="RecordsCountMap" type="com.hz.employmentsite.vo.taskAndLog.RecordsCountVo">
@@ -81,7 +82,7 @@
   </sql>
   <sql id="Base_Column_List">
     DoworkID, SiteUserID, DoTypeID, WorkContent, CreateUserID, CreateTime, ModifyUserID, 
-    ModifyTime, RegionCode, StreetCode, WorkTime
+    ModifyTime, RegionCode, StreetCode, WorkTime, SiteID
   </sql>
   <select id="selectByExample" parameterType="com.hz.employmentsite.model.PcDoworkExample" resultMap="BaseResultMap">
     select
@@ -114,14 +115,14 @@
     </if>
   </delete>
   <insert id="insert" parameterType="com.hz.employmentsite.model.PcDowork">
-    insert into pc_dowork (DoworkID, SiteUserID, DoTypeID, 
-      WorkContent, CreateUserID, CreateTime, 
-      ModifyUserID, ModifyTime, RegionCode, 
-      StreetCode, WorkTime)
-    values (#{doworkID,jdbcType=VARCHAR}, #{siteUserID,jdbcType=VARCHAR}, #{doTypeID,jdbcType=INTEGER}, 
-      #{workContent,jdbcType=VARCHAR}, #{createUserID,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
-      #{modifyUserID,jdbcType=VARCHAR}, #{modifyTime,jdbcType=TIMESTAMP}, #{regionCode,jdbcType=VARCHAR}, 
-      #{streetCode,jdbcType=VARCHAR}, #{workTime,jdbcType=TIMESTAMP})
+    insert into pc_dowork (DoworkID, SiteUserID, DoTypeID,
+                           WorkContent, CreateUserID, CreateTime,
+                           ModifyUserID, ModifyTime, RegionCode,
+                           StreetCode, WorkTime, SiteID)
+    values (#{doworkID,jdbcType=VARCHAR}, #{siteUserID,jdbcType=VARCHAR}, #{doTypeID,jdbcType=INTEGER},
+            #{workContent,jdbcType=VARCHAR}, #{createUserID,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
+            #{modifyUserID,jdbcType=VARCHAR}, #{modifyTime,jdbcType=TIMESTAMP}, #{regionCode,jdbcType=VARCHAR},
+            #{streetCode,jdbcType=VARCHAR}, #{workTime,jdbcType=TIMESTAMP}, #{siteID,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.hz.employmentsite.model.PcDowork">
     insert into pc_dowork
@@ -159,6 +160,9 @@
       <if test="workTime != null">
         WorkTime,
       </if>
+      <if test="siteID != null">
+        SiteID,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="doworkID != null">
@@ -194,6 +198,9 @@
       <if test="workTime != null">
         #{workTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="siteID != null">
+        #{siteID,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.hz.employmentsite.model.PcDoworkExample" resultType="java.lang.Long">
@@ -238,6 +245,9 @@
       <if test="row.workTime != null">
         WorkTime = #{row.workTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="row.siteID != null">
+        SiteID = #{row.siteID,jdbcType=VARCHAR},
+      </if>
     </set>
     <if test="example != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -246,16 +256,17 @@
   <update id="updateByExample" parameterType="map">
     update pc_dowork
     set DoworkID = #{row.doworkID,jdbcType=VARCHAR},
-      SiteUserID = #{row.siteUserID,jdbcType=VARCHAR},
-      DoTypeID = #{row.doTypeID,jdbcType=INTEGER},
-      WorkContent = #{row.workContent,jdbcType=VARCHAR},
-      CreateUserID = #{row.createUserID,jdbcType=VARCHAR},
-      CreateTime = #{row.createTime,jdbcType=TIMESTAMP},
-      ModifyUserID = #{row.modifyUserID,jdbcType=VARCHAR},
-      ModifyTime = #{row.modifyTime,jdbcType=TIMESTAMP},
-      RegionCode = #{row.regionCode,jdbcType=VARCHAR},
-      StreetCode = #{row.streetCode,jdbcType=VARCHAR},
-      WorkTime = #{row.workTime,jdbcType=TIMESTAMP}
+    SiteUserID = #{row.siteUserID,jdbcType=VARCHAR},
+    DoTypeID = #{row.doTypeID,jdbcType=INTEGER},
+    WorkContent = #{row.workContent,jdbcType=VARCHAR},
+    CreateUserID = #{row.createUserID,jdbcType=VARCHAR},
+    CreateTime = #{row.createTime,jdbcType=TIMESTAMP},
+    ModifyUserID = #{row.modifyUserID,jdbcType=VARCHAR},
+    ModifyTime = #{row.modifyTime,jdbcType=TIMESTAMP},
+    RegionCode = #{row.regionCode,jdbcType=VARCHAR},
+    StreetCode = #{row.streetCode,jdbcType=VARCHAR},
+    WorkTime = #{row.workTime,jdbcType=TIMESTAMP},
+    SiteID = #{row.siteID,jdbcType=TIMESTAMP}
     <if test="example != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -293,21 +304,25 @@
       <if test="workTime != null">
         WorkTime = #{workTime,jdbcType=TIMESTAMP},
       </if>
+      <if test="siteID != null">
+        SiteID = #{siteID,jdbcType=VARCHAR},
+      </if>
     </set>
     where DoworkID = #{doworkID,jdbcType=VARCHAR}
   </update>
   <update id="updateByPrimaryKey" parameterType="com.hz.employmentsite.model.PcDowork">
     update pc_dowork
-    set SiteUserID = #{siteUserID,jdbcType=VARCHAR},
-      DoTypeID = #{doTypeID,jdbcType=INTEGER},
-      WorkContent = #{workContent,jdbcType=VARCHAR},
-      CreateUserID = #{createUserID,jdbcType=VARCHAR},
-      CreateTime = #{createTime,jdbcType=TIMESTAMP},
-      ModifyUserID = #{modifyUserID,jdbcType=VARCHAR},
-      ModifyTime = #{modifyTime,jdbcType=TIMESTAMP},
-      RegionCode = #{regionCode,jdbcType=VARCHAR},
-      StreetCode = #{streetCode,jdbcType=VARCHAR},
-      WorkTime = #{workTime,jdbcType=TIMESTAMP}
+    set SiteUserID   = #{siteUserID,jdbcType=VARCHAR},
+        DoTypeID     = #{doTypeID,jdbcType=INTEGER},
+        WorkContent  = #{workContent,jdbcType=VARCHAR},
+        CreateUserID = #{createUserID,jdbcType=VARCHAR},
+        CreateTime   = #{createTime,jdbcType=TIMESTAMP},
+        ModifyUserID = #{modifyUserID,jdbcType=VARCHAR},
+        ModifyTime   = #{modifyTime,jdbcType=TIMESTAMP},
+        RegionCode   = #{regionCode,jdbcType=VARCHAR},
+        StreetCode   = #{streetCode,jdbcType=VARCHAR},
+        WorkTime     = #{workTime,jdbcType=TIMESTAMP},
+        SiteID       = #{siteID,jdbcType=VARCHAR}
     where DoworkID = #{doworkID,jdbcType=VARCHAR}
   </update>
 

+ 2 - 2
src/main/resources/mapping/cquery/DoWorkCQuery.xml

@@ -14,14 +14,14 @@
         SELECT COUNT(jobuser.JobuserID) FROM pc_jobuser jobuser WHERE jobuser.CreateUserID = siteUser.UserId AND
         DATE(jobuser.CreateTime) = DATE(workLog.WorkTime)
         ) AS RecordsJobuserNum
-        ,site.SiteID as siteID,inSites.InstitutionID as institutionID
+        ,inSites.InstitutionID as institutionID
         from pc_dowork workLog
         left join (select * from sys_dictionary_item where DictionaryCode ='LogType' ) dic_logType on workLog.doTypeID =
         dic_logType.Value
         left join area_code region on workLog.RegionCode = region.code
         left join area_code street on workLog.StreetCode = street.code
         left join pc_site_user siteUser on workLog.SiteUserID = siteUser.SiteUserID
-        left join pc_site site on siteUser.siteID = site.siteID
+        left join pc_site site on workLog.siteID = site.siteID
         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 modifyUser on workLog.ModifyUserID = modifyUser.UserID

BIN
src/main/resources/static/doc/template/企业信息导入模板.xlsx


+ 8 - 8
vue/src/router/asyncModules/taskAndLog.ts

@@ -1,10 +1,10 @@
 export default {
-  'taskAndLog/dotask/index': () => import('@/views/taskAndLog/dotask/index.vue'),
-  'taskAndLog/dotask/add': () => import('@/views/taskAndLog/dotask/edit.vue'),
-  'taskAndLog/dotask/edit': () => import('@/views/taskAndLog/dotask/edit.vue'),
-  'taskAndLog/dotask/detail': () => import('@/views/taskAndLog/dotask/detail.vue'),
-  'taskAndLog/workLog/index': () => import('@/views/taskAndLog/dowork/index.vue'),
-  'taskAndLog/workLog/add': () => import('@/views/taskAndLog/dowork/edit.vue'),
-  'taskAndLog/workLog/edit': () => import('@/views/taskAndLog/dowork/edit.vue'),
-  'taskAndLog/workLog/detail': () => import('@/views/taskAndLog/dowork/detail.vue'),
+  'views/workTask/index': () => import('@/views/taskAndLog/dotask/index.vue'),
+  'views/workTask/add': () => import('@/views/taskAndLog/dotask/edit.vue'),
+  'views/workTask/edit': () => import('@/views/taskAndLog/dotask/edit.vue'),
+  'views/workTask/detail': () => import('@/views/taskAndLog/dotask/detail.vue'),
+  'views/workLog/index': () => import('@/views/taskAndLog/dowork/index.vue'),
+  'views/workLog/add': () => import('@/views/taskAndLog/dowork/edit.vue'),
+  'views/workLog/edit': () => import('@/views/taskAndLog/dowork/edit.vue'),
+  'views/workLog/detail': () => import('@/views/taskAndLog/dowork/detail.vue'),
 };

+ 0 - 2
vue/src/views/baseSettings/siteUser/detail.vue

@@ -6,7 +6,6 @@
       <a-descriptions-item label="性别">{{ siteUserInfo.genderName }}</a-descriptions-item>
       <a-descriptions-item label="联系电话">{{ siteUserInfo.mobile }}</a-descriptions-item>
       <a-descriptions-item label="工号">{{ siteUserInfo.userNo }}</a-descriptions-item>
-      <a-descriptions-item label="身份证">{{ siteUserInfo.idCard }}</a-descriptions-item>
       <a-descriptions-item label="用户类型">{{ siteUserInfo.roleName }}</a-descriptions-item>
       <a-descriptions-item label="所属驿站">{{ siteUserInfo.siteName }}</a-descriptions-item>
       <a-descriptions-item label="最后更新人">{{ siteUserInfo.updateUserName }}</a-descriptions-item>
@@ -16,7 +15,6 @@
     </a-descriptions>
     <a-divider orientation="left">其他信息</a-divider>
     <a-descriptions bordered>
-      <a-descriptions-item label="社保卡号">{{ siteUserInfo.socialSecurityCard }}</a-descriptions-item>
       <a-descriptions-item label="民族">{{ siteUserInfo.nationName }}</a-descriptions-item>
       <a-descriptions-item label="政治面貌">{{ siteUserInfo.politicsStatusName }}</a-descriptions-item>
       <a-descriptions-item label="最高学历">{{ siteUserInfo.cultureRankName }}</a-descriptions-item>

+ 0 - 1
vue/src/views/baseSettings/siteUser/index.vue

@@ -118,7 +118,6 @@ export default defineComponent({
       {title: '性别', dataIndex: 'genderName', key: 'genderName', align: "center"},
       {title: '联系电话', dataIndex: 'mobile', key: 'mobile', align: "center"},
       {title: '年龄', dataIndex: 'age', key: 'age', align: "center"},
-      {title: '身份证号', dataIndex: 'idCard', key: 'idCard', align: "center"},
       {title: '所属驿站', dataIndex: 'siteName', key: 'siteName', align: "center"},
       {title: '操作', key: 'operation', fixed: 'right', width: 150, align: "center"},
     ];

+ 9 - 2
vue/src/views/companyService/company/index.vue

@@ -194,16 +194,23 @@ export default defineComponent({
         {cnName: '企业状态', enName: 'recordStatusName', width: 100},
         {cnName: '是否缺工', enName: 'isShortageName', width: 100},
         {cnName: '法定代表人(负责人)', enName: 'frName', width: 140},
+        {cnName: '企业成立日期', enName: 'establishmentTime', width: 140},
         {cnName: '营业执照有效期', enName: 'validTime', width: 100},
+        {cnName: '企业注册资本(万元)', enName: 'registeredCapital', width: 100},
+        {cnName: '注册地址行政区划', enName: 'signInPoliticalAreaName', width: 100},
+        {cnName: '所属行业', enName: 'industryName', width: 100},
+        {cnName: '所属产业分类', enName: 'estateCategoryName', width: 100},
         {cnName: '企业邮箱', enName: 'companyEmail', width: 100},
-        {cnName: '企业分类', enName: 'companyTypeStr', width: 100},
+        {cnName: '经济类型', enName: 'companyTypeStr', width: 100},
         {cnName: '所属县区', enName: 'regionName', width: 100},
         {cnName: '所属街道', enName: 'streetName', width: 100},
         {cnName: '企业规模', enName: 'companyModelStr', width: 100},
         {cnName: '用工情况(人)', enName: 'workSituation', width: 100},
         {cnName: '参保人数(人)', enName: 'insuredCount', width: 100},
         {cnName: '经营范围', enName: 'businScope', width: 100},
-        {cnName: '企业简介', enName: 'companyDesc', width: 100}
+        {cnName: '企业简介', enName: 'companyDesc', width: 100},
+        {cnName: '企业官网网址', enName: 'website', width: 100},
+        {cnName: '企业福利', enName: 'bonus', width: 100}
       ],
       template: {
         tempFileName: '企业信息导入模板.xlsx',

+ 0 - 1
vue/src/views/jobUserManager/jobuser/index.vue

@@ -212,7 +212,6 @@ export default defineComponent({
           `${searchParamsState.pageSize * (searchParamsState.pageIndex - 1) + item.index + 1}`,
       },
       {title: '姓名', dataIndex: 'name', key: 'name', width: 100,align: "center"},
-      {title: '公民身份号码', dataIndex: 'identityNumber', key: 'identityNumber', width: 170,align: "center"},
       {title: '性别', dataIndex: 'genderName', key: 'genderName', width: 80,align: "center"},
       {title: '民族', dataIndex: 'nationName', key: 'nationName', width: 80, align: "center"},
       {title: '联系电话', dataIndex: 'userMobile', key: 'userMobile',align: "center"},

+ 0 - 1
vue/src/views/jobUserManager/jobuser/vitae.vue

@@ -50,7 +50,6 @@
         <a-divider orientation="left">基本信息</a-divider>
         <a-descriptions :column="2" bordered style="margin-left: 25px;">
           <a-descriptions-item label="出生地">{{ jobUserInfo.birthPlace }}</a-descriptions-item>
-          <a-descriptions-item label="身份证号">{{ jobUserInfo.identityNumber }}</a-descriptions-item>
           <a-descriptions-item label="重点人员类别">{{ jobUserInfo.keyTypeName }}</a-descriptions-item>
           <a-descriptions-item label="健康状况">{{ jobUserInfo.healthName }}</a-descriptions-item>
           <a-descriptions-item label="就业状态">{{ jobUserInfo.jobStatusName }}</a-descriptions-item>

+ 3 - 3
vue/src/views/taskAndLog/dotask/edit.vue

@@ -294,9 +294,9 @@ export default defineComponent(
       }
 
       const onClose = (reload: any) => {
-        tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/add');
-        tabsViewStore.closeCurrentTabByPath('/taskAndLog/dotask/edit');
-        tabsViewStore.openTab('/taskAndLog/dotask/index', {reload: reload});
+        tabsViewStore.closeCurrentTabByPath('/workTask/add');
+        tabsViewStore.closeCurrentTabByPath('/workTask/edit');
+        tabsViewStore.openTab('/workTask/index', {reload: reload});
       };
 
       const onFinish = () => {

+ 3 - 3
vue/src/views/taskAndLog/dotask/index.vue

@@ -185,13 +185,13 @@ export default defineComponent({
     const expand = ref(false);
 
     const onAdd = () => {
-      tabsViewStore.addTabByPath('/taskAndLog/dotask/add', null);
+      tabsViewStore.addTabByPath('/workTask/add', null);
     };
     const onEdit = (item: any) => {
-      tabsViewStore.addTabByPath('/taskAndLog/dotask/edit', {id: item.doTaskID});
+      tabsViewStore.addTabByPath('/workTask/edit', {id: item.doTaskID});
     };
     const onDetail = (item: any) => {
-      tabsViewStore.addTabByPath('/taskAndLog/dotask/detail', {id: item.doTaskID});
+      tabsViewStore.addTabByPath('/workTask/detail', {id: item.doTaskID});
     };
 
     get('system/area/getCityList', {}).then(data => {

+ 28 - 4
vue/src/views/taskAndLog/dowork/edit.vue

@@ -48,6 +48,21 @@
           </a-form-item>
         </a-col>
         <a-col :span="8">
+          <a-form-item
+            label="所属驿站"
+            :label-col="{ span: 7 }"
+            name="siteID"
+            :rules="[{ required: true, message: '请选择所属驿站!' }]"
+          >
+            <a-select
+              ref="select"
+              v-model:value="dataModel.siteID"
+              :options="siteList"
+              :disabled="userInfo.userTypeID == 3"
+              :field-names="{ label: 'siteName', value: 'siteID' }"
+            >
+            </a-select>
+          </a-form-item>
         </a-col>
       </a-row>
       <a-row>
@@ -80,6 +95,7 @@ import {getSysDictionaryList} from "@/api/system/dictionary";
 import {getRegionCodeList, getStreetCodeList} from "@/api/system/area/index";
 import {getSiteUserDataList} from "@/api/baseSettings/userInfo";
 import {useUserStore} from "@/store/modules/user";
+import {getSiteList} from "@/api/baseSettings/siteInfo";
 
 interface InstitutionModel {
   dataModel: any;
@@ -109,6 +125,7 @@ export default defineComponent({
     const streetList = ref<SelectProps['options']>();
     const logTypeList = ref<SelectProps["options"]>();
     const siteUserList = ref<SelectProps["options"]>();
+    const siteList = ref<any>([]);
     const recordsCount = reactive({
       RecordsCompanyNum:null,
       RecordsJobuserNum:null,
@@ -141,11 +158,17 @@ export default defineComponent({
       const logTypeResult :any = await getSysDictionaryList("LogType");
       logTypeList.value = logTypeResult;
     }
+    const getAllSites = () => {
+      getSiteList({pageIndex: 1, pageSize: 9999}).then((result: any) => {
+        siteList.value = result.list;
+      })
+    }
 
     const loadData = (doWorkID: string) => {
       getRegionList();
       getLogTypeList();
       getSiteUserList();
+      getAllSites();
       get(doWorkID).then((result: any) => {
         formData.dataModel = result;
         findRecordsCount();
@@ -161,9 +184,9 @@ export default defineComponent({
     };
 
     const onClose = (reload: any) => {
-      tabsViewStore.closeCurrentTabByPath('/taskAndLog/workLog/add');
-      tabsViewStore.closeCurrentTabByPath('/taskAndLog/workLog/edit');
-      tabsViewStore.openTab('/taskAndLog/workLog/index',{reload:reload});
+      tabsViewStore.closeCurrentTabByPath('/workLog/add');
+      tabsViewStore.closeCurrentTabByPath('/workLog/edit');
+      tabsViewStore.openTab('/workLog/index', {reload: reload});
     };
 
     const onFinish = () => {
@@ -229,7 +252,8 @@ export default defineComponent({
       recordsCount,
       siteUserChange,
       workTimeChange,
-      userInfo
+      userInfo,
+      siteList
     };
   },
   created() {

+ 3 - 3
vue/src/views/taskAndLog/dowork/index.vue

@@ -316,15 +316,15 @@ export default defineComponent({
     };
 
     const onAdd = () => {
-      tabsViewStore.addTabByPath('/taskAndLog/workLog/add', {id: null});
+      tabsViewStore.addTabByPath('/workLog/add', {id: null});
     };
 
     const onEdit = (id: string) => {
-      tabsViewStore.addTabByPath('/taskAndLog/workLog/edit', {id: id});
+      tabsViewStore.addTabByPath('/workLog/edit', {id: id});
     };
 
     const onDetail = (id: string) => {
-      tabsViewStore.addTabByPath('/taskAndLog/workLog/detail', {id: id});
+      tabsViewStore.addTabByPath('/workLog/detail', {id: id});
     }
 
     const onReset = () => {