Procházet zdrojové kódy

合并解决冲突

root před 3 roky
rodič
revize
062d381f1e
76 změnil soubory, kde provedl 1683 přidání a 1081 odebrání
  1. 5 4
      backendApi/config/menu.php
  2. 1 0
      backendApi/config/urlManagerRules.php
  3. 20 0
      backendApi/modules/v1/controllers/ConfigController.php
  4. 14 1
      backendApi/modules/v1/controllers/ShopController.php
  5. 3 0
      backendApi/modules/v1/controllers/SiteController.php
  6. 1 1
      backendApi/modules/v1/controllers/UserController.php
  7. 1 0
      backendApi/modules/v1/models/lists/finance/RechargeList.php
  8. 37 37
      backendApi/modules/v1/models/lists/shop/DecOrderList.php
  9. 35 20
      backendApi/modules/v1/models/lists/shop/GoodsList.php
  10. 29 15
      backendApi/modules/v1/models/lists/shop/PackageList.php
  11. 19 19
      backendEle/src/components/FilterUser.vue
  12. 2 1
      backendEle/src/main.js
  13. 26 14
      backendEle/src/router/index.js
  14. 2 1
      backendEle/src/static/css/style.css
  15. 4 1
      backendEle/src/utils/baseInfo.js
  16. 75 0
      backendEle/src/views/config/exchange-rate.vue
  17. 2 2
      backendEle/src/views/dashboard/index.vue
  18. 9 9
      backendEle/src/views/layout/layout.vue
  19. 10 10
      backendEle/src/views/shop/dec-order-list.vue
  20. 30 17
      backendEle/src/views/shop/goods-add.vue
  21. 48 35
      backendEle/src/views/shop/index.vue
  22. 31 11
      backendEle/src/views/shop/package-add.vue
  23. 37 22
      backendEle/src/views/shop/package.vue
  24. 33 0
      common/helpers/PayStack.php
  25. 1 1
      common/helpers/Validator.php
  26. 12 11
      common/helpers/bonus/BonusCalc.php
  27. 14 9
      common/helpers/bonus/BonusSend.php
  28. 82 79
      common/helpers/user/Balance.php
  29. 10 0
      common/helpers/user/Info.php
  30. 6 1
      common/models/DeclarationPackage.php
  31. 2 1
      common/models/FlowExchangePoints.php
  32. 13 7
      common/models/Order.php
  33. 8 2
      common/models/ReceiveAddress.php
  34. 44 1
      common/models/Recharge.php
  35. 5 2
      common/models/Region.php
  36. 28 24
      common/models/ShopGoods.php
  37. 41 0
      common/models/forms/ConfigForm.php
  38. 16 3
      common/models/forms/DecPackageForm.php
  39. 22 9
      common/models/forms/DeclarationForm.php
  40. 42 14
      common/models/forms/OrderForm.php
  41. 16 11
      common/models/forms/ReceiveAddressForm.php
  42. 21 8
      common/models/forms/RechargeForm.php
  43. 70 22
      common/models/forms/ShopGoodsForm.php
  44. 1 1
      common/models/forms/UserForm.php
  45. 16 2
      console/controllers/ConfigController.php
  46. 24 21
      frontendApi/config/menu.php
  47. 6 6
      frontendApi/modules/v1/controllers/BonusController.php
  48. 6 3
      frontendApi/modules/v1/controllers/ConfigController.php
  49. 22 1
      frontendApi/modules/v1/controllers/DashboardController.php
  50. 2 2
      frontendApi/modules/v1/controllers/FinanceController.php
  51. 5 5
      frontendApi/modules/v1/controllers/ShopController.php
  52. 2 2
      frontendEle/src/components/Filter.vue
  53. 3 2
      frontendEle/src/main.js
  54. 67 67
      frontendEle/src/router/index.js
  55. 1 1
      frontendEle/src/utils/region.js
  56. 4 4
      frontendEle/src/views/article/list.vue
  57. 21 20
      frontendEle/src/views/bonus/index.vue
  58. 33 33
      frontendEle/src/views/bonus/other.vue
  59. 32 12
      frontendEle/src/views/config/receive-address-edit.vue
  60. 16 16
      frontendEle/src/views/config/receive-address-list.vue
  61. 16 15
      frontendEle/src/views/dashboard/index.vue
  62. 80 89
      frontendEle/src/views/finance/recharge-add.vue
  63. 51 29
      frontendEle/src/views/finance/recharge.vue
  64. 25 25
      frontendEle/src/views/finance/withdraw-add.vue
  65. 18 18
      frontendEle/src/views/finance/withdraw.vue
  66. 4 6
      frontendEle/src/views/layout/layout.vue
  67. 5 5
      frontendEle/src/views/login/index.vue
  68. 16 15
      frontendEle/src/views/shop/dec-order-list.vue
  69. 7 7
      frontendEle/src/views/shop/index.vue
  70. 15 15
      frontendEle/src/views/shop/order-list.vue
  71. 123 121
      frontendEle/src/views/shop/order.vue
  72. 25 25
      frontendEle/src/views/shop/reconsume-order.vue
  73. 10 10
      frontendEle/src/views/shop/reconsume.vue
  74. 79 57
      frontendEle/src/views/user/dec.vue
  75. 11 11
      frontendEle/src/views/user/index.vue
  76. 10 10
      frontendEle/src/views/user/password.vue

+ 5 - 4
backendApi/config/menu.php

@@ -11,7 +11,7 @@ return [
 //        'class' => 'list-header',
 //    ],
     'dashboard'=>[
-        'name'=>'控制台',
+        'name'=>'Dashboard',//控制台
         'class' => '',
         'icon'=>'el-icon-guide',
         'controller'=>'dashboard',
@@ -26,7 +26,7 @@ return [
         ]
     ],
     'shop'=>[
-        'name'=>'商城管理',
+        'name'=>'Products Management',//商城管理
         'class' => '',
         'icon'=>'el-icon-goods',
         'controller'=>'shop',
@@ -34,14 +34,14 @@ return [
         'routePath'=>'shop',
         'show'=>1,
         'child'=>[
-            ['name'=>'商品列表', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'index', 'routePath'=>'shop/index', 'show'=>1,],
+            ['name'=>'Products list', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'index', 'routePath'=>'shop/index', 'show'=>1,],//商品列表
             // 新添加的商品操作  --- stat
             ['name'=>'添加商品', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'goods-add', 'routePath'=>'shop/goods-add', 'show'=>0,],
             ['name'=>'编辑商品', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'goods-edit', 'routePath'=>'shop/goods-edit', 'show'=>0,],
             ['name'=>'删除商品', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'goods-delete', 'routePath'=>'shop/goods-delete', 'show'=>0,],
             // 新添加的商品操作 ---stop
             ['name'=>'商品列表导出', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'goods-list-export', 'routePath'=>'shop/goods-list-export', 'show'=>0,],
-            ['name'=>'套餐管理', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'package', 'routePath'=>'shop/package', 'show'=>1,],
+            ['name'=>' Kitting products manage', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'package', 'routePath'=>'shop/package', 'show'=>1,],//套餐管理
             ['name'=>'报单列表', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'dec-order-list', 'routePath'=>'shop/dec-order-list', 'show'=>1,],
             ['name'=>'报单列表导出', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'dec-order-list-export', 'routePath'=>'shop/dec-order-list-export', 'show'=>0,],
             ['name'=>'订单列表', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'order-list', 'routePath'=>'shop/order-list', 'show'=>1,],
@@ -478,6 +478,7 @@ return [
             ['name'=>'短信管理', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'sms', 'routePath'=>'config/sms', 'show'=>1,],
             ['name'=>'积分配置', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'score', 'routePath'=>'config/score', 'show'=>1,],
             ['name'=>'转账配置', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'transfer', 'routePath'=>'config/transfer', 'show'=>1,],
+            ['name'=>'汇率配置', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'exchange-rate', 'routePath'=>'config/exchange-rate', 'show'=>1],
             ['name'=>'其他配置', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'other', 'routePath'=>'config/other', 'show'=>1,],
             ['name'=>'会员级别配置', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'dec-level', 'routePath'=>'config/dec-level', 'show'=>1,],
             ['name'=>'添加会员级别', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'dec-level-add', 'routePath'=>'config/dec-level-add', 'show'=>0,],

+ 1 - 0
backendApi/config/urlManagerRules.php

@@ -295,6 +295,7 @@ return [
             'POST,GET sms' => 'sms',
             'POST,GET transfer' => 'transfer',
             'POST,GET score' => 'score',
+            'POST,GET exchange-rate' => 'exchange-rate',
         ],
     ],
     [

+ 20 - 0
backendApi/modules/v1/controllers/ConfigController.php

@@ -825,4 +825,24 @@ class ConfigController extends BaseController {
         return static::notice('更新服务协议成功');
     }
 
+    /**
+     * 汇率配置.
+     * @return mixed
+     * @throws \yii\db\Exception
+     * @throws \yii\web\HttpException
+     */
+    public function actionExchangeRate() {
+        $form = new ConfigForm();
+        if (Yii::$app->request->post() && $form->load(Yii::$app->request->post(), '')) {
+            if ($form->updateExchangeRate()) {
+                Config::updateToCache();
+                return static::notice('更新汇率配置成功');
+            } else {
+                return static::notice(Form::formatErrorsForApi($form->getErrors()), 422);
+            }
+        }
+
+        $oneData = Config::find()->where('CONFIG_NAME=:CONFIG_NAME', [':CONFIG_NAME' => 'exchangeRate'])->asArray()->one();
+        return static::notice($oneData);
+    }
 }

+ 14 - 1
backendApi/modules/v1/controllers/ShopController.php

@@ -263,7 +263,20 @@ class ShopController extends BaseController {
             });
         }
         $package = DeclarationPackage::findOneAsArray('ID=:ID', [':ID' => $id]);
-        return static::notice(['id' => $package['ID'], 'packageName' => $package['PACKAGE_NAME'],'packageNo' => $package['PACKAGE_NO'], 'amount' => $package['AMOUNT'], 'amountPv' => $package['PV'], 'levelId' => $package['LEVEL_ID'], 'packageContent' => $package['PACKAGE_CONTENT'],'storenums' => $package['STORE_NUMS']]);
+
+        return static::notice(
+            [
+                'id' => $package['ID'],
+                'packageName' => $package['PACKAGE_NAME'],
+                'packageNo' => $package['PACKAGE_NO'],
+                'amount' => $package['AMOUNT'],
+                'amountPv' => $package['PV'],
+                'levelId' => $package['LEVEL_ID'],
+                'packageContent' => $package['PACKAGE_CONTENT'],
+                'amountStandard' => $package['AMOUNT_STANDARD'],
+				'storenums' => $package['STORE_NUMS']
+            ]);
+
     }
 
     /**

+ 3 - 0
backendApi/modules/v1/controllers/SiteController.php

@@ -99,6 +99,8 @@ class SiteController extends BaseController
         // 期数
         $period = Period::instance();
         $periodNum = $period->getNowPeriodNum();
+        // 汇率
+        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
         return [
             'decLevels' => $decLevels,
             'empLevels' => $empLevels,
@@ -116,6 +118,7 @@ class SiteController extends BaseController
             'allOpenBank' => $allOpenBank,
             'allNation' => $allNation,
             'nowPeriodNum' => $periodNum,
+            'exchangeRate' => $exchangeRate,
         ];
     }
 

+ 1 - 1
backendApi/modules/v1/controllers/UserController.php

@@ -1081,7 +1081,7 @@ class UserController extends BaseController
         $allNation = Yii::$app->params['nation'];
         // 所有开户行
         $allOpenBank = OpenBank::findAllAsArray('STATUS=1');
-        if (!$userName = Info::generateUserName('KD')) {
+        if (!$userName = Info::generateUserName('NG')) {
             return static::notice('会员编号生成失败', 400);
         }
         return static::notice(['allDecRole' => $allDecRole, 'allNation' => $allNation, 'allOpenBank' => $allOpenBank, 'userName' => $userName]);

+ 1 - 0
backendApi/modules/v1/models/lists/finance/RechargeList.php

@@ -123,6 +123,7 @@ class RechargeList extends \common\libs\dataList\DataList implements DataListInt
                 'SN' => ['isUserTable' => false, 'name' => '充值记录流水号'],
                 'USER_NAME' => ['isUserTable' => false, 'name' => '会员编号'],
                 'AUDIT_STATUS' => ['isUserTable' => false, 'name' => '审核状态', 'other' => 'select', 'selectData' => [['id' =>0, 'name' => '待审核'], ['id' => 1, 'name' => '已上传凭证'], ['id' => 2, 'name' => '已审核']]],
+                'RECHARGE_STATUS' => ['isUserTable' => false, 'name' => '充值状态', 'other' => 'select', 'selectData' => [['id' =>0, 'name' => 'New'], ['id' => 1, 'name' => 'Processing'], ['id' => 2, 'name' => 'Success']]],
                 'BANK_NO' => ['isUserTable' => false, 'name' => '汇款账号'],
                 'AMOUNT' => ['isUserTable' => false, 'name' => '充值金额'],
                 'CREATED_AT' => ['isUserTable' => false, 'name' => '申请时间', 'other' => 'date'],

+ 37 - 37
backendApi/modules/v1/models/lists/shop/DecOrderList.php

@@ -16,7 +16,7 @@ class DecOrderList extends \common\libs\dataList\DataList implements DataListInt
      * @return string
      */
     public function getListName(){
-        return '订单列表';
+        return 'Entry list';//报单列表
     }
 
     /**
@@ -52,35 +52,35 @@ class DecOrderList extends \common\libs\dataList\DataList implements DataListInt
             $this->columns = [
                 'ID' => null,
                 'DEC_SN' => [
-                    'header' => '报单编号',
+                    'header' => 'Entry code',//报单编号
                     'headerOther' => ['width' => '200'],
                 ],
                 'ORDER_SN' => [
-                    'header' => '订单编号',
+                    'header' => 'Order code',//订单编号
                     'headerOther' => ['width' => '200'],
                 ],
                 'USER_NAME' => [
-                    'header' => '报单人',
+                    'header' => 'Member code',//报单人
                     'headerOther' => ['width' => '150'],
                 ],
                 'TO_USER_NAME' => [
-                    'header' => '被报单人',
+                    'header' => 'Entry Member code',//被报单人
                     'headerOther' => ['width' => '150'],
                 ],
                 'REAL_NAME' => [
-                    'header' => '会员姓名',
+                    'header' => 'Member name',//会员姓名
                     'headerOther' => ['width' => '150'],
                 ],
                 'ID_CARD' => [
-                    'header' => '会员身份证号',
+                    'header' => 'Membership id number',//会员身份证号
                     'headerOther' => ['width' => '150'],
                 ],
                 'MOBILE' => [
-                    'header' => '会员手机号',
+                    'header' => 'Member mobile Phone Number',//会员手机号
                     'headerOther' => ['width' => '150'],
                 ],
                 'DEC_LV_NAME' => [
-                    'header' => '会员级别',
+                    'header' => 'Member Levels',//会员级别
                     'headerOther' => [
                         'width' => '110',
                     ],
@@ -92,15 +92,15 @@ class DecOrderList extends \common\libs\dataList\DataList implements DataListInt
                     ],
                 ],
                 'DEC_USER_NAME' => [
-                    'header' => '报单中心编号',
+                    'header' => 'Entry code',//报单中心编号
                     'headerOther' => ['width' => '150'],
                 ],
                 'DEC_REAL_NAME' => [
-                    'header' => '报单中心姓名',
+                    'header' => 'Entry name',//报单中心姓名
                     'headerOther' => ['width' => '150'],
                 ],
                 'DEC_AMOUNT' => [
-                    'header' => '报单金额',
+                    'header' => 'Entry amount',//报单金额
                     'headerOther' => [
                         'width' => '150',
                     ],
@@ -114,7 +114,7 @@ class DecOrderList extends \common\libs\dataList\DataList implements DataListInt
                     },
                 ],
                 'DEC_PV' => [
-                    'header' => '报单BV',
+                    'header' => 'Entry BV',//报单BV
                     'headerOther' => [
                         'width' => '150',
                     ],
@@ -128,7 +128,7 @@ class DecOrderList extends \common\libs\dataList\DataList implements DataListInt
                     },
                 ],
                 'PAID_WALLET' => [
-                    'header' => '付款钱包',
+                    'header' => 'Payment wallet',//付款钱包
                     'headerOther' => [
                         'width' => '110',
                     ],
@@ -137,7 +137,7 @@ class DecOrderList extends \common\libs\dataList\DataList implements DataListInt
                     },
                 ],
                 'REMARK' => [
-                    'header' => '备注',
+                    'header' => 'Note',//备注
                     'headerOther' => [
                         'width' => '200',
                     ],
@@ -149,7 +149,7 @@ class DecOrderList extends \common\libs\dataList\DataList implements DataListInt
                     },
                 ],
                 'REC_USER_NAME' => [
-                    'header' => '报单时开拓者',
+                    'header' => '报单时开拓者',//报单时开拓者
                     'headerOther' => ['width' => '150'],
                 ],
                 'REC_REAL_NAME' => [
@@ -186,23 +186,23 @@ class DecOrderList extends \common\libs\dataList\DataList implements DataListInt
                     },
                 ],
                 'ADDRESS' => [
-                    'header' => '详细地址',
+                    'header' => 'detailed address',//详细地址
                     'headerOther' => [
                         'width' => '300',
                     ],
                 ],
                 'EXPRESS_TYPE' => [
-                    'header' => '发货方式',
+                    'header' => 'delivery method',//发货方式
                     'headerOther' => ['width' => '150'],
                     'value' => function ($row) {
-                        return $row['EXPRESS_TYPE']==0 ? '邮寄' : '自提';
+                        return $row['EXPRESS_TYPE']==0 ? 'mail' : 'Self Pick-up';//邮寄:自提
                     },
                 ],
                 'PERIOD_NUM' => [
-                    'header' => '期数',
+                    'header' => 'Current Period',//期数
                 ],
                 'CREATED_AT' => [
-                    'header' => '创建时间',
+                    'header' => 'Creation Time',//创建时间
                     'value' => function ($row) {
                         return (new DateTime([
                             'value' => $row['CREATED_AT'],
@@ -211,7 +211,7 @@ class DecOrderList extends \common\libs\dataList\DataList implements DataListInt
                     'headerOther' => ['width' => '190'],
                 ],
                 'UPDATED_AT' => [
-                    'header' => '更新时间',
+                    'header' => 'Update Time',//更新时间
                     'value' => function ($row) {
                         return (new DateTime([
                             'value' => $row['UPDATED_AT'],
@@ -232,21 +232,21 @@ class DecOrderList extends \common\libs\dataList\DataList implements DataListInt
     {
         if(!$this->filterTypes){
             $this->filterTypes = [
-                'DEC_SN'=> ['name'=> '报单编号'],
-                'ORDER_SN'=> ['name'=> '订单编号'],
-                'USER_NAME'=> ['name'=> '报单人'],
-                'TO_USER_NAME'=> ['name'=> '被报单人'],
-                'REAL_NAME'=> ['name'=> '会员姓名'],
-                'DEC_REAL_NAME'=> ['name'=> '报单中心姓名'],
-                'ID_CARD'=> ['name'=> '会员身份证号'],
-                'MOBILE'=> ['name'=> '会员手机号'],
-                'DEC_LV_NAME'=> ['name'=> '会员级别', 'other'=> 'decLevel'],
-                'DEC_AMOUNT'=> ['name'=> '报单金额'],
-                'DEC_PV'=> ['name'=> '报单报单BV'],
-                'PERIOD_NUM'=> ['name'=> '期数'],
-                'REC_USER_NAME'=> ['name'=> '报单时开拓者'],
-                'CREATED_AT'=> ['name'=> '创建时间', 'other'=> 'date'],
-                'UPDATED_AT'=> ['name'=> '更新时间', 'other'=> 'date'],
+                'DEC_SN'=> ['name'=> 'Entry code'],//报单编号
+                'ORDER_SN'=> ['name'=> 'Order code'],//订单编号
+                'USER_NAME'=> ['name'=> 'Member code'],//报单人
+                'TO_USER_NAME'=> ['name'=> 'Entry Member code'],//被报单人
+                'REAL_NAME'=> ['name'=> 'Member name'],//会员姓名
+                'DEC_REAL_NAME'=> ['name'=> 'Entry name'],//报单中心姓名
+                'ID_CARD'=> ['name'=> 'Membership id number'],//会员身份证号
+                'MOBILE'=> ['name'=> 'Member mobile Phone Number'],//会员手机号
+                'DEC_LV_NAME'=> ['name'=> 'Member Levels', 'other'=> 'decLevel'],//会员级别
+                'DEC_AMOUNT'=> ['name'=> 'Entry amount'],//报单金额
+                'DEC_PV'=> ['name'=> 'Entry BV'],//报单BV
+                'PERIOD_NUM'=> ['name'=> 'Current Period'],//期数
+                'REC_USER_NAME'=> ['name'=> '报单时开拓者'],//报单时开拓者
+                'CREATED_AT'=> ['name'=> 'Creation Time', 'other'=> 'date'],//创建时间
+                'UPDATED_AT'=> ['name'=> 'Update Time', 'other'=> 'date'],//更新时间
             ];
         }
         return $this->filterTypes;

+ 35 - 20
backendApi/modules/v1/models/lists/shop/GoodsList.php

@@ -13,7 +13,7 @@ class GoodsList extends \common\libs\dataList\DataList implements DataListInterf
      * @return string
      */
     public function getListName(){
-        return '商品列表';
+        return 'Products list';//商品列表
     }
 
     /**
@@ -38,11 +38,11 @@ class GoodsList extends \common\libs\dataList\DataList implements DataListInterf
             $this->columns = [
                 'ID' => null,
                 'GOODS_NAME' => [
-                    'header' => '商品名称',
+                    'header' => 'Products name',//商品名称
                     'headerOther' => ['width' => '200'],
                 ],
                 'GOODS_NO' => [
-                    'header' => '商品编号',
+                    'header' => 'Products code',//商品编号
                     'headerOther' => ['width' => '200'],
                 ],
                 // 'TYPE' => [
@@ -53,7 +53,7 @@ class GoodsList extends \common\libs\dataList\DataList implements DataListInterf
                 //     'headerOther' => ['width' => '150'],
                 // ],
                 'SELL_DISCOUNT' => [
-                    'header' => '商品折扣',
+                    'header' => 'Products discount',//商品折扣
                     'value' => function($row) {
                         $discount = 0;
                         if ($row['TYPE'] == 1) {
@@ -69,7 +69,7 @@ class GoodsList extends \common\libs\dataList\DataList implements DataListInterf
                     'headerOther' => ['width' => '150'],
                 ],
                 'GIFT_TYPE' => [
-                    'header' => '商品类型',
+                    'header' => 'Products type',//商品类型
                     'value' => function($row){
                         $giftType = ShopGoods::GIFT_TYPE;
                         $gift = explode(',',$row['GIFT_TYPE']);
@@ -83,7 +83,7 @@ class GoodsList extends \common\libs\dataList\DataList implements DataListInterf
                     'headerOther' => ['width' => '150'],
                 ],
                 'CATEGORY_TYPE' => [
-                    'header' => '商品分类',
+                    'header' => 'Products Category',//商品分类
                     'value' => function($row) {
                         $categoryType = array_column(ShopGoods::CATEGORY_TYPE, NULL, 'id');
                         return $categoryType[$row['CATEGORY_TYPE']]['name'] ?? '';
@@ -91,7 +91,7 @@ class GoodsList extends \common\libs\dataList\DataList implements DataListInterf
                     'headerOther' => ['width' => '150'],
                 ],
                 'SELL_TYPE' => [
-                    'header' => '购买方式',
+                    'header' => 'Purchase method',//购买方式
                     'value' => function($row){
                         $sellType = ShopGoods::SALE_TYPE;
                         $sel = explode(',',$row['SELL_TYPE']);
@@ -104,7 +104,7 @@ class GoodsList extends \common\libs\dataList\DataList implements DataListInterf
                     'headerOther' => ['width' => '150'],
                 ],
                 'SELL_PRICE' => [
-                    'header' => '销售价格',
+                    'header' => 'Products Prices ',//商品价格
                     'headerOther' => [
                         'width' => '150',
                     ],
@@ -117,8 +117,22 @@ class GoodsList extends \common\libs\dataList\DataList implements DataListInterf
                         ];
                     },
                 ],
+                'SELL_PRICE_STANDARD' => [
+                    'header' => '标准价格($)',
+                    'headerOther' => [
+                        'width' => '150',
+                    ],
+                    'value' => function ($row) {
+                        return Tool::formatPrice($row['SELL_PRICE_STANDARD']);
+                    },
+                    'valueOther' => function ($row) {
+                        return [
+                            'tag' => ['type' => 'danger', 'size' => 'small', 'class' => 'no-border']
+                        ];
+                    },
+                ],
                 'PRICE_PV' => [
-                    'header' => '销售BV',
+                    'header' => 'Products BV',//产品BV
                     'headerOther' => [
                         'width' => '150',
                     ],
@@ -132,22 +146,22 @@ class GoodsList extends \common\libs\dataList\DataList implements DataListInterf
                     },
                 ],
                 'STORE_NUMS' => [
-                    'header' => '库存',
+                    'header' => 'Inventory',//库存
                     'headerOther' => [
                         'width' => '110',
                     ],
                 ],
                 'STATUS' => [
-                    'header' => '状态',
+                    'header' => 'STATUS',//状态
                     'value' => function($row) {
-                        return $row['STATUS'] == 1 ? '已上架' : '已下架';
+                        return $row['STATUS'] == 1 ? 'On sale' : 'Sold out'; //已上架:已下架
                     },
                     'headerOther' => [
                         'width' => '110',
                     ],
                 ],
                 'UPDATED_AT' => [
-                    'header' => '更新时间',
+                    'header' => 'Update time',//更新时间
                     'value' => function ($row) {
                         return (new DateTime([
                             'value' => $row['UPDATED_AT'],
@@ -169,14 +183,15 @@ class GoodsList extends \common\libs\dataList\DataList implements DataListInterf
         if(!$this->filterTypes){
             $this->filterTypes = [
                 //'TYPE' => ['isUserTable' => false, 'name' => '商品来源', 'other' => 'select', 'selectData' => [['id' => 1, 'name' => '国内商品'], ['id' => 2, 'name' => '进口商品']]],
-                'GIFT_TYPE' => ['isUserTable' => false, 'name' => '商品类型', 'other' => 'select', 'selectData' => [['id' => 1, 'name' => '报单区'], ['id' => 2, 'name' => '复消区'], ['id' => 3, 'name' => '工作室报单'], ['id' => 4, 'name' => '工作室复消']]],
-                'STATUS'=> ['name'=> '状态', 'other'=> 'select', 'selectData'=> [['id'=> 0, 'name'=> '已下架'],['id'=> 1, 'name'=> '已上架']]],
-                'GOODS_NAME'=> ['name'=> '商品名称'],
-                'GOODS_NO'=> ['name'=> '商品编号'],
+                //'GIFT_TYPE' => ['isUserTable' => false, 'name' => '商品类型', 'other' => 'select', 'selectData' => [['id' => 1, 'name' => '报单区'], ['id' => 2, 'name' => '复消区'], ['id' => 3, 'name' => '工作室报单'], ['id' => 4, 'name' => '工作室复消']]],
+                'GIFT_TYPE' => ['isUserTable' => false, 'name' => 'Products type', 'other' => 'select', 'selectData' => [['id' => 1, 'name' => 'Entry area'], ['id' => 2, 'name' => 'Reselling area'], ['id' => 3, 'name' => 'Office Entry area'], ['id' => 4, 'name' => 'Office Reselling area']]],
+                'STATUS'=> ['name'=> 'Status', 'other'=> 'select', 'selectData'=> [['id'=> 0, 'name'=> 'Sold out'],['id'=> 1, 'name'=> 'On sale']]],//状态,已下架,已上架
+                'GOODS_NAME'=> ['name'=> 'Products name'],//商品名称
+                'GOODS_NO'=> ['name'=> 'Products code'],//商品编号
 //                'SELL_TYPE'=> ['name'=> '复消购买方式', 'other'=> 'select', 'selectData'=> [['id'=> 1, 'name'=> '余额购买'],['id'=> 2, 'name'=> '积分购买']]],
-                'SELL_PRICE'=> ['name'=> '销售价格'],
-                'PRICE_PV'=> ['name'=> '销售BV'],
-                'CATEGORY_TYPE' => ['name' => '商品分类', 'other'=> 'select', 'selectData'=> ShopGoods::CATEGORY_TYPE],
+                'SELL_PRICE'=> ['name'=> 'Products Prices'],//销售价格
+                'PRICE_PV'=> ['name'=> 'Products BV'],//销售PV
+                'CATEGORY_TYPE' => ['name' => 'Products Category', 'other'=> 'select', 'selectData'=> ShopGoods::CATEGORY_TYPE],//商品分类
             ];
         }
         return $this->filterTypes;

+ 29 - 15
backendApi/modules/v1/models/lists/shop/PackageList.php

@@ -14,7 +14,7 @@ class PackageList extends \common\libs\dataList\DataList implements DataListInte
      * @return string
      */
     public function getListName(){
-        return '套餐列表';
+        return 'Kitting products list';//套餐列表
     }
 
     /**
@@ -43,19 +43,33 @@ class PackageList extends \common\libs\dataList\DataList implements DataListInte
             $this->columns = [
                 'ID' => null,
                 'PACKAGE_NAME' => [
-                    'header' => '套餐名称',
+                    'header' => 'Kitting products name',//套餐名称
                     'headerOther' => ['width' => '200'],
                 ],
                 'PACKAGE_NO' => [
-                    'header' => '套餐编号',
+                    'header' => 'Kitting products code',//套餐编号
                     'headerOther' => ['width' => '200'],
                 ],
                 'LEVEL_NAME' => [
-                    'header' => '所属报单级别',
+                    'header' => 'Entry level',//所属报单级别
                     'headerOther' => ['width' => '200'],
                 ],
+                'AMOUNT_STANDARD' => [
+                    'header' => '标准价格',
+                    'headerOther' => [
+                        'width' => '150',
+                    ],
+                    'value' => function ($row) {
+                        return Tool::formatPrice($row['AMOUNT_STANDARD']);
+                    },
+                    'valueOther' => function ($row) {
+                        return [
+                            'tag' => ['type' => 'danger', 'size' => 'small', 'class' => 'no-border']
+                        ];
+                    },
+                ],
                 'AMOUNT' => [
-                    'header' => '套餐金额',
+                    'header' => 'Kit price',//套餐金额
                     'headerOther' => [
                         'width' => '150',
                     ],
@@ -69,7 +83,7 @@ class PackageList extends \common\libs\dataList\DataList implements DataListInte
                     },
                 ],
                 'PV' => [
-                    'header' => '套餐BV',
+                    'header' => 'Kitting products BV',//套餐BV
                     'headerOther' => [
                         'width' => '150',
                     ],
@@ -87,20 +101,20 @@ class PackageList extends \common\libs\dataList\DataList implements DataListInte
 				    'headerOther' => ['width' => '200'],
 				],
                 'STATUS' => [
-                    'header' => '状态',
+                    'header' => 'Status',//状态
                     'value' => function($row) {
-                        return $row['STATUS'] == 1 ? '已上架' : '已下架';
+                        return $row['STATUS'] == 1 ? 'On sale' : 'Sold out';//'已上架' : '已下架'
                     },
                     'headerOther' => [
                         'width' => '110',
                     ],
                 ],
                 'PACKAGE_CONTENT' => [
-                    'header' => '套餐内容',
+                    'header' => 'Kit products',//套餐内容
                     'headerOther' => ['width' => '290'],
                 ],
                 'CREATED_AT' => [
-                    'header' => '创建时间',
+                    'header' => 'Creation time',//创建时间
                     'value' => function ($row) {
                         return (new DateTime([
                             'value' => $row['CREATED_AT'],
@@ -121,11 +135,11 @@ class PackageList extends \common\libs\dataList\DataList implements DataListInte
     {
         if(!$this->filterTypes){
             $this->filterTypes = [
-                'LEVEL_NAME'=> ['name'=> '所属报单级别', 'other'=> 'decLevel'],
-                'PACKAGE_NAME'=> ['name'=> '套餐名称'],
-                'AMOUNT'=> ['name'=> '套餐金额'],
-                'PV'=> ['name'=> '套餐BV'],
-                'STATUS'=> ['name'=> '状态', 'other'=> 'select', 'selectData'=> [['id'=> 1, 'name'=> '已上架'],['id'=> 0, 'name'=> '已下架']]],
+                'LEVEL_NAME'=> ['name'=> 'Entry level', 'other'=> 'decLevel'],//所属报单级别
+                'PACKAGE_NAME'=> ['name'=> 'Kitting products name'],//套餐名称
+                'AMOUNT'=> ['name'=> 'Kitting products amount'],//套餐金额
+                'PV'=> ['name'=> 'Kitting products BV'],//套餐BV
+                'STATUS'=> ['name'=> 'Status', 'other'=> 'select', 'selectData'=> [['id'=> 1, 'name'=> 'On sale'],['id'=> 0, 'name'=> 'Sold out']]],//状态,已上架,已下架
             ];
         }
         return $this->filterTypes;

+ 19 - 19
backendEle/src/components/FilterUser.vue

@@ -3,15 +3,15 @@
     <div class="filter-option">
       <el-select class="filter-item"
                  v-model="filterType"
-                 placeholder="筛选类型"
+                 placeholder="Filter type"
                  @change="handleFilterTypeChange"
-      >
+      ><!-- 筛选类型 -->
         <el-option v-for="(item,key) in allFilterTypes" :key="key" :label="item.name" :value="key"></el-option>
       </el-select>
       <el-select class="filter-item"
                  v-model="filterSymbol"
-                 placeholder="筛选方式"
-      >
+                 placeholder="Filter mode"
+      ><!-- 筛选方式 -->
         <el-option v-for="(item,key) in filterSymbols" :key="key" :label="item" :value="key"></el-option>
       </el-select>
       <template
@@ -21,7 +21,7 @@
             v-model="filterValue"
             value-format="yyyy-MM-dd HH:mm:ss"
             type="datetime"
-            placeholder="选择日期">
+            placeholder="Select date"><!-- 选择日期 -->
         </el-date-picker>
       </template>
       <template
@@ -31,7 +31,7 @@
             v-model="filterValue"
             value-format="yyyyMM"
             type="month"
-            placeholder="选择月份">
+            placeholder="Select month"><!-- 选择月份 -->
         </el-date-picker>
       </template>
       <template
@@ -46,8 +46,8 @@
           v-else-if="filterType !== '' && allFilterTypes[filterType].hasOwnProperty('other') && allFilterTypes[filterType].other === 'select'">
         <el-select class="filter-item"
                    v-model="filterValue"
-                   :placeholder="`请选择${allFilterTypes[filterType].name}`"
-        >
+                   :placeholder="`Please select ${allFilterTypes[filterType].name}`"
+        ><!-- 请选择 -->
           <el-option v-for="(item,key) in allFilterTypes[filterType].selectData" :key="key" :label="item.name"
                      :value="item.id"></el-option>
         </el-select>
@@ -59,7 +59,7 @@
         </el-select>
       </template>
       <template v-else>
-        <el-input class="filter-item filter-value" v-model="filterValue" placeholder="请输入内容"></el-input>
+        <el-input class="filter-item filter-value" v-model="filterValue" placeholder="Please enter the content"><!-- 请输入内容 --></el-input>
       </template>
       <el-select class="filter-item filter-relation"
                  v-model="filterRelation"
@@ -69,7 +69,7 @@
       </el-select>
       <el-button class="filter-item" icon="el-icon-plus" @click="handleOptionPlus"></el-button>
       <el-button class="filter-item" type="primary" @click="handleFilterUser" icon="el-icon-search">{{filterBtnName}}</el-button>
-      <el-button class="filter-item" type="" @click="handleFilterClear">重置</el-button>
+      <el-button class="filter-item" type="" @click="handleFilterClear">Reset<!-- 重置 --></el-button>
       <el-button class="down-button" type="text"><i class="el-icon-arrow-down"></i></el-button>
     </div>
     <div class="filter-selected" v-show="filterSelected.length > 0">
@@ -146,7 +146,7 @@
       filterBtnName: {
         type: String,
         default() {
-          return '筛选会员'
+          return 'Select'//筛选
         }
       }
     },
@@ -252,14 +252,14 @@
         filterType: '',
         filterSymbol: '',
         filterSymbols: {
-          '=': '等于',
-          'like': '包含',
-          '<>': '不等于',
-          'notLike': '不包含',
-          '>': '大于',
-          '>=': '大于等于',
-          '<': '小于',
-          '<=': '小于等于',
+          '=': 'Is equal to', //等于
+          'like': 'Is including',//包含
+          '<>': 'Is not',//不等于
+          'notLike': 'not Is including ',//不包含
+          '>': 'Is greater than',//大于
+          '>=': 'Is greater than or equal to',//大于等于
+          '<': 'Is smaller than',//小于
+          '<=': 'Is smaller than or equal to',//小于等于
         },
         filterRelation: 'and',
         filterRelations: {

+ 2 - 1
backendEle/src/main.js

@@ -2,6 +2,7 @@
 // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
 import Vue from 'vue'
 import ElementUI from 'element-ui'
+import locale from 'element-ui/lib/locale/lang/en'
 import 'element-ui/lib/theme-chalk/index.css'
 import App from './App'
 import router from './router'
@@ -9,7 +10,7 @@ import router from './router'
 import axios from './utils/axiosPlugin'
 import errorInfo from './utils/errorCode'
 
-Vue.use(ElementUI)
+Vue.use(ElementUI,{locale})
 
 Vue.config.productionTip = false
 

+ 26 - 14
backendEle/src/router/index.js

@@ -29,9 +29,9 @@ export const constantRouterMap = [
       component: _import('dashboard/index'),
       name: 'dashboard_index',
       meta: {
-        title: '控制台',
+        title: 'Dashboard',//控制台
         breadcrumb: [
-          {title: '首页', path: '/dashboard/index'},
+          {title: 'Dashboard', path: '/dashboard/index'},//首页
         ],
       },
     }]
@@ -110,10 +110,10 @@ export const constantRouterMap = [
             component: _import('shop/package'),
             name: 'shop_package',
             meta: {
-                title: '报单套餐列表',
+                title: 'Kitting products list',//报单套餐列表
                 breadcrumb: [
-                    {title: '首页', path: '/dashboard/index'},
-                    {title: '商城管理', path: '/shop/dec-order-list'},
+                    {title: 'Dashboard', path: '/dashboard/index'},//首页
+                    {title: 'Products Management', path: '/shop/dec-order-list'},//商城管理
                 ],
             },
 
@@ -123,10 +123,10 @@ export const constantRouterMap = [
             component: _import('shop/package-add'),
             name: 'shop_package-add',
             meta: {
-                title: '报单套餐添加',
+                title: 'Add Kitting products',//报单套餐添加
                 breadcrumb: [
-                    {title: '首页', path: '/dashboard/index'},
-                    {title: '商城管理', path: '/shop/dec-order-list'},
+                    {title: 'Dashboard', path: '/dashboard/index'},//首页
+                    {title: 'Products Management', path: '/shop/dec-order-list'},//商城管理
                 ],
             },
 
@@ -136,10 +136,10 @@ export const constantRouterMap = [
             component: _import('shop/index'),
             name: 'shop_index',
             meta: {
-                title: '商品列表',
+                title: 'Products list',//商品列表
                 breadcrumb: [
-                    {title: '首页', path: '/dashboard/index'},
-                    {title: '商城管理', path: '/shop/dec-order-list'},
+                    {title: 'Dashboard', path: '/dashboard/index'},//首页
+                    {title: 'Products Management', path: '/shop/dec-order-list'},//商城管理
                 ],
             },
 
@@ -149,10 +149,10 @@ export const constantRouterMap = [
             component: _import('shop/goods-add'),
             name: 'shop_goods-add',
             meta: {
-                title: '商品添加',
+                title: 'Products add',//商品添加
                 breadcrumb: [
-                    {title: '首页', path: '/dashboard/index'},
-                    {title: '商城管理', path: '/shop/dec-order-list'},
+                    {title: 'Dashboard', path: '/dashboard/index'},//首页
+                    {title: 'Products Management', path: '/shop/dec-order-list'},//商城管理
                 ],
             },
 
@@ -2001,6 +2001,18 @@ export const constantRouterMap = [
           ],
         },
       },
+      {
+        path: '/config/exchange-rate',
+        component: _import('config/exchange-rate'),
+        name: 'config_exchange_rate',
+        meta: {
+          title: '汇率配置',
+          breadcrumb: [
+            {title: '首页', path: '/dashboard/index'},
+            {title: '配置', path: '/config/index'},
+          ],
+        },
+      },
     ]
   }
   // {

+ 2 - 1
backendEle/src/static/css/style.css

@@ -511,7 +511,8 @@ a {
     }
 
     .layout-menu-left {
-        width: 500px;
+        /* width: 500px; */
+		width: 400px;
     }
 
     .breadcrumb-box {

+ 4 - 1
backendEle/src/utils/baseInfo.js

@@ -70,6 +70,9 @@ const baseInfo = {
   nowPeriodNum () {
     return this.get('nowPeriodNum')
   },
+  exchangeRate () {
+    return this.get('exchangeRate')
+  },
 }
 
-export default baseInfo
+export default baseInfo

+ 75 - 0
backendEle/src/views/config/exchange-rate.vue

@@ -0,0 +1,75 @@
+<template>
+    <div v-loading="loading">
+        <div class="white-box">
+            <el-form ref="form" :model="form" label-width="250px" class="form-page" style="margin-top: 25px;">
+                <el-form-item :label="form.TITLE" :key="form.CONFIG_NAME">
+                    <el-input v-model="form.VALUE" placeholder="请输入内容">
+                        <template slot="append">naira / $</template>
+                    </el-input>
+                </el-form-item>
+                <el-form-item>
+                    <span style="font-weight: bold; color: red; font-size: 12px;">提示:修改汇率会刷新商品的销售价格(naira),请谨慎操作!!</span>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="primary" size="small" @click="onSubmit" :loading="submitButtonStat">保存并刷新商品价格</el-button>
+                </el-form-item>
+            </el-form>
+        </div>
+    </div>
+</template>
+
+<script>
+import network from '@/utils/network'
+export default {
+    name: 'config_exchange_rate',
+    mounted() {
+        this.getData()
+    },
+    data() {
+        return {
+            form: {
+                CONFIG_NAME: '',
+                VALUE: 0,
+                TITLE: '',
+            },
+            loading: true,
+            submitButtonStat: false,
+        }
+    },
+    methods: {
+        onSubmit() {
+            let _this = this
+            _this.$confirm('修改汇率会刷新商品销售价格(naira), 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                _this.submitButtonStat = true
+                network.postData('config/exchange-rate', this.form).then(response => {
+                    _this.$message({
+                        message: response,
+                        type: 'success'
+                    })
+                    _this.submitButtonStat = false
+                    _this.getData()
+                }).catch(response => {
+                    _this.submitButtonStat = false
+                    _this.getData()
+                })
+            }).catch(() => {
+                _this.submitButtonStat = false
+            })
+        },
+        getData() {
+            network.getData('config/exchange-rate').then(response => {
+                this.form = response
+                this.loading = false
+            })
+        }
+    }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 2 - 2
backendEle/src/views/dashboard/index.vue

@@ -1,8 +1,8 @@
 <template>
   <div v-loading="loading">
-    <h1>欢迎您,{{adminName}}</h1>
+    <h1><!-- 欢迎您 -->Welcome,{{adminName}}</h1>
     <div class="white-box" style="margin-bottom: 15px;" v-show="false">
-      <h1>欢迎您,{{adminName}}</h1>
+      <h1><!-- 欢迎您 -->Welcome,{{adminName}}</h1>
       <el-button type="primary" @click="tool.go('/user/index')" v-show="permission.hasPermission(`user/index`)">会员管理
       </el-button>
       <el-button type="success" @click="tool.go('/bonus/period')" v-show="permission.hasPermission(`bonus/period`)">

+ 9 - 9
backendEle/src/views/layout/layout.vue

@@ -3,7 +3,7 @@
     <el-aside :class="menuClass" width="">
       <el-menu :default-active="menuActiveIndex" :router="true" :collapse="isCollapse" :unique-opened="true">
         <div class="site-title">
-          <h1>结算系统后台</h1>
+          <h1>Settlement system background<!-- 结算系统后台 --></h1>
         </div>
         <div class="user-profile">
           <img src="../../static/img/avatar/1.png" alt="" class="profile-avatar img-circle">
@@ -12,8 +12,8 @@
         {{adminName}} <i class="el-icon-caret-bottom el-icon--right"></i>
       </span>
             <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item icon="el-icon-sort" @click.native="onChangePassword">重置密码</el-dropdown-item>
-              <el-dropdown-item icon="el-icon-switch-button" @click.native="onLogout">退出登录</el-dropdown-item>
+              <el-dropdown-item icon="el-icon-sort" @click.native="onChangePassword">Reset password<!-- 重置密码 --></el-dropdown-item>
+              <el-dropdown-item icon="el-icon-switch-button" @click.native="onLogout">Log out<!-- 退出登录 --></el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
         </div>
@@ -54,15 +54,15 @@
             </transition>
           </li>
           <li>
-            <h4>{{contentTitle}}</h4>
+            <h4>{{contentTitle}}</h4><!-- 控制台 -->
           </li>
         </ul>
         <div style="text-align: right;font-size: 14px;">
-          当前系统时间:{{nowDateTime}}&nbsp;&nbsp;&nbsp;&nbsp;
-          当期期数:<b class="text-danger">{{periodNum}}</b>
+          Current System Time<!-- 当前系统时间 -->:{{nowDateTime}}&nbsp;&nbsp;&nbsp;&nbsp;
+          Current Period<!-- 当期期数 -->:<b class="text-danger">{{periodNum}}</b>
           <el-breadcrumb separator="/">
             <el-breadcrumb-item v-for="(item, index) in breadcrumb" :to="{ path: item.path }" :key="index">
-              {{item.title}}
+              {{item.title}}<!-- 顶部面包屑 -->
             </el-breadcrumb-item>
           </el-breadcrumb>
         </div>
@@ -77,12 +77,12 @@
     </el-container>
     <div style="position: fixed;right:4px;bottom: 10px;z-index: 999">
       <p class="mar-btm" v-if="showBackToUp">
-        <el-tooltip class="item" effect="dark" content="回到顶部" placement="top-start">
+        <el-tooltip class="item" effect="dark" content="Top" placement="top-start"><!-- 回到顶部 -->
           <el-button type="primary" @click="backTop" circle plain><i class="fa fa-arrow-up"></i></el-button>
         </el-tooltip>
       </p>
       <p>
-        <el-tooltip class="item" effect="dark" content="返回上一页" placement="top-start">
+        <el-tooltip class="item" effect="dark" content="previous page" placement="top-start"><!-- 返回上一页 -->
           <el-button type="primary" @click="$router.go(-1)" circle plain><i class="fa fa-arrow-left"></i></el-button>
         </el-tooltip>
       </p>

+ 10 - 10
backendEle/src/views/shop/dec-order-list.vue

@@ -20,8 +20,8 @@
         </el-table-column>
       </el-table>
       <div class="white-box-footer">
-        <el-button type="success" size="small" @click="handleExport" v-show="permission.hasPermission(`shop/dec-order-list-export`)">导出Excel</el-button>
-        <el-button type="primary" size="small" @click="handleExportPDF" v-show="permission.hasPermission(`shop/dec-order-list-export`)">导出PDF</el-button>
+        <el-button type="success" size="small" @click="handleExport" v-show="permission.hasPermission(`shop/dec-order-list-export`)">Export Excel</el-button>
+        <el-button type="primary" size="small" @click="handleExportPDF" v-show="permission.hasPermission(`shop/dec-order-list-export`)">Export PDF</el-button>
           <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange"
                     @current-change="handleCurrentChange"></pagination>
       </div>
@@ -94,9 +94,9 @@
         })
       },
       handleExport(){
-        this.$confirm(`确定要导出当前数据吗?`, '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
+        this.$confirm(`Are you sure you want to export the current data?`, 'Hint', {//`确定要导出当前数据吗?`, '提示'
+          confirmButtonText: 'Confirm',//确认
+          cancelButtonText: 'Cancel',//取消
           type: 'warning'
         }).then(() => {
           return network.getData(`shop/dec-order-list-export`, this.filterModel)
@@ -112,7 +112,7 @@
         handleExportPDF() {
             if (this.multipleSelection.length === 0) {
                 this.$message({
-                    message: '请选择一条订单导出',
+                    message: 'Please select an order to export',//请选择一条订单导出
                     type: 'error'
                 })
                 return false
@@ -124,15 +124,15 @@
             let orderSnSet = Array.from(new Set(orderSnList))
             if (orderSnSet.length !== 1) {
                 this.$message({
-                    message: '每次只能导出一条订单',
+                    message: 'Only one order can be exported at a time',//每次只能导出一条订单
                     type: 'error'
                 })
                 return false
             }
 
-            this.$confirm(`确定要导出当前数据吗?`, '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
+            this.$confirm(`Are you sure you want to export the current data?`, 'Hint', {//`确定要导出当前数据吗?`, '提示',
+                confirmButtonText: 'Confirm',//确认
+                cancelButtonText: 'Cancel',//取消
                 type: 'warning'
             }).then(() => {
                 // 导出时只需要订单ID即可

+ 30 - 17
backendEle/src/views/shop/goods-add.vue

@@ -3,7 +3,7 @@
         <div class="white-box">
             <el-form ref="form"  label-width="250px" class="form-page">
 
-                <el-form-item label="商品名称">
+                <el-form-item label="Products Name"><!-- 商品名称 -->
                     <el-input v-model="form.goodsName"></el-input>
                 </el-form-item>
                 <!-- <el-form-item label="商品来源">
@@ -12,53 +12,56 @@
                                    :value="index"></el-option>
                     </el-select>
                 </el-form-item> -->
-                <el-form-item label="会员折扣">
+                <el-form-item label="Member discount"><!-- 会员折扣 -->
                     <el-input v-model="form.sellDiscount"></el-input>
                 </el-form-item>
-                <el-form-item label="商品类型">
+                <el-form-item label="Product type"><!-- 商品类型 -->
                     <el-checkbox  v-for="(value,key) in GiftTypeArr" v-model="form.giftType[key-1]" :key="key" >{{value.name}}</el-checkbox>
                 </el-form-item>
                 <!-- <el-form-item label="复消购买方式">
                     <el-checkbox  v-for="(value,key) in sellType" v-model="form.sellType[key-1]" :key="key" >{{value.name}}</el-checkbox>
                 </el-form-item> -->
-                <el-form-item label="商品分类">
+                <el-form-item label="Product Category"><!-- 商品分类 -->
                     <el-select v-model="form.categoryType" placeholder="">
                         <el-option v-for="item in categoryType" :key="item.id" :label="item.name" :value="item.id"></el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="商品编号">
+                <el-form-item label="Product Code"><!-- 商品编号 -->
                     <el-input v-model="form.goodsNo"></el-input>
                 </el-form-item>
-                <el-form-item label="单位">
+                <el-form-item label="Unit"><!-- 单位 -->
                     <el-input v-model="form.unit"></el-input>
                 </el-form-item>
-                <el-form-item label="市场价格">
+                <el-form-item label="标准价格($)" p>
+                    <el-input v-model="form.sellPriceStandard"></el-input>
+                </el-form-item>
+                <el-form-item label="市场价格(n)">
                     <el-input v-model="form.marketPrice"></el-input>
                 </el-form-item>
-                <el-form-item label="销售价格">
+                <el-form-item label="销售价格(n)">
                     <el-input v-model="form.sellPrice"></el-input>
                 </el-form-item>
-                <el-form-item label="价格BV" v-show="pvDisabled">
+                <el-form-item label="Price BV" v-show="pvDisabled"><!-- 价格BV -->
                     <el-input v-model="form.pricePv"></el-input>
                 </el-form-item>
                 <!-- <el-form-item label="兑换积分">
                     <el-input v-model="form.point"></el-input>
                 </el-form-item> -->
-                <el-form-item label="库存">
+                <el-form-item label="Inventory"><!-- 库存 -->
                     <el-input v-model="form.storeNums"></el-input>
                 </el-form-item>
-                <el-form-item label="商品详情">
+                <el-form-item label="Product details"><!-- 商品详情 -->
                     <el-input
                             type="textarea"
                             :rows="2"
-                            placeholder="请输入内容"
+                            placeholder="Please enter the content"
                             v-model="form.content">
-                    </el-input>
+                    </el-input><!-- 请输入内容 -->
                 </el-form-item>
-                <el-form-item label="排序">
+                <el-form-item label="Order"><!-- 排序 -->
                     <el-input v-model="form.sort"></el-input>
                 </el-form-item>
-                <el-form-item label="上传图片">
+                <el-form-item label="Upload images"><!-- 上传图片 -->
                     <div class='up_load'>
                         <leo-uploader
                             @on-success='upLoadSuccess'
@@ -67,7 +70,7 @@
                     </div>
                 </el-form-item>
                 <el-form-item>
-                    <el-button type="primary" @click="addSubmit" :loading="submitButtonStat">添加</el-button>
+                    <el-button type="primary" @click="addSubmit" :loading="submitButtonStat">Add<!-- 添加 --></el-button>
                 </el-form-item>
             </el-form>
         </div>
@@ -114,6 +117,7 @@
                     textarea:'',
                     sellDiscount:'',
                     categoryType: '',
+                    sellPriceStandard: '',
                 },
                 submitButtonStat: false,
                 goodsType:[],
@@ -123,6 +127,7 @@
                 width:'100px',
                 height:'100px',
                 pvDisabled: true,
+                exchangeRate: baseInfo.exchangeRate(),
             }
         },
         watch:{
@@ -135,7 +140,14 @@
                 handler(modern, origin) {
                     this.pvDisabled = (parseInt(modern) === 1)
                 }
-            }
+            },
+            // 监听商品标准价格,自动计算销售价格
+            'form.sellPriceStandard': {
+                deep: true,
+                handler(modern, origin) {
+                    this.form.sellPrice = modern * this.exchangeRate
+                }
+            },
         },
         methods: {
             handleRemove(file) {
@@ -215,6 +227,7 @@
                     unit: this.form.unit,
                     marketPrice: this.form.marketPrice,
                     sellPrice: this.form.sellPrice,
+                    sellPriceStandard: this.form.sellPriceStandard,
                     pricePv: this.form.pricePv,
                     // point: this.form.point,
                     storeNums: this.form.storeNums,

+ 48 - 35
backendEle/src/views/shop/index.vue

@@ -16,19 +16,19 @@
                         </template>
                     </template>
                 </el-table-column>
-                <el-table-column fixed="right" label="操作" width="180">
+                <el-table-column fixed="right" label="operation" width="180"><!-- 操作 -->
                     <template slot-scope="scope">
                         <el-dropdown size="small" trigger="click" v-if="permission.hasPermission(`shop/goods-edit`) || permission.hasPermission(`shop/goods-delete`)">
                             <el-button type="primary" size="small" @click.stop="">
-                                操作该数据<i class="el-icon-arrow-down el-icon--right"></i>
+                                Operate on this data<!-- 操作该数据 --><i class="el-icon-arrow-down el-icon--right"></i>
                             </el-button>
                             <el-dropdown-menu slot="dropdown">
-                                <el-dropdown-item command="goods-edit" @click.native="handleEditShow(scope.row)">修改数据 </el-dropdown-item>
+                                <el-dropdown-item command="goods-edit" @click.native="handleEditShow(scope.row)">Edit<!-- 修改数据 --> </el-dropdown-item>
                                 <el-dropdown-item command="del" @click.native="handleDel(scope.row.ID)"
-                                                  v-show="permission.hasPermission(`shop/goods-delete`)">删除数据
+                                                  v-show="permission.hasPermission(`shop/goods-delete`)">Delete<!-- 删除数据 -->
                                 </el-dropdown-item>
-                                <el-dropdown-item command="goods-edit" @click.native="handleGoodUp(scope.row.ID)">商品上架 </el-dropdown-item>
-                                 <el-dropdown-item command="goods-edit" @click.native="handleGoodDown(scope.row.ID)">商品下架 </el-dropdown-item>
+                                <el-dropdown-item command="goods-edit" @click.native="handleGoodUp(scope.row.ID)">On sale<!-- 商品上架 --> </el-dropdown-item>
+                                 <el-dropdown-item command="goods-edit" @click.native="handleGoodDown(scope.row.ID)">Sold out<!-- 商品下架 --> </el-dropdown-item>
                             </el-dropdown-menu>
                         </el-dropdown>
                     </template>
@@ -52,10 +52,10 @@
                     </el-dropdown-menu>
                 </el-dropdown>-->
                 <el-button type="primary" size="small" @click="handlestate" icon="el-icon-plus"
-                           v-if="permission.hasPermission(`shop/goods-add`)">商品添加
+                           v-if="permission.hasPermission(`shop/goods-add`)"><!-- 商品添加 -->Products add
                 </el-button>
 
-                <el-button type="success" size="small" @click="handleExport" v-show="permission.hasPermission(`shop/goods-list-export`)">导出Excel</el-button>
+                <el-button type="success" size="small" @click="handleExport" v-show="permission.hasPermission(`shop/goods-list-export`)">Export Excel</el-button>
                 <!-- <el-button-group>
                     <el-button type="success" size="mini" @click.native="handleup(scope.row.ID)">上架</el-button>
                     <el-button type="danger" size="mini">下架</el-button>
@@ -63,11 +63,11 @@
                 <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
             </div>
         </div>
-        <el-dialog title="修改套餐" :visible.sync="dialogEditFormVisible">
+        <el-dialog title="Edit Products" :visible.sync="dialogEditFormVisible"><!-- 修改商品 -->
             <el-form :model="form" label-width="250px" class="form-dialog" v-loading="dialogEditLoading">
 
 
-                    <el-form-item label="商品名称">
+                    <el-form-item label="Products Name"><!-- 商品名称 -->
                         <el-input v-model="form.goodsName"></el-input>
                     </el-form-item>
                     <!-- <el-form-item label="商品来源">
@@ -76,54 +76,57 @@
                                        :value="index"></el-option>
                         </el-select>
                     </el-form-item> -->
-                    <el-form-item label="会员折扣">
+                    <el-form-item label="Member discount"><!-- 会员折扣 -->
                         <el-input v-model="form.sellDiscount"></el-input>
                     </el-form-item>
-                    <el-form-item label="商品类型">
+                    <el-form-item label="Product type"><!-- 商品类型 -->
                         <el-checkbox  v-for="(value,index) in GiftTypeArr" v-model="value.checked" :key="index" >{{value.name}}</el-checkbox>
                     </el-form-item>
                     <!-- <el-form-item label="复消购买方式">
                          <el-checkbox  v-for="(value,index) in sell_type" v-model="value.checked" :key="index" >{{value.name}}</el-checkbox>
                     </el-form-item> -->
-                    <el-form-item label="商品分类">
+                    <el-form-item label="Product Category"> <!-- 商品分类 -->
                         <el-select v-model="form.categoryType">
                             <el-option v-for="item in categoryType" :key="item.id" :label="item.name" :value="item.id" ></el-option>
                         </el-select>
                     </el-form-item>
-                    <el-form-item label="商品编号">
+                    <el-form-item label="Product Code"><!-- 商品编号 -->
                         <el-input v-model="form.goodsNo"></el-input>
                     </el-form-item>
-                    <el-form-item label="单位">
+                    <el-form-item label="Unit"><!-- 单位 -->
                         <el-input v-model="form.unit"></el-input>
                     </el-form-item>
-                    <el-form-item label="市场价格">
+                    <el-form-item label="标准价格($)" p>
+                        <el-input v-model="form.sellPriceStandard"></el-input>
+                    </el-form-item>
+                    <el-form-item label="市场价格(n)">
                         <el-input v-model="form.marketPrice"></el-input>
                     </el-form-item>
-                    <el-form-item label="销售价格" p>
+                    <el-form-item label="销售价格(n)" p>
                         <el-input v-model="form.sellPrice"></el-input>
                     </el-form-item>
-                    <el-form-item label="价格BV" v-show="pvDisabled">
+                    <el-form-item label="Price BV" v-show="pvDisabled"> <!-- 价格BV -->
                         <el-input v-model="form.pricePv"></el-input>
                     </el-form-item>
-                    <el-form-item label="兑换积分" v-show="false">
+                    <el-form-item label="Exchange points" v-show="false"> <!-- 兑换积分 -->
                         <el-input v-model="form.point"></el-input>
                     </el-form-item>
-                    <el-form-item label="库存">
+                    <el-form-item label="Inventory"> <!-- 库存 -->
                         <el-input v-model="form.storeNums"></el-input>
                     </el-form-item>
-                    <el-form-item label="商品详情">
+                    <el-form-item label="Product details"><!-- 商品详情 -->
                         <el-input
                                 type="textarea"
                                 :rows="2"
-                                placeholder="请输入内容"
+                                placeholder="Please enter the content"
                                 v-model="form.content">
-                        </el-input>
+                        </el-input><!-- 请输入内容 -->
                     </el-form-item>
-                    <el-form-item label="排序">
+                    <el-form-item label="order"> <!-- 排序 -->
                         <el-input v-model="form.sort"></el-input>
                     </el-form-item>
 
-                    <el-form-item label="上传图片">
+                    <el-form-item label="upload images"> <!-- 上传图片 -->
                        <div class='up_load'>
                            <!-- <img v-if="form.cover&&img_show" :src="form.cover" alt=""> -->
                             <leo-uploader
@@ -139,8 +142,8 @@
 
             </el-form>
             <div slot="footer" class="dialog-footer">
-                <el-button @click="dialogEditFormVisible = false">取 消</el-button>
-                <el-button type="primary" @click.native="handleEdit">修 改</el-button>
+                <el-button @click="dialogEditFormVisible = false">Cancel<!-- 取 消 --></el-button>
+                <el-button type="primary" @click.native="handleEdit">Edit<!-- 修 改 --></el-button>
             </div>
         </el-dialog>
     </div>
@@ -196,6 +199,7 @@
                     unit:'',
                     marketPrice:'',
                     sellPrice:'',
+                    sellPriceStandard: '',
                     pricePv:'',
                     point:'',
                     storeNums:'',
@@ -215,6 +219,7 @@
                 categoryType: [],
                 img_show:true,
                 pvDisabled: true,
+                exchangeRate: baseInfo.exchangeRate(),
             }
         },
         methods: {
@@ -290,6 +295,7 @@
                     vueObj.form.unit=response.goodsInfo.UNIT
                     vueObj.form.marketPrice=response.goodsInfo.MARKET_PRICE
                     vueObj.form.sellPrice=response.goodsInfo.SELL_PRICE
+                    vueObj.form.sellPriceStandard=response.goodsInfo.SELL_PRICE_STANDARD
                     vueObj.form.pricePv=response.goodsInfo.PRICE_PV
                     vueObj.form.point=response.goodsInfo.POINT
                     vueObj.form.storeNums=response.goodsInfo.STORE_NUMS
@@ -309,7 +315,7 @@
             handleEdit() {
                 this.dialogEditFormVisible = false
                 this.$message({
-                    message: '正在修改数据',
+                    message: 'Modifying data',//正在修改数据
                     type: 'info'
                 })
                 let path = 'shop/goods-edit'
@@ -343,9 +349,9 @@
 
             handleDel(id = null) {
                 let obj = this
-                this.$confirm('确定删除选定的数据?', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
+                this.$confirm('Determine to delete the selected data?', 'Hint', {//'确定删除选定的数据?', '提示'
+                    confirmButtonText: 'Confirm',//确定
+                    cancelButtonText: 'Cancel',//取消
                     type: 'warning'
                 }).then(() => {
                     let selectedIds = []
@@ -401,9 +407,9 @@
             },
 
             handleExport(){
-                this.$confirm(`确定要导出当前数据吗?`, '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
+                this.$confirm(`Determine to export the selected data?`, 'Hint', {//确定要导出当前数据吗?`, '提示'
+                    confirmButtonText: 'Confirm',//确定
+                    cancelButtonText: 'Cancel',//取消
                     type: 'warning'
                 }).then(() => {
                     return network.getData(`shop/goods-list-export`, this.filterModel)
@@ -424,7 +430,14 @@
                 handler(modern, origin) {
                     this.pvDisabled = (parseInt(modern) === 1)
                 }
-            }
+            },
+            // 监听商品标准价格,自动计算销售价格
+            'form.sellPriceStandard': {
+                deep: true,
+                handler(modern, origin) {
+                    this.form.sellPrice = modern * this.exchangeRate
+                }
+            },
         },
     }
 

+ 31 - 11
backendEle/src/views/shop/package-add.vue

@@ -3,25 +3,28 @@
         <div class="white-box">
             <el-form ref="form"  label-width="250px" class="form-page">
 
-                <el-form-item label="套餐名称">
+                <el-form-item label="Kitting products name"><!-- 套餐名称 -->
                     <el-input v-model="form.packageName"></el-input>
                 </el-form-item>
-                <el-form-item label="套餐编号">
+                <el-form-item label="Kitting products code"><!-- 套餐编号 -->
                     <el-input v-model="form.packageNo"></el-input>
                 </el-form-item>
-                <el-form-item label="套餐金额">
+                <el-form-item label="标准价格">
+                    <el-input v-model="form.amountStandard"></el-input>
+                </el-form-item>
+                <el-form-item label="Kitting products amount"><!-- 套餐金额 -->
                     <el-input v-model="form.amount"></el-input>
                 </el-form-item>
-                <el-form-item label="套餐BV">
+                <el-form-item label="Kitting products BV"><!-- 套餐bV -->
                     <el-input v-model="form.amountPv"></el-input>
                 </el-form-item>
-                <el-form-item label="报单级别ID">
-                    <el-select v-model="form.levelId" placeholder="请选择报单级别">
+                <el-form-item label="Entry level ID"><!-- 报单级别ID -->
+                    <el-select v-model="form.levelId" placeholder="Select entry level"><!-- 请选择报单级别 -->
                         <el-option v-for="(item,index) in allDecLevel" :key="index" :label="item.LEVEL_NAME"
                                    :value="item.ID"></el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="套餐内容">
+                <el-form-item label="Kit products"><!-- 套餐内容 -->
                     <el-input v-model="form.packageContent"></el-input>
                 </el-form-item>
               <el-form-item label="套餐库存">
@@ -30,7 +33,7 @@
 
 
                 <el-form-item>
-                    <el-button type="primary" @click="addSubmit" :loading="submitButtonStat">添加</el-button>
+                    <el-button type="primary" @click="addSubmit" :loading="submitButtonStat">Add<!-- 添加 --></el-button>
                 </el-form-item>
             </el-form>
         </div>
@@ -56,10 +59,13 @@
                     amountPv:'',
                     levelId:'',
                     packageContent:'',
-					storenums:''
+                    storenums:'',
+                    amountStandard: '',
+
                 },
                 submitButtonStat: false,
                 allDecLevel: baseInfo.decLevels(),
+                exchangeRate: baseInfo.exchangeRate(),
             }
         },
         methods: {
@@ -73,8 +79,13 @@
                     amount: this.form.amount,
                     amountPv: this.form.amountPv,
                     levelId: this.form.levelId,
+<<<<<<< HEAD
                     packageContent: this.form.packageContent,
 					storenums:this.form.storenums,
+=======
+                    packageContent: this.form.packageContent,
+                    amountStandard: this.form.amountStandard,
+>>>>>>> feature/theo-translate
 
                 }
 
@@ -93,7 +104,7 @@
             handleEdit() {
                 this.dialogEditFormVisible = false
                 this.$message({
-                    message: '正在修改数据',
+                    message: 'Modifying data',
                     type: 'info'
                 })
                 let path = 'finance/deal-type-edit'
@@ -106,7 +117,16 @@
                 }).catch(response => {
                 })
             },
-        }
+        },
+        watch:{
+            // 监听商品标准价格,自动计算销售价格
+            'form.amountStandard': {
+                deep: true,
+                handler(modern, origin) {
+                    this.form.amount = modern * this.exchangeRate
+                }
+            },
+        },
     }
 </script>
 

+ 37 - 22
backendEle/src/views/shop/package.vue

@@ -18,20 +18,20 @@
                         </template>
                     </template>
                 </el-table-column>
-                <el-table-column fixed="right" label="操作" width="180">
+                <el-table-column fixed="right" label="Action" width="180"><!-- 操作 -->
                     <template slot-scope="scope">
                         <el-dropdown size="small" trigger="click" v-if="permission.hasPermission(`shop/package-get`)">
                             <el-button type="primary" size="small" @click.stop="">
-                                操作该数据<i class="el-icon-arrow-down el-icon--right"></i>
+                                Operate on this data<!-- 操作该数据 --><i class="el-icon-arrow-down el-icon--right"></i>
                             </el-button>
                             <el-dropdown-menu slot="dropdown">
-                                <el-dropdown-item command="package-get" @click.native="handleEditShow(scope.row)">修改数据
+                                <el-dropdown-item command="package-get" @click.native="handleEditShow(scope.row)">Edit<!-- 修改数据 -->
                                 </el-dropdown-item>
                                 <el-dropdown-item command="del" @click.native="handleDel(scope.row.ID)"
-                                                  v-show="permission.hasPermission(`shop/goods-delete`)">删除数据
+                                                  v-show="permission.hasPermission(`shop/goods-delete`)">Delete<!-- 删除数据 -->
                                 </el-dropdown-item>
-                                <el-dropdown-item command="goods-edit" @click.native="handleGoodUp(scope.row.ID)">商品上架 </el-dropdown-item>
-                                <el-dropdown-item command="goods-edit" @click.native="handleGoodDown(scope.row.ID)">商品下架 </el-dropdown-item>
+                                <el-dropdown-item command="goods-edit" @click.native="handleGoodUp(scope.row.ID)">On sale<!-- 商品上架 --> </el-dropdown-item>
+                                <el-dropdown-item command="goods-edit" @click.native="handleGoodDown(scope.row.ID)">Sold out<!-- 商品下架 --> </el-dropdown-item>
                             </el-dropdown-menu>
                         </el-dropdown>
                     </template>
@@ -40,34 +40,37 @@
 
             <div class="white-box-footer">
                 <el-button type="primary" size="small" @click="handlestate" icon="el-icon-plus"
-                           v-if="permission.hasPermission(`shop/package-add`)">新增套餐
+                           v-if="permission.hasPermission(`shop/package-add`)">Add Kitting products<!-- 新增套餐 -->
                 </el-button>
                 <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange"
                             @current-change="handleCurrentChange"></pagination>
             </div>
         </div>
-        <el-dialog title="修改套餐" :visible.sync="dialogEditFormVisible">
+        <el-dialog title="Edit Kitting products" :visible.sync="dialogEditFormVisible"><!-- 修改套餐 -->
             <el-form :model="form" label-width="250px" class="form-dialog" v-loading="dialogEditLoading">
 
-                <el-form-item label="套餐名称">
+                <el-form-item label="Kitting products name"><!-- 套餐名称 -->
                     <el-input v-model="form.packageName"></el-input>
                 </el-form-item>
-                <el-form-item label="套餐编号">
+                <el-form-item label="Kitting products code"><!-- 套餐编号 -->
                     <el-input v-model="form.packageNo"></el-input>
                 </el-form-item>
-                <el-form-item label="套餐金额">
+                <el-form-item label="标准价格">
+                    <el-input v-model="form.amountStandard"></el-input>
+                </el-form-item>
+                <el-form-item label="Kitting products amount"><!-- 套餐价格 -->
                     <el-input v-model="form.amount"></el-input>
                 </el-form-item>
-                <el-form-item label="套餐BV">
+                <el-form-item label="Kitting products BV"><!-- 套餐bV -->
                     <el-input v-model="form.amountPv"></el-input>
                 </el-form-item>
-                <el-form-item label="报单级别ID">
-                    <el-select v-model="form.levelId" placeholder="请选择报单级别">
+                <el-form-item label="Entry level ID"><!-- 报单级别ID -->
+                    <el-select v-model="form.levelId" placeholder="Select entry level"><!-- 请选择报单级别 -->
                         <el-option v-for="(item,index) in allDecLevel" :key="index" :label="item.LEVEL_NAME"
                                    :value="item.ID"></el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="套餐内容">
+                <el-form-item label="Kit products"><!-- 套餐内容 -->
                     <el-input v-model="form.packageContent"></el-input>
                 </el-form-item>
               <el-form-item label="套餐库存">
@@ -75,8 +78,8 @@
               </el-form-item>
             </el-form>
             <div slot="footer" class="dialog-footer">
-                <el-button @click="dialogEditFormVisible = false">取 消</el-button>
-                <el-button type="primary" @click.native="handleEdit">修 改</el-button>
+                <el-button @click="dialogEditFormVisible = false">Cancel<!-- 取 消 --></el-button>
+                <el-button type="primary" @click.native="handleEdit">Edit<!-- 修 改 --></el-button>
             </div>
         </el-dialog>
     </div>
@@ -126,7 +129,10 @@
                     statusValue: [],
                     sendType: null,
                     remark: null,
+                    amount: '',
+                    amountStandard: '',
                 },
+                exchangeRate: baseInfo.exchangeRate(),
             }
         },
         methods: {
@@ -161,7 +167,7 @@
             handleEdit() {
                 this.dialogEditFormVisible = false
                 this.$message({
-                    message: '正在修改数据',
+                    message: 'Modifying data',//正在修改数据
                     type: 'info'
                 })
                 let path = 'shop/package-get'
@@ -177,9 +183,9 @@
 
             handleDel(id = null) {
                 let obj = this
-                this.$confirm('确定删除选定的数据?', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
+                this.$confirm('OK to delete the selected data?', 'Hint', {//'确定删除选定的数据?', '提示'
+                    confirmButtonText: 'Confirm',
+                    cancelButtonText: 'Cancel',
                     type: 'warning'
                 }).then(() => {
                     let selectedIds = []
@@ -233,7 +239,16 @@
                     })
             }
 
-        }
+        },
+        watch:{
+            // 监听商品标准价格,自动计算销售价格
+            'form.amountStandard': {
+                deep: true,
+                handler(modern, origin) {
+                    this.form.amount = modern * this.exchangeRate
+                }
+            },
+        },
     }
 
 </script>

+ 33 - 0
common/helpers/PayStack.php

@@ -4,6 +4,39 @@ namespace common\helpers;
 
 class PayStack
 {
+    /**
+     *
+     */
+    public static function transactionInit($currency, $amount, $email){
+        $secretKey = \Yii::$app->Paystack->testSecretKey;
+        $url = "https://api.paystack.co/transaction/initialize";
+        $fields = [
+            'email' => $email,
+            'amount' => $amount * 100
+        ];
+        $fields_string = http_build_query($fields);
+        //open connection
+        $ch = curl_init();
+
+        //set the url, number of POST vars, POST data
+        curl_setopt($ch,CURLOPT_URL, $url);
+        curl_setopt($ch,CURLOPT_POST, true);
+        curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+            "Authorization: Bearer {$secretKey}",
+            "Cache-Control: no-cache",
+        ));
+        //So that curl_exec returns the contents of the cURL; rather than echoing it
+        curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
+        //execute post
+        $result = curl_exec($ch);
+        $result =  json_decode($result, true);
+        return [
+            'status'    => $result['status'],
+            'message'   => $result['message'],
+            'data'      => $result['data'],
+        ];
+    }
     /**
      * 交易支付.
      * @param $ref

+ 1 - 1
common/helpers/Validator.php

@@ -26,7 +26,7 @@ class Validator extends \yii\validators\Validator {
         'chDate'	    =>	["#^\d{4}([/-])([0][0-9]|[1][0-2])\\1([0-2][0-9]|[3][0-1])$#", '必须为日期格式'],
         'chMonth'       =>  ["#^\d{4}([/-])([0][0-9]|[1][0-2]|[0-9])$#", '必须为年月格式'],
         'phone'			=>	["#^\d{3}-\d{8}|\d{4}-\d{7}|\d{4}-\d{8}$#", '必须为电话格式'],
-        'mobile'        =>	["|^1[2-9]\d{9}$|", '格式输入不正确'],
+        'mobile'        =>	["|^0[7-9]\d{9}$|", '格式输入不正确'],
         'alpha'         =>  ["|^[a-zA-Z]+$|", '必须为英文字母格式'],
         'zh'            =>  ['/^[\x{4e00}-\x{9fa5}]+$/u', '必须为中文'],
         'price'         =>  ["/^[0-9]+([.]{1}[0-9]{1,2})?$/", '必须为金额格式'],

+ 12 - 11
common/helpers/bonus/BonusCalc.php

@@ -328,16 +328,16 @@ class BonusCalc extends BaseObject {
             $this->_updatePercent(80);
 
             // 计算基础积分,不可以奖金入库之前计算这样可能会丢掉只有本期的奖金的会员
-            $this->calcBaseScore();
-            $this->_updatePercent(90);
-            $t22 = microtime(true);
-            echo('计算基础积分,耗时:' . round($t22 - $t21, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
+//            $this->calcBaseScore();
+//            $this->_updatePercent(90);
+//            $t22 = microtime(true);
+//            echo('计算基础积分,耗时:' . round($t22 - $t21, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
 
             //积分入库
-            $this->loopWriteScore();
-            $this->_updatePercent(100);
-            $t23 = microtime(true);
-            echo('积分写库操作完成,耗时:' . round($t23 - $t22, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
+//            $this->loopWriteScore();
+//            $this->_updatePercent(100);
+//            $t23 = microtime(true);
+//            echo('积分写库操作完成,耗时:' . round($t23 - $t22, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
 
             //@todo 计算房产奖
 
@@ -3156,6 +3156,7 @@ class BonusCalc extends BaseObject {
         //判断是否达到了本月扣除复消的上限
         $cacheData = CalcCache::monthLastPeriodReconsumePoints($userId, $this->_periodNum, $this->_calcYearMonth);
         $bonusCache = CalcCache::bonus($userId, $this->_periodNum);
+
         $reConsumePointsTotal = $bonusCache['RECONSUME_POINTS'] + $cacheData['RECONSUME_POINTS_SUM'];
         $reConsumePointsCap = $this->_sysConfig['reConsumePointsMonthCap']['VALUE'];
         unset($cacheData, $bonusCache);
@@ -3171,9 +3172,9 @@ class BonusCalc extends BaseObject {
         $manageTax = $bonus * $this->_sysConfig['manageTaxPercent']['VALUE'] / 100;
         $surplus = $bonus - $reConsumePoints - $manageTax;
         return [
-            'reConsumePoints' => Tool::formatPrice($reConsumePoints),
-            'manageTax' => Tool::formatPrice($manageTax),
-            'surplus' => Tool::formatPrice($surplus),
+            'reConsumePoints' => Tool::formatPrice($reConsumePoints),//复效积分
+            'manageTax' => Tool::formatPrice($manageTax),//管理费
+            'surplus' => Tool::formatPrice($surplus),//真实奖金
         ];
     }
 

+ 14 - 9
common/helpers/bonus/BonusSend.php

@@ -342,6 +342,7 @@ class BonusSend extends BaseObject {
 
                             'DEAL_TYPE_ID' => DealType::BONUS_SEND,
                             'SORT' => $key * 10,
+                            'BONUS_ISSUE' => true,
                         ]);
 //                        $this->_teamworkBonus($data['USER_ID'], $periodAmount, $key);
                     }
@@ -355,6 +356,7 @@ class BonusSend extends BaseObject {
                             'TRAVEL' => $data['BONUS_TRAVEL'],
                             'DEAL_TYPE_ID' => DealType::TRAVEL_SEND,
                             'SORT' => $key * 10,
+                            'BONUS_ISSUE' => true,
                         ]);
                     }
                     // 名车奖
@@ -366,6 +368,7 @@ class BonusSend extends BaseObject {
                             'HOUSE' => $data['BONUS_CAR'],
                             'DEAL_TYPE_ID' => DealType::CAR_SEND,
                             'SORT' => $key * 10,
+                            'BONUS_ISSUE' => true,
                         ]);
                     }
                     // 豪宅奖
@@ -377,19 +380,20 @@ class BonusSend extends BaseObject {
                             'HOUSE' => $data['BONUS_HOUSE'],
                             'DEAL_TYPE_ID' => DealType::HOUSE_SEND,
                             'SORT' => $key * 10,
+                            'BONUS_ISSUE' => true,
                         ]);
                     }
 
                     //发放重消积分
-                    if ($data['RECONSUME_POINTS'] > 0) {
-                        Balance::changeUserBonus($data['USER_ID'], 'reconsume_points', $data['RECONSUME_POINTS'], [
-                            'CALC_ID' => $data['ID'],
-                            'REMARK' => 'From ' . $periodNum . '期',
-                            'PERIOD_NUM' => $periodNum,
-                            'RECONSUME_POINTS' => $data['RECONSUME_POINTS'],
-                            'DEAL_TYPE_ID' => DealType::RECONSUME_POINTS_SEND,
-                        ]);
-                    }
+//                    if ($data['RECONSUME_POINTS'] > 0) {
+//                        Balance::changeUserBonus($data['USER_ID'], 'reconsume_points', $data['RECONSUME_POINTS'], [
+//                            'CALC_ID' => $data['ID'],
+//                            'REMARK' => 'From ' . $periodNum . '期',
+//                            'PERIOD_NUM' => $periodNum,
+//                            'RECONSUME_POINTS' => $data['RECONSUME_POINTS'],
+//                            'DEAL_TYPE_ID' => DealType::RECONSUME_POINTS_SEND,
+//                        ]);
+//                    }
 
                     //发放兑换积分
                     if ($data['EXCHANGE_POINTS'] > 0) {
@@ -399,6 +403,7 @@ class BonusSend extends BaseObject {
                             'PERIOD_NUM' => $periodNum,
                             'EXCHANGE_POINTS' => $data['EXCHANGE_POINTS'],
                             'DEAL_TYPE_ID' => DealType::EXCHANGE_POINTS_SEND,
+                            'BONUS_ISSUE' => true,
                         ]);
                     }
                     // 把记录标记为已发放状态

+ 82 - 79
common/helpers/user/Balance.php

@@ -247,6 +247,8 @@ class Balance {
             $periodNum = $params['PERIOD_NUM'];
         }
         $calcYearMonth = $period->getYearMonth($periodNum);
+        // 汇率
+        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
         // redis加锁(防止并发余额数值不准确出错)
         switch ($type) {
             case 'BONUS':
@@ -280,131 +282,130 @@ class Balance {
             // 改变发奖
             $paramData = [];
             $oneUserBonusModel = UserBonus::findOne(['USER_ID' => $userId]);
+            // 是否奖金发放操作
+            $issueBonus = $params['BONUS_ISSUE'] ?? false;
             if ($oneUserBonusModel) {
-                $paramData[$type] = new Expression($type.' + '.$amount);
+                $paramData[$type] = new Expression($type.' + ' . ($issueBonus ? $amount * $exchangeRate : $amount));
 
-                $oneUserBonusModel->$type += $amount;
+                $oneUserBonusModel->$type += ($issueBonus ? $amount * $exchangeRate : $amount);
                 if ($oneUserBonusModel->$type < 0) {
                     RedisLock::instance()->unlock($lockKey);
                     throw new Exception('金额不足');
                 }
 
                 if (isset($params['QY'])) {
-                    $paramData['QY_TOTAL'] = new Expression('QY_TOTAL + '.$params['QY']);
+                    $paramData['QY_TOTAL'] = new Expression('QY_TOTAL + ' . ($issueBonus ? $params['QY'] * $exchangeRate : $params['QY']));
                     //$oneUserBonusModel->QY_TOTAL += $params['QY'];
                 }
                 if (isset($params['FW'])) {
-                    $paramData['FW_TOTAL'] = new Expression('FW_TOTAL + '.$params['FW']);
+                    $paramData['FW_TOTAL'] = new Expression('FW_TOTAL + ' . ($issueBonus ? $params['FW'] * $exchangeRate : $params['FW']));
                 }
                 if (isset($params['YC'])) {
-                    $paramData['YC_TOTAL'] = new Expression('YC_TOTAL + '.$params['YC']);
+                    $paramData['YC_TOTAL'] = new Expression('YC_TOTAL + ' . ($issueBonus ? $params['YC'] * $exchangeRate : $params['YC']));
                     //$oneUserBonusModel->YC_TOTAL += $params['YC'];
                 }
                 if (isset($params['VIP'])) {
-                    $paramData['VIP_TOTAL'] = new Expression('VIP_TOTAL + '.$params['VIP']);
+                    $paramData['VIP_TOTAL'] = new Expression('VIP_TOTAL + ' . ($issueBonus ? $params['VIP'] * $exchangeRate : $params['VIP']));
                 }
                 if (isset($params['BD'])) {
-                    $paramData['BD_TOTAL'] = new Expression('BD_TOTAL + '.$params['BD']);
+                    $paramData['BD_TOTAL'] = new Expression('BD_TOTAL + ' . ($issueBonus ? $params['BD'] * $exchangeRate : $params['BD']));
                     //$oneUserBonusModel->BD_TOTAL += $params['BD'];
                 }
                 if (isset($params['TG'])) {
-                    $paramData['TG_TOTAL'] = new Expression('TG_TOTAL + '.$params['TG']);
+                    $paramData['TG_TOTAL'] = new Expression('TG_TOTAL + ' . ($issueBonus ? $params['TG'] * $exchangeRate : $params['TG']));
                     //$oneUserBonusModel->TG_TOTAL += $params['TG'];
                 }
                 if (isset($params['YJ'])) {
-                    $paramData['YJ_TOTAL'] = new Expression('YJ_TOTAL + '.$params['YJ']);
+                    $paramData['YJ_TOTAL'] = new Expression('YJ_TOTAL + ' . ($issueBonus ? $params['YJ'] * $exchangeRate : $params['YJ']));
                     //$oneUserBonusModel->YJ_TOTAL += $params['YJ'];
                 }
                 if (isset($params['GX'])) {
-                    $paramData['GX_TOTAL'] = new Expression('GX_TOTAL + '.$params['GX']);
+                    $paramData['GX_TOTAL'] = new Expression('GX_TOTAL + ' . ($issueBonus ? $params['GX'] * $exchangeRate : $params['GX']));
                     //$oneUserBonusModel->GX_TOTAL += $params['GX'];
                 }
                 if (isset($params['GL'])) {
-                    $paramData['GL_TOTAL'] = new Expression('GL_TOTAL + '.$params['GL']);
+                    $paramData['GL_TOTAL'] = new Expression('GL_TOTAL + ' . ($issueBonus ? $params['GL'] * $exchangeRate : $params['GL']));
                     //$oneUserBonusModel->GL_TOTAL += $params['GL'];
                 }
                 if (isset($params['BS'])) {
-                    $paramData['BS_TOTAL'] = new Expression('BS_TOTAL + '.$params['BS']);
+                    $paramData['BS_TOTAL'] = new Expression('BS_TOTAL + ' . ($issueBonus ? $params['BS'] * $exchangeRate : $params['BS']));
                 }
                 if (isset($params['BS_MNT'])) {
-                    $paramData['BS_MNT_TOTAL'] = new Expression('BS_MNT_TOTAL + '.$params['BS_MNT']);
+                    $paramData['BS_MNT_TOTAL'] = new Expression('BS_MNT_TOTAL + ' . ($issueBonus ? $params['BS_MNT'] * $exchangeRate : $params['BS_MNT']));
                 }
                 if (isset($params['BS_ABBR'])) {
-                    $paramData['BS_ABBR_TOTAL'] = new Expression('BS_ABBR_TOTAL + '.$params['BS_ABBR']);
+                    $paramData['BS_ABBR_TOTAL'] = new Expression('BS_ABBR_TOTAL + ' . ($issueBonus ? $params['BS_ABBR'] * $exchangeRate : $params['BS_ABBR']));
                 }
                 if (isset($params['TRAVEL_POINTS'])) {
-                    $paramData['TRAVEL_POINTS_TOTAL'] = new Expression('TRAVEL_POINTS_TOTAL + ' . $params['TRAVEL_POINTS']);
+                    $paramData['TRAVEL_POINTS_TOTAL'] = new Expression('TRAVEL_POINTS_TOTAL + ' . ($issueBonus ? $params['TRAVEL_POINTS'] * $exchangeRate : $params['TRAVEL_POINTS']));
                 }
                 if (isset($params['CAR_POINTS'])) {
-                    $paramData['CAR_POINTS_TOTAL'] = new Expression('CAR_POINTS_TOTAL + '.$params['CAR_POINTS']);
+                    $paramData['CAR_POINTS_TOTAL'] = new Expression('CAR_POINTS_TOTAL + ' . ($issueBonus ? $params['CAR_POINTS'] * $exchangeRate : $params['CAR_POINTS']));
                 }
                 if (isset($params['HOUSE_POINTS'])) {
-                    $paramData['HOUSE_POINTS_TOTAL'] = new Expression('HOUSE_POINTS_TOTAL + '.$params['HOUSE_POINTS']);
+                    $paramData['HOUSE_POINTS_TOTAL'] = new Expression('HOUSE_POINTS_TOTAL + ' . ($issueBonus ? $params['HOUSE_POINTS'] * $exchangeRate : $params['HOUSE_POINTS']));
                 }
                 if (isset($params['RECONSUME_POINTS_TOTAL'])) {
-                    $paramData['RECONSUME_POINTS_TOTAL'] = new Expression('RECONSUME_POINTS_TOTAL + '.$params['RECONSUME_POINTS_TOTAL']);
+                    $paramData['RECONSUME_POINTS_TOTAL'] = new Expression('RECONSUME_POINTS_TOTAL + ' . ($issueBonus ? $params['RECONSUME_POINTS_TOTAL'] * $exchangeRate : $params['RECONSUME_POINTS_TOTAL']));
                     //$oneUserBonusModel->RECONSUME_POINTS_TOTAL += $params['RECONSUME_POINTS_TOTAL'];
                 }
                 if (isset($params['EXCHANGE_POINTS_TOTAL'])) {
-                    $paramData['EXCHANGE_POINTS_TOTAL'] = new Expression('EXCHANGE_POINTS_TOTAL + '.$params['EXCHANGE_POINTS_TOTAL']);
+                    $paramData['EXCHANGE_POINTS_TOTAL'] = new Expression('EXCHANGE_POINTS_TOTAL + ' . ($issueBonus ? $params['EXCHANGE_POINTS_TOTAL'] * $exchangeRate : $params['EXCHANGE_POINTS_TOTAL']));
                     //$oneUserBonusModel->RECONSUME_POINTS_TOTAL += $params['RECONSUME_POINTS_TOTAL'];
                 }
                 if (isset($params['MANAGE_TAX'])) {
-                    $paramData['MANAGE_TAX'] = new Expression('MANAGE_TAX + '.$params['MANAGE_TAX']);
+                    $paramData['MANAGE_TAX'] = new Expression('MANAGE_TAX + ' . ($issueBonus ? $params['MANAGE_TAX'] * $exchangeRate : $params['MANAGE_TAX']));
                     //$oneUserBonusModel->MANAGE_TAX += $params['MANAGE_TAX'];
                 }
 
                 if (isset($params['ORI_QY'])) {
-                    $paramData['ORI_QY_TOTAL'] = new Expression('ORI_QY_TOTAL + '.$params['ORI_QY']);
+                    $paramData['ORI_QY_TOTAL'] = new Expression('ORI_QY_TOTAL + ' . ($issueBonus ? $params['ORI_QY'] * $exchangeRate : $params['ORI_QY']));
                     //$oneUserBonusModel->ORI_QY_TOTAL += $params['ORI_QY'];
                 }
 //                if (isset($params['ORI_FW'])) {
 //                    $paramData['ORI_FW_TOTAL'] = new Expression('ORI_FW_TOTAL + '.$params['ORI_FW']);
 //                }
                 if (isset($params['ORI_YC'])) {
-                    $paramData['ORI_YC_TOTAL'] = new Expression('ORI_YC_TOTAL + '.$params['ORI_YC']);
+                    $paramData['ORI_YC_TOTAL'] = new Expression('ORI_YC_TOTAL + ' . ($issueBonus ? $params['ORI_YC'] * $exchangeRate : $params['ORI_YC']));
                     //$oneUserBonusModel->ORI_YC_TOTAL += $params['ORI_YC'];
                 }
                 if (isset($params['ORI_VIP'])) {
-                    $paramData['ORI_VIP_TOTAL'] = new Expression('ORI_VIP_TOTAL + '.$params['ORI_VIP']);
-                }
-                if (isset($params['ORI_VIP'])) {
-                    $paramData['ORI_VIP_TOTAL'] = new Expression('ORI_VIP_TOTAL + '.$params['ORI_VIP']);
+                    $paramData['ORI_VIP_TOTAL'] = new Expression('ORI_VIP_TOTAL + ' . ($issueBonus ? $params['ORI_VIP'] * $exchangeRate : $params['ORI_VIP']));
                 }
                 if (isset($params['ORI_STANDARD'])) {
-                    $paramData['ORI_STANDARD_TOTAL'] = new Expression('ORI_STANDARD_TOTAL + '.$params['ORI_STANDARD']);
+                    $paramData['ORI_STANDARD_TOTAL'] = new Expression('ORI_STANDARD_TOTAL + ' . ($issueBonus ? $params['ORI_STANDARD'] * $exchangeRate : $params['ORI_STANDARD']));
                 }
                 if (isset($params['ORI_TG'])) {
-                    $paramData['ORI_TG_TOTAL'] = new Expression('ORI_TG_TOTAL + '.$params['ORI_TG']);
+                    $paramData['ORI_TG_TOTAL'] = new Expression('ORI_TG_TOTAL + ' . ($issueBonus ? $params['ORI_TG'] * $exchangeRate : $params['ORI_TG']));
                     //$oneUserBonusModel->ORI_TG_TOTAL += $params['ORI_TG'];
                 }
                 if (isset($params['ORI_YJ'])) {
-                    $paramData['ORI_YJ_TOTAL'] = new Expression('ORI_YJ_TOTAL + '.$params['ORI_YJ']);
+                    $paramData['ORI_YJ_TOTAL'] = new Expression('ORI_YJ_TOTAL + ' . ($issueBonus ? $params['ORI_YJ'] * $exchangeRate : $params['ORI_YJ']));
                     //$oneUserBonusModel->ORI_YJ_TOTAL += $params['ORI_YJ'];
                 }
                 if (isset($params['ORI_GX'])) {
-                    $paramData['ORI_GX_TOTAL'] = new Expression('ORI_GX_TOTAL + '.$params['ORI_GX']);
+                    $paramData['ORI_GX_TOTAL'] = new Expression('ORI_GX_TOTAL + ' . ($issueBonus ? $params['ORI_GX'] * $exchangeRate : $params['ORI_GX']));
                     //$oneUserBonusModel->ORI_GX_TOTAL += $params['ORI_GX'];
                 }
                 if (isset($params['ORI_GL'])) {
-                    $paramData['ORI_GL_TOTAL'] = new Expression('ORI_GL_TOTAL + '.$params['ORI_GL']);
+                    $paramData['ORI_GL_TOTAL'] = new Expression('ORI_GL_TOTAL + ' . ($issueBonus ? $params['ORI_GL'] * $exchangeRate : $params['ORI_GL']));
                     //$oneUserBonusModel->ORI_GL_TOTAL += $params['ORI_GL'];
                 }
                 if (isset($params['ORI_BS'])) {
-                    $paramData['ORI_BS_TOTAL'] = new Expression('ORI_BS_TOTAL + '.$params['ORI_BS']);
+                    $paramData['ORI_BS_TOTAL'] = new Expression('ORI_BS_TOTAL + ' . ($issueBonus ? $params['ORI_BS'] * $exchangeRate : $params['ORI_BS']));
                     //$oneUserBonusModel->ORI_GL_TOTAL += $params['ORI_GL'];
                 }
                 if (isset($params['ORI_BS_MNT'])) {
-                    $paramData['BS_MNT_ORI_TOTAL'] = new Expression('BS_MNT_ORI_TOTAL + '.$params['ORI_BS_MNT']);
+                    $paramData['BS_MNT_ORI_TOTAL'] = new Expression('BS_MNT_ORI_TOTAL + ' . ($issueBonus ? $params['ORI_BS_MNT'] * $exchangeRate : $params['ORI_BS_MNT']));
                     //$oneUserBonusModel->ORI_GL_TOTAL += $params['ORI_GL'];
                 }
                 if (isset($params['ORI_BS_ABBR'])) {
-                    $paramData['BS_ABBR_ORI_TOTAL'] = new Expression('BS_ABBR_ORI_TOTAL + '.$params['ORI_BS_ABBR']);
+                    $paramData['BS_ABBR_ORI_TOTAL'] = new Expression('BS_ABBR_ORI_TOTAL + ' . ($issueBonus ? $params['ORI_BS_ABBR'] * $exchangeRate : $params['ORI_BS_ABBR']));
                     //$oneUserBonusModel->ORI_GL_TOTAL += $params['ORI_GL'];
                 }
 
                 if (isset($params['BONUS_TOTAL'])) {
-                    $paramData['BONUS_TOTAL'] = new Expression('BONUS_TOTAL + '.$params['BONUS_TOTAL']);
+                    $paramData['BONUS_TOTAL'] = new Expression('BONUS_TOTAL + ' . ($issueBonus ? $params['BONUS_TOTAL'] * $exchangeRate : $params['BONUS_TOTAL']));
                     //$oneUserBonusModel->BONUS_TOTAL += $params['BONUS_TOTAL'];
                 }
                 UserBonus::updateAll($paramData, 'USER_ID=:USER_ID', [':USER_ID' => $userId]);
@@ -417,74 +418,74 @@ class Balance {
                 ];
                 if (isset($params['QY'])) {
 //                    $paramData['QY_TOTAL'] = new Expression('QY_TOTAL + '.$params['QY']);
-                    $paramData['QY_TOTAL'] = $params['QY'];
+                    $paramData['QY_TOTAL'] =  ($issueBonus ? $params['QY'] * $exchangeRate : $params['QY']);
                 }
                 if (isset($params['FW'])) {
 //                    $paramData['FW_TOTAL'] = new Expression('FW_TOTAL + '.$params['FW']);
-                    $paramData['FW_TOTAL'] = $params['FW'];
+                    $paramData['FW_TOTAL'] = ($issueBonus ? $params['FW'] * $exchangeRate : $params['FW']);
                 }
                 if (isset($params['YC'])) {
 //                    $paramData['YC_TOTAL'] = new Expression('YC_TOTAL + '.$params['YC']);
-                    $paramData['YC_TOTAL'] = $params['YC'];
+                    $paramData['YC_TOTAL'] = ($issueBonus ? $params['YC'] * $exchangeRate : $params['YC']);
                 }
                 if (isset($params['VIP'])) {
 //                    $paramData['VIP_TOTAL'] = new Expression('VIP_TOTAL + '.$params['VIP']);
-                    $paramData['VIP_TOTAL'] = $params['VIP'];
+                    $paramData['VIP_TOTAL'] = ($issueBonus ? $params['VIP'] * $exchangeRate : $params['VIP']);
                 }
 
                 if (isset($params['BD'])) {
 //                    $paramData['BD_TOTAL'] = new Expression('BD_TOTAL + '.$params['BD']);
-                    $paramData['BD_TOTAL'] = $params['BD'];
+                    $paramData['BD_TOTAL'] = ($issueBonus ? $params['BD'] * $exchangeRate : $params['BD']);
                     //$oneUserBonusModel->BD_TOTAL += $params['BD'];
                 }
                 if (isset($params['TG'])) {
 //                    $paramData['TG_TOTAL'] = new Expression('TG_TOTAL + '.$params['TG']);
-                    $paramData['TG_TOTAL'] = $params['TG'];
+                    $paramData['TG_TOTAL'] = ($issueBonus ? $params['TG'] * $exchangeRate : $params['TG']);
                 }
                 if (isset($params['YJ'])) {
 //                    $paramData['YJ_TOTAL'] = new Expression('YJ_TOTAL + '.$params['YJ']);
-                    $paramData['YJ_TOTAL'] = $params['YJ'];
+                    $paramData['YJ_TOTAL'] = ($issueBonus ? $params['YJ'] * $exchangeRate : $params['YJ']);
                 }
                 if (isset($params['GX'])) {
 //                    $paramData['GX_TOTAL'] = new Expression('GX_TOTAL + '.$params['GX']);
-                    $paramData['GX_TOTAL'] = $params['GX'];
+                    $paramData['GX_TOTAL'] = ($issueBonus ? $params['GX'] * $exchangeRate : $params['GX']);
                 }
                 if (isset($params['GL'])) {
 //                    $paramData['GL_TOTAL'] = new Expression('GL_TOTAL + '.$params['GL']);
-                    $paramData['GL_TOTAL'] = $params['GL'];
+                    $paramData['GL_TOTAL'] = ($issueBonus ? $params['GL'] * $exchangeRate : $params['GL']);
                 }
                 if (isset($params['BS'])) {
-                    $paramData['BS_TOTAL'] = $params['BS'];
+                    $paramData['BS_TOTAL'] = ($issueBonus ? $params['BS'] * $exchangeRate : $params['BS']);
                     //$oneUserBonusModel->GL_TOTAL += $params['GL'];
                 }
                 if (isset($params['BS_MNT'])) {
-                    $paramData['BS_MNT_TOTAL'] = $params['BS_MNT'];
+                    $paramData['BS_MNT_TOTAL'] = ($issueBonus ? $params['BS_MNT'] * $exchangeRate : $params['BS_MNT']);
                 }
                 if (isset($params['BS_ABBR'])) {
-                    $paramData['BS_ABBR_TOTAL'] = $params['BS_ABBR'];
+                    $paramData['BS_ABBR_TOTAL'] = ($issueBonus ? $params['BS_ABBR'] * $exchangeRate : $params['BS_ABBR']);
                 }
                 if (isset($params['TRAVEL_POINTS'])) {
-                    $paramData['TRAVEL_POINTS_TOTAL'] = $params['TRAVEL_POINTS'];
+                    $paramData['TRAVEL_POINTS_TOTAL'] = ($issueBonus ? $params['TRAVEL_POINTS'] * $exchangeRate : $params['TRAVEL_POINTS']);
                 }
                 if (isset($params['CAR_POINTS'])) {
-                    $paramData['CAR_POINTS_TOTAL'] = $params['CAR_POINTS'];
+                    $paramData['CAR_POINTS_TOTAL'] = ($issueBonus ? $params['CAR_POINTS'] * $exchangeRate : $params['CAR_POINTS']);
                 }
                 if (isset($params['HOUSE_POINTS'])) {
-                    $paramData['HOUSE_POINTS_TOTAL'] = $params['HOUSE_POINTS'];
+                    $paramData['HOUSE_POINTS_TOTAL'] = ($issueBonus ? $params['HOUSE_POINTS'] * $exchangeRate : $params['HOUSE_POINTS']);
                 }
 
                 if (isset($params['RECONSUME_POINTS_TOTAL'])) {
 //                    $paramData['RECONSUME_POINTS_TOTAL'] = new Expression('RECONSUME_POINTS_TOTAL + '.$params['RECONSUME_POINTS_TOTAL']);
-                    $paramData['RECONSUME_POINTS_TOTAL'] = $params['RECONSUME_POINTS_TOTAL'];
+                    $paramData['RECONSUME_POINTS_TOTAL'] = ($issueBonus ? $params['RECONSUME_POINTS_TOTAL'] * $exchangeRate : $params['RECONSUME_POINTS_TOTAL']);
                 }
                 if (isset($params['MANAGE_TAX'])) {
 //                    $paramData['MANAGE_TAX'] = new Expression('MANAGE_TAX + '.$params['MANAGE_TAX']);
-                    $paramData['MANAGE_TAX'] = $params['MANAGE_TAX'];
+                    $paramData['MANAGE_TAX'] = ($issueBonus ? $params['MANAGE_TAX'] * $exchangeRate : $params['MANAGE_TAX']);
                 }
 
                 if (isset($params['ORI_QY'])) {
 //                    $paramData['ORI_QY_TOTAL'] = new Expression('ORI_QY_TOTAL + '.$params['ORI_QY']);
-                    $paramData['ORI_QY_TOTAL'] = $params['ORI_QY'];
+                    $paramData['ORI_QY_TOTAL'] = ($issueBonus ? $params['ORI_QY'] * $exchangeRate : $params['ORI_QY']);
                 }
 //                if (isset($params['ORI_FW'])) {
 ////                    $paramData['ORI_FW_TOTAL'] = new Expression('ORI_FW_TOTAL + '.$params['ORI_FW']);
@@ -492,49 +493,49 @@ class Balance {
 //                }
                 if (isset($params['ORI_YC'])) {
 //                    $paramData['ORI_YC_TOTAL'] = new Expression('ORI_YC_TOTAL + '.$params['ORI_YC']);
-                    $paramData['ORI_YC_TOTAL'] = $params['ORI_YC'];
+                    $paramData['ORI_YC_TOTAL'] = ($issueBonus ? $params['ORI_YC'] * $exchangeRate : $params['ORI_YC']);
                 }
                 if (isset($params['ORI_VIP'])) {
 //                    $paramData['ORI_VIP_TOTAL'] = new Expression('ORI_VIP_TOTAL + '.$params['ORI_VIP']);
-                    $paramData['ORI_VIP_TOTAL'] = $params['ORI_VIP'];
+                    $paramData['ORI_VIP_TOTAL'] = ($issueBonus ? $params['ORI_VIP'] * $exchangeRate : $params['ORI_VIP']);
                 }
                 if (isset($params['ORI_STANDARD'])) {
-                    $paramData['ORI_STANDARD_TOTAL'] = $params['ORI_STANDARD'];
+                    $paramData['ORI_STANDARD_TOTAL'] = ($issueBonus ? $params['ORI_STANDARD'] * $exchangeRate : $params['ORI_STANDARD']);
                 }
                 if (isset($params['ORI_BD'])) {
 //                    $paramData['ORI_BD_TOTAL'] = new Expression('ORI_BD_TOTAL + '.$params['ORI_BD']);
-                    $paramData['ORI_BD_TOTAL'] = $params['ORI_BD'];
+                    $paramData['ORI_BD_TOTAL'] = ($issueBonus ? $params['ORI_BD'] * $exchangeRate : $params['ORI_BD']);
                 }
                 if (isset($params['ORI_TG'])) {
 //                    $paramData['ORI_TG_TOTAL'] = new Expression('ORI_TG_TOTAL + '.$params['ORI_TG']);
-                    $paramData['ORI_TG_TOTAL'] = $params['ORI_TG'];
+                    $paramData['ORI_TG_TOTAL'] = ($issueBonus ? $params['ORI_TG'] * $exchangeRate : $params['ORI_TG']);
                 }
                 if (isset($params['ORI_YJ'])) {
 //                    $paramData['ORI_YJ_TOTAL'] = new Expression('ORI_YJ_TOTAL + '.$params['ORI_YJ']);
-                    $paramData['ORI_YJ_TOTAL'] = $params['ORI_YJ'];
+                    $paramData['ORI_YJ_TOTAL'] = ($issueBonus ? $params['ORI_YJ'] * $exchangeRate : $params['ORI_YJ']);
                 }
                 if (isset($params['ORI_GX'])) {
 //                    $paramData['ORI_GX_TOTAL'] = new Expression('ORI_GX_TOTAL + '.$params['ORI_GX']);
-                    $paramData['ORI_GX_TOTAL'] = $params['ORI_GX'];
+                    $paramData['ORI_GX_TOTAL'] = ($issueBonus ? $params['ORI_GX'] * $exchangeRate : $params['ORI_GX']);
                 }
                 if (isset($params['ORI_GL'])) {
 //                    $paramData['ORI_GL_TOTAL'] = new Expression('ORI_GL_TOTAL + '.$params['ORI_GL']);
-                    $paramData['ORI_GL_TOTAL'] = $params['ORI_GL'];
+                    $paramData['ORI_GL_TOTAL'] = ($issueBonus ? $params['ORI_GL'] * $exchangeRate : $params['ORI_GL']);
                 }
                 if (isset($params['ORI_BS'])) {
-                    $paramData['ORI_BS_TOTAL'] = $params['ORI_BS'];
+                    $paramData['ORI_BS_TOTAL'] = ($issueBonus ? $params['ORI_BS'] * $exchangeRate : $params['ORI_BS']);
                     //$oneUserBonusModel->ORI_GL_TOTAL += $params['ORI_GL'];
                 }
                 if (isset($params['ORI_BS_MNT'])) {
-                    $paramData['BS_MNT_ORI_TOTAL'] = $params['ORI_BS_MNT'];
+                    $paramData['BS_MNT_ORI_TOTAL'] = ($issueBonus ? $params['ORI_BS_MNT'] * $exchangeRate : $params['ORI_BS_MNT']);
                 }
                 if (isset($params['ORI_BS_ABBR'])) {
-                    $paramData['BS_ABBR_ORI_TOTAL'] = $params['ORI_BS_ABBR'];
+                    $paramData['BS_ABBR_ORI_TOTAL'] = ($issueBonus ? $params['ORI_BS_ABBR'] * $exchangeRate : $params['ORI_BS_ABBR']);
                 }
 
                 if (isset($params['BONUS_TOTAL'])) {
 //                    $paramData['BONUS_TOTAL'] = new Expression('BONUS_TOTAL + '.$params['BONUS_TOTAL']);
-                    $paramData['BONUS_TOTAL'] = $params['BONUS_TOTAL'];
+                    $paramData['BONUS_TOTAL'] = ($issueBonus ? $params['BONUS_TOTAL'] * $exchangeRate : $params['BONUS_TOTAL']);
                 }
                 UserBonus::insertOne($paramData);
             }
@@ -550,7 +551,9 @@ class Balance {
                 'LAST_EMP_LV' => $userInfo['EMP_LV'],
                 'LAST_STATUS' => $userInfo['STATUS'],
                 'CALC_ID' => $params['CALC_ID'] ?? null,
-                'AMOUNT' => $amount,
+                'AMOUNT' => ($issueBonus ? $amount * $exchangeRate : $amount),
+                'AMOUNT_STANDARD' => (!$issueBonus ? $amount / $exchangeRate : $amount),
+                'EXCHANGE_RATE' => $exchangeRate,
                 'TOTAL' => $oneUserBonus[$type],
                 'IS_INCR' => $amount > 0 ? FlowBonus::INCR_ADD : FlowBonus::INCR_REDUCE,
                 'REMARK' => $params['REMARK'] ?? null,
@@ -575,26 +578,26 @@ class Balance {
             }
             if (strtolower($type) == 'bonus') {
                 FlowBonus::insertOne($flowInsertData);
-            } elseif (strtolower($type) == 'reconsume_points') {
-                //记录和扣除期数的积分
-                if( $amount > 0 ) {
-                    self::addPeriodReconsumePoints($userId, $periodNum, $amount);
-                }else {
-                    self::deductPeriodReconsumePoints($userId, abs($amount));
-                }
-                FlowReconsumePoints::insertOne($flowInsertData);
+//            } elseif (strtolower($type) == 'reconsume_points') {
+//                //记录和扣除期数的积分
+//                if( $amount > 0 ) {
+//                    self::addPeriodReconsumePoints($userId, $periodNum, $amount);
+//                }else {
+//                    self::deductPeriodReconsumePoints($userId, abs($amount));
+//                }
+//                FlowReconsumePoints::insertOne($flowInsertData);
             } elseif (strtolower($type) == 'exchange_points') {
                 //记录和扣除期数的积分
                 if( $amount > 0 ) {
-                    self::addPeriodExchangePoints($userId, $periodNum, $amount);
+                    self::addPeriodExchangePoints($userId, $periodNum, (!$issueBonus ? $amount / $exchangeRate : $amount));
                 }else {
                     self::deductPeriodExchangePoints($userId, abs($amount));
                 }
                 FlowExchangePoints::insertOne($flowInsertData);
-            } elseif (strtolower($type) == 'cf') {
-                FlowCF::insertOne($flowInsertData);
-            } elseif (strtolower($type) == 'lx') {
-                FlowLX::insertOne($flowInsertData);
+//            } elseif (strtolower($type) == 'cf') {
+//                FlowCF::insertOne($flowInsertData);
+//            } elseif (strtolower($type) == 'lx') {
+//                FlowLX::insertOne($flowInsertData);
             } elseif (in_array(strtolower($type), ['travel_points', 'car_points', 'house_points'])) {
                 // 这3个奖流水在一个表,需要加二级标识码
                 $flowInsertData['WALLET_TYPE'] = strtolower($type);

+ 10 - 0
common/helpers/user/Info.php

@@ -53,6 +53,16 @@ class Info {
         return $user ? $user['USER_NAME'] : null;
     }
 
+    /**
+     * 获取用户EMAIL
+     * @param $userName
+     * @return mixed
+     */
+    public static function getEmailByUserId($userId) {
+        $user = UserInfo::findOneAsArray('USER_ID=:USER_ID AND DELETED=0', [':USER_ID' => $userId], 'USER_NAME');
+        return $user ? $user['EMAIL'] : null;
+    }
+
     /**
      * 获取会员姓名通过ID
      * @param $userId

+ 6 - 1
common/models/DeclarationPackage.php

@@ -10,8 +10,12 @@ namespace common\models;
  * @property string $PACKAGE_NO 套餐编号
  * @property string $LEVEL_ID 所属报单级别ID
  * @property string $AMOUNT 套餐金额
+
  * @property string $PV 套餐PV
  * @property string $STORE_NUMS 套餐库存
+
+ * @property string $AMOUNT_STANDARD 标准金额
+
  * @property string $PACKAGE_CONTENT 套餐内容
  * @property string $CREATED_AT 创建时间
  * @property string $CREATE_ADMIN 创建人
@@ -43,7 +47,7 @@ class DeclarationPackage extends \common\components\ActiveRecord
     public function rules()
     {
         return [
-            [['PACKAGE_NAME','PACKAGE_NO','LEVEL_ID', 'AMOUNT', 'PV', 'PACKAGE_CONTENT', 'CREATED_AT','CREATE_ADMIN',], 'required'],
+            [['PACKAGE_NAME','PACKAGE_NO','LEVEL_ID', 'AMOUNT', 'PV', 'PACKAGE_CONTENT', 'CREATED_AT','CREATE_ADMIN','AMOUNT_STANDARD'], 'required'],
             [['ID','LEVEL_ID','CREATE_ADMIN', 'UPDATE_ADMIN'], 'string', 'max' => 32],
             [['PACKAGE_NAME'], 'string', 'max' => 48],
             [['PACKAGE_NAME'], 'unique'],
@@ -63,6 +67,7 @@ class DeclarationPackage extends \common\components\ActiveRecord
             'PACKAGE_NO' => '套餐编号',
             'LEVEL_ID' => '所属报单级别ID',
             'AMOUNT' => '套餐金额',
+            'AMOUNT_STANDARD' => '标准价格',
             'PV' => '套餐BV',
             'PACKAGE_CONTENT' => '套餐内容',
             'CREATED_AT' => '创建时间',

+ 2 - 1
common/models/FlowExchangePoints.php

@@ -13,6 +13,7 @@ use Yii;
  * @property string $LAST_EMP_LV 记录时会员聘级
  * @property int $LAST_STATUS 记录时状态
  * @property string $AMOUNT 金额
+ * @property string $AMOUNT_STANDARD 标准金额
  * @property string $TOTAL 当前总金额
  * @property int $IS_INCR 是否增加
  * @property string $REMARK 备注
@@ -44,7 +45,7 @@ class FlowExchangePoints extends \common\components\ActiveRecord
     {
         return [
             [['USER_ID', 'REMARK', 'PERIOD_NUM', 'CALC_MONTH', 'P_MONTH', 'CREATED_AT'], 'required'],
-            [['AMOUNT', 'TOTAL'], 'number'],
+            [['AMOUNT', 'TOTAL', 'AMOUNT_STANDARD'], 'number'],
             [['LAST_STATUS', 'IS_INCR', 'PERIOD_NUM', 'CALC_MONTH', 'CREATED_AT', 'REMARK_IS_SHOW', 'DELETED', 'DELETED_AT', 'DEAL_TYPE_IS_PRESET'], 'integer'],
             [['ID', 'USER_ID', 'ADMIN_NAME', 'LAST_DEC_LV', 'LAST_EMP_LV', 'DEAL_TYPE_ID'], 'string', 'max' => 32],
             [['REMARK'], 'string', 'max' => 255],

+ 13 - 7
common/models/Order.php

@@ -13,9 +13,12 @@ use Yii;
  * @property string $USER_ID 用户ID
  * @property string $USER_NAME 会员编号
  * @property string $ORDER_TYPE 订货类型
- * @property string $ORDER_AMOUNT 订单总价格
+ * @property string $ORDER_AMOUNT 订单总价格(n)
+ * @property string $ORDER_AMOUNT_STANDARD 订单总价格($)
  * @property string $PV 订货PV
  * @property string $PAY_AMOUNT 支付价格
+ * @property string $PAY_AMOUNT_STANDARD 支付价格
+ * @property string $EXCHANGE_RATE 汇率
  * @property string $PAY_PV 实付PV
  * @property int $PAY_AT 支付时间
  * @property string $PAY_TYPE 支付方式
@@ -37,6 +40,8 @@ use Yii;
  * @property int $PROVINCE 省份名称
  * @property int $CITY 城市名称
  * @property int $COUNTY 县区
+ * @property string $LGA_NAME
+ * @property string $CITY_NAME
  * @property string $ADDRESS 详细地址
  * @property string $P_CALC_MONTH 分区日期
  * @property int $CREATED_AT 订单创建时间
@@ -64,10 +69,11 @@ class Order extends \common\components\ActiveRecord
     public function rules()
     {
         return [
-            // [['USER_ID', 'USER_NAME', 'ORDER_TYPE', 'CREATE_USER', 'EMAIL'], 'required'],
-            [['USER_ID', 'USER_NAME', 'ORDER_TYPE', 'CREATE_USER'], 'required'],
-            [['ORDER_AMOUNT', 'PV', 'PAY_AMOUNT', 'PAY_PV', 'FREIGHT', 'PAY_FREIGHT'], 'number'],
-            [['PAY_AT', 'DELIVERY_STATUS', 'DELIVERY_PERIOD', 'DELIVERY_AT', 'EXPRESS_TYPE', 'PERIOD_NUM', 'STATUS', 'PROVINCE', 'CITY', 'COUNTY', 'CREATED_AT', 'UPDATED_AT', 'IS_DELETE', 'DELETED_AT'], 'integer'],
+
+            [['USER_ID', 'USER_NAME', 'ORDER_TYPE', 'CREATE_USER', 'EMAIL'], 'required'],
+            [['ORDER_AMOUNT', 'PV', 'PAY_AMOUNT', 'PAY_PV', 'FREIGHT', 'PAY_FREIGHT', 'ORDER_AMOUNT_STANDARD', 'PAY_AMOUNT_STANDARD', 'EXCHANGE_RATE'], 'number'],
+            [['PAY_AT', 'DELIVERY_STATUS', 'DELIVERY_PERIOD', 'DELIVERY_AT', 'EXPRESS_TYPE', 'PERIOD_NUM', 'STATUS', 'PROVINCE', /*'CITY', 'COUNTY', */'CREATED_AT', 'UPDATED_AT', 'IS_DELETE', 'DELETED_AT'], 'integer'],
+
             [['ID','SN', 'DEC_SN', 'USER_ID', 'ORDER_TRACK_NO','PAY_TYPE'], 'string', 'max' => 32],
             [['USER_NAME', 'TEL', 'CREATE_USER', 'UPDATER', 'WAREHOUSE'], 'string', 'max' => 16],
             [['ORDER_TYPE'], 'string', 'max' => 12],
@@ -115,8 +121,8 @@ class Order extends \common\components\ActiveRecord
             'MOBILE' => '收货人手机',
             'TEL' => '固定电话',
             'PROVINCE' => '省份名称',
-            'CITY' => '城市名称',
-            'COUNTY' => '县区',
+//            'CITY' => '城市名称',
+//            'COUNTY' => '县区',
             'ADDRESS' => '详细地址',
             'P_CALC_MONTH' => '分区日期',
             'CREATED_AT' => '订单创建时间',

+ 8 - 2
common/models/ReceiveAddress.php

@@ -15,6 +15,8 @@ use Yii;
  * @property int $PROVINCE 省份名称
  * @property int $CITY 城市名称
  * @property int $COUNTY 县区名称
+ * @property string $LGA_NAME Lga
+ * @property string $CITY_NAME City
  * @property string $ADDRESS 详细地址
  * @property int $IS_DEFAULT 是否默认
  * @property int $CREATED_AT 创建时间
@@ -37,13 +39,15 @@ class ReceiveAddress extends \common\components\ActiveRecord
     public function rules()
     {
         return [
-            [['USER_ID', 'USER_NAME', 'CONSIGNEE', 'MOBILE', 'PROVINCE', 'CITY', 'COUNTY', 'ADDRESS'], 'required'],
-            [['PROVINCE', 'CITY', 'COUNTY', 'IS_DEFAULT', 'CREATED_AT', 'UPDATED_AT'], 'integer'],
+            [['USER_ID', 'USER_NAME', 'CONSIGNEE', 'MOBILE', 'PROVINCE', 'LGA_NAME', 'CITY_NAME', 'ADDRESS'], 'required'],
+            [['PROVINCE', 'IS_DEFAULT', 'CREATED_AT', 'UPDATED_AT'], 'integer'],
             [['ID', 'USER_ID'], 'string', 'max' => 32],
             [['USER_NAME'], 'string', 'max' => 16],
             [['CONSIGNEE'], 'string', 'max' => 120],
             [['MOBILE'], 'string', 'max' => 11],
             [['ADDRESS'], 'string', 'max' => 255],
+            [['LGA_NAME'], 'string', 'max' => 50],
+            [['CITY_NAME'], 'string', 'max' => 50],
             [['UPDATER'], 'string', 'max' => 10],
             [['ID'], 'unique'],
         ];
@@ -63,6 +67,8 @@ class ReceiveAddress extends \common\components\ActiveRecord
             'PROVINCE' => '省份名称',
             'CITY' => '城市名称',
             'COUNTY' => '县区名称',
+            'LGA_NAME' => 'Lga Name',
+            'CITY_NAME' => 'City Name',
             'ADDRESS' => '详细地址',
             'IS_DEFAULT' => '是否默认',
             'CREATED_AT' => '创建时间',

+ 44 - 1
common/models/Recharge.php

@@ -15,7 +15,10 @@ use Yii;
  * @property int $RECHARGE_PERIOD_NUM 充值期数
  * @property int $RECHARGE_YEAR 充值年份
  * @property int $RECHARGE_MONTH 充值月份
+ * @property string $CURRENCY 货币(尼日利亚默认NGN)
  * @property string $AMOUNT 充值金额
+ * @property string $RECHARGE_ORDER_ID PS订单号
+ * @property int $RECHARGE_STATUS 充值状态
  * @property string $REAL_NAME 会员姓名
  * @property string $OPEN_BANK 开户行
  * @property string $BANK_ADDRESS 开户支行
@@ -42,6 +45,11 @@ class Recharge extends \common\components\ActiveRecord {
     const STATUS_AUDITED = 2;       // 已审核
     const STATUS_REFUSED = 3;       // 已拒绝
 
+    const STATUS_NEW = 0;
+    const STATUS_PROCESSING = 1;
+    const STATUS_SUCCESS = 2;
+    const STATUS_REJECT = 3;
+
     const STATUS_NAME = [
         self::STATUS_APPLIED => '待审核',
         self::STATUS_PROVED => '已上传凭证',
@@ -49,6 +57,12 @@ class Recharge extends \common\components\ActiveRecord {
         self::STATUS_REFUSED => '已拒绝',
     ];
 
+    const RECHARGE_STATUS_NAME = [
+        self::STATUS_NEW => 'NEW',
+        self::STATUS_PROCESSING => 'PROCESSING',
+        self::STATUS_SUCCESS => 'SUCCESS',
+        self::STATUS_REJECT => 'FAILED',
+    ];
     /**
      * @inheritdoc
      */
@@ -85,6 +99,7 @@ class Recharge extends \common\components\ActiveRecord {
             'RECHARGE_PERIOD_NUM' => '充值期数',
             'RECHARGE_YEAR' => '充值年份',
             'RECHARGE_MONTH' => '充值月份',
+            'CURRENCY' => '货币',
             'AMOUNT' => '充值金额',
             'REAL_NAME' => '会员姓名',
             'OPEN_BANK' => '汇款银行',
@@ -187,5 +202,33 @@ class Recharge extends \common\components\ActiveRecord {
         $total = self::find()->where('AUDIT_STATUS=:AUDIT_STATUS', [':AUDIT_STATUS' => $type])->sum('AMOUNT');
         return $total ? $total : '0.00';
     }
-
+    /**
+     *
+     */
+    public static function sendToPaystack(){
+        $url = "https://api.paystack.co/transaction/initialize";
+        $am = random_int(100, 4000);
+        $fields = [
+            'email' => "fl@bd.com",
+            'amount' => $am
+        ];
+        $fields_string = http_build_query($fields);
+        //open connection
+        $ch = curl_init();
+        $sk = 'sk_test_1d16378c8be9efabc71b05754190b9c3f6999402'; //taisino
+        //$sk = 'sk_test_5ece72377432376f5cf6bb5c468395a650220309'; //elken
+        //set the url, number of POST vars, POST data
+        curl_setopt($ch,CURLOPT_URL, $url);
+        curl_setopt($ch,CURLOPT_POST, true);
+        curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+            "Authorization: Bearer $sk",
+            "Cache-Control: no-cache",
+        ));
+        //So that curl_exec returns the contents of the cURL; rather than echoing it
+        curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
+        //execute post
+        //$result = curl_exec($ch);
+        echo $result;
+    }
 }

+ 5 - 2
common/models/Region.php

@@ -70,6 +70,7 @@ class Region extends \common\components\ActiveRecord
      * @return string
      */
     public static function getCnName($regionCode){
+//        self::updateToCache();
         $allData = self::getFromCache();
         return $allData[$regionCode]['REGION_NAME'] ?? '';
     }
@@ -115,8 +116,10 @@ class Region extends \common\components\ActiveRecord
     public static function getWarehouseByCode($regionCode){
         //'540000','710000','810000','820000'
         $ZoningArr = [
-            '01'=>['110000','120000','130000','370000','140000','210000','310000','320000','330000','340000','410000','150000','220000','230000','500000','510000','610000','620000','640000','630000','650000'],
-            '02'=>['440000','350000','360000','420000','430000','450000','460000','520000','530000']
+            '01'=>['10100','10200','10300','10400','10500','10600','10700','10800','10900',
+                '11000','11100','11200','11300','11400','11500','11600','11700','11800',
+                '11900','12000','12100','12200','12300','12400','12500','12600','12700',
+                '12800','12900','13000','13100','13200','13300','13400','13500','13600','19900']
         ];
         $zoning = '';
         foreach ($ZoningArr as $key=>$val){

+ 28 - 24
common/models/ShopGoods.php

@@ -18,6 +18,7 @@ namespace common\models;
  * @property int $IMAGES 商品图片
  * @property string $CONTENT 商品内容
  * @property string $SELL_PRICE 销售价格
+ * @property string $SELL_PRICE_STANDARD 标准价格
  * @property string $MARKET_PRICE 市场价格
  * @property int $PRICE_PV 价格PV
  * @property int $POINT 兑换积分
@@ -34,7 +35,7 @@ class ShopGoods extends \common\components\ActiveRecord
     const SALE_TYPE = [
         1 => [
             'id' => 1,
-            'name' => '余额购买',
+            'name' => 'Balance payment', //余额购买
             'label' => 'cash',
         ],
 //        2 => [
@@ -43,22 +44,22 @@ class ShopGoods extends \common\components\ActiveRecord
 //        ],
         3 => [
             'id' => 3,
-            'name' => '兑换点数',
+            'name' => 'Bonus points', //兑换点数
             'label' => 'exchange',
         ],
         4 => [
             'id' => 4,
-            'name' => '旅游积分',
+            'name' => 'Travel bonus', //旅游积分
             'label' => 'travel_points',
         ],
         5 => [
             'id' => 5,
-            'name' => '名车积分',
+            'name' => 'Car bonus',//名车积分
             'label' => 'car_points',
         ],
         6 => [
             'id' => 6,
-            'name' => '豪宅积分',
+            'name' => 'House bonus',//豪宅积分
             'label' => 'house_points',
         ],
         7 => [
@@ -69,36 +70,36 @@ class ShopGoods extends \common\components\ActiveRecord
     ];
     const GOODS_TYPE = [
         1 =>[
-            'name'=>'国内商品',
+            'name'=>'国内商品',//国内商品
             'discount'=>'50',
         ],
         2 =>[
-            'name'=>'进口商品',
+            'name'=>'进口商品',//进口商品
             'discount'=>'60',
         ],
     ];
     const GIFT_TYPE = [
         1 =>[
-            'name'=>'报单区',
+            'name'=>'Entry area',//报单区
         ],
         2 =>[
-            'name'=>'复消区',
+            'name'=>'Reselling area',//复消区
         ],
         3 =>[
-            'name'=>'工作室报单',
+            'name'=>'Office Entry area',//工作室报单
         ],
         4 =>[
-            'name'=>'工作室复消',
+            'name'=>'Office Reselling area',//工作室复消
         ],
     ];
     const STATUS_NAME = [
-        1 => '已上架',
-        0 => '已下架',
+        1 => 'On sale',//已上架
+        0 => 'Sold out',//已下架
     ];
     const CATEGORY_TYPE = [
         [
             'id' => 1,
-            'name' => '普通商品',
+            'name' => 'Common products',//普通商品
             'sell_type' => [
                 self::SALE_TYPE[1],
                 self::SALE_TYPE[3],
@@ -107,21 +108,21 @@ class ShopGoods extends \common\components\ActiveRecord
         ],
         [
             'id' => 4,
-            'name' => '旅游积分商品',
+            'name' => 'Travel bonus products',//旅游积分商品
             'sell_type' => [
                 self::SALE_TYPE[4]
             ]
         ],
         [
             'id' => 5,
-            'name' => '名车积分商品',
+            'name' => 'Car bonus products',//名车积分商品
             'sell_type' => [
                 self::SALE_TYPE[5]
             ]
         ],
         [
             'id' => 6,
-            'name' => '豪宅积分商品',
+            'name' => 'House bonus products',//豪宅积分商品
             'sell_type' => [
                 self::SALE_TYPE[6]
             ]
@@ -141,9 +142,11 @@ class ShopGoods extends \common\components\ActiveRecord
     public function rules()
     {
         return [
-            [['SELL_DISCOUNT','GOODS_NAME', 'CATE_ID','GIFT_TYPE', 'GOODS_NO', 'SELL_PRICE','MARKET_PRICE','PRICE_PV','STORE_NUMS', 'SELL_TYPE', 'CATEGORY_TYPE'], 'required'],
+            [['SELL_DISCOUNT','GOODS_NAME', 'CATE_ID','GIFT_TYPE', 'GOODS_NO', 'SELL_PRICE','MARKET_PRICE','PRICE_PV','STORE_NUMS', 'SELL_TYPE', 'CATEGORY_TYPE', 'SELL_PRICE_STANDARD'], 'required'],
             [['STORE_NUMS'], 'integer'],
-            [['SELL_PRICE','MARKET_PRICE','PRICE_PV','POINT', 'CATEGORY_TYPE'], 'number'],
+
+            [['SELL_PRICE','MARKET_PRICE','PRICE_PV','POINT',/* 'SELL_TYPE',*/ 'CATEGORY_TYPE' ,'SELL_PRICE_STANDARD'], 'number'],
+
             [['ID','CATE_ID', 'GOODS_NO','GIFT_TYPE'], 'string', 'max' => 32],
             [['UNIT'], 'string', 'max' => 16],
             [['COVER', 'GOODS_NAME'], 'string', 'max' => 255],
@@ -173,6 +176,7 @@ class ShopGoods extends \common\components\ActiveRecord
             'IMAGES' => '商品图片',
             'CONTENT' => '商品内容',
             'SELL_PRICE' => '销售价格',
+            'SELL_PRICE_STANDARD' => '标准价格($)',
             'MARKET_PRICE' => '市场价格',
             'PRICE_PV' => '价格PV',
             'POINT' => '兑换积分',
@@ -220,19 +224,19 @@ class ShopGoods extends \common\components\ActiveRecord
     public static function payTypes(){
         return [
             'cash'=>[
-                'name'=>'余额支付'
+                'name'=>'余额支付' //余额支付
             ],
             'point'=>[
-                'name'=>'积分支付'
+                'name'=>'积分支付' //积分支付
             ],
             'exchange' => [
-                'name' => '积分点数'
+                'name' => '积分点数' //积分点数
             ],
             'travel_points'=>[
-                'name'=>'旅游积分'
+                'name'=>'旅游积分' //旅游积分
             ],
             'car_points'=>[
-                'name'=>'名车积分'
+                'name'=>'名车积分' //名车积分
             ],
             'house_points' => [
                 'name' => '豪宅积分'

+ 41 - 0
common/models/forms/ConfigForm.php

@@ -309,4 +309,45 @@ class ConfigForm extends Model
         ]);
         return true;
     }
+
+    /**
+     * 更新汇率配置
+     * @return bool|null
+     */
+    public function updateExchangeRate()
+    {
+        if(!$this->validate()){
+            return null;
+        }
+
+        $beforeData = Config::getConfigByType('exchangeRate');
+        $this->adminOperateLogger->saveBeforeContent = $beforeData;
+
+        $postData = \Yii::$app->request->post();
+        $transaction = \Yii::$app->db->beginTransaction();
+        try{
+            Config::updateAll(['VALUE' => $postData['VALUE'], 'UPDATED_AT' => Date::nowTime()], "CONFIG_NAME=:CONFIG_NAME", [':CONFIG_NAME' => 'exchangeRate']);
+
+            // 异步处理添加任务
+            $taskKey = \Yii::$app->swooleAsyncTimer->asyncHandle('config/update-exchange-rate', \Yii::$app->request->post());
+            if($taskKey === false){
+                throw new Exception('请求异步服务器失败');
+            }
+
+            $transaction->commit();
+        } catch (Exception $e){
+            $transaction->rollBack();
+            $this->addError('updateExchangeRate', $e->getMessage());
+            return null;
+        }
+
+        $afterData = Config::getConfigByType('exchangeRate');
+        $this->adminOperateLogger->saveAfterContent = $afterData;
+        unset($beforeData,$afterData);
+        $this->adminOperateLogger->clean()->save([
+            'optType' => '更新汇率配置',
+        ]);
+
+        return true;
+    }
 }

+ 16 - 3
common/models/forms/DecPackageForm.php

@@ -3,6 +3,7 @@ namespace common\models\forms;
 
 use backendApi\modules\v1\models\Admin;
 use common\components\Model;
+use common\helpers\Cache;
 use common\helpers\Date;
 use common\models\DeclarationPackage;
 use yii\base\Exception;
@@ -17,6 +18,7 @@ class DecPackageForm extends Model
     public $packageName;
     public $packageNo;
     public $amount;
+    public $amountStandard;
     public $amountPv;
     public $levelId;
     public $packageContent;
@@ -30,7 +32,7 @@ class DecPackageForm extends Model
     {
         return [
             [['id', 'packageName','packageNo', 'amount', 'amountPv', 'levelId','packageContent','status'], 'trim'],
-            [['packageName','packageNo', 'amount', 'amountPv', 'levelId','packageContent','status'], 'required'],
+            [['packageName','packageNo', 'amount', 'amountPv', 'levelId','packageContent','status', 'amountStandard'], 'required'],
             [['id'], 'required', 'on'=>'edit'],
             [['id'], 'exist', 'targetClass'=>DeclarationPackage::class, 'targetAttribute'=>'ID'],
             [['amount','amountPv'], 'price'],
@@ -47,6 +49,7 @@ class DecPackageForm extends Model
             'packageName' => '套餐名称',
             'packageNo' => '套餐编号',
             'amount' => '套餐金额',
+            'amountStandard' => '标准价格',
             'amountPv' => '套餐BV',
             'levelId' => '所属报单级别',
             'packageContent' => '套餐详情',
@@ -62,8 +65,10 @@ class DecPackageForm extends Model
     {
         $parentScenarios =  parent::scenarios();
         $customScenarios = [
-            'add' => ['packageName','packageNo','amount','amountPv','levelId', 'packageContent','storenums'],
-            'edit' => ['id','packageName','packageNo','amount','amountPv', 'levelId', 'packageContent','storenums'],
+
+            'add' => ['packageName','packageNo','amount','amountPv','levelId', 'packageContent', 'amountStandard','storenums'],
+            'edit' => ['id','packageName','packageNo','amount','amountPv', 'levelId', 'packageContent', 'amountStandard','storenums'],
+
             'changeStatus' => ['selectedIds', 'status'],
         ];
         return array_merge($parentScenarios, $customScenarios);
@@ -90,6 +95,10 @@ class DecPackageForm extends Model
         if(!$this->validate()){
             return null;
         }
+
+        // 汇率:TODO:可优化为指定是否需要根据汇率生成
+        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
+
         if($this->scenario == 'add'){
             $model = new DeclarationPackage();
             $model->CREATE_ADMIN = Admin::getAdminNameById(\Yii::$app->user->id);
@@ -108,7 +117,11 @@ class DecPackageForm extends Model
         $model->PV = $this->amountPv;
         $model->LEVEL_ID = $this->levelId;
         $model->PACKAGE_CONTENT = $this->packageContent;
+
         $model->STORE_NUMS = $this->storenums;
+
+        $model->AMOUNT_STANDARD = $this->amountStandard;
+
         if($model->save()){
             return $model;
         } else {

+ 22 - 9
common/models/forms/DeclarationForm.php

@@ -43,6 +43,7 @@ class DeclarationForm extends Model
     public $realName;
     public $insertUserIdCard;
     public $mobile;
+    public $email;
     public $address;
     public $openBank;
     public $bankAddress;
@@ -59,6 +60,8 @@ class DeclarationForm extends Model
     public $province;
     public $city;
     public $county;
+    public $cityName;
+    public $lgaName;
 
     // 传过来的全部数据
     public $allData;
@@ -172,7 +175,7 @@ class DeclarationForm extends Model
     {
         $parentScenarios =  parent::scenarios();
         $customScenarios = [
-            'userDec' => ['type','allData', 'decLv','decWay','insertUserName','password','payPassword', 'realName', 'insertUserIdCard', 'mobile', 'address', 'openBank', 'bankAddress', 'bankNo', 'bankProvince','bankCity','bankCounty', 'consignee','acceptMobile','province','city','county', 'conUserName', 'recUserName','decUserName', 'location'],
+            'userDec' => ['type','allData', 'decLv','decWay','insertUserName','password','payPassword', 'realName', 'insertUserIdCard', 'mobile', 'address', 'openBank', 'bankAddress', 'bankNo', 'bankProvince','bankCity','bankCounty', 'consignee','acceptMobile','province',/*'city','county',*/ 'conUserName', 'recUserName','decUserName', 'location', 'email'],
             'canDec' => ['type', 'insertUserName', 'insertUserIdCard', 'conUserName', 'recUserName', 'location'],
             'notFull' => ['type', 'insertUserName', 'conUserName', 'recUserName', 'location'],
         ];
@@ -624,7 +627,8 @@ class DeclarationForm extends Model
                     'REAL_PV' => $this->_decPv,
                     'BUY_NUMS' => 1,
                     'SKU_CODE' => $decPackage['PACKAGE_NO'],
-                    'GOODS_TITLE' => $decPackage['PACKAGE_NAME']
+                    'GOODS_TITLE' => $decPackage['PACKAGE_NAME'],
+                    'EMAIL' => $this->email
                 ];
             }else{
                 $ids = $this->goodsId;
@@ -645,7 +649,8 @@ class DeclarationForm extends Model
                                 'POINT' => $goods['POINT'],
                                 'BUY_NUMS' => intval($v),
                                 'SKU_CODE' => $goods['GOODS_NO'],
-                                'GOODS_TITLE' => $goods['GOODS_NAME']
+                                'GOODS_TITLE' => $goods['GOODS_NAME'],
+                                'EMAIL' => $this->email
                             ];
                         }
                     }
@@ -697,6 +702,7 @@ class DeclarationForm extends Model
         $user->REAL_NAME = $this->realName;
         $user->ID_CARD = $this->insertUserIdCard;
         $user->MOBILE = $this->mobile;
+        $user->EMAIL = $this->email;
         $user->ADDRESS = $this->address ? $this->address : '无';
         $user->OPEN_BANK = $this->openBank;
         $user->BANK_ADDRESS = $this->bankAddress;
@@ -710,8 +716,10 @@ class DeclarationForm extends Model
         $user->LAST_DEC_LV = $this->decLv;
         $user->EMP_LV = EmployLevel::getDefaultLevelId();
         $user->PROVINCE = $this->province ?? 0;
-        $user->CITY = $this->city ?? 0;
-        $user->COUNTY = intval($this->county) ?? 0;
+        $user->LGA_NAME = $this->lgaName;
+        $user->CITY_NAME = $this->cityName;
+//        $user->CITY = $this->city ?? 0;
+//        $user->COUNTY = intval($this->county) ?? 0;
         $user->AVATAR = 'avatar/1.png';
         $user->IS_DEC = 0;
         $user->DEC_ID = $this->_decId ?? null;
@@ -809,9 +817,12 @@ class DeclarationForm extends Model
         $orderModel->PAY_FREIGHT = 0;
         $orderModel->CONSIGNEE = $this->consignee;
         $orderModel->MOBILE = $this->acceptMobile;
+        $orderModel->EMAIL = $this->email;
         $orderModel->PROVINCE = $this->province;
-        $orderModel->CITY = $this->city;
-        $orderModel->COUNTY = intval($this->county) ?? 0;
+        $orderModel->LGA_NAME = $this->lgaName;
+        $orderModel->CITY_NAME = $this->cityName;
+//        $orderModel->CITY = $this->city;
+//        $orderModel->COUNTY = intval($this->county) ?? 0;
         $orderModel->ADDRESS = $this->address;
         $orderModel->WAREHOUSE = $warehouse;
         $orderModel->STATUS = 1;
@@ -838,8 +849,10 @@ class DeclarationForm extends Model
             $addressModel->CONSIGNEE = $this->consignee;
             $addressModel->MOBILE = $this->acceptMobile;
             $addressModel->PROVINCE = $this->province;
-            $addressModel->CITY = $this->city;
-            $addressModel->COUNTY = intval($this->county) ?? 0;
+//            $addressModel->CITY = $this->city;
+//            $addressModel->COUNTY = intval($this->county) ?? 0;
+            $addressModel->CITY_NAME = $this->cityName;
+            $addressModel->LGA_NAME = $this->lgaName;
             $addressModel->ADDRESS = $this->address;
             $addressModel->IS_DEFAULT = 1;
             if(!$addressModel->save()){

+ 42 - 14
common/models/forms/OrderForm.php

@@ -54,6 +54,9 @@ class OrderForm extends Model
     private $_freight;
     private $_payAmount;
     private $_orderGoods;
+    private $_standardAmount;
+    private $_decAmountStandard;
+    private $_exchangeRate;
 
     /**
      * @var Order
@@ -73,10 +76,10 @@ class OrderForm extends Model
     public function rules()
     {
         return [
-//            [['sn', 'expressCompany', 'orderTrackNo', 'status', 'remark','type','addressId','payType','goodsId','goodsNum', 'payPassword','userName','consignee','acceptMobile','province','city','county','detailaddress','email'], 'trim'],
-//            [['sn', 'expressCompany', 'orderTrackNo', 'status', 'remark','type','addressId','payType','goodsId','goodsNum', 'payPassword','userName','consignee','acceptMobile','province','city','county','detailaddress','email'], 'required'],
-            [['sn', 'expressCompany', 'orderTrackNo', 'status', 'remark','type','addressId','payType','goodsId','goodsNum', 'payPassword','userName','consignee','acceptMobile','province','city','county','detailaddress'], 'trim'],
-            [['sn', 'expressCompany', 'orderTrackNo', 'status', 'remark','type','addressId','payType','goodsId','goodsNum', 'payPassword','userName','consignee','acceptMobile','province','city','county','detailaddress'], 'required'],
+
+            [['sn', 'expressCompany', 'orderTrackNo', 'status', 'remark','type','addressId','payType','goodsId','goodsNum', 'payPassword','userName','consignee','acceptMobile','province','city','county','detailaddress'/*,'email'*/], 'trim'],
+            [['sn', 'expressCompany', 'orderTrackNo', 'status', 'remark','type','addressId','payType','goodsId','goodsNum', 'payPassword','userName','consignee','acceptMobile','province','city','county','detailaddress'/*,'email'*/], 'required'],
+
             [['status'], 'isStatus'],
             [['addressId'], 'isAddress'],
             [['payType'], 'isPayType'],
@@ -125,9 +128,9 @@ class OrderForm extends Model
             // 管理员修改备注
             'adminRemark' => ['sn', 'remark'],
             // 会员下单
-            'userOrder' => ['type','addressId', 'payType','goodsId','goodsNum', 'remark', 'payPassword', 'email'],
+            'userOrder' => ['type','addressId', 'payType','goodsId','goodsNum', 'remark', 'payPassword', /*'email'*/],
             // 帮会员复消下单
-            'reconsumeOrder' => ['type','userName', 'payType','goodsId','goodsNum', 'remark', 'payPassword','consignee','acceptMobile','province','city','county','detailaddress'],
+            'reconsumeOrder' => ['type','userName', 'payType','goodsId','goodsNum', 'remark', 'payPassword','consignee','acceptMobile','province',/*'city','county',*/'detailaddress'],
             // 管理员修改订单状态
             'verifyPayStack' => ['sn', 'remark'],
             // 管理员退款
@@ -197,7 +200,7 @@ class OrderForm extends Model
      */
     public function validatePassword($attribute, $params) {
         if (!User::validatePayPassword(\Yii::$app->user->id, $this->payPassword)) {
-            $this->addError($attribute, '支付密码不正确');
+            $this->addError($attribute, 'The payment password is incorrect');//支付密码不正确
         }
     }
 
@@ -374,7 +377,11 @@ class OrderForm extends Model
         return $this->_model;
     }
 
-
+    /**
+     * 订单退款
+     * @return Order|null
+     * @throws Exception
+     */
     public function adminRefund()
     {
         if(!$this->validate()){
@@ -429,7 +436,9 @@ class OrderForm extends Model
         $ids = $this->goodsId;
         $totalAmount = 0;
         $totalPv = 0;
+        $totalAmountStandard = 0;
         $goodsType = ShopGoods::GOODS_TYPE;
+        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0); // 汇率
         foreach ($this->goodsNum as $k => $v) {
             if ($v) {
                 $goods = ShopGoods::findOneAsArray('ID=:ID AND STATUS=1',[':ID'=> $ids[$k]]);
@@ -438,13 +447,16 @@ class OrderForm extends Model
                         $discount = $goodsType[$goods['TYPE']]['discount'];
                         $realPrice = $goods['SELL_PRICE'] * $discount/100;
                         $realPv = $goods['PRICE_PV'] * $discount/100;
+                        $realPriceStandard = $goods['SELL_PRICE_STANDARD'] * $discount/100;
                     } else {
                         $discount = $goods['SELL_DISCOUNT'];
                         $realPrice = $goods['SELL_PRICE'] * $discount;
                         $realPv = $goods['PRICE_PV'] * $discount;
+                        $realPriceStandard = $goods['SELL_PRICE_STANDARD'] * $discount;
                     }
                     $totalAmount += $realPrice * intval($v);
                     $totalPv += $realPv * intval($v);
+                    $totalAmountStandard += $realPriceStandard * intval($v);
 //                    if($this->payType=='cash') {
 //                        $discount = $goodsType[$goods['TYPE']]['discount'];
 //                        $realPrice = $goods['SELL_PRICE'] * $discount/100;
@@ -470,6 +482,9 @@ class OrderForm extends Model
                         'CATEGORY_TYPE' => $goods['CATEGORY_TYPE'],
                         'PAY_TYPE' => $this->payType,
                         'EMAIL' => $this->email,
+                        'STANDARD_PRICE' => $goods['SELL_PRICE_STANDARD'],
+                        'REAL_STANDARD_PRICE' => $realPriceStandard,
+                        'EXCHANGE_RATE' => $exchangeRate,
                     ];
                 }
             }
@@ -482,6 +497,9 @@ class OrderForm extends Model
         }
         $this->_payAmount = $this->_decAmount + $this->_freight;
 
+        $this->_decAmountStandard = $totalAmountStandard;
+        $this->_standardAmount = $this->_decAmountStandard + $this->_freight;
+
         $db = \Yii::$app->db;
         $transaction = $db->beginTransaction();
         try {
@@ -585,6 +603,7 @@ class OrderForm extends Model
         $userRealName = Info::getUserRealNameByUserId($userId);
         $userMobile = Info::getUserMobileByUserId($userId);
         $userEmail = Info::getUserEmailByUserId($userId);
+        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
         // 加入订单信息
         if ($this->_address['PROVINCE'] != 1) {
             $warehouse = Region::getWarehouseByCode($this->_address['PROVINCE']);//仓库
@@ -616,15 +635,20 @@ class OrderForm extends Model
         $orderModel->CONSIGNEE = $this->_address['CONSIGNEE'];
         $orderModel->MOBILE = $this->_address['MOBILE'];
         $orderModel->PROVINCE = $this->_address['PROVINCE'];
-        $orderModel->CITY = $this->_address['CITY'];
-        $orderModel->COUNTY = $this->_address['COUNTY'];
+//        $orderModel->CITY = $this->_address['CITY'];
+//        $orderModel->COUNTY = $this->_address['COUNTY'];
+        $orderModel->LGA_NAME = $this->_address['LGA_NAME'];
+        $orderModel->CITY_NAME = $this->_address['CITY_NAME'];
         $orderModel->ADDRESS = $this->_address['ADDRESS'];
         $orderModel->FRONT_REMARK = $this->remark;
         $orderModel->WAREHOUSE = $warehouse;
         $orderModel->STATUS = ($this->payType == 'pay_stack' ? \Yii::$app->params['orderStatus']['notPaid']['value'] : \Yii::$app->params['orderStatus']['paid']['value']);
         $orderModel->CREATED_AT = Date::nowTime();
         $orderModel->CREATE_USER = $userName;
-        $orderModel->EMAIL = $userEmail;
+        $orderModel->EMAIL = $userEmail?$userEmail:$userName.'@elken.com';
+        $orderModel->ORDER_AMOUNT_STANDARD = $this->_decAmountStandard;
+        $orderModel->PAY_AMOUNT_STANDARD = $this->_standardAmount;
+        $orderModel->EXCHANGE_RATE = $exchangeRate;
         if($this->_address['PROVINCE']==1){
             $orderModel->EXPRESS_TYPE = 1;
             $orderModel->CONSIGNEE = $userRealName;
@@ -632,7 +656,9 @@ class OrderForm extends Model
             $orderModel->PROVINCE = 1;
             $orderModel->CITY = 1;
             $orderModel->COUNTY = 1;
-            $orderModel->ADDRESS = '';
+            $orderModel->LGA_NAME = $this->_address['LGA_NAME'];
+            $orderModel->CITY_NAME = $this->_address['CITY_NAME'];
+            $orderModel->ADDRESS = 'Self Pick-up';
         }
         if(!$orderModel->save()){
             $this->addErrors($orderModel->getErrors());
@@ -800,6 +826,7 @@ class OrderForm extends Model
         $loginUserName = Info::getUserNameByUserId($loginUserId);
         //订单会员Id
         $userId = Info::getUserIdByUserName($this->userName);
+        $email = Info::getEmailByUserId($this->userName);
 
         // 加入订单信息
         if($this->province!=1){
@@ -830,14 +857,15 @@ class OrderForm extends Model
         $orderModel->CONSIGNEE = $this->consignee;
         $orderModel->MOBILE = $this->acceptMobile;
         $orderModel->PROVINCE = $this->province;
-        $orderModel->CITY = $this->city;
-        $orderModel->COUNTY = $this->county;
+//        $orderModel->CITY = $this->city;
+//        $orderModel->COUNTY = $this->county;
         $orderModel->ADDRESS = $this->detailaddress;
         $orderModel->FRONT_REMARK = $this->remark;
         $orderModel->WAREHOUSE = $warehouse;
         $orderModel->STATUS = 1;
         $orderModel->CREATED_AT = Date::nowTime();
         $orderModel->CREATE_USER = $loginUserName;
+        $orderModel->EMAIL = $email?$email:'tt@qq.com';
         if(!$orderModel->save()){
             $this->addErrors($orderModel->getErrors());
             return false;

+ 16 - 11
common/models/forms/ReceiveAddressForm.php

@@ -24,6 +24,8 @@ class ReceiveAddressForm extends Model
     public $province;
     public $city;
     public $county;
+    public $lgaName;
+    public $cityName;
     public $address;
     public $isDefault;
 
@@ -46,10 +48,10 @@ class ReceiveAddressForm extends Model
     public function rules()
     {
         return [
-            [['id', 'consignee', 'mobile', 'province', 'city', 'county', 'address', 'isDefault'], 'trim'],
-            [['id', 'consignee', 'mobile', 'province', 'city', 'county', 'address'], 'required'],
+            [['id', 'consignee', 'mobile', 'province', 'lgaName', 'cityName', 'address', 'isDefault'], 'trim'],
+            [['id', 'consignee', 'mobile', 'province', 'lgaName', 'cityName', 'address'], 'required'],
             [['mobile'], 'mobile'],
-            [['province', 'city', 'county'], 'exist', 'targetClass' => Region::class, 'targetAttribute' => 'REGION_CODE'],
+            [['province'], 'exist', 'targetClass' => Region::class, 'targetAttribute' => 'REGION_CODE'],
         ];
     }
 
@@ -59,8 +61,10 @@ class ReceiveAddressForm extends Model
             'consignee' => '收货人',
             'mobile' => '手机号',
             'province' => '省/市',
-            'city' => '市/区',
-            'county' => '区/县',
+//            'city' => '市/区',
+//            'county' => '区/县',
+            'lgaName' => 'LGA Name',
+            'cityName' => 'City Name',
             'address' => '详细地址',
         ];
     }
@@ -73,8 +77,8 @@ class ReceiveAddressForm extends Model
     {
         $parentScenarios =  parent::scenarios();
         $customScenarios = [
-            'userAdd' => ['consignee', 'mobile', 'province', 'city', 'county', 'address', 'isDefault'],
-            'userEdit' => ['id', 'consignee', 'mobile', 'province', 'city', 'county', 'address', 'isDefault'],
+            'userAdd' => ['consignee', 'mobile', 'province', 'lgaName', 'cityName', 'address', 'isDefault'],
+            'userEdit' => ['id', 'consignee', 'mobile', 'province', /*'lgaName', 'cityName',*/ 'address', 'isDefault'],
             'userIsDefault' => ['id', 'isDefault'],
         ];
         return array_merge($parentScenarios, $customScenarios);
@@ -129,14 +133,15 @@ class ReceiveAddressForm extends Model
             if ($this->isDefault) {
                 ReceiveAddress::updateAll(['IS_DEFAULT' => 0], 'USER_ID=:USER_ID', [':USER_ID'=>\Yii::$app->user->id]);
             }
+//            print_r($this);exit;
             if($this->scenario == 'userAdd'){
                 $this->_model->USER_ID = \Yii::$app->user->id;
                 $this->_model->USER_NAME = Info::getUserNameByUserId(\Yii::$app->user->id);
                 $this->_model->CONSIGNEE = $this->consignee;
                 $this->_model->MOBILE = $this->mobile;
                 $this->_model->PROVINCE = $this->province;
-                $this->_model->CITY = $this->city;
-                $this->_model->COUNTY = $this->county;
+                $this->_model->LGA_NAME = $this->lgaName;
+                $this->_model->CITY_NAME = $this->cityName;
                 $this->_model->ADDRESS = $this->address;
                 $this->_model->IS_DEFAULT = $this->isDefault ? 1 : 0;
                 $this->_model->CREATED_AT = Date::nowTime();
@@ -144,8 +149,8 @@ class ReceiveAddressForm extends Model
                 $this->_model->CONSIGNEE = $this->consignee;
                 $this->_model->MOBILE = $this->mobile;
                 $this->_model->PROVINCE = $this->province;
-                $this->_model->CITY = $this->city;
-                $this->_model->COUNTY = $this->county;
+                $this->_model->LGA_NAME = $this->lgaName;
+                $this->_model->CITY_NAME = $this->cityName;
                 $this->_model->ADDRESS = $this->address;
                 $this->_model->IS_DEFAULT = $this->isDefault ? 1 : 0;
                 $this->_model->UPDATED_AT = Date::nowTime();

+ 21 - 8
common/models/forms/RechargeForm.php

@@ -6,6 +6,7 @@ use common\components\Model;
 use common\helpers\Cache;
 use common\helpers\Date;
 use common\helpers\Form;
+use common\helpers\PayStack;
 use common\helpers\Tool;
 use common\helpers\user\Cash;
 use common\helpers\user\Info;
@@ -31,6 +32,7 @@ class RechargeForm extends Model {
 //    public $bankCounty;
 
     public $sn;
+    public $currency;
     public $amount;
     public $bankRealName;
 
@@ -42,7 +44,7 @@ class RechargeForm extends Model {
     public function rules() {
         return [
             [['userName', 'idCard', 'applyAmount', 'auditStatus', 'remark', 'selectedIds', 'sn','amount', 'bankRealName', 'bankNo'], 'trim'],
-            [['selectedIds', 'auditStatus', 'userName','applyAmount','openBank','bankNo','bankAddress'], 'required'],
+            [['selectedIds', 'auditStatus', 'userName','applyAmount', 'currency'/*,'openBank','bankNo','bankAddress'*/], 'required'],
             [['selectedIds'], 'exist', 'targetClass' => Recharge::class, 'targetAttribute' => 'ID', 'message' => '充值申请不存在'],
             [['userName'], 'exist', 'targetClass' => UserInfo::class, 'targetAttribute' => 'USER_NAME', 'message' => '会员不存在'],
             [['applyAmount'], 'price'],
@@ -60,7 +62,7 @@ class RechargeForm extends Model {
         $parentScenarios = parent::scenarios();
         $customScenarios = [
             'addByAdmin' => ['userName', 'applyAmount'],
-            'addByUser' => ['applyAmount','openBank','bankNo','bankAddress'],
+            'addByUser' => ['applyAmount','openBank','bankNo','bankAddress','currency'],
             'statusByAdmin' => ['selectedIds', 'auditStatus', 'createRemark'],
         ];
         return array_merge($parentScenarios, $customScenarios);
@@ -74,9 +76,10 @@ class RechargeForm extends Model {
             'selectedIds' => '充值申请ID',
             'userName' => '会员编号',
             'applyAmount' => '申请充值的金额',
-            'openBank' => '汇款银行',
-            'bankNo' => '汇款账号',
-            'bankAddress' => '银行支行',
+//            'openBank' => '汇款银行',
+//            'bankNo' => '汇款账号',
+//            'bankAddress' => '银行支行',
+            'currency' => '货币',
 //            'bankProvince' => '银行省',
 //            'bankCity' => '银行市',
 //            'bankCounty' => '银行县',
@@ -185,6 +188,12 @@ class RechargeForm extends Model {
         }
         $db = \Yii::$app->db;
         $transaction = $db->beginTransaction();
+        // 向paystack发起订单
+        $userInfo = Info::baseInfo($this->_userId);
+        $rechargeOrder = PayStack::transactionInit($this->currency, $this->applyAmount, $userInfo['EMAIL']);
+        if($rechargeOrder['status']!=1){
+            throw new Exception('api error');
+        }
         try {
             $nowTime = Date::nowTime();
             $period = Recharge::getPeriod($nowTime);
@@ -199,10 +208,14 @@ class RechargeForm extends Model {
             $rechargeModel->RECHARGE_PERIOD_NUM = $period['nowPeriodNum'];
             $rechargeModel->RECHARGE_YEAR = $period['nowYear'];
             $rechargeModel->RECHARGE_MONTH = $period['nowMonth'];
+            $rechargeModel->CURRENCY = $this->currency;
             $rechargeModel->AMOUNT = $this->applyAmount;
-            $rechargeModel->OPEN_BANK = $this->openBank;
-            $rechargeModel->BANK_ADDRESS = $this->bankAddress;
-            $rechargeModel->BANK_NO = $this->bankNo;
+            $rechargeModel->RECHARGE_REF = $rechargeOrder['data']['reference'];
+            $rechargeModel->RECHARGE_ORDER_ID = $rechargeOrder['data']['access_code'];
+            $rechargeModel->RECHARGE_STATUS = 0;
+            $rechargeModel->OPEN_BANK = 'a';
+            $rechargeModel->BANK_ADDRESS = 'b';
+            $rechargeModel->BANK_NO = 'c';
 //            $rechargeModel->BANK_PROVINCE = $this->bankProvince ?? 0;
 //            $rechargeModel->BANK_CITY = $this->bankCity ?? 0;
 //            $rechargeModel->BANK_COUNTY = $this->bankCounty ?? 0;

+ 70 - 22
common/models/forms/ShopGoodsForm.php

@@ -2,8 +2,10 @@
 namespace common\models\forms;
 
 use common\components\Model;
+use common\helpers\Cache;
 use common\helpers\Date;
 use common\helpers\Form;
+use common\helpers\LoggerTool;
 use common\libs\logging\operate\AdminOperate;
 use common\models\ShopGoods;
 use yii\base\Exception;
@@ -24,6 +26,7 @@ class ShopGoodsForm extends Model
     public $unit;
     public $cover;
     public $sellPrice;
+    public $sellPriceStandard;
     public $marketPrice;
     public $pricePv;
     //public $point;
@@ -49,10 +52,10 @@ class ShopGoodsForm extends Model
     {
         return [
             [['id','sellDiscount','giftType','sellType','goodsNo', 'goodsName', 'unit', 'sellPrice', 'marketPrice', 'pricePv', 'storeNums', 'content', 'sort','status','cover'], 'trim'],
-            [['goodsName','sellDiscount','giftType','goodsNo', 'storeNums','sellPrice','marketPrice','pricePv', 'sort','status','cover', 'categoryType'], 'required'],
+            [['goodsName','sellDiscount','giftType','goodsNo', 'storeNums','sellPrice','marketPrice','pricePv', 'sort','status', 'categoryType', 'sellPriceStandard'], 'required'],
             [['id'], 'required', 'on'=>'edit'],
             [['id'], 'exist', 'targetClass'=>ShopGoods::class, 'targetAttribute'=>'ID'],
-            [['sellPrice','marketPrice','pricePv'], 'price'],
+            [['sellPrice','marketPrice','pricePv', 'sellPriceStandard'], 'price'],
             [['id'], 'initModel'],
             [['selectedIds'], 'isSelected'],
             [['sort'], 'isSort'],
@@ -74,6 +77,7 @@ class ShopGoodsForm extends Model
             'unit' => '单位',
             'cover' => '封面',
             'sellPrice' => '销售价格',
+            'sellPriceStandard' => '标准价格',
             'marketPrice' => '市场价格',
             'pricePv' => '销售PV',
             //'point' => '兑换积分',
@@ -91,8 +95,8 @@ class ShopGoodsForm extends Model
     {
         $parentScenarios =  parent::scenarios();
         $customScenarios = [
-            'add' => ['goodsName','sellDiscount','giftType', 'sellType','goodsNo','unit','sellPrice','marketPrice','pricePv','storeNums', 'content','sort','cover', 'categoryType'],
-            'edit' => ['id','goodsName','sellDiscount','giftType', 'sellType','goodsNo','unit','sellPrice','marketPrice','pricePv', 'storeNums', 'content','sort','cover', 'categoryType'],
+            'add' => ['goodsName','sellDiscount','giftType', 'sellType','goodsNo','unit','sellPrice','marketPrice','pricePv','storeNums', 'content','sort','cover', 'categoryType', 'sellPriceStandard'],
+            'edit' => ['id','goodsName','sellDiscount','giftType', 'sellType','goodsNo','unit','sellPrice','marketPrice','pricePv', 'storeNums', 'content','sort','cover', 'categoryType', 'sellPriceStandard'],
             'changeStatus' => ['selectedIds', 'status'],
         ];
         return array_merge($parentScenarios, $customScenarios);
@@ -115,24 +119,29 @@ class ShopGoodsForm extends Model
      */
     public function beforeValidate()
     {
-        // 处理sellType
-        $categoryType = array_column(ShopGoods::CATEGORY_TYPE, NULL, 'id');
-        $sellType = $categoryType[$this->categoryType]['sell_type'] ?? [];
-        if (!$sellType) {
-            $this->addError('add', '商品购买方式错误');
-        } else {
-            foreach ($sellType as $item) {
-                if (!in_array($item['id'], array_keys(ShopGoods::SALE_TYPE))) {
-                    $this->addError('add', '商品购买方式错误');
-                    break;
+        if($this->categoryType){
+            // 处理sellType
+            $categoryType = array_column(ShopGoods::CATEGORY_TYPE, NULL, 'id');
+            $sellType = $categoryType[$this->categoryType]['sell_type'] ?? [];
+//            print_r($formModel);
+//            print_r($this);
+//            exit;
+            if (!$sellType) {
+                $this->addError('add', '商品购买方式错误');
+            } else {
+                foreach ($sellType as $item) {
+                    if (!in_array($item['id'], array_keys(ShopGoods::SALE_TYPE))) {
+                        $this->addError('add', '商品购买方式错误');
+                        break;
+                    }
                 }
-            }
 
-            // 购买方式格式化为','分割的方式
-            $this->sellType = implode(',', array_column($sellType, 'id'));
-            // 如果是普通商品,有PV,旅游、名车、豪宅商品没有PV
-            if ($this->categoryType != 1) {
-                $this->pricePv = 0;
+                // 购买方式格式化为','分割的方式
+                $this->sellType = implode(',', array_column($sellType, 'id'));
+                // 如果是普通商品,有PV,旅游、名车、豪宅商品没有PV
+                if ($this->categoryType != 1) {
+                    $this->pricePv = 0;
+                }
             }
         }
 
@@ -177,6 +186,10 @@ class ShopGoodsForm extends Model
         if (!$this->validate()) {
             return null;
         }
+
+        // 汇率
+        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
+
         $transaction = \Yii::$app->db->beginTransaction();
         try {
             // 添加商品
@@ -185,11 +198,12 @@ class ShopGoodsForm extends Model
             //$shopGoods->TYPE = $this->type;
             $shopGoods->SELL_DISCOUNT = $this->sellDiscount;
             $shopGoods->GIFT_TYPE = implode(',',$this->giftType);
-            // $shopGoods->SELL_TYPE = implode(',',$this->sellType);
+//             $shopGoods->SELL_TYPE = implode(',',$this->sellType);
             $shopGoods->SELL_TYPE = $this->sellType;
             $shopGoods->GOODS_NO = $this->goodsNo;
             $shopGoods->UNIT = $this->unit ? $this->unit : '个';
             $shopGoods->COVER = $this->cover ? $this->cover : '';
+            $shopGoods->SELL_PRICE_STANDARD = $this->sellPriceStandard;
             $shopGoods->SELL_PRICE = $this->sellPrice;
             $shopGoods->MARKET_PRICE = $this->marketPrice;
             $shopGoods->PRICE_PV = $this->pricePv;
@@ -223,6 +237,9 @@ class ShopGoodsForm extends Model
             return null;
         }
 
+        // 汇率
+        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
+
         $transaction = \Yii::$app->db->beginTransaction();
         try {
             $model = $this->_model;
@@ -230,11 +247,12 @@ class ShopGoodsForm extends Model
             $model->TYPE = 0;
             $model->SELL_DISCOUNT = $this->sellDiscount;
             $model->GIFT_TYPE = implode(',',$this->giftType);
-            // $model->SELL_TYPE = implode(',',$this->sellType);
+//            $model->SELL_TYPE = implode(',',$this->sellType);
             $model->SELL_TYPE = $this->sellType;
             $model->GOODS_NO = $this->goodsNo;
             $model->UNIT = $this->unit ? $this->unit : '个';
             $model->COVER = $this->cover ? $this->cover : '';
+            $model->SELL_PRICE_STANDARD = $this->sellPriceStandard;
             $model->SELL_PRICE = $this->sellPrice;
             $model->MARKET_PRICE = $this->marketPrice;
             $model->PRICE_PV = $this->pricePv;
@@ -289,4 +307,34 @@ class ShopGoodsForm extends Model
         return ['status' => $this->status];
     }
 
+    /**
+     * 异步更新商品属性表
+     * @return bool
+     */
+    public function updateAsync(){
+        // 汇率
+        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
+        // 商品列表
+        $goods = ShopGoods::findAll(['STATUS' => 1]);
+
+        $transaction = \Yii::$app->db->beginTransaction();
+        try{
+            foreach ($goods as $good) {
+                $model = clone $good;
+                $model->SELL_PRICE = $good->SELL_PRICE_STANDARD * $exchangeRate;
+                $model->MARKET_PRICE = $good->SELL_PRICE_STANDARD * $exchangeRate;
+                $model->UPDATED_AT = Date::nowTime();
+                if (!$model->save()) {
+                    throw new Exception(Form::formatErrorsForApi($model->getErrors()));
+                }
+            }
+
+            $transaction->commit();
+        } catch (Exception $e){
+            $transaction->rollBack();
+            $this->addError('update', $e->getMessage());
+            return false;
+        }
+        return true;
+    }
 }

+ 1 - 1
common/models/forms/UserForm.php

@@ -83,7 +83,7 @@ class UserForm extends Model
             [['conUid', 'location'], 'required', 'on'=>['validateLocation', 'validateAddWithUid']],
             [['conUserName', 'location'], 'required', 'on'=>['validateLocationConName', 'validateAddWithName']],
 
-            [['nation','realName', 'mobile', 'idCard', 'openBank', 'bankAddress', 'bankNo', 'email'], 'required', 'on'=>'modifyProfile'],
+            [['nation','realName', 'mobile', 'idCard', 'openBank', 'bankAddress', 'bankNo'/*, 'email'*/], 'required', 'on'=>'modifyProfile'],
             [['oldPassword','verifyPassword'], 'required','on' => ['modifyPassword', 'modifyPasswordPay', 'noLoginModifyPassword']],
             [['password'], 'required','on' => ['modifyPassword', 'noLoginModifyPassword']],
             [['payPassword'], 'required','on' => ['modifyPasswordPay']],

+ 16 - 2
console/controllers/ConfigController.php

@@ -9,10 +9,9 @@ namespace console\controllers;
 
 use common\helpers\Cache;
 use common\helpers\Form;
-use common\helpers\Log;
 use common\models\forms\ConfigPeriodForm;
+use common\models\forms\ShopGoodsForm;
 use common\models\LogAsync;
-use SebastianBergmann\CodeCoverage\Report\PHP;
 use yii\db\Exception;
 
 class ConfigController extends BaseController
@@ -32,4 +31,19 @@ class ConfigController extends BaseController
         }
     }
 
+    /**
+     * 更新汇率
+     * @param $taskKey
+     * @throws Exception
+     */
+    public function actionUpdateExchangeRate($taskKey)
+    {
+        $params = Cache::getAsyncParams($taskKey);
+        $formModel = new ShopGoodsForm();
+        if ($formModel->load($params, '') && $formModel->updateAsync()) {
+            \Yii::$app->swooleAsyncTimer->pushAsyncResultToAdmin($params['handleUserId'], "更新汇率配置成功");
+        } else {
+            \Yii::$app->swooleAsyncTimer->pushAsyncResultToAdmin($params['handleUserId'], "更新汇率配置失败,原因:".Form::formatErrorsForApi($formModel->getErrors()), false);
+        }
+    }
 }

+ 24 - 21
frontendApi/config/menu.php

@@ -7,7 +7,7 @@
  */
 return [
     'dashboard'=>[
-        'name'=>'控制台',
+        'name'=>'Dashboard',//控制台
         'class' => '',
         'icon'=>'el-icon-guide',
         'controller'=>'dashboard',
@@ -19,7 +19,7 @@ return [
         ]
     ],
     'shop'=>[
-        'name'=>'商城管理',
+        'name'=>'Products Management',//商城管理
         'class' => '',
         'icon'=>'el-icon-goods',
         'controller'=>'shop',
@@ -27,14 +27,14 @@ return [
         'routePath'=>'shop',
         'show'=>1,
         'child'=>[
-            ['name'=>'商品列表', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'index', 'routePath'=>'shop/index', 'show'=>1,],
-            ['name'=>'复消商品', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'reconsume', 'routePath'=>'shop/reconsume', 'show'=>1,'allow'=>'studio'],
-            ['name'=>'报单列表', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'dec-order-list', 'routePath'=>'shop/dec-order-list', 'show'=>1,],
-            ['name'=>'订单列表', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'order-list', 'routePath'=>'shop/order-list', 'show'=>1,],
+            ['name'=>'Products list', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'index', 'routePath'=>'shop/index', 'show'=>1,],//商品列表
+            ['name'=>'Repeat sales products', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'reconsume', 'routePath'=>'shop/reconsume', 'show'=>1,'allow'=>'studio'],//复消商品
+            ['name'=>'Entry list', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'dec-order-list', 'routePath'=>'shop/dec-order-list', 'show'=>1,],//报单列表
+            ['name'=>'Order List', 'class'=>'', 'icon'=>'', 'controller'=>'shop', 'action'=>'order-list', 'routePath'=>'shop/order-list', 'show'=>1,],//订单列表
         ]
     ],
     'user'=>[
-        'name'=>'会员管理',
+        'name'=>'Member management',//会员管理
         'class' => '',
         'icon'=>'el-icon-user',
         'controller'=>'user',
@@ -42,14 +42,17 @@ return [
         'routePath'=>'user',
         'show'=>1,
         'child'=>[
-            ['name'=>'个人资料', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'index', 'routePath'=>'user/index', 'show'=>1,],
+            ['name'=>'Personal info', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'index', 'routePath'=>'user/index', 'show'=>1,],//个人资料
             //['name'=>'上传身份证', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'id-card', 'routePath'=>'user/id-card', 'show'=>0,],
             //['name'=>'开拓会员列表', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'rec-user', 'routePath'=>'user/rec-user', 'show'=>1,],
 //            ['name'=>'点位绑定列表', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'bind', 'routePath'=>'user/bind', 'show'=>1,],
 //            ['name'=>'点位绑定编辑', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'bind-edit', 'routePath'=>'user/bind-edit', 'show'=>0,],
-            ['name'=>'重置密码', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'password', 'routePath'=>'user/password', 'show'=>1],
-            ['name'=>'升级管理', 'class'=>'', 'icon'=>'', 'controller'=>'upgrade', 'action'=>'dec', 'routePath'=>'user/upgrade', 'show'=>1,'allow'=>'declarer',],
-            ['name'=>'报单管理', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'dec', 'routePath'=>'user/dec', 'show'=>1,'allow'=>'declarer',],
+
+
+            ['name'=>'Reset Password', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'password', 'routePath'=>'user/password', 'show'=>1],//重置密码
+			['name'=>'升级管理', 'class'=>'', 'icon'=>'', 'controller'=>'upgrade', 'action'=>'dec', 'routePath'=>'user/upgrade', 'show'=>1,'allow'=>'declarer',],
+            ['name'=>'Entry Management', 'class'=>'', 'icon'=>'', 'controller'=>'user', 'action'=>'dec', 'routePath'=>'user/dec', 'show'=>1,'allow'=>'declarer',],//报单管理
+
         ]
     ],
     'atlas'=>[
@@ -65,7 +68,7 @@ return [
         ]
     ],
     'bonus'=>[
-        'name'=>'奖金管理',
+        'name'=>'Bonus management',//奖金管理
         'class' => '',
         'icon'=>'el-icon-coin',
         'controller'=>'bonus',
@@ -73,9 +76,9 @@ return [
         'routePath'=>'bonus',
         'show'=>1,
         'child'=>[
-            ['name'=>'我的账户', 'class'=>'', 'icon'=>'', 'controller'=>'bonus', 'action'=>'index', 'routePath'=>'bonus/index', 'show'=>1,],
+            ['name'=>'My account', 'class'=>'', 'icon'=>'', 'controller'=>'bonus', 'action'=>'index', 'routePath'=>'bonus/index', 'show'=>1,],//我的账户
 //            ['name'=>'最新奖金', 'class'=>'', 'icon'=>'', 'controller'=>'bonus', 'action'=>'new', 'routePath'=>'bonus/new', 'show'=>1,'allow'=>'newBonusSwitch'],
-            ['name'=>'往期奖金', 'class'=>'', 'icon'=>'', 'controller'=>'bonus', 'action'=>'other', 'routePath'=>'bonus/other', 'show'=>1,'allow'=>'pastBonusSwitch'],
+            ['name'=>'Previous bonus', 'class'=>'', 'icon'=>'', 'controller'=>'bonus', 'action'=>'other', 'routePath'=>'bonus/other', 'show'=>1,'allow'=>'pastBonusSwitch'],//往期奖金
             //['name'=>'实时业绩', 'class'=>'', 'icon'=>'', 'controller'=>'bonus', 'action'=>'real-time-perf', 'routePath'=>'bonus/real-time-perf', 'show'=>1,],
            // ['name'=>'房产积分', 'class'=>'', 'icon'=>'', 'controller'=>'bonus', 'action'=>'fc-point', 'routePath'=>'bonus/fc-point', 'show'=>1,],
 //            ['name'=>'报单中心补助明细查询', 'class'=>'', 'icon'=>'', 'controller'=>'bonus', 'action'=>'flow-bt', 'routePath'=>'bonus/flow-bt', 'show'=>1,],
@@ -83,7 +86,7 @@ return [
         ]
     ],
     'finance'=>[
-        'name'=>'财务管理',
+        'name'=>'Financial Management',//财务管理
         'class' => '',
         'icon'=>'el-icon-bank-card',
         'controller'=>'finance',
@@ -94,14 +97,14 @@ return [
 //            ['name'=>'会员复销池余额流水', 'class'=>'', 'icon'=>'', 'controller'=>'finance', 'action'=>'reconsume-pool-flow', 'routePath'=>'finance/reconsume-pool-flow', 'show'=>1,],
             ['name'=>'转账记录', 'class'=>'', 'icon'=>'', 'controller'=>'finance', 'action'=>'transfer-list', 'routePath'=>'finance/transfer-list', 'show'=>1,'allow'=>'transferRecordSwitch'],
             ['name'=>'我要转账', 'class'=>'', 'icon'=>'', 'controller'=>'finance', 'action'=>'transfer-add', 'routePath'=>'finance/transfer-add', 'show'=>1,'allow'=>'transferSwitch'],
-            ['name'=>'提现明细', 'class'=>'', 'icon'=>'', 'controller'=>'finance', 'action'=>'withdraw', 'routePath'=>'finance/withdraw', 'show'=>1,],
+            ['name'=>'Withdrawal details', 'class'=>'', 'icon'=>'', 'controller'=>'finance', 'action'=>'withdraw', 'routePath'=>'finance/withdraw', 'show'=>1,],//提现明细
             ['name'=>'申请提现', 'class'=>'', 'icon'=>'', 'controller'=>'finance', 'action'=>'withdraw-add', 'routePath'=>'finance/withdraw-add', 'show'=>0,],
-            ['name'=>'充值明细', 'class'=>'', 'icon'=>'', 'controller'=>'finance', 'action'=>'recharge', 'routePath'=>'finance/recharge', 'show'=>1,],
+            ['name'=>'Recharge details', 'class'=>'', 'icon'=>'', 'controller'=>'finance', 'action'=>'recharge', 'routePath'=>'finance/recharge', 'show'=>1,],//充值明细
             ['name'=>'申请充值', 'class'=>'', 'icon'=>'', 'controller'=>'finance', 'action'=>'recharge-add', 'routePath'=>'finance/recharge-add', 'show'=>0,],
         ]
     ],
     'article'=>[
-        'name'=>'文章管理',
+        'name'=>'Article Management',//文章管理
         'class' => '',
         'icon'=>'el-icon-document',
         'controller'=>'article',
@@ -109,7 +112,7 @@ return [
         'routePath'=>'article',
         'show'=>1,
         'child'=>[
-
+			
         ]
     ],
 //    'message'=>[
@@ -126,7 +129,7 @@ return [
 //        ]
 //    ],
     'config'=>[
-        'name'=>'设置',
+        'name'=>'Setting',//设置
         'class' => '',
         'icon'=>'el-icon-setting',
         'controller'=>'config',
@@ -135,7 +138,7 @@ return [
         'show'=>1,
         'child'=>[
 //            ['name'=>'个人设置', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'base', 'routePath'=>'config/base', 'show'=>1,],
-            ['name'=>'收货地址管理', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'receive-address-list', 'routePath'=>'config/receive-address-list', 'show'=>1,],
+            ['name'=>'Receiving address', 'class'=>'', 'icon'=>'', 'controller'=>'config', 'action'=>'receive-address-list', 'routePath'=>'config/receive-address-list', 'show'=>1,],//收货地址管理
         ]
     ],
 ];

+ 6 - 6
frontendApi/modules/v1/controllers/BonusController.php

@@ -70,13 +70,13 @@ class BonusController extends BaseController {
 //                $showCFLX = true;
 //            }
 //        }
-        $wallet[] = ['walletType' => 'bonus', 'walletName' => '会员奖金', 'amount' => Tool::formatPrice($data['BONUS'])];
-        $wallet[] = ['walletType' => 'cash', 'walletName' => '会员余额', 'amount' => Tool::formatPrice($data['CASH'])];
+        $wallet[] = ['walletType' => 'bonus', 'walletName' => 'Member bonus', 'amount' => Tool::formatPrice($data['BONUS'])];//会员奖金
+        $wallet[] = ['walletType' => 'cash', 'walletName' => 'Member balance', 'amount' => Tool::formatPrice($data['CASH'])];//会员余额
 //        $wallet[] = ['walletType' => 'point', 'walletName' => '会员积分', 'amount' => Tool::formatPrice($data['RECONSUME_POINTS'])];
-        $wallet[] = ['walletType' => 'exchange', 'walletName' => '兑换点数', 'amount' => Tool::formatPrice($data['EXCHANGE_POINTS'])];
-        $wallet[] = ['walletType' => 'travel_points', 'walletName' => '旅游积分', 'amount' => Tool::formatPrice($data['TRAVEL_POINTS'])];
-        $wallet[] = ['walletType' => 'car_points', 'walletName' => '名车积分', 'amount' => Tool::formatPrice($data['CAR_POINTS'])];
-        $wallet[] = ['walletType' => 'house_points', 'walletName' => '豪宅积分', 'amount' => Tool::formatPrice($data['HOUSE_POINTS'])];
+        $wallet[] = ['walletType' => 'exchange', 'walletName' => 'Exchange points', 'amount' => Tool::formatPrice($data['EXCHANGE_POINTS'])];//兑换点数
+        $wallet[] = ['walletType' => 'travel_points', 'walletName' => 'Travel bonus', 'amount' => Tool::formatPrice($data['TRAVEL_POINTS'])];//旅游积分
+        $wallet[] = ['walletType' => 'car_points', 'walletName' => 'Car bonus', 'amount' => Tool::formatPrice($data['CAR_POINTS'])];//名车积分
+        $wallet[] = ['walletType' => 'house_points', 'walletName' => 'House bonus', 'amount' => Tool::formatPrice($data['HOUSE_POINTS'])];//豪宅积分
 //        if ($showCFLX) {
 //            $wallet[] = ['walletType' => 'cf', 'walletName' => '福利积分一', 'amount' => Tool::formatPrice($data['CF'])];
 //            $wallet[] = ['walletType' => 'lx', 'walletName' => '福利积分二', 'amount' => Tool::formatPrice($data['LX'])];

+ 6 - 3
frontendApi/modules/v1/controllers/ConfigController.php

@@ -9,6 +9,7 @@ namespace frontendApi\modules\v1\controllers;
 
 use common\helpers\Cache;
 use common\helpers\Form;
+use common\helpers\snowflake\SnowFake;
 use common\models\forms\ReceiveAddressForm;
 use common\models\forms\UserConfigForm;
 use common\models\ReceiveAddress;
@@ -86,17 +87,18 @@ class ConfigController extends BaseController
         $condition = ' AND USER_ID=:USER_ID';
         $params[':USER_ID'] = \Yii::$app->user->id;
         $data = ReceiveAddress::lists($condition, $params, [
-            'SELECT' => 'ID,CONSIGNEE,MOBILE,PROVINCE,CITY,COUNTY,ADDRESS,IS_DEFAULT',
+            'SELECT' => 'ID,CONSIGNEE,MOBILE,PROVINCE,LGA_NAME,CITY_NAME,ADDRESS,IS_DEFAULT',
             'orderBy' => 'IS_DEFAULT DESC,CREATED_AT DESC',
             'useSlaves' => true,
         ]);
         if($data['list']){
             foreach($data['list'] as $key=>$row){
                 $data['list'][$key]['PROVINCE_NAME'] = Region::getCnName($row['PROVINCE']);
-                $data['list'][$key]['CITY_NAME'] = Region::getCnName($row['CITY']);
-                $data['list'][$key]['COUNTY_NAME'] = Region::getCnName($row['COUNTY']);
+//                $data['list'][$key]['CITY_NAME'] = Region::getCnName($row['CITY']);
+//                $data['list'][$key]['COUNTY_NAME'] = Region::getCnName($row['COUNTY']);
             }
         }
+//        print_r($data);exit;
         return static::notice($data);
     }
 
@@ -116,6 +118,7 @@ class ConfigController extends BaseController
      * @throws \yii\web\HttpException
      */
     public function actionReceiveAddressAdd() {
+        Region::updateToCache();
         if(\Yii::$app->request->isPost) {
             return parent::edit(ReceiveAddressForm::class, '添加收货地址成功', 'userAdd', ['edit']);
         }

+ 22 - 1
frontendApi/modules/v1/controllers/DashboardController.php

@@ -72,6 +72,26 @@ class DashboardController extends BaseController
                 $wkrd =$k+1;break;
             }
         }
+        if($wkrd==1){
+            $wkrd.='st';
+        }else{
+            $wkrd.='nd';
+        }
+
+        $monthArray = [
+            1 => 'Jan',
+            2 => 'Feb',
+            3 => 'Mar',
+            4 => 'Apr',
+            5 => 'May',
+            6 => 'Jun',
+            7 => 'Jul',
+            8 => 'Aug',
+            9 => 'Sep',
+            10 => 'Oct',
+            11 => 'Nov',
+            12 => 'Dec',
+        ];
 
         return static::notice([
             'nowTime' => $nowTime,
@@ -81,7 +101,8 @@ class DashboardController extends BaseController
             'decLvName'=>$decLvName,
             'slides'=>Ad::findUseSlaves()->select('ID,IMAGE,LID,TITLE,CONTENT,TYPE')->where('LID=:LID AND STATUS=1', [':LID'=>'7EFF6260A16C3CC7E053693418AC03E4'])->orderBy('SORT ASC')->asArray()->all(),
             'news'=>$news,
-            'periodNum'=>$periodNum.'期,'.$curYM['CALC_MONTH'].'月第'.$wkrd.'周,共'.$weeks.'周',
+//            'periodNum'=>'Period '.$periodNum.' ,'.$curYM['CALC_MONTH'].'月第'.$wkrd.'周,共'.$weeks.'周',
+            'periodNum'=>$periodNum.' ,'.$wkrd.' period  out of '.$weeks.', '. $monthArray[$curYM['CALC_MONTH']],
         ]);
     }
 

+ 2 - 2
frontendApi/modules/v1/controllers/FinanceController.php

@@ -496,11 +496,11 @@ class FinanceController extends BaseController {
             'orderBy' => 'CREATED_AT DESC',
         ]);
         foreach ($data['list'] as $key => $value) {
-            $data['list'][$key]['OPEN_BANK_NAME'] = $value['OPEN_BANK'] ? OpenBank::getCnName($value['OPEN_BANK']) : '';
+//            $data['list'][$key]['OPEN_BANK_NAME'] = $value['OPEN_BANK'] ? OpenBank::getCnName($value['OPEN_BANK']) : '';
             //$data['list'][$key]['BANK_PROVINCE_NAME'] = $value['BANK_PROVINCE'] ? Region::getCnName($value['BANK_PROVINCE']) : '';
             //$data['list'][$key]['BANK_CITY_NAME'] = $value['BANK_CITY'] ? Region::getCnName($value['BANK_CITY']) : '';
             //$data['list'][$key]['BANK_COUNTY_NAME'] = $value['BANK_COUNTY'] ? Region::getCnName($value['BANK_COUNTY']) : '';
-            $data['list'][$key]['STATUS_NAME'] = Recharge::STATUS_NAME[$value['AUDIT_STATUS']];
+            $data['list'][$key]['STATUS_NAME'] = Recharge::RECHARGE_STATUS_NAME[$value['RECHARGE_STATUS']];
         }
         return static::notice($data);
     }

+ 5 - 5
frontendApi/modules/v1/controllers/ShopController.php

@@ -252,7 +252,7 @@ class ShopController extends BaseController {
      */
     public function actionReconsumeCart(){
         $userId = \Yii::$app->user->id;
-        $payList = ['cash'=>['name'=>'余额支付'],];
+        $payList = ['cash'=>['name'=>'Balance payment'],];//余额支付
         $userBalance = [
             'points' => 0,
             'cash' => 0
@@ -298,19 +298,19 @@ class ShopController extends BaseController {
 //            ],
             [
                 'name' => '1',
-                'label' => '普通商品列表',
+                'label' => 'Standard Products',//普通商品列表
             ],
             [
                 'name' => '4',
-                'label' => '旅游积分商品',
+                'label' => 'Travel Bonus Products',//旅游积分商品
             ],
             [
                 'name' => '5',
-                'label' => '名车积分商品',
+                'label' => 'Car Bonus Products',//名车积分商品
             ],
             [
                 'name' => '6',
-                'label' => '豪宅积分商品',
+                'label' => 'House Bonus Products',//豪宅积分商品
             ],
         ];
         return static::notice($data);

+ 2 - 2
frontendEle/src/components/Filter.vue

@@ -18,7 +18,7 @@
         value-format="yyyyMM"
         type="month"
         :editable="false"
-        placeholder="选择结算月">
+        placeholder="Date"><!-- 选择结算月 -->
       </el-date-picker>
     </div>
     <div v-show="periodNumDisplay" :class="`filter-item filter-period-num ${periodNumClass}`">
@@ -30,7 +30,7 @@
     <div v-show="userNameDisplay" :class="`filter-item filter-user-name ${userNameClass}`">
       <el-input v-model="filterModel.userName" placeholder="请输入会员编号"></el-input>
     </div>
-    <el-button class="filter-item filter-filter-btn" type="primary" @click="handleFilter">筛选</el-button>
+    <el-button class="filter-item filter-filter-btn" type="primary" @click="handleFilter">Select</el-button><!-- 筛选 -->
   </div>
 </template>
 

+ 3 - 2
frontendEle/src/main.js

@@ -1,7 +1,8 @@
 // The Vue build version to load with the `import` command
 // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
 import Vue from 'vue'
-import ElementUI from 'element-ui'
+import ElementUI from 'element-ui'
+import locale from 'element-ui/lib/locale/lang/en'
 import 'element-ui/lib/theme-chalk/index.css'
 import App from './App'
 import router from './router'
@@ -10,7 +11,7 @@ import axios from './utils/axiosPlugin'
 import errorInfo from './utils/errorCode'
 import webSocketService from './utils/websocket';
 
-Vue.use(ElementUI)
+Vue.use(ElementUI,{locale})
 Vue.prototype.$webSocket = webSocketService;
 
 Vue.config.productionTip = false

+ 67 - 67
frontendEle/src/router/index.js

@@ -30,9 +30,9 @@ export const constantRouterMap = [
       component: _import('dashboard/index'),
       name: 'dashboard_index',
       meta: {
-        title: '控制台',
+        title: 'Dashboard',//控制台
         breadcrumb: [
-          {title: '首页', path: '/dashboard/index'},
+          {title: 'Dashboard', path: '/dashboard/index'},//首页
         ],
       },
     }]
@@ -47,10 +47,10 @@ export const constantRouterMap = [
                 component: _import('shop/dec-order-list'),
                 name: 'shop_dec-order-list',
                 meta: {
-                    title: '报单列表',
+                    title: 'Entry list',//报单列表
                     breadcrumb: [
-                        {title: '首页', path: '/dashboard/index'},
-                        {title: '商城管理', path: '/shop/dec-order-list'},
+                        {title: 'Dashboard', path: '/dashboard/index'},//首页
+                        {title: 'Products Management', path: '/shop/dec-order-list'},//商城管理
                     ],
                 },
             },
@@ -59,10 +59,10 @@ export const constantRouterMap = [
                 component: _import('shop/order-list'),
                 name: 'shop_order-list',
                 meta: {
-                    title: '订单列表',
+                    title: 'Order List',//订单列表
                     breadcrumb: [
-                        {title: '首页', path: '/dashboard/index'},
-                        {title: '商城管理', path: '/shop/dec-order-list'},
+                        {title: 'Dashboard', path: '/dashboard/index'},//首页
+                        {title: 'Products Management', path: '/shop/dec-order-list'},//商城管理
                     ],
                 },
             },
@@ -71,10 +71,10 @@ export const constantRouterMap = [
                 component: _import('shop/index'),
                 name: 'shop_index',
                 meta: {
-                    title: '商品列表',
+                    title: 'Products list',//商品列表
                     breadcrumb: [
-                        {title: '首页', path: '/dashboard/index'},
-                        {title: '商城管理', path: '/shop/dec-order-list'},
+                        {title: 'Dashboard', path: '/dashboard/index'},//首页
+                        {title: 'Products Management', path: '/shop/dec-order-list'},//商城管理
                     ],
                 },
             },
@@ -83,10 +83,10 @@ export const constantRouterMap = [
                 component: _import('shop/order'),
                 name: 'shop_order',
                 meta: {
-                    title: '商品结算',
+                    title: 'Products settlement',
                     breadcrumb: [
-                        {title: '首页', path: '/dashboard/index'},
-                        {title: '商城管理', path: '/shop/dec-order-list'}
+                        {title: 'Dashboard', path: '/dashboard/index'},//首页
+                        {title: 'Products Management', path: '/shop/dec-order-list'}//商城管理
                     ],
                 },
             },
@@ -97,7 +97,7 @@ export const constantRouterMap = [
                 meta: {
                     title: '商品详情',
                     breadcrumb: [
-                        {title: '首页', path: '/dashboard/index'},
+                        {title: 'Dashboard', path: '/dashboard/index'},
                         {title: '商城管理', path: '/shop/dec-order-list'},
                     ],
                 },
@@ -107,10 +107,10 @@ export const constantRouterMap = [
                 component: _import('shop/reconsume'),
                 name: 'shop_reconsume',
                 meta: {
-                    title: '复消商品',
+                    title: 'Repeat sales products',//复消商品
                     breadcrumb: [
-                        {title: '首页', path: '/dashboard/index'},
-                        {title: '商城管理', path: '/shop/dec-order-list'},
+                        {title: 'Dashboard', path: '/dashboard/index'},//首页
+                        {title: 'Products Management', path: '/shop/dec-order-list'},//商城管理
                     ],
                 },
             },
@@ -119,10 +119,10 @@ export const constantRouterMap = [
                 component: _import('shop/reconsume-order'),
                 name: 'reconsume-order',
                 meta: {
-                    title: '复消商品结算',
+                    title: 'Settlement Repeat sales products',//复消商品结算
                     breadcrumb: [
-                        {title: '首页', path: '/dashboard/index'},
-                        {title: '商城管理', path: '/shop/dec-order-list'}
+                        {title: 'Dashboard', path: '/dashboard/index'},//首页
+                        {title: 'Products Management', path: '/shop/dec-order-list'}//商城管理
                     ],
                 },
             },
@@ -138,10 +138,10 @@ export const constantRouterMap = [
         component: _import('user/index'),
         name: 'user_index',
         meta: {
-          title: '个人资料',
+          title: 'Personal info',//个人资料
           breadcrumb: [
-            {title: '首页', path: '/dashboard/index'},
-            {title: '会员管理', path: '/user/index'},
+            {title: 'Dashboard', path: '/dashboard/index'},//首页
+            {title: 'Member management', path: '/user/index'},//会员管理
           ],
         },
       },
@@ -150,10 +150,10 @@ export const constantRouterMap = [
           component: _import('user/password'),
           name: 'user_password',
           meta: {
-              title: '重置密码',
+              title: 'Reset Password',//重置密码
               breadcrumb: [
-                  {title: '首页', path: '/dashboard/index'},
-                  {title: '会员管理', path: '/user/index'},
+                  {title: 'Dashboard', path: '/dashboard/index'},//首页
+                  {title: 'Member management', path: '/user/index'},//会员管理
               ],
           },
       },
@@ -212,10 +212,10 @@ export const constantRouterMap = [
         component: _import('user/dec'),
         name: 'user_dec',
         meta: {
-          title: '报单管理',
+          title: ' Entry Management',//报单管理
           breadcrumb: [
-            {title: '首页', path: '/dashboard/index'},
-            {title: '会员管理', path: '/user/index'},
+            {title: 'Dashboard', path: '/dashboard/index'},//首页
+            {title: 'Member management', path: '/user/index'},//会员管理
           ],
         },
       },
@@ -263,10 +263,10 @@ export const constantRouterMap = [
         component: _import('bonus/index'),
         name: 'bonus_index',
         meta: {
-          title: '我的账户',
+          title: 'My account',//我的账户
           breadcrumb: [
-            {title: '首页', path: '/dashboard/index'},
-            {title: '奖金管理', path: '/bonus/index'},
+            {title: 'Dashboard', path: '/dashboard/index'},//首页
+            {title: 'Bonus management', path: '/bonus/index'},//奖金管理
           ],
         },
       },
@@ -287,10 +287,10 @@ export const constantRouterMap = [
         component: _import('bonus/other'),
         name: 'bonus_other',
         meta: {
-          title: '往期奖金',
+          title: 'Previous bonus',//往期奖金
           breadcrumb: [
-            {title: '首页', path: '/dashboard/index'},
-            {title: '奖金管理', path: '/bonus/index'},
+            {title: 'Dashboard', path: '/dashboard/index'},//首页
+            {title: 'Bonus management', path: '/bonus/index'},//奖金管理
           ],
         },
       },
@@ -331,10 +331,10 @@ export const constantRouterMap = [
         component: _import('article/list'),
         name: 'article_list',
         meta: {
-          title: '文章列表',
+          title: 'Article List',
           breadcrumb: [
-            {title: '首页', path: '/dashboard/index'},
-            {title: '文章管理', path: '/article/list'},
+            {title: 'Dashboard', path: '/dashboard/index'},
+            {title: 'Articla Management', path: '/article/list'},
           ],
         },
       },
@@ -343,10 +343,10 @@ export const constantRouterMap = [
         component: _import('article/detail'),
         name: 'article_detail',
         meta: {
-          title: '文章详情',
+          title: 'Article Detail',
           breadcrumb: [
-            {title: '首页', path: '/dashboard/index'},
-            {title: '文章管理', path: '/article/list'},
+            {title: 'Dashboard', path: '/dashboard/index'},
+            {title: 'Articla Management', path: '/article/list'},
           ],
         },
       },
@@ -405,10 +405,10 @@ export const constantRouterMap = [
         component: _import('finance/withdraw'),
         name: 'finance_withdraw',
         meta: {
-          title: '提现明细',
+          title: 'Withdrawal details',//提现明细
           breadcrumb: [
-            {title: '首页', path: '/dashboard/index'},
-            {title: '财务管理', path: '/finance/index'},
+            {title: 'Dashboard', path: '/dashboard/index'},//首页
+            {title: 'financial management', path: '/finance/index'},//财务管理
           ],
         },
       },
@@ -417,12 +417,12 @@ export const constantRouterMap = [
         component: _import('finance/withdraw-add'),
         name: 'finance_withdraw-add',
         meta: {
-          title: '我要提现',
+          title: 'Withdraw',//我要提现
           highLight: '/finance/withdraw',
           breadcrumb: [
-            {title: '首页', path: '/dashboard/index'},
-            {title: '财务管理', path: '/finance/index'},
-            {title: '提现明细', path: '/finance/withdraw'},
+            {title: 'Dashboard', path: '/dashboard/index'},//首页
+            {title: 'financial management', path: '/finance/index'},//财务管理
+            {title: 'Withdrawal details', path: '/finance/withdraw'},//提现明细
           ],
         },
       },
@@ -469,10 +469,10 @@ export const constantRouterMap = [
             component: _import('finance/recharge'),
             name: 'finance_recharge',
             meta: {
-                title: '充值明细',
+                title: 'Recharge details',//充值明细
                 breadcrumb: [
-                    {title: '首页', path: '/dashboard/index'},
-                    {title: '财务管理', path: '/finance/index'},
+                    {title: 'Dashboard', path: '/dashboard/index'},//首页
+                    {title: 'financial management', path: '/finance/index'},//财务管理
                 ],
             },
         },
@@ -481,12 +481,12 @@ export const constantRouterMap = [
             component: _import('finance/recharge-add'),
             name: 'finance_recharge-add',
             meta: {
-                title: '我要充值',
+                title: 'Recharge',//我要充值
                 highLight: '/finance/recharge',
                 breadcrumb: [
-                    {title: '首页', path: '/dashboard/index'},
-                    {title: '财务管理', path: '/finance/index'},
-                    {title: '提现明细', path: '/finance/withdraw'},
+                    {title: 'Dashboard', path: '/dashboard/index'},//首页
+                    {title: 'financial management', path: '/finance/index'},//财务管理
+                    {title: 'Withdrawal details', path: '/finance/withdraw'},
                 ],
             },
         },
@@ -502,10 +502,10 @@ export const constantRouterMap = [
         component: _import('config/receive-address-list'),
         name: 'config_receive-address-list',
         meta: {
-          title: '收货地址管理',
+          title: 'Receiving address',//收货地址管理
           breadcrumb: [
-            {title: '首页', path: '/dashboard/index'},
-            {title: '设置', path: '/config/base'},
+            {title: 'Dashboard', path: '/dashboard/index'},//首页
+            {title: 'Setting', path: '/config/base'},//设置
           ],
         },
       },
@@ -514,12 +514,12 @@ export const constantRouterMap = [
         component: _import('config/receive-address-edit'),
         name: 'config_receive-address-add',
         meta: {
-          title: '添加收货地址',
+          title: 'Add shipping address',//添加收货地址
           highLight: '/config/receive-address-list',
           breadcrumb: [
-            {title: '首页', path: '/dashboard/index'},
-            {title: '设置', path: '/config/base'},
-            {title: '收货地址管理', path: '/config/receive-address-list'},
+            {title: 'Dashboard', path: '/dashboard/index'},//首页
+            {title: 'Setting', path: '/config/base'},//设置
+            {title: 'Receiving address', path: '/config/receive-address-list'},//收货地址管理
           ],
         },
       },
@@ -528,12 +528,12 @@ export const constantRouterMap = [
         component: _import('config/receive-address-edit'),
         name: 'config_receive-address-edit',
         meta: {
-          title: '编辑收货地址',
+          title: 'Edit address',
           highLight: '/config/receive-address-list',
           breadcrumb: [
-            {title: '首页', path: '/dashboard/index'},
-            {title: '设置', path: '/config/base'},
-            {title: '收货地址管理', path: '/config/receive-address-list'},
+            {title: 'Dashboard', path: '/dashboard/index'},//首页
+            {title: 'Setting', path: '/config/base'},//设置
+            {title: 'Receiving address', path: '/config/receive-address-list'},//收货地址管理
           ],
         },
       },

+ 1 - 1
frontendEle/src/utils/region.js

@@ -26,7 +26,7 @@ const initRegion = function (vueObj) {
 
     // code转汉字大对象
 // 汉字转code大对象
-    const rootCode = '86'
+    const rootCode = '234'
     vueObj.$set(store.state.regionInfo.CodeToText, '', '全部')
 
 // 计算省

+ 4 - 4
frontendEle/src/views/article/list.vue

@@ -2,17 +2,17 @@
   <div v-loading="loading">
     <div class="white-box">
       <el-table :data="tableData" stripe style="width: 100%;">
-        <el-table-column label="标题" prop="TITLE">
+        <el-table-column label="Title" prop="TITLE">
           <template slot-scope="scope">
             <router-link :to="`/article/detail/${scope.row.ID}`">{{scope.row.TITLE}}</router-link>
           </template>
         </el-table-column>
-        <el-table-column label="分类">
+        <el-table-column label="Classification">
           <template slot-scope="scope">
             {{allData.allCategory[scope.row.CID].CATE_NAME}}
           </template>
         </el-table-column>
-        <el-table-column label="创建时间">
+        <el-table-column label="Creation Time">
           <template slot-scope="scope">
             {{tool.formatDate(scope.row.CREATED_AT)}}
           </template>
@@ -77,4 +77,4 @@ export default {
   .white-box a {
     color: #606266;
   }
-</style>
+</style>

+ 21 - 20
frontendEle/src/views/bonus/index.vue

@@ -2,54 +2,54 @@
   <div v-loading="loading">
     <div class="white-box">
       <el-table class="table-box" :data="walletData" stripe style="width: 100%;">
-        <el-table-column label="账户类型" prop="walletName"></el-table-column>
-        <el-table-column label="账户余额" prop="amount"></el-table-column>
-        <el-table-column label="交易记录">
+        <el-table-column label="Account type" prop="walletName"></el-table-column><!-- 账户类型 -->
+        <el-table-column label="Account balance" prop="amount"></el-table-column><!-- 账户余额 -->
+        <el-table-column label="Trading record"><!-- 交易记录 -->
           <template slot-scope="scope">
-            <el-button type="primary" v-show="dealSwitch==1" size="small" @click.native="showFlow(scope.row.walletType,scope.row.walletName)">查看交易记录</el-button>
+            <el-button type="primary" v-show="dealSwitch==1" size="small" @click.native="showFlow(scope.row.walletType,scope.row.walletName)">View Trading record</el-button><!-- 查看交易记录 -->
           </template>
         </el-table-column>
       </el-table>
     </div>
-    <el-dialog :title="`${walletName}交易记录`" :visible.sync="dialogFlowVisible" width="80%">
+    <el-dialog :title="`${walletName} Trading record`" :visible.sync="dialogFlowVisible" width="80%"><!-- 交易记录 -->
       <div class="leo-filter" v-loading="loading">
         <div :class="`filter-item filter-date-range-picker`">
       <el-date-picker
           v-model="createAt"
           type="daterange"
-          range-separator=""
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
+          range-separator="to"
+          start-placeholder="Date from"
+          end-placeholder="Date to">
       </el-date-picker>
         </div>
         <div :class="`filter-item`">
-      <el-select v-model="dealType" placeholder="请选择交易类型">
+      <el-select v-model="dealType" placeholder="Select trans type"><!-- 请选择交易类型 -->
         <el-option v-for="(item,key) in dealTypes" :label="item" :value="key" :key="key"></el-option>
       </el-select>
         </div>
         <div :class="`filter-item`">
-          <el-input v-model="remark" placeholder="备注"></el-input>
+          <el-input v-model="remark" placeholder="Note"></el-input><!--备注-->
         </div>
-      <el-button class="filter-item filter-filter-btn" type="primary" @click="handleFilter">筛选</el-button>
-      <el-button class="filter-item filter-filter-btn" type="" @click="handleFilterClear">重置</el-button>
+      <el-button class="filter-item filter-filter-btn" type="primary" @click="handleFilter">Select</el-button><!-- 筛选 -->
+      <el-button class="filter-item filter-filter-btn" type="" @click="handleFilterClear">Reset</el-button><!-- 重置 -->
       </div>
       <el-table class="table-box" ref="multipleTable" :data="tableData" stripe style="width: 100%;" v-loading="dialogLoading">
-        <el-table-column label="交易时间">
+        <el-table-column label="Trans date"><!-- 交易时间 -->
           <template slot-scope="scope">
             {{tool.formatDate(scope.row.CREATED_AT)}}
           </template>
         </el-table-column>
-        <el-table-column label="交易类型">
+        <el-table-column label="Trans type"><!-- 交易类型 -->
           <template slot-scope="scope">
             {{scope.row.DEAL_TYPE_NAME}}
           </template>
         </el-table-column>
-        <el-table-column label="交易前余额">
+        <el-table-column label="Pre-transaction balance"><!-- 交易前余额 -->
           <template slot-scope="scope">
             {{tool.formatPrice(scope.row.TOTAL-scope.row.AMOUNT)}}
           </template>
         </el-table-column>
-        <el-table-column label="交易额">
+        <el-table-column label="Total amount"><!-- 交易额 -->
           <template slot-scope="scope">
             <template v-if="scope.row.IS_INCR > 0">
               <el-tag type="danger" size="small" class="no-border"><span class="text-danger">+{{scope.row.AMOUNT}}</span></el-tag>
@@ -62,12 +62,12 @@
             </template>
           </template>
         </el-table-column>
-        <el-table-column label="交易后余额">
+        <el-table-column label="Post-transaction balance"><!-- 交易后余额 -->
           <template slot-scope="scope">
             {{tool.formatPrice(scope.row.TOTAL)}}
           </template>
         </el-table-column>
-        <el-table-column label="备注" prop="REMARK"></el-table-column>
+        <el-table-column label="Note" prop="REMARK"></el-table-column><!-- 备注 -->
       </el-table>
       <div slot="footer" class="dialog-footer">
         <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
@@ -120,7 +120,8 @@
       getData() {
         let vueObj = this
         vueObj.loading = true
-        network.getData('bonus/index').then(response => {
+        network.getData('bonus/index').then(response => {
+			console.log(response);
           vueObj.walletData = response.wallet
           vueObj.dealSwitch = response.dealSwitch
           vueObj.loading = false
@@ -131,7 +132,7 @@
       showFlow(walletType,walletName){
         let vueObj = this
         this.$message({
-          message: '正在获取数据',
+          message: 'Getting data',//正在获取数据
           type: 'info'
         })
         this.walletType = walletType

+ 33 - 33
frontendEle/src/views/bonus/other.vue

@@ -2,31 +2,31 @@
   <div v-loading="loading">
     <div class="white-box">
       <el-table class="table-box" :data="tableData" style="width: 100%;">
-        <el-table-column label="期数" prop="PERIOD_NUM.value">
+        <el-table-column label="Pay cycle" prop="PERIOD_NUM.value" width="100"><!-- 期数 -->
         </el-table-column>
-        <el-table-column label="销售奖金" prop="BONUS_TG.value">
+        <el-table-column label="Welcome Bonus" prop="BONUS_TG.value" width="130"><!-- 销售奖金 -->
         </el-table-column>
-        <el-table-column label="业绩奖金" prop="ORI_BONUS_QY.value">
+<!--        <el-table-column label="业绩奖金" prop="ORI_BONUS_QY.value">&lt;!&ndash; 业绩奖金 &ndash;&gt;-->
+<!--        </el-table-column>-->
+        <el-table-column label="Director Bonus" prop="ORI_BONUS_BS_MNT.value" width="125"><!-- 管理奖金 -->
         </el-table-column>
-        <el-table-column label="管理奖金" prop="ORI_BONUS_BS_MNT.value">
+        <el-table-column label="Team Bonus" prop="ORI_BONUS_BS_ABBR.value" width="120"><!-- 绩效奖金 -->
         </el-table-column>
-        <el-table-column label="绩效奖金" prop="ORI_BONUS_BS_ABBR.value">
+        <el-table-column label="Quarter Pool Bank(GPB)" prop="ORI_BONUS_QUARTER.value" width="190px"><!-- 季度分红 -->
         </el-table-column>
-        <el-table-column label="季度分红" prop="ORI_BONUS_QUARTER.value">
+        <el-table-column label="Travel" prop="BONUS_TRAVEL.value"><!-- 旅游奖 -->
         </el-table-column>
-        <el-table-column label="旅游奖" prop="BONUS_TRAVEL.value">
+        <el-table-column label="Car" prop="BONUS_CAR.value"><!-- 名车奖 -->
         </el-table-column>
-        <el-table-column label="名车奖" prop="BONUS_CAR.value">
+        <el-table-column label="Villa" prop="BONUS_HOUSE.value"><!-- 豪宅奖 -->
         </el-table-column>
-        <el-table-column label="豪宅奖" prop="BONUS_HOUSE.value">
+        <el-table-column label="Total bonus" prop="BONUS_TOTAL.value" width="100"><!-- 合计 -->
         </el-table-column>
-        <el-table-column label="合计" prop="BONUS_TOTAL.value">
-        </el-table-column>
-        <el-table-column label="实发" prop="BONUS_REAL.value">
+        <el-table-column label="Actual bonus" prop="BONUS_REAL.value" width="110"><!-- 实发 -->
         </el-table-column>
         <el-table-column >
           <template slot-scope="scope">
-            <el-button type="primary" size="small" @click.native="showFlow(scope.row.PERIOD_NUM.value)">查看全部</el-button>
+            <el-button type="primary" size="small" @click.native="showFlow(scope.row.PERIOD_NUM.value)">View<!-- 查看全部 --></el-button>
           </template>
         </el-table-column>
 
@@ -35,24 +35,24 @@
     <el-dialog :title="`${periodNum}期奖金`" :visible.sync="dialogFlowVisible" width="70%">
 
         <el-descriptions title="" class="bonus-list" v-if="newData" :column="2">
-          <el-descriptions-item class="bonus-item" label="期数">{{newData.PERIOD_NUM.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="会员等级">{{newData.LAST_DEC_LV.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="销售奖金">{{newData.ORI_BONUS_TG.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="业绩奖金">{{newData.ORI_BONUS_QY.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="管理奖金">{{newData.ORI_BONUS_BS_MNT.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="绩效奖金">{{newData.ORI_BONUS_BS_ABBR.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="季度分红">{{newData.ORI_BONUS_QUARTER.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="旅游奖">{{newData.BONUS_TRAVEL.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="名车奖">{{newData.BONUS_CAR.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="豪宅奖">{{newData.BONUS_HOUSE.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="合计">{{newData.BONUS_TOTAL.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="实发奖金">{{newData.BONUS_REAL.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="一市场新增">{{newData.PV_1L.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="一市场结余">{{newData.SURPLUS_1L.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="二市场新增">{{newData.PV_2L.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="二市场结余">{{newData.SURPLUS_2L.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="三市场新增">{{newData.PV_3L.value}}</el-descriptions-item>
-          <el-descriptions-item class="bonus-item" label="三市场结余">{{newData.SURPLUS_3L.value}}</el-descriptions-item>
+          <el-descriptions-item class="bonus-item" label="Pay cycle">{{newData.PERIOD_NUM.value}}</el-descriptions-item><!-- 期数 -->
+          <el-descriptions-item class="bonus-item" label="Member Level">{{newData.LAST_DEC_LV.value}}</el-descriptions-item><!-- 会员等级 -->
+          <el-descriptions-item class="bonus-item" label="Welcome Bonus">{{newData.ORI_BONUS_TG.value}}</el-descriptions-item><!-- 销售奖金 -->
+<!--          <el-descriptions-item class="bonus-item" label="业绩奖金">{{newData.ORI_BONUS_QY.value}}</el-descriptions-item>&lt;!&ndash; 业绩奖金 &ndash;&gt;-->
+          <el-descriptions-item class="bonus-item" label="Director Bonus">{{newData.ORI_BONUS_BS_MNT.value}}</el-descriptions-item><!-- 管理奖金 -->
+          <el-descriptions-item class="bonus-item" label="Team Bonus">{{newData.ORI_BONUS_BS_ABBR.value}}</el-descriptions-item><!-- 绩效奖金 -->
+          <el-descriptions-item class="bonus-item" label="Quarter Pool Bank(GPB)">{{newData.ORI_BONUS_QUARTER.value}}</el-descriptions-item><!-- 季度分红 -->
+          <el-descriptions-item class="bonus-item" label="Travel">{{newData.BONUS_TRAVEL.value}}</el-descriptions-item><!-- 旅游奖 -->
+          <el-descriptions-item class="bonus-item" label="Car">{{newData.BONUS_CAR.value}}</el-descriptions-item><!-- 名车奖 -->
+          <el-descriptions-item class="bonus-item" label="Villa">{{newData.BONUS_HOUSE.value}}</el-descriptions-item><!-- 豪宅奖 -->
+          <el-descriptions-item class="bonus-item" label="Total bonus">{{newData.BONUS_TOTAL.value}}</el-descriptions-item><!-- 合计 -->
+          <el-descriptions-item class="bonus-item" label="Actual bonus">{{newData.BONUS_REAL.value}}</el-descriptions-item><!-- 实发奖金 -->
+          <el-descriptions-item class="bonus-item" label="一市场新增">{{newData.PV_1L.value}}</el-descriptions-item><!-- 一市场新增 -->
+          <el-descriptions-item class="bonus-item" label="一市场结余">{{newData.SURPLUS_1L.value}}</el-descriptions-item><!-- 一市场结余 -->
+          <el-descriptions-item class="bonus-item" label="二市场新增">{{newData.PV_2L.value}}</el-descriptions-item><!-- 二市场新增 -->
+          <el-descriptions-item class="bonus-item" label="二市场结余">{{newData.SURPLUS_2L.value}}</el-descriptions-item><!-- 二市场结余 -->
+          <el-descriptions-item class="bonus-item" label="三市场新增">{{newData.PV_3L.value}}</el-descriptions-item><!-- 三市场新增 -->
+          <el-descriptions-item class="bonus-item" label="三市场结余">{{newData.SURPLUS_3L.value}}</el-descriptions-item><!-- 三市场结余 -->
         </el-descriptions>
     </el-dialog>
   </div>
@@ -96,7 +96,7 @@
       showFlow(periodNum){
         let vueObj = this
         this.$message({
-          message: '正在获取数据',
+          message: 'Getting data',
           type: 'info'
         })
         this.periodNum = periodNum
@@ -123,7 +123,7 @@
   .other-table-box .el-table__body tr:hover>td{background-color: #fff!important;}
   .other-table-box .el-table__body tr td:not(:last-child):hover{background-color: #f5f5f5!important;}
   .bonus-list:after{content: '';clear: both;display: table;}
-  .bonus-list{width: 360px;}
+  .bonus-list{width: 600px;}
   .bonus-list .bonus-item{float: left;width: 33.333%;background: #fff;height:36px;line-height:36px;border: 1px solid #ddd;margin: -1px 0 0 -1px;box-sizing: border-box;}
   .bonus-item{text-align: center;}
   .bonus-item:hover{background: #f5f5f5;cursor: pointer;}

+ 32 - 12
frontendEle/src/views/config/receive-address-edit.vue

@@ -5,21 +5,35 @@
         <el-form-item>
           <template slot="label">
             <span class="text-danger">*</span>
-            收货人
+            Consignee<!-- 收货人 -->
           </template>
           <el-input v-model="form.consignee"></el-input>
         </el-form-item>
         <el-form-item>
           <template slot="label">
             <span class="text-danger">*</span>
-            手机号
+            Phone number<!-- 手机号 -->
           </template>
           <el-input v-model="form.mobile"></el-input>
         </el-form-item>
+        <el-form-item>
+          <template slot="label">
+            <span class="text-danger">*</span>
+            City
+          </template>
+          <el-input v-model="form.cityName"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <template slot="label">
+            <span class="text-danger">*</span>
+            Local Government Area
+          </template>
+          <el-input v-model="form.lgaName"></el-input>
+        </el-form-item>
         <el-form-item prop="areaSelected">
           <template slot="label">
             <span class="text-danger">*</span>
-            地区
+            region<!-- 地区 -->
           </template>
           <el-cascader
             size="large"
@@ -30,18 +44,18 @@
         <el-form-item>
           <template slot="label">
             <span class="text-danger">*</span>
-            详细地址
+            Detailed address<!-- 详细地址 -->
           </template>
           <el-input v-model="form.address"></el-input>
         </el-form-item>
         <el-form-item>
           <template slot="label">
-            是否默认
+            Default<!-- 是否默认 -->
           </template>
           <el-switch v-model="form.isDefault" ></el-switch>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="onSubmit" :loading="submitButtonStat">提交</el-button>
+          <el-button type="primary" @click="onSubmit" :loading="submitButtonStat">Confirm<!-- 确认 --></el-button>
         </el-form-item>
       </el-form>
     </div>
@@ -87,8 +101,10 @@
           consignee: this.form.consignee,
           mobile: this.form.mobile,
           province: this.form.areaSelected[0] ? this.form.areaSelected[0] : '',
-          city: this.form.areaSelected[1] ? this.form.areaSelected[1] : '',
-          county: this.form.areaSelected[2] ? this.form.areaSelected[2] : '',
+          // city: this.form.areaSelected[1] ? this.form.areaSelected[1] : '',
+          // county: this.form.areaSelected[2] ? this.form.areaSelected[2] : '',
+          lgaName: this.form.lgaName,
+          cityName: this.form.cityName,
           address: this.form.address,
           isDefault: this.form.isDefault,
         }
@@ -99,8 +115,10 @@
             consignee: this.form.consignee,
             mobile: this.form.mobile,
             province: this.form.areaSelected[0] ? this.form.areaSelected[0] : '',
-            city: this.form.areaSelected[1] ? this.form.areaSelected[1] : '',
-            county: this.form.areaSelected[2] ? this.form.areaSelected[2] : '',
+            // city: this.form.areaSelected[1] ? this.form.areaSelected[1] : '',
+            // county: this.form.areaSelected[2] ? this.form.areaSelected[2] : '',
+            lgaName: this.form.lgaName,
+            cityName: this.form.cityName,
             address: this.form.address,
             isDefault: this.form.isDefault,
           }
@@ -122,8 +140,10 @@
           this.form.consignee = response.CONSIGNEE
           this.form.mobile = response.MOBILE
           this.form.areaSelected[0] = response.PROVINCE
-          this.form.areaSelected[1] = response.CITY
-          this.form.areaSelected[2] = response.COUNTY
+          // this.form.areaSelected[1] = response.CITY
+          // this.form.areaSelected[2] = response.COUNTY
+          this.form.lgaName = response.LGA_NAME
+          this.form.cityName = response.CITY_NAME
           this.form.address = response.ADDRESS
           this.form.isDefault = response.IS_DEFAULT === '1' ? true : false
           this.loading = false

+ 16 - 16
frontendEle/src/views/config/receive-address-list.vue

@@ -2,33 +2,33 @@
   <div v-loading="loading">
     <div class="white-box">
       <el-table class="table-box" ref="multipleTable" :data="tableData" stripe style="width: 100%;">
-        <el-table-column label="收货人" prop="CONSIGNEE" width="150"></el-table-column>
-        <el-table-column label="手机号码" prop="MOBILE" width="150"></el-table-column>
-        <el-table-column label="省/市" prop="PROVINCE_NAME" width="150"></el-table-column>
-        <el-table-column label="市/区" prop="CITY_NAME" width="150"></el-table-column>
-        <el-table-column label="区/县" prop="COUNTY_NAME" width="150"></el-table-column>
-        <el-table-column label="详细地址" prop="ADDRESS" ></el-table-column>
-        <el-table-column label="是否默认" width="100">
+        <el-table-column label="Consignee" prop="CONSIGNEE" width="150"></el-table-column><!-- 收货人 -->
+        <el-table-column label="Phone number" prop="MOBILE" width="150"></el-table-column><!-- 手机号码 -->
+        <el-table-column label="Detailed address" prop="ADDRESS" ></el-table-column><!-- 详细地址 -->
+        <el-table-column label="City" prop="CITY_NAME" width="150"></el-table-column>
+        <el-table-column label="Local Government Area" prop="LGA_NAME" width="180"></el-table-column>
+        <el-table-column label="State" prop="PROVINCE_NAME" width="150"></el-table-column>
+        <el-table-column label="Default" width="100">
           <template slot-scope="scope">
-            {{scope.row.IS_DEFAULT === '1' ? '是' : '否'}}
+            {{scope.row.IS_DEFAULT === '1' ? 'YES' : 'NO'}}<!-- 是:否 -->
           </template>
         </el-table-column>
-        <el-table-column fixed="right" label="操作" width="180">
+        <el-table-column fixed="right" label="operation" width="180"><!-- 操作 -->
           <template slot-scope="scope">
             <el-dropdown size="small" trigger="click">
               <el-button type="primary" size="small" @click.stop="">
-                操作该数据<i class="el-icon-arrow-down el-icon--right"></i>
+                Operate on this data<!-- 操作该数据 --><i class="el-icon-arrow-down el-icon--right"></i>
               </el-button>
               <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item command="edit" @click.native="handleUpdate(scope.row)">编辑</el-dropdown-item>
-                <el-dropdown-item command="edit" @click.native="handleDelete(scope.row)">删除</el-dropdown-item>
+                <el-dropdown-item command="edit" @click.native="handleUpdate(scope.row)">Edit<!-- 编辑 --></el-dropdown-item>
+                <el-dropdown-item command="edit" @click.native="handleDelete(scope.row)">Delete<!-- 删除 --></el-dropdown-item>
               </el-dropdown-menu>
             </el-dropdown>
           </template>
         </el-table-column>
       </el-table>
       <div class="white-box-footer">
-        <el-button type="primary" size="small" @click="handleAdd">添加收货地址</el-button>
+        <el-button type="primary" size="small" @click="handleAdd">Add shipping address<!-- 添加收货地址 --></el-button>
         <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
       </div>
     </div>
@@ -84,9 +84,9 @@
         this.$router.push({path: `/config/receive-address-edit/${row.ID}`})
       },
       handleDelete (row) {
-        this.$confirm(`确定要删除所选数据吗?`, '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
+        this.$confirm(`Are you sure you want to delete the selected data?`, 'Hint', {//`确定要删除所选数据吗?`, '提示'
+          confirmButtonText: 'Confirm',//确定
+          cancelButtonText: 'cancel',//取消
           type: 'warning'
         }).then(() => {
           let selectedIds = [row.ID]

+ 16 - 15
frontendEle/src/views/dashboard/index.vue

@@ -2,32 +2,32 @@
   <div v-loading="loading">
     <div>
       <div class="welcome" :style="getEmpBg(myEmpLv['ICON_TYPE'])">
-        <h1>欢迎您,{{userName}}
+        <h1>Welcome,{{userName}} <!--欢迎您-->
 
-        <b v-if="verified==='0'" class="text-danger"> 您未实名认证,请登录商城系统完善会员资料并上传身份证</b>
+        <b v-if="verified==='0'" class="text-danger">You do not have real name authentication, please log in the member system to complete the member information and upload ID card.</b><!--您未实名认证,请登录商城系统完善会员资料并上传身份证-->
         </h1>
         <el-row :gutter="0" class="wel-info">
           <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12">
             <el-row :gutter="10">
-              <el-col :xs="24" :sm="24" :md="24" :lg="8" :xl="12">当前系统时间:{{nowDateTime}}</el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="4" :xl="12">聘级:{{myEmpLv['LEVEL_NAME']!='无聘级'?myEmpLv['LEVEL_NAME']:''}}<span v-if="myEmpLv['ICON_TYPE']==0">无</span><img
+              <el-col :xs="24" :sm="24" :md="24" :lg="8" :xl="12">Current System Time:{{nowDateTime}}</el-col> <!--当前系统时间-->
+              <el-col :xs="24" :sm="24" :md="24" :lg="4" :xl="12">Rank:{{myEmpLv['LEVEL_NAME']!='No Rank'?myEmpLv['LEVEL_NAME']:''}}<span v-if="myEmpLv['ICON_TYPE']==0">No Rank</span><img
                   :src="getEmpIco(myEmpLv['ICON_TYPE'])" alt=""
                   v-for="(o,key) in parseInt(myEmpLv['ICON_NUM'])"
                   :key="key" v-if="myEmpLv['ICON_TYPE']>0">
-              </el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="4" :xl="12">会员级别:{{decLvName}}</el-col>
-              <el-col :xs="24" :sm="24" :md="24" :lg="8" :xl="12">当前业绩期:{{periodNum}}</el-col>
+              </el-col><!--聘级-->
+              <el-col :xs="24" :sm="24" :md="24" :lg="4" :xl="12">Member Level:{{decLvName}}</el-col><!--会员级别-->
+              <el-col :xs="24" :sm="24" :md="24" :lg="8" :xl="12">Current Period:{{periodNum}}</el-col><!--当前业绩期-->
             </el-row>
           </el-col>
         </el-row>
       </div>
       <div style="display: none;">
 <!--        <el-button type="primary" @click="go('/config/base')">个人设置</el-button>-->
-        <el-button type="success" @click="go('/user/index')">个人资料</el-button>
+        <el-button type="success" @click="go('/user/index')">Personal Information</el-button><!--个人资料-->
 <!--        <el-button type="danger" @click="go('/user/rec-user')">开拓会员</el-button>-->
-        <el-button type="primary" @click="go('/finance/flow-bonus')">奖金流水</el-button>
-        <el-button type="warning" @click="go('/finance/withdraw')">提现明细</el-button>
-        <el-button type="success" @click="go('/finance/perf')">往期业绩</el-button>
+        <el-button type="primary" @click="go('/finance/flow-bonus')">Bonus running account</el-button><!--奖金流水-->
+        <el-button type="warning" @click="go('/finance/withdraw')">Withdraw record</el-button><!--提现明细-->
+        <el-button type="success" @click="go('/finance/perf')">Previous performance</el-button><!--往期业绩-->
       </div>
     </div>
     <el-carousel trigger="click" :height="bannerHeight+'px'">
@@ -56,7 +56,7 @@
             <router-link :to="`/article/detail/${o.ID}`" :title="o.TITLE">{{sub_str(o.TITLE)}}</router-link>
             <span>{{tool.formatDate(o.CREATED_AT,false)}}</span>
           </div>
-          <div v-if="item.LISTS.length==0">暂无内容</div>
+          <div v-if="item.LISTS.length==0">No content</div><!--暂无内容-->
         </el-card>
       </el-col>
     </el-row>
@@ -89,9 +89,10 @@
         this.imgLoad()
         return network.getData(`dashboard/bonus-num`)
       })
-      if(this.verified==='0'){
-        this.$confirm('您未实名认证,请登录商城系统完善会员资料并上传身份证', '请注意', {
-          confirmButtonText: '确定',
+      if(this.verified==='0'){
+		  // '您未实名认证,请登录商城系统完善会员资料并上传身份证', '请注意'
+        this.$confirm('You do not have real name authentication, please log in the member system to complete the member information and upload ID card.', 'Please pay attention', {
+          confirmButtonText: 'Confirm',//确定
           type: 'warning'
         }).then(() => {
         }).catch(() => {

+ 80 - 89
frontendEle/src/views/finance/recharge-add.vue

@@ -1,100 +1,91 @@
 <template>
-    <div v-loading="loading">
-        <div class="white-box">
-            <el-form ref="form"  label-width="250px" class="form-page">
-                <el-form-item label="充值金额">
-                    <el-input v-model="form.applyAmount"></el-input>
-                </el-form-item>
-                <el-form-item label="银行账号">
-                    <el-input v-model="form.bankNo"></el-input>
-                </el-form-item>
-                <el-form-item label="汇款银行">
-                    <el-select v-model="form.openBank" placeholder="请选择开户行">
-                        <el-option v-for="(item,index) in allOpenBank" :key="index" :label="item.BANK_NAME"
-                                   :value="item.BANK_CODE"></el-option>
-                    </el-select>
-                </el-form-item>
-
-                <el-form-item label="开户支行">
-                    <el-input v-model="form.bankAddress"></el-input>
-                </el-form-item>
-
-                <el-form-item>
-                    <el-button type="primary" @click="onSubmits" :loading="submitButtonStat">保存</el-button>
-                </el-form-item>
-            </el-form>
-        </div>
+  <div v-loading="loading">
+    <div class="white-box">
+      <el-form ref="form"  label-width="250px" class="form-page">
+        <el-form-item label="Currency">
+          <el-select v-model="form.currency" placeholder="请选择">
+            <el-option
+              v-for="item in currencyList"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="Recharge amount">
+            <el-input v-model="form.applyAmount"></el-input>
+        </el-form-item>
+        <el-form-item>
+            <el-button type="primary" @click="onSubmits" :loading="submitButtonStat">SAVE</el-button>
+        </el-form-item>
+      </el-form>
     </div>
+  </div>
 </template>
 
 <script>
-    import Vue from 'vue'
-    import network from '@/utils/network'
-    import baseInfo from '@/utils/baseInfo'
-    import store from '@/utils/vuexStore'
-    export default {
-        name: "recharge-add",
-        mounted() {
-            this.getData()
-        },
-        data(){
-            return{
-
-                form:{
-                    applyAmount:'',
-                    bankNo:'',
-                    bankAddress:'',
-                    openBank:'',
-
-
-                },
-                loading: false,
-                allOpenBank: null,
-                submitButtonStat: false
-            }
-        },
-        methods: {
-            getData () {
-
-                network.getData(`/finance/recharge-add`).then(response => {
-                    console.log(response)
-                    this.loading = false;
-                    this.allOpenBank = response.allOpenBank;
-
-                }).catch(() => {
-                });
-
-            },
-            onSubmits() {
-                this.submitButtonStat = true
-                let path = '/finance/recharge-add'
-                let postData = {
-                    openBank: this.form.openBank,
-                    bankAddress: this.form.bankAddress,
-                    bankNo: this.form.bankNo,
-                    applyAmount: this.form.applyAmount,
-
-
-                };
-
-                return network.postData(path, postData).then(response => {
-                    console.log(response);
-                    this.$message({
-                        message: response,
-                        type: 'success'
-                    })
-                    this.submitButtonStat = false
-                    this.$router.go(-1)
-                }).catch(() => {
-                    this.submitButtonStat = false
-                })
-            },
+import Vue from 'vue'
+import network from '@/utils/network'
+import baseInfo from '@/utils/baseInfo'
+import store from '@/utils/vuexStore'
+export default {
+  name: "recharge-add",
+  mounted() {
+    this.getData()
+  },
+  data(){
+    return{
+      currencyList: {
+        'NGN': {
+          'value': 'NGN',
+          'label': 'Nigeria naira (NGN)'
         }
-
-
+      },
+      form:{
+        currency: 'NGN',
+        applyAmount: '',
+        // bankNo: '',
+        // bankAddress: '',
+        // openBank: '',
+      },
+      loading: false,
+      allOpenBank: null,
+      submitButtonStat: false
     }
+  },
+  methods: {
+    getData () {
+      network.getData(`/finance/recharge-add`).then(response => {
+        console.log(response)
+        this.loading = false;
+        this.allOpenBank = response.allOpenBank;
+      }).catch(() => {
+      });
+    },
+    onSubmits() {
+      this.submitButtonStat = true
+      let path = '/finance/recharge-add'
+      let postData = {
+        currency: this.form.currency,
+        applyAmount: this.form.applyAmount,
+      };
+      return network.postData(path, postData).then(response => {
+        // console.log(postData)
+        // console.log(response);
+        this.$message({
+          message: response,
+          type: 'success'
+        })
+        this.submitButtonStat = false
+        this.$router.go(-1)
+      }).catch(() => {
+        this.submitButtonStat = false
+      })
+    },
+  }
+}
 </script>
 
 <style scoped>
 
-</style>
+</style>

+ 51 - 29
frontendEle/src/views/finance/recharge.vue

@@ -3,49 +3,71 @@
         <div v-loading="loading">
             <div class="white-box">
                 <el-table class="withdraw-table" :data="tableData" stripe style="width: 100%;">
-
-                    <el-table-column label="创建时间">
+                    <el-table-column label="Serial Number" prop="SN" width="200px">
+                    </el-table-column>
+                    <el-table-column label="Creation time"><!-- 创建时间 -->
                         <template slot-scope="scope">
                             {{tool.formatDate(scope.row.CREATED_AT)}}
                         </template>
                     </el-table-column>
-
-                    <el-table-column label="充值金额" prop="AMOUNT">
-
+<!--                    <el-table-column label="RECHARGE ORDER ID" prop="RECHARGE_ORDER_ID" width="200px">&lt;!&ndash;PS订单ID&ndash;&gt;-->
+<!--                    </el-table-column>-->
+                    <el-table-column label="Currency" prop="CURRENCY" width="100px"><!--货币名称-->
                     </el-table-column>
-
-                    <el-table-column label="充值状态名称">
-                        <template slot-scope="scope">
-                        <el-tag :type="tool.statusType(scope.row.AUDIT_STATUS)">{{scope.row.STATUS_NAME}}</el-tag>
-                        </template>
+                    <el-table-column label="Amount" prop="AMOUNT" width="150px">
                     </el-table-column>
-                    <el-table-column label="汇款银行" prop="OPEN_BANK_NAME">
 
+                    <el-table-column label="Recharge status name" width="200px"><!-- 充值状态名称 -->
+                      <template slot-scope="scope">
+                        <el-tag :type="tool.statusType(scope.row.RECHARGE_STATUS)">{{scope.row.STATUS_NAME}}</el-tag>
+                      </template>
                     </el-table-column>
 
-                    <el-table-column label="我的汇款账号" prop="BANK_NO">
-
+                    <el-table-column label="Acitons">
+                      <template slot-scope="scope">
+                        <template v-if="scope.row.RECHARGE_STATUS==0">
+                          <el-button type="primary" plain>去支付</el-button>
+                          <el-button type="info" plain disabled>验证</el-button>
+                        </template>
+                        <template v-else-if="scope.row.RECHARGE_STATUS==1">
+                          <el-button type="info" plain disabled>已支付</el-button>
+                          <el-button type="primary" plain>验证</el-button>
+                        </template>
+                        <template v-else-if="scope.row.RECHARGE_STATUS==2">
+                          <el-button type="info" plain disabled>已支付</el-button>
+                          <el-button type="info" plain disabled>已验证</el-button>
+                        </template>
+                        <template v-else>
+                          <el-button type="danger" plain disabled>支付失败</el-button>
+                          <el-button type="danger" plain disabled>验证</el-button>
+                        </template>
+                      </template>
                     </el-table-column>
+<!--                    <el-table-column label="Remitting bank" prop="OPEN_BANK_NAME">&lt;!&ndash; 汇款银行 &ndash;&gt;-->
+
+<!--                    </el-table-column>-->
 
-                      <el-table-column label="打印凭证" width="200">
-                            <template slot-scope="scope">
-                                <el-button type="primary" size="small" @click="handleAddInvoiceShow(scope.row)"
-                                           v-if="scope.row.AUDIT_STATUS==='0'" icon="el-icon-upload">上传凭证
-                                </el-button>
+<!--                    <el-table-column label="My remittance account number" prop="BANK_NO">&lt;!&ndash; 我的汇款账号 &ndash;&gt;-->
 
-                                <el-button type="success" size="small" @click="handleInvoiceShow(scope.row)"
-                                           v-if="scope.row.AUDIT_STATUS!=='0'" icon="el-icon-view">查看凭证
-                                </el-button>
-                            </template>
-                        </el-table-column>
+<!--                    </el-table-column>-->
 
+<!--                      <el-table-column label="Print voucher" width="200">&lt;!&ndash; 打印凭证 &ndash;&gt;-->
+<!--                            <template slot-scope="scope">-->
+<!--                                <el-button type="primary" size="small" @click="handleAddInvoiceShow(scope.row)"-->
+<!--                                           v-if="scope.row.AUDIT_STATUS==='0'" icon="el-icon-upload">Upload voucher&lt;!&ndash; 上传凭证 &ndash;&gt;-->
+<!--                                </el-button>-->
 
+<!--                                <el-button type="success" size="small" @click="handleInvoiceShow(scope.row)"-->
+<!--                                           v-if="scope.row.AUDIT_STATUS!=='0'" icon="el-icon-view">View voucher&lt;!&ndash; 查看凭证 &ndash;&gt;-->
+<!--                                </el-button>-->
+<!--                            </template>-->
+<!--                        </el-table-column>-->
                 </el-table>
                 <div class="white-box-footer">
-                    <el-button type="primary" size="small" @click="handleAdd">我要充值</el-button>
+                    <el-button type="primary" size="small" @click="handleAdd">Recharge<!-- 我要充值 --></el-button>
                     <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
                 </div>
-                <el-dialog title="上传凭证" :visible.sync="dialogAddInvoiceVisible">
+                <el-dialog title="Upload voucher" :visible.sync="dialogAddInvoiceVisible"><!-- 上传凭证 -->
                     <div v-loading="dialogAddInvoiceLoading">
                         <el-alert type="warning" :closable="false">
                             <slot name="title">
@@ -58,12 +80,12 @@
                     </div>
                 </el-dialog>
 
-                <el-dialog title="查看充值凭证" :visible.sync="dialogInvoiceVisible">
+                <el-dialog title="View recharge voucher" :visible.sync="dialogInvoiceVisible"><!-- 查看充值凭证 -->
                     <div v-loading="dialogInvoiceLoading">
                         <a :href="invoiceUrl" target="_blank"><img :src="urlimg" alt="" style="max-width: 100%"></a>
                     </div>
                     <div slot="footer" class="dialog-footer">
-                        <el-button @click="dialogInvoiceVisible = false">确 定</el-button>
+                        <el-button @click="dialogInvoiceVisible = false">Confirm</el-button><!-- 确定 -->
                     </div>
                 </el-dialog>
             </div>
@@ -188,7 +210,7 @@
             handleSuccess(response, file) {
                 this.getData()
                 this.$message({
-                    message: '上传凭证完成!',
+                    message: 'Upload voucher completed!',//上传凭证完成
                     type: 'success'
                 })
                 //this.form.image = imageUrl;
@@ -215,4 +237,4 @@
 
 <style scoped>
 
-</style>
+</style>

+ 25 - 25
frontendEle/src/views/finance/withdraw-add.vue

@@ -1,9 +1,9 @@
 <template>
   <div v-loading="loading">
     <div class="white-box">
-      <el-form ref="form" :model="form" label-width="100px" style="width:500px;">
-        <el-form-item label="当前可用奖金">
-          <el-tag type="success">{{balance}}</el-tag>
+      <el-form ref="form" :model="form" label-width="200px" style="width:500px;">
+        <el-form-item label="Currently available bonus"><!-- 当前可用奖金 -->
+          <el-tag type="success">{{balance}}$</el-tag>
         </el-form-item>
         <!--<el-form-item label="当前提现比例">-->
           <!--<el-tag type="info">{{withdrawProp}}%</el-tag>-->
@@ -11,46 +11,46 @@
         <!--<el-form-item label="最大提现金额">-->
           <!--<el-tag type="info">{{maxAmount}}元</el-tag>-->
         <!--</el-form-item>-->
-        <el-form-item label="最小提现金额">
-          <el-tag type="info">{{minAmount}}</el-tag>
+        <el-form-item label="Minimum withdrawal amount"><!-- 最小提现金额 -->
+          <el-tag type="info">{{minAmount}}$</el-tag>
         </el-form-item>
-        <el-form-item label="提现手续费">
+        <el-form-item label="Withdrawal charge"><!-- 提现手续费 -->
           <el-tag type="info">{{withdrawFee}}%</el-tag>
         </el-form-item>
-        <el-form-item label="提现金额">
+        <el-form-item label="Cash withdrawal amount"><!-- 提现金额 -->
           <el-input v-model="form.applyAmount" type="number" :min="minAmount" :max="maxAmount"></el-input>
         </el-form-item>
         <el-form-item label="" v-if="isPact==='1'">
-          <el-checkbox v-model="checked"> 我已同意</el-checkbox>
-          <a @click="dialogVisible = true" href="javascript:void(0)">《服务协议》</a>
+          <el-checkbox v-model="checked"> Agreed to</el-checkbox><!-- 同意 -->
+          <a @click="dialogVisible = true" href="javascript:void(0)">《Service contract》</a><!-- 服务协议 -->
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" @click="onSubmit" :loading="submitButtonStat" :disabled="!checked">提交</el-button>
+          <el-button type="primary" @click="onSubmit" :loading="submitButtonStat" :disabled="!checked">Confirm</el-button><!-- 确定 -->
         </el-form-item>
       </el-form>
     </div>
     <el-dialog
-        title="服务协议"
+        title="Service contract"
         :visible.sync="dialogVisible">
       <div v-html="content"></div>
       <span slot="footer" class="dialog-footer">
-    <el-button @click="dialogVisible = false">取 消</el-button>
-    <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+    <el-button @click="dialogVisible = false">Cancel</el-button><!-- 取消 -->
+    <el-button type="primary" @click="dialogVisible = false">Confirm</el-button><!-- 确定 -->
   </span>
     </el-dialog>
-
+   <!-- Important notification 重要提示 -->
     <el-dialog
-      title="重要提示"
+      title="Important notification"
       :visible.sync="idCardDialogVisible">
       <div>
-        <p>因系统升级,首次提现需进行在线签约,签约成功后提现才可到账</p>
-        <p>在线签约步骤:微信扫码\手机验证码\实名认证:上传身份证正反面\合同签署:签字\完成</p>
+        <p><!-- 因系统升级,首次提现需进行在线签约,签约成功后提现才可到账 -->Due to system upgrade, the first withdrawal needs to be signed online, and the withdrawal can only be received after the signing is successful.</p>
+        <p><!-- 在线签约步骤:微信扫码\手机验证码\实名认证:上传身份证正反面\合同签署:签字\完成 -->Online signing steps: Wechat scan code, mobile phone verification code, real name authentication: upload ID card both sides, contract signing: signature completed</p>
         <p><el-image :src="idCardInfoQrCodeUrl"></el-image></p>
-        <p>如有其他疑问:请致电 <span style="color: #f75b36">400 694 1919</span></p>
+        <p><!-- 如有其他疑问:请致电 -->If you have any further questions: please call<span style="color: #f75b36">400 694 1919</span></p>
       </div>
       <span slot="footer" class="dialog-footer">
 <!--        <el-button @click="idCardDialogVisible = false">取 消</el-button>-->
-        <el-button type="primary" @click="idCardDialogVisible = false">关 闭</el-button>
+        <el-button type="primary" @click="idCardDialogVisible = false">Close</el-button><!-- 关 闭 -->
       </span>
     </el-dialog>
   </div>
@@ -120,7 +120,7 @@
       },
       getBalance() {
         this.$message({
-          message: '正获取您的奖金...',
+          message: 'Getting your bonus...',//获取您的奖金
           type: 'info'
         })
         network.getData('finance/available-balance').then(response => {
@@ -144,16 +144,16 @@
           network.getData('finance/wd-mult-point').then(response => {
               this.form.withdrawCode = response.withdrawCode
 
-              this.$prompt('请输入支付密码', '提示', {
-                  confirmButtonText: '确定',
-                  cancelButtonText: '取消',
+              this.$prompt('Please enter your payment password', 'Hint', {//'请输入支付密码', '提示'
+                  confirmButtonText: 'Confirm',//'确定'
+                  cancelButtonText: 'Cancel',//'取消'
                   inputType: 'password',
                   inputPattern: /\S+/,
-                  inputErrorMessage: '请输入支付密码',
+                  inputErrorMessage: 'Please enter your payment password',//请输入支付密码
                   beforeClose:async (action, instance, done)=>{
                       if (action === 'confirm') {
                           instance.confirmButtonLoading = true;
-                          instance.confirmButtonText = '执行中...';
+                          instance.confirmButtonText = 'executing...';//执行中
                           console.log(instance.inputValue);
                           this.form.payPassword = instance.inputValue;
                           await network.postData(path, this.form).then(response => {

+ 18 - 18
frontendEle/src/views/finance/withdraw.vue

@@ -3,45 +3,45 @@
     <div class="white-box">
       <leo-filter :filter="handleFilter" :dateRangePickerDisplay="false" :dateMonthPickerDisplay="true"></leo-filter>
       <el-table class="withdraw-table" ref="multipleTable" :data="tableData" stripe style="width: 100%;">
-        <el-table-column label="会员编号">
+        <el-table-column label="Member Code" width="120"><!-- 会员编号 -->
           <template slot-scope="scope">
             {{scope.row.USER_NAME}}
           </template>
         </el-table-column>
-        <el-table-column label="会员姓名">
+        <el-table-column label="Member Name" width="120"><!-- 会员姓名 -->
           <template slot-scope="scope">
             {{scope.row.REAL_NAME}}
           </template>
         </el-table-column>
-        <el-table-column label="提现方式">
+        <el-table-column label="Withdrawal way" width="140"><!-- 提现方式 -->
           <template slot-scope="scope">
-            {{scope.row.IS_AUTO_WITHDRAW==='1'?'自动提现':'手动提现'}}
+            {{scope.row.IS_AUTO_WITHDRAW==='1'?'Automatic withdrawal':'Manual withdrawal'}}<!-- 自动体现:手动体现 -->
           </template>
         </el-table-column>
-        <el-table-column label="提现金额" prop="AMOUNT"></el-table-column>
-        <el-table-column label="手续费" prop="FEES"></el-table-column>
-        <el-table-column label="实际到账金额" prop="REAL_AMOUNT"></el-table-column>
-        <el-table-column label="提现时间" width="180">
+        <el-table-column label="Cash withdrawal amount" prop="AMOUNT" width="200px"></el-table-column><!-- 提现金额 -->
+        <el-table-column label="Service charge" prop="FEES" width="120"></el-table-column><!-- 手续费 -->
+        <el-table-column label="Actual amount" prop="REAL_AMOUNT" width="120"></el-table-column><!-- 实际到账金额 -->
+        <el-table-column label="Withdraw time" width="120"><!-- 提现时间 -->
           <template slot-scope="scope">
             {{tool.formatDate(scope.row.CREATED_AT)}}
           </template>
         </el-table-column>
-        <el-table-column label="提现状态" width="120">
+        <el-table-column label="Withdraw state" width="120"><!-- 提现状态 -->
           <template slot-scope="scope">
             <el-tag :type="tool.statusType(scope.row.AUDIT_STATUS)">{{scope.row.STATUS_NAME}}</el-tag>
           </template>
         </el-table-column>
-        <el-table-column label="备注" width="120">
+        <el-table-column label="Note" width="120"><!-- 备注 -->
           <template slot-scope="scope">
             <el-tag :type="tool.statusType(scope.row.REMARK)">{{scope.row.REMARK}}</el-tag>
           </template>
         </el-table-column>
-        <el-table-column label="提现退回备注" width="120">
+        <el-table-column label="Note Returned for withdrawal" width="220"><!-- 提现退回备注 -->
           <template slot-scope="scope">
             <el-tag :type="tool.statusType(scope.row.BACK_REMARK)">{{scope.row.BACK_REMARK}}</el-tag>
           </template>
         </el-table-column>
-        <el-table-column label="付款时间" width="180">
+        <el-table-column label="Payment time" width="180"><!-- 付款时间 -->
           <template slot-scope="scope">
             {{tool.formatDate(scope.row.PAID_AT)}}
           </template>
@@ -74,7 +74,7 @@
             <!--</el-button>-->
           <!--</template>-->
         <!--</el-table-column>-->
-        <el-table-column label="付款失败原因" width="120">
+        <el-table-column label="Reasons for payment failure" width="220"><!-- 付款失败原因 -->
           <template slot-scope="scope">
             {{scope.row.PAID_FAIL_REMARK}}
           </template>
@@ -88,11 +88,11 @@
 <!--        </el-table-column>-->
       </el-table>
       <div class="white-box-footer">
-        <el-button type="primary" size="small" @click="handleAdd">我要提现</el-button>
+        <el-button type="primary" size="small" @click="handleAdd">Withdraw</el-button><!-- 我要提现 -->
         <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
       </div>
     </div>
-    <el-dialog title="上传发票" :visible.sync="dialogAddInvoiceVisible">
+    <el-dialog title="Upload invoice" :visible.sync="dialogAddInvoiceVisible"><!-- 上传发票 -->
       <div v-loading="dialogAddInvoiceLoading">
         <el-alert type="warning" :closable="false">
           <slot name="title">
@@ -105,12 +105,12 @@
       </div>
     </el-dialog>
 
-    <el-dialog title="查看发票" :visible.sync="dialogInvoiceVisible">
+    <el-dialog title="View invoice" :visible.sync="dialogInvoiceVisible"><!-- 查看发票 -->
       <div v-loading="dialogInvoiceLoading">
         <a :href="invoiceUrl" target="_blank"><img :src="invoiceUrl" alt="" style="max-width: 100%"></a>
       </div>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="dialogInvoiceVisible = false">确 定</el-button>
+        <el-button @click="dialogInvoiceVisible = false">Confirm</el-button><!-- 确定 -->
       </div>
     </el-dialog>
 
@@ -188,7 +188,7 @@
       handleSuccess(response, file) {
         this.getData()
         this.$message({
-          message: '上传发票完成,请尽快邮寄纸质发票!',
+          message: 'Invoice uploading completed.Please post the paper invoice as soon as possible!',//上传发票完成,请尽快邮寄纸质发票!
           type: 'success'
         })
         //this.form.image = imageUrl;

+ 4 - 6
frontendEle/src/views/layout/layout.vue

@@ -14,10 +14,10 @@
         {{userName}} <i class="el-icon-caret-bottom el-icon--right"></i>
       </span>
             <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item icon="el-icon-user" @click.native="onGo('/user/index')">个人资料</el-dropdown-item>
+              <el-dropdown-item icon="el-icon-user" @click.native="onGo('/user/index')">Personal Information</el-dropdown-item><!--个人资料-->
               <!--<el-dropdown-item icon="el-icon-message" @click.native="onGo('/message/list')">站内信</el-dropdown-item>-->
 <!--              <el-dropdown-item icon="el-icon-setting" @click.native="onGo('/config/base')">个人设置</el-dropdown-item>-->
-              <el-dropdown-item icon="el-icon-switch-button" @click.native="onLogout">安全退出</el-dropdown-item>
+              <el-dropdown-item icon="el-icon-switch-button" @click.native="onLogout">Log Out</el-dropdown-item><!--安全退出-->
             </el-dropdown-menu>
           </el-dropdown>
         </div>
@@ -66,11 +66,9 @@
               </div>
             </transition>
           </li>
-
-
         </ul>
         <div style="text-align: right">
-          <el-button type="text" @click.native="onLogout">安全退出</el-button>
+          <el-button type="text" @click.native="onLogout">Log Out</el-button><!--安全退出-->
         </div>
       </el-header>
       <div :class="'breadcrumb-box '+menuClass">
@@ -228,7 +226,7 @@ export default {
         })
       } else {
         this.$message({
-          message: '暂无未读消息',
+          message: 'No Unread Message',//暂无未读消息
           type: 'warning'
         })
       }

+ 5 - 5
frontendEle/src/views/login/index.vue

@@ -7,27 +7,27 @@
     </div>
     <div class="login-box">
       <div class="white-box">
-        <h3 class="white-box-title">欢迎回来</h3>
+        <h3 class="white-box-title">Welcome</h3><!--欢迎回来-->
         <el-form ref="form" :model="loginForm" label-width="80px">
           <el-form-item label-width="0px" class="border-bottom username">
-            <el-input v-model="loginForm.userName" placeholder="账号" @change="refreshLoginVerifyStatus">
+            <el-input v-model="loginForm.userName" placeholder="UserName" @change="refreshLoginVerifyStatus"><!--账户-->
               <template slot="prepend"><!--<i class="el-icon-user"></i>--><i></i></template>
             </el-input>
           </el-form-item>
           <el-form-item label-width="0px" class="border-bottom key-name">
-            <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码">
+            <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="Password"><!--密码-->
               <template slot="prepend"><!--<i class="el-icon-lock"></i>--><i></i></template>
             </el-input>
           </el-form-item>
           <el-form-item label-width="0px" class="border-bottom key-name" v-show="isLoginVerify">
-            <el-input type="verifyCode" v-model="loginForm.verifyCode" auto-complete="off" @keyup.enter.native="onSubmit" placeholder="验证码">
+            <el-input type="verifyCode" v-model="loginForm.verifyCode" auto-complete="off" @keyup.enter.native="onSubmit" placeholder="Captcha"><!--验证码-->
               <template slot="prepend"><i></i></template>
             </el-input>
             <el-image :src="captchaUrl" @click="changeCaptcha">
             </el-image>
           </el-form-item>
           <el-form-item label-width="0px" style="border-radius: 0">
-            <el-button class="submit-button" type="primary" @click="onSubmit" :loading="submitButtonStat">登录</el-button>
+            <el-button class="submit-button" type="primary" @click="onSubmit" :loading="submitButtonStat">Login</el-button><!--登录-->
           </el-form-item>
         </el-form>
       </div>

+ 16 - 15
frontendEle/src/views/shop/dec-order-list.vue

@@ -2,25 +2,25 @@
     <div v-loading="loading">
         <div class="white-box">
             <el-table class="withdraw-table" :data="tableData" style="width: 100%;" :span-method="objectSpanMethod">
-                <el-table-column label="商品编号" prop="SKU_CODE"></el-table-column>
-                <el-table-column label="商品名称" prop="GOODS_TITLE"></el-table-column>
-                <el-table-column label="数量" prop="BUY_NUMS"></el-table-column>
-                <el-table-column label="报单金额" prop="REAL_PRICE"></el-table-column>
-                <el-table-column label="报单BV" prop="REAL_PV"></el-table-column>
-                <el-table-column label="报单编号" prop="DEC_SN"></el-table-column>
-                <el-table-column label="订单编号" prop="ORDER_SN"></el-table-column>
-                <el-table-column label="会员编号" prop="USER_NAME"></el-table-column>
-                <el-table-column label="会员姓名" prop="REAL_NAME"></el-table-column>
-                <el-table-column label="收货地址" prop="ADDRESS"></el-table-column>
-                <el-table-column label="接点人编号" prop="CON_USER_NAME"></el-table-column>
-                <el-table-column label="创建时间">
+				    <el-table-column width="120" label="Product code" prop="SKU_CODE"></el-table-column><!--商品编号-->
+                <el-table-column width="120" label="Product Name" prop="GOODS_TITLE"></el-table-column><!--商品名称-->
+                <el-table-column width="120" label="Quantity" prop="BUY_NUMS"></el-table-column><!--数量-->
+                <el-table-column width="120" label="Entry Price" prop="REAL_PRICE"></el-table-column><!--报单金额-->
+                <el-table-column label="Entry BV" prop="REAL_PV"></el-table-column><!--报单BV-->
+                <el-table-column width="120" label="Entry code" prop="DEC_SN"></el-table-column><!--报单编号-->
+                <el-table-column width="120" label="Order code" prop="ORDER_SN"></el-table-column><!--订单编号-->
+                <el-table-column width="120" label="Member code" prop="USER_NAME"></el-table-column><!--会员编号-->
+                <el-table-column width="120" label="Menber name" prop="REAL_NAME"></el-table-column><!--会员姓名-->
+                <el-table-column width="150" label="Receiving address" prop="ADDRESS"></el-table-column><!--收货地址-->
+                <el-table-column width="120" label="Sponsor code" prop="CON_USER_NAME"></el-table-column><!--接点人编号-->
+                <el-table-column width="150" label="Created time"><!--创建时间-->
                     <template slot-scope="scope">
                         {{tool.formatDate(scope.row.CREATED_AT)}}
                     </template>
-                </el-table-column>
-                <el-table-column label="操作">
+                </el-table-column >
+                <el-table-column width="120" label="Action"><!--操作-->
                     <template slot-scope="scope">
-                        <el-button type="primary" size="small" @click.native="handleOrderExportPDF(scope.row.ORDER_SN)">导出PDF</el-button>
+                        <el-button type="primary" size="small" @click.native="handleOrderExportPDF(scope.row.ORDER_SN)">Export PDF</el-button><!--导出PDF-->
                     </template>
                 </el-table-column>
             </el-table>
@@ -164,4 +164,5 @@
 
 <style scoped>
 
+
 </style>

+ 7 - 7
frontendEle/src/views/shop/index.vue

@@ -13,30 +13,30 @@
                               {{tool.formatDate(scope.row.CREATED_AT)}}
                           </template>
                       </el-table-column> -->
-                      <el-table-column label="商品名称" prop="GOODS_NAME">
+                      <el-table-column label="Product Name" prop="GOODS_NAME"><!--商品名称-->
 
                       </el-table-column>
 
-                      <el-table-column label="图片" >
+                      <el-table-column label="Product picture" ><!--图片-->
                         <template slot-scope="scope">
                           <img :src="scope.row.COVER" alt="" style="width:100px" >
                         </template>
                       </el-table-column>
 
-                      <el-table-column label="商品价格" prop="SELL_PRICE">
+                      <el-table-column label="Product price" prop="SELL_PRICE"><!--商品价格-->
                           <template slot-scope="scope">
                               <span>{{ Math.round(scope.row.SELL_PRICE * 100) / 100 }}</span>
                           </template>
                       </el-table-column>
-                      <el-table-column label="价格BV" prop="PRICE_PV" v-if="goodsCategory === '1'">
+                      <el-table-column label="Product BV" prop="PRICE_PV" v-if="goodsCategory === '1'"><!--价格PV-->
                           <template slot-scope="scope">
                               <span>{{ Math.round(scope.row.PRICE_PV * 100) / 100 }}</span>
                           </template>
                       </el-table-column>
-                      <el-table-column label="库存" prop="STORE_NUMS">
+                      <el-table-column label="Inventory" prop="STORE_NUMS"><!--库存-->
                       </el-table-column>
 
-                      <el-table-column label="数量"  width="155">
+                      <el-table-column label="Quantity"  width="155"><!--数量-->
                         <template slot-scope="scope">
                           <el-input-number size="mini" v-model="numList[scope.$index]"  :min="0" :max="Number(scope.row.STORE_NUMS)" @change="(val)=>{handleInputNumber(val, scope.row)}"></el-input-number>
                         </template>
@@ -46,7 +46,7 @@
                 </el-tab-pane>
             </el-tabs>
             <div class="white-box-footer">
-                <el-button @click="goToAccounts()">去结算</el-button>
+                <el-button @click="goToAccounts()">Settle accounts</el-button><!--去结算-->
                 <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
             </div>
         </div>

+ 15 - 15
frontendEle/src/views/shop/order-list.vue

@@ -2,33 +2,33 @@
     <div v-loading="loading">
         <div class="white-box">
             <el-table class="withdraw-table" :data="tableData" style="width: 100%;" :span-method="objectSpanMethod">
-              <el-table-column label="商品编号" prop="SKU_CODE"></el-table-column>
-              <el-table-column label="商品名称" prop="GOODS_TITLE"></el-table-column>
-                <el-table-column label="数量" prop="BUY_NUMS"></el-table-column>
-                <el-table-column label="会员价格">
+              <el-table-column width="120" label="Product code" prop="SKU_CODE"></el-table-column><!--商品编号-->
+              <el-table-column width="120" label="Product Name" prop="GOODS_TITLE"></el-table-column><!--商品名称-->
+                <el-table-column width="120" label="Quantity" prop="BUY_NUMS"></el-table-column><!--数量-->
+                <el-table-column width="120" label="Product price"><!--商品价格-->
                     <template slot-scope="props">
                         {{ Math.round(props.row.REAL_PRICE * props.row.BUY_NUMS * 100) / 100 }}
                     </template>
                 </el-table-column>
-                <el-table-column label="会员BV">
+                <el-table-column width="120" label="Product BV"><!--商品BV-->
                     <template slot-scope="props">
                         <span v-if="![4, 5, 6].includes(props.row.CATEGORY_TYPE)">{{ Math.round(props.row.REAL_PV * props.row.BUY_NUMS * 100) / 100 }}</span>
                         <span v-else>0</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="商品分类" prop="CATEGORY"></el-table-column>
-                <el-table-column label="订单编号" prop="SN"></el-table-column>
-                <el-table-column label="会员编号" prop="USER_NAME"></el-table-column>
-                <el-table-column label="会员姓名" prop="REAL_NAME"></el-table-column>
-                <el-table-column label="收货人" prop="CONSIGNEE"></el-table-column>
-                <el-table-column label="收货电话" prop="MOBILE"></el-table-column>
-                <el-table-column label="地址" prop="FULL_ADDRESS"></el-table-column>
+                <el-table-column width="150" label="Product category" prop="CATEGORY"></el-table-column><!--商品分类-->
+                <el-table-column width="120" label="Order Code" prop="SN"></el-table-column><!--订单编号-->
+                <el-table-column width="120" label="Member Code" prop="USER_NAME"></el-table-column><!--会员编号-->
+                <el-table-column width="120" label="Member Name" prop="REAL_NAME"></el-table-column><!--会员姓名-->
+                <el-table-column width="130" label="Recipient name" prop="CONSIGNEE"></el-table-column><!--收货人-->
+                <el-table-column width="120" label="Phone number" prop="MOBILE"></el-table-column><!--收货电话-->
+                <el-table-column width="150" label="Receiving address" prop="FULL_ADDRESS"></el-table-column><!--收获地址-->
                 <el-table-column label="支付方式" prop="PAY_TYPE"></el-table-column>
-                <el-table-column label="支付时间" prop="PAY_AT"></el-table-column>
+                <el-table-column width="120" label="Created time" prop="PAY_AT"></el-table-column><!--支付时间-->
                 <el-table-column label="订单状态" prop="STATUS"></el-table-column>
-                <el-table-column label="操作">
+                <el-table-column width="120" label="Action"><!--操作-->
                   <template slot-scope="scope">
-                      <el-button type="primary" size="small" @click.native="handleOrderExportPDF(scope.row.SN)">导出PDF</el-button>
+                      <el-button type="primary" size="small" @click.native="handleOrderExportPDF(scope.row.SN)">Export PDF</el-button><!--导出 PDF-->
                   </template>
                 </el-table-column>
             </el-table>

+ 123 - 121
frontendEle/src/views/shop/order.vue

@@ -1,134 +1,135 @@
 <template>
-    <div>
-        <div v-loading="loading">
-            <div class="white-box">
-                <div class="table">
-                    <el-table
-                        :data="goods"
-                        style="width: 100%"
-                        show-summary
-                        :summary-method="getSummaries">
-                         <el-table-column label="商品名称" prop="GOODS_NAME">
-                        </el-table-column>
+  <div>
+      <div v-loading="loading">
+          <div class="white-box">
+              <div class="table">
+                  <el-table
+                    :data="goods"
+                    style="width: 100%"
+                    show-summary
+                    :summary-method="getSummaries">
+                     <el-table-column label="Product Name" prop="GOODS_NAME"><!--商品名称-->
+                    </el-table-column>
 
-                        <el-table-column label="图片" >
-                            <template slot-scope="scope">
-                                <img :src="scope.row.COVER" alt="" style="width:100%">
-                            </template>
-                        </el-table-column>
+                    <el-table-column label="Product picture" ><!--图片-->
+                        <template slot-scope="scope">
+                            <img :src="scope.row.COVER" alt="" style="width:100%">
+                        </template>
+                    </el-table-column>
 
-                        <el-table-column label="会员价格" prop="member_price">
-                            <template slot-scope="scope">
-                                <span>{{ Math.round(scope.row.member_price * 100) / 100 }}</span>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="会员BV" prop="member_pv" v-if="category_type === 1">
-                            <template slot-scope="scope">
-                                <span>{{ Math.round(scope.row.member_pv * 100) / 100 }}</span>
-                            </template>
-                        </el-table-column>
-    <!--                    <el-table-column label="库存" prop="STORE_NUMS">-->
-    <!--                    </el-table-column>-->
+                    <el-table-column label="Product price" prop="member_price"><!--商品价格-->
+                        <template slot-scope="scope">
+                            <span>{{ Math.round(scope.row.member_price * 100) / 100 }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="Member BV" prop="member_pv" v-if="category_type === 1"><!--会员PV-->
+                        <template slot-scope="scope">
+                            <span>{{ Math.round(scope.row.member_pv * 100) / 100 }}</span>
+                        </template>
+                    </el-table-column>
+<!--                    <el-table-column label="库存" prop="STORE_NUMS">-->
+<!--                    </el-table-column>-->
 
-                        <el-table-column label="数量" prop="chose_num">
+                    <el-table-column label="Quantity" prop="chose_num"><!--数量-->
 
-                        </el-table-column>
-                        <el-table-column label="合计金额" prop="member_price_plus">
-                            <template slot-scope="scope">
-                                <span>{{ Math.round(scope.row.member_price_plus * 100) / 100 }}</span>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="合计BV" prop="member_pv_plus" v-if="category_type === 1">
-                            <template slot-scope="scope">
-                                <span>{{ Math.round(scope.row.member_pv_plus * 100) / 100 }}</span>
-                            </template>
-                        </el-table-column>
-                    </el-table>
-                </div>
-                <div class="address_box">
-                    请选择收货地址:
-                    <el-radio-group v-model="addressId" @change='choseAddress'>
-                        <div v-for="(item , index) in all_address" :key='index' class="address">
-                            <el-radio :label="item.ID" >
-                                {{item.PROVINCE_NAME}}省 {{item.CITY_NAME}}市 {{item.COUNTY_NAME}}县&nbsp;&nbsp;&nbsp;&nbsp;
-                                详细地址:{{item.ADDRESS}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-                                收件人姓名:{{item.CONSIGNEE}}&nbsp;&nbsp;&nbsp;&nbsp;
-                                手机号码:{{item.MOBILE}}
-                            </el-radio>
-                        </div>
-                        <div class="address">
-                          <el-radio label="100000000000000000">自提</el-radio>
-                        </div>
-                    </el-radio-group>
-                </div>
-                <div class="address_box">
-                    请选择支付方式:
-                    <el-radio-group v-model="payType" @change='chosePayType'>
-                        <div v-for="(item, index) in payList" :key='index' class="address">
-                            <el-radio :label="item.label">{{ item.name }}</el-radio>
-                        </div>
-                    </el-radio-group>
-                </div>
-                <div class="box address_box">
-                    订单合计:
-                    <div class="sum">
-                        <div class="sum_box" v-if="category_type === 1">
-                            <div>运费</div>
-                            <div><span v-if="category_type === 1">{{ prefixSign }}</span> {{ payType === "cash" ? freight : pointFreight }} <span v-if="category_type === 1">{{ unit }}</span></div>
+                    </el-table-column>
+                    <el-table-column label="Total Amount" prop="member_price_plus"><!--合计金额-->
+                        <template slot-scope="scope">
+                            <span>{{ Math.round(scope.row.member_price_plus * 100) / 100 }}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="Total BV" prop="member_pv_plus" v-if="category_type === 1"><!--合计PV-->
+                        <template slot-scope="scope">
+                            <span>{{ Math.round(scope.row.member_pv_plus * 100) / 100 }}</span>
+                        </template>
+                    </el-table-column>
+                  </el-table>
+              </div>
+              <div class="address_box">
+                Please select the shipping address:	<!--  请选择收货地址 -->
+                <el-radio-group v-model="addressId" @change='choseAddress'>
+                    <div v-for="(item , index) in all_address" :key='index' class="address">
+                        <el-radio :label="item.ID" >
+                          Full address:{{item.ADDRESS}} {{item.CITY_NAME}} {{item.LGA_NAME}} {{item.PROVINCE_NAME}}  &nbsp;&nbsp;&nbsp;&nbsp;
+                          <!-- 详细地址 -->  &nbsp;&nbsp;
+                          <!-- 收件人姓名 -->  Recipient name:{{item.CONSIGNEE}}&nbsp;&nbsp;&nbsp;&nbsp;
+                           <!-- 手机号码 --> Phone number:{{item.MOBILE}}
+                        </el-radio>
+                    </div>
+                    <div class="address">
+                      <el-radio label="100000000000000000">Self Pick-up</el-radio><!--自提-->
+                    </div>
+                </el-radio-group>
+              </div>
+              <div class="address_box">
+                Please select payment method:<!-- 请选择支付方式 -->
+                <el-radio-group v-model="payType" @change='chosePayType'>
+                    <div v-for="(item, index) in payList" :key='index' class="address">
+                        <el-radio :label="item.label">{{ item.name }}</el-radio>
+                    </div>
+                </el-radio-group>
+              </div>
+
+              <div class="box address_box">
+                Total orders:<!-- 订单合计 -->
+                  <div class="sum">
+                    <div class="sum_box" v-if="category_type === 1">
+                        <div>Freight</div><!-- 运费 -->
+                        <div><span v-if="category_type === 1">{{ prefixSign }}</span> {{ payType === "cash" ? freight : pointFreight }} <span v-if="category_type === 1">{{ unit }}</span></div>
+                    </div>
+                    <div class="sum_box">
+                        <div>Amount paid</div><!-- 实付金额 -->
+                        <div><span v-if="category_type === 1">{{ prefixSign }}</span> {{ payType === "cash" ? cashSum : pointsSum }} <span v-if="category_type === 1">{{ unit }}</span></div>
+                    </div>
+                  </div>
+              </div>
+
+              <div class="box address_box">
+                Account Balance:	<!-- 账户余额 -->
+                <div class="sum">
+                    <div v-if="category_type === 1">
+<!--                        <div class="sum_box">-->
+<!--                            <div>账户积分</div>-->
+<!--                            <div>{{ balance.points }}</div>-->
+<!--                        </div>-->
+                        <div class="sum_box">
+                            <div>Account Balance</div><!-- 账户余额 -->
+                            <div>$ {{ balance.cash }} US</div>
                         </div>
                         <div class="sum_box">
-                            <div>实付金额</div>
-                            <div><span v-if="category_type === 1">{{ prefixSign }}</span> {{ payType === "cash" ? cashSum : pointsSum }} <span v-if="category_type === 1">{{ unit }}</span></div>
+                            <div>Exchange points</div><!-- 兑换点数 -->
+                            <div>{{ balance.exchange }}</div>
                         </div>
                     </div>
-                </div>
-
-                <div class="box address_box">
-                    账户余额:
-                    <div class="sum">
-                        <div v-if="category_type === 1">
-    <!--                        <div class="sum_box">-->
-    <!--                            <div>账户积分</div>-->
-    <!--                            <div>{{ balance.points }}</div>-->
-    <!--                        </div>-->
-                            <div class="sum_box">
-                                <div>账户余额</div>
-                                <div>¥{{ balance.cash }}元</div>
-                            </div>
-                            <div class="sum_box">
-                                <div>兑换点数</div>
-                                <div>{{ balance.exchange }}</div>
-                            </div>
-                        </div>
 
-                        <div v-if="category_type === 4">
-                            <div class="sum_box">
-                                <div>旅游积分</div>
-                                <div>{{ balance.travel_points }}</div>
-                            </div>
+                    <div v-if="category_type === 4">
+                        <div class="sum_box">
+                            <div>Travel bonus</div><!-- 旅游积分 -->
+                            <div>{{ balance.travel_points }}</div>
                         </div>
+                    </div>
 
-                        <div v-if="category_type === 5">
-                            <div class="sum_box">
-                                <div>名车积分</div>
-                                <div>{{ balance.car_points }}</div>
-                            </div>
+                    <div v-if="category_type === 5">
+                        <div class="sum_box">
+                            <div>Car bonus</div><!-- 名车积分 -->
+                            <div>{{ balance.car_points }}</div>
                         </div>
+                    </div>
 
-                        <div v-if="category_type === 6">
-                            <div class="sum_box">
-                                <div>豪宅积分</div>
-                                <div>{{ balance.house_points }}</div>
-                            </div>
+                    <div v-if="category_type === 6">
+                        <div class="sum_box">
+                            <div>House bonus</div><!-- 豪宅积分 -->
+                            <div>{{ balance.house_points }}</div>
+  			</div>
                         </div>
                     </div>
                 </div>
 
                 <div>
-                    <el-button type="primary" @click="goToAccounts()" :loading="submitButtonStat">去结算</el-button>
+                    <el-button type="primary" @click="goToAccounts()" :loading="submitButtonStat">Settle accounts</el-button><!--去结算-->
                 </div>
-            </div>
-        </div>
+              </div>
+          </div>
 
         <el-dialog title="订单支付" v-if="visible" :visible.sync="visible" width="30%" v-loading="payStackLoading" :before-close="handleClose">
             <section>
@@ -193,8 +194,8 @@
                 payPassword:'',
                 submitButtonStat:false,
                 category_type: '',
-                prefixSign: '',
-                unit: '',
+                prefixSign: '$',
+                unit: 'US',
 
                 visible: false,
                 payStackLoading: false,
@@ -262,7 +263,7 @@
               const sums = [];
               columns.forEach((column, index) => {
                 if (index === 0) {
-                  sums[index] = '合计';
+                  sums[index] = 'Total';// 合计
                   return;
                 }
                 const values = data.map(item => Number(item[column.property]));
@@ -299,7 +300,7 @@
                 }
 
                 // 提示信息
-                let tips = '余额'
+                let tips = 'Balance' //余额
                 if (this.payType !== 'cash' && this.payType !== 'pay_stack') {
                     let payObj = this.payList.find((item) => {
                         return item.label === this.payType
@@ -309,9 +310,9 @@
 
                 // 余额是否充足
                 if ((amountBalance > 0) && (this.payType !== 'pay_stack') && ((amountBalance - this.cashSum) < 0)) {
-                    let tips = this.payList[this.payType] ? this.payList[this.payType].label : '余额'
+                    let tips = this.payList[this.payType] ? this.payList[this.payType].label : 'Balance'
                     this.$message({
-                        message: tips + '不足,无法购买商品',
+                        message: tips + ' insufficient, unable to buy products', // 不足,无法购买商品
                         type: 'error'
                     })
                     this.submitButtonStat = false
@@ -319,12 +320,13 @@
                 }
 
                 this.submitButtonStat = true
-                this.$prompt('请输入支付密码', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
+                // let path = 'sure-order'
+                this.$prompt('Please enter your payment password', 'Hint', {//'请输入支付密码', '提示'
+                    confirmButtonText: 'Confirm',//确定
+                    cancelButtonText: 'Cancel',//取消
                     inputType: 'password',
                     inputPattern: /\S+/,
-                    inputErrorMessage: '请输入支付密码'
+                    inputErrorMessage: 'Please enter your payment password'//请输入支付密码
                 }).then(({value}) => {
                     this.payPassword = value
                     let params = {

+ 25 - 25
frontendEle/src/views/shop/reconsume-order.vue

@@ -7,29 +7,29 @@
                     style="width: 100%"
                     show-summary
                     :summary-method="getSummaries">
-                     <el-table-column label="商品名称" prop="GOODS_NAME">
+                     <el-table-column label="Product Name" prop="GOODS_NAME"><!-- 商品名称 -->
                     </el-table-column>
 
-                    <el-table-column label="图片" >
+                    <el-table-column label="Product picture" ><!--图片-->
                         <template slot-scope="scope">
                             <img :src="scope.row.COVER" alt="" style="width:100%">
                         </template>
                     </el-table-column>
 
-                    <el-table-column label="会员价格" prop="member_price">
+                    <el-table-column label="Product price" prop="member_price"><!--会员价格-->
                     </el-table-column>
-                    <el-table-column label="会员BV" prop="member_pv">
+                    <el-table-column label="Member BV" prop="member_pv"><!--会员BV-->
                     </el-table-column>
 <!--                    <el-table-column label="库存" prop="STORE_NUMS">-->
 <!--                    </el-table-column>-->
 
-                    <el-table-column label="数量" prop="chose_num">
+                    <el-table-column label="Quantity" prop="chose_num"><!--数量-->
 
                     </el-table-column>
-                    <el-table-column label="合计金额" prop="member_price_plus">
+                    <el-table-column label="Total Amount" prop="member_price_plus"><!--合金金额-->
 
                     </el-table-column>
-                    <el-table-column label="合计BV" prop="member_pv_plus"></el-table-column>
+                    <el-table-column label="Total BV" prop="member_pv_plus"></el-table-column><!--合计BV-->
                 </el-table>
             </div>
             <!--<div class="sum">-->
@@ -57,7 +57,7 @@
             <div class="box address_box">
                 <el-form ref="addrform" :model="addrform" label-width="150px" style="width:500px;">
                     <el-form-item>
-                        <template slot="label"><span class="text-danger">*</span>复消会员编号</template>
+                        <template slot="label"><span class="text-danger">*</span>Repeat sales member code</template><!--复消会员编号-->
                         <el-input v-model="userName" @change="handleChkUser">
                             <template slot="append">【{{realName}}】</template>
                         </el-input>
@@ -65,21 +65,21 @@
                     <el-form-item>
                         <template slot="label">
                             <span class="text-danger">*</span>
-                            收货人
+                            Recipient<!--收货人-->
                         </template>
                         <el-input v-model="addrform.consignee"></el-input>
                     </el-form-item>
                     <el-form-item>
                         <template slot="label">
                             <span class="text-danger">*</span>
-                            手机号
+                            Phone number<!--手机号-->
                         </template>
                         <el-input v-model="addrform.acceptMobile"></el-input>
                     </el-form-item>
                     <el-form-item prop="areaSelected">
                         <template slot="label">
                             <span class="text-danger">*</span>
-                            地区
+                            District<!--地区-->
                         </template>
                         <el-cascader
                                 size="large"
@@ -90,7 +90,7 @@
                     <el-form-item>
                         <template slot="label">
                             <span class="text-danger">*</span>
-                            详细地址
+                            Full address<!--详细地址-->
                         </template>
                         <el-input v-model="addrform.detailaddress"></el-input>
                     </el-form-item>
@@ -107,7 +107,7 @@
                 <!--</el-radio-group>-->
             </div>
             <div class="address_box">
-                请选择支付方式:
+                Please select payment method:<!--请选择支付方式-->
                 <el-radio-group v-model="payType" @change='chosePayType'>
                     <div v-for="(item , index) in payList" :key='index' class="address">
                         <el-radio :label="item.type" >
@@ -120,25 +120,25 @@
                 合计:
                 <div class="sum">
                     <div class="sum_box">
-                        <div>运费</div>
-                        <div>¥{{payType=="cash"?freight:pointFreight}}元</div>
+                        <div>Freight</div><!--运费-->
+                        <div>${{payType=="cash"?freight:pointFreight}}US</div>
                     </div>
                     <div class="sum_box">
-                        <div>实付金额</div>
-                        <div>¥{{payType=="cash"?cashSum:pointsSum}}元</div>
+                        <div>Amount paid</div><!--实付金额-->
+                        <div>${{payType=="cash"?cashSum:pointsSum}}US</div>
                     </div>
                     <!--<div class="sum_box">-->
                         <!--<div>账户积分</div>-->
                         <!--<div>{{balance.points}}</div>-->
                     <!--</div>-->
                     <div class="sum_box">
-                        <div>账户余额</div>
-                        <div>¥{{balance.cash}}元</div>
+                        <div>Account Balance</div><!--账户余额-->
+                        <div>${{balance.cash}}US</div>
                     </div>
                 </div>
             </div>
             <div>
-                <el-button @click="goToAccounts()" :loading="submitButtonStat">去结算</el-button>
+                <el-button @click="goToAccounts()" :loading="submitButtonStat">Settle accounts</el-button><!--去结算-->
             </div>
         </div>
     </div>
@@ -227,12 +227,12 @@
                 }
                 //console.log(postData);
                 this.submitButtonStat = true
-                this.$prompt('请输入支付密码', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
+                this.$prompt('Please enter your payment password', 'Hint', {//('请输入支付密码', '提示'
+                    confirmButtonText: 'Confirm',//确定
+                    cancelButtonText: 'Cancel',//取消
                     inputType: 'password',
                     inputPattern: /\S+/,
-                    inputErrorMessage: '请输入支付密码'
+                    inputErrorMessage: 'Please enter your payment password'//请输入支付密码
                 }).then(({value}) => {
                     postData.payPassword = value
                     return network.postData('shop/reconsume-sure-order',postData).then(response => {
@@ -258,7 +258,7 @@
               const sums = [];
               columns.forEach((column, index) => {
                 if (index === 0) {
-                  sums[index] = '合计';
+                  sums[index] = 'Total';//合计
                   return;
                 }
                 const values = data.map(item => Number(item[column.property]));

+ 10 - 10
frontendEle/src/views/shop/reconsume.vue

@@ -7,13 +7,13 @@
                     type="selection"
                     width="55">
                 </el-table-column>
-                <!-- <el-table-column label="创建时间"> 
+                <!-- <el-table-column label="创建时间">
                      <template slot-scope="scope">
                         {{tool.formatDate(scope.row.CREATED_AT)}}
-                    </template> 
+                    </template>
                 </el-table-column> -->
-                <el-table-column label="商品名称" prop="GOODS_NAME">
-                   
+                <el-table-column label="Product Name" prop="GOODS_NAME"> <!-- 商品名称 -->
+
                 </el-table-column>
 
                 <!--<el-table-column label="图片" >-->
@@ -22,14 +22,14 @@
                     <!--</template>-->
                 <!--</el-table-column>-->
 
-                <el-table-column label="商品价格" prop="SELL_PRICE">
+                <el-table-column label="Product price" prop="SELL_PRICE"><!-- 商品价格 -->
                 </el-table-column>
-                <el-table-column label="价格BV" prop="PRICE_PV">
+                <el-table-column label="Product BV" prop="PRICE_PV"><!-- 价格BV -->
                 </el-table-column>
-                <el-table-column label="库存" prop="STORE_NUMS">
+                <el-table-column label="Inventory" prop="STORE_NUMS"><!-- 库存 -->
                 </el-table-column>
 
-                <el-table-column label="数量"  width="155">
+                <el-table-column label="Quantity"  width="155"><!-- 数量 -->
                     <template slot-scope="scope">
                         <el-input-number size="mini" v-model="numList[scope.$index]"  :min="0" :max="Number(scope.row.STORE_NUMS)" @change="(val)=>{handleInputNumber(val, scope.row)}"></el-input-number>
                     </template>
@@ -37,7 +37,7 @@
                 </el-table-column>
             </el-table>
             <div class="white-box-footer">
-                <el-button @click="goToAccounts()">去结算</el-button>
+                <el-button @click="goToAccounts()">Settle accounts</el-button><!-- 去结算 -->
                 <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
             </div>
         </div>
@@ -104,7 +104,7 @@
                         this.$router.push({path: `/shop/reconsume-order`})
                     }
                 },0)
-                 
+
                 // if (rows) {
                 // rows.forEach(row => {
                 //     this.$refs.multipleTable.toggleRowSelection(row);

+ 79 - 57
frontendEle/src/views/user/dec.vue

@@ -2,34 +2,32 @@
     <div v-loading="loading">
         <div class="white-box">
             <el-form ref="form"  label-width="250px" class="form-page">
-                <div class="hr-tip"><span>账号信息</span></div>
+                <div class="hr-tip"><span>Account Information<!--账号信息--></span></div>
 
-                <el-form-item label="会员编号">
+                <el-form-item label="Member code"><!--会员编号-->
                     <el-input v-model="form.insertUserName"></el-input>
                 </el-form-item>
                 <el-form-item>
                     <template slot="label">
-
-                        实时报单级别
+                        Current entry level<!--实时报单级别-->
                     </template>
-                    <el-select v-model="form.decLv" placeholder="请选择报单级别" @change="selectOne($event)">
+                    <el-select v-model="form.decLv" placeholder="Select entry level" @change="selectOne($event)">
                         <el-option v-for="(item,index) in allDecLevel" :key="index" :label="item.LEVEL_NAME"
                                    :value="item.ID"></el-option>
-                    </el-select>
+                    </el-select><!--请选择报单级别-->
                 </el-form-item>
-                <el-form-item label="报单中心编号">
+                <el-form-item label="Entry Center code"><!--报单中心编号-->
                     <el-input v-model="form.decUserName"></el-input>
                 </el-form-item>
 
 
                 <el-form-item>
                     <template slot="label">
-
-                        报单方式二选一
+                        Select entry type<!--报单方式二选一-->
                     </template>
                     <el-tabs type="border-card" v-model="decWay" style="position: relative;width: 600px;">
                         <el-tab-pane name="1">
-                            <span slot="label">报单级别套餐</span>
+                            <span slot="label">Select entry Kitting products</span><!--报单级别套餐-->
                             <el-table class="table-box" :data="_tableData" stripe style="width: 100%;" highlight-current-row @current-change="handleCurrentChange">
                                 <el-table-column
                                         type="index"
@@ -44,13 +42,15 @@
                         </span>
                                     </template>
                                 </el-table-column>
-                                <el-table-column label="套餐名称" prop="PACKAGE_NAME">
+                                <el-table-column label="Kit name" prop="PACKAGE_NAME"><!-- 套餐名称 -->
 
                                 </el-table-column>
-                                <el-table-column label="套餐金额" prop="AMOUNT">
+                                <el-table-column label="Kit price" prop="AMOUNT"><!-- 套餐金额 -->
 
                                 </el-table-column>
-                                <el-table-column label="套餐BV" prop="PV">
+
+                                <el-table-column label="Kit BV" prop="PV"><!-- 套餐PV -->
+
                                     <template>
 
                                     </template>
@@ -60,12 +60,12 @@
 
                                     <!--</template>-->
                                 <!--</el-table-column>-->
-                                <el-table-column label="所属报单级别" prop="LEVEL_NAME">
+                                <el-table-column label="Entry level" prop="LEVEL_NAME"><!-- 所属报单级别 -->
                                     <template>
 
                                     </template>
                                 </el-table-column>
-                                <el-table-column label="套餐内容" prop="PACKAGE_CONTENT">
+                                <el-table-column label="Kit products" prop="PACKAGE_CONTENT"><!-- 套餐内容 -->
                                     <template >
 
                                     </template>
@@ -76,26 +76,27 @@
                                <el-button type="primary" @click="onclock" :loading="submitButton">保存</el-button>
                              </el-form-item>-->
                         </el-tab-pane>
-                        <el-tab-pane label="商品报单" name="2">
+                        <el-tab-pane label="Select entry products" name="2"><!-- 商品报单 -->
                             <el-table class="table-box" v-if="numList.length > 0" :data="tableDatas" stripe style="width: 100%;" highlight-current-row  @selection-change="handleSelectionChange">
                                 <el-table-column
                                         type="selection"
                                         width="55">
                                 </el-table-column>
 
-                                <el-table-column label="商品名称" prop="GOODS_NAME">
+                                <el-table-column label="Product Name" prop="GOODS_NAME"><!-- 商品名称 -->
 
                                 </el-table-column>
-                                <el-table-column label="商品编号" prop="GOODS_NO">
+                                <el-table-column label="Product code" prop="GOODS_NO"><!-- 商品编号 -->
 
                                 </el-table-column>
-                                <el-table-column label="卖价" prop="SELL_PRICE">
+                                <el-table-column label="Product price" prop="SELL_PRICE"><!-- 卖价 -->
 
                                 </el-table-column>
-                                <el-table-column label="BV价格" prop="PRICE_PV">
+
+                                <el-table-column label="Product BV" prop="PRICE_PV"><!-- BV价格 -->
 
                                 </el-table-column>
-                                <el-table-column label="数量" width="150">
+                                <el-table-column label="Quantity" width="150"><!-- 数量 -->
                                     <template slot-scope="scope">
                                         <el-input-number size="mini" v-model="numList[scope.$index]"  :min="0" :max="Number(scope.row.STORE_NUMS)" @change="value=>{handleChange(value,scope.row.ID)}"></el-input-number>
                                     </template>
@@ -106,97 +107,102 @@
 
                             </el-table>
                             <div class="white-box-footer flex">
-                                <el-button @click="getSum()">计算合计</el-button>
+                                <el-button @click="getSum()">Total Calculation</el-button><!--计算合计-->
                                 <div class='flex data' style="flex:1;justify-content: flex-end;">
-                                    <div style="margin-right:2rem">商品价格:¥{{sell_price_sum}}</div>
-                                    <div>商品BV:¥{{price_pv_sum}}</div>
+                                    <div style="margin-right:2rem">Product price:${{sell_price_sum}}</div><!--商品价格-->
+                                    <div>Product BV:${{price_pv_sum}}</div><!--商品BV-->
                                 </div>
                             </div>
 
                         </el-tab-pane>
                     </el-tabs>
                 </el-form-item>
-                <div class="hr-tip"><span>网络信息</span></div>
-                <el-form-item label="推荐人编号">
+                <div class="hr-tip"><span>Network Information</span></div><!--网络信息-->
+                <el-form-item label="Sponsor code"><!--推荐人编号-->
                     <el-input v-model="form.recUserName" @change="handleChkRecUser">
                         <template slot="append">【{{recRealName}}】</template>
                     </el-input>
                 </el-form-item>
 
-                <el-form-item label="接点人编号">
+                <el-form-item label="Placement code"><!--接点人编号-->
                     <el-input v-model="form.conUserName" @change="handleChkConUser">
                         <template slot="append">【{{conRealName}}】</template>
                     </el-input>
                 </el-form-item>
 
-                <el-form-item label="安置区位">
+                <el-form-item label="Placement tree"><!--安置区位-->
                     <el-radio-group v-model="form.location">
-                        <el-radio-button :label="1">左区</el-radio-button>
-                        <el-radio-button :label="2">中区</el-radio-button>
-                        <el-radio-button :label="3">右区</el-radio-button>
+                        <el-radio-button :label="1">Left</el-radio-button><!--左区-->
+                        <el-radio-button :label="2">Middle</el-radio-button><!--中区-->
+                        <el-radio-button :label="3">Right</el-radio-button><!--右区-->
                     </el-radio-group>
                 </el-form-item>
 
-                <div class="hr-tip"><span>个人资料</span></div>
+                <div class="hr-tip"><span>Personal Information<!--个人信息--></span></div>
                 <el-form-item>
                     <template slot="label">
-
-                        会员姓名
+                        Member Name<!-- 会员姓名 -->
                     </template>
                     <el-input v-model="form.realName"></el-input>
                 </el-form-item>
                 <el-form-item>
                     <template slot="label">
 
-                        会员手机
+                        Mobile number<!-- 会员手机 -->
                     </template>
                     <el-input v-model="form.mobile"></el-input>
                 </el-form-item>
+                <el-form-item>
+                  <template slot="label">
+                        Email
+                  </template>
+                  <el-input v-model="form.email"></el-input>
+                </el-form-item>
                 <el-form-item>
                     <template slot="label">
 
-                        身份证号
+                        ID<!-- 身份证号 -->
                     </template>
                     <el-input v-model="form.insertUserIdCard" maxlength="18"></el-input>
                 </el-form-item>
 
                 <el-form-item>
                     <template slot="label">
-                        登录密码
+                        Login Password<!-- 登录密码 -->
                     </template>
-                    <el-input v-model="form.password" maxlength="32" placeholder="请输入密码"></el-input>
+                    <el-input v-model="form.password" maxlength="32" placeholder="Enter password"></el-input>
                 </el-form-item>
                 <el-form-item>
                     <template slot="label">
-                        支付密码
+                        Payment Password<!-- 支付密码 -->
                     </template>
-                    <el-input v-model="form.payPassword" maxlength="32" placeholder="请输入支付密码"></el-input>
+                    <el-input v-model="form.payPassword" maxlength="32" placeholder="Enter Payment password"></el-input>
                 </el-form-item>
                 <el-form-item>
                     <template slot="label">
-                        收货人
+                        Recipient Name<!-- 收货人 -->
                     </template>
                     <el-input v-model="form.consignee"></el-input>
                 </el-form-item>
                 <el-form-item>
                     <template slot="label">
 
-                        收货人手机
+                        Phone number<!-- 收货人手机 -->
                     </template>
                     <el-input v-model="form.acceptMobile"></el-input>
                 </el-form-item>
                 <el-form-item>
                     <template slot="label">
-                      收货方式
+                      Shipping<!-- 收货方式 -->
                     </template>
                     <el-radio-group v-model="form.way" @change="wayChange">
-                      <el-radio label="express">快递</el-radio>
-                      <el-radio label="pickup">自提</el-radio>
+                      <el-radio label="express">Delivery</el-radio>
+                      <el-radio label="pickup">Self Pick-up<!--自提--></el-radio>
                     </el-radio-group>
                 </el-form-item>
                 <el-form-item prop="areaSelected">
                     <template slot="label">
-                        地区
+                        District<!-- 地区 -->
                     </template>
                     <el-cascader
                             :disabled="areaDisabled"
@@ -207,35 +213,47 @@
                 </el-form-item>
                 <el-form-item>
                     <template slot="label">
-                        详细地址
+                        Full address<!-- 详细地址 -->
                     </template>
                     <el-input :disabled="addressDisabled" v-model="form.address"></el-input>
                 </el-form-item>
+                <el-form-item>
+                  <template slot="label">
+                    City<!-- 详细地址 -->
+                  </template>
+                  <el-input :disabled="addressDisabled" v-model="form.cityName"></el-input>
+                </el-form-item>
+                <el-form-item>
+                  <template slot="label">
+                    Local Government Area<!-- 详细地址 -->
+                  </template>
+                  <el-input :disabled="addressDisabled" v-model="form.lgaName"></el-input>
+                </el-form-item>
 
-                <div class="hr-tip"><span>银行信息</span></div>
+                <div class="hr-tip"><span>Bank Info<!-- 银行信息 --></span></div>
 
-                <el-form-item label="开户行">
-                    <el-select v-model="form.openBank" placeholder="请选择开户行">
+                <el-form-item label="Bank of deposit"><!-- 开户行 -->
+                    <el-select v-model="form.openBank" placeholder="Select Bank"><!-- 请选择开户行 -->
                         <el-option v-for="(item,index) in allOpenBank" :key="index" :label="item.BANK_NAME"
                                    :value="item.BANK_CODE"></el-option>
                     </el-select>
 
                 </el-form-item>
-                <el-form-item label="银行所在地区" prop="bankAreaSelected">
+                <el-form-item label="Bank area" prop="bankAreaSelected"><!-- 银行所在地区 -->
                     <el-cascader
                             size="large"
                             :options="regionData"
                             v-model="form.bankAreaSelected">
                     </el-cascader>
                 </el-form-item>
-                <el-form-item label="开户支行">
+                <el-form-item label="Account opening branch"><!-- 开户支行 -->
                     <el-input v-model="form.bankAddress"></el-input>
                 </el-form-item>
-                <el-form-item label="银行账号">
+                <el-form-item label="Bank account No"><!-- 银行账号 -->
                     <el-input v-model="form.bankNo" maxlength="19"></el-input>
                 </el-form-item>
                 <el-form-item>
-                    <el-button type="primary" @click="onSubmit" :loading="submitButtonStat">保存</el-button>
+                    <el-button type="primary" @click="onSubmit" :loading="submitButtonStat">SAVE<!-- 保存 --></el-button>
                 </el-form-item>
             </el-form>
         </div>
@@ -296,12 +314,13 @@
                     password:'111111',
                     payPassword:'111111',
                     mobile:'',
+                    email:'',
                     packageId:'',
                     goodsId:[],
                     goodsNum:[],
                     province:'',
-                    city:'',
-                    county:'',
+                    cityName:'',
+                    lgaName:'',
                     way:"express"
                 },
                 conRealName: '-',
@@ -406,7 +425,7 @@
                 }
                 console.log(val)
                 this.multipleSelection = val;
-                
+
             },
             handleChange(value,ID) {
                 for(let i in this.multipleSelection){
@@ -446,6 +465,9 @@
                     openBank: this.form.openBank,
                     bankAddress: this.form.bankAddress,
                     mobile: this.form.mobile,
+                    email: this.form.email,
+                    cityName: this.form.cityName,
+                    lgaName: this.form.lgaName,
 
                     bankProvince: this.form.bankAreaSelected[0] ? this.form.bankAreaSelected[0] : '',
                     bankCity: this.form.bankAreaSelected[1] ? this.form.bankAreaSelected[1] : '',

+ 11 - 11
frontendEle/src/views/user/index.vue

@@ -2,30 +2,30 @@
   <div v-loading="loading">
     <div class="white-box">
       <el-tabs v-model="tabActive" style="overflow: auto">
-        <el-tab-pane label="基本信息" name="baseInfo" style="overflow: auto">
+        <el-tab-pane label="Essential Information" name="baseInfo" style="overflow: auto"><!-- 基本信息 -->
           <el-form ref="form" :model="infoData" label-width="250px" class="form-page">
-            <el-form-item label="会员编号">
+            <el-form-item label="Member code"><!-- 会员编号 -->
               <el-input v-model="infoData.USER_NAME" :disabled="true"></el-input>
             </el-form-item>
-            <el-form-item label="民族">
+<!--            <el-form-item label="民族">
               <el-select v-model="infoData.NATION" placeholder="请选择民族">
                 <el-option v-for="(item,index) in allNation" :key="index" :label="item.name"
                            :value="item.id"></el-option>
               </el-select>
-            </el-form-item>
-            <el-form-item label="会员姓名">
+            </el-form-item> -->
+            <el-form-item label="Member name"><!-- 会员姓名 -->
               <el-input v-model="infoData.REAL_NAME" :disabled="true"></el-input>
             </el-form-item>
-            <el-form-item label="身份证号">
+            <el-form-item label="ID"><!-- 身份证号 -->
               <el-input v-model="infoData.ID_CARD" :disabled="true"></el-input>
             </el-form-item>
-            <el-form-item label="手机号">
+            <el-form-item label="Phone number"><!-- 手机号 -->
               <el-input v-model="infoData.MOBILE" :disabled="true"></el-input>
             </el-form-item>
-            <el-form-item label="Email">
+            <el-form-item label="Email"><!-- Email -->
               <el-input v-model="infoData.EMAIL"></el-input>
             </el-form-item>
-            <el-form-item label="银行名称">
+<!--            <el-form-item label="银行名称">
               <el-select v-model="infoData.OPEN_BANK" placeholder="请选择银行名称">
                 <el-option v-for="(item,index) in allOpenBank" :key="index" :label="item.BANK_NAME"
                            :value="item.BANK_CODE"></el-option>
@@ -37,9 +37,9 @@
             </el-form-item>
             <el-form-item label="银行帐号">
               <el-input v-model="infoData.BANK_NO"></el-input>
-            </el-form-item>
+            </el-form-item> -->
             <el-form-item>
-              <el-button type="primary" @click="handleSubmit" :loading="submitButtonStat">保存</el-button>
+              <el-button type="primary" @click="handleSubmit" :loading="submitButtonStat">SAVE<!-- 保存 --></el-button>
             </el-form-item>
           </el-form>
         </el-tab-pane>

+ 10 - 10
frontendEle/src/views/user/password.vue

@@ -2,35 +2,35 @@
   <div v-loading="loading">
     <div class="white-box">
       <el-tabs v-model="tabActive" style="overflow: auto">
-        <el-tab-pane label="登录密码" name="password" style="overflow: auto">
+        <el-tab-pane label="Login password" name="password" style="overflow: auto"><!--登录密码-->
           <el-form ref="form" :model="passwordInfo" label-width="250px" class="form-page">
-            <el-form-item label="原登录密码">
+            <el-form-item label="Original Login password"><!--原登录密码-->
               <el-input v-model="passwordInfo.oldPassword" show-password></el-input>
             </el-form-item>
-            <el-form-item label="新登录密码">
+            <el-form-item label="New Login password"><!--新登录密码-->
               <el-input v-model="passwordInfo.password" show-password></el-input>
             </el-form-item>
-            <el-form-item label="确认新密码">
+            <el-form-item label="Confirm new password"><!--确认新密码-->
               <el-input v-model="passwordInfo.verifyPassword" show-password></el-input>
             </el-form-item>
             <el-form-item>
-              <el-button type="primary" @click="handlePasswordSubmit" :loading="passwordButtonStat">确认</el-button>
+              <el-button type="primary" @click="handlePasswordSubmit" :loading="passwordButtonStat">Confirm</el-button><!--确认-->
             </el-form-item>
           </el-form>
         </el-tab-pane>
-        <el-tab-pane label="支付密码" name="payPassword" style="overflow: auto">
+        <el-tab-pane label="Payment password" name="payPassword" style="overflow: auto"><!--支付密码-->
           <el-form ref="form" :model="payPasswordInfo" label-width="250px" class="form-page">
-            <el-form-item label="原支付密码">
+            <el-form-item label="Original payment password"><!--原支付密码-->
               <el-input v-model="payPasswordInfo.oldPassword" show-password></el-input>
             </el-form-item>
-            <el-form-item label="新支付密码">
+            <el-form-item label="New payment password"><!--新支付密码-->
               <el-input v-model="payPasswordInfo.payPassword" show-password></el-input>
             </el-form-item>
-            <el-form-item label="确认新密码">
+            <el-form-item label="Confirm new password"><!--确认新密码-->
               <el-input v-model="payPasswordInfo.verifyPassword" show-password></el-input>
             </el-form-item>
             <el-form-item>
-              <el-button type="primary" @click="handlePayPasswordSubmit" :loading="payPasswordButtonStat">确认</el-button>
+              <el-button type="primary" @click="handlePayPasswordSubmit" :loading="payPasswordButtonStat">Confirm</el-button><!--确认-->
             </el-form-item>
           </el-form>
         </el-tab-pane>