Преглед изворни кода

Merge remote-tracking branch 'origin/master'

yusm пре 4 месеци
родитељ
комит
b953271fa6

+ 3 - 3
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/components/common/translationComponent.vue

@@ -1,15 +1,15 @@
 <template>
   <template v-if="userInfo.userNameNeedTranslate == 1">
-    <!-- <template v-if="Array.isArray(openId)">
+    <template v-if="Array.isArray(openId)">
       <template v-for="(item, index) in openId">
         <ww-open-data :type='type' :openid='item'></ww-open-data>
         <span v-if="index < openId.length - 1">,</span>
       </template>
     </template>
-    <ww-open-data :type='type' :openid='openId' v-else></ww-open-data> -->
+    <ww-open-data :type='type' :openid='openId' v-else></ww-open-data>
   </template>
   <template v-else>
-    {{ Array.isArray(openId) ? openId.join(',') : openId }} 😔
+    {{ Array.isArray(openId) ? openId.join(',') : openId }}
   </template>
 </template>
 

+ 11 - 7
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/pages/moduleList/moduleList.vue

@@ -176,12 +176,16 @@
                             <img src="/src/assets/image/noTopMounted.png" class="w-full h-full">
                           </div>
                         </template>
-                        <div class="buttonCircle rounded-full" @click="edit(item)">
-                          <img src="/src/assets/image/edit.png" class="w-full h-full">
-                        </div>
-                        <div class="buttonCircle rounded-full" @click="deleteRow(item)">
-                          <img src="/src/assets/image/delete.png" class="w-full h-full">
-                        </div>
+                        <template v-permission="[queryParameters?.jurisdiction?.edit]">
+                          <div class="buttonCircle rounded-full" @click="edit(item)" >
+                            <img src="/src/assets/image/edit.png" class="w-full h-full">
+                          </div>
+                        </template>
+                        <template v-permission="[queryParameters?.jurisdiction?.delete]">
+                          <div class="buttonCircle rounded-full" @click="deleteRow(item)" >
+                            <img src="/src/assets/image/delete.png" class="w-full h-full">
+                          </div>
+                        </template>
                       </div>
                     </template>
                   </van-swipe-cell>
@@ -197,7 +201,7 @@
 
       <!-- 可拖拽添加 -->
       <DragBox>
-        <div class="addButton" @click="toAddEditor()">
+        <div class="addButton" @click="toAddEditor()" v-permission="[queryParameters?.jurisdiction?.newlyAdded]">
           <img src="/src/assets/image/add.png" class="w-full h-full" />
         </div>
       </DragBox>

+ 4 - 2
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/pages/tabbar/home/component/workbench.vue

@@ -98,7 +98,7 @@
     </div>
 
     <!-- 常用联系人 -->
-    <div class="mt-3">
+    <div class="mt-3" v-if="displayFrequentlyUsedContacts">
       <div class="text-size-large text-[#000] pl16">常用联系人</div>
       <div class="p16 pt-0 pb-0">
         <template v-for="item in topContactsList">
@@ -183,6 +183,7 @@ const showCommonForms = ref(false)
 const commonExpressionsHaveBeenAdded = ref([])
 const commonExpressionsHaveBeenNodded = ref([])
 const areYouRequesting = ref(false)
+const displayFrequentlyUsedContacts = ref(false)
 
 function toContactDetails(item) {
   router.navigateTo({
@@ -291,7 +292,7 @@ function processForms() {
   )
 
   commonExpressionsHaveBeenNodded.value = allFormList.filter(item =>
-    selectedForm.some(arrItem => arrItem.path !== item.path)
+    !selectedForm.some(arrItem => arrItem.path === item.path)
   )
 }
 
@@ -325,6 +326,7 @@ function getAllData() {
   if (areYouRequesting.value) {
     return
   }
+  displayFrequentlyUsedContacts.value = useInfo.modularList.filter(item => item.path === '/contacts').length
   areYouRequesting.value = true
   Promise.all([
     getVisitorPlan(),

+ 1 - 0
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/pages/tabbar/my/index.vue

@@ -43,6 +43,7 @@ function signOut() {
     success: () => {
       localStorage.clear()
       sessionStorage.clear()
+      window.location.reload();
     }
   })
 }

+ 40 - 0
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/utility/generalVariables.js

@@ -16,6 +16,11 @@ export const routingInfos = {
     moduleImage: '/src/assets/image/module/business.png', // 模块图片
     searchFiled: { search: 'name' }, // 搜索字段
     image: '', // 图片
+    jurisdiction: { // 权限
+      newlyAdded: 'businessAddAnEdit',
+      edit: 'businessAddAnEdit',
+      delete: 'businessDelete'
+    }
   },
   'thread': {
     name: '线索',
@@ -32,6 +37,11 @@ export const routingInfos = {
     moduleImage: '/src/assets/image/module/thread.png',
     searchFiled: { search: 'clueName' },
     image: '',
+    jurisdiction: {
+      newlyAdded: 'threadAdd',
+      edit: 'threadEdit',
+      delete: 'threadDelete'
+    }
   },
   'customer': {
     name: '客户',
@@ -48,6 +58,11 @@ export const routingInfos = {
     moduleImage: '/src/assets/image/module/customer.png',
     searchFiled: { search: 'customName' },
     image: '',
+    jurisdiction: {
+      newlyAdded: 'customerAdd',
+      edit: 'customerEdit',
+      delete: 'customerDelete'
+    }
   },
   'contacts': {
     name: '联系人',
@@ -64,6 +79,11 @@ export const routingInfos = {
     moduleImage: '/src/assets/image/module/contacts.png',
     searchFiled: { search: 'name' },
     image: '',
+    jurisdiction: {
+      newlyAdded: 'contactsAdd',
+      edit: 'contactsEdit',
+      delete: 'contactsDelete'
+    }
   },
   'tasks': {
     name: '任务',
@@ -80,6 +100,11 @@ export const routingInfos = {
     moduleImage: '/src/assets/image/module/tasks.png',
     searchFiled: { search: 'taskName' },
     image: '',
+    jurisdiction: {
+      newlyAdded: 'tasksAdd',
+      edit: 'tasksEdit',
+      delete: 'tasksDelete'
+    }
   },
   'product': {
     name: '产品',
@@ -96,6 +121,11 @@ export const routingInfos = {
     moduleImage: '/src/assets/image/module/product.png',
     searchFiled: { search: 'productName' },
     image: '',
+    jurisdiction: {
+      newlyAdded: 'productAdd',
+      edit: 'productEdit',
+      delete: 'productDelete'
+    }
   },
   'contract': {
     name: '合同',
@@ -112,6 +142,11 @@ export const routingInfos = {
     moduleImage: '/src/assets/image/module/contract.png',
     searchFiled: { search: 'name' },
     image: '',
+    jurisdiction: {
+      newlyAdded: 'contractAdd',
+      edit: 'contractAdd',
+      delete: 'contractAdd'
+    }
   },
   'order': {
     name: '销售订单',
@@ -128,5 +163,10 @@ export const routingInfos = {
     moduleImage: '/src/assets/image/module/order.png',
     searchFiled: { search: 'orderName' },
     image: '',
+    jurisdiction: {
+      newlyAdded: 'orderAdd',
+      edit: 'orderEdit',
+      delete: 'orderDelete'
+    }
   }
 }

+ 17 - 8
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/UserCommonModuleServiceImpl.java

@@ -1,17 +1,12 @@
 package com.management.platform.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.config.DefaultCommonModuleConfig;
-import com.management.platform.entity.SysModule;
-import com.management.platform.entity.SysRoleModule;
-import com.management.platform.entity.User;
-import com.management.platform.entity.UserCommonModule;
+import com.management.platform.entity.*;
 import com.management.platform.entity.vo.UserCommonModuleVO;
-import com.management.platform.mapper.SysModuleMapper;
-import com.management.platform.mapper.SysRoleModuleMapper;
-import com.management.platform.mapper.UserCommonModuleMapper;
-import com.management.platform.mapper.UserMapper;
+import com.management.platform.mapper.*;
 import com.management.platform.service.UserCommonModuleService;
 import com.management.platform.util.HttpRespMsg;
 import org.apache.commons.collections.CollectionUtils;
@@ -42,6 +37,12 @@ public class UserCommonModuleServiceImpl extends ServiceImpl<UserCommonModuleMap
     @Resource
     private SysModuleMapper sysModuleMapper;
 
+    @Resource
+    private CompanyMapper companyMapper;
+
+    @Resource
+    private TimeTypeMapper timeTypeMapper;
+
     @Resource
     private DefaultCommonModuleConfig defaultCommonModuleConfig;
 
@@ -87,6 +88,14 @@ public class UserCommonModuleServiceImpl extends ServiceImpl<UserCommonModuleMap
                 }
             }
         }
+
+        //角色赋有的module
+        List<Integer> modelIds = sysRoleModuleMapper.selectList(new QueryWrapper<SysRoleModule>().eq("role_id", user.getRoleId()))
+                .stream().map(sr -> sr.getModuleId()).collect(Collectors.toList());
+        if(CollectionUtils.isNotEmpty(modelIds)){
+            commonModules = commonModules.stream().filter(t -> modelIds.contains(t.getModuleId())).collect(Collectors.toList());
+        }
+
         httpRespMsg.setData(commonModules);
         return httpRespMsg;
     }

+ 14 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectApprovalController.java

@@ -114,14 +114,26 @@ public class ProjectApprovalController {
             User id = userMapper.selectById(projectApproval.getInchargerId());
             projectApproval.setInchargerName(id.getName());
         }
-        if(!StringUtils.isEmpty(projectApproval.getProjectCode())){
+        if (projectApproval.getId() != null) {
+            //编辑
             Integer count=projectMapper.selectCount(new LambdaQueryWrapper<Project>().eq(Project::getCompanyId, companyId).eq(Project::getProjectCode, projectApproval.getProjectCode()));
-            Integer count1=projectApprovalService.count(new LambdaQueryWrapper<ProjectApproval>().eq(ProjectApproval::getCompanyId, companyId).eq(ProjectApproval::getProjectCode, projectApproval.getProjectCode()));
+            Integer count1=projectApprovalService.count(new LambdaQueryWrapper<ProjectApproval>().eq(ProjectApproval::getCompanyId, companyId).eq(ProjectApproval::getProjectCode, projectApproval.getProjectCode()).ne(ProjectApproval::getId,projectApproval.getId()));
             if(count>0||count1>0){
                 msg.setError("已存在项目编号为["+projectApproval.getProjectCode()+"]的项目/立项");
                 return msg;
             }
+        } else {
+            //新增
+            if(!StringUtils.isEmpty(projectApproval.getProjectCode())){
+                Integer count=projectMapper.selectCount(new LambdaQueryWrapper<Project>().eq(Project::getCompanyId, companyId).eq(Project::getProjectCode, projectApproval.getProjectCode()));
+                Integer count1=projectApprovalService.count(new LambdaQueryWrapper<ProjectApproval>().eq(ProjectApproval::getCompanyId, companyId).eq(ProjectApproval::getProjectCode, projectApproval.getProjectCode()));
+                if(count>0||count1>0){
+                    msg.setError("已存在项目编号为["+projectApproval.getProjectCode()+"]的项目/立项");
+                    return msg;
+                }
+            }
         }
+
         if(!projectApprovalService.saveOrUpdate(projectApproval)){
             msg.setError("验证失败");
             return msg;

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -3218,7 +3218,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             List<UserCorpwxTime> userCorpwxTimeList = null;
             WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
             if (company.getPackageOa() == 0 && timeType.getSyncCorpwxTime() == 1) {
-                userCorpwxTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().select("corpwx_userid, ask_leave_time").eq("company_id", companyId).eq("create_date", curDate).gt("ask_leave_time", 0));
+                userCorpwxTimeList = userCorpwxTimeMapper.selectList(new QueryWrapper<UserCorpwxTime>().select("corpwx_userid, name, ask_leave_time").eq("company_id", companyId).eq("create_date", curDate).gt("ask_leave_time", 0));
             }
             for (User u : userList) {
                 //入职日期在当前日期之后的,不要显示
@@ -3250,7 +3250,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         }
                     }
                 } else if (wxCorpInfo != null && userCorpwxTimeList != null) {
-                    Optional<UserCorpwxTime> find = userCorpwxTimeList.stream().filter(uct -> uct.getCorpwxUserid().equals(u.getCorpwxUserid())).findFirst();
+                    Optional<UserCorpwxTime> find = userCorpwxTimeList.stream().filter(uct -> (u.getCorpwxUserid() != null && uct.getCorpwxUserid() != null && uct.getCorpwxUserid().equals(u.getCorpwxUserid())) || (u.getCorpwxUserid() == null && u.getName().equals(uct.getName()))).findFirst();
                     if (find.isPresent()) {
                         user.put("leaveType",0);//默认为事假
                         user.put("leaveTimes", find.get().getAskLeaveTime());