32 Commits 89926bce84 ... 3c3efb8831

Author SHA1 Message Date
  陈雪 3c3efb8831 ✨ feat(remark): 限制备注长度 1 week ago
  陈雪 35c5cf09a0 📃 docs(name): 修改项目名 1 week ago
  陈雪 958e410b15 📃 docs(doc): 修改版本号 1 week ago
  陈雪 11a4cb3b79 🐞 fix(order): 订单详情配送信息 1 week ago
  陈雪 6a9ce24cfd 🐞 fix(login): 登录验证码图标清理 1 week ago
  陈雪 811ea9baad ✨ feat(icon): 修改APP名称和图标 1 week ago
  陈雪 4fb2434c86 🐳 chore(git): 修改git提交范围 1 week ago
  陈雪 0a9ab48897 🐞 fix(order): 订单商品图片展示 1 week ago
  陈雪 c568d1655b 🐞 fix(cart): 购物车价格样式错误 1 week ago
  陈雪 0eba26f448 🐞 fix(sku): sku选择价格变化 1 week ago
  陈雪 b444ea2393 🐞 fix(login): 登录用户拦截 1 week ago
  陈雪 b6324888ed 🐳 chore(git): 修改git提交范围 1 week ago
  陈雪 af742a37e1 Merge branch 'panda-ui' 1 week ago
  suwenjiang d97e4cae3b Merge remote-tracking branch 'origin/master' into panda-ui 1 week ago
  陈雪 3a6d2d0704 Merge branch 'panda-ui' 1 week ago
  suwenjiang f7f9d0626a style: 1.修改退出登录的弹窗提示的文案,以及多语言的文案修改。 1 week ago
  陈雪 20d008b657 🐳 chore(build): 修改打包文件 1 week ago
  suwenjiang 491e9c3de3 Merge remote-tracking branch 'origin/master' into panda-ui 1 week ago
  suwenjiang 4c985a8ad5 style: 1.修改语言翻译的样式 1 week ago
  陈雪 2b9ef52376 ✨ feat(i18n): 添加翻译数据 1 week ago
  陈雪 6392641a31 Merge branch 'lyz_dev' 1 week ago
  陈雪 02fbda9514 Merge branch 'panda-ui' 1 week ago
  陈雪 2e0541f1c1 ✨ feat(i18n): 添加页面翻译 1 week ago
  suwenjiang 13ec6ff8c6 Merge remote-tracking branch 'origin/master' into panda-ui 1 week ago
  suwenjiang c13bfacc26 style: 1.提交支付方式的弹窗样式修改 1 week ago
  陈雪 c2d7623123 Merge branch 'master' of http://1.94.207.143:3000/chongqing/store-v1 1 week ago
  陈雪 1c5437bc54 🐞 fix(i18n): 翻译按钮展示位置处理 1 week ago
  suwenjiang fc3c245d48 Merge remote-tracking branch 'origin/master' into panda-ui 1 week ago
  suwenjiang a8817914f0 fix: 1.修改弹窗,还有订单列表得支付状态的样式。 1 week ago
  陈雪 a3c36eb449 🐞 fix(login): 登陆图片比例失真 1 week ago
  suwenjiang 33f7091db7 Merge remote-tracking branch 'origin/lyz_dev' into panda-ui 1 week ago
  suwenjiang be3378fac0 fix: 1.点餐得菜单列表得退出登录不能退出登录 1 week ago

+ 3 - 0
.gitignore

@@ -16,3 +16,6 @@ yarn-error.log*
 *.sln
 server/client/fuintCashier Setup 0.0.1.exe
 build/builder-effective-config.yaml
+build/*.exe
+build/*.blockmap
+build/*.yml

+ 0 - 220
build/builder-debug.yml

@@ -1,220 +0,0 @@
-x64:
-  firstOrDefaultFilePatterns:
-    - '!**/node_modules'
-    - '!build{,/**/*}'
-    - '!build{,/**/*}'
-    - dist/electron/**/*
-    - package.json
-    - '!**/*.{iml,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,suo,xproj,cc,d.ts,mk,a,o,forge-meta,pdb}'
-    - '!**/._*'
-    - '!**/electron-builder.{yaml,yml,json,json5,toml,ts}'
-    - '!**/{.git,.hg,.svn,CVS,RCS,SCCS,__pycache__,.DS_Store,thumbs.db,.gitignore,.gitkeep,.gitattributes,.npmignore,.idea,.vs,.flowconfig,.jshintrc,.eslintrc,.circleci,.yarn-integrity,.yarn-metadata.json,yarn-error.log,yarn.lock,package-lock.json,npm-debug.log,appveyor.yml,.travis.yml,circle.yml,.nyc_output,.husky,.github}'
-    - '!.yarn{,/**/*}'
-    - '!.editorconfig'
-    - '!.yarnrc.yml'
-  nodeModuleFilePatterns:
-    - '**/*'
-    - dist/electron/**/*
-nsis:
-  script: |-
-    !include "C:\A beijing\formal\pc\store-v1\node_modules\app-builder-lib\templates\nsis\include\StdUtils.nsh"
-    !addincludedir "C:\A beijing\formal\pc\store-v1\node_modules\app-builder-lib\templates\nsis\include"
-    !macro _isUpdated _a _b _t _f
-      ${StdUtils.TestParameter} $R9 "updated"
-      StrCmp "$R9" "true" `${_t}` `${_f}`
-    !macroend
-    !define isUpdated `"" isUpdated ""`
-
-    !macro _isForceRun _a _b _t _f
-      ${StdUtils.TestParameter} $R9 "force-run"
-      StrCmp "$R9" "true" `${_t}` `${_f}`
-    !macroend
-    !define isForceRun `"" isForceRun ""`
-
-    !macro _isKeepShortcuts _a _b _t _f
-      ${StdUtils.TestParameter} $R9 "keep-shortcuts"
-      StrCmp "$R9" "true" `${_t}` `${_f}`
-    !macroend
-    !define isKeepShortcuts `"" isKeepShortcuts ""`
-
-    !macro _isNoDesktopShortcut _a _b _t _f
-      ${StdUtils.TestParameter} $R9 "no-desktop-shortcut"
-      StrCmp "$R9" "true" `${_t}` `${_f}`
-    !macroend
-    !define isNoDesktopShortcut `"" isNoDesktopShortcut ""`
-
-    !macro _isDeleteAppData _a _b _t _f
-      ${StdUtils.TestParameter} $R9 "delete-app-data"
-      StrCmp "$R9" "true" `${_t}` `${_f}`
-    !macroend
-    !define isDeleteAppData `"" isDeleteAppData ""`
-
-    !macro _isForAllUsers _a _b _t _f
-      ${StdUtils.TestParameter} $R9 "allusers"
-      StrCmp "$R9" "true" `${_t}` `${_f}`
-    !macroend
-    !define isForAllUsers `"" isForAllUsers ""`
-
-    !macro _isForCurrentUser _a _b _t _f
-      ${StdUtils.TestParameter} $R9 "currentuser"
-      StrCmp "$R9" "true" `${_t}` `${_f}`
-    !macroend
-    !define isForCurrentUser `"" isForCurrentUser ""`
-
-    !macro addLangs
-      !insertmacro MUI_LANGUAGE "English"
-      !insertmacro MUI_LANGUAGE "German"
-      !insertmacro MUI_LANGUAGE "French"
-      !insertmacro MUI_LANGUAGE "SpanishInternational"
-      !insertmacro MUI_LANGUAGE "SimpChinese"
-      !insertmacro MUI_LANGUAGE "TradChinese"
-      !insertmacro MUI_LANGUAGE "Japanese"
-      !insertmacro MUI_LANGUAGE "Korean"
-      !insertmacro MUI_LANGUAGE "Italian"
-      !insertmacro MUI_LANGUAGE "Dutch"
-      !insertmacro MUI_LANGUAGE "Danish"
-      !insertmacro MUI_LANGUAGE "Swedish"
-      !insertmacro MUI_LANGUAGE "Norwegian"
-      !insertmacro MUI_LANGUAGE "Finnish"
-      !insertmacro MUI_LANGUAGE "Russian"
-      !insertmacro MUI_LANGUAGE "Portuguese"
-      !insertmacro MUI_LANGUAGE "PortugueseBR"
-      !insertmacro MUI_LANGUAGE "Polish"
-      !insertmacro MUI_LANGUAGE "Ukrainian"
-      !insertmacro MUI_LANGUAGE "Czech"
-      !insertmacro MUI_LANGUAGE "Slovak"
-      !insertmacro MUI_LANGUAGE "Hungarian"
-      !insertmacro MUI_LANGUAGE "Arabic"
-      !insertmacro MUI_LANGUAGE "Turkish"
-      !insertmacro MUI_LANGUAGE "Thai"
-      !insertmacro MUI_LANGUAGE "Vietnamese"
-    !macroend
-
-    !include "C:\Users\28162\AppData\Local\Temp\t-KFFj2U\0-messages.nsh"
-    !addplugindir /x86-unicode "C:\Users\28162\AppData\Local\electron-builder\Cache\nsis\nsis-resources-3.4.1\plugins\x86-unicode"
-
-    Var newStartMenuLink
-    Var oldStartMenuLink
-    Var newDesktopLink
-    Var oldDesktopLink
-    Var oldShortcutName
-    Var oldMenuDirectory
-
-    !include "common.nsh"
-    !include "MUI2.nsh"
-    !include "multiUser.nsh"
-    !include "allowOnlyOneInstallerInstance.nsh"
-
-    !ifdef INSTALL_MODE_PER_ALL_USERS
-      !ifdef BUILD_UNINSTALLER
-        RequestExecutionLevel user
-      !else
-        RequestExecutionLevel admin
-      !endif
-    !else
-      RequestExecutionLevel user
-    !endif
-
-    !ifdef BUILD_UNINSTALLER
-      SilentInstall silent
-    !else
-      Var appExe
-      Var launchLink
-    !endif
-
-    !ifdef ONE_CLICK
-      !include "oneClick.nsh"
-    !else
-      !include "assistedInstaller.nsh"
-    !endif
-
-    !insertmacro addLangs
-
-    !ifmacrodef customHeader
-      !insertmacro customHeader
-    !endif
-
-    Function .onInit
-      Call setInstallSectionSpaceRequired
-
-      SetOutPath $INSTDIR
-      ${LogSet} on
-
-      !ifmacrodef preInit
-        !insertmacro preInit
-      !endif
-
-      !ifdef DISPLAY_LANG_SELECTOR
-        !insertmacro MUI_LANGDLL_DISPLAY
-      !endif
-
-      !ifdef BUILD_UNINSTALLER
-        WriteUninstaller "${UNINSTALLER_OUT_FILE}"
-        !insertmacro quitSuccess
-      !else
-        !insertmacro check64BitAndSetRegView
-
-        !ifdef ONE_CLICK
-          !insertmacro ALLOW_ONLY_ONE_INSTALLER_INSTANCE
-        !else
-          ${IfNot} ${UAC_IsInnerInstance}
-            !insertmacro ALLOW_ONLY_ONE_INSTALLER_INSTANCE
-          ${EndIf}
-        !endif
-
-        !insertmacro initMultiUser
-
-        !ifmacrodef customInit
-          !insertmacro customInit
-        !endif
-
-        !ifmacrodef addLicenseFiles
-          InitPluginsDir
-          !insertmacro addLicenseFiles
-        !endif
-      !endif
-    FunctionEnd
-
-    !ifndef BUILD_UNINSTALLER
-      !include "installUtil.nsh"
-    !endif
-
-    Section "install" INSTALL_SECTION_ID
-      !ifndef BUILD_UNINSTALLER
-        # If we're running a silent upgrade of a per-machine installation, elevate so extracting the new app will succeed.
-        # For a non-silent install, the elevation will be triggered when the install mode is selected in the UI,
-        # but that won't be executed when silent.
-        !ifndef INSTALL_MODE_PER_ALL_USERS
-          !ifndef ONE_CLICK
-              ${if} $hasPerMachineInstallation == "1" # set in onInit by initMultiUser
-              ${andIf} ${Silent}
-                ${ifNot} ${UAC_IsAdmin}
-                  ShowWindow $HWNDPARENT ${SW_HIDE}
-                  !insertmacro UAC_RunElevated
-                  ${Switch} $0
-                    ${Case} 0
-                      ${Break}
-                    ${Case} 1223 ;user aborted
-                      ${Break}
-                    ${Default}
-                      MessageBox mb_IconStop|mb_TopMost|mb_SetForeground "Unable to elevate, error $0"
-                      ${Break}
-                  ${EndSwitch}
-                  Quit
-                ${else}
-                  !insertmacro setInstallModePerAllUsers
-                ${endIf}
-              ${endIf}
-          !endif
-        !endif
-        !include "installSection.nsh"
-      !endif
-    SectionEnd
-
-    Function setInstallSectionSpaceRequired
-      !insertmacro setSpaceRequired ${INSTALL_SECTION_ID}
-    FunctionEnd
-
-    !ifdef BUILD_UNINSTALLER
-      !include "uninstaller.nsh"
-    !endif

BIN
build/icons/256x256.png


BIN
build/icons/icon.icns


BIN
build/icons/icon.ico


+ 0 - 8
build/latest.yml

@@ -1,8 +0,0 @@
-version: 1.0.0
-files:
-  - url: fuint收银系统 Setup 1.0.0.exe
-    sha512: ME1irSAhybIuIELDr9OXEB1DYxrkLA8Az7LZ2KdVw96P7XAOPpXslgEmgfw4+2397ZgAmkXycU+5OwDtloQ1pg==
-    size: 75178399
-path: fuint收银系统 Setup 1.0.0.exe
-sha512: ME1irSAhybIuIELDr9OXEB1DYxrkLA8Az7LZ2KdVw96P7XAOPpXslgEmgfw4+2397ZgAmkXycU+5OwDtloQ1pg==
-releaseDate: '2025-02-27T08:50:47.465Z'

+ 6 - 6
package.json

@@ -1,9 +1,9 @@
 {
-  "name": "fuint-cashier",
-  "version": "1.0.0",
-  "author": "延禾技术",
-  "description": "海南延禾信息技术有限公司旗下收银系统",
-  "license": "MIT",
+  "name": "panda-cashier",
+  "version": "1.0.1",
+  "author": "qihuantravel",
+  "description": "奇幻之旅点餐客户端",
+  "private": true,
   "main": "./dist/electron/main.js",
   "scripts": {
     "dev": "cross-env TERGET_ENV=development node .electron-vue/dev-runner.js",
@@ -28,7 +28,7 @@
         "url": "http://127.0.0.1"
       }
     ],
-    "productName": "fuint收银系统",
+    "productName": "盼达点餐",
     "appId": "cn.fuint.cashier",
     "directories": {
       "output": "build"

+ 10 - 9
src/renderer/api/login.js

@@ -6,15 +6,16 @@ export function login(username, password, captchaCode, uuid) {
     username,
     password,
     captchaCode,
-    uuid
+    uuid,
+    loginFrom: 'cashier',
   }
   return request({
     url: 'backendApi/login/doLogin',
     headers: {
-      isToken: false
+      isToken: false,
     },
     method: 'post',
-    data: data
+    data: data,
   })
 }
 
@@ -22,7 +23,7 @@ export function login(username, password, captchaCode, uuid) {
 export function getInfo() {
   return request({
     url: 'backendApi/login/getInfo',
-    method: 'get'
+    method: 'get',
   })
 }
 
@@ -30,22 +31,22 @@ export function getInfo() {
 export function logout() {
   return request({
     url: 'backendApi/login/logout',
-    method: 'post'
+    method: 'post',
   })
 }
 
 // 获取验证码
 export function getCodeImg() {
   return request({
-    url: 'clientApi/captcha/getCode?v='+Math.random(),
-    method: 'get'
+    url: 'clientApi/captcha/getCode?v=' + Math.random(),
+    method: 'get',
   })
 }
 
 // 系统消息
-export function message () {
+export function message() {
   return request({
     url: 'clientApi/captcha/message',
-    method: 'get'
+    method: 'get',
   })
 }

BIN
src/renderer/assets/earth.png


+ 12 - 9
src/renderer/components/LangTab/index.vue

@@ -1,9 +1,11 @@
 <template>
   <el-dropdown type="primary" @command="handleCommand">
-    <div class="lang-change-btn">
-      <SvgIcon icon-class="earth" class-name="earth"></SvgIcon>
+    <div v-if="size === 'large'" class="lang-change-btn">
+      <img style="width: 24px; height: 24px" src="@/assets/earth.png" alt="" />
+      <SvgIcon icon-class="earth" class-name="svg-icon-earth"></SvgIcon>
       {{ curLang }}
     </div>
+    <img v-else style="width: 20px; height: 20px" src="@/assets/earth.png" alt="" />
     <el-dropdown-menu slot="dropdown">
       <el-dropdown-item v-for="lang in langs" :key="lang.value" :command="lang.value">
         {{ lang.text }}
@@ -21,6 +23,12 @@ export default {
   components: {
     SvgIcon,
   },
+  props: {
+    size: {
+      type: String,
+      default: 'large',
+    },
+  },
   data() {
     return {
       langs: [
@@ -45,7 +53,8 @@ export default {
   },
   computed: {
     curLang() {
-      return localStorage.getItem('lang') || 'zh-CN'
+      const curVal = localStorage.getItem('lang') || 'zh-CN'
+      return this.langs.find(({ value }) => value === curVal).text
     },
   },
   methods: {
@@ -73,14 +82,8 @@ export default {
   height: 54px;
   padding: 0px 16px;
   align-items: center;
-
   flex-shrink: 0;
   border-radius: 8px;
   border: 1px solid var(--e-6-e-6-e-6, #e6e6e6);
 }
-
-.svg-icon-earth {
-  width: 24px;
-  height: 24px;
-}
 </style>

+ 22 - 9
src/renderer/i18n/languages/en.json

@@ -137,7 +137,7 @@
   "ding-dan-xiang-qing": "Order Details",
   "ji-chu-xin-xi": "Basic Information",
   "xia-dan-zhuo-ma": "Order Table Code",
-  "bei-zhu-xin-xi": "Remark Information",
+  "bei-zhu-xin-xi": "Remark",
   "zhi-fu-xin-xi": "Payment Information",
   "jian-mian-jin-e": "Reduction Amount",
   "zhi-fu-shi-jian": "Payment Time",
@@ -162,8 +162,8 @@
   "fa-huo-shi-jian": "Shipping Time",
   "ying-wen": "English",
   "zhong-wen": "Chinese",
-  "wu-shang-pin-shou-kuan": "Non-commodity payment collection",
-  "shou-kuan-jin-e": "Payment amount:",
+  "wu-shang-pin-shou-kuan": "Non-commodity",
+  "shou-kuan-jin-e": "Amount:",
   "qing-shu-ru-shou-kuan-jin-e": "Please enter the payment amount",
   "dan-wei": "Unit",
   "qing-shu-ru-bei-zhu-xin-xi": "Please enter remarks",
@@ -186,7 +186,6 @@
   "li-jian": "Immediate Discount",
   "yuan": "Yuan",
   "qing-shu-ru-li-jian-jin-e": "Please enter the immediate discount amount",
-  "ying-fu-jin-e": "Payable Amount",
   "hui-yuan-hao": "Member Number",
   "ke-yong-yu-e": "Available Balance",
   "ke-yong-ji-fen": "Available Points",
@@ -204,7 +203,7 @@
   "ding-dan-guan-li": "Order Management",
   "tui-chu": "Exit",
   "qing-dian-ji-que-ding-shou-kuan": "Please click to confirm the payment collection!",
-  "que-ding-zhu-xiao-bing-tui-chu-xi-tong-ma": "Are you sure you want to log out and exit the system?",
+  "que-ding-zhu-xiao-bing-tui-chu-xi-tong-ma": "Are you sure you want to log out of the system?",
   "ti-shi": "Prompt",
   "tui-chu-cheng-gong": "Logged out successfully",
   "bao-qian-wei-cha-xun-dao-shang-pin-xin-xi": "Sorry, no product information was found!",
@@ -218,9 +217,9 @@
   "cashierDesk": "Cashier Desk",
   "hello": "Hello",
   "zong-jian-shu": "Total quantity",
-  "gua-dan": "Hang order",
-  "qu-dan": "Retrieve order",
-  "ti-jiao-jie-suan": "Submit settlement",
+  "gua-dan": "Hang",
+  "qu-dan": "Retrieve",
+  "ti-jiao-jie-suan": "Settlement",
   "cha-xun-shang-pin": "Search for products",
   "jia-ru-jie-suan": "Add to settlement",
   "gua-dan-lie-biao": "List of hanging orders",
@@ -242,5 +241,19 @@
   "zheng-zai-zhi-fu-zhong": "Payment in progress",
   "que-ren": "Confirm",
   "e-yu": "Russian",
-"sai-er-wei-ya-yu": "Serbian"
+  "sai-er-wei-ya-yu": "Serbian",
+  "que-ding-shan-chu": "Confirm deletion of \"",
+  "de-hui-yuan-xin-xi": "\" member information?",
+  "ti-shi-xiu-gai-hui-yuan-cheng-gong": "Notification: Member modification successful",
+  "ti-shi-xin-zeng-hui-yuan-cheng-gong": "Notification: New member added successfully",
+  "ci-cao-zuo-jiang-shan-chu-gua-dan-shi-fou-ji-xu": "This action will delete pending orders. Continue?",
+  "shan-chu-gua-dan-cheng-gong": "Pending orders deleted successfully",
+  "shi-fou-gua-dan": "Place pending order?",
+  "gua-dan-cheng-gong": "Pending order placed successfully",
+  "yi-qu-xiao-gua-dan": "Pending order canceled",
+  "jin-ru-shou-yin": "Enter POS System",
+  "xi-tong-she-zhi": "System Settings",
+  "ying-fu-jin-e": "Amount Due",
+  "yin-hang-zhi-fu": "Bank Payment",
+  "geng-xin-cai-pin": "Update dish?"
 }

+ 16 - 2
src/renderer/i18n/languages/ru.json

@@ -229,7 +229,7 @@
   "ding-dan-guan-li": "Управление заказами",
   "tui-chu": "Выйти",
   "qing-dian-ji-que-ding-shou-kuan": "Пожалуйста, нажмите на кнопку подтверждения приема денег!",
-  "que-ding-zhu-xiao-bing-tui-chu-xi-tong-ma": "Подтвердить удаление учетной записи и выход из системы?",
+  "que-ding-zhu-xiao-bing-tui-chu-xi-tong-ma": "Вы уверены, что хотите выйти из системы?",
   "ti-shi": "Подсказка",
   "tui-chu-cheng-gong": "Выход выполнен успешно",
   "bao-qian-wei-cha-xun-dao-shang-pin-xin-xi": "Извините, информация о товаре не найдена!",
@@ -240,5 +240,19 @@
   "qing-xian-tian-jia-jie-suan-shang-pin": "Пожалуйста, сначала добавьте товары для расчета!",
   "bao-qian-ding-dan-cao-zuo-yi-chang": "Извините, операция с заказом выполнена некорректно!",
   "e-yu": "Русский язык",
-"sai-er-wei-ya-yu": "Сербский язык"
+  "sai-er-wei-ya-yu": "Сербский язык",
+  "ying-fu-jin-e": "Сумма к оплате",
+  "que-ding-shan-chu": "Подтвердите удаление \"",
+  "de-hui-yuan-xin-xi": "\" информацию о члене?",
+  "ti-shi-xiu-gai-hui-yuan-cheng-gong": "Уведомление: Изменение данных участника выполнено успешно",
+  "ti-shi-xin-zeng-hui-yuan-cheng-gong": "Уведомление: Новый участник успешно добавлен",
+  "ci-cao-zuo-jiang-shan-chu-gua-dan-shi-fou-ji-xu": "Это действие удалит отложенные заказы. Продолжить?",
+  "shan-chu-gua-dan-cheng-gong": "Отложенные заказы успешно удалены",
+  "shi-fou-gua-dan": "Создать отложенный заказ?",
+  "gua-dan-cheng-gong": "Отложенный заказ успешно создан",
+  "yi-qu-xiao-gua-dan": "Отложенный заказ отменён",
+  "jin-ru-shou-yin": "Перейти в POS-систему",
+  "xi-tong-she-zhi": "Настройки системы",
+  "yin-hang-zhi-fu": "Банковский платёж",
+  "geng-xin-cai-pin": "Обновить блюдо?"
 }

+ 15 - 1
src/renderer/i18n/languages/sr-Latn.json

@@ -240,5 +240,19 @@
   "qing-xian-tian-jia-jie-suan-shang-pin": "Пожалуйста, прво додajte производе за рачун!",
   "bao-qian-ding-dan-cao-zuo-yi-chang": "Жао нам је, операција нараudzбе је неуспешна!",
   "e-yu": "Руски језик",
-"sai-er-wei-ya-yu": "Српски језик"
+  "sai-er-wei-ya-yu": "Српски језик",
+  "ying-fu-jin-e": "Iznos za plaćanje",
+  "que-ding-shan-chu": "Potvrdite brisanje \"",
+  "de-hui-yuan-xin-xi": "\" informacije o članu?",
+  "ti-shi-xiu-gai-hui-yuan-cheng-gong": "Obaveštenje: Uspešna izmena podataka člana",
+  "ti-shi-xin-zeng-hui-yuan-cheng-gong": "Obaveštenje: Novi član uspešno dodat",
+  "ci-cao-zuo-jiang-shan-chu-gua-dan-shi-fou-ji-xu": "Ova radnja će obrisati naloge na čekanju. Nastaviti?",
+  "shan-chu-gua-dan-cheng-gong": "Nalozi na čekanju uspešno obrisani",
+  "shi-fou-gua-dan": "Postaviti nalog na čekanje?",
+  "gua-dan-cheng-gong": "Nalog na čekanju uspešno postavljen",
+  "yi-qu-xiao-gua-dan": "Nalog na čekanju je otkazan",
+  "jin-ru-shou-yin": "Ulaz u POS sistem",
+  "xi-tong-she-zhi": "Sistemske postavke",
+  "yin-hang-zhi-fu": "Bankovna uplata",
+  "geng-xin-cai-pin": "Ažurirati jelo?"
 }

+ 16 - 2
src/renderer/i18n/languages/zh-CN.json

@@ -229,7 +229,7 @@
   "ding-dan-guan-li": "订单管理",
   "tui-chu": "退出",
   "qing-dian-ji-que-ding-shou-kuan": "请点击确定收款!",
-  "que-ding-zhu-xiao-bing-tui-chu-xi-tong-ma": "确定注销并退出系统吗?",
+  "que-ding-zhu-xiao-bing-tui-chu-xi-tong-ma": "确定退出系统吗?",
   "ti-shi": "提示",
   "tui-chu-cheng-gong": "退出成功",
   "bao-qian-wei-cha-xun-dao-shang-pin-xin-xi": "抱歉,未查询到商品信息!",
@@ -240,5 +240,19 @@
   "qing-xian-tian-jia-jie-suan-shang-pin": "请先添加结算商品!",
   "bao-qian-ding-dan-cao-zuo-yi-chang": "抱歉,订单操作异常!",
   "e-yu": "俄语",
-  "sai-er-wei-ya-yu": "塞尔维亚语"
+  "sai-er-wei-ya-yu": "塞尔维亚语",
+  "que-ding-shan-chu": "确定删除\"",
+  "de-hui-yuan-xin-xi": "的会员信息?",
+  "ti-shi-xiu-gai-hui-yuan-cheng-gong": "提示:修改会员成功",
+  "ti-shi-xin-zeng-hui-yuan-cheng-gong": "提示:新增会员成功",
+  "ci-cao-zuo-jiang-shan-chu-gua-dan-shi-fou-ji-xu": "此操作将删除挂单, 是否继续?",
+  "shan-chu-gua-dan-cheng-gong": "删除挂单成功",
+  "shi-fou-gua-dan": "是否挂单?",
+  "gua-dan-cheng-gong": "挂单成功",
+  "yi-qu-xiao-gua-dan": "已取消挂单",
+  "jin-ru-shou-yin": "进入收银",
+  "xi-tong-she-zhi": "系统设置",
+  "ying-fu-jin-e": "应付金额",
+  "yin-hang-zhi-fu": "银行支付",
+  "geng-xin-cai-pin": "更新菜品?"
 }

+ 0 - 7
src/renderer/icons/svg/earth.svg

@@ -1,7 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
-  <path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C17.5229 22 22 17.5229 22 12C22 6.47715 17.5229 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5229 6.47715 22 12 22Z" stroke="#333333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-  <path d="M2 12H22" stroke="#333333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-  <path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C14.2092 22 16 17.5229 16 12C16 6.47715 14.2092 2 12 2C9.79085 2 8 6.47715 8 12C8 17.5229 9.79085 22 12 22Z" stroke="#333333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-  <path d="M4.92871 5.07129C6.73836 6.88094 9.23836 8.00024 11.9998 8.00024C14.7612 8.00024 17.2612 6.88094 19.0709 5.07129" stroke="#333333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-  <path d="M19.0709 18.9289C17.2612 17.1193 14.7612 16 11.9998 16C9.23836 16 6.73836 17.1193 4.92871 18.9289" stroke="#333333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
-</svg>

+ 17 - 16
src/renderer/views/cashier/components/hangUpDialog.vue

@@ -88,9 +88,9 @@ export default {
     remove(hangNo) {
       const app = this
       const param = { hangNo: hangNo }
-      this.$confirm('此操作将删除挂单, 是否继续?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
+      this.$confirm(this.$t('ci-cao-zuo-jiang-shan-chu-gua-dan-shi-fou-ji-xu'), this.$t('ti-shi'), {
+        confirmButtonText: this.$t('que-ding'),
+        cancelButtonText: this.$t('qu-xiao'),
         type: 'warning',
       })
         .then(() => {
@@ -98,7 +98,7 @@ export default {
             .then((response) => {
               if (response) {
                 Message({
-                  message: '删除挂单成功',
+                  message: this.$t('shan-chu-gua-dan-cheng-gong'),
                   type: 'success',
                 })
                 app.getHangUpList()
@@ -111,23 +111,23 @@ export default {
         .catch(() => {
           this.$message({
             type: 'info',
-            message: '已取消删除',
+            message: this.$t('yi-qu-xiao-shan-chu'),
           })
         })
     },
     // 执行挂单
-     doHangUp(hangNo,msg='是否挂单?') {
+    doHangUp(hangNo, msg = this.$t('shi-fou-gua-dan')) {
       const app = this
       if (!app.cartList || app.cartList.length < 1) {
         Message({
-          message: '请先添加结算商品',
+          message: this.$t('qing-xian-tian-jia-jie-suan-shang-pin'),
           type: 'error',
         })
         return false
       }
-      this.$confirm(msg, '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
+      this.$confirm(this.$t('shi-fou-gua-dan'), this.$t('ti-shi'), {
+        confirmButtonText: this.$t('que-ding'),
+        cancelButtonText: this.$t('qu-xiao'),
         type: 'warning',
       })
         .then(() => {
@@ -144,7 +144,7 @@ export default {
             .then((response) => {
               if (response) {
                 Message({
-                  message: '操作成功',
+                  message: this.$t('gua-dan-cheng-gong'),
                   type: 'success',
                 })
                 app.getHangUpList()
@@ -159,7 +159,7 @@ export default {
         .catch(() => {
           this.$message({
             type: 'info',
-            message: '已取消挂单',
+            message: this.$t('yi-qu-xiao-gua-dan'),
           })
         })
     },
@@ -179,13 +179,12 @@ export default {
     // 取单
     getHangUp(hangNo, memberInfo) {
       //添加判断是否是一个桌子要更新菜品
-      console.log(this.hangNo,'this.hangNo', hangNo,'hangNo')
+      console.log(this.hangNo, 'this.hangNo', hangNo, 'hangNo')
 
-      if(this.hangNo === hangNo) {
+      if (this.hangNo === hangNo) {
         // this.$emit('updateHangNo')
         console.log(this.hangNo, hangNo)
-        this.doHangUp(hangNo,'更新菜品?')
-        console.log('执行')
+        this.doHangUp(hangNo, this.$t('geng-xin-cai-pin'))
         this.$emit('closeDialog', 'hangUpDialog')
 
         return
@@ -201,6 +200,8 @@ export default {
 <style lang="scss" scoped>
 .order-list {
   margin-top: 6px;
+  height: 50vh;
+  overflow-y: auto;
   .order-item {
     width: 20%;
     float: left;

+ 2 - 1
src/renderer/views/cashier/components/noGoodsCashier.vue

@@ -30,7 +30,8 @@
               type="textarea"
               rows="3"
               :placeholder="$t('qing-shu-ru-bei-zhu-xin-xi')"
-              maxlength="255"
+              maxlength="200"
+              show-word-limit
             />
           </el-form-item>
         </el-col>

+ 327 - 263
src/renderer/views/cashier/components/orderDetail.vue

@@ -1,96 +1,122 @@
 <template>
-  <el-dialog :title="$t('ding-dan-xiang-qing')" :visible.sync="showDialog" class="common-dialog" width="80%" @close="cancel" destroy-on-close append-to-body>
-    <div class="order-detail-container">
-      <div class="main-panel" v-if="orderInfo.id">
-        <div class="panel">
-          <div class="title">{{ $t('ji-chu-xin-xi') }}</div>
-          <div class="content">
-            <el-row class="row">
-              <el-col :span="8">
-                <span class="head">{{ $t('ding-dan-hao') }}:</span>
-                <span class="control-label">{{ orderInfo.orderSn }}</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('zong-jin-e') }}:</span>
-                <span class="control-label">¥{{ orderInfo.amount }}</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('ding-dan-zhuang-tai') }}:</span>
-                <span class="control-label normal-status">{{ orderInfo.statusText }}</span>
-              </el-col>
-            </el-row>
-            <el-row class="row">
-              <el-col :span="8">
-                <span class="head">{{ $t('ding-dan-lei-xing') }}:</span>
-                <span class="control-label">{{ orderInfo.typeName }}</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('ding-dan-shi-jian') }}:</span>
-                <span class="control-label">{{ orderInfo.createTime }}</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('xia-dan-zhuo-ma') }}:</span>
-                <span class="control-label">{{ orderInfo.tableInfo ? orderInfo.tableInfo.code : "-" }}</span>
-              </el-col>
-            </el-row>
-            <el-row class="row">
-              <el-col :span="8">
-                <span class="head">{{ $t('bei-zhu-xin-xi') }}:</span>
-                <span class="control-label">{{ orderInfo.remark ? orderInfo.remark : '-'}}</span>
-              </el-col>
-            </el-row>
-          </div>
+  <el-dialog
+    :title="$t('ding-dan-xiang-qing')"
+    :visible.sync="showDialog"
+    class="common-dialog"
+    width="80%"
+    @close="cancel"
+    destroy-on-close
+    append-to-body
+  >
+    <div class="main-panel" v-if="orderInfo.id">
+      <div class="panel">
+        <div class="title">{{ $t('ji-chu-xin-xi') }}</div>
+        <div class="content">
+          <el-row class="row">
+            <el-col :span="8">
+              <span class="head">{{ $t('ding-dan-hao') }}:</span>
+              <span class="control-label">{{ orderInfo.orderSn }}</span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('zong-jin-e') }}:</span>
+              <span class="control-label">¥{{ orderInfo.amount }}</span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('ding-dan-zhuang-tai') }}:</span>
+              <!-- <span :class="`control-label ${changeClassName(orderInfo.statusText)}`">
+                {{ orderInfo.statusText }}
+              </span> -->
+              <span class="control-label normal-status">{{ orderInfo.statusText }}</span>
+            </el-col>
+          </el-row>
+          <el-row class="row">
+            <el-col :span="8">
+              <span class="head">{{ $t('ding-dan-lei-xing') }}:</span>
+              <span class="control-label">{{ orderInfo.typeName }}</span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('ding-dan-shi-jian') }}:</span>
+              <span class="control-label">{{ orderInfo.createTime }}</span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('xia-dan-zhuo-ma') }}:</span>
+              <span class="control-label">
+                {{ orderInfo.tableInfo ? orderInfo.tableInfo.code : '-' }}
+              </span>
+            </el-col>
+          </el-row>
+          <el-row class="row">
+            <el-col :span="24">
+              <span class="head">{{ $t('bei-zhu-xin-xi') }}:</span>
+              <span class="control-label">{{ orderInfo.remark ? orderInfo.remark : '-' }}</span>
+            </el-col>
+          </el-row>
         </div>
-        <div class="panel">
-          <div class="title">{{ $t('zhi-fu-xin-xi') }}</div>
-          <div class="content">
-            <el-row class="row">
-              <el-col :span="8">
-                <span class="head">{{ $t('zhi-fu-jin-e') }}:</span>
-                <span class="control-label">¥{{ orderInfo.payAmount.toFixed(2) }}</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('zhi-fu-zhuang-tai') }}:</span>
-                <span class="control-label payed-status" v-if="orderInfo.payStatus == 'B'">{{ getName(payStatusList, orderInfo.payStatus) }}</span>
-                <span class="control-label normal-status" v-else>{{ getName(payStatusList, orderInfo.payStatus) }}</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('jian-mian-jin-e') }}:</span>
-                <span class="control-label">¥{{ orderInfo.discount.toFixed(2) }}</span>
-              </el-col>
-            </el-row>
-            <el-row class="row">
-              <el-col :span="8">
-                <span class="head">{{ $t('zhi-fu-fang-shi') }}:</span>
-                <span class="control-label">{{ getName(payTypeList, orderInfo.payType) }}</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('zhi-fu-shi-jian') }}:</span>
-                <span class="control-label">{{ orderInfo.payTime ? orderInfo.payTime : '-' }}</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('shi-yong-qia-quan') }}:</span>
-                <span class="control-label">{{ orderInfo.couponInfo ? '¥' + orderInfo.couponInfo.amount + '(' + orderInfo.couponInfo.name + ')' : '-' }}</span>
-              </el-col>
-            </el-row>
-            <el-row class="row">
-              <el-col :span="8">
-                <span class="head">{{ $t('shi-yong-ji-fen') }}:</span>
-                <span class="control-label">{{ orderInfo.usePoint ? orderInfo.usePoint : 0 }}</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('ji-fen-jin-e') }}:</span>
-                <span class="control-label">¥{{ orderInfo.pointAmount.toFixed(2) }}</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('pei-song-fei-yong') }}:</span>
-                <span class="control-label">¥{{ orderInfo.deliveryFee.toFixed(2) }}</span>
-              </el-col>
-            </el-row>
-          </div>
+      </div>
+      <div class="panel">
+        <div class="title">{{ $t('zhi-fu-xin-xi') }}</div>
+        <div class="content">
+          <el-row class="row">
+            <el-col :span="8">
+              <span class="head">{{ $t('zhi-fu-jin-e') }}:</span>
+              <span class="control-label">¥{{ orderInfo.payAmount.toFixed(2) }}</span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('zhi-fu-zhuang-tai') }}:</span>
+              <!-- <span class="control-label payed-status" v-if="orderInfo.payStatus == 'B'">
+                {{ getName(payStatusList, orderInfo.payStatus) }}
+              </span>
+              <span class="control-label normal-status" v-else>
+                {{ getName(payStatusList, orderInfo.payStatus) }}
+              </span> -->
+
+              <span :class="`control-label ${changeClassName(orderInfo.payStatus)}`">
+                {{ getName(payStatusList, orderInfo.payStatus) }}
+              </span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('jian-mian-jin-e') }}:</span>
+              <span class="control-label">¥{{ orderInfo.discount.toFixed(2) }}</span>
+            </el-col>
+          </el-row>
+          <el-row class="row">
+            <el-col :span="8">
+              <span class="head">{{ $t('zhi-fu-fang-shi') }}:</span>
+              <span class="control-label">{{ getName(payTypeList, orderInfo.payType) }}</span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('zhi-fu-shi-jian') }}:</span>
+              <span class="control-label">{{ orderInfo.payTime ? orderInfo.payTime : '-' }}</span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('shi-yong-qia-quan') }}:</span>
+              <span class="control-label">
+                {{
+                  orderInfo.couponInfo
+                    ? '¥' + orderInfo.couponInfo.amount + '(' + orderInfo.couponInfo.name + ')'
+                    : '-'
+                }}
+              </span>
+            </el-col>
+          </el-row>
+          <el-row class="row">
+            <el-col :span="8">
+              <span class="head">{{ $t('shi-yong-ji-fen') }}:</span>
+              <span class="control-label">{{ orderInfo.usePoint ? orderInfo.usePoint : 0 }}</span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('ji-fen-jin-e') }}:</span>
+              <span class="control-label">¥{{ orderInfo.pointAmount.toFixed(2) }}</span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('pei-song-fei-yong') }}:</span>
+              <span class="control-label">¥{{ orderInfo.deliveryFee.toFixed(2) }}</span>
+            </el-col>
+          </el-row>
         </div>
+      </div>
 
-        <div class="panel">
+      <!-- <div class="panel">
           <div class="title">{{ $t('hui-yuan-xin-xi') }}</div>
           <div class="content">
             <el-row class="row">
@@ -115,89 +141,106 @@
               </el-col>
             </el-row>
           </div>
-        </div>
+        </div> -->
 
-        <div class="panel">
-          <div class="title">{{ $t('shang-pin-xin-xi') }}</div>
-          <div class="content">
-            <el-table ref="tables" v-loading="loading" :data="orderInfo.goods">
-              <el-table-column :label="$t('shang-pin-ID')" prop="id" width="66"/>
-              <el-table-column :label="$t('tu-pian')" align="center" prop="name">
-                <template slot-scope="scope">
-                  <img class="goods-logo" :src="scope.row.image"/>
-                </template>
-              </el-table-column>
-              <el-table-column :label="$t('ming-cheng')" align="left" prop="name">
-                <template slot-scope="scope">
-                  <span class="goods-name">{{ scope.row.name }}</span>
-                </template>
-              </el-table-column>
-              <el-table-column :label="$t('gui-ge')" align="center">
-                <template slot-scope="scope">
-                  <span v-if="scope.row.specList">
-                    <span class="spec-item" v-for="spec in scope.row.specList">{{ spec.specValue }}</span>
+      <div class="panel">
+        <div class="title">{{ $t('shang-pin-xin-xi') }}</div>
+        <div class="content">
+          <el-table ref="tables" v-loading="loading" :data="orderInfo.goods">
+            <el-table-column :label="$t('shang-pin-ID')" prop="id" width="66" />
+            <el-table-column :label="$t('tu-pian')" align="center" prop="name">
+              <template slot-scope="scope">
+                <img class="goods-logo" style="margin: 0 auto" :src="scope.row.image" />
+              </template>
+            </el-table-column>
+            <el-table-column :label="$t('ming-cheng')" align="left" prop="name">
+              <template slot-scope="scope">
+                <span class="goods-name">{{ scope.row.name }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column :label="$t('gui-ge')" align="center">
+              <template slot-scope="scope">
+                <span v-if="scope.row.specList">
+                  <span class="spec-item" v-for="spec in scope.row.specList">
+                    {{ spec.specValue }}
                   </span>
-                  <span v-else>--</span>
-                </template>
-              </el-table-column>
-              <el-table-column :label="$t('jia-ge')" align="center" prop="price" />
-              <el-table-column :label="$t('you-hui-jin-e')" align="center" prop="discount" />
-              <el-table-column :label="$t('shu-liang')" align="center" prop="num" />
-            </el-table>
-          </div>
+                </span>
+                <span v-else>--</span>
+              </template>
+            </el-table-column>
+            <el-table-column :label="$t('jia-ge')" align="center" prop="price" />
+            <el-table-column :label="$t('you-hui-jin-e')" align="center" prop="discount" />
+            <el-table-column :label="$t('shu-liang')" align="center" prop="num" />
+          </el-table>
         </div>
+      </div>
 
-        <div class="panel" v-if="orderInfo.type=='goods'">
-          <div class="title">{{ $t('pei-song-xin-xi') }}</div>
-          <div class="content">
-            <el-row class="row">
-              <el-col :span="8">
-                <span class="head">{{ $t('pei-song-fang-shi') }}:</span>
-                <span class="control-label" v-if="orderInfo.orderMode == 'oneself'">{{ $t('men-dian-zi-ti') }}</span>
-                <span class="control-label" v-else>{{ $t('wu-liu-pei-song') }}</span>
-              </el-col>
-              <el-col :span="16" v-if="orderInfo.orderMode == 'oneself'">
-                <span class="head">{{ $t('zi-ti-di-zhi') }}:</span>
-                <span class="control-label">{{orderInfo.storeInfo.name}} {{orderInfo.storeInfo.phone}} {{orderInfo.storeInfo.address}}</span>
-              </el-col>
-              <el-col :span="8" v-if="orderInfo.orderMode == 'express' && orderInfo.address">
-                <span class="head">{{ $t('shou-huo-ren') }}:</span>
-                <span class="control-label">{{ orderInfo.address.name ? orderInfo.address.name : '--' }}</span>
-              </el-col>
-              <el-col :span="8" v-if="orderInfo.orderMode == 'express' && orderInfo.address">
-                <span class="head">{{ $t('lian-xi-dian-hua') }}:</span>
-                <span class="control-label">{{ orderInfo.address.mobile ? orderInfo.address.mobile : '-' }}</span>
-              </el-col>
-            </el-row>
-            <el-row class="row">
-              <el-col :span="24" v-if="orderInfo.orderMode == 'express' && orderInfo.address">
-                <span class="head">{{ $t('xiang-xi-di-zhi') }}:</span>
-                <span class="control-label">{{orderInfo.address.provinceName}}{{orderInfo.address.cityName}}{{orderInfo.address.regionName}}{{orderInfo.address.detail}}</span>
-              </el-col>
-            </el-row>
-          </div>
+      <!-- <div class="panel" v-if="orderInfo.type == 'goods'">
+        <div class="title">{{ $t('pei-song-xin-xi') }}</div>
+        <div class="content">
+          <el-row class="row">
+            <el-col :span="8">
+              <span class="head">{{ $t('pei-song-fang-shi') }}:</span>
+              <span class="control-label" v-if="orderInfo.orderMode == 'oneself'">
+                {{ $t('men-dian-zi-ti') }}
+              </span>
+              <span class="control-label" v-else>{{ $t('wu-liu-pei-song') }}</span>
+            </el-col>
+            <el-col :span="16" v-if="orderInfo.orderMode == 'oneself'">
+              <span class="head">{{ $t('zi-ti-di-zhi') }}:</span>
+              <span class="control-label">
+                {{ orderInfo.storeInfo.name }} {{ orderInfo.storeInfo.phone }}
+                {{ orderInfo.storeInfo.address }}
+              </span>
+            </el-col>
+            <el-col :span="8" v-if="orderInfo.orderMode == 'express' && orderInfo.address">
+              <span class="head">{{ $t('shou-huo-ren') }}:</span>
+              <span class="control-label">
+                {{ orderInfo.address.name ? orderInfo.address.name : '--' }}
+              </span>
+            </el-col>
+            <el-col :span="8" v-if="orderInfo.orderMode == 'express' && orderInfo.address">
+              <span class="head">{{ $t('lian-xi-dian-hua') }}:</span>
+              <span class="control-label">
+                {{ orderInfo.address.mobile ? orderInfo.address.mobile : '-' }}
+              </span>
+            </el-col>
+          </el-row>
+          <el-row class="row">
+            <el-col :span="24" v-if="orderInfo.orderMode == 'express' && orderInfo.address">
+              <span class="head">{{ $t('xiang-xi-di-zhi') }}:</span>
+              <span class="control-label">
+                {{ orderInfo.address.provinceName }}{{ orderInfo.address.cityName
+                }}{{ orderInfo.address.regionName }}{{ orderInfo.address.detail }}
+              </span>
+            </el-col>
+          </el-row>
         </div>
+      </div> -->
 
-        <div class="panel" v-if="orderInfo.expressInfo">
-          <div class="title">{{ $t('wu-liu-xin-xi') }}</div>
-          <div class="content">
-            <el-row class="row">
-              <el-col :span="8">
-                <span class="head">{{ $t('wu-liu-gong-si') }}:</span>
-                <span class="control-label" v-if="orderInfo.expressInfo.expressCompany">{{ orderInfo.expressInfo.expressCompany }}</span>
-                <span class="control-label" v-else>--</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('wu-liu-dan-hao') }}:</span>
-                <span class="control-label" v-if="orderInfo.expressInfo.expressNo">{{ orderInfo.expressInfo.expressNo }}</span>
-                <span class="control-label" v-else>--</span>
-              </el-col>
-              <el-col :span="8">
-                <span class="head">{{ $t('fa-huo-shi-jian') }}:</span>
-                <span class="control-label">{{orderInfo.expressInfo.expressTime}}</span>
-              </el-col>
-            </el-row>
-          </div>
+      <div class="panel" v-if="orderInfo.expressInfo">
+        <div class="title">{{ $t('wu-liu-xin-xi') }}</div>
+        <div class="content">
+          <el-row class="row">
+            <el-col :span="8">
+              <span class="head">{{ $t('wu-liu-gong-si') }}:</span>
+              <span class="control-label" v-if="orderInfo.expressInfo.expressCompany">
+                {{ orderInfo.expressInfo.expressCompany }}
+              </span>
+              <span class="control-label" v-else>--</span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('wu-liu-dan-hao') }}:</span>
+              <span class="control-label" v-if="orderInfo.expressInfo.expressNo">
+                {{ orderInfo.expressInfo.expressNo }}
+              </span>
+              <span class="control-label" v-else>--</span>
+            </el-col>
+            <el-col :span="8">
+              <span class="head">{{ $t('fa-huo-shi-jian') }}:</span>
+              <span class="control-label">{{ orderInfo.expressInfo.expressTime }}</span>
+            </el-col>
+          </el-row>
         </div>
       </div>
     </div>
@@ -205,18 +248,18 @@
 </template>
 
 <script>
-import { getOrderInfo } from "@/api/order";
+import { getOrderInfo } from '@/api/order'
 export default {
-  name: "orderDetail",
+  name: 'orderDetail',
   props: {
-    showDialog:{
-      type:[Boolean],
-      default:()=>false
+    showDialog: {
+      type: [Boolean],
+      default: () => false,
+    },
+    orderId: {
+      type: [String],
+      default: () => '',
     },
-    orderId:{
-      type:[String],
-      default:()=> ''
-    }
   },
   data() {
     return {
@@ -224,108 +267,129 @@ export default {
       loading: false,
       payTypeList: [],
       payStatusList: [],
-      orderInfo: { payAmount: 0, discount: 0, pointAmount: 0, userInfo: {} }
-    };
+      orderInfo: { payAmount: 0, discount: 0, pointAmount: 0, userInfo: {} },
+    }
   },
   watch: {
     showDialog(value) {
       if (value) {
-          this.getOrderInfo(this.orderId);
+        this.getOrderInfo(this.orderId)
       }
-    }
+    },
   },
   methods: {
     // 查询配置
     getOrderInfo(orderId) {
-      this.loading = true;
-      getOrderInfo(orderId).then(response => {
-          this.loading = false;
-          this.orderInfo = response.data.orderInfo;
-          this.payTypeList = response.data.payTypeList;
-          this.payStatusList = response.data.payStatusList;
-        }
-      ).catch(() => {
-         // empty
-      });
+      this.loading = true
+      getOrderInfo(orderId)
+        .then((response) => {
+          this.loading = false
+          this.orderInfo = response.data.orderInfo
+          this.payTypeList = response.data.payTypeList
+          this.payStatusList = response.data.payStatusList
+        })
+        .catch(() => {
+          // empty
+        })
     },
     // 取消按钮
     cancel() {
-      this.$emit('closeDialog');
-    }
-  }
-};
+      this.$emit('closeDialog')
+    },
+    // 支付状态得class
+    changeClassName(status) {
+      if (status == 'B' || status == '已支付') {
+        return 'payed-status'
+      } else if (status == 'A' || status == '待支付') {
+        return ' unpaid'
+      } else {
+        return 'normal-status'
+      }
+    },
+  },
+}
 </script>
 <style rel="stylesheet/scss" lang="scss">
-    .main-panel {
-         margin: 0px;
-         padding: 5px;
-        .panel {
-            border: solid 1px #cccccc;
-            min-height: 100px;
-            border-radius: 2px;
-            margin-top: 10px;
-            .title {
-               font-weight: bold;
-               margin-top: 10px;
-               margin-left: 5px;
-               padding-left: 5px;
-               color: #333333;
-               border-left: 5px solid rgb(254,106,0);
-            }
-           .content {
-              padding: 20px;
-              .goods-logo {
-                 width: 45px;
-                 height: 45px;
-                 border: solid 1px #cccccc;
-              }
-             .spec-item {
-                 color: #666666;
-                 background: #ffffff;
-                 border: #666666 solid 1px;
-                 border-radius: 20px;
-                 padding: 2px 8px 2px 8px;
-                 margin-right: 5px;
-             }
-              .row {
-                min-height: 40px;
-                verticle-align: middle;
-                display: flex;
-                line-height: 40px;
-                .payed-status {
-                    color: #52c41a;
-                    background: #f6ffed;
-                    border: #b7eb8f solid 1px;
-                    border-radius: 20px;
-                    padding: 5px 8px 2px 8px;
-                    font-size: 90%;
-                }
-                .normal-status {
-                    color: #666666;
-                    background: #ffffff;
-                    border: #666666 solid 1px;
-                    border-radius: 20px;
-                    padding: 5px 8px 2px 8px;
-                    font-size: 90%;
-                }
-              }
-              .head {
-                 color: rgb(164,164,164);
-                 min-width: 120px;
-                 text-align: right;
-                 display: block;
-                 float: left;
-              }
-             .control-text {
-               display: block;
-               background: #f5f5f5;
-               border-radius: 10px;
-               margin-left: 120px;
-               margin-top: 5px;
-               line-height: 22px;
-               padding: 5px 10px 5px 10px;
-             }
-           }
+.main-panel {
+  margin: 0px;
+  padding: 5px;
+  max-height: 65vh;
+  overflow-y: auto;
+  .panel {
+    border: solid 1px #cccccc;
+    min-height: 100px;
+    border-radius: 2px;
+    margin-top: 10px;
+    .title {
+      font-weight: bold;
+      margin-top: 10px;
+      margin-left: 5px;
+      padding-left: 5px;
+      color: #333333;
+      border-left: 5px solid rgb(254, 106, 0);
+    }
+    .content {
+      padding: 20px;
+      .goods-logo {
+        width: 45px;
+        height: 45px;
+        border: solid 1px #cccccc;
+      }
+      .spec-item {
+        color: #666666;
+        background: #ffffff;
+        border: #666666 solid 1px;
+        border-radius: 20px;
+        padding: 2px 8px 2px 8px;
+        margin-right: 5px;
+      }
+      .row {
+        min-height: 40px;
+        verticle-align: middle;
+        display: flex;
+        line-height: 40px;
+        .payed-status {
+          color: #52c41a;
+          background: #f6ffed;
+          border: #b7eb8f solid 1px;
+          border-radius: 20px;
+          padding: 2px 8px;
+          font-size: 90%;
+        }
+        .normal-status {
+          color: #666;
+          background: white;
+          border: #999 solid 1px;
+          border-radius: 20px;
+          padding: 2px 8px;
+          font-size: 90%;
+        }
+        .unpaid {
+          color: #f67f20;
+          background: rgba(#f67f20, 0.2);
+          border: #f67f20 solid 1px;
+          border-radius: 20px;
+          padding: 2px 8px;
+          font-size: 90%;
         }
+      }
+      .head {
+        color: rgb(164, 164, 164);
+        min-width: 120px;
+        text-align: right;
+        display: block;
+        float: left;
+      }
+      .control-text {
+        display: block;
+        background: #f5f5f5;
+        border-radius: 10px;
+        margin-left: 120px;
+        margin-top: 5px;
+        line-height: 22px;
+        padding: 5px 10px 5px 10px;
+      }
     }
+  }
+}
 </style>

+ 81 - 35
src/renderer/views/cashier/components/orderList.vue

@@ -171,7 +171,9 @@
       </el-table-column> -->
       <el-table-column :label="$t('ding-dan-zhuang-tai')" align="center" width="80" prop="status">
         <template slot-scope="scope">
-          <span class="status-normal">{{ getName(statusList, scope.row.status) }}</span>
+          <span :class="changeClassName(scope?.row?.status)">
+            {{ getName(statusList, scope.row.status) }}
+          </span>
         </template>
       </el-table-column>
       <!-- <el-table-column :label="$t('pei-song-fang-shi')" align="center" prop="orderMode">
@@ -219,7 +221,7 @@
       </el-table-column>
       <el-table-column :label="$t('cao-zuo')" align="left" width="138" fixed="right">
         <template slot-scope="scope">
-          <el-button
+          <!-- <el-button
             size="mini"
             type="text"
             class="main-text"
@@ -227,8 +229,8 @@
             @click="handleUpdate(scope.row)"
           >
             {{ $t('xiu-gai') }}
-          </el-button>
-          <el-button
+          </el-button> -->
+          <!-- <el-button
             v-if="scope.row.orderMode == 'express'"
             size="mini"
             type="text"
@@ -237,7 +239,7 @@
             @click="handleExpress(scope.row)"
           >
             {{ $t('fa-huo') }}
-          </el-button>
+          </el-button> -->
           <!-- <el-button
               v-if="scope.row.orderMode == 'oneself'"
               type="text"
@@ -267,6 +269,7 @@
                 {{ $t('cha-kan-xiang-qing') }}
               </el-dropdown-item>
               <el-dropdown-item
+                v-if="['A', 'B'].includes(scope?.row?.status)"
                 command="handlePrint"
                 icon="el-icon-printer"
                 v-hasPermi="['cashier:index']"
@@ -345,13 +348,13 @@
         </el-row>
         <el-row>
           <el-col :span="24">
-            <el-form-item :label="$t('you-hui-jin-e')" prop="discount">
+            <!-- <el-form-item :label="$t('you-hui-jin-e')" prop="discount">
               <el-input
                 v-model="form.discount"
                 :placeholder="$t('qing-shu-ru-you-hui-jin-e')"
                 maxlength="100"
               />
-            </el-form-item>
+            </el-form-item> -->
           </el-col>
         </el-row>
         <el-row>
@@ -361,6 +364,8 @@
                 v-model="form.remark"
                 type="textarea"
                 :placeholder="$t('qing-shu-ru-ding-dan-bei-zhu')"
+                maxlength="200"
+                show-word-limit
               ></el-input>
             </el-form-item>
           </el-col>
@@ -455,6 +460,8 @@
                 v-model="form.remark"
                 type="textarea"
                 :placeholder="$t('qing-shu-ru-ding-dan-bei-zhu')"
+                maxlength="200"
+                show-word-limit
               ></el-input>
             </el-form-item>
           </el-col>
@@ -522,6 +529,8 @@
                 v-model="vForm.remark"
                 type="textarea"
                 :placeholder="$t('qing-shu-ru-ding-dan-bei-zhu')"
+                maxlength="200"
+                show-word-limit
               ></el-input>
             </el-form-item>
           </el-col>
@@ -662,6 +671,8 @@
                 v-model="rForm.remark"
                 type="textarea"
                 :placeholder="$t('qing-shu-ru-tui-kuan-bei-zhu')"
+                maxlength="200"
+                show-word-limit
               ></el-input>
             </el-form-item>
           </el-col>
@@ -1160,6 +1171,16 @@ export default {
           break
       }
     },
+    // 支付状态得class
+    changeClassName(status) {
+      if (status == 'B') {
+        return 'payed-status'
+      } else if (status == 'A') {
+        return ' unpaid'
+      } else {
+        return 'normal-status'
+      }
+    },
   },
 }
 </script>
@@ -1177,34 +1198,59 @@ export default {
   overflow: overlay !important;
 }
 .order-container {
-    position: absolute;
-    top: 50px;
-    left: 165px;
-    right: 10px;
-    height: 68%;
-    .search-form {
-       border: solid 1px #cccccc;
-       margin-top: 0px;
-       padding: 15px 10px 0px 10px;
-       background: #f5f5f5;
-       margin-bottom: 5px;
-       border-radius: 3px;
-    }
-    .pagination {
-      position: fixed;
-      bottom: 10px;
-      right: 150px;
-      height: 50px;
-      min-width: 730px;
-      line-height: 50px;
-      margin-top: 10px;
-      display: block;
-      background: #fff;
-      border: 1px solid #eee;
-      // color: #000;
-      border-radius: 5px;
-      z-index: 99999;
-    }
+  position: absolute;
+  top: 50px;
+  left: 165px;
+  right: 10px;
+  height: 68%;
+  .search-form {
+    // border: solid 1px #cccccc;
+    margin-top: 0px;
+    padding: 15px 0px 0px 0px;
+    //  background: #f5f5f5;
+    margin-bottom: 5px;
+    border-radius: 3px;
+  }
+  .pagination {
+    position: fixed;
+    bottom: 10px;
+    right: 150px;
+    height: 50px;
+    min-width: 730px;
+    line-height: 50px;
+    margin-top: 10px;
+    display: block;
+    background: #fff;
+    border: 1px solid #eee;
+    // color: #000;
+    border-radius: 5px;
+    z-index: 99999;
+  }
+
+  .payed-status {
+    color: #52c41a;
+    background: #f6ffed;
+    border: #b7eb8f solid 1px;
+    border-radius: 20px;
+    padding: 2px 8px;
+    font-size: 90%;
+  }
+  .normal-status {
+    color: #666;
+    background: white;
+    border: #999 solid 1px;
+    border-radius: 20px;
+    padding: 2px 8px;
+    font-size: 90%;
+  }
+  .unpaid {
+    color: #f67f20;
+    background: rgba(#f67f20, 0.2);
+    border: #f67f20 solid 1px;
+    border-radius: 20px;
+    padding: 2px 8px;
+    font-size: 90%;
+  }
 }
 </style>
 <style scoped>

+ 40 - 8
src/renderer/views/cashier/components/settlementDialog.vue

@@ -63,6 +63,28 @@
               <div class="name">{{ $t('xian-jin-zhi-fu-0') }}</div>
             </div>
             <!-- <div
+              :class="'pay-item' + (payType == 'B2C' ? ' active' : '')"
+              @click="selectPayType('B2C')"
+            >
+              <svg
+                t="1656295559018"
+                class="icon"
+                viewBox="0 0 1024 1024"
+                version="1.1"
+                xmlns="http://www.w3.org/2000/svg"
+                p-id="6471"
+                width="32"
+                height="32"
+              >
+                <path
+                  d="M512 0a512 512 0 1 0 512 512A512 512 0 0 0 512 0z m286.4896 668.16a78.2336 78.2336 0 0 1-78.208 78.208H303.1808A78.2336 78.2336 0 0 1 224.9728 668.16V355.3536a78.1312 78.1312 0 0 1 78.1568-78.2336h417.1008a78.2336 78.2336 0 0 1 78.208 78.2336v91.1616h-208.5632a65.2032 65.2032 0 1 0 0 130.4064h208.6144z m-143.36-156.3904a39.1168 39.1168 0 1 1-39.1168-39.0912 39.1168 39.1168 0 0 1 39.0656 39.1936z"
+                  fill="#113a28"
+                  p-id="6472"
+                ></path>
+              </svg>
+              <div class="name">{{ $t('yin-hang-zhi-fu') }}</div>
+            </div> -->
+            <!-- <div
               :class="'pay-item' + (payType == 'BALANCE' ? ' active' : '')"
               @click="selectPayType('BALANCE')"
             >
@@ -133,6 +155,7 @@
               </svg>
               <div class="name">{{ $t('zhi-fu-bao-zhi-fu') }}</div>
             </div>
+          </div>-->
           </div>
         </div>
         <div class="main">
@@ -158,11 +181,14 @@
               <div>{{ $t('bei-zhu-xin-xi') }}:</div>
               <el-form-item class="form-item" prop="remark">
                 <el-input
+                  class="caret-[#f67f20]"
                   type="textarea"
                   v-model="remark"
                   ref="remark"
                   :placeholder="$t('qing-shu-ru-bei-zhu-xin-xi')"
                   clearable
+                  maxlength="200"
+                  show-word-limit
                 />
               </el-form-item>
             </div>
@@ -206,7 +232,8 @@
             </div>
           </div>
         </div>
-        <div class="right">
+
+        <!-- <div class="right">
           <div class="title">{{ $t('hui-yuan-xin-xi') }}</div>
           <div class="content">
             <div class="member-info" v-if="memberInfo">
@@ -221,11 +248,11 @@
               </div>
               <div class="item">
                 <div class="head">{{ $t('shou-ji-hao') }}:</div>
-                <div class="value">{{ memberInfo.mobile ? memberInfo.mobile : $('zan-wu') }}</div>
+                <div class="value">{{ memberInfo.mobile ? memberInfo.mobile : $t('zan-wu') }}</div>
               </div>
               <div class="item">
                 <div class="head">{{ $t('hui-yuan-hao') }}:</div>
-                <div class="value">{{ memberInfo.userNo ? memberInfo.userNo : $('zan-wu') }}</div>
+                <div class="value">{{ memberInfo.userNo ? memberInfo.userNo : $t('zan-wu') }}</div>
               </div>
               <div class="item">
                 <div class="head">{{ $t('ke-yong-yu-e') }}:</div>
@@ -284,7 +311,7 @@
               </el-button>
             </div>
           </div>
-        </div>
+        </div> -->
       </div>
     </el-form>
     <div slot="footer" class="dialog-footer">
@@ -566,16 +593,20 @@ export default {
       }
     }
     .active {
-      border: 3px solid #113a28;
+      border: 3px solid #f67f20;
       background: #fdf5e6;
-      color: #ffffff;
+      .name {
+        color: #f67f20;
+      }
     }
   }
   .main {
     float: left;
     padding: 10px;
-    width: 598px;
+    // width: 598px;
+    width: calc(100% - 200px);
     height: 348px;
+    box-sizing: border-box;
     position: relative;
     .title {
       margin-bottom: 10px;
@@ -583,6 +614,7 @@ export default {
     }
     .content {
       width: 100%;
+      box-sizing: border-box;
       .coupon-info {
         margin-top: 20px;
         .num {
@@ -596,7 +628,7 @@ export default {
       .amount-info {
         text-align: right;
         position: absolute;
-        width: 580px;
+        width: calc(100% - 20px);
         bottom: 10px;
         font-size: 16px;
         .discount-amount {

+ 41 - 11
src/renderer/views/cashier/index.vue

@@ -13,7 +13,9 @@
         <div class="left-side">
           <div class="logo">
             <!-- <i class="logout el-icon-d-arrow-left" @click="logout"></i> -->
-            <div class="title">{{ $t('cashierDesk') }}</div>
+            <div class="title">
+              {{ $t('cashierDesk') }}
+            </div>
             <div class="store" v-if="storeInfo">({{ storeInfo.name }})</div>
             <div class="account">{{ $t('hello') }},{{ accountInfo.realName }}!</div>
           </div>
@@ -49,11 +51,12 @@
               <span class="name" v-if="memberInfo">
                 {{ memberInfo.mobile ? memberInfo.mobile : memberInfo.name }}
               </span>
-              <span class="none" v-if="!memberInfo">当前为游客</span>
+              <span class="none" v-if="!memberInfo">{{ $t('dang-qian-wei-you-ke') }}</span>
               <el-button v-if="hangNo" size="mini" class="switch" type="danger">
                 {{ hangNo }}
               </el-button>
             </div>
+            <LangTab style="position: absolute; right: 10px" size="mini"></LangTab>
           </div>
           <div class="carts">
             <div>
@@ -111,11 +114,17 @@
               </div>
             </div>
             <div class="options">
-              <div class="cash" @click="hangUp()">{{ $t('gua-dan') }} / {{ $t('qu-dan') }}</div>
-              <div class="submit" v-if="cartTotalNum > 0" @click="doSettlement()">
+              <div
+                :title="`${$t('gua-dan')} / ${$t('qu-dan')}`"
+                class="cash truncate"
+                @click="hangUp()"
+              >
+                {{ $t('gua-dan') }} / {{ $t('qu-dan') }}
+              </div>
+              <div class="submit truncate" v-if="cartTotalNum > 0" @click="doSettlement()">
                 {{ $t('ti-jiao-jie-suan') }}
               </div>
-              <div class="submit" v-if="cartTotalNum == 0" @click="doCashier()">
+              <div class="submit truncate" v-if="cartTotalNum == 0" @click="doCashier()">
                 {{ $t('wu-shang-pin-shou-kuan') }}
               </div>
             </div>
@@ -237,7 +246,7 @@
     >
       <div class="goods-info">
         <div class="name">{{ goodsInfo.name }}</div>
-        <div class="price">¥{{ goodsInfo.price }}</div>
+        <div class="price">¥{{ skuPrice }}</div>
         <div class="num">
           <el-input-number class="input" v-model="goodsNum" :min="1" :max="1000" />
         </div>
@@ -359,6 +368,7 @@ import {
   getMemberInfoById,
 } from '@/api/cashier'
 import { getOrderInfo } from '@/api/order'
+import { useUserStore } from '@/store/user'
 import { getUserId, setUserId, removeUserId } from '@/utils/auth'
 import switchMemberDialog from './components/switchMemberDialog'
 import settlementDialog from './components/settlementDialog'
@@ -371,6 +381,9 @@ import memberList from './components/memberList'
 import couponConfirm from './components/couponConfirm'
 import noGoodsCashier from './components/noGoodsCashier'
 import bindStaffDialog from './components/bindStaffDialog'
+import LangTab from '@/components/LangTab/index.vue'
+import { Message } from 'element-ui'
+const { logOut } = useUserStore()
 export default {
   name: 'Cashier',
   components: {
@@ -385,6 +398,20 @@ export default {
     couponConfirm,
     noGoodsCashier,
     bindStaffDialog,
+    LangTab,
+  },
+  computed: {
+    skuPrice() {
+      const app = this
+      const specIds = app.goodsSpecIds.join('-')
+      let price = app.goodsInfo.price
+      app.goodsInfo.skuList.forEach(function (skuInfo) {
+        if (skuInfo.specIds == specIds) {
+          price = skuInfo.price
+        }
+      })
+      return price
+    },
   },
   data() {
     return {
@@ -1293,6 +1320,8 @@ export default {
             height: 110px;
             width: 310px;
             padding-top: 5px;
+            display: flex;
+
             .image {
               width: 50px;
               height: 50px;
@@ -1303,9 +1332,9 @@ export default {
               margin-top: 20px;
             }
             .info {
-              float: left;
               padding-left: 5px;
               margin-top: 5px;
+
               .name {
                 font-weight: bold;
                 font-size: 12px;
@@ -1345,9 +1374,9 @@ export default {
               }
             }
             .option {
-              float: right;
               text-align: right;
               margin-right: 10px;
+              flex: 1;
               .remove {
                 font-size: 12px;
                 cursor: pointer;
@@ -1399,7 +1428,8 @@ export default {
           float: left;
           height: 50px;
           border: solid 1px #f67f20;
-          padding-top: 15px;
+          // padding-top: 15px;
+          padding: 15px 5px 0px 5px;
           width: 135px;
           border-radius: 5px;
           color: #f67f20;
@@ -1411,7 +1441,7 @@ export default {
           height: 50px;
           border: solid 1px #ff5b57;
           margin-left: 10px;
-          padding-top: 15px;
+          padding: 15px 5px 0px 5px;
           width: 135px;
           border-radius: 5px;
           background: #ff5b57;
@@ -1433,7 +1463,7 @@ export default {
     .title {
       position: fixed;
       height: 106px;
-      width: calc(100% - 465px);
+      width: calc(100% - 475px);
       min-width: 700px;
       background: #ffffff;
       padding: 5px;

+ 8 - 8
src/renderer/views/home/index.vue

@@ -8,19 +8,19 @@
       :show-close="false"
     >
       <div class="main">
-        <div class="nav">欢迎使用{{ systemName }}</div>
+        <div class="nav">{{ $t('huan-ying-shi-yong') }}{{ systemName }}</div>
         <div class="tool">
           <div class="item" @click="target('/cashier')">
             <i class="el-icon-user"></i>
-            进入收银
+            {{ $t('jin-ru-shou-yin') }}
           </div>
           <div class="item" @click="target('/setting')">
             <i class="el-icon-setting"></i>
-            系统设置
+            {{ $t('xi-tong-she-zhi') }}
           </div>
           <div class="item logout" @click="logout">
             <i class="icon el-icon-switch-button"></i>
-            退出
+            {{ $t('tui-chu') }}
           </div>
         </div>
       </div>
@@ -46,15 +46,15 @@ export default {
       this.$router.push(url)
     },
     logout() {
-      this.$confirm('确定注销并退出系统吗?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
+      this.$confirm(this.$t('que-ding-zhu-xiao-bing-tui-chu-xi-tong-ma'), this.$t('ti-shi'), {
+        confirmButtonText: this.$t('que-ding'),
+        cancelButtonText: this.$t('qu-xiao'),
         type: 'warning',
       })
         .then(() => {
           logOut().then(() => {
             Message({
-              message: '退出成功',
+              message: this.$t('tui-chu-cheng-gong'),
               type: 'success',
             })
             removeUserId()

+ 15 - 4
src/renderer/views/login/index.vue

@@ -4,7 +4,9 @@
       <div class="lang-change">
         <LangTab></LangTab>
       </div>
-      <img class="login-icon" src="./login-icon.png" alt="" />
+      <div class="login-icon">
+        <img src="./login-icon.png" alt="" />
+      </div>
       <el-form
         class="login-form"
         ref="loginForm"
@@ -45,9 +47,9 @@
           </span>
         </el-form-item>
         <el-form-item prop="captchaCode">
-          <span class="svg-container svg-container_login">
+          <!-- <span class="svg-container svg-container_login">
             <svg-icon icon-class="eye"></svg-icon>
-          </span>
+          </span> -->
           <el-input
             v-model="loginForm.captchaCode"
             auto-complete="off"
@@ -218,7 +220,16 @@ $background-color: #f6f6f6; // 背景色,灰色
 
     .login-icon {
       width: calc(100% - 520px);
-      height: 59vh;
+      height: 100%;
+      display: flex;
+      align-items: center;
+      justify-content: flex-start;
+      overflow: hidden;
+
+      img {
+        width: 38vw;
+        height: 33vw;
+      }
     }
 
     .login-form {