Browse Source

Merge branch 'master' into feature/calc-serve-1646

root 3 years ago
parent
commit
b2185add90

+ 1 - 0
backendApi/config/urlManagerRules.php

@@ -503,6 +503,7 @@ return [
             'POST category-add' => 'category-add',
             'GET,POST category-delete' => 'category-delete',
             'GET category-sort' => 'category-sort',
+            'POST upload' => 'upload',
         ],
     ],
     [

+ 28 - 0
backendApi/modules/v1/controllers/ArticleController.php

@@ -7,11 +7,15 @@
  */
 namespace backendApi\modules\v1\controllers;
 
+use common\helpers\Cache;
+use common\helpers\Form;
 use common\models\Article;
 use common\models\ArticleCategory;
 use common\models\forms\ArticleCategoryForm;
 use common\models\forms\ArticleForm;
+use common\models\forms\UploadForm;
 use Yii;
+use yii\web\UploadedFile;
 
 class ArticleController extends BaseController
 {
@@ -163,4 +167,28 @@ class ArticleController extends BaseController
             return static::notice('Article not exists!', 400); // 文章不存在
         }
     }
+
+    /**
+     * 上传图片
+     * @return mixed
+     * @throws \yii\base\Exception
+     * @throws \yii\db\Exception
+     * @throws \yii\web\HttpException
+     */
+    public function actionUpload() {
+        if (\Yii::$app->request->isPost) {
+            $formModel = new UploadForm();
+            $formModel->scenario = 'article';
+            $formModel->file = UploadedFile::getInstanceByName('file');
+            $formModel->token = \Yii::$app->request->request('uploadToken');;
+            if($formModel->file && $uploader = $formModel->upload()){
+                return static::notice($uploader->URL);
+            } else {
+                return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400);
+            }
+        } else {
+            $token = Cache::setUploadToken();
+            return static::notice($token);
+        }
+    }
 }

+ 26 - 2
backendEle/src/utils/editor.js

@@ -1,7 +1,10 @@
 import {CDN_IMG_URL} from './config'
+import network from "./network";
+import {SERVER_API_HTTP_TYPE,SERVER_API_DOMAIN} from '@/utils/config'
 
 const EDITOR_ROOT_URL = `${CDN_IMG_URL}/tinymce`
 const EDITOR_LANGUAGE = `${EDITOR_ROOT_URL}/langs/zh_CN.js`
+
 let fullEditor = {
   // language_url: EDITOR_LANGUAGE,
   height: 500,
@@ -16,9 +19,30 @@ let textEditor = {
   plugins: [
     'advlist autolink lists link charmap print preview anchor textcolor colorpicker',
     'searchreplace visualblocks code fullscreen',
-    'insertdatetime media table contextmenu paste code help'
+    'insertdatetime media table contextmenu paste image  code help'
   ],
-  toolbar: 'undo redo |  formatselect | bold italic backcolor forecolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | help'
+  toolbar: 'undo redo |  formatselect | bold italic backcolor forecolor | link image  | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | removeformat | preview | help',
+  automatic_uploads: false,
+  image_title: false,
+  image_description: false,
+  images_upload_base_path: 'ad',
+  images_upload_handler: (blobInfo, success, failure) => {
+      const handler = async () => {
+          let token = await network.getData('file/token');
+
+          let params = new FormData()
+          params.append('file', blobInfo.blob())
+          params.append('uploadToken', token)
+          await network.postData('ad/upload', params).then(response => {
+              let imageUrl = SERVER_API_HTTP_TYPE + SERVER_API_DOMAIN + '/uploads/' + response;
+              success(imageUrl)
+          }).catch(error => {
+              failure(error)
+          })
+      }
+
+      handler();
+  },
 }
 
 export {

+ 2 - 9
backendEle/src/utils/tool.js

@@ -2,8 +2,8 @@ import errorCode from './errorCode'
 import baseInfo from './baseInfo'
 import userInfo from './userInfo'
 import router from '@/router'
-import {PRICE_IS_ROUND,SERVER_API_DOMAIN} from './config'
-import ElementUI from 'element-ui'
+import network from '@/utils/network'
+import {PRICE_IS_ROUND, SERVER_API_DOMAIN} from './config'
 
 let tool = {
   /**
@@ -262,13 +262,6 @@ let tool = {
       window.location.href = window.location.href.replace(searchStr, '$1$2'+value+'$4')
     }
   },
-
-  imageRenderSoup(cover) {
-    return cover.indexOf(SERVER_API_DOMAIN) > 0
-  },
-  imageRenderLang(cover) {
-    return SERVER_API_DOMAIN + '/uploads/' + cover
-  }
 }
 
 export default tool

+ 1 - 6
backendEle/src/views/ad/list.vue

@@ -5,12 +5,7 @@
                 @selection-change="handleSelectionChange" @row-click="handleExpand">
         <el-table-column type="expand">
           <template slot-scope="scope">
-            <a v-if="scope.row.TYPE === '1'" :href="getHref(scope.row.CONTENT)" target="_blank" class="islide">
-                <img :src="getImage(scope.row.IMAGE)" width="100px" height="100px" :alt="scope.row.TITLE">
-            </a>
-            <router-link v-else :to="`/article/detail/${scope.row.CONTENT}`" target="_blank" class="islide">
-                <img :src="getImage(scope.row.IMAGE)" width="100px" height="100px" :alt="scope.row.TITLE">
-            </router-link>
+              <img :src="getImage(scope.row.IMAGE)" width="100%" height="100%" :alt="scope.row.TITLE">
           </template>
         </el-table-column>
         <el-table-column type="selection" width="55"></el-table-column>

+ 21 - 21
backendEle/src/views/article/category.vue

@@ -15,29 +15,29 @@
             {{tool.formatDate(scope.row.CREATED_AT)}}
           </template>
         </el-table-column>
-        <el-table-column fixed="right" label="Action" width="180"><!--操作-->
-          <template slot-scope="scope">
-            <el-dropdown size="small" trigger="click">
-              <el-button type="primary" size="small" @click.stop="">
-                Action<i class="el-icon-arrow-down el-icon--right"></i>
-              </el-button>
-              <el-dropdown-menu slot="dropdown">
-                <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-column fixed="right" label="Action" width="180">&lt;!&ndash;操作&ndash;&gt;-->
+<!--          <template slot-scope="scope">-->
+<!--            <el-dropdown size="small" trigger="click">-->
+<!--              <el-button type="primary" size="small" @click.stop="">-->
+<!--                Action<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
+<!--              </el-button>-->
+<!--              <el-dropdown-menu slot="dropdown">-->
+<!--                <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-dropdown size="small" trigger="click">
-          <el-button type="primary" size="small">
-            Selected data<!--所选数据--><i class="el-icon-arrow-down el-icon--right"></i>
-          </el-button>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item command="delete" @click.native="handleMuliDel()">Delete</el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
-        <el-button type="primary" size="small" @click="handleAdd">New category</el-button><!--新建分类-->
+<!--        <el-dropdown size="small" trigger="click">-->
+<!--          <el-button type="primary" size="small">-->
+<!--            Selected data&lt;!&ndash;所选数据&ndash;&gt;<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>-->
+<!--          </el-button>-->
+<!--          <el-dropdown-menu slot="dropdown">-->
+<!--            <el-dropdown-item command="delete" @click.native="handleMuliDel()">Delete</el-dropdown-item>-->
+<!--          </el-dropdown-menu>-->
+<!--        </el-dropdown>-->
+<!--        <el-button type="primary" size="small" @click="handleAdd">New category</el-button>&lt;!&ndash;新建分类&ndash;&gt;-->
         <el-pagination
           @size-change="handleSizeChange"
           @current-change="handleCurrentChange"

+ 4 - 0
backendEle/src/views/article/detail.vue

@@ -16,6 +16,7 @@ import Vue from 'vue'
 import network from '@/utils/network'
 import tool from '@/utils/tool'
 import store from '@/utils/vuexStore'
+import {SERVER_API_HTTP_TYPE,SERVER_API_DOMAIN} from '@/utils/config'
 
 export default {
   name: 'article_detail',
@@ -46,6 +47,9 @@ export default {
         this.loading = false
       })
     },
+    getLink(fileUrl) {
+      return fileUrl.indexOf('http') > -1 ? fileUrl : SERVER_API_HTTP_TYPE + SERVER_API_DOMAIN + '/uploads/' + fileUrl;
+    },
   }
 }
 

+ 14 - 1
backendEle/src/views/article/index.vue

@@ -3,7 +3,20 @@
     <div class="white-box">
       <el-table :data="tableData" stripe style="width: 100%;" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55"></el-table-column>
-        <el-table-column label="Title" prop="TITLE"></el-table-column><!--标题-->
+        <el-table-column label="ID" prop="ID">
+          <template slot-scope="scope">
+            <router-link :to="`/article/detail/${scope.row.ID}`" target="_blank" class="islide">
+              <span>{{ scope.row.ID }}</span>
+            </router-link>
+          </template>
+        </el-table-column>
+        <el-table-column label="Title" prop="TITLE">
+          <template slot-scope="scope">
+            <router-link :to="`/article/detail/${scope.row.ID}`" target="_blank" class="islide">
+              <span>{{ scope.row.TITLE }}</span>
+            </router-link>
+          </template>
+        </el-table-column><!--标题-->
         <el-table-column label="Category"><!--分类-->
           <template slot-scope="scope">
             {{allData.allCategory[scope.row.CID].CATE_NAME}}

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

@@ -74,7 +74,7 @@ class ArticleForm extends Model
             } elseif($this->scenario == 'edit') {
                 $model = Article::findOne(['ID'=>$this->id]);
             } else {
-                $this->addError('edit', '提交场景不存在');
+                $this->addError('edit', 'Scenario not exists');// 提交场景不存在
                 return null;
             }
             $model->TITLE = $this->title;

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

@@ -94,7 +94,7 @@ class OrderForm extends Model
             'status' => '状态',
             'remark' => '备注',
             'type' => '订单类型',
-            'addressId' => '收货地址',
+            'addressId' => 'Shipping address',// 收货地址
             'payType' => '支付方式',
             'goodsId' => 'product ID',//商品ID
             'goodsNum' => 'Product quantity',//商品数量

+ 10 - 6
common/models/forms/UploadForm.php

@@ -9,6 +9,7 @@ use common\helpers\Excel;
 use common\helpers\Form;
 use common\helpers\http\RemoteUploadApi;
 use common\helpers\ocr\OcrApi;
+use common\helpers\Tool;
 use common\helpers\user\Info;
 use common\models\ExcelAddUser;
 use common\models\ExcelImport;
@@ -66,6 +67,7 @@ class UploadForm extends Model {
             'invoiceFront' => ['file', 'token', 'remark', 'withdrawId'],
             'proveFront' => ['file', 'token', 'rechargeId'],
             'ad' => ['file', 'token'],
+            'article' => ['file', 'token'],
             'excel' => ['file', 'token', 'excelOption'],
             'goodsImg' => ['file', 'token'],
         ];
@@ -170,21 +172,23 @@ class UploadForm extends Model {
                         'md5' => $uploadResult['md5'] ?? null,
                     ];
                 } else {
-                    throw new Exception('文件远程上传失败');
+                    throw new Exception('Remote service error');
                 }
                 // 删除本地临时文件
                 unlink($this->file->tempName);
             } else {
+                // 生成文件名
+                $fileName = Tool::generateId(false);
                 // 保存在本地
-                $localPath = \Yii::getAlias('@common/runtime/uploads/') . $this->file->baseName . '.' . $this->file->extension;
+                $localPath = \Yii::getAlias('@common/runtime/uploads/') . $fileName . '.' . $this->file->extension;
                 if (!$this->file->saveAs($localPath)) {
-                    throw new Exception('文件保存失败');
+                    throw new Exception('Failed');
                 }
                 $uploadInfo = [
-                    'fileName' => $this->file->baseName . '.' . $this->file->extension,
+                    'fileName' => $fileName . '.' . $this->file->extension,
                     'category' => $uploadCategory,
 //                    'url' => $localPath,
-                    'url' => $this->file->baseName . '.' . $this->file->extension,
+                    'url' => $fileName . '.' . $this->file->extension,
                     'fileSize' => null,
                     'md5' => null,
                 ];
@@ -200,7 +204,7 @@ class UploadForm extends Model {
             $uploads->REMARK = $uploadRemark;
             $uploads->CREATED_AT = Date::nowTime();
             if (!$uploads->save()) {
-                throw new Exception('上传文件信息保存失败');
+                throw new Exception('Save error');
             }
             // 如果是上传发票,更新发票信息,并绑定提现记录
             if ($this->scenario == 'invoiceFront') {

+ 1 - 1
frontendApi/modules/v1/controllers/ArticleController.php

@@ -90,7 +90,7 @@ class ArticleController extends BaseController
             }
             return static::notice($data);
         } else {
-            return static::notice('文章不存在', 400);
+            return static::notice('The article does not exist', 400);// 文章不存在
         }
     }
 }

+ 2 - 1
frontendApi/modules/v1/controllers/ShopController.php

@@ -146,7 +146,7 @@ class ShopController extends BaseController {
         if (\Yii::$app->request->isPost) {
             $formModel = new OrderForm();
             $formModel->scenario = 'userOrder';
-            $formModel->remark = '复销备注';
+            $formModel->remark = 'FX';//复销备注
             $post = \Yii::$app->request->post();
             $post['type'] = DeclarationForm::TYPE_FX;
             if ($formModel->load($post, '') && $order = $formModel->add()) {
@@ -392,6 +392,7 @@ class ShopController extends BaseController {
 //                $data['list'][$key]['FULL_ADDRESS'] .= Region::getCnName($value['COUNTY']);
 //            }
             $data['list'][$key]['TAX_AMOUNT'] = Tool::formatPrice(($value['REAL_PRICE'] - $value['REAL_PRICE'] / (1 + $value['TAX_RATE'] / 100)) * $value['BUY_NUMS']);
+            $data['list'][$key]['TOTAL_AMOUNT'] = Tool::formatPrice($value['REAL_PRICE'] * $value['BUY_NUMS']);
         }
 
         return static::notice($data);

+ 1 - 1
frontendEle/src/components/Uploader.vue

@@ -94,7 +94,7 @@
     methods: {
       uploaderHandleBefore() {
         this.$message({
-          message: '正在上传,请稍后。请勿关闭窗口!',
+          message: 'Uploading, please hold on. Do not close the window!', // 正在上传,请稍后。请勿关闭窗口!
           type: 'warning',
           duration: 0,
         })

+ 14 - 12
frontendEle/src/views/atlas/network.vue

@@ -2,10 +2,10 @@
   <div v-loading="loading">
     <div class="white-box">
       <div class="filter-user" @keyup.enter="enterToGetData()" >
-        <el-input v-model="mainUserName" size="small" style="width:300px;">
+        <el-input v-model="mainUserName" size="small" style="width:300px;" class="top-member">
           <template slot="prepend">Top Member</template>
         </el-input>
-        <el-input v-model="expandDeep" size="small" style="width:200px;">
+        <el-input v-model="expandDeep" size="small" style="width:200px;" class="spread-depth">
           <template slot="prepend">Spread depth</template>
         </el-input>
         <el-input v-model="periodNum" size="small" style="width:150px;" v-show="false">
@@ -52,11 +52,11 @@ export default {
     return {
       loading: true,
       tabActiveName: 'first',
-      //relation
+      // relation
       props: {
         label: 'USER_NAME',
         children: 'children',
-        //isLeaf: 'leaf',
+        // isLeaf: 'leaf',
         icon: 'icon',
       },
       treeData: null,
@@ -86,8 +86,8 @@ export default {
       this.$message({
         message: 'Retrieving data, please wait.', // 正在获取数据,请稍后
       })
-      //this.periodNum = baseInfo.nowPeriodNum()
-      //this.filterForm.periodNum = baseInfo.nowPeriodNum()
+      // this.periodNum = baseInfo.nowPeriodNum()
+      // this.filterForm.periodNum = baseInfo.nowPeriodNum()
       this.getMainData(null,true)
     },
     getMainData (userName = null, getList = false) {
@@ -106,7 +106,7 @@ export default {
         thisObj.treeData = response
         thisObj.topDeep = Number(response[0].TOP_NETWORK_DEEP)
         thisObj.listPeriodNum = response[0].listPeriodNum
-        if(getList) thisObj.getListData()
+        if (getList) thisObj.getListData()
         thisObj.loading = false
       }).catch(response => {
         thisObj.loading = false
@@ -137,8 +137,8 @@ export default {
         thisData.isExpanded = true
       })
     },
-    countTopDeep (deep,topDeep){
-      return Number(deep)-Number(topDeep)
+    countTopDeep (deep,topDeep) {
+      return Number(deep) - Number(topDeep)
     },
     handleCurrentChange (page) {
       this.getListData(page, this.pageSize)
@@ -164,9 +164,9 @@ export default {
       })
     },
     onMessageCallback (data) {
-      //this.getData(this.currentPage, this.pageSize, false)
+      // this.getData(this.currentPage, this.pageSize, false)
     },
-    handleExport (){
+    handleExport () {
       this.$confirm(`Are you sure you want to export the current data?`, 'Hint', { // 确定要导出当前数据吗?
         confirmButtonText: 'confirm', // 确定
         cancelButtonText: 'cancel', // 取消
@@ -188,11 +188,13 @@ export default {
 }
 </script>
 
-<style>
+<style scoped>
   .filter-user{font-size: 14px;margin-bottom: 20px;}
   .filter-user:after{content: '';display: table;
       clear: both;}
   .filter-user .el-input-group{float: left;margin-right: 15px;}
+  .filter-user >>> .el-input__inner{border: 1px solid #DCDFE6;width: 100%;background: none;border-radius: 0;float: right;display: block; }
+  .filter-user >>> .el-input-group__prepend{border-top: 1px solid #DCDFE6;border-left: 1px solid #DCDFE6;border-bottom: 1px solid #DCDFE6;border-right:none;}
   .el-tree {
       padding-bottom: 20px;
       font-size: 14px;

+ 1 - 1
frontendEle/src/views/finance/recharge-add.vue

@@ -3,7 +3,7 @@
         <div class="white-box">
             <el-form ref="form"  label-width="250px" class="form-page">
                 <el-form-item label="Recharge Amount">
-                    <el-input v-model="form.applyAmount" type="number" min="1" max="10000000000"></el-input>
+                    <el-input-number v-model="form.applyAmount" :min="1" :max="10000000000" label="" style="width: 400px"></el-input-number>
                 </el-form-item>
                 <el-form-item label="Bank account">
                     <el-input v-model="form.bankNo"></el-input>

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

@@ -1,40 +1,40 @@
 <template>
   <div class="login-wrapper">
     <div class="login-writh">
-    <div class="login-padding">
-    <div class="login-left">
-      <img src="../../static/img/simple-img.jpg" alt="">
-    </div>
-    <div class="login-box">
-      <div class="white-box">
-        <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="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="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="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">Login</el-button><!--登录-->
-          </el-form-item>
-        </el-form>
+      <div class="login-padding">
+        <div class="login-left">
+          <img src="../../static/img/simple-img.jpg" alt="">
+        </div>
+        <div class="login-box">
+          <div class="white-box">
+            <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="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="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="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">Login</el-button><!--登录-->
+              </el-form-item>
+            </el-form>
+          </div>
+        </div>
       </div>
     </div>
   </div>
-    </div>
-  </div>
 
 </template>
 
@@ -61,9 +61,9 @@ export default {
         verifyCode: '',
       },
       submitButtonStat: false,
-      pageId:'',
+      pageId: '',
       captchaUrl: '',
-      isLoginVerify:false,
+      isLoginVerify: false,
     }
   },
   beforeCreate () {
@@ -94,7 +94,7 @@ export default {
       let pageId = this.pageId
       if (baseInfo.daysDiff() === null) {
         promise = network.getDaysDiff().then(response => {
-          if( this.isLoginVerify ) {
+          if (this.isLoginVerify) {
             let verifyCode = this.loginForm.verifyCode
             let data = {
               userName,
@@ -107,7 +107,7 @@ export default {
           }
         })
       } else {
-        if( this.isLoginVerify ) {
+        if (this.isLoginVerify) {
           let verifyCode = this.loginForm.verifyCode
           let data = {
             userName,
@@ -115,7 +115,7 @@ export default {
             verifyCode,
           }
           promise = network.loginGetAccessToken(userName, password, `oauth/login?page_id=${pageId}`, data)
-        }else {
+        } else {
           promise = network.loginGetAccessToken(userName, password)
         }
       }
@@ -133,17 +133,17 @@ export default {
       }).catch(error => {
         console.log(error);
         this.refreshLoginVerifyStatus();
-        if( this.isLoginVerify ) {
+        if (this.isLoginVerify) {
           this.changeCaptcha()
         }
-        if( error.message === 'ERROR_IS_MODIFY_PASSWORD' ) {
+        if (error.message === 'ERROR_IS_MODIFY_PASSWORD') {
           // this.submitButtonStat = false
           // console.log(this.loginForm.userName);
           this.$router.push(`/modify-password/${this.loginForm.userName}`)
-        }else {
+        } else {
           error = tool.errorHandle(error)
-            this.$message.error(error.message)
-            // this.submitButtonStat = false
+          this.$message.error(error.message)
+          // this.submitButtonStat = false
         }
         // error = tool.errorHandle(error)
         // this.$message.error(error.message)
@@ -151,10 +151,10 @@ export default {
       })
 
     },
-    changeCaptcha() {
+    changeCaptcha () {
       this.captchaUrl = REQUEST_URL + 'site/captcha?page_id=' + this.pageId + '&v=' + Math.random();
     },
-    refreshLoginVerifyStatus() {
+    refreshLoginVerifyStatus () {
       let path = 'oauth/is-login-verify'
       axiosObj.post(path, {userName:this.loginForm.userName}).then(response => {
         this.isLoginVerify = response === 1;
@@ -226,7 +226,7 @@ export default {
   }
   .el-input-group--prepend .el-input__inner, .el-input-group__append{border: none;background: none;border-radius: 0;width:94%;float: right;display: block; }
   .border-bottom {border-bottom:2px #0c195d solid;}
-  /*.el-input-group__append, .el-input-group__prepend{border: none;}*/
+  .el-input-group__append, .el-input-group__prepend{border: none;}
   input:-webkit-autofill {
     transition: background-color 5000s ease-in-out 0s;
   }

+ 8 - 16
frontendEle/src/views/shop/index.vue

@@ -60,21 +60,13 @@
                 </el-tab-pane>
             </el-tabs>
             <div class="white-box-footer">
-                <el-row>
-                  <el-col :span="3">
-                      <el-button type="primary" size="small" @click="goToAccounts()">Check Out</el-button><!--去结算-->
-                  </el-col>
-                  <el-col :span="15">
-                      <div class='flex data' style="line-height: 35px; font-size: 14px;">
-                          <div style="margin-right: 2rem;">Price:₦ {{ sell_price_sum }}</div><!--商品价格-->
-                          <div style="margin-right: 2rem;">BV:{{ price_pv_sum }}</div><!--商品BV-->
-                          <div>Tax:₦ {{ tax_sum }}</div><!--商品BV-->
-                      </div>
-                  </el-col>
-                  <el-col :span="6">
-                      <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
-                  </el-col>
-                </el-row>
+                <el-button type="primary" size="small" @click="goToAccounts()">Check Out</el-button><!--去结算-->
+                <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange" @current-change="handleCurrentChange"></pagination>
+            </div>
+            <div class='flex data' style="line-height: 35px; font-size: 14px;margin-top: 20px; border: 1px solid #dcdfe6; border-radius: 4px; padding: 0 15px;">
+              <div style="margin-right: 2rem;">Price:₦ {{ sell_price_sum }}</div><!--商品价格-->
+              <div style="margin-right: 2rem;">BV:{{ price_pv_sum }}</div><!--商品BV-->
+              <div>Tax:₦ {{ tax_sum }}</div><!--商品BV-->
             </div>
         </div>
     </div>
@@ -113,7 +105,7 @@ export default {
                 selectLock:false,
                 goodsCategory: '1',
                 goodsActive: [],
-                maxHeight: tool.getTableHeight(),
+                maxHeight: tool.getTableHeight() - 35,
                 sell_price_sum: 0.00,
                 price_pv_sum: 0.00,
                 tax_sum: 0.00,

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

@@ -2,23 +2,22 @@
     <div v-loading="loading">
         <div class="white-box">
             <el-table class="withdraw-table" :data="tableData" :max-height="maxHeight" style="width: 100%;" :span-method="objectSpanMethod">
-              <el-table-column width="120" label="Product code" prop="SKU_CODE"></el-table-column><!--商品编号-->
+              <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 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 width="120" label="Tax rate" prop="TAX_RATE"></el-table-column><!--税率-->
+              <el-table-column width="120" label="Product Price" prop="REAL_PRICE"><!--商品价格-->
+              </el-table-column>
+              <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 width="120" label="Qty" prop="BUY_NUMS"></el-table-column><!--数量-->
+
+                <el-table-column width="120" label="Tax Rate" prop="TAX_RATE"></el-table-column><!--税率-->
                 <el-table-column width="120" label="Tax" prop="TAX_AMOUNT"></el-table-column><!--税额-->
-                <el-table-column width="150" label="Product category" prop="CATEGORY"></el-table-column><!--商品分类-->
+                <el-table-column width="120" label="Total Price" prop="TOTAL_AMOUNT"></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><!--会员姓名-->
@@ -80,7 +79,7 @@
   //
       objectSpanMethod(obj) {
 
-        if (obj.columnIndex > 6) {
+        if (obj.columnIndex > 7) {
           // ⼆维数组存储的数据取出
           var _row = this.spanArr[obj.rowIndex];
           var _col = _row > 0 ? 1 : 0;

+ 2 - 2
frontendEle/src/views/shop/order.vue

@@ -395,7 +395,7 @@ export default{
             this.form.metadata.custom_fields[0].value = response.SN
             this.visible = true
           }).catch(() => {
-            this.submitButtonStat = true
+            this.submitButtonStat = false
           })
         } else {
           // 非PayStack支付
@@ -403,7 +403,7 @@ export default{
             this.submitButtonStat = false
             this.$router.push({path: `/shop/order-list`})
           }).catch(() => {
-            this.submitButtonStat = true
+            this.submitButtonStat = false
           })
         }
       }).catch(() => {