12 Commits 3c3efb8831 ... 9a681bb44b

Author SHA1 Message Date
  Mcal 9a681bb44b 🐞 fix: 添加服务费与对应四个语言,删除订单类型 1 week ago
  陈雪 5635e38b2e 🐞 fix(cashier): 调整收银页面底部样式和布局 1 week ago
  陈雪 6141e9c15a 🐞 fix(order): 修改订单详情和列表中桌号显示逻辑 1 week ago
  陈雪 b16d03babb 📃 docs(version): 修改版本号 1 week ago
  陈雪 c03701ed69 🐞 fix(order): 订单桌号展示 1 week ago
  陈雪 e1a73d0f9a 📃 docs(tran): 添加翻译文案 1 week ago
  陈雪 a5f1329cce 🐳 chore(url): 请求地址修改 1 week ago
  陈雪 c9858e64a5 🐞 fix(tran): 提示语弹窗翻译 1 week ago
  陈雪 c733489b65 🐞 fix(1000366): 订单操作消失 1 week ago
  陈雪 df75372312 ✨ feat(unit): 动态展示货币符号信息 1 week ago
  陈雪 9213655780 🐞 fix(login): 用户登录跳转处理 1 week ago
  陈雪 63bdbbcef2 🐞 fix(store): 全局状态保存 1 week ago

+ 2 - 2
env/.env

@@ -1,7 +1,7 @@
 # 黄雯本地
-# API_HOST = 'http://192.168.1.44:8080/'
+API_HOST = 'http://192.168.1.110:8080/'
 # 商城服务器
-API_HOST = 'https://www.fuint.cn/fuint-food/'
+# API_HOST = 'https://www.fuint.cn/fuint-food/'
 NODE_ENV = 'development'
 SYSTEM_NAME = 'app.title'
 

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "panda-cashier",
-  "version": "1.0.1",
+  "version": "1.0.2",
   "author": "qihuantravel",
   "description": "奇幻之旅点餐客户端",
   "private": true,

+ 4 - 4
src/renderer/i18n/languages/en.json

@@ -30,6 +30,7 @@
     "openDocument": "Open document",
     "changeLanguage": "Change language"
   },
+  "serviceFee": "Service fee",
   "qing-shu-ru-nin-de-zhang-hao": "Please enter your account",
   "qing-shu-ru-nin-de-mi-ma": "Please enter your password",
   "qing-shu-ru-yan-zheng-ma": "Please enter the verification code",
@@ -109,7 +110,7 @@
   "qi-yong": "Enable",
   "jin-yong": "Disable",
   "que-ren-yao": "Are you sure you want to ",
-  "ma": "",
+  "ma": "?",
   "cheng-gong": " successfully",
   "ti-shi-he-xiao-cheng-gong": "Tip: Verification successful",
   "ti-shi-xiu-gai-cheng-gong": "Tip: Modification successful",
@@ -118,7 +119,7 @@
   "tui-kuan-jin-e-bu-neng-da-yu-ding-dan-zong-jin-e": "The refund amount cannot be greater than the total order amount",
   "ti-shi-tui-jiao-tui-kuan-cheng-gong": "Tip: Refund submission successful",
   "shi-fou-que-ren-shan-chu-ding-dan-hao-wei": "Are you sure you want to delete the data item with the order number ",
-  "de-shu-ju-xiang": "",
+  "de-shu-ju-xiang": "data item",
   "ti-shi-shan-chu-cheng-gong": "Tip: Deletion successful",
   "ding-dan-da-yin-yu-lan": "Order Print Preview",
   "dan-hao": "Order Number",
@@ -182,7 +183,6 @@
   "ke-yong-ka-quan": "Available Coupons",
   "qing-xuan-ze-ka-quan": "Please select a coupon",
   "zhe-kou-zhe": "Discounter",
-  "qing-shu-ru-zhe-kou": "Please enter the discount",
   "li-jian": "Immediate Discount",
   "yuan": "Yuan",
   "qing-shu-ru-li-jian-jin-e": "Please enter the immediate discount amount",
@@ -208,7 +208,7 @@
   "tui-chu-cheng-gong": "Logged out successfully",
   "bao-qian-wei-cha-xun-dao-shang-pin-xin-xi": "Sorry, no product information was found!",
   "qing-xian-que-ren-shang-pin-gui-ge": "Please confirm the product specifications first!",
-  "ci-cao-zuo-jiang-qing-kong-shi-fou-ji-xu": "This operation will clear the data. Are you sure you want to continue?",
+  "ci-cao-zuo-jiang-qing-kong-shi-fou-ji-xu": "Delete current dish?",
   "shan-chu-cheng-gong": "Deleted successfully!",
   "yi-qu-xiao-shan-chu": "Deletion cancelled",
   "qing-xian-tian-jia-jie-suan-shang-pin": "Please add settlement products first!",

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

@@ -118,7 +118,7 @@
   "tui-kuan-jin-e-bu-neng-da-yu-ding-dan-zong-jin-e": "Сумма возврата не может быть больше общей суммы заказа",
   "ti-shi-tui-jiao-tui-kuan-cheng-gong": "Подсказка: отправка запроса на возврат выполнена успешно",
   "shi-fou-que-ren-shan-chu-ding-dan-hao-wei": "Подтверждаете удаление записи с номером заказа",
-  "de-shu-ju-xiang": "",
+  "de-shu-ju-xiang": "элемент данных",
   "ti-shi-shan-chu-cheng-gong": "Подсказка: удаление выполнено успешно",
   "ding-dan-da-yin-yu-lan": "Предварительный просмотр печати заказа",
   "dan-hao": "Номер",
@@ -216,6 +216,7 @@
   "ke-yong-yu-e": "Доступный баланс",
   "ke-yong-ji-fen": "Доступные баллы",
   "zan-wu": "Пока нет",
+  "serviceFee": "Сбор за услуги",
   "chong-xin-xuan-ze": "Выбрать снова",
   "dang-qian-wei-you-ke": "В настоящее время вы являетесь гостем",
   "guan-lian-hui-yuan": "Связать с членом",
@@ -234,7 +235,7 @@
   "tui-chu-cheng-gong": "Выход выполнен успешно",
   "bao-qian-wei-cha-xun-dao-shang-pin-xin-xi": "Извините, информация о товаре не найдена!",
   "qing-xian-que-ren-shang-pin-gui-ge": "Пожалуйста, сначала подтвердите характеристики товара!",
-  "ci-cao-zuo-jiang-qing-kong-shi-fou-ji-xu": "Это действие очистит данные. Продолжить?",
+  "ci-cao-zuo-jiang-qing-kong-shi-fou-ji-xu": "Удалить текущее блюдо?",
   "shan-chu-cheng-gong": "Удаление выполнено успешно!",
   "yi-qu-xiao-shan-chu": "Удаление отменено",
   "qing-xian-tian-jia-jie-suan-shang-pin": "Пожалуйста, сначала добавьте товары для расчета!",

+ 3 - 2
src/renderer/i18n/languages/sr-Latn.json

@@ -55,6 +55,7 @@
   "pei-song-fang-shi": "Способ доставки",
   "cha-xun": "Поиск",
   "chong-zhi": "Сброс",
+  "serviceFee": "Naknada za usluge",
   "ID": "ID",
   "hui-yuan-ming-cheng": "Имя участника",
   "you-ke": "Гость",
@@ -118,7 +119,7 @@
   "tui-kuan-jin-e-bu-neng-da-yu-ding-dan-zong-jin-e": "Износ враћања не може бити већи од укупне суме нараudzбе",
   "ti-shi-tui-jiao-tui-kuan-cheng-gong": "Наслов: подношење захтева за враћање је успешно завршено",
   "shi-fou-que-ren-shan-chu-ding-dan-hao-wei": "Да ли желите да обришете запис са бројем нараudzбе",
-  "de-shu-ju-xiang": "",
+  "de-shu-ju-xiang": "element podataka",
   "ti-shi-shan-chu-cheng-gong": "Наслов: брисање је успешно завршено",
   "ding-dan-da-yin-yu-lan": "Преглед штампања нараudzбе",
   "dan-hao": "Број",
@@ -234,7 +235,7 @@
   "tui-chu-cheng-gong": "Излазак је успешно завршен",
   "bao-qian-wei-cha-xun-dao-shang-pin-xin-xi": "Жао нам је, информације о производу нису пронађене!",
   "qing-xian-que-ren-shang-pin-gui-ge": "Пожалуйста, прво потврдите карактеристике производа!",
-  "ci-cao-zuo-jiang-qing-kong-shi-fou-ji-xu": "Ово ће обрисати податке. Да ли желите да наставите?",
+  "ci-cao-zuo-jiang-qing-kong-shi-fou-ji-xu": "Obrišati trenutno jelo?",
   "shan-chu-cheng-gong": "Брисање је успешно завршено!",
   "yi-qu-xiao-shan-chu": "Брисање је отказано",
   "qing-xian-tian-jia-jie-suan-shang-pin": "Пожалуйста, прво додajte производе за рачун!",

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

@@ -30,6 +30,7 @@
     "openDocument": "打开文档",
     "changeLanguage": "切换语言"
   },
+  "serviceFee": "服务费",
   "qing-shu-ru-nin-de-zhang-hao": "请输入您的账号",
   "qing-shu-ru-nin-de-mi-ma": "请输入您的密码",
   "qing-shu-ru-yan-zheng-ma": "请输入验证码",
@@ -234,7 +235,7 @@
   "tui-chu-cheng-gong": "退出成功",
   "bao-qian-wei-cha-xun-dao-shang-pin-xin-xi": "抱歉,未查询到商品信息!",
   "qing-xian-que-ren-shang-pin-gui-ge": "请先确认商品规格!",
-  "ci-cao-zuo-jiang-qing-kong-shi-fou-ji-xu": "此操作将清空, 是否继续?",
+  "ci-cao-zuo-jiang-qing-kong-shi-fou-ji-xu": "是否删除当前菜品?",
   "shan-chu-cheng-gong": "删除成功!",
   "yi-qu-xiao-shan-chu": "已取消删除",
   "qing-xian-tian-jia-jie-suan-shang-pin": "请先添加结算商品!",

+ 13 - 13
src/renderer/router/constantRouterMap.js

@@ -24,17 +24,17 @@ import Layout from '@/layout'
   }
  **/
 export default [
-  {
-    path: '/cashier',
-    component: Layout,
-    meta: { roles: ['admin', 'common', 'user'] },
-    children: [
-      {
-        path: 'index',
-        name: '收银',
-        component: () => import('@/views/cashier/index'),
-        meta: { title: '收银', icon: 'table' }
-      }
-    ]
-  }
+  // {
+  //   path: '/cashier',
+  //   component: Layout,
+  //   meta: { roles: ['admin', 'common', 'user'] },
+  //   children: [
+  //     {
+  //       path: 'index',
+  //       name: '收银',
+  //       component: () => import('@/views/cashier/index'),
+  //       meta: { title: '收银', icon: 'table' },
+  //     },
+  //   ],
+  // },
 ]

+ 41 - 28
src/renderer/router/index.js

@@ -2,37 +2,50 @@ import Router from 'vue-router'
 import Layout from '@/layout'
 // 引入路由表
 import asyncRouterMap from './constantRouterMap'
+import path from 'path'
 
-export const constantRouterMap = [{
-  path: '/',
-  component: Layout,
-  redirect: '/dashboard',
-  name: '主页',
-  hidden: true,
-  children: [{
-    path: 'dashboard',
-    name: '总览',
-    component: () => import('@/views/home')
-  }]
-}, {
-  path: '/login',
-  component: () => import('@/views/login'),
-  hidden: true
-}, {
-  path: '/cashier',
-  component: () => import('@/views/cashier'),
-  hidden: true
-} , {
-  path: '/setting',
-  component: () => import('@/views/setting'),
-  hidden: true
-}]
+export const constantRouterMap = [
+  // {
+  //   path: '/',
+  //   component: Layout,
+  //   redirect: 'dashboard',
+  //   name: '主页',
+  //   hidden: true,
+  //   children: [
+  //     {
+  //       path: '/dashboard',
+  //       name: '总览',
+  //       component: () => import('@/views/home'),
+  //     },
+  //   ],
+  // },
+  {
+    path: '/',
+    redirect: '/cashier',
+  },
+  {
+    path: '/login',
+    component: () => import('@/views/login'),
+    hidden: true,
+  },
+  {
+    path: '/cashier',
+    component: () => import('@/views/cashier/index'),
+    hidden: true,
+  },
+  {
+    path: '/setting',
+    component: () => import('@/views/setting'),
+    hidden: true,
+  },
+]
 export const asyncRoutes = asyncRouterMap
 
-const createRouter = () => new Router({
-  scrollBehavior: () => ({ y: 0 }),
-  routes: constantRouterMap
-})
+const createRouter = () =>
+  new Router({
+    scrollBehavior: () => ({ y: 0 }),
+    routes: constantRouterMap,
+  })
 
 export function resetRouter() {
   const newRouter = createRouter()

+ 68 - 61
src/renderer/store/user.js

@@ -4,69 +4,76 @@ import { usePermissionStore } from './permission'
 import { login, getInfo } from '@/api/login'
 
 const TokenKey = 'Access-Token'
-const store = () => {
-    return {
-        token: JSON.parse(localStorage.getItem(TokenKey)),
-        name: JSON.parse(localStorage.getItem('name')),
-        roles: JSON.parse(localStorage.getItem('roles'))
-    }
-}
 
 export const useUserStore = defineStore({
-    id: 'user',
-    store,
-    actions: {
-        login(data) {
-            return new Promise((resolve, reject) => {
-                const { username } = data;
-                const { password } = data;
-                const { captchaCode } = data;
-                const { uuid } = data;
+  id: 'user',
+  state: () => ({
+    token: localStorage.getItem(TokenKey) || '',
+    name: localStorage.getItem('name') || '',
+    roles: localStorage.getItem('roles') ? JSON.parse(localStorage.getItem('roles')) : [],
+    currencySymbol: localStorage.getItem('currencySymbol') || '',
+  }),
+  getters: {
+    getSymbol: ({ currencySymbol }) => currencySymbol,
+  },
+  actions: {
+    login(data) {
+      return new Promise((resolve, reject) => {
+        const { username } = data
+        const { password } = data
+        const { captchaCode } = data
+        const { uuid } = data
 
-                login(username, password, captchaCode, uuid).then(res => {
-                    console.log('登录返回信息:', res.data);
-                    localStorage.setItem(TokenKey, res.data.token);
-                    this.token = res.data.token;
-                    localStorage.setItem("roles", JSON.stringify(["admin"]));
-                    localStorage.setItem("name", "Super Admin");
-                    this.name = "Super Admin";
-                    this.roles = ["admin"];
+        login(username, password, captchaCode, uuid)
+          .then((res) => {
+            console.log('登录返回信息:', res.data)
+            localStorage.setItem(TokenKey, res.data.token)
+            this.token = res.data.token
+            localStorage.setItem('roles', JSON.stringify(['admin']))
+            localStorage.setItem('name', 'Super Admin')
+            this.name = 'Super Admin'
+            this.roles = ['admin']
 
-                    resolve()
-                }).catch(error => {
-                    reject(error);
-                })
-            })
-
-        },
-        logOut() {
-            return new Promise((resolve, reject) => {
-                const { ResetRoutes } = usePermissionStore()
-                localStorage.setItem(TokenKey, "");
-                localStorage.setItem("roles", JSON.stringify([]));
-                localStorage.setItem("name", "");
-                this.token = "";
-                this.name = "";
-                this.roles = [];
-                ResetRoutes();
-                resetRouter();
-                resolve();
-            })
-        },
-        GetUserInfo() {
-            return new Promise((resolve, reject) => {
-                getInfo().then(res => {
-                    const user = res.data.accountInfo;
-                    localStorage.setItem("name", user.accountName);
-                    localStorage.setItem("permissions", JSON.stringify(res.data.permissions));
-                    localStorage.setItem("roles", JSON.stringify(res.data.roles));
-                    this.name = user.accountName;
-                    this.roles = res.data.roles;
-                    resolve(this.roles);
-                }).catch(error => {
-                    reject(error)
-                })
-            })
-        }
-    }
+            resolve()
+          })
+          .catch((error) => {
+            reject(error)
+          })
+      })
+    },
+    logOut() {
+      return new Promise((resolve, reject) => {
+        const { ResetRoutes } = usePermissionStore()
+        localStorage.removeItem(TokenKey)
+        localStorage.removeItem('roles')
+        localStorage.removeItem('name')
+        this.token = ''
+        this.name = ''
+        this.roles = []
+        ResetRoutes()
+        resetRouter()
+        resolve()
+      })
+    },
+    GetUserInfo() {
+      return new Promise((resolve, reject) => {
+        getInfo()
+          .then((res) => {
+            const user = res.data.accountInfo
+            localStorage.setItem('name', user.accountName)
+            localStorage.setItem('currencySymbol', user.currencySymbol)
+            localStorage.setItem('permissions', JSON.stringify(res.data.permissions))
+            localStorage.setItem('roles', JSON.stringify(res.data.roles))
+            this.name = user.accountName
+            this.roles = res.data.roles
+            this.permissions = res.data.permissions
+            this.currencySymbol = user.currencySymbol
+            resolve(this.roles)
+          })
+          .catch((error) => {
+            reject(error)
+          })
+      })
+    },
+  },
 })

+ 77 - 53
src/renderer/views/cashier/components/balanceRecharge.vue

@@ -1,6 +1,14 @@
 <template>
   <!-- 充值对话框 -->
-  <el-dialog class="common-dialog" title="余额充值/扣减" :visible.sync="showDialog" width="700px" @close="cancel" append-to-body destroy-on-close>
+  <el-dialog
+    class="common-dialog"
+    title="余额充值/扣减"
+    :visible.sync="showDialog"
+    width="700px"
+    @close="cancel"
+    append-to-body
+    destroy-on-close
+  >
     <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <el-row>
         <el-col :span="24">
@@ -12,7 +20,7 @@
       <el-row>
         <el-col :span="24">
           <el-form-item label="可用余额:" prop="balance">
-            <span>{{ memberInfo.balance.toFixed(2) }}</span>
+            <span>{{ $pinia._s.get('user').getSymbol }}{{ memberInfo.balance.toFixed(2) }}</span>
           </el-form-item>
         </el-col>
       </el-row>
@@ -29,14 +37,25 @@
       <el-row>
         <el-col :span="24">
           <el-form-item label="变更金额:" prop="amount">
-            <el-input v-model="form.amount" placeholder="请输入变更金额" style="width: 200px" maxlength="100" />
+            <el-input
+              v-model="form.amount"
+              placeholder="请输入变更金额"
+              style="width: 200px"
+              maxlength="100"
+            />
           </el-form-item>
         </el-col>
       </el-row>
       <el-row>
         <el-col :span="24">
           <el-form-item class="recharge-item" prop="remark" label="备注信息:">
-            <el-input v-model="form.remark" type="textarea" rows="2" placeholder="请输入备注信息" maxlength="255" />
+            <el-input
+              v-model="form.remark"
+              type="textarea"
+              rows="2"
+              placeholder="请输入备注信息"
+              maxlength="255"
+            />
           </el-form-item>
         </el-col>
       </el-row>
@@ -49,19 +68,19 @@
 </template>
 
 <script>
-import { doRecharge } from "@/api/balance";
-import { getMemberInfo } from "@/api/member";
+import { doRecharge } from '@/api/balance'
+import { getMemberInfo } from '@/api/member'
 export default {
-  name: "balanceRecharge",
+  name: 'balanceRecharge',
   props: {
-    showDialog:{
-      type:[Boolean],
-      default:()=>false
+    showDialog: {
+      type: [Boolean],
+      default: () => false,
+    },
+    userId: {
+      type: [String],
+      default: () => '',
     },
-    userId:{
-      type:[String],
-      default:()=> ''
-    }
   },
   data() {
     return {
@@ -72,64 +91,69 @@ export default {
       form: { type: '1', amount: '', userId: '' },
       // 表单校验
       rules: {
-        userId: [
-          { required: true, message: "请选择会员", trigger: "blur" },
-        ],
+        userId: [{ required: true, message: '请选择会员', trigger: 'blur' }],
         amount: [
-          { required: true, message: "金额不能为空", trigger: "blur" },
+          { required: true, message: '金额不能为空', trigger: 'blur' },
           { min: 1, max: 6, message: '请在1至99999元范围内输入', trigger: 'blur' },
-          { pattern: /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/, message: `请输入正确的金额`, trigger: 'blur' }
-        ]
-      }
-    };
+          {
+            pattern: /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/,
+            message: `请输入正确的金额`,
+            trigger: 'blur',
+          },
+        ],
+      },
+    }
   },
   watch: {
     showDialog(value) {
       if (value) {
-          this.getMemberInfo()
+        this.getMemberInfo()
       }
-    }
+    },
   },
   methods: {
     // 查询会员信息
     getMemberInfo() {
-      this.loading = true;
-      getMemberInfo(this.userId).then(response => {
-          this.form.userId = response.data.memberInfo.id;
-          this.memberInfo = response.data.memberInfo;
-          this.loading = false;
-        }
-      ).catch((err) => {
-          this.loading = false;
-          console.log(err.toString());
-      });
+      this.loading = true
+      getMemberInfo(this.userId)
+        .then((response) => {
+          this.form.userId = response.data.memberInfo.id
+          this.memberInfo = response.data.memberInfo
+          this.loading = false
+        })
+        .catch((err) => {
+          this.loading = false
+          console.log(err.toString())
+        })
     },
     // 取消按钮
     cancel() {
-      this.$emit('closeDialog','balance');
+      this.$emit('closeDialog', 'balance')
     },
     // 充值表单
     reset() {
-      this.form.userId = '';
-      this.form.type = '1';
-      this.form.amount = '';
-      this.form.remark = '';
-      this.memberInfo = { name: '', id: '', balance: 0 };
+      this.form.userId = ''
+      this.form.type = '1'
+      this.form.amount = ''
+      this.form.remark = ''
+      this.memberInfo = { name: '', id: '', balance: 0 }
     },
     // 提交按钮
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
+    submitForm: function () {
+      this.$refs['form'].validate((valid) => {
         if (valid) {
-            doRecharge(this.form).then(response => {
-               this.$alert("余额操作成功!");
-               this.$emit('closeDialog','balance');
-               this.reset();
-            }).catch(() => {
-               // empty
-            });
+          doRecharge(this.form)
+            .then((response) => {
+              this.$alert('余额操作成功!')
+              this.$emit('closeDialog', 'balance')
+              this.reset()
+            })
+            .catch(() => {
+              // empty
+            })
         }
-      });
-    }
-  }
-};
+      })
+    },
+  },
+}
 </script>

+ 3 - 1
src/renderer/views/cashier/components/hangUpDialog.vue

@@ -28,7 +28,9 @@
               会员:{{ orderInfo.memberInfo ? orderInfo.memberInfo.name : '游客' }}
             </div> -->
             <div class="item">{{ $t('jian-shu') }}:{{ orderInfo.num }}</div>
-            <div class="item">{{ $t('jin-e') }}:¥{{ orderInfo.amount }}</div>
+            <div class="item">
+              {{ $t('jin-e') }}:{{ $pinia._s.get('user').getSymbol }}{{ orderInfo.amount }}
+            </div>
             <div class="item time">{{ orderInfo.dateTime }}</div>
           </div>
         </div>

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

@@ -124,7 +124,8 @@
         <template slot-scope="scope">
           <div>
             <span style="color: red">
-              ¥{{ scope.row.balance ? scope.row.balance.toFixed(2) : '0.00' }}
+              {{ $pinia._s.get('user').getSymbol
+              }}{{ scope.row.balance ? scope.row.balance.toFixed(2) : '0.00' }}
             </span>
           </div>
           <el-button

+ 28 - 10
src/renderer/views/cashier/components/orderDetail.vue

@@ -19,7 +19,9 @@
             </el-col>
             <el-col :span="8">
               <span class="head">{{ $t('zong-jin-e') }}:</span>
-              <span class="control-label">¥{{ orderInfo.amount }}</span>
+              <span class="control-label">
+                {{ $pinia._s.get('user').getSymbol }}{{ orderInfo.amount }}
+              </span>
             </el-col>
             <el-col :span="8">
               <span class="head">{{ $t('ding-dan-zhuang-tai') }}:</span>
@@ -31,8 +33,8 @@
           </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>
+              <span class="head">{{ $t('serviceFee') }}:</span>
+              <span class="control-label">{{ orderInfo.serviceFee.toFixed(2) }}</span>
             </el-col>
             <el-col :span="8">
               <span class="head">{{ $t('ding-dan-shi-jian') }}:</span>
@@ -41,7 +43,7 @@
             <el-col :span="8">
               <span class="head">{{ $t('xia-dan-zhuo-ma') }}:</span>
               <span class="control-label">
-                {{ orderInfo.tableInfo ? orderInfo.tableInfo.code : '-' }}
+                {{ orderInfo.newTableInfo ? orderInfo.newTableInfo.tableNumber : '-' }}
               </span>
             </el-col>
           </el-row>
@@ -59,7 +61,9 @@
           <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>
+              <span class="control-label">
+                {{ $pinia._s.get('user').getSymbol }}{{ orderInfo.payAmount.toFixed(2) }}
+              </span>
             </el-col>
             <el-col :span="8">
               <span class="head">{{ $t('zhi-fu-zhuang-tai') }}:</span>
@@ -76,7 +80,9 @@
             </el-col>
             <el-col :span="8">
               <span class="head">{{ $t('jian-mian-jin-e') }}:</span>
-              <span class="control-label">¥{{ orderInfo.discount.toFixed(2) }}</span>
+              <span class="control-label">
+                {{ $pinia._s.get('user').getSymbol }}{{ orderInfo.discount.toFixed(2) }}
+              </span>
             </el-col>
           </el-row>
           <el-row class="row">
@@ -93,7 +99,11 @@
               <span class="control-label">
                 {{
                   orderInfo.couponInfo
-                    ? '¥' + orderInfo.couponInfo.amount + '(' + orderInfo.couponInfo.name + ')'
+                    ? $pinia._s.get('user').getSymbol +
+                      orderInfo.couponInfo.amount +
+                      '(' +
+                      orderInfo.couponInfo.name +
+                      ')'
                     : '-'
                 }}
               </span>
@@ -106,11 +116,15 @@
             </el-col>
             <el-col :span="8">
               <span class="head">{{ $t('ji-fen-jin-e') }}:</span>
-              <span class="control-label">¥{{ orderInfo.pointAmount.toFixed(2) }}</span>
+              <span class="control-label">
+                {{ $pinia._s.get('user').getSymbol }}{{ 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>
+              <span class="control-label">
+                {{ $pinia._s.get('user').getSymbol }}{{ orderInfo.deliveryFee.toFixed(2) }}
+              </span>
             </el-col>
           </el-row>
         </div>
@@ -147,7 +161,11 @@
         <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('shang-pin-ID')" width="66">
+              <template slot-scope="scope">
+                {{ scope.row.id.slice(-4) }}
+              </template>
+            </el-table-column>
             <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" />

+ 18 - 18
src/renderer/views/cashier/components/orderList.vue

@@ -124,7 +124,11 @@
       :default-sort="defaultSort"
       @sort-change="handleSortChange"
     >
-      <el-table-column :label="$t('ID')" prop="id" width="80" />
+      <el-table-column :label="$t('ID')" width="80">
+        <template slot-scope="scope">
+          {{ scope.row.id.slice(-4) }}
+        </template>
+      </el-table-column>
       <el-table-column :label="$t('ding-dan-hao')" align="center" width="190" prop="orderSn">
         <template slot-scope="scope">
           <span @click="handleView(scope.row)" style="color: #00afff; cursor: pointer">
@@ -132,9 +136,14 @@
           </span>
         </template>
       </el-table-column>
-      <el-table-column :label="$t('zhuo-ma')" align="center" width="100" prop="tableInfo.code">
+      <el-table-column
+        :label="$t('zhuo-ma')"
+        align="center"
+        width="100"
+        prop="newTableInfo.tableNumber"
+      >
         <template slot-scope="scope">
-          <span v-if="scope.row.tableInfo">{{ scope.row.tableInfo.code }}</span>
+          <span v-if="scope.row.newTableInfo">{{ scope.row.newTableInfo.tableNumber }}</span>
           <span v-else>-</span>
         </template>
       </el-table-column>
@@ -197,9 +206,9 @@
           <span v-else>0.00</span>
         </template>
       </el-table-column>
-      <el-table-column :label="$t('you-hui-jin-e')" align="center" prop="discount">
+      <el-table-column :label="$t('serviceFee')" align="center" prop="discount">
         <template slot-scope="scope">
-          <span v-if="true">{{ scope.row.discount.toFixed(2) }}</span>
+          <span v-if="true">{{ scope.row.serviceFee.toFixed(2) }}</span>
           <span v-else>0.00</span>
         </template>
       </el-table-column>
@@ -251,28 +260,19 @@
           >
             {{ $t('he-xiao') }}
           </el-button> -->
-          <el-dropdown
-            size="mini"
-            @command="(command) => handleCommand(command, scope.row)"
-            v-hasPermi="['order:edit', 'order:delete']"
-          >
+          <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)">
             <span class="el-dropdown-link">
               <i class="el-icon-d-arrow-right el-icon--right"></i>
               {{ $t('geng-duo') }}
             </span>
             <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item
-                command="handleView"
-                icon="el-icon-view"
-                v-hasPermi="['cashier:index']"
-              >
+              <el-dropdown-item command="handleView" icon="el-icon-view">
                 {{ $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']"
               >
                 {{ $t('da-yin-xiao-piao') }}
               </el-dropdown-item>
@@ -640,12 +640,12 @@
         <el-row>
           <el-col :span="24">
             <el-form-item
-              :label="$t('ding-dan-shi-fu-jin-e')"
+              :label="`${$t('ding-dan-shi-fu-jin-e')}(${$pinia._s.get('user').getSymbol})`"
               prop="payAmount"
               style="width: 450px"
             >
               <el-input
-                v-model="'¥' + rForm.payAmount"
+                v-model="rForm.payAmount"
                 :placeholder="$t('ding-dan-shi-fu-jin-e')"
                 disabled
                 maxlength="100"

+ 7 - 3
src/renderer/views/cashier/components/orderPrintDialog.vue

@@ -25,7 +25,7 @@
         <div class="goods-item" v-for="(goodsInfo, index) in orderInfo.goods">
           <span class="item">{{ index + 1 }}.{{ goodsInfo.name }}</span>
           <span class="item">x{{ goodsInfo.num }}</span>
-          <span class="item">{{ goodsInfo.price }}</span>
+          <span class="item">{{ $pinia._s.get('user').getSymbol }}{{ goodsInfo.price }}</span>
         </div>
       </div>
       <div v-if="orderInfo.goods.length > 0">****************************************</div>
@@ -67,11 +67,15 @@
         <div class="item">{{ $t('ding-dan-shi-jian') }}:{{ orderInfo.createTime }}</div>
         <div class="item">
           {{ $t('you-hui-jin-e') }}:
-          <span class="discount">¥{{ orderInfo.discount.toFixed(2) }}</span>
+          <span class="discount">
+            {{ $pinia._s.get('user').getSymbol }}{{ orderInfo.discount.toFixed(2) }}
+          </span>
         </div>
         <div class="item">
           {{ $t('ying-shou-jin-e') }}:
-          <span class="amount">¥{{ orderInfo.payAmount.toFixed(2) }}</span>
+          <span class="amount">
+            {{ $pinia._s.get('user').getSymbol }}{{ orderInfo.payAmount.toFixed(2) }}
+          </span>
         </div>
       </div>
     </div>

+ 1 - 1
src/renderer/views/cashier/components/payResultDialog.vue

@@ -89,7 +89,7 @@
           </div>
           <div class="amount-info">
             <span>
-              
+              {{ $pinia._s.get('user').getSymbol }}
               <span class="amount">{{ payResult.payAmount.toFixed(2) }}</span>
             </span>
           </div>

+ 72 - 52
src/renderer/views/cashier/components/pointRecharge.vue

@@ -1,6 +1,14 @@
 <template>
   <!-- 积分变更对话框 -->
-  <el-dialog title="积分变更" :visible.sync="showDialog" class="common-dialog" width="700px" @close="cancel" append-to-body destroy-on-close>
+  <el-dialog
+    title="积分变更"
+    :visible.sync="showDialog"
+    class="common-dialog"
+    width="700px"
+    @close="cancel"
+    append-to-body
+    destroy-on-close
+  >
     <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <el-row>
         <el-col :span="24">
@@ -12,7 +20,7 @@
       <el-row>
         <el-col :span="24">
           <el-form-item label="可用积分:" prop="balance">
-            <span>{{ memberInfo.point }}</span>
+            <span>{{ $pinia._s.get('user').getSymbol }}{{ memberInfo.point }}</span>
           </el-form-item>
         </el-col>
       </el-row>
@@ -29,14 +37,25 @@
       <el-row>
         <el-col :span="24">
           <el-form-item label="变更数量:" prop="amount">
-            <el-input v-model="form.amount" placeholder="请输入变更数量" style="width: 200px" maxlength="100" />
+            <el-input
+              v-model="form.amount"
+              placeholder="请输入变更数量"
+              style="width: 200px"
+              maxlength="100"
+            />
           </el-form-item>
         </el-col>
       </el-row>
       <el-row>
         <el-col :span="24">
           <el-form-item class="recharge-item" prop="remark" label="备注信息:">
-            <el-input v-model="form.remark" type="textarea" rows="2" placeholder="请输入备注信息" maxlength="255" />
+            <el-input
+              v-model="form.remark"
+              type="textarea"
+              rows="2"
+              placeholder="请输入备注信息"
+              maxlength="255"
+            />
           </el-form-item>
         </el-col>
       </el-row>
@@ -49,19 +68,19 @@
 </template>
 
 <script>
-import { doRecharge } from "@/api/point";
-import { getMemberInfo } from "@/api/member";
+import { doRecharge } from '@/api/point'
+import { getMemberInfo } from '@/api/member'
 export default {
-  name: "pointRecharge",
+  name: 'pointRecharge',
   props: {
-    showDialog:{
-      type:[Boolean],
-      default:()=>false
+    showDialog: {
+      type: [Boolean],
+      default: () => false,
+    },
+    userId: {
+      type: [String],
+      default: () => '',
     },
-    userId:{
-      type:[String],
-      default:()=> ''
-    }
   },
   data() {
     return {
@@ -72,62 +91,63 @@ export default {
       form: { type: '1', amount: '', userId: '' },
       // 表单校验
       rules: {
-        userId: [
-          { required: true, message: "请选择会员", trigger: "blur" },
-        ],
+        userId: [{ required: true, message: '请选择会员', trigger: 'blur' }],
         amount: [
-          { required: true, message: "金额不能为空", trigger: "blur" },
-          { pattern: /^[0-9]{1,10}$/, message: `请输入1-10位数字`, trigger: 'blur' }
-        ]
-      }
-    };
+          { required: true, message: '金额不能为空', trigger: 'blur' },
+          { pattern: /^[0-9]{1,10}$/, message: `请输入1-10位数字`, trigger: 'blur' },
+        ],
+      },
+    }
   },
   watch: {
     showDialog(value) {
       if (value) {
-          this.getMemberInfo()
+        this.getMemberInfo()
       }
-    }
+    },
   },
   methods: {
     // 查询会员信息
     getMemberInfo() {
-      this.loading = true;
-      getMemberInfo(this.userId).then(response => {
-          this.form.userId = response.data.memberInfo.id;
-          this.memberInfo = response.data.memberInfo;
-          this.loading = false;
-        }
-      ).catch(() => {
-        // empty
-      });
+      this.loading = true
+      getMemberInfo(this.userId)
+        .then((response) => {
+          this.form.userId = response.data.memberInfo.id
+          this.memberInfo = response.data.memberInfo
+          this.loading = false
+        })
+        .catch(() => {
+          // empty
+        })
     },
     // 取消按钮
     cancel() {
-      this.$emit('closeDialog','point');
+      this.$emit('closeDialog', 'point')
     },
     // 充值表单
     reset() {
-      this.form.userId = '';
-      this.form.type = '1';
-      this.form.amount = '';
-      this.form.remark = '';
-      this.memberInfo = { name: '', id: '', point: 0 };
+      this.form.userId = ''
+      this.form.type = '1'
+      this.form.amount = ''
+      this.form.remark = ''
+      this.memberInfo = { name: '', id: '', point: 0 }
     },
     // 提交按钮
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
+    submitForm: function () {
+      this.$refs['form'].validate((valid) => {
         if (valid) {
-            doRecharge(this.form).then(response => {
-               this.$alert("积分操作成功!");
-               this.$emit('closeDialog','point');
-               this.reset();
-            }).catch(() => {
-               // empty
-            });
+          doRecharge(this.form)
+            .then((response) => {
+              this.$alert('积分操作成功!')
+              this.$emit('closeDialog', 'point')
+              this.reset()
+            })
+            .catch(() => {
+              // empty
+            })
         }
-      });
-    }
-  }
-};
+      })
+    },
+  },
+}
 </script>

+ 109 - 71
src/renderer/views/cashier/components/scanPayCodeDialog.vue

@@ -1,84 +1,122 @@
 <template>
-    <el-dialog class="common-dialog" title="扫码收款中..." :visible="showDialog" @close="submit" width="580px" destroy-on-close>
-          <el-row>
-            <el-col :span="24">
-              <div class="main">
-                <svg t="1666919356080" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3143" width="60" height="60" data-spm-anchor-id="a313x.7781069.0.i25"><path d="M212.924 434.56h-60.881V71.908h60.881V434.56z m149.56-362.652h-86.03V434.56h86.03V71.908z m111.842 0H431.31V434.56h43.015l0.001-362.652z m151.544 0H525.28V434.56h100.59V71.908z m88.676 0h-25.148V434.56h25.148V71.908z m70.148 0h-33.089V434.56h33.089V71.908z m91.326 0h-64.854V434.56h64.854V71.908z m-6.285 394.083h-58.569V638.8h58.569V465.991z m121.27-31.431h-86.91v31.433h86.91V434.56zM211.77 461.949h-58.572v172.808h58.57V461.949h0.002z m-89.866-27.389H34.995v31.433h86.909V434.56z m600.584 126.252v34.613a270.753 270.753 0 0 1-48.906 155.214L600.72 854.782v93.31H419.4v-93.31l-72.862-104.143a270.76 270.76 0 0 1-48.906-155.214v-34.613c0-37.384 30.305-67.69 67.691-67.69h289.474c37.385 0.002 67.691 30.309 67.691 67.69z m-106.356 20.384H395.72c21.622 38.569 62.84 64.677 110.205 64.677s88.584-26.104 110.207-64.677z" p-id="3144" fill="#707070" data-spm-anchor-id="a313x.7781069.0.i28" class="selected"></path></svg>
-                <div class="amount-info">
-                  <span class="amount">¥{{ payAmount.toFixed(2) }}</span>
-                </div>
-                <div class="tips">请使用扫码枪,扫描会员付款码!</div>
-              </div>
-            </el-col>
-          </el-row>
-        <div slot="footer" class="dialog-footer">
-           <el-button type="primary" class="main-button" @click="submit()">扫码完成</el-button>
+  <el-dialog
+    class="common-dialog"
+    title="扫码收款中..."
+    :visible="showDialog"
+    @close="submit"
+    width="580px"
+    destroy-on-close
+  >
+    <el-row>
+      <el-col :span="24">
+        <div class="main">
+          <svg
+            t="1666919356080"
+            class="icon"
+            viewBox="0 0 1024 1024"
+            version="1.1"
+            xmlns="http://www.w3.org/2000/svg"
+            p-id="3143"
+            width="60"
+            height="60"
+            data-spm-anchor-id="a313x.7781069.0.i25"
+          >
+            <path
+              d="M212.924 434.56h-60.881V71.908h60.881V434.56z m149.56-362.652h-86.03V434.56h86.03V71.908z m111.842 0H431.31V434.56h43.015l0.001-362.652z m151.544 0H525.28V434.56h100.59V71.908z m88.676 0h-25.148V434.56h25.148V71.908z m70.148 0h-33.089V434.56h33.089V71.908z m91.326 0h-64.854V434.56h64.854V71.908z m-6.285 394.083h-58.569V638.8h58.569V465.991z m121.27-31.431h-86.91v31.433h86.91V434.56zM211.77 461.949h-58.572v172.808h58.57V461.949h0.002z m-89.866-27.389H34.995v31.433h86.909V434.56z m600.584 126.252v34.613a270.753 270.753 0 0 1-48.906 155.214L600.72 854.782v93.31H419.4v-93.31l-72.862-104.143a270.76 270.76 0 0 1-48.906-155.214v-34.613c0-37.384 30.305-67.69 67.691-67.69h289.474c37.385 0.002 67.691 30.309 67.691 67.69z m-106.356 20.384H395.72c21.622 38.569 62.84 64.677 110.205 64.677s88.584-26.104 110.207-64.677z"
+              p-id="3144"
+              fill="#707070"
+              data-spm-anchor-id="a313x.7781069.0.i28"
+              class="selected"
+            ></path>
+          </svg>
+          <div class="amount-info">
+            <span class="amount">
+              {{ $pinia._s.get('user').getSymbol }}{{ payAmount.toFixed(2) }}
+            </span>
+          </div>
+          <div class="tips">请使用扫码枪,扫描会员付款码!</div>
         </div>
-    </el-dialog>
+      </el-col>
+    </el-row>
+    <div slot="footer" class="dialog-footer">
+      <el-button type="primary" class="main-button" @click="submit()">扫码完成</el-button>
+    </div>
+  </el-dialog>
 </template>
 <script>
-import { doPay } from "@/api/cashier";
+import { doPay } from '@/api/cashier'
 export default {
-    props: {
-      showDialog: {
-        type:[Boolean],
-        default:()=>false
-      },
-      payAmount: {
-        type:[Number],
-        default:()=>0
-      },
-      orderId: {
-        type:[Number],
-        default:()=>0
-      },
-      payType: {
-        type:[String],
-        default:()=>'MICROPAY'
-      }
+  props: {
+    showDialog: {
+      type: [Boolean],
+      default: () => false,
+    },
+    payAmount: {
+      type: [Number],
+      default: () => 0,
+    },
+    orderId: {
+      type: [Number],
+      default: () => 0,
     },
-    data(){
-        return {
-          loading: false
-        }
+    payType: {
+      type: [String],
+      default: () => 'MICROPAY',
     },
-    methods: {
-       submit(code) {
-         const app = this;
-         if (code == undefined) {
-             app.$emit('closeDialog','scanPayCodeDialog');
-         } else {
-             doPay({ orderId: app.orderId, authCode: code, payType: app.payType }).then( response => {
-                if (response.data.payment) {
-                    app.$emit('closeDialog', 'scanPayCodeDialog');
-                    app.$emit('showPayResult', { isSuccess: true, payAmount: app.payAmount, orderId: app.orderId });
-                } else {
-                    app.$emit('closeDialog', 'scanPayCodeDialog');
-                    app.$emit('showPayResult', { isSuccess: false, isPaying: response.data.isPaying, payAmount: app.payAmount, orderId: app.orderId });
-                }
-             }).catch(() => {
-                // empty
-             });
-         }
-       }
+  },
+  data() {
+    return {
+      loading: false,
     }
+  },
+  methods: {
+    submit(code) {
+      const app = this
+      if (code == undefined) {
+        app.$emit('closeDialog', 'scanPayCodeDialog')
+      } else {
+        doPay({ orderId: app.orderId, authCode: code, payType: app.payType })
+          .then((response) => {
+            if (response.data.payment) {
+              app.$emit('closeDialog', 'scanPayCodeDialog')
+              app.$emit('showPayResult', {
+                isSuccess: true,
+                payAmount: app.payAmount,
+                orderId: app.orderId,
+              })
+            } else {
+              app.$emit('closeDialog', 'scanPayCodeDialog')
+              app.$emit('showPayResult', {
+                isSuccess: false,
+                isPaying: response.data.isPaying,
+                payAmount: app.payAmount,
+                orderId: app.orderId,
+              })
+            }
+          })
+          .catch(() => {
+            // empty
+          })
+      }
+    },
+  },
 }
 </script>
 <style lang="scss" scoped>
-    .main {
-       height: 140px;
-       padding-top: 2px;
-       text-align: center;
-       font-size: 16px;
-       .amount-info {
-          margin-bottom: 20px;
-         .amount {
-           font-size: 28px;
-         }
-       }
-       .tips {
-          font-size: 14px;
-          color: #888888;
-       }
+.main {
+  height: 140px;
+  padding-top: 2px;
+  text-align: center;
+  font-size: 16px;
+  .amount-info {
+    margin-bottom: 20px;
+    .amount {
+      font-size: 28px;
     }
+  }
+  .tips {
+    font-size: 14px;
+    color: #888888;
+  }
+}
 </style>

+ 3 - 3
src/renderer/views/cashier/components/settlementDialog.vue

@@ -23,7 +23,7 @@
           <div class="item active" v-for="coupon in couponList">
             <div @click="useThisCoupon(coupon)">
               <div class="left">
-                <div class="amount">{{ coupon.amount }}</div>
+                <div class="amount">{{ $pinia._s.get('user').getSymbol }}{{ coupon.amount }}</div>
                 <div class="tips">{{ coupon.description }}</div>
               </div>
               <div class="right">
@@ -222,11 +222,11 @@
             </div>
             <div class="amount-info">
               <span class="discount-amount">
-                {{ $t('you-hui-jin-e') }}:
+                {{ $t('you-hui-jin-e') }}:{{ $pinia._s.get('user').getSymbol }}
                 <span class="value">{{ discountPrice.toFixed(2) }}</span>
               </span>
               <span class="pay-amount">
-                {{ $t('ying-fu-jin-e') }}:
+                {{ $t('ying-fu-jin-e') }}:{{ $pinia._s.get('user').getSymbol }}
                 <span class="value">{{ newTotalPrice.toFixed(2) }}</span>
               </span>
             </div>

+ 23 - 13
src/renderer/views/cashier/index.vue

@@ -89,7 +89,10 @@
                         class="remove el-icon-delete"
                         @click="removeFromCart(cartInfo.cartId)"
                       ></div>
-                      <div class="total">¥{{ (cartInfo.price * cartInfo.buyNum).toFixed(2) }}</div>
+                      <div class="total">
+                        {{ $pinia._s.get('user').getSymbol
+                        }}{{ (cartInfo.price * cartInfo.buyNum).toFixed(2) }}
+                      </div>
                     </div>
                   </div>
                 </div>
@@ -110,7 +113,10 @@
               </div>
               <div class="total-price">
                 {{ $t('zong-jin-e') }}:
-                <b class="num">¥{{ cartTotalPrice ? cartTotalPrice.toFixed(2) : '0.00' }}</b>
+                <b class="num">
+                  {{ $pinia._s.get('user').getSymbol
+                  }}{{ cartTotalPrice ? cartTotalPrice.toFixed(2) : '0.00' }}
+                </b>
               </div>
             </div>
             <div class="options">
@@ -195,9 +201,6 @@
                 class="bg-white rounded-lg shadow-sm overflow-hidden cursor-pointer hover:shadow-md transition"
                 @click="clickGoods(goodsInfo)"
               >
-                <!-- <img class="image" lazy :src="imagePath + goodsInfo.logo" />
-                <div class="goods-name">{{ goodsInfo.name }}</div>
-                <div class="goods-price">¥{{ goodsInfo.price }}</div> -->
                 <img lazy :src="imagePath + goodsInfo.logo" class="w-full h-48 object-cover" />
                 <div class="p-3">
                   <h3 class="font-medium mb-2">{{ goodsInfo.name }}</h3>
@@ -246,7 +249,7 @@
     >
       <div class="goods-info">
         <div class="name">{{ goodsInfo.name }}</div>
-        <div class="price">{{ skuPrice }}</div>
+        <div class="price">{{ $pinia._s.get('user').getSymbol }}{{ skuPrice }}</div>
         <div class="num">
           <el-input-number class="input" v-model="goodsNum" :min="1" :max="1000" />
         </div>
@@ -1308,9 +1311,10 @@ export default {
       display: block;
       width: 100%;
       color: #666666;
-      margin-bottom: 120px;
+      // margin-bottom: 120px;
+      box-sizing: border-box;
       // margin-top: 70px;
-      padding: 0px;
+      padding-bottom: 150px;
       .tab {
         width: 50%;
         .cart-list {
@@ -1398,13 +1402,17 @@ export default {
     .footer {
       position: fixed;
       z-index: 999;
-      bottom: 0;
-      height: 120px;
+      bottom: -10px;
+      height: 130px;
       padding-top: 5px;
       padding-right: 15px;
       display: block;
       width: 310px;
       margin-bottom: 10px;
+      background-color: #fff;
+      box-sizing: border-box;
+      padding-bottom: 10px;
+      border-top: 1px solid #f5f5f5;
       .number {
         float: right;
         margin: 5px;
@@ -1497,9 +1505,11 @@ export default {
       margin-left: 2px;
       margin-bottom: 200px;
       .goods-item {
-        width: 33.3%;
-        min-height: 300px;
-        min-width: 220px;
+        // width: 33.3%;
+        // min-height: 300px;
+        height: 300px;
+        // min-width: 220px;
+        width: 220px;
         padding: 3px;
         float: left;
         background: #ffffff;

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

@@ -75,12 +75,11 @@
 
 <script>
 import { useUserStore } from '@/store/user'
-import { useRouter } from '@/hooks/use-router'
 import { getCodeImg } from '@/api/login'
 import LangTab from '@/components/LangTab/index.vue'
 
 const { login } = useUserStore()
-const router = useRouter()
+
 export default {
   components: { LangTab },
   data() {
@@ -136,8 +135,7 @@ export default {
             .then(() => {
               app.loading = false
               console.log('登录成功了!')
-              app.$router.push({ path: '/cashier' }).catch(() => {})
-              router.push({ path: '/' }).catch((err) => {
+              app.$router.push({ path: '/cashier' }).catch((err) => {
                 console.log('跳转失败...', err)
               })
               console.log('登录成功了...')