添加页面及部分多语言切换
This commit is contained in:
+38
-4
@@ -6,12 +6,46 @@ export default {
|
||||
mine: 'mine'
|
||||
},
|
||||
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: {
|
||||
desc: 'This is tool page'
|
||||
desc: 'This is tool page',
|
||||
title:'Customer Management',
|
||||
inputhd:'Please enter keywords to search',
|
||||
},
|
||||
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: '我的'
|
||||
},
|
||||
home: {
|
||||
desc: '首页'
|
||||
desc: '首页',
|
||||
langbtn:'切换语言',
|
||||
title:'您已陪伴',
|
||||
day:'天',
|
||||
databf:'数据简报',
|
||||
addxs:'新增线索',
|
||||
addkh:'新增客户',
|
||||
addbf:'新增拜访',
|
||||
addgj:'新增跟进'
|
||||
},
|
||||
customer: {
|
||||
desc: '客户'
|
||||
desc: '客户',
|
||||
title:'客户管理',
|
||||
inputhd:'请输入客户名称或手机号',
|
||||
},
|
||||
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="top">
|
||||
<view class="">2025.03.11 12:00</view>
|
||||
<view class="tag">跟进中</view>
|
||||
<view class="tag">{{$t('followup')}}</view>
|
||||
</view>
|
||||
<u-divider text="" :hairline="true"></u-divider>
|
||||
<view class="cont">
|
||||
@@ -59,7 +59,7 @@
|
||||
background: #3471FF;
|
||||
color: white;
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
padding: 0px 10px;
|
||||
padding: 3px 10px;
|
||||
margin-right: -15px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ Vue.prototype.$backgroundAudioData = {
|
||||
// 引入语言包,注意路径
|
||||
import Chinese from '@/common/locales/zh.js';
|
||||
import English from '@/common/locales/en.js';
|
||||
import Eyu from '@/common/locales/ru.js';
|
||||
|
||||
// 引入并使用vue-i18n
|
||||
import VueI18n from 'vue-i18n'
|
||||
@@ -26,13 +27,14 @@ Vue.use(VueI18n)
|
||||
// 构造i18n对象
|
||||
const i18n = new VueI18n({
|
||||
// 默认语言,这里的local属性,对应message中的cn、en属性
|
||||
locale: 'cn',
|
||||
locale: 'zh',
|
||||
// 引入语言文件
|
||||
messages: {
|
||||
// 这里的属性名是任意的,您也可以把zh设置为cn等,只是后续切换语言时
|
||||
// 要标识这里的语言属性,如:this.$i18n.locale = zh|en|cn|xxx
|
||||
'cn': Chinese,
|
||||
'zh': Chinese,
|
||||
'en': English,
|
||||
'ru': Eyu,
|
||||
}
|
||||
})
|
||||
App.mpType = 'app'
|
||||
|
||||
+11
-2
@@ -23,7 +23,8 @@
|
||||
"Push" : {},
|
||||
"Share" : {},
|
||||
"VideoPlayer" : {},
|
||||
"Maps" : {}
|
||||
"Maps" : {},
|
||||
"Speech" : {}
|
||||
},
|
||||
"distribute" : {
|
||||
"android" : {
|
||||
@@ -69,7 +70,15 @@
|
||||
},
|
||||
"sdkConfigs" : {
|
||||
"speech" : {
|
||||
"ifly" : {}
|
||||
"baidu" : {
|
||||
"appid" : "117980829",
|
||||
"apikey" : "dBy4AMe8Ii7ZHX8R072pFAfM",
|
||||
"secretkey" : "2GrccBcltV15Cd1e3C3xy2CnQtZatVso"
|
||||
},
|
||||
"ifly" : {
|
||||
"appid" : "6fb000c3",
|
||||
"apikey" : "eec37300f2e638b0bc3b91752be40c30"
|
||||
}
|
||||
},
|
||||
"maps" : {}
|
||||
},
|
||||
|
||||
+36
@@ -122,6 +122,42 @@
|
||||
"enablePullDownRefresh": false,
|
||||
"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>
|
||||
<view class="content">
|
||||
<view class="cell">
|
||||
<view>客户称呼 <text class="red">*</text></view>
|
||||
<view>客户称呼</view>
|
||||
<view class="right">
|
||||
<input placeholder="输入客户称呼" v-model="form.name" />
|
||||
<input placeholder="输入称呼" v-model="form.contacts" />
|
||||
</view>
|
||||
</view>
|
||||
<u-divider text=""></u-divider>
|
||||
@@ -26,20 +26,27 @@
|
||||
</view>
|
||||
</view>
|
||||
<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>客户偏好</view>
|
||||
<view class="right select" @click="showbrand = true">
|
||||
<input placeholder="选择客户偏好" disabled v-model="brandname" />
|
||||
<u-picker :show="showbrand" @cancel="cancel('showbrand')" :columns="brandList" keyName="name" @confirm="changeHandler"></u-picker>
|
||||
<view class="right select" @click="showcartype = true">
|
||||
<input placeholder="选择客户偏好" disabled v-model="car_type_name" />
|
||||
<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>
|
||||
</view>
|
||||
</view>
|
||||
<u-divider text=""></u-divider>
|
||||
<view class="cell">
|
||||
<view>客户等级</view>
|
||||
<view class="right select" @click="showtype = true">
|
||||
<input placeholder="选择客户等级" disabled v-model="vehicle_type" />
|
||||
<u-picker :show="showtype" @cancel="cancel('showtype')" :columns="typesList" keyName="name" @confirm="typesChange"></u-picker>
|
||||
<view class="right select" @click="showgrade = true">
|
||||
<input placeholder="选择客户等级" disabled v-model="grade_name" />
|
||||
<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>
|
||||
</view>
|
||||
</view>
|
||||
@@ -47,8 +54,8 @@
|
||||
<view class="cell">
|
||||
<view>国家地区</view>
|
||||
<view class="right select" @click="showenergy = true">
|
||||
<input placeholder="选择国家地区" disabled v-model="vehicle_energy" />
|
||||
<u-picker :show="showenergy" @cancel="cancel('showenergy')" :columns="energyList" keyName="name" @confirm="energyChange"></u-picker>
|
||||
<input placeholder="选择国家地区" disabled v-model="country_name" />
|
||||
<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>
|
||||
</view>
|
||||
</view>
|
||||
@@ -63,7 +70,7 @@
|
||||
<view class="cell1">
|
||||
<view>详细情况</view>
|
||||
<view class="">
|
||||
<textarea auto-height v-model="form.condition_desc" placeholder="详细情况..."/>
|
||||
<textarea auto-height v-model="form.describe" placeholder="详细情况..."/>
|
||||
</view>
|
||||
</view>
|
||||
<u-gap height="100" bgColor="#fff"></u-gap>
|
||||
@@ -79,31 +86,78 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
brandList:[],
|
||||
energyList:[],
|
||||
typesList:[],
|
||||
showgrade: false,
|
||||
showcartype: false,
|
||||
showenergy: false,
|
||||
getGradeList:[],
|
||||
carTypeList:[],
|
||||
areaList:[],
|
||||
grade_name:'',
|
||||
car_type_name:'',
|
||||
country_name:'',
|
||||
form: {
|
||||
name: '',
|
||||
contacts: '',
|
||||
gender: '男',
|
||||
phone: '',
|
||||
preference: '赵野军',
|
||||
level: '初步接触',
|
||||
region: '',
|
||||
firstFollow: '2025-03-11 12:00:01',
|
||||
details: ''
|
||||
email: '',
|
||||
describe: '',
|
||||
grade:'',
|
||||
country_id:'',
|
||||
car_type_id:''
|
||||
}
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
const { windowWidth, windowHeight } = uni.getSystemInfoSync();
|
||||
this.x = windowWidth-70
|
||||
this.y = windowHeight-185
|
||||
},
|
||||
methods: {
|
||||
|
||||
leftClick(){
|
||||
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>
|
||||
|
||||
+76
-61
@@ -5,7 +5,7 @@
|
||||
<view class="cell">
|
||||
<view>客户称呼</view>
|
||||
<view class="right">
|
||||
<input placeholder="输入客户称呼" v-model="form.name" />
|
||||
<input placeholder="输入称呼" v-model="form.contacts" />
|
||||
</view>
|
||||
</view>
|
||||
<u-divider text=""></u-divider>
|
||||
@@ -20,7 +20,7 @@
|
||||
</view>
|
||||
<u-divider text=""></u-divider>
|
||||
<view class="cell">
|
||||
<view>联系方式 </view>
|
||||
<view>联系方式 <text class="red">*</text></view>
|
||||
<view class="right">
|
||||
<input placeholder="输入联系方式" v-model="form.phone" />
|
||||
</view>
|
||||
@@ -29,24 +29,24 @@
|
||||
<view class="cell">
|
||||
<view>Email</view>
|
||||
<view class="right">
|
||||
<input placeholder="输入Email" v-model="form.phone" />
|
||||
<input placeholder="输入Email" v-model="form.email" />
|
||||
</view>
|
||||
</view>
|
||||
<u-divider text=""></u-divider>
|
||||
<view class="cell">
|
||||
<view>客户偏好</view>
|
||||
<view class="right select" @click="showbrand = true">
|
||||
<input placeholder="选择客户偏好" disabled v-model="brandname" />
|
||||
<u-picker :show="showbrand" @cancel="cancel('showbrand')" :columns="brandList" keyName="name" @confirm="changeHandler"></u-picker>
|
||||
<view class="right select" @click="showcartype = true">
|
||||
<input placeholder="选择客户偏好" disabled v-model="car_type_name" />
|
||||
<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>
|
||||
</view>
|
||||
</view>
|
||||
<u-divider text=""></u-divider>
|
||||
<view class="cell">
|
||||
<view>客户等级</view>
|
||||
<view class="right select" @click="showtype = true">
|
||||
<input placeholder="选择客户等级" disabled v-model="vehicle_type" />
|
||||
<u-picker :show="showtype" @cancel="cancel('showtype')" :columns="typesList" keyName="name" @confirm="typesChange"></u-picker>
|
||||
<view class="right select" @click="showgrade = true">
|
||||
<input placeholder="选择客户等级" disabled v-model="grade_name" />
|
||||
<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>
|
||||
</view>
|
||||
</view>
|
||||
@@ -54,8 +54,7 @@
|
||||
<view class="cell">
|
||||
<view>公司</view>
|
||||
<view class="right select" @click="showenergy = true">
|
||||
<input placeholder="去定位" disabled v-model="vehicle_energy" />
|
||||
<u-picker :show="showenergy" @cancel="cancel('showenergy')" :columns="energyList" keyName="name" @confirm="energyChange"></u-picker>
|
||||
<input placeholder="去定位" disabled v-model="country_name" />
|
||||
<u-icon class="arrowright" name="arrow-right" size="18" color="#747474"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
@@ -63,7 +62,7 @@
|
||||
<view class="cell1">
|
||||
<view>备注(非必填)</view>
|
||||
<view class="">
|
||||
<textarea auto-height v-model="form.condition_desc" placeholder="详细情况..."/>
|
||||
<textarea auto-height v-model="form.describe" placeholder="详细情况..."/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -127,56 +126,24 @@
|
||||
data() {
|
||||
return {
|
||||
id:'',
|
||||
brandList:[],
|
||||
energyList:[],
|
||||
typesList:[],
|
||||
brandList1:[],
|
||||
energyList1:[],
|
||||
typesList1:[],
|
||||
showbrand: false,
|
||||
showtype: false,
|
||||
showgrade: false,
|
||||
showcartype: false,
|
||||
showenergy: false,
|
||||
defaultIndex1:[0],
|
||||
defaultIndex2:[0],
|
||||
defaultIndex3:[0],
|
||||
brandname:'',
|
||||
vehicle_type:'',
|
||||
vehicle_energy:'',
|
||||
form:{
|
||||
name:'',
|
||||
vin:'',
|
||||
brand:'',
|
||||
price:'',
|
||||
vehicle_type:'',
|
||||
vehicle_energy:'',
|
||||
mileage :'',
|
||||
vehicle_age:'',
|
||||
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:'',
|
||||
getGradeList:[],
|
||||
carTypeList:[],
|
||||
areaList:[],
|
||||
grade_name:'',
|
||||
car_type_name:'',
|
||||
country_name:'',
|
||||
form: {
|
||||
contacts: '',
|
||||
gender: '男',
|
||||
phone: '',
|
||||
email: '',
|
||||
describe: '',
|
||||
grade:'',
|
||||
country_id:'',
|
||||
car_type_id:''
|
||||
}
|
||||
|
||||
}
|
||||
@@ -189,6 +156,54 @@
|
||||
methods: {
|
||||
leftClick(){
|
||||
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>当前位置拍照上传</view>
|
||||
<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>
|
||||
</uni-file-picker>
|
||||
</view>
|
||||
@@ -46,15 +46,16 @@
|
||||
<view class="cell1" v-if="form.followType==2">
|
||||
<view>拜访内容</view>
|
||||
<view class="yuyin">
|
||||
<textarea auto-height v-model="form.condition_desc" placeholder="拜访内容..."/>
|
||||
<image src="/static/image/customer/yuyin.png" mode=""></image>
|
||||
<textarea auto-height v-model="form.bf_desc" placeholder="拜访内容..."/>
|
||||
<image src="/static/image/customer/yuyin.png" mode="" @tap="startRecognizebd"></image>
|
||||
</view>
|
||||
</view>
|
||||
<u-divider text="" v-if="form.followType==2"></u-divider>
|
||||
<view class="cell1" v-if="form.followType==2">
|
||||
<view>备注(非必填)</view>
|
||||
<view class="">
|
||||
<view class="yuyin">
|
||||
<textarea auto-height v-model="form.condition_desc" placeholder="详细情况..."/>
|
||||
<image src="/static/image/customer/yuyin.png" mode="" @tap="startRecognize"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -121,8 +122,8 @@
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import permision from "@/common/permission.js"
|
||||
import { request,showToast } from '@/api/apiT.js'
|
||||
// import ldSelect from '@/components/ld-select/ld-select.vue'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@@ -139,7 +140,8 @@
|
||||
level: '初步接触',
|
||||
region: '',
|
||||
firstFollow: '2025-03-11 12:00:01',
|
||||
details: ''
|
||||
details: '',
|
||||
bf_desc:''
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -152,6 +154,9 @@
|
||||
|
||||
leftClick(){
|
||||
uni.navigateBack({})
|
||||
},
|
||||
nextFn(){
|
||||
|
||||
},
|
||||
cancel() {
|
||||
this.show = false
|
||||
@@ -180,6 +185,105 @@
|
||||
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>
|
||||
|
||||
+44
-18
@@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<view class="conts">
|
||||
<view class="top">
|
||||
<view class="navbar">客户管理</view>
|
||||
<view class="navbar">{{$t('customer.title')}}</view>
|
||||
<view class="topSearch">
|
||||
<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">
|
||||
<image src="/static/image/customer/search1.png" mode=""></image>
|
||||
</view>
|
||||
@@ -20,7 +20,7 @@
|
||||
<view class="" @click="godetile(item)">
|
||||
<view class="top">
|
||||
<view class="">2025.03.11 12:00</view>
|
||||
<view class="tag">跟进中</view>
|
||||
<view class="tag">{{$t('followup')}}</view>
|
||||
</view>
|
||||
<u-divider text="" :hairline="true"></u-divider>
|
||||
<view class="cont">
|
||||
@@ -33,28 +33,28 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="desc1">
|
||||
<view class="" @click="phoneClick(item)"><image src="/static/image/customer/phone.png" mode=""></image> 呼叫</view>
|
||||
<view class="" @click="editClick(item)"><image src="/static/image/customer/edit.png" mode=""></image> 跟进</view>
|
||||
<view class="" @click="delClick(item)"><image src="/static/image/customer/trash.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> {{$t('followup')}}</view>
|
||||
<view class="" @click="delClick(item)"><image src="/static/image/customer/trash.png" mode=""></image> {{$t('delete')}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<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">
|
||||
<view class="popupcontent">
|
||||
<view class="title">提示</view>
|
||||
<view class="title">{{$t('prompt')}}</view>
|
||||
<view class="text">
|
||||
确定要删除此客户吗?
|
||||
{{$t('deletemsg')}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="cent">
|
||||
<view class="btn1" @click="showts = !showts">取消</view>
|
||||
<view class="btn" @click="showts = !showts">确定</view>
|
||||
<view class="btn1" @click="showts = !showts">{{$t('cancel')}}</view>
|
||||
<view class="btn" @click="showts = !showts">{{$t('confirm')}}</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
<movable-area class="movable-area">
|
||||
<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">
|
||||
</view>
|
||||
</movable-view>
|
||||
@@ -85,14 +85,22 @@
|
||||
}]
|
||||
],
|
||||
datalist:[
|
||||
{id:1},
|
||||
{id:2},
|
||||
{id:3},
|
||||
{id:4}
|
||||
{id:1,phone:'17839087603'},
|
||||
{id:2,phone:'18437931136'},
|
||||
{id:3,phone:'18339827479'},
|
||||
{id:4,phone:'17839087603'}
|
||||
],
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
const { windowWidth, windowHeight } = uni.getSystemInfoSync();
|
||||
this.x = windowWidth-70
|
||||
this.y = windowHeight-25
|
||||
},
|
||||
methods: {
|
||||
searchCli(){
|
||||
|
||||
},
|
||||
close() {
|
||||
// console.log('close');
|
||||
this.show= false
|
||||
@@ -111,8 +119,26 @@
|
||||
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){
|
||||
uni.navigateTo({
|
||||
@@ -199,7 +225,7 @@
|
||||
background: #3471FF;
|
||||
color: white;
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
padding: 0px 10px;
|
||||
padding: 3px 10px;
|
||||
margin-right: -15px;
|
||||
}
|
||||
}
|
||||
|
||||
+52
-22
@@ -1,22 +1,21 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="contop">
|
||||
<view class="changeyy" @click="switchLang" >
|
||||
<image src="/static/image/change.png" mode=""></image>切换语言
|
||||
<view class="changeyy" @click="showlang = true" >
|
||||
<image src="/static/image/change.png" mode=""></image>{{$t('home.langbtn')}}
|
||||
</view>
|
||||
<view class="title">
|
||||
您已陪伴HESU CRM
|
||||
{{$t('home.title')}} HESU CRM
|
||||
</view>
|
||||
<view class="num">
|
||||
66 <text>天</text>
|
||||
66 <text>{{$t('home.day')}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="data-briefing">
|
||||
<view class="top">
|
||||
<text>数据简报</text>
|
||||
<text>{{$t('home.databf')}}</text>
|
||||
<view class="time" @click="show = true">
|
||||
<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-icon name="arrow-down" color="#666666" size="16"></u-icon>
|
||||
</view>
|
||||
@@ -25,19 +24,19 @@
|
||||
<u-grid :border="false" col="4">
|
||||
<u-grid-item>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<text class="grid-num">20</text>
|
||||
<text class="grid-text">新增跟进</text>
|
||||
<text class="grid-text">{{$t('home.addgj')}}</text>
|
||||
</u-grid-item>
|
||||
</u-grid>
|
||||
</view>
|
||||
@@ -57,7 +56,8 @@
|
||||
</userlist>
|
||||
</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>
|
||||
</template>
|
||||
|
||||
@@ -73,6 +73,7 @@
|
||||
home: this.$t('tabbar.home'),
|
||||
value0: 0,
|
||||
show: false,
|
||||
showlang: false,
|
||||
value1: Number(new Date()),
|
||||
timevalue:this.result(Number(new Date())),
|
||||
time:this.result(Number(new Date())),
|
||||
@@ -82,25 +83,56 @@
|
||||
{id:3},
|
||||
{id:4}
|
||||
],
|
||||
columns:[
|
||||
[{
|
||||
label: '中文',
|
||||
id: 'zh'
|
||||
}, {
|
||||
label: '英文',
|
||||
id: 'en'
|
||||
}, {
|
||||
label: '俄语',
|
||||
id: 'ru'
|
||||
}]
|
||||
],
|
||||
list1: [
|
||||
{
|
||||
name: '全部',
|
||||
name: this.$t('all'),
|
||||
}, {
|
||||
name: '跟进中',
|
||||
name: this.$t('followup'),
|
||||
}, {
|
||||
name: '已成交'
|
||||
name: this.$t('deal')
|
||||
}, {
|
||||
name: '已丢失'
|
||||
name: this.$t('lost')
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
switchLang() {
|
||||
this.$i18n.locale = this.$i18n.locale == 'en' ? 'cn' : 'en';
|
||||
confirm(e) {
|
||||
// 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({
|
||||
index: 0,
|
||||
text: this.$t('tabbar.home')
|
||||
@@ -114,9 +146,6 @@
|
||||
text: this.$t('tabbar.mine')
|
||||
})
|
||||
},
|
||||
close() {
|
||||
this.show = false
|
||||
},
|
||||
cancel() {
|
||||
this.show = false
|
||||
},
|
||||
@@ -173,6 +202,7 @@
|
||||
.title{
|
||||
font-size: 32rpx;
|
||||
margin-bottom: 20px;
|
||||
width: 58%;
|
||||
}
|
||||
.num{
|
||||
font-size: 60rpx;
|
||||
@@ -220,7 +250,7 @@
|
||||
}
|
||||
.grid-text{
|
||||
color: #222222;
|
||||
font-size: 24rpx;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+72
-20
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="contents">
|
||||
<view class="navbar">我的</view>
|
||||
<view class="navbar">{{$t('mine.title')}}</view>
|
||||
<view class="content">
|
||||
<view class="contop">
|
||||
<view class="">
|
||||
@@ -20,50 +20,55 @@
|
||||
<view class="bottomCon">
|
||||
<view class="sonContent" @click="navTo('/pages/mine/massege')">
|
||||
<image class="son-img-bg" src="/static/image/mine/icon1.png"></image>
|
||||
<span>消息通知</span>
|
||||
<span>{{$t('mine.msg')}}</span>
|
||||
<view class="">
|
||||
<u-badge :value="9" type="error" style="display: inline-block;"></u-badge>
|
||||
<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/resetPwd')">
|
||||
<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>
|
||||
</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>
|
||||
<span>联系客服</span>
|
||||
<span>{{$t('mine.contact')}}</span>
|
||||
<uni-icons type="right" size="18"></uni-icons>
|
||||
</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>
|
||||
<span>意见反馈</span>
|
||||
<span>{{$t('mine.feedback')}}</span>
|
||||
<uni-icons type="right" size="18"></uni-icons>
|
||||
</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>
|
||||
<span>关于我们</span>
|
||||
<span>{{$t('mine.about')}}</span>
|
||||
<uni-icons type="right" size="18"></uni-icons>
|
||||
</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>
|
||||
<span>注销账户</span>
|
||||
<span>{{$t('mine.logoff')}}</span>
|
||||
<uni-icons type="right" size="18"></uni-icons>
|
||||
</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>
|
||||
<span>退出登录</span>
|
||||
<span>{{$t('mine.logout')}}</span>
|
||||
<uni-icons type="right" size="18"></uni-icons>
|
||||
</view>
|
||||
<!-- <view class="sonContent1" @click="goout">
|
||||
<span>退出当前账号</span>
|
||||
</view> -->
|
||||
<!-- <button v-else="is_login" class="logobtn" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">一键登录</button> -->
|
||||
|
||||
</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>
|
||||
</template>
|
||||
|
||||
@@ -73,7 +78,6 @@
|
||||
data() {
|
||||
return {
|
||||
userinfo:'',
|
||||
is_login:uni.getStorageSync('is_login'),
|
||||
show: false
|
||||
}
|
||||
},
|
||||
@@ -93,6 +97,26 @@
|
||||
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>
|
||||
@@ -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>
|
||||
+98
-136
@@ -1,66 +1,66 @@
|
||||
<template>
|
||||
<view class="page">
|
||||
<view class="title">
|
||||
<view>Hello!<br>欢迎来到XXX</view>
|
||||
<image src="/static/image/hesu.png" mode=""></image>
|
||||
</view>
|
||||
|
||||
<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">
|
||||
<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 class="password" v-if="loginType==2">
|
||||
<view class="password">
|
||||
<u--input
|
||||
type="password"
|
||||
placeholder="请输入内容"
|
||||
border="none"
|
||||
></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 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 class="button">
|
||||
<view @click="login">
|
||||
登录
|
||||
</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 class="pact">
|
||||
<radio :checked="pactChecked" activeBackgroundColor="#3264ed" activeBorderColor="#3264ed"
|
||||
<view>我已经阅读并同意<text @click="toPact">《用户协议》</text>和<text @click="toPact">《隐私协议》</text></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="pact">
|
||||
<radio :checked="pactChecked" activeBackgroundColor="#3264ed" activeBorderColor="#3264ed"
|
||||
borderColor="#3264ed" color="#fff" @click="pactChange" />
|
||||
<view>我已阅读并同意<text @click="toPact">《用户协议》</text>和<text @click="toPact">《隐私协议》</text></view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { request,showToast } from '@/api/apiT.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
account: "",
|
||||
email: "",
|
||||
password: "",
|
||||
vcode: "",
|
||||
|
||||
loginType: 1,
|
||||
|
||||
pwdShow: false,
|
||||
pactChecked: false,
|
||||
|
||||
vcodeTime: 0,
|
||||
vcodeTimer: null
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
@@ -68,29 +68,50 @@
|
||||
},
|
||||
methods: {
|
||||
login() {
|
||||
uni.showToast({
|
||||
title: "登录方式" + this.loginType,
|
||||
icon: 'none'
|
||||
})
|
||||
},
|
||||
getVcode() {
|
||||
this.vcodeTime = 60
|
||||
this.vcodeTimer = setInterval(() => {
|
||||
if (this.vcodeTime > 0) {
|
||||
this.vcodeTime--
|
||||
} else {
|
||||
clearInterval(this.vcodeTimer)
|
||||
this.vcodeTimer = null
|
||||
if(this.email==''){
|
||||
uni.showToast({
|
||||
title:'邮箱不能为空',
|
||||
icon: 'none'
|
||||
});
|
||||
return false
|
||||
}
|
||||
if(this.password==''){
|
||||
uni.showToast({
|
||||
title:'密码不能为空',
|
||||
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',// 替换为你要跳转的页面路径
|
||||
});
|
||||
}
|
||||
}, 1000)
|
||||
uni.showToast({
|
||||
title: "获取验证码",
|
||||
icon: 'none'
|
||||
})
|
||||
},
|
||||
pactChange() {
|
||||
this.pactChecked = !this.pactChecked
|
||||
},
|
||||
toPact() {
|
||||
uni.showToast({
|
||||
title: "协议",
|
||||
@@ -104,8 +125,7 @@
|
||||
<style lang="scss" scoped>
|
||||
.page {
|
||||
min-height: 100vh;
|
||||
background-image: url("../../static/image/loginBg.png");
|
||||
// background: url("../../static/image/loginBg.png") no-repeat top center;
|
||||
background-image: url("../../static/image/login/loginbg.png");
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat;
|
||||
display: flex;
|
||||
@@ -114,87 +134,30 @@
|
||||
|
||||
.title {
|
||||
padding-top: 220rpx;
|
||||
padding-bottom: 70rpx;
|
||||
|
||||
view {
|
||||
padding-left: 64rpx;
|
||||
font-size: 48rpx;
|
||||
font-weight: 700;
|
||||
color: #383838;
|
||||
text-align: center;
|
||||
image{
|
||||
width: 160px;
|
||||
height: 37px;
|
||||
}
|
||||
}
|
||||
|
||||
.form {
|
||||
flex: 1;
|
||||
margin: 0 32rpx;
|
||||
border-radius: 40rpx;
|
||||
background-color: #fff;
|
||||
margin: 0 76rpx;
|
||||
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 {
|
||||
background-color: #fff;
|
||||
|
||||
.inputs {
|
||||
padding: 150rpx 32rpx 0;
|
||||
margin-bottom: 80rpx;
|
||||
|
||||
padding: 150rpx 0px 0;
|
||||
margin-bottom: 20rpx;
|
||||
.account,
|
||||
.password,
|
||||
.vcode {
|
||||
height: 96rpx;
|
||||
border-radius: 20rpx;
|
||||
.password{
|
||||
height: 80rpx;
|
||||
border-radius: 50px;
|
||||
padding: 0 48rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background-color: #f7fafc;
|
||||
background-color: #F6F6F6;
|
||||
|
||||
input {
|
||||
flex: 1;
|
||||
@@ -204,39 +167,38 @@
|
||||
.account {
|
||||
margin-bottom: 48rpx;
|
||||
}
|
||||
|
||||
.vcode {
|
||||
text {
|
||||
text-wrap: nowrap;
|
||||
font-size: 26rpx;
|
||||
background-color: #fff;
|
||||
padding: 14rpx 30rpx;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.button {
|
||||
padding: 0 32rpx;
|
||||
|
||||
view {
|
||||
line-height: 96rpx;
|
||||
border-radius: 20rpx;
|
||||
line-height: 80rpx;
|
||||
border-radius: 50px;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
background-color: #3264ed;
|
||||
background: linear-gradient(to right, #3471FF, #6776FF);
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.three{
|
||||
margin: 40rpx 0px;
|
||||
padding: 20rpx 40rpx;
|
||||
image{
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.forgot-password {
|
||||
text-align: right;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.pact {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding-bottom: 120rpx;
|
||||
font-size: 24rpx;
|
||||
|
||||
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} 条消息`,
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
},
|
||||
leftClick(){
|
||||
uni.navigateBack({})
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</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