Browse Source

添加多语言,添加税代码

gaoxinyuan 1 year ago
parent
commit
8f149d3e8c

+ 127 - 4
raising-vue-pro/src/views/public/tableOrders/orderDetail.vue

@@ -82,6 +82,13 @@
               </template>
             </el-table-column>
 
+            <el-table-column align="center" prop="taxStatus" :render-header="taxHeader" width="110">
+              <template slot-scope="scope">
+                <el-checkbox v-model="scope.row.taxStatus" true-label="1" false-label="0"
+                             @change="taxToggleCheck(scope.row)"></el-checkbox>
+              </template>
+            </el-table-column>
+
             <el-table-column align="center" prop="paymentPrice" label="計" width="70">
               <template slot-scope="scope">
                 <p>¥<span>{{ scope.row.paymentPrice }}</span></p>
@@ -349,7 +356,10 @@ export default {
 
       // 是否打包
       isCheck: false,
+      // 是否全选税
+      isTaxCheck: false,
       isIndeterminate: false,
+      isTaxIndeterminate: false,
       // 税金默认值
       alonePackingPrice: 2,
       // 表格选中数据
@@ -406,7 +416,7 @@ export default {
           amount += Number(dataItem.finalPaymentTotalPrice)
         }
       })
-      return amount
+      return amount.toFixed(2)
     },
 
   },
@@ -494,7 +504,7 @@ export default {
 
         // 初始化税金
         this.tableData.forEach(item => {
-          item.alonePackingPrice = this.getTaxesPrice(item)
+          item.alonePackingPrice = 0
         })
 
         // 表格全选
@@ -506,11 +516,21 @@ export default {
     },
 
     /**
-     * 计算税金
+     * 计算税金(0.1)
      * @param item
      */
     getTaxesPrice(item) {
-      return this.alonePackingPrice
+      let alonePackingPrice = item.paymentPrice * 0.1
+      return alonePackingPrice
+    },
+
+    /**
+     * 计算税金(0.08)
+     * @param item
+     */
+    getTaxePrice(item) {
+      let alonePackingPrice = item.paymentPrice * 0.08
+      return alonePackingPrice
     },
 
     /**
@@ -569,6 +589,29 @@ export default {
     },
 
     /**
+     * 税--表头初始化
+     * @param h
+     * @param data
+     * @returns {VNode}
+     */
+    taxHeader(h, data) {
+      return h('span', [
+        h(
+          'el-checkbox',
+          {
+            on: {
+              change: this.taxSelectBox
+            },
+            props: {
+              value: this.isTaxCheck,
+            }
+          },
+          '税'
+        )
+      ]);
+    },
+
+    /**
      * 是否打包--全选操作
      */
     selectBox() {
@@ -598,17 +641,93 @@ export default {
       this.isIndeterminate = false;
       if (this.isCheck) {
         this.tableData.forEach((data) => {
+          this.isTaxCheck = false
+          data.taxStatus = '0'
+          data.alonePackingPrice = this.getTaxePrice(data)
           data['finalPaymentTotalPrice'] = data.paymentPrice + data.alonePackingPrice;
         });
       }
       if (!this.isCheck) {
         this.tableData.forEach((data) => {
+          data.alonePackingPrice = 0
+          data['finalPaymentTotalPrice'] = data.paymentPrice;
+        });
+      }
+    },
+
+    /**
+     * 是否税--全选操作
+     */
+    taxSelectBox() {
+      this.isTaxCheck = !this.isTaxCheck;
+      let list = [...this.tableData];
+      for (let val of list) {
+        val.taxStatus = this.isTaxCheck;
+      }
+      this.tableData = list;
+
+      // 重新选中
+      let selectTableData = []
+
+      this.multipleSelection.forEach((item) => {
+        this.tableData.forEach((data) => {
+          if (item.id === data.id) {
+            selectTableData.push(data)
+          }
+        });
+      })
+
+      // 表格全选
+      this.$nextTick(() => {
+        this.toggleSelection(selectTableData)
+      })
+
+      this.isTaxIndeterminate = false;
+      if (this.isTaxCheck) {
+        this.tableData.forEach((data) => {
+          this.isCheck = false
+          data.packingStatus = '0'
+          data.alonePackingPrice = this.getTaxesPrice(data)
+          data['finalPaymentTotalPrice'] = data.paymentPrice + data.alonePackingPrice;
+        });
+      }
+      if (!this.isTaxCheck) {
+        this.tableData.forEach((data) => {
+          data.alonePackingPrice = 0
           data['finalPaymentTotalPrice'] = data.paymentPrice;
         });
       }
     },
 
     /**
+     * 是否包含税金--半选操作
+     */
+    taxToggleCheck(row) {
+      // 获取已勾选
+      let list = this.tableData.filter((item) => item.taxStatus == '1');
+      this.isCheck = list.length === this.tableData.length; //是否全选
+      this.isTaxIndeterminate = list.length > 0 && list.length < this.tableData.length; //是否半选
+      if (row.taxStatus == '1') {
+        this.tableData.forEach((data) => {
+          if (data.id === row.id) {
+            this.isCheck = false
+            data.packingStatus = '0'
+            data.alonePackingPrice = this.getTaxesPrice(data)
+            data['finalPaymentTotalPrice'] = data.paymentPrice + data.alonePackingPrice;
+          }
+        });
+      }
+      if (row.taxStatus == '0') {
+        this.tableData.forEach((data) => {
+          if (data.id === row.id) {
+            data.alonePackingPrice = 0
+            data['finalPaymentTotalPrice'] = data.paymentPrice;
+          }
+        });
+      }
+    },
+
+    /**
      * 是否打包--半选操作
      */
     toggleCheck(row) {
@@ -619,6 +738,9 @@ export default {
       if (row.packingStatus == '1') {
         this.tableData.forEach((data) => {
           if (data.id === row.id) {
+            this.isTaxCheck = false
+            data.taxStatus = '0'
+            data.alonePackingPrice = this.getTaxePrice(data)
             data['finalPaymentTotalPrice'] = data.paymentPrice + data.alonePackingPrice;
           }
         });
@@ -626,6 +748,7 @@ export default {
       if (row.packingStatus == '0') {
         this.tableData.forEach((data) => {
           if (data.id === row.id) {
+            data.alonePackingPrice = 0
             data['finalPaymentTotalPrice'] = data.paymentPrice;
           }
         });

+ 4 - 4
raising-vue-uniapp/manifest.json

@@ -1,7 +1,7 @@
 {
-    "name" : "愛食集",
-    "appid" : "__UNI__186B300",
-    "description" : "愛食集",
+    "name" : "金袋",
+    "appid" : "__UNI__D86A2EF",
+    "description" : "金袋",
     "versionName" : "2.0.101",
     "versionCode" : 20101,
     "transformPx" : false,
@@ -9,7 +9,7 @@
         "usingComponents" : true,
         "nvueCompiler" : "uni-app",
         "compilerVersion" : 3,
-		"orientation" : [ "landscape-primary","landscape-secondary" ],
+        "orientation" : [ "landscape-primary", "landscape-secondary" ],
         "splashscreen" : {
             "alwaysShowBeforeRender" : true,
             "waiting" : true,

+ 11 - 2
raising-vue-uniapp/upms/views/menu/languageDialog.vue

@@ -59,7 +59,7 @@ export default {
       CNLan: {
         name: '中文',
         value: 'CN',
-        checked: true
+        checked: false
       },
       JPLan: {
         name: '日本語.',
@@ -76,9 +76,14 @@ export default {
         value: 'KR',
         checked: false
       },
-      selectLan: ''
+      selectLan: 'CN'
     };
   },
+  
+  created() {
+	this.checkboxChange('CN')
+  },
+  
   methods: {
     openDialog() {
       this.$refs.languagePopup.open("center");
@@ -93,6 +98,7 @@ export default {
         this.USALan.checked = false;
         this.KRLan.checked = false;
         this.selectLan = this.CNLan.value;
+		this.$emit('get-language-change' , this.selectLan)
       }
       if (type == 'JP') {
         this.CNLan.checked = false;
@@ -100,6 +106,7 @@ export default {
         this.USALan.checked = false;
         this.KRLan.checked = false;
         this.selectLan = this.JPLan.value;
+		this.$emit('get-language-change' , this.selectLan)
       }
       if (type == 'USA') {
         this.CNLan.checked = false;
@@ -107,6 +114,7 @@ export default {
         this.USALan.checked = true;
         this.KRLan.checked = false;
         this.selectLan = this.USALan.value;
+		this.$emit('get-language-change' , this.selectLan)
       }
       if (type == 'KR') {
         this.CNLan.checked = false;
@@ -114,6 +122,7 @@ export default {
         this.USALan.checked = false;
         this.KRLan.checked = true;
         this.selectLan = this.KRLan.value;
+		this.$emit('get-language-change' , this.selectLan)
       }
     }
   },

+ 51 - 36
raising-vue-uniapp/upms/views/menu/menu.vue

@@ -15,13 +15,14 @@
           </view>
           <view class="info">
             <view class="info-table">
-              <text>テーブル番号:{{ tableNo }}番号</text>
+				<!-- {{ language.languageConversion(LanguageChange,"テーブル番号") }} -->
+              <text>{{ languageConversion("テーブル番号") }} :{{ tableNo }}{{ languageConversion("番号") }}</text>
               <button @click="openNumberDialog()">
-                <text>{{ tablePerson }}人</text>
+                <text>{{ tablePerson }}{{ languageConversion("") }}</text>
                 <view class="edit-icon"></view>
               </button>
             </view>
-            <text class="info-time">来店時間:{{ enterTime?$moment(enterTime).format('HH:mm'):'-' }}</text>
+            <text class="info-time">{{ languageConversion("来店時間") }}:{{ enterTime?$moment(enterTime).format('HH:mm'):'-' }}</text>
           </view>
         </view>
         <view class="top-right">
@@ -31,7 +32,7 @@
                 src="@/static/public/img/call-pad.png"
             >
             </image>
-            店員を呼ぶ
+			{{ languageConversion("店員を呼ぶ") }}
           </button>
         </view>
       </view>
@@ -85,9 +86,9 @@
                 />
               </view>
               <view class="content">
-                <text>カート ¥{{ shoppingCardMoney }}</text>
+                <text>{{ languageConversion("カート") }} ¥{{ shoppingCardMoney }}</text>
                 <text
-                >合計金額 ¥{{ allTotalAmount }} | 注文済料 ¥{{ orderTotalAmount }}
+                >{{ languageConversion("合計金額") }} ¥{{ allTotalAmount }} | {{ languageConversion("注文済料") }} ¥{{ orderTotalAmount }}
                 </text
                 >
               </view>
@@ -161,21 +162,21 @@
     </view>
 
     <!-- 选择语言弹窗 -->
-    <LanguageDialog ref="languageDialogRef"></LanguageDialog>
+    <LanguageDialog ref="languageDialogRef" @get-language-change="getLanguageChange"></LanguageDialog>
 
     <!-- 输入人数弹窗 -->
     <view class="number-popup">
       <uni-popup ref="numberPopup" type="dialog">
         <uni-popup-dialog>
           <view class="popup-title">
-            <view class="title-content">お食事の人数</view>
+            <view class="title-content">{{ languageConversion("お食事の人数") }}</view>
             <view class="close-btn" @click="closeNumberDialog()"></view>
           </view>
           <view class="popup-content">
             <view class="number-input">
               <input
                   class="uni-input"
-                  placeholder="お食事の人数入力"
+                  :placeholder="languageConversion('お食事の人数入力')"
                   :value="inputNumberValue"
               />
               <view class="suffix-divider"></view>
@@ -213,7 +214,7 @@
             </view>
             <view class="food-demand">
               <view class="demand-weight demand-checkbox">
-                <view class="text">份量</view>
+                <view class="text">{{ languageConversion("份量") }}</view>
                 <uni-data-checkbox
                     mode="tag"
                     v-model="demandWeight"
@@ -221,7 +222,7 @@
                 ></uni-data-checkbox>
               </view>
               <view class="demand-doneness demand-checkbox">
-                <view class="text">熟度</view>
+                <view class="text">{{ languageConversion("熟度") }}</view>
                 <uni-data-checkbox
                     mode="tag"
                     v-model="demandDoneness"
@@ -230,9 +231,9 @@
               </view>
               <view class="demand-material demand-checkbox">
                 <view class="text">
-                  <view>小料</view>
+                  <view>{{ languageConversion("小料") }}</view>
                   <view class="text-tag">
-                    <text>多选</text>
+                    <text>{{ languageConversion("多选") }}</text>
                   </view>
                 </view>
                 <uni-data-checkbox
@@ -269,7 +270,7 @@
                 />
               </view>
               <view class="add-btn">
-                <button @click="addShopping()">カートに追加</button>
+                <button @click="addShopping()">{{ languageConversion("カートに追加") }}</button>
               </view>
             </view>
           </view>
@@ -282,7 +283,7 @@
       <uni-popup ref="orderPopup" type="dialog">
         <uni-popup-dialog>
           <view class="popup-title">
-            <view class="title-content">注文</view>
+            <view class="title-content">{{ languageConversion("注文") }}</view>
             <view class="close-btn" @click="closeOrderDialog()"></view>
           </view>
           <view class="popup-content">
@@ -301,7 +302,7 @@
                   class="tab-right_item"
               >
                 <view class="tab-block" @click="orderTabChange(item)">
-                  <text>{{ item.text }}</text>
+                  <text>{{ languageConversion(item.text) }}</text>
                 </view>
               </view>
             </view>
@@ -312,17 +313,17 @@
                 <table ref="shoppingTable" class="table-style" :key="shopTableKey">
                   <thead>
                   <tr class="table-head">
-                    <th align="left">料理名前</th>
-                    <th width="100" align="center">数量</th>
-                    <th width="60" align="center">単価</th>
-                    <th width="60" align="center">合計金額</th>
+                    <th align="left">{{ languageConversion("料理名前") }}</th>
+                    <th width="100" align="center">{{ languageConversion("数量") }}</th>
+                    <th width="60" align="center">{{ languageConversion("単価") }}</th>
+                    <th width="60" align="center">{{ languageConversion("合計金額") }}</th>
                   </tr>
                   </thead>
                   <view v-if="shoppingList.length === 0" class="m-t-35">
                     <u-empty
                         mode="car"
                         icon="http://cdn.uviewui.com/uview/empty/car.png"
-                        text="カートはガラガラですので、まずはメニューをお選びください"
+                        :text="languageConversion('カートはガラガラですので、まずはメニューをお選びください')"
                     >
                     </u-empty>
                   </view>
@@ -383,7 +384,7 @@
               </view>
               <view class="shopping-foot">
                 <view class="foot-text">
-                  <text>カートの合計:</text>
+                  <text>{{ languageConversion("カートの合計") }}:</text>
                   <text style="padding-left: 17.24rpx;">¥</text>
                   <text v-if="shoppingCardMoney" class="allprice-text">{{ shoppingCardMoney }}</text>
                   <text v-else class="allprice-text">0</text>
@@ -395,11 +396,11 @@
                 <table ref="orderedTable" class="table-style" :key="shopTableKey">
                   <thead>
                   <tr class="table-head">
-                    <th align="left">料理名前</th>
-                    <th width="30" align="center">数量</th>
-                    <th width="40" align="center">単価</th>
-                    <th width="60" align="center">合計金額</th>
-                    <th width="70" align="center">状態</th>
+                    <th align="left">{{ languageConversion("料理名前") }}</th>
+                    <th width="30" align="center">{{ languageConversion("数量") }}</th>
+                    <th width="40" align="center">{{ languageConversion("単価") }}</th>
+                    <th width="60" align="center">{{ languageConversion("合計金額") }}</th>
+                    <th width="70" align="center">{{ languageConversion("状態") }}</th>
                   </tr>
                   </thead>
                   <tbody class="table-tbody">
@@ -446,9 +447,9 @@
                       {{ order.salesTotalAmount }}
                     </td>
                     <td width="70" align="center">
-                      <text v-if="order.status === 0" class="order-status" style="background: #FF831C;">作成中</text>
-                      <text v-if="order.status === 1" class="order-status" style="background: #04B85B;">料理を出し</text>
-                      <text v-if="order.status === 2" class="order-status" style="background: rgba(0,0,0,0.2);">取消済
+                      <text v-if="order.status === 0" class="order-status" style="background: #FF831C;">{{ languageConversion("作成中") }}</text>
+                      <text v-if="order.status === 1" class="order-status" style="background: #04B85B;">{{ languageConversion("料理を出し") }}</text>
+                      <text v-if="order.status === 2" class="order-status" style="background: rgba(0,0,0,0.2);">{{ languageConversion("取消済") }}
                       </text>
                     </td>
                   </tr>
@@ -457,7 +458,7 @@
               </view>
               <view class="shopping-foot">
                 <view class="foot-text">
-                  <text>注文済合計:</text>
+                  <text>{{ languageConversion("注文済合計") }}:</text>
                   <text style="padding-left: 17.24rpx;">¥</text>
                   <text v-if="orderedAllPrice" class="allprice-text">{{ orderedAllPrice }}</text>
                   <text v-else class="allprice-text">0</text>
@@ -468,21 +469,21 @@
           <view class="popup-footer">
             <view class="price-text">
               <text class="price">¥{{ allTotalAmount }}</text>
-              <text>総注文合計</text>
+              <text>{{ languageConversion("総注文合計") }}</text>
             </view>
             <block v-if="orderTab == 0">
               <view class="order-btn" v-if="shoppingList.length > 0">
-                <button @click="createOrder">カート注文</button>
+                <button @click="createOrder">{{ languageConversion("カート注文") }}</button>
               </view>
 
               <view class="order-btn" v-if="shoppingList.length === 0">
-                <button @click="$refs.orderPopup.close()">去选购菜品</button>
+                <button @click="$refs.orderPopup.close()">{{ languageConversion("去选购菜品") }}</button>
               </view>
             </block>
 
             <block v-if="orderTab == 1">
               <view class="order-close-btn">
-                <button @click="$refs.orderPopup.close()">关 闭</button>
+                <button @click="$refs.orderPopup.close()"{{ languageConversion("关 闭") }}></button>
               </view>
             </block>
 
@@ -509,6 +510,8 @@ import util from 'utils/util'
 import __config from 'config/env';
 import moment from '@/public/moment/moment.js'
 
+import language from 'utils/language'
+
 import Decimal from "decimal.js";
 
 import goodsSku from '@/upms/components/ipad-goods-sku/index.vue'
@@ -517,6 +520,8 @@ export default {
   components: {LanguageDialog, NumberKeypad, goodsSku},
   data() {
     return {
+	  LanguageChange: 'CN',
+		
       tableId: undefined,
       tableNo: "6",
       tableInfo: {},
@@ -757,7 +762,17 @@ export default {
     this.initFetchAllInfos()
   },
   methods: {
-
+	languageConversion(value){
+		return language.languageConversion(this.LanguageChange,value)
+	},
+	  
+	getLanguageChange(newValue){
+		if(newValue){
+			this.LanguageChange = newValue
+		}else{
+			this.LanguageChange = 'CN'
+		}
+	},
 
 	
 	/**