Просмотр исходного кода

feat:“添加日语,优化添加子商家设备搜索功能”

soobin 1 год назад
Родитель
Сommit
90fed76cb7

Разница между файлами не показана из-за своего большого размера
+ 1476 - 0
src/assets/language/ja.json


+ 11 - 11
src/assets/language/zh.json

@@ -275,7 +275,7 @@
     "advancedParameterConfiguration": "进阶参数配置",
     "debuggingParameterConfiguration": "调试参数配置",
     "humidityParameterConfiguration": "湿度参数配置",
-    "tips":"提醒",
+    "tips": "提醒",
     "content": "是否切换开关?",
     "isUpdate": "是否更新",
     "to": "为",
@@ -378,7 +378,7 @@
     "clickSearch": "点击搜索",
     "spunSugar": "棉花糖",
     "popcorn": "爆米花",
-    "iceCream": "冰淇淋",    
+    "iceCream": "冰淇淋",
     "sz": "申泽",
     "sc": "七云",
     "startUp": "开机",
@@ -567,13 +567,13 @@
     "flowerTypePlace": "请选择花型种类"
   },
   "alarmClockSet": {
-    "monday":"一",
-    "tuesday":"二",
-    "wednesday":"三",
-    "thursday":"四",
-    "friday":"五",
-    "saturday":"六",
-    "sunday":"日",
+    "monday": "一",
+    "tuesday": "二",
+    "wednesday": "三",
+    "thursday": "四",
+    "friday": "五",
+    "saturday": "六",
+    "sunday": "日",
     "checkedAll": "全选"
   },
   "discountCode": {
@@ -689,7 +689,7 @@
       "nextTime": "下次再看",
       "roger": "不再显示"
     },
-    "week" : {
+    "week": {
       "mon": "周一",
       "tue": "周二",
       "wed": "周三",
@@ -1309,7 +1309,7 @@
     "replaysInSeconds": "秒后可重发",
     "emailRegistration": "邮箱注册",
     "phoneRegistration": "手机注册",
-    "twoTypedDiff" : "两次输入的密码不一致"
+    "twoTypedDiff": "两次输入的密码不一致"
   },
   "robotRanking": {
     "machineSalesRanking": "机器销售排行榜",

+ 7 - 1
src/common/js/utils.js

@@ -4463,5 +4463,11 @@ export const prefix = (url) => {
 // 获取当前语言
 export function navigatorLanguage() {
   const navigatorLanguage = (navigator.language || navigator.browserLanguage).toLowerCase()
-  return navigatorLanguage.substring(0, 2) == 'zh' ? 'zh' : 'en';
+  const lan = navigatorLanguage.substring(0, 2);
+  console.log("当前语言", lan);
+  if (lan != 'en') {
+    // 如果不为英文
+    return lan;
+  }
+  return 'en';
 }

+ 2 - 1
src/components/commom/kSelectPop/index.vue

@@ -134,8 +134,9 @@ export default {
     const toggle = (index) => {
       // 单个选中状态切换
       checkboxRefs.value[index].toggle();
+      console.log("tempOptions.value.length", tempOptions.value.length)
       // 如果选中的长度和选项的长度相等,那么全选要选中状态
-      if (checked.value.length === props.selOptions.length) {
+      if (checked.value.length === tempOptions.value.length) {
         allCheckRef.value.toggleAll(true);
       } else {
         allCheckRef.value.toggleAll(false);

+ 8 - 2
src/styles/login/index.less

@@ -22,12 +22,14 @@
         }
 
         .languageCon {
-            right: 10px;
+            width: 60px;
+            right: 15px;
             top: 10px;
             border: 1px solid #4d6add;
-            padding: 5px 10px;
+            padding: 2px 3px;
             border-radius: 10px;
             color: #4d6add;
+
         }
     }
 
@@ -180,4 +182,8 @@
 
     }
 
+}
+:root {
+    --van-width: auto;
+    --van-popover-action-width: var(--van-width);
 }

+ 4 - 0
src/utils/i18n.js

@@ -4,6 +4,7 @@ import { navigatorLanguage } from '../common/js/utils';
 import enUS from 'vant/es/locale/lang/en-US';
 // 引入简体中文语言包
 import zhCN from 'vant/es/locale/lang/zh-CN';
+import jaJP from 'vant/es/locale/lang/ja-JP';
 let language = 'en';
 // 储存语言,方便中英切换
 const curLang = localStorage.getItem('curLang');
@@ -19,6 +20,8 @@ import { Locale } from 'vant';
 // 判断中英文,切换vant语言包
 if (language === 'en') {
     Locale.use('en-US', enUS);
+} else if (language === 'ja') {
+    Locale.use('ja-JP', jaJP);
 } else {
     Locale.use('zh-CN', zhCN);
 }
@@ -33,5 +36,6 @@ export default createI18n({
     messages: {
         'en': require('../assets/language/en.json'), //英文包
         'zh': require('../assets/language/zh.json'), //中文包
+        'ja': require('../assets/language/ja.json'), //日文包
     }
 });

+ 27 - 16
src/views/accountPer/add.vue

@@ -63,7 +63,7 @@
         @close="roleShow = false" @finish="onRoleFinish" />
     </van-popup>
     <!-- 机器弹窗 -->
-    <kSelectPop @selconfirm="selEquipConfirm" ref="kSelectPopEquipRef" :selOptions="selEquipOptions"
+    <kSelectPop @selconfirm="selEquipConfirm" ref="kSelectPopEquipRef" :selOptions="selEquipOptions" @searchData="searchEquData"
       :selTitleAndName="['name', 'id']"></kSelectPop>
   </div>
 </template>
@@ -164,6 +164,11 @@ export default {
         showFailToast(data.message);
       }
     };
+
+    const searchEquData = (e) => {
+      // console.log("设备列表", e);
+      selEquipOptions.value = e;
+    }
     // 获取机器下拉
     const getEquipmentListFun = async () => {
       const { data } = await getEquipmentList({ adminId: user.id });
@@ -243,8 +248,8 @@ export default {
     };
     // 点击机器列表
     const busiEquipInpClk = () => {
-      if (addParams.equipmentIds) {
-        let list = addParams.equipmentIds.split(",");
+      if (cofficentForm.value.equipmentNames) {
+        let list = cofficentForm.value.equipmentNames.split(",");
         console.log(list, "list");
         kSelectPopEquipRef.value.selPopOpen(list);
       } else {
@@ -255,19 +260,24 @@ export default {
     const selEquipOptions = ref([]);
     const kSelectPopEquipRef = ref(null);
     // 机器弹窗的确定按钮
-    const selEquipConfirm = (e) => {
+    const selEquipConfirm = (e, e1) => {
+      console.log("e", e);
+      console.log("e1", e1);
       if (e.length > 0) {
-        const list = [];
-        // 根据id找到对应的name
-        selEquipOptions.value.forEach(item => {
-          e.forEach(item1 => {
-            if (item.id === item1) {
-              list.push(item.name);
-            }
-          })
-        })
-        cofficentForm.value.equipmentNames = list.join(",");
-        addParams.equipmentIds = e.join(",");
+        // const list = [];
+        // // 根据id找到对应的name
+        // selEquipOptions.value.forEach(item => {
+        //   e.forEach(item1 => {
+        //     if (item.id === item1) {
+        //       list.push(item.name);
+        //     }
+        //   })
+        // })
+        // console.log("list", list)
+        cofficentForm.value.equipmentNames = e.join(",");
+        addParams.equipmentIds = e1.join(",");
+        console.log("equipmentNames", cofficentForm.value.equipmentNames);
+        console.log("equipmentIds", addParams.equipmentIds);
       } else {
         cofficentForm.value.equipmentNames = "";
         addParams.equipmentIds = '';
@@ -294,7 +304,8 @@ export default {
       busiEquipInpClk,
       havePassword,
       passwordPlaceholder,
-      isUserName
+      isUserName,
+      searchEquData,
     };
   },
 };

+ 79 - 27
src/views/login.vue

@@ -4,10 +4,15 @@
     <s-header :name="sys ? sys.title : $t('public.sysName')" :noback="true"></s-header>
     <div class="loginLogoBox l-re">
       <div class="loginLogo"></div>
-      <div class="l-ab pointer languageCon" @click="languageClk">
-        <div class="c-text-b">
+      <div class="l-ab pointer languageCon">
+        <!-- <div class="c-text-b">
           {{ compLang }}
-        </div>
+        </div> -->
+        <van-popover :offset="[0, 8]" theme="dark" v-model:show="showPopover" :actions="actions" @select="onSelect">
+          <template #reference>
+            <van-button style="height: auto; color: #4d6add;" type="primary">{{ currentLan }}</van-button>
+          </template>
+        </van-popover>
       </div>
     </div>
     <div class="loginTitleBox l-flex-center">
@@ -64,40 +69,43 @@ import { Locale } from "vant";
 import enUS from "vant/es/locale/lang/en-US";
 // 引入简体中文语言包
 import zhCN from "vant/es/locale/lang/zh-CN";
+// 引入日文语言包
+import jaJP from 'vant/es/locale/lang/ja-JP';
 
 export default {
   setup() {
     let languageName = ref(getLocal("curLang"));
     const { locale, t } = useI18n();
     // 语言点击
-    const languageClk = () => {
-      if (languageName.value === "zh") {
-        locale.value = "en";
-        languageName.value = "en";
-        setLocal("curLang", "en");
-        // 切换vant语言包
-        Locale.use("en-US", enUS);
-      } else {
-        locale.value = "zh";
-        languageName.value = "zh";
-        setLocal("curLang", "zh");
-        // 切换vant语言包
-        Locale.use("zh-CN", zhCN);
-      }
-    };
-    const compLang = computed(() => {
-      if (languageName.value === "en") {
-        return "中文";
-      } else {
-        return "English";
-      }
-    });
+    // const languageClk = () => {
+    //   if (languageName.value === "zh") {
+    //     locale.value = "en";
+    //     languageName.value = "en";
+    //     setLocal("curLang", "en");
+    //     // 切换vant语言包
+    //     Locale.use("en-US", enUS);
+    //   } else {
+    //     locale.value = "zh";
+    //     languageName.value = "zh";
+    //     setLocal("curLang", "zh");
+    //     // 切换vant语言包
+    //     Locale.use("zh-CN", zhCN);
+    //   }
+    // };
+    // const compLang = computed(() => {
+    //   if (languageName.value === "en") {
+    //     return "中文";
+    //   } else {
+    //     return "English";
+    //   }
+    // });
     const checked = ref(false); // 是否记住密码状态
     const userName = ref("");
     const userPwd = ref("");
     const router = useRouter();
     const route = useRoute();
     const sys = ref(null);
+    const currentLan = ref(''); // 当前语言
     // 页面初始化
     onMounted(() => {
       // 加载样式
@@ -119,6 +127,13 @@ export default {
         userName.value = savedUsername;
         userPwd.value = savedPassword;
       }
+      if (languageName.value === "zh") {
+        currentLan.value = "中文";
+      } else if (languageName.value === "ja") {
+        currentLan.value = "日本語";
+      } else {
+        currentLan.value = "English";
+      }
     });
     const getSysFun = async () => {
       const { data } = await getSys({
@@ -130,6 +145,39 @@ export default {
         sys.value = data.data;
       }
     };
+
+    const showPopover = ref(false);
+
+    // 通过 actions 属性来定义菜单选项
+    const actions = [
+      { text: '中文' },
+      { text: 'English' },
+      { text: '日本語' },
+    ];
+    // 切换语言
+    const onSelect = (action) => {
+      // showToast(action.text);
+      currentLan.value = action.text;
+      if (action.text === "中文") {
+        locale.value = "zh";
+        languageName.value = "zh";
+        setLocal("curLang", "zh");
+        // 切换vant语言包
+        Locale.use("zh-CN", zhCN);
+      } else if (action.text === "English") {
+        locale.value = "en";
+        languageName.value = "en";
+        setLocal("curLang", "en");
+        // 切换vant语言包
+        Locale.use("en-US", enUS);
+      } else if (action.text === "日本語") {
+        locale.value = "ja";
+        languageName.value = "ja";
+        setLocal("curLang", "ja");
+        // 切换vant语言包
+        Locale.use("ja-JP", jaJP);
+      }
+    }
     // 登录
     const onSubmit = async (values) => {
       const { data } = await login({
@@ -214,12 +262,16 @@ export default {
       registerClick,
       forgetPassword,
       sys,
-      compLang,
-      languageClk,
+      // compLang,
+      // languageClk,
       isInWeChat,
       state,
       wxLoginHandler,
       getOpenid,
+      actions,
+      onSelect,
+      showPopover,
+      currentLan,
     };
   },
   components: {