Browse Source

动态配置智能体

dev_des
1054425342@qq.com 2 months ago
parent
commit
b0e4b1b602
  1. 6
      components/ProductSection.vue
  2. 2
      pages/index/iSoul.vue
  3. 5
      subPackages/orderQy/detail.vue
  4. 400
      subPackages/user/changeNickname.vue
  5. 785
      subPackages/user/profile.vue

6
components/ProductSection.vue

@ -26,7 +26,7 @@
<view class="image-overlay" v-if="!isFeel"></view> <view class="image-overlay" v-if="!isFeel"></view>
<!-- 智能体标签 --> <!-- 智能体标签 -->
<view class="content-box-info" v-if="!isFeel"> <view class="content-box-info" v-if="!isFeel">
<view class="ai-tag"> <view class="ai-tag" v-if="item.agent">
<view <view
class="ai-label" class="ai-label"
:style="{ :style="{
@ -35,12 +35,12 @@
}" }"
>智能体</view >智能体</view
> >
<text class="ai-name">{{ item.aiName }}</text> <text class="ai-name">{{ item.agent.name }}</text>
</view> </view>
<!-- 头像 --> <!-- 头像 -->
<image <image
class="avatar" class="avatar"
:src="showImg(item.avatar)" :src="showImg(item.agent.headImage)"
mode="aspectFill" mode="aspectFill"
></image> ></image>
</view> </view>

2
pages/index/iSoul.vue

@ -23,7 +23,7 @@
class="avatar-img"></image> class="avatar-img"></image>
</view> </view>
<view class="user-info"> <view class="user-info">
<view class="username">{{ userInfo.nickname || "去登录" }}</view> <view class="username">{{ userInfo.nickname || "去登录" }}<uni-icons type="right" size="16" style="margin-left: 10rpx;" color="#ffffff" /></view>
<view class="user-id" v-if="userInfo.redBookId">ID{{ userInfo.redBookId || "123456" }}</view> <view class="user-id" v-if="userInfo.redBookId">ID{{ userInfo.redBookId || "123456" }}</view>
<!-- <view class="location"> <!-- <view class="location">
<text class="location-icon">📍</text> <text class="location-icon">📍</text>

5
subPackages/orderQy/detail.vue

@ -177,8 +177,7 @@
<!-- 底部操作 --> <!-- 底部操作 -->
<view class="bottom-actions"> <view class="bottom-actions">
<!-- <button class="action-btn-bottom primary" @click="handleMainAction">
<!-- <button class="action-btn-bottom primary" @click="handleMainAction">
{{ getMainActionText() }} {{ getMainActionText() }}
</button> --> </button> -->
<!-- 售后按钮 --> <!-- 售后按钮 -->
@ -1557,7 +1556,7 @@ export default {
} }
.goods-select-name { .goods-select-name {
text-align: left; text-align: left;
font-size: 28rpx; font-size: 28rpx;
color: #333; color: #333;
font-weight: 600; font-weight: 600;

400
subPackages/user/changeNickname.vue

@ -1,89 +1,325 @@
<template> <template>
<view class="bg"> <view class="change-nickname-container">
<view class="nickname-box"> <!-- 页面标题 -->
<input v-model="nickname" type="text" placeholder="请输入内容" /> <view class="page-header">
</view> <text class="page-title">修改昵称</text>
<view class="btn" @click="save">保存</view> </view>
</view>
<!-- 昵称输入区域 -->
<view class="input-section">
<view class="input-card">
<view class="input-label">昵称</view>
<view class="input-wrapper">
<input
v-model="nickname"
type="nickname"
placeholder="请输入昵称"
maxlength="20"
class="nickname-input"
/>
<view class="char-count">{{ nickname.length }}/20</view>
</view>
</view>
</view>
<!-- 保存按钮 -->
<view class="save-section">
<button
class="save-btn"
:class="{ 'save-btn-active': nickname.trim() }"
@click="saveNickname"
:disabled="!nickname.trim()"
>
保存
</button>
</view>
</view>
</template> </template>
<script> <script>
export default { export default {
name: "changeNickname", name: "changeNickname",
data: function() { data() {
return { return {
nickname: "" nickname: "",
} originalNickname: "", //
}, };
methods: { },
save: function() { onLoad(options) {
if (!this.nickname) { // 使
uni.showToast({ if (options.nickname) {
title: '请输入昵称', this.nickname = decodeURIComponent(options.nickname);
icon: 'none' this.originalNickname = this.nickname;
}) }
return; },
} methods: {
this.Post({ //
nickname: this.nickname getWechatNickname() {
}, '/api/user/profile').then(res => { // #ifdef MP-WEIXIN
console.log(res) uni.getUserProfile({
if (res.code == 1 || res.code == 200) { desc: "用于完善用户资料",
uni.showModal({ success: (res) => {
title: '提示', console.log("获取用户信息成功:", res);
content: '保存成功!', if (res.userInfo && res.userInfo.nickName) {
success: res => { this.nickname = res.userInfo.nickName;
if (res.confirm) { uni.showToast({
this.goBack() title: "已获取微信昵称",
} icon: "success",
} });
}) }
} },
}) fail: (err) => {
} console.log("获取用户信息失败:", err);
} uni.showToast({
} title: "获取微信昵称失败",
icon: "none",
});
},
});
// #endif
// #ifndef MP-WEIXIN
uni.showToast({
title: "请在微信小程序中使用此功能",
icon: "none",
});
// #endif
},
//
saveNickname() {
const trimmedNickname = this.nickname.trim();
if (!trimmedNickname) {
uni.showToast({
title: "请输入昵称",
icon: "none",
});
return;
}
if (trimmedNickname.length < 2) {
uni.showToast({
title: "昵称至少2个字符",
icon: "none",
});
return;
}
if (trimmedNickname === this.originalNickname) {
uni.showToast({
title: "昵称未修改",
icon: "none",
});
return;
}
uni.showLoading({
title: "保存中...",
});
this.Post(
{
nickname: trimmedNickname,
},
"/api/user/profile"
)
.then((res) => {
uni.hideLoading();
console.log("保存昵称结果:", res);
if (res.code == 1 || res.code == 200) {
uni.showModal({
title: "提示",
content: "昵称保存成功!",
showCancel: false,
success: (modalRes) => {
if (modalRes.confirm) {
//
const pages = getCurrentPages();
if (pages.length > 1) {
const prevPage = pages[pages.length - 2];
//
if (prevPage.updateNickname) {
prevPage.updateNickname(trimmedNickname);
}
}
uni.navigateBack();
}
},
});
} else {
uni.showToast({
title: res.msg || "保存失败",
icon: "none",
});
}
})
.catch((err) => {
uni.hideLoading();
console.error("保存昵称失败:", err);
uni.showToast({
title: "保存失败,请重试",
icon: "none",
});
});
},
},
};
</script> </script>
<style scoped> <style lang="scss" scoped>
.bg { .change-nickname-container {
min-height: 100vh; min-height: 100vh;
padding-top: 50rpx; background-color: #f5f5f5;
} padding-bottom: env(safe-area-inset-bottom);
}
.nickname-box {
display: flex; //
padding: 10rpx 0 30rpx; .page-header {
margin: 0 30rpx; background-color: #fff;
align-items: center; padding: 20rpx 30rpx;
background: white; border-bottom: 1rpx solid #f0f0f0;
margin-bottom: 100rpx; }
font-size: 30rpx;
height: 70rpx; .page-title {
border-bottom: 1rpx solid #D8D8D8; font-size: 32rpx;
} font-weight: 600;
color: #333;
.nickname-box span { }
flex-shrink: 0;
} //
.input-section {
.nickname-box input { margin-top: 20rpx;
flex: 1; }
font-size: 30rpx;
display: block; .input-card {
} background-color: #fff;
padding: 30rpx;
.btn { margin: 0 30rpx;
color: black; border-radius: 16rpx;
margin: 0 auto; box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
line-height: 80rpx; }
position: relative;
font-size: 34rpx; .input-label {
text-align: center; font-size: 28rpx;
width: 333rpx; color: #333;
height: 80rpx; font-weight: 600;
background: #C3282E; margin-bottom: 20rpx;
border-radius: 40rpx; }
color: #FFFFFF;
} .input-wrapper {
position: relative;
display: flex;
align-items: center;
}
.nickname-input {
flex: 1;
height: 80rpx;
padding: 0 20rpx;
font-size: 30rpx;
color: #333;
background-color: #f8f9fa;
border: 2rpx solid #e9ecef;
border-radius: 12rpx;
transition: all 0.3s ease;
}
.nickname-input:focus {
border-color: #ff4757;
background-color: #fff;
}
.char-count {
position: absolute;
right: 20rpx;
font-size: 24rpx;
color: #999;
background-color: rgba(255, 255, 255, 0.9);
padding: 4rpx 8rpx;
border-radius: 6rpx;
}
//
.quick-actions {
margin-top: 20rpx;
}
.action-card {
background-color: #fff;
margin: 0 30rpx;
padding: 30rpx;
border-radius: 16rpx;
display: flex;
align-items: center;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
cursor: pointer;
transition: all 0.3s ease;
&:active {
background-color: #f8f9fa;
transform: scale(0.98);
}
}
.action-icon {
margin-right: 20rpx;
width: 60rpx;
height: 60rpx;
background-color: rgba(7, 193, 96, 0.1);
border-radius: 12rpx;
display: flex;
align-items: center;
justify-content: center;
}
.action-content {
flex: 1;
}
.action-title {
font-size: 28rpx;
color: #333;
font-weight: 600;
margin-bottom: 4rpx;
display: block;
}
.action-desc {
font-size: 24rpx;
color: #999;
display: block;
}
.action-arrow {
margin-left: 20rpx;
}
//
.save-section {
margin-top: 60rpx;
padding: 0 30rpx;
}
.save-btn {
width: 100%;
height: 88rpx;
background-color: #e9ecef;
color: #999;
border: none;
border-radius: 44rpx;
font-size: 32rpx;
font-weight: 600;
transition: all 0.3s ease;
&.save-btn-active {
background-color: #ff4757;
color: #fff;
}
&:active {
transform: scale(0.98);
}
}
</style> </style>

785
subPackages/user/profile.vue

@ -1,26 +1,37 @@
<template> <template>
<view v-if="info"> <view v-if="info">
<view class="user-other-info"> <view class="user-other-info">
<div class="info-avatar-top"> <div class="info-avatar-top">
<span>头像</span> <span>头像</span>
<view @click="uploadImg()"> <button
<image :src="showImg(info.avatar)" mode="aspectFill" class="avatar-wrapper"
style="width: 80rpx;height: 80rpx;border-radius: 50%;"></image> open-type="chooseAvatar"
</view> @chooseavatar="onChooseAvatar"
</div> >
<navigator url="/subPackages/user/changeNickname" tag="view" class="userinfo-item"> <image
<span>昵称</span> :src="showImg(info.avatar)"
<view>{{nickname}}</view> mode="aspectFill"
</navigator> style="width: 80rpx; height: 80rpx; border-radius: 50%"
<!-- <view class="userinfo-item" @click="showSexSelect = true"> ></image>
</button>
</div>
<navigator
url="/subPackages/user/changeNickname"
tag="view"
class="userinfo-item"
>
<span>昵称</span>
<view>{{ nickname }}</view>
</navigator>
<!-- <view class="userinfo-item" @click="showSexSelect = true">
<span>性别</span> <span>性别</span>
<view @click="$refs.popup.open()">{{gender == 1 ? '' : (gender == 2 ? '' : '保密')}}</view> <view @click="$refs.popup.open()">{{gender == 1 ? '' : (gender == 2 ? '' : '保密')}}</view>
</view> --> </view> -->
<view class="userinfo-item"> <view class="userinfo-item">
<span>手机号</span> <span>手机号</span>
<view>{{info.mobile}}</view> <view>{{ info.mobile }}</view>
</view> </view>
<!-- <view class="userinfo-item"> <!-- <view class="userinfo-item">
<span>生日</span> <span>生日</span>
<picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange"> <picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
<view class="uni-input">{{birthday}}</view> <view class="uni-input">{{birthday}}</view>
@ -30,378 +41,414 @@
<span>注销账号</span> <span>注销账号</span>
<i>注销后账号无法恢复请谨慎操作</i> <i>注销后账号无法恢复请谨慎操作</i>
</navigator> --> </navigator> -->
<!-- <view class="btn-tao" @click="submit">保存</view> --> <!-- <view class="btn-tao" @click="submit">保存</view> -->
</view> </view>
<!-- 性别弹框 --> <!-- 性别弹框 -->
<uni-popup ref="popup" type="bottom"> <uni-popup ref="popup" type="bottom">
<view class="popup-box"> <view class="popup-box">
<view class="popup-item flex-center" v-for="(item,index) in sexes" :key="index" @click="changesex(index)">{{item.text}}</view> <view
<view class="popup-items flex-center" @click="$refs.popup.close()">取消</view> class="popup-item flex-center"
</view> v-for="(item, index) in sexes"
</uni-popup> :key="index"
</view> @click="changesex(index)"
>{{ item.text }}</view
>
<view class="popup-items flex-center" @click="$refs.popup.close()"
>取消</view
>
</view>
</uni-popup>
</view>
</template> </template>
<script> <script>
import {pathToBase64} from "@/static/js/mmmm-image-tools/index.js" import { pathToBase64 } from "@/static/js/mmmm-image-tools/index.js";
export default { export default {
name: "Profile", name: "Profile",
data() { data() {
const currentDate = this.getDate({ const currentDate = this.getDate({
format: true format: true,
}) });
return { return {
date: currentDate, date: currentDate,
info: null, info: null,
showSexSelect: false, showSexSelect: false,
sexes: [{ sexes: [
value: '1', {
text: '男' value: "1",
}, text: "男",
{ },
value: '2', {
text: '女' value: "2",
}, text: "女",
{ },
value: '0', {
text: '保密' value: "0",
} text: "保密",
], },
today: null, ],
showCropper: false, today: null,
nickname: '', showCropper: false,
gender: '', nickname: "",
birthday: '', gender: "",
email: '', birthday: "",
fileList1: [], email: "",
startDate: '1900-1-1', fileList1: [],
endDate: '2050-1-1' startDate: "1900-1-1",
} endDate: "2050-1-1",
}, };
onShow() { },
console.log(this.$store.state.user.userInfo,uni.getStorageSync('userInfo')) onShow() {
this.getList() console.log(
}, this.$store.state.user.userInfo,
computed: { uni.getStorageSync("userInfo")
// startDate() { );
// return this.getDate('start'); this.getList();
// }, },
// endDate() { computed: {
// return this.getDate('end'); // startDate() {
// } // return this.getDate('start');
}, // },
methods: { // endDate() {
getFile(e) { // return this.getDate('end');
console.log(e) // }
}, },
getList() { methods: {
let today = new Date(); getFile(e) {
today = today.getFullYear() + "/" + (today.getMonth() + 1) + "/" + today.getDate(); console.log(e);
this.today = today; },
this.Post({}, "/api/user/userInfo").then(res => { getList() {
if (!res.data.birthday) { let today = new Date();
let date = new Date(); today =
res.data.birthday = date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date today.getFullYear() +
.getDate(); "/" +
} (today.getMonth() + 1) +
this.info = res.data; "/" +
this.nickname = this.info.nickname today.getDate();
this.email = this.info.email this.today = today;
this.birthday = this.info.birthday this.Post({}, "/api/user/userInfo").then((res) => {
this.gender = this.info.gender if (!res.data.birthday) {
this.info.token = JSON.parse(uni.getStorageSync('userInfo')).token || this.$store.state.user.userInfo.token let date = new Date();
console.log(this.info) res.data.birthday =
this.$store.commit('changeUserInfo', this.info) date.getFullYear() +
}) "/" +
}, (date.getMonth() + 1) +
uploadImg() { "/" +
uni.chooseImage({ date.getDate();
success: (chooseImageRes) => { }
const tempFilePaths = chooseImageRes.tempFilePaths; this.info = res.data;
// // #ifdef MP-WEIXIN this.nickname = this.info.nickname;
// uni.getFileSystemManager().readFile({ this.email = this.info.email;
// filePath: tempFilePaths[0], this.birthday = this.info.birthday;
// encoding: 'base64', this.gender = this.info.gender;
// success: res => { this.info.token =
// this.Post({ JSON.parse(uni.getStorageSync("userInfo")).token ||
// method: 'POST', this.$store.state.user.userInfo.token;
// base64: 'data:image/png;base64,' + res.data console.log(this.info);
// }, '/api/common/base64').then(res => { this.$store.commit("changeUserInfo", this.info);
// if (res.data) { });
// this.Post({ },
// avatar: res.data onChooseAvatar(e) {
// }, '/api/user/profile').then(res => { console.log(e.detail, "==");
// uni.showModal({ pathToBase64(e.detail.avatarUrl).then((base64) => {
// title: '', this.Post(
// content: res.msg, {
// showCancel: false, method: "POST",
// success: res => { base64: base64,
// if (res.confirm) { },
// this.getList() "/api/common/base64"
// } ).then((res) => {
// } if (res.data) {
// }) this.Post(
// }) {
// } avatar: res.data,
// }) },
// } "/api/user/profile"
// }) ).then((res) => {
// // #endif uni.showModal({
title: "提示",
pathToBase64(tempFilePaths[0]).then(base64 => { content: res.msg,
this.Post({ showCancel: false,
method: 'POST', success: (res) => {
base64: base64 if (res.confirm) {
}, '/api/common/base64').then(res => { this.getList();
if (res.data) { }
this.Post({ },
avatar: res.data });
}, '/api/user/profile').then(res => { });
uni.showModal({ }
title: '提示', });
content: res.msg, });
showCancel: false, },
success: res => { uploadImg() {
if (res.confirm) { uni.chooseImage({
this.getList() success: (chooseImageRes) => {
} const tempFilePaths = chooseImageRes.tempFilePaths;
} // // #ifdef MP-WEIXIN
}) // uni.getFileSystemManager().readFile({
}) // filePath: tempFilePaths[0],
} // encoding: 'base64',
}) // success: res => {
}) // this.Post({
} // method: 'POST',
}); // base64: 'data:image/png;base64,' + res.data
}, // }, '/api/common/base64').then(res => {
// // if (res.data) {
bindDateChange: function(e) { // this.Post({
this.birthday = e.detail.value // avatar: res.data
}, // }, '/api/user/profile').then(res => {
getDate(type) { // uni.showModal({
const date = new Date(); // title: '',
let year = date.getFullYear(); // content: res.msg,
let month = date.getMonth() + 1; // showCancel: false,
let day = date.getDate(); // success: res => {
// if (res.confirm) {
if (type === 'start') { // this.getList()
year = year - 60; // }
} else if (type === 'end') { // }
year = year + 2; // })
} // })
month = month > 9 ? month : '0' + month; // }
day = day > 9 ? day : '0' + day; // })
return `${year}/${month}/${day}`; // }
}, // })
changesex(index) { // // #endif
this.gender = this.sexes[index].value },
this.$refs.popup.close() });
}, },
submit() { //
uni.showModal({ bindDateChange: function (e) {
title: '提示', this.birthday = e.detail.value;
content: '确认修改您的信息?', },
success: res => { getDate(type) {
if (res.confirm) { const date = new Date();
this.Post({ let year = date.getFullYear();
nickname: this.nickname, let month = date.getMonth() + 1;
gender: this.gender, let day = date.getDate();
birthday: this.birthday
}, '/api/user/profile').then(res => {
console.log(res)
if (res.code == 1) {
uni.showModal({
title: '提示',
content: res.msg,
showCancel: false,
success: res => {
if (res.confirm) {
this.getList()
}
}
})
}
})
}
}
})
},
} if (type === "start") {
} year = year - 60;
} else if (type === "end") {
year = year + 2;
}
month = month > 9 ? month : "0" + month;
day = day > 9 ? day : "0" + day;
return `${year}/${month}/${day}`;
},
changesex(index) {
this.gender = this.sexes[index].value;
this.$refs.popup.close();
},
submit() {
uni.showModal({
title: "提示",
content: "确认修改您的信息?",
success: (res) => {
if (res.confirm) {
this.Post(
{
nickname: this.nickname,
gender: this.gender,
birthday: this.birthday,
},
"/api/user/profile"
).then((res) => {
console.log(res);
if (res.code == 1) {
uni.showModal({
title: "提示",
content: res.msg,
showCancel: false,
success: (res) => {
if (res.confirm) {
this.getList();
}
},
});
}
});
}
},
});
},
},
};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
view { view {
box-sizing: content-box; box-sizing: content-box;
} }
.info-avatar-top { .info-avatar-top {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
font-size: 30rpx; font-size: 30rpx;
border-bottom: 1rpx solid #D8D8D8; border-bottom: 1rpx solid #d8d8d8;
padding: 40rpx 0; padding: 40rpx 0;
height: 48rpx; height: 48rpx;
color: #333; color: #333;
align-items: center; align-items: center;
} }
.info-avatar-top view{ .info-avatar-top view {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.info-avatar-top view:after{ .info-avatar-top view:after {
content: ""; content: "";
width: 20rpx; width: 20rpx;
height: 20rpx; height: 20rpx;
margin-left: 6rpx; margin-left: 6rpx;
background-image: url('https://static.ticket.sz-trip.com/tongli/images/user/rightIcon-gray.png'); background-image: url("https://static.ticket.sz-trip.com/tongli/images/user/rightIcon-gray.png");
background-size: 100% 100%; background-size: 100% 100%;
} }
.info-avatar-top img { .info-avatar-top img {
width: 80rpx; width: 80rpx;
height: 80rpx; height: 80rpx;
border-radius: 50%; border-radius: 50%;
margin-right: 10rpx; margin-right: 10rpx;
} }
.change-avatar-btn { .change-avatar-btn {
color: #FFF; color: #fff;
width: 220rpx; width: 220rpx;
margin: 0 auto; margin: 0 auto;
line-height: 70rpx; line-height: 70rpx;
border-radius: 20rpx; border-radius: 20rpx;
background: #4C93FF; background: #4c93ff;
position: relative; position: relative;
font-size: 34rpx; font-size: 34rpx;
} }
.change-avatar-btn input { .change-avatar-btn input {
position: absolute; position: absolute;
left: 0; left: 0;
right: 0; right: 0;
top: 0; top: 0;
bottom: 0; bottom: 0;
opacity: 0; opacity: 0;
} }
.user-other-info { .user-other-info {
margin: 30rpx; margin: 30rpx;
} }
.userinfo-item { .userinfo-item {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
font-size: 30rpx; font-size: 30rpx;
border-bottom: 1rpx solid #D8D8D8; border-bottom: 1rpx solid #d8d8d8;
padding: 40rpx 30rpx 40rpx 0; padding: 40rpx 30rpx 40rpx 0;
height: 48rpx; height: 48rpx;
color: #333; color: #333;
position: relative; position: relative;
} }
.info-avatar-top span { .info-avatar-top span {
font-weight: 500; font-weight: 500;
font-size: 31rpx; font-size: 31rpx;
flex-shrink: 0; flex-shrink: 0;
} }
.userinfo-item span { .userinfo-item span {
font-weight: 500; font-weight: 500;
font-size: 31rpx; font-size: 31rpx;
flex-shrink: 0; flex-shrink: 0;
color: #000; color: #000;
} }
.userinfo-item i { .userinfo-item i {
font-weight: 500; font-weight: 500;
font-size: 24rpx; font-size: 24rpx;
color: #999999; color: #999999;
} }
.userinfo-item { .userinfo-item {
& view::after { & view::after {
content: ""; content: "";
width: 20rpx; width: 20rpx;
height: 20rpx; height: 20rpx;
margin-left: 6rpx; margin-left: 6rpx;
background-image: url('https://static.ticket.sz-trip.com/tongli/images/user/rightIcon-gray.png'); background-image: url("https://static.ticket.sz-trip.com/tongli/images/user/rightIcon-gray.png");
background-size: 100% 100%; background-size: 100% 100%;
position: absolute; position: absolute;
right: 0; right: 0;
margin: auto; margin: auto;
top: 0; top: 0;
bottom: 0; bottom: 0;
} }
} }
.birthday-box { .birthday-box {
text-align: right; text-align: right;
} }
.cropper { .cropper {
width: auto; width: auto;
height: 100%; height: 100%;
} }
.cropper-content { .cropper-content {
position: fixed; position: fixed;
left: 0; left: 0;
right: 0; right: 0;
top: 0; top: 0;
bottom: 0; bottom: 0;
z-index: 1000; z-index: 1000;
} }
.dialog-footer .change-avatar-btn { .dialog-footer .change-avatar-btn {
position: fixed; position: fixed;
text-align: center; text-align: center;
bottom: 80rpx; bottom: 80rpx;
left: 50%; left: 50%;
margin-left: -110rpx; margin-left: -110rpx;
} }
.btn-tao { .btn-tao {
text-align: center; text-align: center;
font-size: 30rpx; font-size: 30rpx;
width: 697rpx; width: 697rpx;
height: 80rpx; height: 80rpx;
background: #C3282E; background: #c3282e;
border-radius: 40rpx; border-radius: 40rpx;
line-height: 80rpx; line-height: 80rpx;
color: #FFFFFF; color: #ffffff;
position: fixed; position: fixed;
left: 26rpx; left: 26rpx;
bottom: 100rpx; bottom: 100rpx;
} }
.popup-box { .popup-box {
border-radius: 20rpx 20rpx 0rpx 0rpx; border-radius: 20rpx 20rpx 0rpx 0rpx;
background: #fff; background: #fff;
overflow: hidden; overflow: hidden;
.popup-item { .popup-item {
width: 697rpx; width: 697rpx;
height: 99rpx; height: 99rpx;
font-weight: 500; font-weight: 500;
font-size: 31rpx; font-size: 31rpx;
color: #12293C; color: #12293c;
margin: auto; margin: auto;
} }
.popup-item:nth-child(2) { .popup-item:nth-child(2) {
border: none; border: none;
border-bottom: 1rpx solid #D8D8D8; border-bottom: 1rpx solid #d8d8d8;
border-top: 1rpx solid #D8D8D8; border-top: 1rpx solid #d8d8d8;
} }
.popup-items { .popup-items {
width: 100%; width: 100%;
height: 99rpx; height: 99rpx;
font-weight: 500; font-weight: 500;
font-size: 31rpx; font-size: 31rpx;
color: #12293C; color: #12293c;
border-top: 13rpx solid #F2F2F2; border-top: 13rpx solid #f2f2f2;
} }
} }
.avatar-wrapper {
margin: 0;
}
</style> </style>

Loading…
Cancel
Save