Explorar o código

Merge branch 'master' into feature/3140-order-period-adjust

kevin_zhangl %!s(int64=2) %!d(string=hai) anos
pai
achega
2b9a73dbe2

+ 2 - 2
.env.development

@@ -2,11 +2,11 @@
 ENV='development'
 
 # api请求地址
-VUE_APP_BASE_API='http://172.17.133.86:9970'
+VUE_APP_BASE_API=''
 # 文件下载地址
 VUE_APP_BASE_DO_API='http://local.ng.backend.api.com'
 # CDN文件地址
-VUE_APP_CDN_API='http://172.17.133.86:9970'
+VUE_APP_CDN_API='http://16.163.228.151:8041'
 # 页面地址
 VUE_APP_BASE_WEBSITE='http://local.ng.backend.ele.com'
 # 会员端地址

BIN=BIN
public/favicon.ico


+ 0 - 31
public/ipay.html

@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html>
-	<head>
-		<meta charset="utf-8">
-		<title></title>
-	</head>
-	<body>
-    <FORM method="post" name="ePayment"
-    action="https://sandbox.ipay88.co.id/epayment/entry.asp">
-    <INPUT type="hidden" name="MerchantCode"  value="M08669_S0002">
-    <INPUT type="hidden" name="PaymentId" value="2">
-    <INPUT type="hidden" name="RefNo" value="TEST123">
-    <INPUT type="hidden" name="Amount"  value="1.00">
-    <INPUT type="hidden" name="Currency"  value="MYR">
-    <INPUT type="hidden" name="ProdDesc"  value="This is a test product">
-    <INPUT type="hidden" name="UserName"  value="Technical Support">
-    <INPUT type="hidden" name="UserEmail" value="techsupp@ipay88.co.id">
-    <INPUT type="hidden" name="UserContact" value="081234567890">
-    <INPUT type="hidden" name="Remark"  value="Here is the description">
-    <INPUT type="hidden" name="Lang"  value="UTF-8">
-    <INPUT type="hidden" name="SignatureType" value="SHA256">
-    <INPUT type="hidden" name="Signature"
-    value="lMdndfLQobEF8a7KHPgtd9WSYok=">
-   <INPUT type="hidden" name="ResponseURL"
-    value="http://16.163.228.151:8040/v1/demo/ipayments">
-    <INPUT type="hidden" name="BackendURL"
-    value="http://16.163.228.151:8040/v1/demo/ipayments">
-    <INPUT type="submit" value="Proceed with Payment" name="Submit">
-    </FORM>
-	</body>
-</html>

+ 8 - 0
src/api/user.js

@@ -49,3 +49,11 @@ export function noLoginModifyPassword(data) {
   })
 }
 
+// 切换语言
+export function changeLanguage(data) {
+  return request({
+    url: '/v1/admin/change-language',
+    method: 'post',
+    data
+  })
+}

+ 4 - 4
src/lang/en.js

@@ -556,8 +556,8 @@ export default {
     mobileMemberName: 'Mobile member name',
     originalSuperiorNo: 'Original superior No',
     originalSuperiorName: 'Original superior name',
-    moveToPlacementMemberCode: 'Move to placement member code',
-    moveToPlacementMemberName: 'Move to placement member name',
+    moveToPlacementMemberCode: 'To placement member code',
+    moveToPlacementMemberName: 'To placement member name',
     originalDeveloperNo: 'Original developer No',
     nameOfOriginalDeveloper: 'Name of original developer',
     moveToSponsorMemberCode: 'Move to sponsor member code',
@@ -665,9 +665,9 @@ export default {
     tourBonusPercent: 'Travel Fund Ratio',
     carFundBonusPercent: 'Car Fund Ratio',
     villaFundBonusPercent: 'Villa Fund ratio',
-    achieveMemberNo: 'The number of recommended members reaching the standard',
+    achieveMemberNo: 'The number of sponsor members reaching the standard',
     achievePerfBV: 'Recommended to meet the standard and pass the bonus BV',
-    achieveBV: 'Awarded for failing to meet the recommended standards BV',
+    achieveBV: 'Awarded for failing to meet the sponsor standards BV',
     crownStarConfig: 'Crown star configuration',
     levelScore: 'Level points(BV)',
     upgradeScore: 'Upgrade points(BV)',

+ 17 - 1
src/store/modules/app.js

@@ -1,5 +1,9 @@
 import Cookies from 'js-cookie'
 import { getLanguage } from '@/lang'
+import usersInfo from "@/utils/usersInfo";
+import {changeLanguage} from "@/api/user";
+import {getBaseInfo} from "@/api/site";
+import baseInfo from "@/utils/baseInfo";
 
 const state = {
   sidebar: {
@@ -50,7 +54,19 @@ const actions = {
     commit('TOGGLE_DEVICE', device)
   },
   setLanguage({ commit }, language) {
-    commit('SET_LANGUAGE', language)
+    commit('SET_LANGUAGE', language);
+    return new Promise((resolve, reject) => {
+      changeLanguage({lang: language, adminName: usersInfo.adminName()}).then(() => {
+        getBaseInfo().then(response => {
+          baseInfo.set(response.data)
+          resolve(response)
+        }).catch(error => {
+          reject(error)
+        })
+      }).catch(error => {
+        reject(error)
+      })
+    })
   },
   setSize({ commit }, size) {
     commit('SET_SIZE', size)

+ 6 - 1
src/store/modules/user.js

@@ -5,6 +5,7 @@ import router, { resetRouter } from '@/router'
 import { Message } from 'element-ui'
 import { getBaseInfo } from '@/api/site'
 import baseInfo from '@/utils/baseInfo'
+import Cookies from "js-cookie";
 
 const state = {
   token: getToken(),
@@ -38,7 +39,8 @@ const actions = {
     const requestData = {
       adminName: userInfo.username,
       password: userInfo.password,
-      verifyCode: userInfo.verifyCode
+      verifyCode: userInfo.verifyCode,
+      lang: userInfo.lang,
     }
     return new Promise((resolve, reject) => {
       login({ LoginForm: requestData }, userInfo.pageId).then(response => {
@@ -65,6 +67,9 @@ const actions = {
         usersInfo.userId(result.ID)
         usersInfo.adminName(result.ADMIN_NAME)
         usersInfo.baseData({ roleId: result.ROLE_ID })
+        // 设置语言标识
+        const lang = result.LANG ? (result.LANG === 'zh-CN' ? 'zh' : 'en') : 'zh'
+        Cookies.set('language', lang)
         resolve(result)
       }).catch(error => {
         reject(error)

+ 3 - 3
src/views/config/bonus-config.vue

@@ -243,9 +243,9 @@ export default {
       this.loading = true
       fetchBonusConfig().then(response => {
         this.configData = response.data.config
-        this.decLevelTableData = response.data.decLevel
-        this.empLevelTableData = response.data.empLevel
-        this.crownLevelTableData = response.data.crownLevel
+        this.decLevelTableData = Object.values(response.data.decLevel)
+        this.empLevelTableData = Object.values(response.data.empLevel)
+        this.crownLevelTableData = Object.values(response.data.crownLevel)
 
         setTimeout(() => {
           this.loading = false

+ 3 - 3
src/views/config/dec-level-config.vue

@@ -52,10 +52,10 @@
           <el-col :xs="24" :sm="24" :lg="12">
             <el-input v-show="false" v-model="editForm.ID" size="small" type="text" />
             <el-form-item :label="$t('config.levelName')" prop="LEVEL_NAME" required style="margin-bottom: 10px; width: 100%;">
-              <el-input v-model.trim="editForm.LEVEL_NAME" size="small" type="text" style="min-width: 300px;" />
+              <el-input v-model.trim="editForm.LEVEL_NAME" size="small" type="text" style="min-width: 300px;" readonly />
             </el-form-item>
             <el-form-item :label="$t('config.needPerf')" prop="PERF" required style="margin-bottom: 10px; width: 100%;">
-              <el-input v-model="editForm.PERF" size="small" type="text" />
+              <el-input v-model="editForm.PERF" size="small" type="text" style="min-width: 300px;" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -113,7 +113,7 @@ export default {
     fetchDecLevelConfig() {
       this.loading = true
       fetchDecLevelConfig().then(response => {
-        this.tableData = response.data.list
+        this.tableData = Object.values(response.data.list)
 
         setTimeout(() => {
           this.loading = false

+ 4 - 4
src/views/config/stockist-config.vue

@@ -30,10 +30,10 @@
           <el-col :xs="24" :sm="24" :lg="12">
             <el-input v-show="false" v-model="editForm.ID" size="small" type="text" />
             <el-form-item :label="$t('config.levelName')" prop="ROLE_NAME" required style="margin-bottom: 10px; width: 100%;">
-              <el-input v-model.trim="editForm.ROLE_NAME" size="small" type="text" style="min-width: 300px;" />
+              <el-input v-model.trim="editForm.ROLE_NAME" size="small" type="text" style="min-width: 300px;" readonly />
             </el-form-item>
             <el-form-item :label="$t('financial.serviceCharge')" prop="FW_BONUS_PERCENT" required style="margin-bottom: 10px; width: 100%;">
-              <el-input v-model="editForm.FW_BONUS_PERCENT" size="small" type="text" />
+              <el-input v-model="editForm.FW_BONUS_PERCENT" size="small" type="text" style="min-width: 300px;" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -79,8 +79,8 @@ export default {
     fetchData() {
       this.loading = true
       fetchStockistConfig().then(response => {
-        this.tableData = response.data.list
-        this.total = +response.data.totalCount
+        this.tableData = Object.values(response.data.list)
+        this.total = this.tableData.length
 
         setTimeout(() => {
           this.loading = false

+ 4 - 2
src/views/finance/change-balance-opt.vue

@@ -38,10 +38,12 @@
               <el-form-item :label="$t('common.note')"><!--备注-->
                 <el-input v-model="form.remark"></el-input>
               </el-form-item>
-              <el-form-item :label="$t('financial.forgeDisplayRemark')" v-show="false"><!--备注前台显示-->
+              <!--备注前台显示-->
+              <!-- <el-form-item :label="$t('financial.forgeDisplayRemark')">
+              <el-form-item :label="$t('financial.forgeDisplayRemark')" v-show="false">
                 <el-switch v-model="form.isShow" active-value="1" inactive-value="0">
                 </el-switch>
-              </el-form-item>
+              </el-form-item> -->
               <el-form-item>
                 <el-button type="primary" :loading="submitButtonStat" :disabled="getCodeStat" @click="onSubmit">{{ $t('common.confirm') }}<!-- 提交 --></el-button>
               </el-form-item>

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

@@ -75,6 +75,7 @@ import SocialSign from './components/SocialSignin'
 import { daysDiff } from '@/api/site'
 import baseInfo from '@/utils/baseInfo'
 import usersInfo from '@/utils/usersInfo'
+import Cookies from "js-cookie";
 
 export default {
   name: 'Login',
@@ -84,7 +85,8 @@ export default {
       loginForm: {
         username: '',
         password: '',
-        verifyCode: ''
+        verifyCode: '',
+				lang: '',
       },
 
       passwordType: 'password',
@@ -110,7 +112,15 @@ export default {
     // }
   },
   beforeCreate() {
-    this.$store.dispatch('settings/getPageData', {})
+		// 获取浏览器语言类型
+		let lang = navigator.language
+		if (lang === 'zh-CN') {
+			Cookies.set('language', 'zh')
+		} else {
+			Cookies.set('language', 'en')
+		}
+
+		this.$store.dispatch('settings/getPageData', {})
       .then(response => {
         this.pageId = response.data.pageId
         this.captchaUrl = process.env.VUE_APP_BASE_API + '/v1/site/captcha?page_id=' + this.pageId + '&v=' + Math.random()
@@ -177,7 +187,8 @@ export default {
             username: this.loginForm.username,
             password: this.loginForm.password,
             verifyCode: this.loginForm.verifyCode,
-            pageId: this.pageId
+            pageId: this.pageId,
+						lang: Cookies.get('language')
           }
 
           if (!baseInfo.daysDiff()) {
@@ -197,7 +208,9 @@ export default {
           let loginName = this.loginForm.username;
           // 登录
           this.$store.dispatch('user/login', loginData)
-            .then(() => {})
+            .then(() => {
+							Cookies.remove('language')
+						})
             .then(() => {
               return this.$store.dispatch('user/getUserInfo', {})
             }).then(() => {
@@ -205,7 +218,10 @@ export default {
             }).then(() => {
               this.loading = false
               this.$router.push({ path: this.redirect || '/dashboard/index', query: this.otherQuery })
-            }).catch(error => {
+            }).then(() => {
+							// 强制刷新页面
+							location.reload()
+						}).catch(error => {
               this.loading = false
               let msg = error + '  '
               console.log('error-------->'+error)

+ 11 - 17
src/views/user/member-network-move.vue

@@ -58,7 +58,7 @@
 
 		<!-- 新建移网	-->
 		<el-dialog :title="$t('member.applyNetworkTransfer')" :visible.sync="dialogApplyFormVisible" :width="screenWidth" style="margin-top: -80px;">
-			<el-form :model="applyForm" label-width="230px" :label-position="labelPosition" v-loading="dialogApplyLoading" size="mini" style="padding: 10px 15px; margin-top: -25px; margin-bottom: -25px;">
+			<el-form :model="applyForm" :label-width="labelWidth" :label-position="labelPosition" v-loading="dialogApplyLoading" size="mini" style="padding: 10px 15px; margin-top: -25px; margin-bottom: -25px;">
 				<el-form-item :label="$t('member.networkTransferType')">
 					<el-select v-model="applyForm.type" :placeholder="$t('member.selectNetworkTransferType')" style="width: 100%;">
 						<el-option v-for="(item,key) in netType" :label="item.name" :value="item.id" :key="key"></el-option>
@@ -114,7 +114,7 @@
 
 		<!-- 修改移网	-->
     <el-dialog :title="$t('member.modifyNetworkTransfer')" :visible.sync="dialogEditFormVisible" :width="screenWidth" style="margin-top: -80px;">
-      <el-form :model="form" label-width="230px" :label-position="labelPosition" v-loading="dialogEditLoading" size="mini" style="padding: 10px 15px; margin-top: -25px; margin-bottom: -25px;">
+      <el-form :model="form" :label-width="labelWidth" :label-position="labelPosition" v-loading="dialogEditLoading" size="mini" style="padding: 10px 15px; margin-top: -25px; margin-bottom: -25px;">
         <el-form-item :label="$t('member.networkTransferType')">
           <el-select v-model="form.type" :placeholder="$t('member.selectNetworkTransferType')" style="width: 100%;">
             <el-option v-for="(item,key) in netType" :label="item.name" :value="item.id" :key="key"></el-option>
@@ -178,7 +178,7 @@
 
 		<!-- 移网审核	-->
     <el-dialog :title="$t('member.reviewNetworkTransfer')" :visible.sync="dialogAuditFormVisible" :width="screenWidth" style="margin-top: -80px">
-      <el-form :model="form" label-width="230px" :label-position="labelPosition" v-loading="dialogAuditLoading" size="mini" style="padding: 10px 15px;">>
+      <el-form :model="form" label-width="230px" :label-position="labelPosition" v-loading="dialogAuditLoading" size="mini" style="padding: 10px 15px;">
         <el-form-item :label="$t('member.networkTransferType')">
           <el-select v-model="form.type" :placeholder="$t('member.selectNetworkTransferType')" style="width: 100%;">
             <el-option v-for="(item,key) in netType" :label="item.name" :value="item.id" :key="key"></el-option>
@@ -256,6 +256,7 @@
 		updateNetworkMovePass
 	} from "@/api/member";
 	import {getScreenWidth} from "@/utils";
+	import Cookies from "js-cookie";
 
   export default {
     name: 'memberNetworkMove',
@@ -330,6 +331,7 @@
 				toAlertType: 'success',
 				isRelation: false,
 				submitButtonStat: false,
+				labelWidth: Cookies.get('language') === 'en' ? '205px' : '140px',
       }
     },
     methods: {
@@ -347,14 +349,10 @@
         this.auditId = row.ID
         this.dialogEditFormVisible = true
 				fetchNetworkMoveGet({ id: this.auditId }).then(response => {
-					this.$message({
-						message: response,
-						type: 'success'
-					})
 					this.dialogEditLoading = false
-					this.form = response
-					this.form.type = String(response.type)
-					this.form.location = String(response.location)
+					this.form = response.data
+					this.form.type = String(response.data.type)
+					this.form.location = String(response.data.location)
 					this.form.createRemark = this.form.remark
 				}).catch(error => {
 					this.$message({
@@ -390,14 +388,10 @@
         this.auditId = row.ID
         this.dialogAuditFormVisible = true
 				fetchNetworkMoveGet({ id: this.auditId }).then(response => {
-					this.$message({
-						message: response,
-						type: 'success'
-					})
 					this.dialogAuditLoading = false
-					this.form = response
-					this.form.type = String(response.type)
-					this.form.location = String(response.location) !== '0' ? String(response.location) : '1'
+					this.form = response.data
+					this.form.type = String(response.data.type)
+					this.form.location = String(response.data.location) !== '0' ? String(response.data.location) : '1'
 					this.form.createRemark = this.form.remark
 				}).catch(error => {
 					this.$message({

+ 1 - 1
vue.config.js

@@ -39,7 +39,7 @@ module.exports = {
     },
     proxy: {
       [process.env.VUE_APP_BASE_API]:{
-        target:"http://172.17.133.86:9970",
+        target:"http://local.ng.backend.api.com",
         changeOrigin:true,
         pathRewrite:{
           ["^" + process.env.VUE_APP_BASE_API] : ""