Jelajahi Sumber

中外语切换

curry 3 bulan lalu
induk
melakukan
8f2306097f

+ 20 - 1
web/src/lang/en.js

@@ -18,6 +18,7 @@ export default {
   Port: 'Port',
   Enable: 'Enable',
   Connect: 'Connect',
+  ConnectSuccess: 'Connect Success',
   GuardAdd: 'Add Guard Booth',
   GuardEdit: 'Edit Guard Booth',
   BoothCode: 'Booth Code',
@@ -157,5 +158,23 @@ export default {
   barrierSystem: 'Smart Barrier System',
   placeholderUser: 'Please enter username',
   placeholderPwd: 'Please enter password',
-  placeholderCode: 'Please enter verification code'
+  placeholderCode: 'Please enter verification code',
+  login: 'Login',
+  selectParkArea: 'Please select parking area',
+  pleaseSelect: 'Please select',
+  serialName: 'Serial Port Name',
+  baudRate: 'Baud Rate',
+  inputPhone: 'Please enter phone number',
+  inputOwnerName: 'Please enter owner name',
+  editOwner: 'Edit Owner',
+  selectPavilion: 'Please select booth',
+  fillCompleteInfo: 'Please fill in all info except remarks',
+  allow: 'Allow',
+  disallow: 'Disallow',
+  enable: 'Enable',
+  disable: 'Disable',
+  currentDate: 'Current Date',
+  addFail: 'Add Failed',
+  vipFree: 'VIP Free',
+  vipNotFree: 'VIP Not Free'
 }

+ 20 - 1
web/src/lang/zh-CN.js

@@ -22,6 +22,7 @@ export default {
   Port: '端口',
   Enable: '是否启用',
   Connect: '连接',
+  ConnectSuccess: '连接成功',
   GuardAdd: '岗亭新增',
   GuardEdit: '岗亭编辑',
   BoothCode: '岗亭编码',
@@ -157,5 +158,23 @@ export default {
   barrierSystem: '智慧道闸系统',
   placeholderUser: '请输入用户名',
   placeholderPwd: '请输入密码',
-  placeholderCode: '请输入验证码'
+  placeholderCode: '请输入验证码',
+  login: '登录',
+  selectParkArea: '请选择停车区域',
+  pleaseSelect: '请选择',
+  serialName: '串口名称',
+  baudRate: '串口波特率',
+  inputPhone: '请输入手机号',
+  inputOwnerName: '请输入车主名称',
+  editOwner: '编辑车主',
+  selectPavilion: '请选择岗亭',
+  fillCompleteInfo: '请将除备注以外的信息填写完整',
+  allow: '允许',
+  disallow: '不允许',
+  enable: '启用',
+  disable: '不启用',
+  currentDate: '当前日期',
+  addFail: '新增失败',
+  vipFree: 'VIP免費',
+  vipNotFree: 'VIP不免費'
 }

+ 20 - 1
web/src/lang/zh-HK.js

@@ -22,6 +22,7 @@ export default {
   Port: '埠口',
   Enable: '是否啟用',
   Connect: '連接',
+  ConnectSuccess: '連接成功',
   GuardAdd: '崗亭新增',
   GuardEdit: '編輯崗亭',
   BoothCode: '崗亭編碼',
@@ -157,5 +158,23 @@ export default {
   barrierSystem: '智慧閘機系統',
   placeholderUser: '請輸入用戶名',
   placeholderPwd: '請輸入密碼',
-  placeholderCode: '請輸入驗證碼'
+  placeholderCode: '請輸入驗證碼',
+  login: '登入',
+  selectParkArea: '請選擇停車區域',
+  pleaseSelect: '請選擇',
+  serialName: '串口名稱',
+  baudRate: '串口波特率',
+  inputPhone: '請輸入手機號',
+  inputOwnerName: '請輸入車主名稱',
+  editOwner: '編輯車主',
+  selectPavilion: '請選擇崗亭',
+  fillCompleteInfo: '請填妥備註以外所有資料',
+  allow: '允許',
+  disallow: '不允許',
+  enable: '啟用',
+  disable: '不啟用',
+  currentDate: '當前日期',
+  addFail: '新增失敗',
+  vipFree: 'VIP免費',
+  vipNotFree: 'VIP不免費'
 }

+ 20 - 1
web/src/lang/zh-TW.js

@@ -18,6 +18,7 @@ export default {
   Port: '連接埠',
   Enable: '是否啟用',
   Connect: '連線',
+  ConnectSuccess: '連線成功',
   GuardAdd: '崗亭新增',
   GuardEdit: '編輯崗亭',
   BoothCode: '崗亭編號',
@@ -157,5 +158,23 @@ export default {
   barrierSystem: '智慧閘門系統',
   placeholderUser: '請輸入使用者名稱',
   placeholderPwd: '請輸入密碼',
-  placeholderCode: '請輸入驗證碼'
+  placeholderCode: '請輸入驗證碼',
+  login: '登入',
+  selectParkArea: '請選擇停車區域',
+  pleaseSelect: '請選擇',
+  serialName: '串列埠名稱',
+  baudRate: '串列埠鮑率',
+  inputPhone: '請輸入手機號',
+  inputOwnerName: '請輸入車主名稱',
+  editOwner: '編輯車主',
+  selectPavilion: '請選擇崗亭',
+  fillCompleteInfo: '請填寫備註以外之完整資訊',
+  allow: '允許',
+  disallow: '不允許',
+  enable: '啟用',
+  disable: '不啟用',
+  currentDate: '目前日期',
+  addFail: '新增失敗',
+  vipFree: 'VIP免費',
+  vipNotFree: 'VIP不免費'
 }

+ 1 - 1
web/src/view/layout/search/search.vue

@@ -47,7 +47,7 @@ defineOptions({
   name: 'BtnBox',
 })
 
-const languageType = ref('')
+const languageType = ref(localStorage.getItem('lang'))
 
 const changeLanguageType = (val) => {
   setLang(val)

+ 5 - 5
web/src/view/login/index.vue

@@ -20,7 +20,7 @@
               >
             </div>
             <div class="mb-9">
-              <p class="text-center text-4xl font-bold">智慧道闸系统</p>
+              <p class="text-center text-4xl font-bold">{{ $t.value.barrierSystem }}</p>
             </div>
             <el-form
               ref="loginForm"
@@ -36,7 +36,7 @@
                 <el-input
                   v-model="loginFormData.username"
                   size="large"
-                  placeholder="请输入用户名"
+                  :placeholder="$t.value.placeholderUser"
                   suffix-icon="user"
                 />
               </el-form-item>
@@ -49,7 +49,7 @@
                   show-password
                   size="large"
                   type="password"
-                  placeholder="请输入密码"
+                  :placeholder="$t.value.placeholderPwd"
                 />
               </el-form-item>
               <el-form-item
@@ -60,7 +60,7 @@
                 <div class="flex w-full justify-between">
                   <el-input
                     v-model="loginFormData.captcha"
-                    placeholder="请输入验证码"
+                    :placeholder="$t.value.placeholderCode"
                     size="large"
                     class="flex-1 mr-5"
                   />
@@ -81,7 +81,7 @@
                   type="primary"
                   size="large"
                   @click="submitForm"
-                >登 录</el-button>
+                >{{ $t.value.login }}</el-button>
               </el-form-item>
             </el-form>
           </div>

+ 14 - 15
web/src/view/parking/carOwner.vue

@@ -4,19 +4,18 @@
       <el-form-item>
         <el-input
           v-model="obtainData.owner_phone"
-          placeholder="请输入手机号"
+          :placeholder="$t.value.inputPhone"
         />
       </el-form-item>
       <el-form-item>
         <el-input
           v-model="obtainData.owner_name"
-          placeholder="请输入车主名称"
+          :placeholder="$t.value.inputOwnerName"
         />
       </el-form-item>
       <el-form-item>
         <el-select
           v-model="obtainData.is_vip"
-          placeholder="是否是vip"
           clearable
           @change="changeVip"
         >
@@ -40,7 +39,7 @@
       <el-form-item>
         <el-button
           icon="Plus"
-          @click="openCarOwner('新增车主','')"
+          @click="openCarOwner($t.value.AddCarOwner,'')"
         >{{ $t.value.new }}</el-button>
       </el-form-item>
     </el-form>
@@ -78,7 +77,7 @@
             :type="scope.row.is_vip ? 'success' : 'danger'"
             plain
           >
-            {{ scope.row.is_vip ? '已成为vip' : '未成为vip' }}
+            {{ scope.row.is_vip ? $t.value.isVip : $t.value.noVip }}
           </el-button>
         </template>
       </el-table-column>
@@ -94,19 +93,19 @@
             text
             type="primary"
             icon="MessageBox"
-          >备注</el-button>
+          >{{ $t.value.Remarks }}</el-button>
           <el-button
             icon="edit"
             text
             type="primary"
-            @click="openCarOwner('编辑车主', scope.row)"
-          >编辑</el-button>
+            @click="openCarOwner($t.value.editOwner, scope.row)"
+          >{{ $t.value.modify }}</el-button>
           <el-button
             icon="delete"
             text
             type="primary"
             @click="deleteCarOwner(scope.row)"
-          >删除</el-button>
+          >{{ $t.value.remove }}</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -156,11 +155,11 @@
             />
           </el-radio-group>
         </el-form-item>
-        <el-form-item label="vip过期时间:">
+        <el-form-item :label="'vip' + $t.value.Expire_Time + ':'">
           <el-date-picker
             v-model="carOwnerData.vip_expire_time"
             type="date"
-            placeholder="当前日期"
+            :placeholder="$t.value.currentDate"
           />
         </el-form-item>
       </el-form>
@@ -266,7 +265,7 @@ const deleteCarOwner = (data) => {
 const openCarOwner = (head, data) => {
   carOwnerShow.value = true
   carOwnerTitle.value = head
-  if (head === '新增车主') {
+  if (head === t.value.AddCarOwner) {
     carOwnerData.is_vip = false
     carOwnerData.owner_surname = ''
     carOwnerData.owner_name = ''
@@ -283,14 +282,14 @@ const openCarOwner = (head, data) => {
 }
 
 const carOwnerOperation = async() => {
-  if (carOwnerTitle.value === '新增车主') {
+  if (carOwnerTitle.value === t.value.AddCarOwner) {
     await addCarOwner(carOwnerData).then(res => {
       if (res.code === 0) {
-        ElMessage.success('添加成功')
+        ElMessage.success(t.value.addSuccess)
         carOwnerShow.value = false
         getCarOwnerList()
       } else {
-        ElMessage.error('添加失败')
+        ElMessage.error(t.value.addFail)
       }
     })
   } else {

+ 40 - 40
web/src/view/parking/parkingInfo.vue

@@ -206,7 +206,7 @@
                   plain
                   :type="scope.row.allow_temporary ? 'success' : 'danger'"
                 >
-                  {{ scope.row.allow_temporary ? '允许' : '不允许' }}
+                  {{ scope.row.allow_temporary ? $t.value.allow : $t.value.disallow }}
                 </el-button>
               </template>
             </el-table-column>
@@ -318,7 +318,7 @@
                   :type="scope.row.is_active ? 'success' : 'danger'"
                   plain
                 >
-                  {{ scope.row.is_active ? '启用' : '不启用' }}
+                  {{ scope.row.is_active ? $t.value.enable : $t.value.disable }}
                 </el-button>
               </template>
             </el-table-column>
@@ -375,7 +375,7 @@
         <el-form-item :label="$t.value.park +':'">
           <el-select
             v-model="positionRegionName"
-            placeholder="请选择停车区域"
+            :placeholder="$t.value.selectParkArea"
             @change="changePositionRegion"
           >
             <el-option
@@ -547,13 +547,13 @@
         </el-form-item>
         <el-form-item
           v-show="deviceData.connect_type === 'serial'"
-          label="串口名称:"
+          :label="$t.value.serialName + ':'"
         >
           <el-input v-model="deviceData.com_port" />
         </el-form-item>
         <el-form-item
           v-show="deviceData.connect_type === 'serial'"
-          label="串口波特率:"
+          :label="$t.value.baudRate + ':'"
         >
           <el-input
             v-model="deviceData.baud_rate"
@@ -677,32 +677,32 @@ const positionList = reactive([])
 const addPosition = () => {
   if (positionTitle.value === t.value.GuardAdd) {
     if (positionData.parking_lot_id === 0) {
-      ElMessage.error('请选择停车区域')
+      ElMessage.error($t.value.selectParkArea)
       return
     }
     if (positionData.booth_name === '' || positionData.booth_code === '' || positionData.ip_address === '') {
-      ElMessage.error('请将除备注以外的信息填写完整')
+      ElMessage.error(t.value.fillCompleteInfo)
       return
     }
     addGuardBooth(positionData).then(res => {
       if (res.code === 0) {
-        ElMessage.success('添加成功')
+        ElMessage.success(t.value.addSuccess)
         positionShow.value = false
         getGuardBoothList()
       }
     })
   } else {
     if (positionData.parking_lot_id === 0) {
-      ElMessage.error('请选择停车区域')
+      ElMessage.error($t.value.selectParkArea)
       return
     }
     if (positionData.booth_name === '' || positionData.booth_code === '' || positionData.ip_address === '') {
-      ElMessage.error('请将除备注以外的信息填写完整')
+      ElMessage.error(t.value.fillCompleteInfo)
       return
     }
     editGuardBooth(positionData).then(res => {
       if (res.code === 0) {
-        ElMessage.success('更新成功')
+        ElMessage.success(t.value.editSuccess)
         positionShow.value = false
         getGuardBoothList()
       }
@@ -771,11 +771,11 @@ const getGuardBoothList = () => {
 
 const delPosition = (id) => {
   ElMessageBox.confirm(
-    '确定要删除该岗亭吗?',
-    '提示',
+    t.value.deleteBoothTip,
+    t.value.tip,
     {
-      confirmButtonText: '确认',
-      cancelButtonText: '取消',
+      confirmButtonText: t.value.confirm,
+      cancelButtonText: t.value.Cancel,
       type: 'warning',
     }
   )
@@ -784,13 +784,13 @@ const delPosition = (id) => {
         if (res.code === 0) {
           ElMessage({
             type: 'success',
-            message: '删除成功',
+            message: t.value.deleteSuccess,
           })
           getGuardBoothList()
         } else {
           ElMessage({
             type: 'error',
-            message: '删除失败',
+            message: t.value.deleteFailed,
           })
         }
       })
@@ -798,7 +798,7 @@ const delPosition = (id) => {
     .catch(() => {
       ElMessage({
         type: 'info',
-        message: '取消删除',
+        message: t.value.cancelDelete,
       })
     })
 }
@@ -868,32 +868,32 @@ const openChannel = (head, data) => {
 const channelOperation = () => {
   if (channelTitle.value === t.value.addPassage) {
     if (channelData.booth_id === 0) {
-      ElMessage.error('请选择岗亭')
+      ElMessage.error(t.value.selectPavilion)
       return
     }
     if (channelData.channel_name === '' || channelData.channel_code === '') {
-      ElMessage.error('请将除备注以外的信息填写完整')
+      ElMessage.error(t.value.fillCompleteInfo)
       return
     }
     addChannel(channelData).then(res => {
       if (res.code === 0) {
-        ElMessage.success('添加成功')
+        ElMessage.success(t.value.addSuccess)
         channelShow.value = false
         getChannelList()
       }
     })
   } else {
     if (channelData.booth_id === 0) {
-      ElMessage.error('请选择岗亭')
+      ElMessage.error(t.value.selectPavilion)
       return
     }
     if (channelData.channel_name === '' || channelData.channel_code === '') {
-      ElMessage.error('请将除备注以外的信息填写完整')
+      ElMessage.error(t.value.fillCompleteInfo)
       return
     }
     editChannel(channelData).then(res => {
       if (res.code === 0) {
-        ElMessage.success('更新成功')
+        ElMessage.success(t.value.editSuccess)
         channelShow.value = false
         getChannelList()
       }
@@ -1016,7 +1016,7 @@ const deviceOperation = async() => {
   if (deviceTitle.value === t.value.addDevice) {
     await addDevice(deviceData).then(res => {
       if (res.code === 0) {
-        ElMessage.success('添加成功')
+        ElMessage.success(t.value.addSuccess)
         deviceShow.value = false
         getDeviceList()
       } else {
@@ -1026,11 +1026,11 @@ const deviceOperation = async() => {
   } else {
     await editDevice(deviceData).then(res => {
       if (res.code === 0) {
-        ElMessage.success('编辑成功')
+        ElMessage.success(t.value.editSuccess)
         deviceShow.value = false
         getDeviceList()
       } else {
-        ElMessage.error('编辑失败')
+        ElMessage.error(e.value.editFailed)
       }
     })
   }
@@ -1094,13 +1094,13 @@ const removeDevice = async(id) => {
         if (res.code === 0) {
           ElMessage({
             type: 'success',
-            message: '删除成功',
+            message: t.value.deleteSuccess,
           })
           getDeviceList()
         } else {
           ElMessage({
             type: 'error',
-            message: '删除失败',
+            message: t.value.deleteFailed,
           })
         }
       })
@@ -1108,7 +1108,7 @@ const removeDevice = async(id) => {
     .catch(() => {
       ElMessage({
         type: 'info',
-        message: '取消删除',
+        message: t.value.cancelDelete,
       })
     })
 }
@@ -1116,7 +1116,7 @@ const removeDevice = async(id) => {
 const connectDevice = async(data) => {
   await joinDevice(data.ID).then(res => {
     if (res.code === 0) {
-      ElMessage.success('连接成功')
+      ElMessage.success(t.value.ConnectSuccess)
     } else {
       ElMessage.error(res.data.msg)
     }
@@ -1166,7 +1166,7 @@ const regionOperation = async() => {
     await addPullOver(regionData).then(res => {
       if (res.code === 0) {
         getRegionList()
-        ElMessage.success('创建成功')
+        ElMessage.success(t.value.addSuccess)
         regionShow.value = false
       }
     })
@@ -1174,7 +1174,7 @@ const regionOperation = async() => {
     await editPullOver(regionData).then(res => {
       if (res.code === 0) {
         getRegionList()
-        ElMessage.success('修改成功')
+        ElMessage.success(t.value.editSuccess)
         regionShow.value = false
       }
     })
@@ -1183,11 +1183,11 @@ const regionOperation = async() => {
 
 const deleteRegion = (id) => {
   ElMessageBox.confirm(
-    '确定要删除该停车区域吗?',
-    '提示',
+    t.value.deleteBoothTip,
+    t.value.tip,
     {
-      confirmButtonText: '确认',
-      cancelButtonText: '取消',
+      confirmButtonText: t.value.Confirm,
+      cancelButtonText: t.value.Cancel,
       type: 'warning',
     }
   )
@@ -1196,13 +1196,13 @@ const deleteRegion = (id) => {
         if (res.code === 0) {
           ElMessage({
             type: 'success',
-            message: '删除成功',
+            message: t.value.deleteSuccess,
           })
           getRegionList()
         } else {
           ElMessage({
             type: 'error',
-            message: '删除失败',
+            message: t.value.deleteFailed,
           })
         }
       })
@@ -1210,7 +1210,7 @@ const deleteRegion = (id) => {
     .catch(() => {
       ElMessage({
         type: 'info',
-        message: '取消删除',
+        message: t.value.cancelDelete,
       })
     })
 }

+ 9 - 9
web/src/view/parking/pricing.vue

@@ -27,7 +27,7 @@
         <el-button
           type="primary"
           icon="Plus"
-          @click="openPricing('新增收费配置','')"
+          @click="openPricing($t.value.AddChargeConfig,'')"
         >{{ $t.value.new }}</el-button>
       </el-form-item>
     </el-form>
@@ -64,7 +64,7 @@
             :type="scope.row.is_vip_free ? 'success' : 'danger'"
             plain
           >
-            {{ scope.row.is_vip_free ? 'VIP免费' : 'VIP不免费' }}
+            {{ scope.row.is_vip_free ? $t.value.vipFree : $t.value.vipNotFree }}
           </el-button>
         </template>
       </el-table-column>
@@ -100,7 +100,7 @@
             icon="edit"
             text
             type="primary"
-            @click="openPricing('编辑收费配置', scope.row)"
+            @click="openPricing($t.value.EditChargeConfig, scope.row)"
           >{{ $t.value.modify }}</el-button>
           <el-button
             icon="delete"
@@ -137,7 +137,7 @@
         <el-form-item :label="$t.value.VehicleType + ':'">
           <el-select
             v-model="pricingData.vehicle_type_id"
-            placeholder="请选择车辆类型"
+            :placeholder="$t.value.carTypeSelect"
           >
             <el-option
               v-for="item in vehicleTypeList"
@@ -281,7 +281,7 @@ const deletePricing = (data) => {
 const openPricing = (title, data) => {
   pricingShow.value = true
   pricingTitle.value = title
-  if (title === '新增收费配置') {
+  if (title === t.value.AddChargeConfig) {
     Object.assign(pricingData, {
       id: 0,
       vehicle_type_id: '',
@@ -302,7 +302,7 @@ const openPricing = (title, data) => {
 // 提交
 const pricingOperation = async() => {
   if (!pricingData.vehicle_type_id) {
-    ElMessage.warning('请选择车辆类型')
+    ElMessage.warning(t.value.carTypeSelect)
     return
   }
 
@@ -320,10 +320,10 @@ const pricingOperation = async() => {
     description: pricingData.description
   }
 
-  if (pricingTitle.value === '新增收费配置') {
+  if (pricingTitle.value === t.value.AddChargeConfig) {
     await addPricing(params).then(res => {
       if (res.code === 0) {
-        ElMessage.success('新增成功')
+        ElMessage.success(t.value.addSuccess)
         pricingShow.value = false
         getPricingList()
       }
@@ -331,7 +331,7 @@ const pricingOperation = async() => {
   } else {
     await editPricing(params).then(res => {
       if (res.code === 0) {
-        ElMessage.success('修改成功')
+        ElMessage.success(t.value.editSuccess)
         pricingShow.value = false
         getPricingList()
       }