Lijy 4 mesiacov pred
rodič
commit
b5788590ff

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

@@ -81,7 +81,7 @@
                               <div class="text-[#B9B9B9] text-size-small w-2/5 truncate" v-if="item.ownerName">客户:{{
                                 item.customName }}</div>
                               <div class="text-[#B9B9B9] text-size-small w-2/5 truncate text-right" v-if="item.ownerName">负责人:  
-                                <TranslationComponent :openId="item.inchargerName" />
+                                <TranslationComponent :openId="item.ownerName" />
                               </div>
                             </div>
                           </div>
@@ -217,7 +217,7 @@
         @confirm="confirmTransfer" :before-close="dialogCloseBefo">
         <van-cell title="转移至" is-link @click="showSelect = true">
           <template #value>
-            {{ dialogSelection.label }}
+            <TranslationComponent :openId="dialogSelection.label" />
           </template>
         </van-cell>
         <div class="themeTextColor text-size-small pl-4 pt-2 pb-2">转移后,将看不到此{{ queryParameters?.name || '' }}</div>

+ 4 - 1
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/pages/pageComponents/business/businessInfo.vue

@@ -34,7 +34,7 @@
       :before-close="dialogCloseBefo">
       <van-cell title="转移至" is-link @click="showSelect = true">
         <template #value>
-          {{ dialogSelection.label }}
+          <TranslationComponent :openId="dialogSelection.label" />
         </template>
       </van-cell>
       <div class="themeTextColor text-size-small pl-4 pt-2 pb-2">转移后,将看不到此商机了</div>
@@ -218,6 +218,9 @@ function dialogCloseBefo(val) {
 }
 
 function getAllContactsList() {
+  if(!props.info.customerId) {
+    return
+  }
   requests.get(`${GET_CONTACTS_WITH_MORE_I_DS}?customerId=${props.info.customerId}`).then(({ data = [] }) => {
     let list = data.map(item => {
       return {

+ 3 - 2
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/pages/pageComponents/contacts/contactsInfo.vue

@@ -25,7 +25,8 @@
       :before-close="dialogCloseBefo">
       <van-cell title="转移至" is-link @click="showSelect = true">
         <template #value>
-          {{ dialogSelection.label }}
+          <!-- {{ dialogSelection.label }} -->
+          <TranslationComponent :openId="dialogSelection.label" />
         </template>
       </van-cell>
       <div class="themeTextColor text-size-small pl-4 pt-2 pb-2">转移后,将看不到此联系人了</div>
@@ -114,7 +115,7 @@ function confirmTransfer() {
     return toastText('请选择要转移的人员')
   }
 
-  requests.post(TRANSFER_CONTACT_PERSON, { ids: props.info.id, ownerId: dialogSelection.value.value }).then((res) => {
+  requests.post(TRANSFER_CONTACT_PERSON, { id: props.info.id, ownerId: dialogSelection.value.value }).then((res) => {
     toastSuccess('转移成功')
     showDialog.value = false
     setTimeout(() => {

+ 2 - 1
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/pages/pageComponents/customer/customerInfo.vue

@@ -29,7 +29,8 @@
       :before-close="dialogCloseBefo">
       <van-cell title="转移至" is-link @click="showSelect = true">
         <template #value>
-          {{ dialogSelection.label }}
+          <!-- {{ dialogSelection.label }} -->
+          <TranslationComponent :openId="dialogSelection.label" />
         </template>
       </van-cell>
       <div class="themeTextColor text-size-small pl-4 pt-2 pb-2">转移后,将看不到此客户了</div>

+ 2 - 1
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/pages/pageComponents/order/orderInfo.vue

@@ -57,7 +57,8 @@
       @confirm="confirmTransfer" :before-close="dialogCloseBefo">
       <van-cell title="转移至" is-link @click="showSelect = true">
         <template #value>
-          {{ dialogSelection.label }}
+          <!-- {{ dialogSelection.label }} -->
+          <TranslationComponent :openId="dialogSelection.label" />
         </template>
       </van-cell>
       <div class="themeTextColor text-size-small pl-4 pt-2 pb-2">转移后,将看不到此销售订单了</div>

+ 2 - 1
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/pages/pageComponents/product/productInfo.vue

@@ -35,7 +35,8 @@
       :before-close="dialogCloseBefo">
       <van-cell title="转移至" is-link @click="showSelect = true">
         <template #value>
-          {{ dialogSelection.label }}
+          <!-- {{ dialogSelection.label }} -->
+          <TranslationComponent :openId="dialogSelection.label" />
         </template>
       </van-cell>
       <div class="themeTextColor text-size-small pl-4 pt-2 pb-2">转移后,将看不到此产品了</div>

+ 1 - 0
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/pages/pageComponents/tasks/addEditor.vue

@@ -156,6 +156,7 @@
         <div></div>
       </van-form>
       <CustomerForm ref="formFormRef" :formJson="formJson" :formValue="formVal"></CustomerForm>
+      {{ formJson }}
     </div>
     <div class="mar-20px ">
       <van-button type="primary" @click="onSubmit" class="w-full">

+ 3 - 1
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/pages/pageComponents/tasks/detail.vue

@@ -65,7 +65,7 @@
     </van-popup>
 
     <van-popup v-model:show="showDatePicker" destroy-on-close position="bottom" :style="{ height: '50%' }">
-      <van-date-picker v-model="showDatePickerVal" @confirm="showPickerConfirm" @cancel="showDatePicker = false" />
+      <van-date-picker v-model="showDatePickerVal" @confirm="showPickerConfirm" :min-date="timeJudgment" @cancel="showDatePicker = false" />
     </van-popup>
   </div>
 </template>
@@ -105,6 +105,7 @@ const todaySDate = dayjs(new Date()).format('YYYY-MM-DD')
 const showStartDelayData = ref('');
 const showEndtDelayData = ref('');
 const showDateType = ref('');
+const timeJudgment = ref(new Date())
 
 watch(() => props.info, (newValue) => {
   initializeData(newValue.id)
@@ -126,6 +127,7 @@ function showPickerConfirm({ selectedValues }) {
 function showDatePickerCli(type) {
   showDateType.value = type
   const types = type == 'showStartDelayData' ? showStartDelayData.value : showEndtDelayData.value
+  timeJudgment.value = type == 'showStartDelayData' ? new Date : new Date(showStartDelayData.value)
   showDatePickerVal.value = types.split('-')
   showDatePicker.value = true
 }

+ 3 - 2
fhKeeper/formulahousekeeper/customerBuler-crm-h5/src/pages/pageComponents/thread/threadInfo.vue

@@ -28,7 +28,8 @@
       @confirm="confirmTransfer" :before-close="dialogCloseBefo">
       <van-cell title="转移至" is-link @click="showSelect = true">
         <template #value>
-          {{ dialogSelection.label }}
+          <!-- {{ dialogSelection.label }} -->
+          <TranslationComponent :openId="dialogSelection.label" />
         </template>
       </van-cell>
       <div class="themeTextColor text-size-small pl-4 pt-2 pb-2">转移后,将看不到此线索了</div>
@@ -140,7 +141,7 @@ function confirmTransfer() {
     return toastText('请选择要转移的人员')
   }
 
-  requests.post(TRANSFER_CLUES, { id: props.info.id, inchargerId: dialogSelection.value.value }).then((res) => {
+  requests.post(TRANSFER_CLUES, { ids: props.info.id, inchargerId: dialogSelection.value.value }).then((res) => {
     toastSuccess('转移成功')
     showDialog.value = false
     setTimeout(() => {

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

@@ -79,7 +79,8 @@
       <div class="p16 pt-0 pb-0 flex justify-between overflow-x-auto">
         <div class="flex">
           <template v-for="item in commonModulesList">
-            <div class="w80 bg-[#FFA359] h-28 rounded-md flex flex-col items-center justify-center" @click="jumpToAdd(item)">
+            <div class="w80 bg-[#FFA359] h-28 rounded-md flex flex-col items-center justify-center"
+              @click="jumpToAdd(item)">
               <div class="formImage">
                 <img class="w-full h-full" src="/src/assets/image/form.png">
               </div>
@@ -102,16 +103,21 @@
     <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">
-          <div class="flex flex-row items-center rounded-md p-4 bg-white mb-5" @click="toContactDetails(item)">
-            <div class="contactImage">
-              <img class="w-full h-full" src="/src/assets/image/topContacts.png">
-            </div>
-            <div class="flex-1">{{ item.name }}</div>
-            <div class="rightArrow">
-              <van-icon name="arrow" />
+        <template v-if="topContactsList && topContactsList.length > 0">
+          <template v-for="item in topContactsList">
+            <div class="flex flex-row items-center rounded-md p-4 bg-white mb-5" @click="toContactDetails(item)">
+              <div class="contactImage">
+                <img class="w-full h-full" src="/src/assets/image/topContacts.png">
+              </div>
+              <div class="flex-1">{{ item.name }}</div>
+              <div class="rightArrow">
+                <van-icon name="arrow" />
+              </div>
             </div>
-          </div>
+          </template>
+        </template>
+        <template v-else>
+          <van-empty description="暂无常用联系人" />
         </template>
       </div>
     </div>
@@ -219,6 +225,10 @@ function toContactDetails(item) {
 }
 
 function saveCommonlyUsedForms() {
+  if(commonExpressionsHaveBeenAdded.value.map(item => item.id).length <= 0) {
+    toastText(`最少请选择一个常用表单!`)
+    return
+  }
   const moduleIds = commonExpressionsHaveBeenAdded.value.map(item => item.id).join(',')
   requests.post(SAVE_COMMONLY_USED_FORMS, { moduleIds }).then((res) => {
     toastSuccess('保存成功')
@@ -319,8 +329,8 @@ function processForms() {
 }
 
 function getVisitorPlan() {
-  requests.post(GET_VISITOR_PLAN, { 
-    calenderDate: dayjs(dateConditions.value).format('YYYY-MM-DD') 
+  requests.post(GET_VISITOR_PLAN, {
+    calenderDate: dayjs(dateConditions.value).format('YYYY-MM-DD')
   }).then((res) => {
     visitorProgramList.value = res.data || []
   })

+ 9 - 1
fhKeeper/formulahousekeeper/customerBuler-crm-h5/vite.config.js

@@ -43,7 +43,15 @@ export default defineConfig({
     }
   },
   build: {
-    chunkSizeWarningLimit: 1600
+    chunkSizeWarningLimit: 1600,
+    rollupOptions: {
+      output: {
+        entryFileNames: `assets/[name].[hash].js`,
+        chunkFileNames: `assets/[name].[hash].js`,
+        assetFileNames: `assets/[name].[hash].[ext]`,
+       
+      }
+    },
   },
   vue: {
     compilerOptions: {

+ 1 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/components/svgIcon/index.vue

@@ -8,7 +8,7 @@
 </template>
 
 <script lang="ts" name="svgIcon" setup>
-import 'http://at.alicdn.com/t/c/font_4766628_7ekfe85jxt9.js' // 引入阿里图标库
+import 'https://at.alicdn.com/t/c/font_4766628_7ekfe85jxt9.js' // 引入阿里图标库
 import {computed} from 'vue';
 
 // 定义父组件传过来的值

+ 1 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/business/component/kanbanView.vue

@@ -182,7 +182,7 @@ defineExpose({
               </div>
               <div class="flex items-center mt-4">
                 <SvgIcon name="fuzeren" :size="20" color="#606266" class="mr-2" />
-                {{ subItem.inchargerName }}
+                <TextTranslation :translationValue="subItem.inchargerName" :translationTypes="'userName'" />
               </div>
               <div class="flex items-center mt-4">
                 ¥ {{ subItem.amountOfMoney || 0 }}

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

@@ -205,14 +205,13 @@
 
 <script lang="ts" setup>
 import { ref, reactive, onMounted, inject } from "vue";
-import type { ElTable, FormInstance, FormRules, UploadRequestOptions } from 'element-plus'
-import { useRouter, useRoute } from "vue-router";
-import { GETSYSFILED, MOD, GETPERSONNEL, GETGENERATEFOEM, GETBUSINESSLIST, UPDATEINSET, BUSINESSDETELE, BATCHTRANSFER, MODURL, tableColumn, BUSIESS_GETSATE, URL_IMPOERBUSINESS, BUSIESS_INFO, URL_EXPORTBUSINESS, TABLE_VIEW, KANBAN_VIEW } from './api'
+import type { ElTable, UploadRequestOptions } from 'element-plus'
+import { useRouter } from "vue-router";
+import { MOD, GETPERSONNEL, GETGENERATEFOEM, GETBUSINESSLIST, UPDATEINSET, BUSINESSDETELE, BATCHTRANSFER, MODURL, tableColumn, BUSIESS_GETSATE, URL_IMPOERBUSINESS, BUSIESS_INFO, URL_EXPORTBUSINESS, TABLE_VIEW, KANBAN_VIEW } from './api'
 import { GETTABLELIST } from '@/pages/product/api'
 import { post, get, uploadFile } from "@/utils/request";
-import { getAllListByCode, getFromValue, resetFromValue, getFirstDayOfMonth, createTaskFromType, formatDate, confirmAction, downloadTemplate, downloadFile, judgmentaAmounteEqual } from '@/utils/tools'
+import { getFromValue, resetFromValue, getFirstDayOfMonth, createTaskFromType, formatDate, confirmAction, downloadTemplate, downloadFile, judgmentaAmounteEqual } from '@/utils/tools'
 import { createTask } from '@/components/TaskModal/taskFunction'
-import { formatDateTime } from '@/utils/times'
 import { GenerateForm } from '@zmjs/form-design';
 import { tableShowOverflowTooltip } from '@/utils/globalVariables'
 import RelatedProducts from '@/components/relatedProducts/relatedProducts.vue'
@@ -223,7 +222,6 @@ import { GETTABLELISTPRODUCT } from "../order/api";
 import personnelSearch from '@/components/translationComponent/personnelSearch/personnelSearch.vue';
 import kanbanView from "./component/kanbanView.vue";
 
-const route = useRoute()
 const router = useRouter()
 const globalPopup = inject<GlobalPopup>('globalPopup')
 const businessTableRef = ref<InstanceType<typeof ElTable>>() // 商机table dom