Compare commits

..

7 Commits

Author SHA1 Message Date
woody 07407ee670 feat(index.html): update tab icon 2025-09-04 10:28:55 +08:00
woody 91b0bcfa45 feat(index): update logo 2025-08-28 15:56:58 +08:00
woody 39fab98d95 chore(env): update pro env 2025-08-28 15:41:55 +08:00
woody c32f286230 feat(personal): 隐藏邮箱设置入口 2025-08-28 14:32:11 +08:00
woody b3a64cba8b feat(argeement): 隐藏协议 2025-08-28 14:18:55 +08:00
woody b304daea28 chore(env): update env 2025-08-28 13:44:55 +08:00
woody edc69ae054 chore(env): update env 2025-08-15 13:54:53 +08:00
21 changed files with 7716 additions and 6598 deletions

View File

@ -1,7 +1,7 @@
# just a flag
ENV = 'development'
# base api
VUE_APP_BASE_API = 'http://f.hzs413.com/inter-api/'
VUE_APP_BASE_API = '/prod-api'
VUE_APP_BASE_INTERAPI = 'https://dny-test.s3.ap-southeast-1.amazonaws.com/online/language'
VUE_APP_BASE_INTERAPI2 = 'http://f.hzs413.com/language'
VUE_APP_BASE_INTERAPI = 'https://bd-qd.oss-cn-beijing.aliyuncs.com/test_africa/language'
VUE_APP_BASE_INTERAPI2 = 'https://bd-qd.oss-cn-beijing.aliyuncs.com/test_africa/language'

View File

@ -2,8 +2,8 @@
ENV = 'production'
# base api
VUE_APP_BASE_API = '/inter-api'
VUE_APP_BASE_API = '/prod-api'
VUE_APP_BASE_API1 = 'http://index.hzs413.com'
VUE_APP_BASE_INTERAPI = 'https://dny-test.s3.ap-southeast-1.amazonaws.com/test/language'
VUE_APP_BASE_INTERAPI2 = 'https://dny-test.s3.ap-southeast-1.amazonaws.com/test/language'
VUE_APP_BASE_INTERAPI = 'https://agl413-test.s3.af-south-1.amazonaws.com/test'
VUE_APP_BASE_INTERAPI2 = 'http://ma.angelo413.com/lang'

View File

@ -2,7 +2,8 @@
ENV = 'test'
# base api
VUE_APP_BASE_API = 'http://f.hzs413.com/inter-api/'
VUE_APP_BASE_INTERAPI = 'https://dny-test.s3.ap-southeast-1.amazonaws.com/test/language'
VUE_APP_BASE_INTERAPI2 = 'https://dny-test.s3.ap-southeast-1.amazonaws.com/test/language'
VUE_APP_BASE_API = '/prod-api'
VUE_APP_BASE_API1 = 'http://index.hzs413.com'
VUE_APP_BASE_INTERAPI = 'https://bd-qd.oss-cn-beijing.aliyuncs.com/test_africa/language'
VUE_APP_BASE_INTERAPI2 = 'https://bd-qd.oss-cn-beijing.aliyuncs.com/test_africa/language'
VUE_APP_BASE_AREA = ''

View File

@ -10,7 +10,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<link rel="icon" href="<%= BASE_URL %>tab-icon.png">
<title><%= htmlWebpackPlugin.options.title %></title>
<!-- <script src="https://hzs-in.oss-cn-beijing.aliyuncs.com/test-africa/language/zh-CN.js"></script> -->
<!-- <script src="https://dny-test.s3.ap-southeast-1.amazonaws.com/test/language/zh-CN.js"></script> -->

BIN
public/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
public/tab-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

View File

@ -17,9 +17,7 @@
import HeaderTop from "@/components/HeaderTop";
import enLocale from "element-ui/lib/locale/lang/en";
import zhLocale from "element-ui/lib/locale/lang/zh-CN";
import ruLocale from "element-ui/lib/locale/lang/ru-RU";
import frLocale from "element-ui/lib/locale/lang/fr";
import ptLocale from "element-ui/lib/locale/lang/pt";
import { env } from "echarts";
export default {
components: {
@ -36,7 +34,6 @@ export default {
self.loading = false;
self.addScriptChild("zh-CN");
self.addScriptChild("en-US");
self.addScriptChild("ru-RU");
self.addScriptChild("fr-FR");
if (process.env.NODE_ENV != "production") {
// self.addScriptChild("fr-FR");
@ -150,14 +147,7 @@ export default {
...enLocale,
});
}
if (name == "ru-RU") {
if (ruRU) {
const localruRU = this.getJS(ruRU, "ruRU");
var STlocalruRU = JSON.stringify(localruRU);
localStorage.setItem("local-ruRU", STlocalruRU);
}
this.$i18n.mergeLocaleMessage(name, ruRU);
}
if (name == "fr-FR") {
if (frFR) {
const localfrFR = this.getJS(frFR, "frFR");

View File

@ -1,46 +1,45 @@
/*
* @Descripttion:
* @version:
* @Descripttion:
* @version:
* @Author: kBank
* @Date: 2022-07-05 17:57:49
*/
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import locale from 'element-ui/lib/locale'
import Vue from "vue";
import VueI18n from "vue-i18n";
import locale from "element-ui/lib/locale";
// import zhCn from 'zhCN'
// import enUS from 'enUS'
// import ruRU from 'ruRU'
// import frFR from 'frFR'
// import ptPT from 'ptPT'
var localenUS = {}
var localzhCN = {}
var localruRU = {}
var localfrFR = {}
var localptPT = {}
if (localStorage.getItem('local-enUS') != undefined) {
localenUS = JSON.parse(localStorage.getItem('local-enUS'));
var localenUS = {};
var localzhCN = {};
var localruRU = {};
var localfrFR = {};
var localptPT = {};
if (localStorage.getItem("local-enUS") != undefined) {
localenUS = JSON.parse(localStorage.getItem("local-enUS"));
}
if (localStorage.getItem('local-zhCN') != undefined) {
localzhCN = JSON.parse(localStorage.getItem('local-zhCN'));
if (localStorage.getItem("local-zhCN") != undefined) {
localzhCN = JSON.parse(localStorage.getItem("local-zhCN"));
}
if (localStorage.getItem('local-ruRU') != undefined) {
localruRU = JSON.parse(localStorage.getItem('local-ruRU'));
if (localStorage.getItem("local-ruRU") != undefined) {
localruRU = JSON.parse(localStorage.getItem("local-ruRU"));
}
if (localStorage.getItem('local-frFR') != undefined) {
localfrFR = JSON.parse(localStorage.getItem('local-frFR'));
if (localStorage.getItem("local-frFR") != undefined) {
localfrFR = JSON.parse(localStorage.getItem("local-frFR"));
}
if (localStorage.getItem('local-ptPT') != undefined) {
localptPT = JSON.parse(localStorage.getItem('local-ptPT'));
if (localStorage.getItem("local-ptPT") != undefined) {
localptPT = JSON.parse(localStorage.getItem("local-ptPT"));
}
import enLocale from 'element-ui/lib/locale/lang/en'
import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
import ruLocale from 'element-ui/lib/locale/lang/ru-RU'
import frLocale from 'element-ui/lib/locale/lang/fr'
import ptLocale from 'element-ui/lib/locale/lang/pt'
const lang = localStorage.getItem('lang') || 'en-US'
import enLocale from "element-ui/lib/locale/lang/en";
import zhLocale from "element-ui/lib/locale/lang/zh-CN";
import frLocale from "element-ui/lib/locale/lang/fr";
import ptLocale from "element-ui/lib/locale/lang/pt";
const lang = localStorage.getItem("lang") || "en-US";
Vue.use(VueI18n)
console.log('18n')
Vue.use(VueI18n);
console.log("18n");
const i18n = new VueI18n({
locale: lang,
@ -51,30 +50,24 @@ const i18n = new VueI18n({
// 'ru-RU': { ...ruRU },
// 'fr-FR': { ...frFR },
// 'pt-PT': { ...ptPT },
'zh-CN': {
...localzhCN,
...zhLocale
},
'en-US': {
...localenUS,
...enLocale
},
'ru-RU': {
...localruRU,
...ruLocale
},
'fr-FR': {
...localfrFR,
...frLocale
},
'pt-PT': {
...localptPT,
...ptLocale
},
}
})
locale.i18n((key, value) => i18n.t(key, value))
export default i18n
"zh-CN": {
...localzhCN,
...zhLocale,
},
"en-US": {
...localenUS,
...enLocale,
},
"fr-FR": {
...localfrFR,
...frLocale,
},
"pt-PT": {
...localptPT,
...ptLocale,
},
},
});
locale.i18n((key, value) => i18n.t(key, value));
export default i18n;

View File

@ -13,20 +13,17 @@
<template>
<div class="agreementBox flex_ac" v-if="userInfo.buyAgreementFlag != 1">
<div class="agreementIcon">
<el-checkbox v-model="toShow"
@change="toCheck">
</el-checkbox>
<el-checkbox v-model="toShow" @change="toCheck"> </el-checkbox>
<div class="agreementText flex">
<span>
<span>{{ $t('w_0207') }}</span>
<span class="agreementDetail"
@click="popupShow = true">{{ $t('w_0208') }}</span>
<span>{{ $t("w_0207") }}</span>
<span class="agreementDetail" @click="popupShow = true"
>{{ $t("w_0208") }}</span
>
</span>
</div>
</div>
<el-dialog class="pop"
:append-to-body="true"
:visible.sync="popupShow">
<el-dialog class="pop" :append-to-body="true" :visible.sync="popupShow">
<div class="pop_box" v-if="userInfo.pkCountry == 1">
<div class="pop_title">会员协议</div>
<h3>特别提示</h3>
@ -74,7 +71,10 @@
1会员理解并同意会员必须为自己注册账号下的一切行为负责包括会员在购物平台上的操作以及由此产生的任何后果会员应对服务中的内容自行加以判断并承担因使用内容而引起的所有风险包括因对内容的正确性完整性或实用性的依赖而产生的风险海之圣无法且不会对因会员个人行为而导致的任何损失或损害承担责任
</h4>
<h4>
2如果会员发现任何人违反本协议约定或以其他不当的方式使用本服务请立即向海之圣举报或投诉举报或投诉电话为<span style="color: red">4001112818</span>海之圣将依本协议约定进行处理
2如果会员发现任何人违反本协议约定或以其他不当的方式使用本服务请立即向海之圣举报或投诉举报或投诉电话为<span
style="color: red"
>4001112818</span
>海之圣将依本协议约定进行处理
</h4>
<h4>
3会员理解并同意因业务发展需要海之圣保留单方面对本公司网站等服务的全部或部分服务内容变更暂停终止或撤销的权利会员不同意即视为退出需承担因此带来的风险
@ -84,7 +84,10 @@
1基于网站平台的法定责任如果海之圣发现或收到他人举报或投诉会员违反本协议约定的海之圣有权随时对相关会员户籍进行审查删除并视情节轻重对违规账号处以包括但不限于警告账号封禁功能封禁的处罚且可能公示处理结果
</h4>
<h4>
2因违反会员协议被封禁的会员可向海之圣客服热线<span style="color: red">4001112818</span>相关人员提交申诉海之圣将对申诉进行审查并自行合理判断决定是否变更处罚措施
2因违反会员协议被封禁的会员可向海之圣客服热线<span
style="color: red"
>4001112818</span
>相关人员提交申诉海之圣将对申诉进行审查并自行合理判断决定是否变更处罚措施
</h4>
<h4>
3会员应在会员权益内遵守海之圣公司相关业务及会员管理规定会员在会员权益外的个人行为需遵守中华人民共和国各项法律法规会员需理解并同意海之圣有权依合理判断对违反有关法律法规或本协议规定的行为进行处理对违法违规的任何会员采取适当的法律行动并依据法律法规保存有关信息向有关部门报告等会员应承担由此而产生的一切法律责任如由此给海之圣造成损失应承担赔偿责任
@ -230,29 +233,23 @@
<h4>
4海之圣与会员双方均认可中华人民共和国电子签名法认可依据中华人民共和国电子签名法赋予本协议正式的法律效力一经点击同意本协议即具有了法律赋予的合同效力
</h4>
<h3 class="bold"
style="margin-bottom: 0.1rem; margin-top: 0.4rem">
<h3 class="bold" style="margin-bottom: 0.1rem; margin-top: 0.4rem">
附件一
</h3>
<h4 class="bold">青岛海之圣生物工程有限公司退换货制度</h4>
<h4 class="bold"
style="text-indent: 0">1.0目的</h4>
<h4 class="bold" style="text-indent: 0">1.0目的</h4>
<h4>
为了规范公司退换货服务标准保障消费者经销商利益特制定本制度
</h4>
<h4 class="bold"
style="text-indent: 0">1.0目的</h4>
<h4 class="bold" style="text-indent: 0">1.0目的</h4>
<h4></h4>
<h4 class="bold"
style="text-indent: 0">2.0适用范围</h4>
<h4 class="bold" style="text-indent: 0">2.0适用范围</h4>
<h4>适用于公司所有消费者和经销商正常退换货业务处理</h4>
<h4 class="bold"
style="text-indent: 0">3.0职责</h4>
<h4 class="bold" style="text-indent: 0">3.0职责</h4>
<h4>3.1总部营运中心负责受理退换货</h4>
<h4>3.2总部营运中心负责受理顾客投诉</h4>
<h4>3.3总经理直接负责管理监督顾客投诉处理情况</h4>
<h4 class="bold"
style="text-indent: 0">4.0退换货管理规定</h4>
<h4 class="bold" style="text-indent: 0">4.0退换货管理规定</h4>
<h4>
4.1总部营运中心为公司指定受理退换货部门所有退换货受理部门必须按照国家直销管理条例相关规定严格执行公司退换货制度
</h4>
@ -262,19 +259,16 @@
<h4>
4.3自提出换货或者退货之日起7个工作日内按照发票或者售货凭证标明的价款办理换货和退货
</h4>
<h4 class="bold"
style="text-indent: 0">5.0退换货受理部门</h4>
<h4 class="bold" style="text-indent: 0">5.0退换货受理部门</h4>
<h4>5.1总部营运中心</h4>
<h4 class="bold"
style="text-indent: 0">6.0退换货程序</h4>
<h4 class="bold" style="text-indent: 0">6.0退换货程序</h4>
<h4>
6.1换货程序当消费者经销商到总部营运中心提出换货要求时经受理人员确认符合换货条件后将产品退回公司予以换货处理
</h4>
<h4>
6.2退货程序当消费者经销商到总部营运中心提出退货要求时经受理人员确认符合退货条件后将产品退库将货款全额返还
</h4>
<h4 class="bold"
style="text-indent: 0">
<h4 class="bold" style="text-indent: 0">
7.0消费者经销商退货处理流程
</h4>
<h4>
@ -289,8 +283,7 @@
</h4>
<h4 class="footer">青岛海之圣生物工程有限公司</h4>
</div>
<div class="pop_box"
v-else>
<div class="pop_box" v-else>
<div class="pop_title2 pop_title1">
KODE ETIK BAGI MITRA USAHA PT HZS INTERNATIONAL INDONESIA (HZS)
</div>
@ -1055,9 +1048,9 @@
</template>
<script>
import { mapGetters, mapMutations } from 'vuex'
import { mapGetters, mapMutations } from "vuex";
export default {
name: 'Title',
name: "Title",
props: {
isShow: {
type: Boolean,
@ -1066,8 +1059,8 @@ export default {
},
watch: {
isShow(n, o) {
console.log('🚀 ~ n', n)
this.toShow = n
console.log("🚀 ~ n", n);
this.toShow = n;
},
},
data() {
@ -1076,29 +1069,29 @@ export default {
isqyj: false,
toShow: this.isShow,
hasQyj: 0,
agreeData: '',
agreementTitle: '',
}
agreeData: "",
agreementTitle: "",
};
},
computed: {
...mapGetters(['userInfo']),
...mapGetters(["userInfo"]),
},
methods: {
openIsqyj(val) {
this.agreementTitle = val
this.isqyj = true
this.agreementTitle = val;
this.isqyj = true;
},
agreeList(val) {
this.agreeData = val
this.agreeData = val;
},
getHasQyj(val) {
this.hasQyj = val
this.hasQyj = val;
},
toCheck(e) {
this.$emit('agree', this.toShow)
this.$emit("agree", this.toShow);
},
},
}
};
</script>
<style lang="scss" scoped>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -395,7 +395,7 @@
<div @click="loginPwd = 0">{{ $t("PER_DA_32") }}</div>
</el-col>
</el-row>
<el-row>
<!-- <el-row>
<el-col :span="14">
<el-form-item :label="$t('PER_DA_33')"
><el-input v-model="safty.email" disabled></el-input
@ -404,7 +404,7 @@
<el-col :span="10" class="righTxt">
<div @click="loginPwd = 3">{{ $t("PER_DA_34") }}</div>
</el-col>
</el-row>
</el-row> -->
<el-row>
<el-col :span="14">
<el-form-item :label="$t('MN_F_23')"
@ -585,7 +585,7 @@
</div>
</div>
<!-- 修改邮箱 -->
<div class="main_r" v-show="isClick == 2 && loginPwd == 3">
<!-- <div class="main_r" v-show="isClick == 2 && loginPwd == 3">
<div class="main_rt">
<div class="tit">{{ $t("PER_DA_43") }}</div>
<div class="safty1">
@ -623,7 +623,7 @@
<div class="pwdBtn" @click="upEmailObj">{{ $t("MY_WAL_23") }}</div>
</div>
</div>
</div>
</div> -->
<AddAddress ref="addAddress" @getAdList="getAddressList"></AddAddress>
<giftAddress ref="addAddress1" @getAdList1="getAddressList1"></giftAddress>
</div>

View File

@ -732,11 +732,11 @@
</div>
<div class="footer_b">
<!-- 协议 -->
<agreement
<!-- <agreement
:isShow="agreementShow"
ref="agree"
@agree="agree"
></agreement>
></agreement> -->
<div class="btn" @click="submitRegister('ruleForm')">
{{ $t("w_0085") }}
</div>
@ -1036,7 +1036,7 @@ export default {
],
allGoodsData: {},
allData: [],
agreementShow: false,
agreementShow: true,
countryList: [],
transList: [
// {
@ -1121,9 +1121,7 @@ export default {
//
this.getStorehouseList();
}
if (this.userInfo.buyAgreementFlag == 1) {
this.agreementShow = true;
}
// this.howRegiest = localStorage.getItem('howRegiest') || 0
//
api.generate().then((res) => {
@ -1400,13 +1398,6 @@ export default {
});
});
this.$refs[formName].validate((valid) => {
if (!this.agreementShow) {
this.$message({
message: this.$t("w_0091"),
type: "warning",
});
return;
}
if (valid) {
this.openLoading();
let obj = Object.assign({}, this.allGoodsData, this.ruleForm, {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -512,11 +512,11 @@
</div>
<div class="footer_b">
<!-- 协议 -->
<agreement
<!-- <agreement
:isShow="agreementShow"
ref="agree"
@agree="agree"
></agreement>
></agreement> -->
<div class="btn" @click="submitRegister('ruleForm')">
{{ $t("w_0085") }}
</div>
@ -679,7 +679,7 @@ export default {
moren: "",
allGoodsData: [],
allData: [],
agreementShow: false,
agreementShow: true,
countryList: [],
transList: [
{
@ -788,9 +788,6 @@ export default {
this.ruleForm.transType = 1;
this.ruleForm.deliveryWay = 1;
}
if (this.userInfo.buyAgreementFlag == 1) {
this.agreementShow = true;
}
},
methods: {
handleSizeChange(val) {
@ -1043,13 +1040,13 @@ export default {
shoppingId: item,
});
});
if (!this.agreementShow) {
this.$message({
message: this.$t("w_0091"),
type: "warning",
});
return;
}
// if (!this.agreementShow) {
// this.$message({
// message: this.$t("w_0091"),
// type: "warning",
// });
// return;
// }
if (this.isDeliveryWay && !this.ruleForm.recPhone) {
this.$message({
message: this.$t("w_0092"),

File diff suppressed because it is too large Load Diff

View File

@ -1,46 +1,55 @@
/*
* @Descripttion:
* @version:
* @Descripttion:
* @version:
* @Author: kBank
* @Date: 2022-09-29 10:04:55
*/
// 引入等比适配插件
const px2rem = require('postcss-px2rem')
const px2rem = require("postcss-px2rem");
// 配置基本大小
const postcss = px2rem({
// 基准大小 baseSize需要和rem.js中相同
remUnit: 16
})
remUnit: 16,
});
// 使用等比适配插件
module.exports = {
lintOnSave: false,
devServer: {
port: 8866,
proxy: {
"/prod-api": {
target: "http://localhost:8080",
changeOrigin: true,
pathRewrite: {
"^/prod-api": "",
},
},
},
},
css: {
loaderOptions: {
postcss: {
plugins: [
postcss
]
}
}
plugins: [postcss],
},
},
},
configureWebpack: {
externals: {
'enUS': 'enUS',
'zhCN': 'zhCN',
'zhTC': 'zhTC',
'ruRU':'ruRU',
'frFR':'frFR',
'ptPT':'ptPT',
enUS: "enUS",
zhCN: "zhCN",
zhTC: "zhTC",
ruRU: "ruRU",
frFR: "frFR",
ptPT: "ptPT",
},
},
chainWebpack: config => {
config
.plugin('html')
.tap(args => {
args[0].title = '会员系统'
return args
})
}
}
chainWebpack: (config) => {
config.plugin("html").tap((args) => {
args[0].title = "会员系统";
return args;
});
},
};