添加页面及部分多语言切换
This commit is contained in:
+38
-4
@@ -6,12 +6,46 @@ export default {
|
|||||||
mine: 'mine'
|
mine: 'mine'
|
||||||
},
|
},
|
||||||
home: {
|
home: {
|
||||||
desc: 'This is home page'
|
desc: 'home',
|
||||||
|
langbtn:'Change Language',
|
||||||
|
title:'You have accompanied me',
|
||||||
|
day:'day',
|
||||||
|
databf:'Data Briefing',
|
||||||
|
addxs:'Add clues',
|
||||||
|
addkh:'Add customer',
|
||||||
|
addbf:'Add visit',
|
||||||
|
addgj:'Add follow up'
|
||||||
},
|
},
|
||||||
customer: {
|
customer: {
|
||||||
desc: 'This is tool page'
|
desc: 'This is tool page',
|
||||||
|
title:'Customer Management',
|
||||||
|
inputhd:'Please enter keywords to search',
|
||||||
},
|
},
|
||||||
mine: {
|
mine: {
|
||||||
desc: 'This is template page'
|
desc: 'This is template page',
|
||||||
}
|
title:'Account',
|
||||||
|
msg:'Message Notification',
|
||||||
|
cpassword:'Change Password',
|
||||||
|
contact:'Contact Service',
|
||||||
|
feedback:'Feedback',
|
||||||
|
about:'About Us',
|
||||||
|
logoff:'Log Off',
|
||||||
|
logout:'Log Out',
|
||||||
|
kfphone:'Service phone number',
|
||||||
|
lxcall:'Contact Way',
|
||||||
|
lxcallinputhd:'Please enter',
|
||||||
|
feedbackinputhd:'Please provide your valuable feedback~',
|
||||||
|
},
|
||||||
|
call:'Call',
|
||||||
|
delete:'Delete',
|
||||||
|
all:'All',
|
||||||
|
followup:'Follow up',
|
||||||
|
deal:'Deal',
|
||||||
|
lost:'Lost',
|
||||||
|
cancel:'cancel',
|
||||||
|
confirm:'confirm',
|
||||||
|
prompt:'prompt',
|
||||||
|
deletemsg:'Are you sure you want to delete this customer?',
|
||||||
|
submit:'Submit'
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
export default {
|
||||||
|
// 可以以页面为单位来写,比如首页的内容,写在index字段,个人中心写在center,共同部分写在common部分
|
||||||
|
tabbar: {
|
||||||
|
home: 'начало',
|
||||||
|
customer: 'клиент',
|
||||||
|
mine: 'мой'
|
||||||
|
},
|
||||||
|
home: {
|
||||||
|
desc: 'начало'
|
||||||
|
},
|
||||||
|
customer: {
|
||||||
|
desc: 'клиент'
|
||||||
|
},
|
||||||
|
mine: {
|
||||||
|
desc: 'мой'
|
||||||
|
}
|
||||||
|
}
|
||||||
+37
-4
@@ -6,12 +6,45 @@ export default {
|
|||||||
mine: '我的'
|
mine: '我的'
|
||||||
},
|
},
|
||||||
home: {
|
home: {
|
||||||
desc: '首页'
|
desc: '首页',
|
||||||
|
langbtn:'切换语言',
|
||||||
|
title:'您已陪伴',
|
||||||
|
day:'天',
|
||||||
|
databf:'数据简报',
|
||||||
|
addxs:'新增线索',
|
||||||
|
addkh:'新增客户',
|
||||||
|
addbf:'新增拜访',
|
||||||
|
addgj:'新增跟进'
|
||||||
},
|
},
|
||||||
customer: {
|
customer: {
|
||||||
desc: '客户'
|
desc: '客户',
|
||||||
|
title:'客户管理',
|
||||||
|
inputhd:'请输入客户名称或手机号',
|
||||||
},
|
},
|
||||||
mine: {
|
mine: {
|
||||||
desc: '我的'
|
desc: '我的',
|
||||||
}
|
title:'我的',
|
||||||
|
msg:'消息通知',
|
||||||
|
cpassword:'修改密码',
|
||||||
|
contact:'联系客服',
|
||||||
|
feedback:'意见反馈',
|
||||||
|
about:'关于我们',
|
||||||
|
logoff:'注销账户',
|
||||||
|
logout:'退出登录',
|
||||||
|
kfphone:'客服电话',
|
||||||
|
lxcall:'联系方式',
|
||||||
|
lxcallinputhd:'请输入您的手机号码',
|
||||||
|
feedbackinputhd:'请输入您的宝贵意见~',
|
||||||
|
},
|
||||||
|
call:'呼叫',
|
||||||
|
delete:'删除',
|
||||||
|
all:'全部',
|
||||||
|
followup:'跟进中',
|
||||||
|
deal:'已成交',
|
||||||
|
lost:'已丢失',
|
||||||
|
cancel:'取消',
|
||||||
|
confirm:'确定',
|
||||||
|
prompt:'提示',
|
||||||
|
deletemsg:'确定要删除此客户吗?',
|
||||||
|
submit:'提交'
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
<view class="contents" v-for="(item, index) in list" :key="index" @click="handleItemClick(item)">
|
<view class="contents" v-for="(item, index) in list" :key="index" @click="handleItemClick(item)">
|
||||||
<view class="top">
|
<view class="top">
|
||||||
<view class="">2025.03.11 12:00</view>
|
<view class="">2025.03.11 12:00</view>
|
||||||
<view class="tag">跟进中</view>
|
<view class="tag">{{$t('followup')}}</view>
|
||||||
</view>
|
</view>
|
||||||
<u-divider text="" :hairline="true"></u-divider>
|
<u-divider text="" :hairline="true"></u-divider>
|
||||||
<view class="cont">
|
<view class="cont">
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
background: #3471FF;
|
background: #3471FF;
|
||||||
color: white;
|
color: white;
|
||||||
border-radius: 10px 0px 0px 10px;
|
border-radius: 10px 0px 0px 10px;
|
||||||
padding: 0px 10px;
|
padding: 3px 10px;
|
||||||
margin-right: -15px;
|
margin-right: -15px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ Vue.prototype.$backgroundAudioData = {
|
|||||||
// 引入语言包,注意路径
|
// 引入语言包,注意路径
|
||||||
import Chinese from '@/common/locales/zh.js';
|
import Chinese from '@/common/locales/zh.js';
|
||||||
import English from '@/common/locales/en.js';
|
import English from '@/common/locales/en.js';
|
||||||
|
import Eyu from '@/common/locales/ru.js';
|
||||||
|
|
||||||
// 引入并使用vue-i18n
|
// 引入并使用vue-i18n
|
||||||
import VueI18n from 'vue-i18n'
|
import VueI18n from 'vue-i18n'
|
||||||
@@ -26,13 +27,14 @@ Vue.use(VueI18n)
|
|||||||
// 构造i18n对象
|
// 构造i18n对象
|
||||||
const i18n = new VueI18n({
|
const i18n = new VueI18n({
|
||||||
// 默认语言,这里的local属性,对应message中的cn、en属性
|
// 默认语言,这里的local属性,对应message中的cn、en属性
|
||||||
locale: 'cn',
|
locale: 'zh',
|
||||||
// 引入语言文件
|
// 引入语言文件
|
||||||
messages: {
|
messages: {
|
||||||
// 这里的属性名是任意的,您也可以把zh设置为cn等,只是后续切换语言时
|
// 这里的属性名是任意的,您也可以把zh设置为cn等,只是后续切换语言时
|
||||||
// 要标识这里的语言属性,如:this.$i18n.locale = zh|en|cn|xxx
|
// 要标识这里的语言属性,如:this.$i18n.locale = zh|en|cn|xxx
|
||||||
'cn': Chinese,
|
'zh': Chinese,
|
||||||
'en': English,
|
'en': English,
|
||||||
|
'ru': Eyu,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
App.mpType = 'app'
|
App.mpType = 'app'
|
||||||
|
|||||||
+11
-2
@@ -23,7 +23,8 @@
|
|||||||
"Push" : {},
|
"Push" : {},
|
||||||
"Share" : {},
|
"Share" : {},
|
||||||
"VideoPlayer" : {},
|
"VideoPlayer" : {},
|
||||||
"Maps" : {}
|
"Maps" : {},
|
||||||
|
"Speech" : {}
|
||||||
},
|
},
|
||||||
"distribute" : {
|
"distribute" : {
|
||||||
"android" : {
|
"android" : {
|
||||||
@@ -69,7 +70,15 @@
|
|||||||
},
|
},
|
||||||
"sdkConfigs" : {
|
"sdkConfigs" : {
|
||||||
"speech" : {
|
"speech" : {
|
||||||
"ifly" : {}
|
"baidu" : {
|
||||||
|
"appid" : "117980829",
|
||||||
|
"apikey" : "dBy4AMe8Ii7ZHX8R072pFAfM",
|
||||||
|
"secretkey" : "2GrccBcltV15Cd1e3C3xy2CnQtZatVso"
|
||||||
|
},
|
||||||
|
"ifly" : {
|
||||||
|
"appid" : "6fb000c3",
|
||||||
|
"apikey" : "eec37300f2e638b0bc3b91752be40c30"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"maps" : {}
|
"maps" : {}
|
||||||
},
|
},
|
||||||
|
|||||||
+36
@@ -122,6 +122,42 @@
|
|||||||
"enablePullDownRefresh": false,
|
"enablePullDownRefresh": false,
|
||||||
"navigationStyle":"custom"// 去掉微信小程序顶部导航
|
"navigationStyle":"custom"// 去掉微信小程序顶部导航
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "feedback",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationStyle":"custom"// 去掉微信小程序顶部导航
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "about",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationStyle":"custom"// 去掉微信小程序顶部导航
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "logoff",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationStyle":"custom"// 去掉微信小程序顶部导航
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path" : "resetPwd",
|
||||||
|
"style" :
|
||||||
|
{
|
||||||
|
"navigationBarTitleText" : "",
|
||||||
|
"enablePullDownRefresh": false,
|
||||||
|
"navigationStyle":"custom"// 去掉微信小程序顶部导航
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+78
-24
@@ -3,9 +3,9 @@
|
|||||||
<uni-nav-bar leftText=" " :fixed="true" :border="false" leftIcon="back" @clickLeft="leftClick" color="#000000" backgroundColor="#fff" :statusBar="true" title="信息录入"></uni-nav-bar>
|
<uni-nav-bar leftText=" " :fixed="true" :border="false" leftIcon="back" @clickLeft="leftClick" color="#000000" backgroundColor="#fff" :statusBar="true" title="信息录入"></uni-nav-bar>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="cell">
|
<view class="cell">
|
||||||
<view>客户称呼 <text class="red">*</text></view>
|
<view>客户称呼</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<input placeholder="输入客户称呼" v-model="form.name" />
|
<input placeholder="输入称呼" v-model="form.contacts" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-divider text=""></u-divider>
|
<u-divider text=""></u-divider>
|
||||||
@@ -26,20 +26,27 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-divider text=""></u-divider>
|
<u-divider text=""></u-divider>
|
||||||
|
<view class="cell">
|
||||||
|
<view>Email</view>
|
||||||
|
<view class="right">
|
||||||
|
<input placeholder="输入Email" v-model="form.email" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<u-divider text=""></u-divider>
|
||||||
<view class="cell">
|
<view class="cell">
|
||||||
<view>客户偏好</view>
|
<view>客户偏好</view>
|
||||||
<view class="right select" @click="showbrand = true">
|
<view class="right select" @click="showcartype = true">
|
||||||
<input placeholder="选择客户偏好" disabled v-model="brandname" />
|
<input placeholder="选择客户偏好" disabled v-model="car_type_name" />
|
||||||
<u-picker :show="showbrand" @cancel="cancel('showbrand')" :columns="brandList" keyName="name" @confirm="changeHandler"></u-picker>
|
<u-picker :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :show="showcartype" @cancel="cancel('showcartype')" :columns="carTypeList" keyName="name" @confirm="cartypesChange"></u-picker>
|
||||||
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-divider text=""></u-divider>
|
<u-divider text=""></u-divider>
|
||||||
<view class="cell">
|
<view class="cell">
|
||||||
<view>客户等级</view>
|
<view>客户等级</view>
|
||||||
<view class="right select" @click="showtype = true">
|
<view class="right select" @click="showgrade = true">
|
||||||
<input placeholder="选择客户等级" disabled v-model="vehicle_type" />
|
<input placeholder="选择客户等级" disabled v-model="grade_name" />
|
||||||
<u-picker :show="showtype" @cancel="cancel('showtype')" :columns="typesList" keyName="name" @confirm="typesChange"></u-picker>
|
<u-picker :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :show="showgrade" @cancel="cancel('showgrade')" :columns="getGradeList" keyName="name" @confirm="gradeHandler"></u-picker>
|
||||||
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -47,8 +54,8 @@
|
|||||||
<view class="cell">
|
<view class="cell">
|
||||||
<view>国家地区</view>
|
<view>国家地区</view>
|
||||||
<view class="right select" @click="showenergy = true">
|
<view class="right select" @click="showenergy = true">
|
||||||
<input placeholder="选择国家地区" disabled v-model="vehicle_energy" />
|
<input placeholder="选择国家地区" disabled v-model="country_name" />
|
||||||
<u-picker :show="showenergy" @cancel="cancel('showenergy')" :columns="energyList" keyName="name" @confirm="energyChange"></u-picker>
|
<u-picker :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :show="showenergy" @cancel="cancel('showenergy')" :columns="areaList" keyName="name" @confirm="areaChange"></u-picker>
|
||||||
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -63,7 +70,7 @@
|
|||||||
<view class="cell1">
|
<view class="cell1">
|
||||||
<view>详细情况</view>
|
<view>详细情况</view>
|
||||||
<view class="">
|
<view class="">
|
||||||
<textarea auto-height v-model="form.condition_desc" placeholder="详细情况..."/>
|
<textarea auto-height v-model="form.describe" placeholder="详细情况..."/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-gap height="100" bgColor="#fff"></u-gap>
|
<u-gap height="100" bgColor="#fff"></u-gap>
|
||||||
@@ -79,31 +86,78 @@
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
brandList:[],
|
showgrade: false,
|
||||||
energyList:[],
|
showcartype: false,
|
||||||
typesList:[],
|
showenergy: false,
|
||||||
|
getGradeList:[],
|
||||||
|
carTypeList:[],
|
||||||
|
areaList:[],
|
||||||
|
grade_name:'',
|
||||||
|
car_type_name:'',
|
||||||
|
country_name:'',
|
||||||
form: {
|
form: {
|
||||||
name: '',
|
contacts: '',
|
||||||
gender: '男',
|
gender: '男',
|
||||||
phone: '',
|
phone: '',
|
||||||
preference: '赵野军',
|
email: '',
|
||||||
level: '初步接触',
|
describe: '',
|
||||||
region: '',
|
grade:'',
|
||||||
firstFollow: '2025-03-11 12:00:01',
|
country_id:'',
|
||||||
details: ''
|
car_type_id:''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
const { windowWidth, windowHeight } = uni.getSystemInfoSync();
|
|
||||||
this.x = windowWidth-70
|
|
||||||
this.y = windowHeight-185
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
leftClick(){
|
leftClick(){
|
||||||
uni.navigateBack({})
|
uni.navigateBack({})
|
||||||
},
|
},
|
||||||
|
getGrade(){
|
||||||
|
request({
|
||||||
|
url:'customer/getGrade',
|
||||||
|
method:'get',
|
||||||
|
}).then(res => {
|
||||||
|
var list = res.data.data
|
||||||
|
this.getGradeList = [list]
|
||||||
|
})
|
||||||
|
},
|
||||||
|
carType(){
|
||||||
|
request({
|
||||||
|
url:'carType/getAll',
|
||||||
|
method:'get',
|
||||||
|
}).then(res => {
|
||||||
|
var list = res.data.data
|
||||||
|
this.carTypeList = [list]
|
||||||
|
})
|
||||||
|
},
|
||||||
|
area(){
|
||||||
|
request({
|
||||||
|
url:'area/getAll',
|
||||||
|
method:'get',
|
||||||
|
}).then(res => {
|
||||||
|
var list = res.data.data
|
||||||
|
this.areaList = [list]
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gradeHandler(val){
|
||||||
|
this.form.grade = val.value[0].brand_id
|
||||||
|
this.grade_name = val.value[0].name
|
||||||
|
this.showgrade = false
|
||||||
|
},
|
||||||
|
areaChange(val){
|
||||||
|
this.form.country_id = val.value[0].energy_id
|
||||||
|
this.country_name = val.value[0].name
|
||||||
|
this.showarea = false
|
||||||
|
},
|
||||||
|
cartypesChange(val){
|
||||||
|
this.form.car_type_id = val.value[0].energy_id
|
||||||
|
this.car_type_name = val.value[0].name
|
||||||
|
this.showcartype = false
|
||||||
|
},
|
||||||
|
cancel(val){
|
||||||
|
this[val] = false
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
+76
-61
@@ -5,7 +5,7 @@
|
|||||||
<view class="cell">
|
<view class="cell">
|
||||||
<view>客户称呼</view>
|
<view>客户称呼</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<input placeholder="输入客户称呼" v-model="form.name" />
|
<input placeholder="输入称呼" v-model="form.contacts" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-divider text=""></u-divider>
|
<u-divider text=""></u-divider>
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<u-divider text=""></u-divider>
|
<u-divider text=""></u-divider>
|
||||||
<view class="cell">
|
<view class="cell">
|
||||||
<view>联系方式 </view>
|
<view>联系方式 <text class="red">*</text></view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<input placeholder="输入联系方式" v-model="form.phone" />
|
<input placeholder="输入联系方式" v-model="form.phone" />
|
||||||
</view>
|
</view>
|
||||||
@@ -29,24 +29,24 @@
|
|||||||
<view class="cell">
|
<view class="cell">
|
||||||
<view>Email</view>
|
<view>Email</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<input placeholder="输入Email" v-model="form.phone" />
|
<input placeholder="输入Email" v-model="form.email" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-divider text=""></u-divider>
|
<u-divider text=""></u-divider>
|
||||||
<view class="cell">
|
<view class="cell">
|
||||||
<view>客户偏好</view>
|
<view>客户偏好</view>
|
||||||
<view class="right select" @click="showbrand = true">
|
<view class="right select" @click="showcartype = true">
|
||||||
<input placeholder="选择客户偏好" disabled v-model="brandname" />
|
<input placeholder="选择客户偏好" disabled v-model="car_type_name" />
|
||||||
<u-picker :show="showbrand" @cancel="cancel('showbrand')" :columns="brandList" keyName="name" @confirm="changeHandler"></u-picker>
|
<u-picker :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :show="showcartype" @cancel="cancel('showcartype')" :columns="carTypeList" keyName="name" @confirm="cartypesChange"></u-picker>
|
||||||
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-divider text=""></u-divider>
|
<u-divider text=""></u-divider>
|
||||||
<view class="cell">
|
<view class="cell">
|
||||||
<view>客户等级</view>
|
<view>客户等级</view>
|
||||||
<view class="right select" @click="showtype = true">
|
<view class="right select" @click="showgrade = true">
|
||||||
<input placeholder="选择客户等级" disabled v-model="vehicle_type" />
|
<input placeholder="选择客户等级" disabled v-model="grade_name" />
|
||||||
<u-picker :show="showtype" @cancel="cancel('showtype')" :columns="typesList" keyName="name" @confirm="typesChange"></u-picker>
|
<u-picker :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :show="showgrade" @cancel="cancel('showgrade')" :columns="getGradeList" keyName="name" @confirm="gradeHandler"></u-picker>
|
||||||
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -54,8 +54,7 @@
|
|||||||
<view class="cell">
|
<view class="cell">
|
||||||
<view>公司</view>
|
<view>公司</view>
|
||||||
<view class="right select" @click="showenergy = true">
|
<view class="right select" @click="showenergy = true">
|
||||||
<input placeholder="去定位" disabled v-model="vehicle_energy" />
|
<input placeholder="去定位" disabled v-model="country_name" />
|
||||||
<u-picker :show="showenergy" @cancel="cancel('showenergy')" :columns="energyList" keyName="name" @confirm="energyChange"></u-picker>
|
|
||||||
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -63,7 +62,7 @@
|
|||||||
<view class="cell1">
|
<view class="cell1">
|
||||||
<view>备注(非必填)</view>
|
<view>备注(非必填)</view>
|
||||||
<view class="">
|
<view class="">
|
||||||
<textarea auto-height v-model="form.condition_desc" placeholder="详细情况..."/>
|
<textarea auto-height v-model="form.describe" placeholder="详细情况..."/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -127,56 +126,24 @@
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
id:'',
|
id:'',
|
||||||
brandList:[],
|
showgrade: false,
|
||||||
energyList:[],
|
showcartype: false,
|
||||||
typesList:[],
|
|
||||||
brandList1:[],
|
|
||||||
energyList1:[],
|
|
||||||
typesList1:[],
|
|
||||||
showbrand: false,
|
|
||||||
showtype: false,
|
|
||||||
showenergy: false,
|
showenergy: false,
|
||||||
defaultIndex1:[0],
|
getGradeList:[],
|
||||||
defaultIndex2:[0],
|
carTypeList:[],
|
||||||
defaultIndex3:[0],
|
areaList:[],
|
||||||
brandname:'',
|
grade_name:'',
|
||||||
vehicle_type:'',
|
car_type_name:'',
|
||||||
vehicle_energy:'',
|
country_name:'',
|
||||||
form:{
|
form: {
|
||||||
name:'',
|
contacts: '',
|
||||||
vin:'',
|
gender: '男',
|
||||||
brand:'',
|
phone: '',
|
||||||
price:'',
|
email: '',
|
||||||
vehicle_type:'',
|
describe: '',
|
||||||
vehicle_energy:'',
|
grade:'',
|
||||||
mileage :'',
|
country_id:'',
|
||||||
vehicle_age:'',
|
car_type_id:''
|
||||||
condition_desc:'',
|
|
||||||
front_45_degree:'',
|
|
||||||
front_left_45_degree:'',
|
|
||||||
front_left_headlight:'',
|
|
||||||
front_view:'',
|
|
||||||
lower_front:'',
|
|
||||||
wheel_hub:'',
|
|
||||||
front_right_seat:'',
|
|
||||||
right_lower_side:'',
|
|
||||||
rear_right_taillight:'',
|
|
||||||
rear_right_45_degree:'',
|
|
||||||
lower_rear:'',
|
|
||||||
trunk:'',
|
|
||||||
left_lower_side:'',
|
|
||||||
rear_seats:'',
|
|
||||||
center_console:'',
|
|
||||||
control_panel:'',
|
|
||||||
gear_shift:'',
|
|
||||||
car_key:'',
|
|
||||||
steering_wheel:'',
|
|
||||||
dashboard:'',
|
|
||||||
odometer_reading:'',
|
|
||||||
front_left_door_panel:'',
|
|
||||||
front_left_door_function_area:'',
|
|
||||||
front_left_seat:'',
|
|
||||||
interior_ceiling:'',
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -189,6 +156,54 @@
|
|||||||
methods: {
|
methods: {
|
||||||
leftClick(){
|
leftClick(){
|
||||||
uni.navigateBack({})
|
uni.navigateBack({})
|
||||||
|
},
|
||||||
|
getGrade(){
|
||||||
|
request({
|
||||||
|
url:'customer/getGrade',
|
||||||
|
method:'get',
|
||||||
|
}).then(res => {
|
||||||
|
var list = res.data.data
|
||||||
|
this.getGradeList = [list]
|
||||||
|
})
|
||||||
|
},
|
||||||
|
carType(){
|
||||||
|
request({
|
||||||
|
url:'carType/getAll',
|
||||||
|
method:'get',
|
||||||
|
}).then(res => {
|
||||||
|
var list = res.data.data
|
||||||
|
this.carTypeList = [list]
|
||||||
|
})
|
||||||
|
},
|
||||||
|
area(){
|
||||||
|
request({
|
||||||
|
url:'area/getAll',
|
||||||
|
method:'get',
|
||||||
|
}).then(res => {
|
||||||
|
var list = res.data.data
|
||||||
|
this.areaList = [list]
|
||||||
|
})
|
||||||
|
},
|
||||||
|
gradeHandler(val){
|
||||||
|
this.form.grade = val.value[0].brand_id
|
||||||
|
this.grade_name = val.value[0].name
|
||||||
|
this.showgrade = false
|
||||||
|
},
|
||||||
|
areaChange(val){
|
||||||
|
this.form.country_id = val.value[0].energy_id
|
||||||
|
this.country_name = val.value[0].name
|
||||||
|
this.showarea = false
|
||||||
|
},
|
||||||
|
cartypesChange(val){
|
||||||
|
this.form.car_type_id = val.value[0].energy_id
|
||||||
|
this.car_type_name = val.value[0].name
|
||||||
|
this.showcartype = false
|
||||||
|
},
|
||||||
|
cancel(val){
|
||||||
|
this[val] = false
|
||||||
|
},
|
||||||
|
nextFn(){
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+110
-6
@@ -37,7 +37,7 @@
|
|||||||
<view class="cell1" v-if="form.followType==2">
|
<view class="cell1" v-if="form.followType==2">
|
||||||
<view>当前位置拍照上传</view>
|
<view>当前位置拍照上传</view>
|
||||||
<view style="margin-top: 10px;">
|
<view style="margin-top: 10px;">
|
||||||
<uni-file-picker fileMediatype="image" limit="1" :del-icon="false" disable-preview @select="select" @delete="delfn('front_45_degree')">
|
<uni-file-picker fileMediatype="image" limit="1" :del-icon="false" disable-preview @select="select1" @delete="delfn('front_45_degree')">
|
||||||
<image src="/static/image/customer/upimg.png" mode="" class="addimg"></image>
|
<image src="/static/image/customer/upimg.png" mode="" class="addimg"></image>
|
||||||
</uni-file-picker>
|
</uni-file-picker>
|
||||||
</view>
|
</view>
|
||||||
@@ -46,15 +46,16 @@
|
|||||||
<view class="cell1" v-if="form.followType==2">
|
<view class="cell1" v-if="form.followType==2">
|
||||||
<view>拜访内容</view>
|
<view>拜访内容</view>
|
||||||
<view class="yuyin">
|
<view class="yuyin">
|
||||||
<textarea auto-height v-model="form.condition_desc" placeholder="拜访内容..."/>
|
<textarea auto-height v-model="form.bf_desc" placeholder="拜访内容..."/>
|
||||||
<image src="/static/image/customer/yuyin.png" mode=""></image>
|
<image src="/static/image/customer/yuyin.png" mode="" @tap="startRecognizebd"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-divider text="" v-if="form.followType==2"></u-divider>
|
<u-divider text="" v-if="form.followType==2"></u-divider>
|
||||||
<view class="cell1" v-if="form.followType==2">
|
<view class="cell1" v-if="form.followType==2">
|
||||||
<view>备注(非必填)</view>
|
<view>备注(非必填)</view>
|
||||||
<view class="">
|
<view class="yuyin">
|
||||||
<textarea auto-height v-model="form.condition_desc" placeholder="详细情况..."/>
|
<textarea auto-height v-model="form.condition_desc" placeholder="详细情况..."/>
|
||||||
|
<image src="/static/image/customer/yuyin.png" mode="" @tap="startRecognize"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -121,8 +122,8 @@
|
|||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import permision from "@/common/permission.js"
|
||||||
import { request,showToast } from '@/api/apiT.js'
|
import { request,showToast } from '@/api/apiT.js'
|
||||||
// import ldSelect from '@/components/ld-select/ld-select.vue'
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@@ -139,7 +140,8 @@
|
|||||||
level: '初步接触',
|
level: '初步接触',
|
||||||
region: '',
|
region: '',
|
||||||
firstFollow: '2025-03-11 12:00:01',
|
firstFollow: '2025-03-11 12:00:01',
|
||||||
details: ''
|
details: '',
|
||||||
|
bf_desc:''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -152,6 +154,9 @@
|
|||||||
|
|
||||||
leftClick(){
|
leftClick(){
|
||||||
uni.navigateBack({})
|
uni.navigateBack({})
|
||||||
|
},
|
||||||
|
nextFn(){
|
||||||
|
|
||||||
},
|
},
|
||||||
cancel() {
|
cancel() {
|
||||||
this.show = false
|
this.show = false
|
||||||
@@ -180,6 +185,105 @@
|
|||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
delfn(name){
|
||||||
|
console.log(name)
|
||||||
|
that.carinfo[name] =''
|
||||||
|
},
|
||||||
|
uploadfn(imgUrl,name){
|
||||||
|
var that = this;
|
||||||
|
uni.uploadFile({
|
||||||
|
url: 'https://api.collect.hs.hnzhwlkj.club/upload',
|
||||||
|
filePath: imgUrl,
|
||||||
|
name: 'image',
|
||||||
|
header:{'content-type': 'application/x-www-form-urlencoded','Authorization': 'Bearer ' + uni.getStorageSync('token')},
|
||||||
|
success: (uploadFileRes) => {
|
||||||
|
const path=JSON.parse(uploadFileRes.data)
|
||||||
|
that.carinfo[name] = path.data.image_name
|
||||||
|
console.log(that.carinfo)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
select(e){
|
||||||
|
const tempFilePaths = e.tempFilePaths;
|
||||||
|
const imgUrl=tempFilePaths[0]
|
||||||
|
this.uploadfn(imgUrl,'front_45_degree')
|
||||||
|
},
|
||||||
|
select1(e){
|
||||||
|
const tempFilePaths = e.tempFilePaths;
|
||||||
|
const imgUrl=tempFilePaths[0]
|
||||||
|
this.uploadfn(imgUrl,'front_45_degree')
|
||||||
|
},
|
||||||
|
async startRecognizebd () {
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
let status = await this.checkPermission();
|
||||||
|
if (status !== 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// #endif
|
||||||
|
// TODO ios 在没有请求过权限之前无法得知是否有相关权限,这种状态下需要直接调用语音,会弹出正在识别的toast
|
||||||
|
var options = {};
|
||||||
|
var that = this;
|
||||||
|
options.engine = 'baidu';
|
||||||
|
that.valuebd = "";
|
||||||
|
plus.speech.startRecognize(options, function (s) {
|
||||||
|
console.log(s);
|
||||||
|
that.valuebd += s;
|
||||||
|
}, function (e) {
|
||||||
|
console.log("语音识别失败:" + e.message);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
async startRecognize () {
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
let status = await this.checkPermission();
|
||||||
|
if (status !== 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// #endif
|
||||||
|
// TODO ios 在没有请求过权限之前无法得知是否有相关权限,这种状态下需要直接调用语音,会弹出正在识别的toast
|
||||||
|
var options = {};
|
||||||
|
var that = this;
|
||||||
|
that.value = "";
|
||||||
|
options.engine = 'iFly';
|
||||||
|
options.punctuation = false; // 是否需要标点符号
|
||||||
|
options.timeout = 10 * 1000; //语音录入持续时长
|
||||||
|
plus.speech.startRecognize(options, function(s) {
|
||||||
|
console.log(s);
|
||||||
|
that.value += s;
|
||||||
|
// 关闭语音
|
||||||
|
plus.speech.stopRecognize();
|
||||||
|
}, function (e) {
|
||||||
|
console.log("语音识别失败:" + e.message);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
async checkPermission() {
|
||||||
|
let status = permision.isIOS ? await permision.requestIOS('record') :
|
||||||
|
await permision.requestAndroid('android.permission.RECORD_AUDIO');
|
||||||
|
|
||||||
|
if (status === null || status === 1) {
|
||||||
|
status = 1;
|
||||||
|
} else if (status === 2) {
|
||||||
|
uni.showModal({
|
||||||
|
content: "系统麦克风已关闭",
|
||||||
|
confirmText: "确定",
|
||||||
|
showCancel: false,
|
||||||
|
success: function(res) {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
uni.showModal({
|
||||||
|
content: "需要麦克风权限",
|
||||||
|
confirmText: "设置",
|
||||||
|
success: function(res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
permision.gotoAppSetting();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
// #endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
+44
-18
@@ -1,10 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="conts">
|
<view class="conts">
|
||||||
<view class="top">
|
<view class="top">
|
||||||
<view class="navbar">客户管理</view>
|
<view class="navbar">{{$t('customer.title')}}</view>
|
||||||
<view class="topSearch">
|
<view class="topSearch">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<u-search v-model="value5" bgColor="#fff" search-icon="" :show-action="false" placeholder="请输入客户名称或手机号"></u-search>
|
<u-search v-model="value5" bgColor="#fff" search-icon="" :show-action="false" :placeholder="$t('customer.inputhd')"></u-search>
|
||||||
<view @click="searchCli" class="search">
|
<view @click="searchCli" class="search">
|
||||||
<image src="/static/image/customer/search1.png" mode=""></image>
|
<image src="/static/image/customer/search1.png" mode=""></image>
|
||||||
</view>
|
</view>
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
<view class="" @click="godetile(item)">
|
<view class="" @click="godetile(item)">
|
||||||
<view class="top">
|
<view class="top">
|
||||||
<view class="">2025.03.11 12:00</view>
|
<view class="">2025.03.11 12:00</view>
|
||||||
<view class="tag">跟进中</view>
|
<view class="tag">{{$t('followup')}}</view>
|
||||||
</view>
|
</view>
|
||||||
<u-divider text="" :hairline="true"></u-divider>
|
<u-divider text="" :hairline="true"></u-divider>
|
||||||
<view class="cont">
|
<view class="cont">
|
||||||
@@ -33,28 +33,28 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="desc1">
|
<view class="desc1">
|
||||||
<view class="" @click="phoneClick(item)"><image src="/static/image/customer/phone.png" mode=""></image> 呼叫</view>
|
<view class="" @click="callPhone(item)"><image src="/static/image/customer/phone.png" mode=""></image> {{$t('call')}}</view>
|
||||||
<view class="" @click="editClick(item)"><image src="/static/image/customer/edit.png" mode=""></image> 跟进</view>
|
<view class="" @click="editClick(item)"><image src="/static/image/customer/edit.png" mode=""></image> {{$t('followup')}}</view>
|
||||||
<view class="" @click="delClick(item)"><image src="/static/image/customer/trash.png" mode=""></image> 删除</view>
|
<view class="" @click="delClick(item)"><image src="/static/image/customer/trash.png" mode=""></image> {{$t('delete')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-picker :show="show" :columns="columns" @cancel="cancel" @confirm="confirm" title="客户筛选" keyName="label"></u-picker>
|
<u-picker :show="show" :columns="columns" @cancel="cancel" @confirm="confirm" title="客户筛选" keyName="label"></u-picker>
|
||||||
<u-popup :show="showts" :closeOnClickOverlay="false" :round="20" mode="center">
|
<u-popup :show="showts" :closeOnClickOverlay="false" :round="20" mode="center">
|
||||||
<view class="popupcontent">
|
<view class="popupcontent">
|
||||||
<view class="title">提示</view>
|
<view class="title">{{$t('prompt')}}</view>
|
||||||
<view class="text">
|
<view class="text">
|
||||||
确定要删除此客户吗?
|
{{$t('deletemsg')}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="cent">
|
<view class="cent">
|
||||||
<view class="btn1" @click="showts = !showts">取消</view>
|
<view class="btn1" @click="showts = !showts">{{$t('cancel')}}</view>
|
||||||
<view class="btn" @click="showts = !showts">确定</view>
|
<view class="btn" @click="showts = !showts">{{$t('confirm')}}</view>
|
||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
<movable-area class="movable-area">
|
<movable-area class="movable-area">
|
||||||
<movable-view class="movable-view" :x="x" :y="y" direction="all">
|
<movable-view class="movable-view" :x="x" :y="y" direction="all">
|
||||||
<view class="index" @tap="addcustomer" >
|
<view class="index" @tap="addcustomer">
|
||||||
<image src="/static/image/customer/add.png" mode="widthFix">
|
<image src="/static/image/customer/add.png" mode="widthFix">
|
||||||
</view>
|
</view>
|
||||||
</movable-view>
|
</movable-view>
|
||||||
@@ -85,14 +85,22 @@
|
|||||||
}]
|
}]
|
||||||
],
|
],
|
||||||
datalist:[
|
datalist:[
|
||||||
{id:1},
|
{id:1,phone:'17839087603'},
|
||||||
{id:2},
|
{id:2,phone:'18437931136'},
|
||||||
{id:3},
|
{id:3,phone:'18339827479'},
|
||||||
{id:4}
|
{id:4,phone:'17839087603'}
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onLoad() {
|
||||||
|
const { windowWidth, windowHeight } = uni.getSystemInfoSync();
|
||||||
|
this.x = windowWidth-70
|
||||||
|
this.y = windowHeight-25
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
searchCli(){
|
||||||
|
|
||||||
|
},
|
||||||
close() {
|
close() {
|
||||||
// console.log('close');
|
// console.log('close');
|
||||||
this.show= false
|
this.show= false
|
||||||
@@ -111,8 +119,26 @@
|
|||||||
url: '/pages/customer/detile'
|
url: '/pages/customer/detile'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
phoneClick(item){
|
// 拨打电话
|
||||||
console.log(item)
|
callPhone(item) {
|
||||||
|
var phoneNumber= item.phone
|
||||||
|
if (!phoneNumber) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请输入电话号码',
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
uni.makePhoneCall({
|
||||||
|
phoneNumber: phoneNumber,
|
||||||
|
success: () => {
|
||||||
|
console.log('拨打电话成功');
|
||||||
|
},
|
||||||
|
fail: (err) => {
|
||||||
|
console.log('拨打电话失败', err);
|
||||||
|
},
|
||||||
|
});
|
||||||
},
|
},
|
||||||
editClick(item){
|
editClick(item){
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
@@ -199,7 +225,7 @@
|
|||||||
background: #3471FF;
|
background: #3471FF;
|
||||||
color: white;
|
color: white;
|
||||||
border-radius: 10px 0px 0px 10px;
|
border-radius: 10px 0px 0px 10px;
|
||||||
padding: 0px 10px;
|
padding: 3px 10px;
|
||||||
margin-right: -15px;
|
margin-right: -15px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+52
-22
@@ -1,22 +1,21 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="contop">
|
<view class="contop">
|
||||||
<view class="changeyy" @click="switchLang" >
|
<view class="changeyy" @click="showlang = true" >
|
||||||
<image src="/static/image/change.png" mode=""></image>切换语言
|
<image src="/static/image/change.png" mode=""></image>{{$t('home.langbtn')}}
|
||||||
</view>
|
</view>
|
||||||
<view class="title">
|
<view class="title">
|
||||||
您已陪伴HESU CRM
|
{{$t('home.title')}} HESU CRM
|
||||||
</view>
|
</view>
|
||||||
<view class="num">
|
<view class="num">
|
||||||
66 <text>天</text>
|
66 <text>{{$t('home.day')}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="data-briefing">
|
<view class="data-briefing">
|
||||||
<view class="top">
|
<view class="top">
|
||||||
<text>数据简报</text>
|
<text>{{$t('home.databf')}}</text>
|
||||||
<view class="time" @click="show = true">
|
<view class="time" @click="show = true">
|
||||||
<image src="/static/image/time.png" mode=""></image>
|
<image src="/static/image/time.png" mode=""></image>
|
||||||
<!-- <u--input v-model="timevalue" border="none" disabled disabledColor="#ffffff" style="width: 65px;margin-left: 5px;"></u--input> -->
|
|
||||||
<u--input v-model="time" border="none" disabled disabledColor="#ffffff" style="width: 65px;margin-left: 5px;"></u--input>
|
<u--input v-model="time" border="none" disabled disabledColor="#ffffff" style="width: 65px;margin-left: 5px;"></u--input>
|
||||||
<u-icon name="arrow-down" color="#666666" size="16"></u-icon>
|
<u-icon name="arrow-down" color="#666666" size="16"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
@@ -25,19 +24,19 @@
|
|||||||
<u-grid :border="false" col="4">
|
<u-grid :border="false" col="4">
|
||||||
<u-grid-item>
|
<u-grid-item>
|
||||||
<text class="grid-num">20</text>
|
<text class="grid-num">20</text>
|
||||||
<text class="grid-text">常见问题</text>
|
<text class="grid-text">{{$t('home.addxs')}}</text>
|
||||||
</u-grid-item>
|
</u-grid-item>
|
||||||
<u-grid-item>
|
<u-grid-item>
|
||||||
<text class="grid-num">20</text>
|
<text class="grid-num">20</text>
|
||||||
<text class="grid-text">新增客户</text>
|
<text class="grid-text">{{$t('home.addkh')}}</text>
|
||||||
</u-grid-item>
|
</u-grid-item>
|
||||||
<u-grid-item>
|
<u-grid-item>
|
||||||
<text class="grid-num">20</text>
|
<text class="grid-num">20</text>
|
||||||
<text class="grid-text">新增拜访</text>
|
<text class="grid-text">{{$t('home.addbf')}}</text>
|
||||||
</u-grid-item>
|
</u-grid-item>
|
||||||
<u-grid-item>
|
<u-grid-item>
|
||||||
<text class="grid-num">20</text>
|
<text class="grid-num">20</text>
|
||||||
<text class="grid-text">新增跟进</text>
|
<text class="grid-text">{{$t('home.addgj')}}</text>
|
||||||
</u-grid-item>
|
</u-grid-item>
|
||||||
</u-grid>
|
</u-grid>
|
||||||
</view>
|
</view>
|
||||||
@@ -57,7 +56,8 @@
|
|||||||
</userlist>
|
</userlist>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-datetime-picker :show="show" v-model="value1" @confirm="confirm" @cancel="cancel" @close="close" mode="year-month"></u-datetime-picker>
|
<u-datetime-picker :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :show="show" v-model="value1" @confirm="confirm" @cancel="cancel" mode="year-month"></u-datetime-picker>
|
||||||
|
<u-picker :cancel-text="$t('cancel')" :confirm-text="$t('confirm')" :show="showlang" :columns="columns" @cancel="cancellang" @confirm="confirmlang" :title="$t('home.langbtn')" keyName="label"></u-picker>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -73,6 +73,7 @@
|
|||||||
home: this.$t('tabbar.home'),
|
home: this.$t('tabbar.home'),
|
||||||
value0: 0,
|
value0: 0,
|
||||||
show: false,
|
show: false,
|
||||||
|
showlang: false,
|
||||||
value1: Number(new Date()),
|
value1: Number(new Date()),
|
||||||
timevalue:this.result(Number(new Date())),
|
timevalue:this.result(Number(new Date())),
|
||||||
time:this.result(Number(new Date())),
|
time:this.result(Number(new Date())),
|
||||||
@@ -82,25 +83,56 @@
|
|||||||
{id:3},
|
{id:3},
|
||||||
{id:4}
|
{id:4}
|
||||||
],
|
],
|
||||||
|
columns:[
|
||||||
|
[{
|
||||||
|
label: '中文',
|
||||||
|
id: 'zh'
|
||||||
|
}, {
|
||||||
|
label: '英文',
|
||||||
|
id: 'en'
|
||||||
|
}, {
|
||||||
|
label: '俄语',
|
||||||
|
id: 'ru'
|
||||||
|
}]
|
||||||
|
],
|
||||||
list1: [
|
list1: [
|
||||||
{
|
{
|
||||||
name: '全部',
|
name: this.$t('all'),
|
||||||
}, {
|
}, {
|
||||||
name: '跟进中',
|
name: this.$t('followup'),
|
||||||
}, {
|
}, {
|
||||||
name: '已成交'
|
name: this.$t('deal')
|
||||||
}, {
|
}, {
|
||||||
name: '已丢失'
|
name: this.$t('lost')
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
switchLang() {
|
confirm(e) {
|
||||||
this.$i18n.locale = this.$i18n.locale == 'en' ? 'cn' : 'en';
|
// console.log('confirm', e);
|
||||||
|
this.show = false
|
||||||
|
},
|
||||||
|
cancellang() {
|
||||||
|
// console.log('cancel');
|
||||||
|
this.showlang = false
|
||||||
|
},
|
||||||
|
confirmlang(e) {
|
||||||
|
this.$i18n.locale = e.value[0].id
|
||||||
|
this.showlang = false
|
||||||
|
this.list1 = [
|
||||||
|
{
|
||||||
|
name: this.$t('all'),
|
||||||
|
}, {
|
||||||
|
name: this.$t('followup'),
|
||||||
|
}, {
|
||||||
|
name: this.$t('deal')
|
||||||
|
}, {
|
||||||
|
name: this.$t('lost')
|
||||||
|
}
|
||||||
|
];
|
||||||
uni.setTabBarItem({
|
uni.setTabBarItem({
|
||||||
index: 0,
|
index: 0,
|
||||||
text: this.$t('tabbar.home')
|
text: this.$t('tabbar.home')
|
||||||
@@ -114,9 +146,6 @@
|
|||||||
text: this.$t('tabbar.mine')
|
text: this.$t('tabbar.mine')
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
close() {
|
|
||||||
this.show = false
|
|
||||||
},
|
|
||||||
cancel() {
|
cancel() {
|
||||||
this.show = false
|
this.show = false
|
||||||
},
|
},
|
||||||
@@ -173,6 +202,7 @@
|
|||||||
.title{
|
.title{
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
width: 58%;
|
||||||
}
|
}
|
||||||
.num{
|
.num{
|
||||||
font-size: 60rpx;
|
font-size: 60rpx;
|
||||||
@@ -220,7 +250,7 @@
|
|||||||
}
|
}
|
||||||
.grid-text{
|
.grid-text{
|
||||||
color: #222222;
|
color: #222222;
|
||||||
font-size: 24rpx;
|
font-size: 20rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+72
-20
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="contents">
|
<view class="contents">
|
||||||
<view class="navbar">我的</view>
|
<view class="navbar">{{$t('mine.title')}}</view>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="contop">
|
<view class="contop">
|
||||||
<view class="">
|
<view class="">
|
||||||
@@ -20,50 +20,55 @@
|
|||||||
<view class="bottomCon">
|
<view class="bottomCon">
|
||||||
<view class="sonContent" @click="navTo('/pages/mine/massege')">
|
<view class="sonContent" @click="navTo('/pages/mine/massege')">
|
||||||
<image class="son-img-bg" src="/static/image/mine/icon1.png"></image>
|
<image class="son-img-bg" src="/static/image/mine/icon1.png"></image>
|
||||||
<span>消息通知</span>
|
<span>{{$t('mine.msg')}}</span>
|
||||||
<view class="">
|
<view class="">
|
||||||
<u-badge :value="9" type="error" style="display: inline-block;"></u-badge>
|
<u-badge :value="9" type="error" style="display: inline-block;"></u-badge>
|
||||||
<uni-icons type="right" size="18"></uni-icons>
|
<uni-icons type="right" size="18"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="sonContent" @click="navTo('/pages/mine/drafts')">
|
<view class="sonContent" @click="navTo('/pages/mine/resetPwd')">
|
||||||
<image class="son-img-bg" src="/static/image/mine/icon2.png"></image>
|
<image class="son-img-bg" src="/static/image/mine/icon2.png"></image>
|
||||||
<span>修改密码</span>
|
<span>{{$t('mine.cpassword')}}</span>
|
||||||
<uni-icons type="right" size="18"></uni-icons>
|
<uni-icons type="right" size="18"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
<view class="sonContent" @click="navTo('/pages/mine/soldList')">
|
<view class="sonContent" @click="show=true">
|
||||||
<image class="son-img-bg" src="/static/image/mine/icon3.png"></image>
|
<image class="son-img-bg" src="/static/image/mine/icon3.png"></image>
|
||||||
<span>联系客服</span>
|
<span>{{$t('mine.contact')}}</span>
|
||||||
<uni-icons type="right" size="18"></uni-icons>
|
<uni-icons type="right" size="18"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
<view class="sonContent" @click="navTo('/pages/mine/mycarSource')">
|
<view class="sonContent" @click="navTo('/pages/mine/feedback')">
|
||||||
<image class="son-img-bg" src="/static/image/mine/icon4.png"></image>
|
<image class="son-img-bg" src="/static/image/mine/icon4.png"></image>
|
||||||
<span>意见反馈</span>
|
<span>{{$t('mine.feedback')}}</span>
|
||||||
<uni-icons type="right" size="18"></uni-icons>
|
<uni-icons type="right" size="18"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
<view class="sonContent" @click="navTo('/pages/mine/drafts')">
|
<view class="sonContent" @click="navTo('/pages/mine/about')">
|
||||||
<image class="son-img-bg" src="/static/image/mine/icon5.png"></image>
|
<image class="son-img-bg" src="/static/image/mine/icon5.png"></image>
|
||||||
<span>关于我们</span>
|
<span>{{$t('mine.about')}}</span>
|
||||||
<uni-icons type="right" size="18"></uni-icons>
|
<uni-icons type="right" size="18"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
<view class="sonContent" @click="navTo('/pages/mine/soldList')">
|
<view class="sonContent" @click="navTo('/pages/mine/logoff')">
|
||||||
<image class="son-img-bg" src="/static/image/mine/icon6.png"></image>
|
<image class="son-img-bg" src="/static/image/mine/icon6.png"></image>
|
||||||
<span>注销账户</span>
|
<span>{{$t('mine.logoff')}}</span>
|
||||||
<uni-icons type="right" size="18"></uni-icons>
|
<uni-icons type="right" size="18"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
<view class="sonContent" @click="navTo('/pages/mine/soldList')">
|
<view class="sonContent" @click="navTo('/pages/login/index')">
|
||||||
<image class="son-img-bg" src="/static/image/mine/icon7.png"></image>
|
<image class="son-img-bg" src="/static/image/mine/icon7.png"></image>
|
||||||
<span>退出登录</span>
|
<span>{{$t('mine.logout')}}</span>
|
||||||
<uni-icons type="right" size="18"></uni-icons>
|
<uni-icons type="right" size="18"></uni-icons>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="sonContent1" @click="goout">
|
|
||||||
<span>退出当前账号</span>
|
|
||||||
</view> -->
|
|
||||||
<!-- <button v-else="is_login" class="logobtn" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">一键登录</button> -->
|
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
<!-- 联系客服弹框 -->
|
||||||
|
<u-popup :show="show" :closeOnClickOverlay="false" :round="20" mode="center">
|
||||||
|
<view class="popupcontent">
|
||||||
|
<image class="log1" src="/static/image/mine/kefu.png"></image>
|
||||||
|
<view class="title">{{$t('mine.kfphone')}}</view>
|
||||||
|
<view class="calls">13545678952</view>
|
||||||
|
<button class="btn" @click="callPhone()">{{$t('call')}}</button>
|
||||||
|
</view>
|
||||||
|
</u-popup>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -73,7 +78,6 @@
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
userinfo:'',
|
userinfo:'',
|
||||||
is_login:uni.getStorageSync('is_login'),
|
|
||||||
show: false
|
show: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -93,6 +97,26 @@
|
|||||||
url: url
|
url: url
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
// 拨打电话
|
||||||
|
callPhone(phoneNumber) {
|
||||||
|
this.show = false;
|
||||||
|
if (!phoneNumber) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请输入电话号码',
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uni.makePhoneCall({
|
||||||
|
phoneNumber: phoneNumber,
|
||||||
|
success: () => {
|
||||||
|
console.log('拨打电话成功');
|
||||||
|
},
|
||||||
|
fail: (err) => {
|
||||||
|
console.log('拨打电话失败', err);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -215,5 +239,33 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.popupcontent{
|
||||||
|
padding: 20px 30px;
|
||||||
|
background: linear-gradient(to bottom, #B1C8FF, #ffffff);
|
||||||
|
border-radius: 10px;
|
||||||
|
text-align: center;
|
||||||
|
color: #333333;
|
||||||
|
.title{
|
||||||
|
font-size: 32rpx;
|
||||||
|
}
|
||||||
|
.calls{
|
||||||
|
color: #3471FF;
|
||||||
|
font-size: 40rpx;
|
||||||
|
margin: 10px 0px;
|
||||||
|
}
|
||||||
|
image{
|
||||||
|
width: 360rpx;
|
||||||
|
height:360rpx;
|
||||||
|
}
|
||||||
|
.btn{
|
||||||
|
background: linear-gradient(to right, #3471FF, #6776FF);
|
||||||
|
color: white;
|
||||||
|
border-radius: 50px;
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 30px;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
+90
-128
@@ -1,35 +1,25 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="page">
|
<view class="page">
|
||||||
<view class="title">
|
<view class="title">
|
||||||
<view>Hello!<br>欢迎来到XXX</view>
|
<image src="/static/image/hesu.png" mode=""></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="form">
|
<view class="form">
|
||||||
<view class="tab">
|
|
||||||
<view :class="loginType==1? 'select type1' : 'type1'" @click="loginType=1">快捷登录</view>
|
|
||||||
<view :class="loginType==2? 'select type2' : 'type2'" @click="loginType=2">账号登陆</view>
|
|
||||||
</view>
|
|
||||||
<view class="inputs_button">
|
<view class="inputs_button">
|
||||||
<view class="inputs">
|
<view class="inputs">
|
||||||
<view class="account">
|
<view class="account">
|
||||||
<input type="number" v-model="account" :adjust-position="false" placeholder="手机号" />
|
<input type="number" v-model="email" :adjust-position="false" placeholder="手机号" />
|
||||||
</view>
|
</view>
|
||||||
<view class="password" v-if="loginType==2">
|
<view class="password">
|
||||||
<u--input
|
<u--input
|
||||||
type="password"
|
type="password"
|
||||||
placeholder="请输入内容"
|
placeholder="请输入内容"
|
||||||
border="none"
|
border="none"
|
||||||
></u--input>
|
></u--input>
|
||||||
<!-- <input :type="pwdShow? 'text' : 'password'" v-model="password" :adjust-position="false"
|
|
||||||
placeholder="密码" /> -->
|
|
||||||
<uni-icons :type="pwdShow? 'eye-filled' : 'eye-slash-filled'" size="24" color="#cccccc"
|
|
||||||
@click="pwdShow=!pwdShow"></uni-icons>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="vcode" v-if="loginType==1">
|
|
||||||
<input type="number" v-model="vcode" :adjust-position="false" placeholder="验证码" />
|
|
||||||
<text v-if="vcodeTime==0" style="color:#3264ed" @click="getVcode">获取验证码</text>
|
|
||||||
<text v-else style="color:#ccc">重新获取({{vcodeTime}}s)</text>
|
|
||||||
</view>
|
</view>
|
||||||
|
<view class="forgot-password">
|
||||||
|
<text @click="forgotPassword">忘记密码?</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="button">
|
<view class="button">
|
||||||
<view @click="login">
|
<view @click="login">
|
||||||
@@ -37,30 +27,40 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="three">
|
||||||
|
<u-divider text="第三方登录" style="padding: 0px 40px;"></u-divider>
|
||||||
|
<u-grid :border="false" @click="click" align="center">
|
||||||
|
<u-grid-item>
|
||||||
|
<image src="/static/image/login/fenshu.png" mode=""></image>
|
||||||
|
<text class="grid-text">飞书</text>
|
||||||
|
</u-grid-item>
|
||||||
|
<u-grid-item>
|
||||||
|
<image src="/static/image/login/emali.png" mode=""></image>
|
||||||
|
<text class="grid-text">邮箱</text>
|
||||||
|
</u-grid-item>
|
||||||
|
<u-grid-item>
|
||||||
|
<image src="/static/image/login/phone.png" mode=""></image>
|
||||||
|
<text class="grid-text">手机</text>
|
||||||
|
</u-grid-item>
|
||||||
|
</u-grid>
|
||||||
</view>
|
</view>
|
||||||
<view class="pact">
|
<view class="pact">
|
||||||
<radio :checked="pactChecked" activeBackgroundColor="#3264ed" activeBorderColor="#3264ed"
|
<radio :checked="pactChecked" activeBackgroundColor="#3264ed" activeBorderColor="#3264ed"
|
||||||
borderColor="#3264ed" color="#fff" @click="pactChange" />
|
<view>我已经阅读并同意<text @click="toPact">《用户协议》</text>和<text @click="toPact">《隐私协议》</text></view>
|
||||||
<view>我已阅读并同意<text @click="toPact">《用户协议》</text>和<text @click="toPact">《隐私协议》</text></view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { request,showToast } from '@/api/apiT.js'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
account: "",
|
email: "",
|
||||||
password: "",
|
password: "",
|
||||||
vcode: "",
|
|
||||||
|
|
||||||
loginType: 1,
|
|
||||||
|
|
||||||
pwdShow: false,
|
|
||||||
pactChecked: false,
|
pactChecked: false,
|
||||||
|
|
||||||
vcodeTime: 0,
|
|
||||||
vcodeTimer: null
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
@@ -68,29 +68,50 @@
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
login() {
|
login() {
|
||||||
|
if(this.email==''){
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "登录方式" + this.loginType,
|
title:'邮箱不能为空',
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
})
|
});
|
||||||
},
|
return false
|
||||||
getVcode() {
|
|
||||||
this.vcodeTime = 60
|
|
||||||
this.vcodeTimer = setInterval(() => {
|
|
||||||
if (this.vcodeTime > 0) {
|
|
||||||
this.vcodeTime--
|
|
||||||
} else {
|
|
||||||
clearInterval(this.vcodeTimer)
|
|
||||||
this.vcodeTimer = null
|
|
||||||
}
|
}
|
||||||
}, 1000)
|
if(this.password==''){
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "获取验证码",
|
title:'密码不能为空',
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if(!this.pactChecked){
|
||||||
|
uni.showToast({
|
||||||
|
title:'请先勾选同意用户服务协议以及隐私政策',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
request({
|
||||||
|
url:'user/login',
|
||||||
|
method:'POST',
|
||||||
|
data:{
|
||||||
|
email: this.email,
|
||||||
|
password: this.password,
|
||||||
|
}
|
||||||
|
}).then(res => {
|
||||||
|
console.log(res.data.data)
|
||||||
|
if (res.data.code == -1) {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.data.msg,
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
|
||||||
|
} else if (res.data.code == 0) {
|
||||||
|
//返回数据接收成功
|
||||||
|
uni.reLaunch({
|
||||||
|
url: '/pages/index/index',// 替换为你要跳转的页面路径
|
||||||
|
});
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
pactChange() {
|
|
||||||
this.pactChecked = !this.pactChecked
|
|
||||||
},
|
|
||||||
toPact() {
|
toPact() {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: "协议",
|
title: "协议",
|
||||||
@@ -104,8 +125,7 @@
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.page {
|
.page {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
background-image: url("../../static/image/loginBg.png");
|
background-image: url("../../static/image/login/loginbg.png");
|
||||||
// background: url("../../static/image/loginBg.png") no-repeat top center;
|
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -114,87 +134,30 @@
|
|||||||
|
|
||||||
.title {
|
.title {
|
||||||
padding-top: 220rpx;
|
padding-top: 220rpx;
|
||||||
padding-bottom: 70rpx;
|
text-align: center;
|
||||||
|
image{
|
||||||
view {
|
width: 160px;
|
||||||
padding-left: 64rpx;
|
height: 37px;
|
||||||
font-size: 48rpx;
|
|
||||||
font-weight: 700;
|
|
||||||
color: #383838;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.form {
|
.form {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
margin: 0 32rpx;
|
margin: 0 76rpx;
|
||||||
border-radius: 40rpx;
|
|
||||||
background-color: #fff;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
.tab {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
background-color: #ecf1fb;
|
|
||||||
height: 100rpx;
|
|
||||||
background: linear-gradient(180deg, #e3ebf9 0%, #ffffff 100%);
|
|
||||||
|
|
||||||
view {
|
|
||||||
width: 340rpx;
|
|
||||||
line-height: 100rpx;
|
|
||||||
text-align: center;
|
|
||||||
color: #9e9e9e;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
view::after {
|
|
||||||
content: '';
|
|
||||||
width: 50rpx;
|
|
||||||
height: 8rpx;
|
|
||||||
display: block;
|
|
||||||
background-color: #3264ed;
|
|
||||||
border-radius: 4rpx;
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
bottom: 14rpx;
|
|
||||||
transform: translateX(-50%);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
view.select {
|
|
||||||
background-color: #fff;
|
|
||||||
color: #3264ed;
|
|
||||||
}
|
|
||||||
|
|
||||||
view.type1.select {
|
|
||||||
border-radius: 0 40rpx 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
view.type2.select {
|
|
||||||
border-radius: 40rpx 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
view.select::after {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.inputs_button {
|
.inputs_button {
|
||||||
background-color: #fff;
|
|
||||||
|
|
||||||
.inputs {
|
.inputs {
|
||||||
padding: 150rpx 32rpx 0;
|
padding: 150rpx 0px 0;
|
||||||
margin-bottom: 80rpx;
|
margin-bottom: 20rpx;
|
||||||
|
|
||||||
.account,
|
.account,
|
||||||
.password,
|
.password{
|
||||||
.vcode {
|
height: 80rpx;
|
||||||
height: 96rpx;
|
border-radius: 50px;
|
||||||
border-radius: 20rpx;
|
|
||||||
padding: 0 48rpx;
|
padding: 0 48rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: #f7fafc;
|
background-color: #F6F6F6;
|
||||||
|
|
||||||
input {
|
input {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
@@ -204,39 +167,38 @@
|
|||||||
.account {
|
.account {
|
||||||
margin-bottom: 48rpx;
|
margin-bottom: 48rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.vcode {
|
|
||||||
text {
|
|
||||||
text-wrap: nowrap;
|
|
||||||
font-size: 26rpx;
|
|
||||||
background-color: #fff;
|
|
||||||
padding: 14rpx 30rpx;
|
|
||||||
border-radius: 12rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.button {
|
.button {
|
||||||
padding: 0 32rpx;
|
padding: 0 32rpx;
|
||||||
|
|
||||||
view {
|
view {
|
||||||
line-height: 96rpx;
|
line-height: 80rpx;
|
||||||
border-radius: 20rpx;
|
border-radius: 50px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
background-color: #3264ed;
|
background: linear-gradient(to right, #3471FF, #6776FF);
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.three{
|
||||||
|
margin: 40rpx 0px;
|
||||||
|
padding: 20rpx 40rpx;
|
||||||
|
image{
|
||||||
|
width: 100rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.forgot-password {
|
||||||
|
text-align: right;
|
||||||
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pact {
|
.pact {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding-bottom: 120rpx;
|
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
|
|
||||||
text {
|
text {
|
||||||
|
|||||||
@@ -0,0 +1,90 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<uni-nav-bar leftText=" " :fixed="true" :border="false" leftIcon="back" @clickLeft="leftClick" color="#000000"
|
||||||
|
backgroundColor="#fff" :statusBar="true" title="关于我们"></uni-nav-bar>
|
||||||
|
<view class="content">
|
||||||
|
<view class="title">
|
||||||
|
<image src="/static/image/hesu.png" mode=""></image>
|
||||||
|
</view>
|
||||||
|
<u-cell-group :border="false">
|
||||||
|
<u-cell
|
||||||
|
size="large"
|
||||||
|
title="版本更新"
|
||||||
|
value="v0.0101"
|
||||||
|
isLink
|
||||||
|
@click="handleVersionUpdate"
|
||||||
|
></u-cell>
|
||||||
|
<u-cell title="隐私政策" isLink @click="handlePrivacyPolicy" />
|
||||||
|
<u-cell title="用户协议" isLink @click="handleUserAgreement" />
|
||||||
|
</u-cell-group>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="footer">
|
||||||
|
<text class="copyright">©河南新友合科技有限公司 版权所有</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
leftClick(){
|
||||||
|
uni.navigateBack({})
|
||||||
|
},
|
||||||
|
handleVersionUpdate() {
|
||||||
|
uni.showToast({
|
||||||
|
title: '检查版本更新',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
// 这里可以添加检查版本更新的逻辑
|
||||||
|
},
|
||||||
|
handlePrivacyPolicy() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/about/privacy-policy'
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleUserAgreement() {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/about/user-agreement'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
::v-deep .u-cell__body{
|
||||||
|
padding: 15px 0px !important;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
padding: 140rpx 0px;
|
||||||
|
text-align: center;
|
||||||
|
image{
|
||||||
|
width: 160px;
|
||||||
|
height: 37px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 10px 15px;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 20px;
|
||||||
|
.copyright {
|
||||||
|
font-size: 12px;
|
||||||
|
color:#3471FF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<uni-nav-bar leftText=" " :fixed="true" :border="false" leftIcon="back" @clickLeft="leftClick" color="#000000"
|
||||||
|
backgroundColor="#fff" :statusBar="true" title="意见反馈"></uni-nav-bar>
|
||||||
|
<view class="container">
|
||||||
|
<u--textarea v-model="value2" border="none" :placeholder="$t('mine.feedbackinputhd')" count ></u--textarea>
|
||||||
|
<view class="cels">
|
||||||
|
<text>{{$t('mine.lxcall')}}</text>
|
||||||
|
<input :placeholder="$t('mine.lxcallinputhd')" v-model="form.phone" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="foot">
|
||||||
|
<button class="btn" @click="nextFn">{{$t('submit')}}</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
feedback: '',
|
||||||
|
phone: ''
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
leftClick(){
|
||||||
|
uni.navigateBack({})
|
||||||
|
},
|
||||||
|
submitForm() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.u-textarea{
|
||||||
|
background-color: #F6F6F6 !important;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
padding: 20px;
|
||||||
|
color: #666666;
|
||||||
|
font-size: 28rpx;
|
||||||
|
.cels{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
background-color: #F6F6F6;
|
||||||
|
padding: 15px 10px;
|
||||||
|
margin-top: 20px;
|
||||||
|
border-radius: 10px;
|
||||||
|
input{
|
||||||
|
text-align: right;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.foot{
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0px;
|
||||||
|
width: 100%;
|
||||||
|
height: 90px;
|
||||||
|
background: #FFFFFF;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
.btn{
|
||||||
|
background: linear-gradient(to right, #3471FF, #6776FF);
|
||||||
|
color: white;
|
||||||
|
border-radius: 50px;
|
||||||
|
width: 92%;
|
||||||
|
margin-bottom: 40px;
|
||||||
|
margin: 15px 4%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<uni-nav-bar leftText=" " :fixed="true" :border="false" leftIcon="back" @clickLeft="leftClick" color="#000000"
|
||||||
|
backgroundColor="#fff" :statusBar="true" title="注销账户"></uni-nav-bar>
|
||||||
|
<!-- 提示信息 -->
|
||||||
|
<view class="card-content">
|
||||||
|
<image src="/static/image/mine/waring.png" mode=""></image>
|
||||||
|
<view class="section-title">账户注销</view>
|
||||||
|
<view class="warning-text">以下信息将被清空无法找回</view>
|
||||||
|
<view class="msgcont">
|
||||||
|
<view class=""><text>*</text> 身份、账号信息</view>
|
||||||
|
<view class=""><text>*</text>所有客户信息</view>
|
||||||
|
<view class=""><text>*</text>个人隐私信息</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 确定注销按钮 -->
|
||||||
|
<view class="foot">
|
||||||
|
<button class="btn" @click="nextFn">确定注销账户</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
leftClick(){
|
||||||
|
uni.navigateBack({})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.card-content {
|
||||||
|
margin-top: 100rpx;
|
||||||
|
padding:30rpx ;
|
||||||
|
text-align: center;
|
||||||
|
color: #222222;
|
||||||
|
image{
|
||||||
|
width: 120rpx;
|
||||||
|
height: 112rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.section-title {
|
||||||
|
font-size: 18px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning-text {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #999999;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
.msgcont{
|
||||||
|
margin-top: 60rpx;
|
||||||
|
background-color: #F6F6F6;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 15px;
|
||||||
|
text-align: left;
|
||||||
|
line-height: 30px;
|
||||||
|
text{
|
||||||
|
color: #FE4949;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.foot{
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0px;
|
||||||
|
width: 100%;
|
||||||
|
height: 90px;
|
||||||
|
background: #FFFFFF;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
.btn{
|
||||||
|
background: linear-gradient(to right, #3471FF, #6776FF);
|
||||||
|
color: white;
|
||||||
|
border-radius: 50px;
|
||||||
|
width: 92%;
|
||||||
|
margin-bottom: 40px;
|
||||||
|
margin: 15px 4%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -48,7 +48,11 @@
|
|||||||
title: `点击了第 ${index + 1} 条消息`,
|
title: `点击了第 ${index + 1} 条消息`,
|
||||||
icon: 'none'
|
icon: 'none'
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
|
leftClick(){
|
||||||
|
uni.navigateBack({})
|
||||||
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -0,0 +1,190 @@
|
|||||||
|
<template>
|
||||||
|
<view class="page">
|
||||||
|
<view class="title">
|
||||||
|
<image src="/static/image/hesu.png" mode=""></image>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="form">
|
||||||
|
<view class="inputs_button">
|
||||||
|
|
||||||
|
<view class="inputs">
|
||||||
|
<view class="laber">邮箱</view>
|
||||||
|
<view class="vcode">
|
||||||
|
<u--input
|
||||||
|
type="password"
|
||||||
|
placeholder="邮箱地址"
|
||||||
|
border="none"
|
||||||
|
></u--input>
|
||||||
|
<text v-if="vcodeTime==0" @click="getVcode">获取验证码</text>
|
||||||
|
<text v-else style="color:#fff">重新获取({{vcodeTime}}s)</text>
|
||||||
|
</view>
|
||||||
|
<view class="password">
|
||||||
|
<u--input
|
||||||
|
type="password"
|
||||||
|
placeholder="验证码"
|
||||||
|
border="none"
|
||||||
|
></u--input>
|
||||||
|
</view>
|
||||||
|
<view class="laber">重置密码</view>
|
||||||
|
<view class="account">
|
||||||
|
<u--input
|
||||||
|
type="password"
|
||||||
|
placeholder="新密码"
|
||||||
|
border="none"
|
||||||
|
></u--input>
|
||||||
|
</view>
|
||||||
|
<view class="password">
|
||||||
|
<u--input
|
||||||
|
type="password"
|
||||||
|
placeholder="确认密码"
|
||||||
|
border="none"
|
||||||
|
></u--input>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="button">
|
||||||
|
<view @click="login">
|
||||||
|
确认修改
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { request,showToast } from '@/api/apiT.js'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
email: "",
|
||||||
|
password: "",
|
||||||
|
pactChecked: false,
|
||||||
|
vcodeTime: 0,
|
||||||
|
vcodeTimer: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
leftClick(){
|
||||||
|
uni.navigateBack({})
|
||||||
|
},
|
||||||
|
login() {
|
||||||
|
if(this.email==''){
|
||||||
|
uni.showToast({
|
||||||
|
title:'邮箱不能为空',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if(this.password==''){
|
||||||
|
uni.showToast({
|
||||||
|
title:'密码不能为空',
|
||||||
|
icon: 'none'
|
||||||
|
});
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getVcode() {
|
||||||
|
this.vcodeTime = 60
|
||||||
|
this.vcodeTimer = setInterval(() => {
|
||||||
|
if (this.vcodeTime > 0) {
|
||||||
|
this.vcodeTime--
|
||||||
|
} else {
|
||||||
|
clearInterval(this.vcodeTimer)
|
||||||
|
this.vcodeTimer = null
|
||||||
|
}
|
||||||
|
}, 1000)
|
||||||
|
uni.showToast({
|
||||||
|
title: "获取验证码",
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.page {
|
||||||
|
min-height: 100vh;
|
||||||
|
background-image: url("../../static/image/login/loginbg.png");
|
||||||
|
background-size: 100%;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
padding-top: 220rpx;
|
||||||
|
text-align: center;
|
||||||
|
image{
|
||||||
|
width: 160px;
|
||||||
|
height: 37px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form {
|
||||||
|
flex: 1;
|
||||||
|
margin: 0 76rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
.inputs_button {
|
||||||
|
.inputs {
|
||||||
|
padding: 150rpx 0px 0;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
.laber{
|
||||||
|
color: #222222;
|
||||||
|
font-size: 32rpx;
|
||||||
|
line-height: 48px;
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
.account,
|
||||||
|
.vcode,
|
||||||
|
.password{
|
||||||
|
height: 80rpx;
|
||||||
|
border-radius: 50px;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
background-color: #F6F6F6;
|
||||||
|
|
||||||
|
input {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.account {
|
||||||
|
margin-bottom: 48rpx;
|
||||||
|
}
|
||||||
|
.vcode {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
padding-right: 0px;
|
||||||
|
text {
|
||||||
|
text-wrap: nowrap;
|
||||||
|
font-size: 26rpx;
|
||||||
|
padding: 14rpx 30rpx;
|
||||||
|
background-color: #3471FF;
|
||||||
|
border-radius: 50px;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
padding: 0 32rpx;
|
||||||
|
margin-top: 80rpx;
|
||||||
|
view {
|
||||||
|
line-height: 80rpx;
|
||||||
|
border-radius: 50px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 32rpx;
|
||||||
|
background: linear-gradient(to right, #3471FF, #6776FF);
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user