Explorar o código

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

Min hai 10 meses
pai
achega
a7f60c5bac

BIN=BIN
fhKeeper/formulahousekeeper/customerBuler-crm/node_modules.zip


+ 2 - 2
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/index.vue

@@ -16,7 +16,7 @@
               <el-input v-model="businessOpportunityForm.customerName" clearable placeholder="请输入"></el-input>
             </el-form-item>
             <el-form-item label="联系人">
-              <el-input v-model="businessOpportunityForm.contactPerson" clearable placeholder="请输入"></el-input>
+              <el-input v-model="businessOpportunityForm.contactsName" clearable placeholder="请输入"></el-input>
             </el-form-item>
             <el-form-item label="产品">
               <el-select v-model="businessOpportunityForm.product" placeholder="请选择" clearable>
@@ -242,7 +242,7 @@ const businessOpportunityForm = reactive<businessOpportunityFormType>({
   name: '',
   stageId: '',
   customerName: '',
-  contactPerson: '',
+  contactsName: '',
   product: '',
   inchargerId: '',
   startTime: getFirstDayOfMonth(new Date()),

+ 1 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/type.d.ts

@@ -3,7 +3,7 @@ interface businessOpportunityFormType {
   name: string;
   stageId: string | number;
   customerName: string;
-  contactPerson: string;
+  contactsName: string;
   product: string | number;
   inchargerId: string | number;
   startTime: string | number;

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 30882 - 11721
fhKeeper/formulahousekeeper/management-crm/crm.log


+ 3 - 4
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/CustomController.java

@@ -246,11 +246,10 @@ public class CustomController {
 
     @RequestMapping("getAll")
     public Object getAll(HttpServletRequest request) {
-        User user = userMapper.selectById(request.getHeader("Token"));
+        HttpRespMsg list = list(new Custom(), request);
+        Map<String, Object> data = (Map<String, Object>) list.getData();
         HttpRespMsg msg = new HttpRespMsg();
-        msg.setMsg("操作成功");
-        msg.setData(
-                customMapper.selectList(new QueryWrapper<Custom>().eq("company_id", user.getCompanyId()))
+        msg.setData(data.get("data")
         );
         return msg;
     }

+ 0 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ClueServiceImpl.java

@@ -410,7 +410,6 @@ public class ClueServiceImpl extends ServiceImpl<ClueMapper, Clue> implements Cl
         WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new LambdaQueryWrapper<WxCorpInfo>().eq(WxCorpInfo::getCompanyId, companyId));
         List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, companyId));
         List<SysDict> sysDictOfProductType = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, companyId).eq(SysDict::getCode, "ClueSources"));
-        List<SysDict> sysDictOfProductUnit = sysDictMapper.selectList(new LambdaQueryWrapper<SysDict>().eq(SysDict::getCompanyId, companyId).eq(SysDict::getCode, "ProductUnit"));
         InputStream inputStream = null;
         OutputStream outputStream = null;
         try {

+ 9 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/CustomServiceImpl.java

@@ -117,6 +117,12 @@ public class CustomServiceImpl extends ServiceImpl<CustomMapper, Custom> impleme
             ) > 0) {
                 msg.setError("电话号码重复了");
                 return msg;
+            } if (customMapper.selectCount(new QueryWrapper<Custom>()
+                    .eq("company_phone", custom.getCompanyPhone())
+                    .ne("company_phone", custom1.getCompanyPhone())
+            ) > 0) {
+                msg.setError("电话号码重复了");
+                return msg;
             }
             ActionLog actionLog = new ActionLog();
             actionLog.setCode("custom");
@@ -341,7 +347,9 @@ public class CustomServiceImpl extends ServiceImpl<CustomMapper, Custom> impleme
         custom.setIsDelete(0);
         custom.setUserId(user.getId());
         custom.setEndTime(custom.getEndTime() + " 23:59:59");
-        custom.setPageIndex((custom.getPageIndex() - 1) * custom.getPageFrom());
+        if (custom.getPageIndex()!=null){
+            custom.setPageIndex((custom.getPageIndex() - 1) * custom.getPageFrom());
+        }
         boolean isAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部客户");
         boolean isNotAll = sysFunctionService.hasPriviledge(user.getRoleId(), "查看负责部门客户");
         List<Custom> list = new ArrayList<>();

+ 3 - 3
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/BusinessOpportunityMapper.xml

@@ -45,7 +45,7 @@
         <if test="name != null and name != ''">
             and `name` LIKE CONCAT('%', #{name}, '%')
         </if>
-        <if test="inchargerId != null and inchargerId == '' ">
+        <if test="inchargerId != null and inchargerId != '' ">
             and incharger_id = #{inchargerId}
         </if>
         <if test="startTime != null and endTime != null ">
@@ -55,7 +55,7 @@
             and contacts_id in (select id from contacts where `name`LIKE CONCAT('%', #{contactsName}, '%'))
         </if>
         <if test="customerName != null and customerName != ''">
-            and customer_id in (select id from custom where `name`LIKE CONCAT('%', #{customerName}, '%'))
+            and customer_id in (select id from custom where `custom_name`LIKE CONCAT('%', #{customerName}, '%'))
         </if>
         <if test="stageId != null ">
             and stage_id = #{stageId}
@@ -75,7 +75,7 @@
         <if test="name != null and name != ''">
             and `name` LIKE CONCAT('%', #{name}, '%')
         </if>
-        <if test="inchargerId != null ">
+        <if test="inchargerId != null and inchargerId != ''">
             and incharger_id = #{inchargerId}
         </if>
         <if test="startTime != null and endTime != null ">

+ 6 - 6
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/CustomMapper.xml

@@ -82,7 +82,7 @@
             and c.email LIKE CONCAT('%', #{email}, '%')
         </if>
         <if test="companyPhone != null and companyPhone != '' ">
-            and c.company_phone = #{companyPhone}
+            and c.company_phone LIKE CONCAT('%', #{companyPhone}, '%')
         </if>
         <if test="customerLevelId != null ">
             and c.customer_level_id = #{customerLevelId}
@@ -130,7 +130,7 @@
             and email = #{email}
         </if>
         <if test="companyPhone != null ">
-            and company_phone = #{companyPhone}
+            and company_phone LIKE CONCAT('%', #{companyPhone}, '%')
         </if>
         <if test="customerLevelId != null ">
             and customer_level_id = #{customerLevelId}
@@ -184,7 +184,7 @@
             and c.email LIKE CONCAT('%', #{email}, '%')
         </if>
         <if test="companyPhone != null ">
-            and c.company_phone = #{companyPhone}
+            and c.company_phone LIKE CONCAT('%', #{companyPhone}, '%')
         </if>
         <if test="customerLevelId != null ">
             and c.customer_level_id = #{customerLevelId}
@@ -235,7 +235,7 @@
             and email = #{email}
         </if>
         <if test="companyPhone != null ">
-            and company_phone = #{companyPhone}
+            and company_phone LIKE CONCAT('%', #{companyPhone}, '%')
         </if>
         <if test="customerLevelId != null ">
             and customer_level_id = #{customerLevelId}
@@ -287,7 +287,7 @@
             and email LIKE CONCAT('%', #{email}, '%')
         </if>
         <if test="companyPhone != null ">
-            and company_phone = #{companyPhone}
+            and company_phone LIKE CONCAT('%', #{companyPhone}, '%')
         </if>
         <if test="customerLevelId != null ">
             and customer_level_id = #{customerLevelId}
@@ -323,7 +323,7 @@
             and email = #{email}
         </if>
         <if test="companyPhone != null ">
-            and company_phone = #{companyPhone}
+            and company_phone LIKE CONCAT('%', #{companyPhone}, '%')
         </if>
         <if test="customerLevelId != null ">
             and customer_level_id = #{customerLevelId}

+ 4 - 0
fhKeeper/formulahousekeeper/timesheet/src/http.js

@@ -59,6 +59,8 @@ export default {
         }
         if(localStorage.getItem('lang') == 'en') {
             data.lang = 'english'
+        } else {
+            data.lang = 'zh'
         }
         axios({
             method: 'post',
@@ -109,6 +111,8 @@ export default {
         }
         if(localStorage.getItem('lang') == 'en') {
             data.lang = 'english'
+        } else {
+            data.lang = 'zh'
         }
         axios({
             method: 'post',

+ 36 - 28
fhKeeper/formulahousekeeper/timesheet/src/views/Home.vue

@@ -36,7 +36,7 @@
                     <span class="el-dropdown-link userinfo-inner">
                         <i class="el-icon-user" style="font-size:18px" ></i>
                         <!-- {{$t('other.customerService')}} -->
-                        帮助中心
+                        {{ $t('bangZhuZhongXin') }} 
                     </span> 
                     <el-dropdown-menu slot="dropdown">
                         <el-dropdown-item >
@@ -49,14 +49,14 @@
                                 src="../assets/image/code.jpg" />
                             </div>
                             <div v-if="isCorpWX">
-                                <div>扫码添加企业微信客服</div>
+                                <div>{{ $t('saoMaTianJiaQiYeWeiXinKeFu') }}</div>
                                 <img
                                 style="width: 153px; height: 153px"
                                 src="../assets/image/qwcode.png" />
                             </div>
                             <div>
                                 <div>
-                                    <el-link type="primary" :underline="false" href="https://www.ttkuaiban.com/download/%E5%B7%A5%E6%97%B6%E7%AE%A1%E5%AE%B6%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%E4%B9%A6.pdf">点击查看操作手册</el-link>
+                                    <el-link type="primary" :underline="false" href="https://www.ttkuaiban.com/download/%E5%B7%A5%E6%97%B6%E7%AE%A1%E5%AE%B6%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%E4%B9%A6.pdf">{{ $t('dianJiChaKanCaoZuoShouCe') }}</el-link>
                                 </div>
                             </div>
                         </el-dropdown-item>
@@ -155,7 +155,7 @@
                         <el-menu-item v-if="item.leaf && item.children.length > 0" :index="item.children[0].path" :data-v-step="item.children[0].path">
                             <i :class="item.iconCls"></i> 
                             <!-- {{item.children[0].name}} -->
-                            <span class="bosx" v-if="$t(item.meta.text).length < 16">{{$t(item.meta.text)}}</span>
+                            <span class="bosx" v-if="$t(item.meta.text).length <= 16">{{$t(item.meta.text)}}</span>
                             <el-tooltip class="itemName bosx"  v-if="$t(item.meta.text).length > 16" effect="dark" :content="$t(item.meta.text)" placement="top">
                                 <span>{{$t(item.meta.text)}}</span>
                             </el-tooltip>
@@ -236,43 +236,43 @@
                 </el-dialog>
 
                 <el-dialog
-                    title="修改公司名称"
+                    :title="$t('xiuGaiGongSiMingCheng')"
                     :visible.sync="editCompanyNamedialog"
                     width="30%">
                     <el-form :model="companyForm" :rules="rules" ref="companyForm" label-width="100px" class="demo-ruleForm">
-                        <el-form-item label="公司名称" prop="name">
+                        <el-form-item :label="$t('gongSiMingCheng')" prop="name">
                             <el-input v-model.trim="companyForm.name"></el-input>
                         </el-form-item>
                     </el-form>
                     <span slot="footer" class="dialog-footer">
-                        <el-button @click="editCompanyNamedialog = false">取 消</el-button>
-                        <el-button type="primary" @click="editCompanyName('companyForm')">确 定</el-button>
+                        <el-button @click="editCompanyNamedialog = false">{{ $t('quXiao') }}</el-button>
+                        <el-button type="primary" @click="editCompanyName('companyForm')">{{ $t('queDing') }}</el-button>
                     </span>
                 </el-dialog>
             </section>
         </el-col>
 
         <!-- 完善工号弹窗 -->
-        <el-dialog title="完善工号" :visible.sync="perfectJobNumber" width="500px" :show-close="false">
+        <el-dialog :title="$t('wanShanGongHao')" :visible.sync="perfectJobNumber" width="500px" :show-close="false">
             <el-form :model="perfectForm" :rules="rules" ref="perfectForm" label-width="80px" class="demo-ruleForm">
-                <el-form-item label="工号" prop="jobNumber">
+                <el-form-item :label="$t('Worknumber')" prop="jobNumber">
                     <el-input v-model.trim="perfectForm.jobNumber"></el-input>
                 </el-form-item>
             </el-form>
             <span slot="footer" class="dialog-footer">
-                <el-button type="primary" @click="editPerfectJobNumber('perfectForm')">确 定</el-button>
+                <el-button type="primary" @click="editPerfectJobNumber('perfectForm')">{{ $t('queDing') }}</el-button>
             </span>
         </el-dialog>
 
         <!-- 完善名称弹窗 -->
-        <el-dialog title="完善姓名" :visible.sync="perfectName" width="500px" :show-close="false">
+        <el-dialog :title="$t('wanShanXingMing')" :visible.sync="perfectName" width="500px" :show-close="false">
             <el-form :model="perfectFormName" :rules="rules" ref="perfectFormName" label-width="80px" class="demo-ruleForm">
-                <el-form-item label="姓名" prop="userName">
+                <el-form-item :label="$t('lable.name')" prop="userName">
                     <el-input v-model.trim="perfectFormName.userName"></el-input>
                 </el-form-item>
             </el-form>
             <span slot="footer" class="dialog-footer">
-                <el-button type="primary" @click="editPerfectName('perfectFormName')">确 定</el-button>
+                <el-button type="primary" @click="editPerfectName('perfectFormName')">{{$t('queDing')}}</el-button>
             </span>
         </el-dialog>
     </el-row>
@@ -285,6 +285,7 @@
         inject:['reloads'],
         data() {
             return {
+                textLength: 16,
                 companyForm:{
                     name: '',
                 },
@@ -296,14 +297,14 @@
                 },
                 rules: {
                     name: [
-                        { required: true, message: '请输入公司名称', trigger: 'blur' },
-                        { min: 1, max: 20, message: '长度为1-20个字符', trigger: 'blur' }
+                        { required: true, message: this.$t('qingShuRuGongSiMingCheng'), trigger: 'blur' },
+                        { min: 1, max: 20, message: this.$t('changDuWei_120GeZiFu'), trigger: 'blur' }
                     ],
                     jobNumber: [
-                        { required: true, message: '请输入工号', trigger: 'blur' }
+                        { required: true, message: this.$t('qingShuRuGongHao'), trigger: 'blur' }
                     ],
                     userName: [
-                        { required: true, message: '请输入姓名', trigger: 'blur' }
+                        { required: true, message: this.$t('defaultText.PleaseEnterYourName'), trigger: 'blur' }
                     ]
                 },
                 tourFlg: false,
@@ -359,10 +360,10 @@
                     startTimeout: 1000,   //1秒后执行
                     highlight: true,
                     labels: {
-                        buttonSkip: '跳过',
-                        buttonPrevious: '上一步',
-                        buttonNext: '下一步',
-                        buttonStop: '关闭'
+                        buttonSkip: this.$t('tiaoGuo'),
+                        buttonPrevious: this.$t('btn.previousstep'),
+                        buttonNext: this.$t('btn.nextStep'),
+                        buttonStop: this.$t('Shutdown')
                     }
                 },
                 myCallbacks: {
@@ -642,7 +643,7 @@
                 var h = util.formatDate.cdTime(new Date(new Date().getTime() + this.user.remainingTime), new Date(), 'h');
                 var m = util.formatDate.cdTime(new Date(new Date().getTime() + this.user.remainingTime), new Date(), 'm');
                 var s = util.formatDate.cdTime(new Date(new Date().getTime() + this.user.remainingTime), new Date(), 's');
-                this.remainingTime = d+'天'+h+'时'+m+'分'+s+'秒';
+                this.remainingTime = d+this.$t('time.day')+h+this.$t('shi')+m+this.$t('fen')+s+this.$t('miao');
             },
 
             // 加载消息
@@ -825,7 +826,7 @@
                                             fail: function (res) {
                                                 console.log('查看错误信息', res)
                                                 if (res.errMsg.indexOf('function not exist') > -1) {
-                                                    alert('版本过低请升级')
+                                                    alert(that.$t('banBenGuoDiQingShengJi'))
                                                 }
                                             },
                                         })
@@ -833,7 +834,7 @@
                                 }, (error) => {
                                     console.log('查看错误信息' + res)
                                     if (error.errMsg.indexOf('function not exist') > -1) {
-                                        alert('版本过低请升级')
+                                        alert(that.$t('banBenGuoDiQingShengJi'))
                                     }
                                 })
                         });
@@ -861,7 +862,7 @@
                                 }
                                 sessionStorage.setItem('user', JSON.stringify(nerUser));
                                 this.$message({
-                                    message: '操作成功',
+                                    message: this.$t('operationissuccessful'),
                                     type: "success"
                                 });
                             } else {
@@ -898,7 +899,7 @@
                                 }
                                 sessionStorage.setItem('user', JSON.stringify(nerUser));
                                 this.$message({
-                                    message: '操作成功',
+                                    message: this.$t('operationissuccessful'),
                                     type: "success"
                                 });
                             } else {
@@ -976,7 +977,7 @@
             }
 
             // 判断是否为新用户
-            if(this.user.isFirstLogin == 1 && this.user.roleName == '超级管理员' && this.firstTourFalse != 'false' && this.user.createTime[0] > '2022') {
+            if(this.user.isFirstLogin == 1 && this.user.roleName == this.$t('role.superAdministrator') && this.firstTourFalse != 'false' && this.user.createTime[0] > '2022') {
                 var thats = this
                 this.tourFlg = true
                 setTimeout(() => {
@@ -999,6 +1000,13 @@
             if(this.user.dingdingUserid) {
                 this.setDDOpenData()
             }
+
+            // 中英文显示字符长度
+            if(this.language == '中文') {
+                this.textLength = 16
+            } else {
+                this.textLength = 17
+            }
         },
     };
 </script>

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/transferWorkingHours.vue

@@ -26,7 +26,7 @@
                         <el-form-item :label="$t('other.project')">
                             <el-select v-model="filterCriteriaForm.projectId" filterable clearable
                                 :placeholder="$t('defaultText.pleaseChoose')" size="small" @change="filterSelect()">
-                                <el-option v-for="item in allProjectList" :key="item.id" :label="item.projectName"
+                                <el-option v-for="item in allProjectList" :key="item.id" :label="item.projectName + item.projectCode"
                                     :value="item.id">
                                     <div class="omitText">
                                         <div class="left">{{ item.projectName }}</div>
@@ -86,7 +86,7 @@
                             <el-select v-model="transform.projectId" filterable clearable
                                 :placeholder="$t('defaultText.pleaseChoose')" size="small" :disabled="!tableSelected.length"
                                 @change="changeProject()">
-                                <el-option v-for="item in allProjectList" :key="item.id" :label="item.projectName"
+                                <el-option v-for="item in allProjectList" :key="item.id" :label="item.projectName + item.projectCode"
                                     :value="item.id">
                                     <div class="omitText">
                                         <div class="left">{{ item.projectName }}</div>