页面适配,消息功能
This commit is contained in:
parent
2f262acff4
commit
986f7be29b
348
App.vue
348
App.vue
@ -12,92 +12,57 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
<style lang="scss">
|
||||
/*每个页面公共css */
|
||||
@import "./common/style/icons.css";
|
||||
|
||||
/* 每个页面公共css */
|
||||
/* 解决小程序和app滚动条的问题 */
|
||||
/* #ifdef MP-WEIXIN || APP-PLUS */
|
||||
::-webkit-scrollbar {
|
||||
display: none;
|
||||
width: 0 !important;
|
||||
height: 0 !important;
|
||||
-webkit-appearance: none;
|
||||
background: transparent;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
/* #endif */
|
||||
|
||||
/* 解决H5的问题 */
|
||||
/*#ifdef H5*/
|
||||
uni-scroll-view .uni-scroll-view::-webkit-scrollbar {
|
||||
display: none;
|
||||
width: 0 !important;
|
||||
height: 0 !important;
|
||||
-webkit-appearance: none;
|
||||
background: transparent;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
/*#endif*/
|
||||
|
||||
@import "./uni.scss";
|
||||
|
||||
page {
|
||||
background: linear-gradient(to bottom, #F0F0F0, #FFFFFF);
|
||||
background-size: 100vw 100vh;
|
||||
background: linear-gradient(to bottom, $bg-top-color, $bg-bottom-color);
|
||||
background-size: 100% 100vh;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.page-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 30rpx;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 0;
|
||||
height: 0;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
/* 自定义导航栏容器 */
|
||||
.custom-navbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/* 标题 */
|
||||
.navbar-title {
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/***End***/
|
||||
// 自定义Checkbox样式
|
||||
checkbox.round .wx-checkbox-input,
|
||||
checkbox.round .uni-checkbox-input {
|
||||
border-radius: 100rpx;
|
||||
width: 36rpx !important;
|
||||
height: 36rpx !important;
|
||||
}
|
||||
|
||||
//设置背景色
|
||||
checkbox.yellow[checked] .wx-checkbox-input,
|
||||
checkbox.yellow.checked .uni-checkbox-input {
|
||||
background-color: #ff9944 !important;
|
||||
border-color: #ff9944 !important;
|
||||
color: #ffffff !important;
|
||||
background-color: $primary-color !important;
|
||||
border-color: $primary-color !important;
|
||||
color: $white-color !important;
|
||||
}
|
||||
|
||||
:global(.body-container) {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 30rpx !important;
|
||||
}
|
||||
|
||||
.divider-v {
|
||||
margin-top: 5rpx;
|
||||
width: 90%;
|
||||
height: 3rpx;
|
||||
background-color: #F0F0F0;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.divider-h {
|
||||
width: 1px;
|
||||
height: 10px;
|
||||
background-color: #e7e4e4;
|
||||
padding: 0px 1px;
|
||||
margin-left: 10px;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.divider-v-100 {
|
||||
height: 1rpx;
|
||||
background-color: #F0F0F0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.single-line {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.mt-10 {
|
||||
margin-top: 10rpx;
|
||||
@ -111,6 +76,74 @@
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.ml-5 {
|
||||
margin-left: 5rpx;
|
||||
}
|
||||
|
||||
.star::after {
|
||||
content: "*";
|
||||
color: $red-color;
|
||||
margin-left: 6rpx;
|
||||
}
|
||||
|
||||
.gray-star::after {
|
||||
content: '*';
|
||||
color: $text-gray-hint-color;
|
||||
margin-left: 6rpx;
|
||||
}
|
||||
|
||||
.bottom-footer {
|
||||
position: fixed;
|
||||
bottom: 0rpx;
|
||||
left: 0rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: white;
|
||||
padding-bottom: 40rpx;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.bottom-fixed-footer {
|
||||
position: fixed;
|
||||
bottom: 0rpx;
|
||||
left: 0rpx;
|
||||
background-color: $white-color;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: $page-padding $page-padding 50rpx;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.bottom-btn-green {
|
||||
background-color: $btn-green-color;
|
||||
color: white;
|
||||
font-size: 28rpx;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.bottom-btn-green:active {
|
||||
background-color: $btn-green-color-active;
|
||||
}
|
||||
|
||||
.bottom-btn-primary {
|
||||
background-color: $primary-color;
|
||||
color: white;
|
||||
font-size: 28rpx;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.bottom-btn-primary:active {
|
||||
background-color: $primary-color-active;
|
||||
}
|
||||
|
||||
.ml-10 {
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
@ -131,6 +164,10 @@
|
||||
margin-top: 40rpx;
|
||||
}
|
||||
|
||||
.mr-20 {
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.mr-40 {
|
||||
margin-right: 40rpx;
|
||||
}
|
||||
@ -167,35 +204,139 @@
|
||||
padding: 40rpx;
|
||||
}
|
||||
|
||||
.bottom-dialog-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
border-top-right-radius: 15rpx;
|
||||
border-top-left-radius: 15rpx;
|
||||
padding: 30rpx;
|
||||
.border-left {
|
||||
border-top-left-radius: 5rpx;
|
||||
border-bottom-left-radius: 5rpx;
|
||||
}
|
||||
|
||||
.bottom-title-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
.border-right {
|
||||
border-top-right-radius: 5rpx;
|
||||
border-bottom-right-radius: 5rpx;
|
||||
}
|
||||
|
||||
.close-icon {
|
||||
.divider-v {
|
||||
width: 95%;
|
||||
height: 1rpx;
|
||||
background-color: $divider-color;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.divider-h {
|
||||
width: 1px;
|
||||
height: 10px;
|
||||
background-color: $divider-color;
|
||||
padding: 0px 1px;
|
||||
margin-left: 10px;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.divider-h-white {
|
||||
width: 1rpx;
|
||||
height: 20rpx;
|
||||
background-color: $primary-color-active;
|
||||
padding: 0rpx 1rpx;
|
||||
align-self: center;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
|
||||
.divider-v-100 {
|
||||
height: 1rpx;
|
||||
background-color: $divider-color;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.single-line {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.single-line-front {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
direction: rtl;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.multiple-3-ellipsis {
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 3;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.multiple-2-ellipsis {
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.size-16 {
|
||||
height: 16rpx;
|
||||
height: 16rpx;
|
||||
}
|
||||
|
||||
.size-32 {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
}
|
||||
|
||||
.size-48 {
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
}
|
||||
|
||||
.bottom-title-txt {
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
color: black;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
.size-48-128 {
|
||||
width: 128rpx;
|
||||
height: 48rpx;
|
||||
}
|
||||
|
||||
.size-64 {
|
||||
width: 64rpx;
|
||||
height: 64rpx;
|
||||
}
|
||||
|
||||
.size-128 {
|
||||
width: 128rpx;
|
||||
height: 128rpx;
|
||||
}
|
||||
|
||||
.icon-arrow-solid::after {
|
||||
content: '';
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ1ODA2NDUxMTAzIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE0MDQ5IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik0xMDA0Ljk5MTg5NCAyNDIuOTkzNDRjLTEyLjY1ODA2MS0xMi42Njg1NjgtMjcuNjYyODAyLTE4Ljk5NzU5OS00NS4wMDAyMTItMTguOTk3NTk5SDY0LjAwNDgxNmMtMTcuMzQ0NDE1IDAtMzIuMzM4NjQ5IDYuMzI5MDMtNDUuMDA3MjE3IDE4Ljk5NzU5OUM2LjMyOTAzIDI1NS42NzYwMTggMCAyNzAuNjcwMjUxIDAgMjg4LjAwNDE1OWMwIDE3LjMzMDQwNSA2LjMyOTAzIDMyLjMyNDYzOSAxOC45OTc1OTkgNDQuOTk2NzFsNDQ3Ljk5NTE4NCA0NDcuOTk1MTg0YzEyLjY4MjU3OCAxMi42Njg1NjggMjcuNjc2ODEyIDE5LjAxMTYwOSA0NS4wMDcyMTcgMTkuMDExNjA5czMyLjMzODY0OS02LjM0MzA0IDQ0Ljk5NjcxLTE5LjAxMTYwOUwxMDA0Ljk5MTg5NCAzMzIuOTk3MzY2YzEyLjY1NDU1OC0xMi42Njg1NjggMTkuMDA4MTA2LTI3LjY2MjgwMiAxOS4wMDgxMDYtNDQuOTk2NzA5IDAtMTcuMzMwNDA1LTYuMzUzNTQ4LTMyLjMyNDYzOS0xOS4wMDgxMDYtNDUuMDA3MjE3eiIgcC1pZD0iMTQwNTAiIGZpbGw9IiNkYmRiZGIiPjwvcGF0aD48L3N2Zz4=');
|
||||
display: block;
|
||||
background-size: cover;
|
||||
width: 20rpx;
|
||||
height: 20rpx;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.no-more {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 80%;
|
||||
margin: 40rpx 0rpx 0rpx 0rpx;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
.no-more::before,
|
||||
.no-more::after {
|
||||
content: "";
|
||||
flex: 1;
|
||||
height: 1px;
|
||||
background-color: var(--divider-color);
|
||||
}
|
||||
|
||||
.no-more-dot {
|
||||
width: 8rpx;
|
||||
height: 8rpx;
|
||||
border-radius: 50%;
|
||||
background-color: var(--divider-color);
|
||||
margin: 0 20rpx;
|
||||
}
|
||||
|
||||
.uni-popup-message__box {
|
||||
@ -205,4 +346,29 @@
|
||||
.uni-popup {
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.bottom-dialog-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
padding: 30rpx;
|
||||
}
|
||||
|
||||
.dialog-title-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.dialog-title-txt {
|
||||
align-self: center;
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.has-icon {
|
||||
margin-left: -48rpx;
|
||||
}
|
||||
</style>
|
@ -3,21 +3,38 @@ const isEmpty = function(obj) {
|
||||
if (typeof obj !== 'object') return false;
|
||||
return JSON.stringify(obj) === '{}';
|
||||
};
|
||||
const status = function(value) {
|
||||
var status = '排队中...'
|
||||
switch (value) {
|
||||
case 'NONE':
|
||||
status = '排队中...'
|
||||
break
|
||||
case 'GENERATING':
|
||||
status = '生成中...'
|
||||
break
|
||||
case 'SUCCESS':
|
||||
status = '生成成功'
|
||||
break
|
||||
case 'FAILED':
|
||||
status = '生成失败'
|
||||
break
|
||||
const status = function(value, state) {
|
||||
var status = '未生成'
|
||||
if (state == 'SUCCESS') {
|
||||
switch (value) {
|
||||
case 'NONE':
|
||||
status = '未生成'
|
||||
break
|
||||
case 'PENDING':
|
||||
status = '等待'
|
||||
break
|
||||
case 'GENERATING':
|
||||
status = '生成中...'
|
||||
break
|
||||
case 'SUCCESS':
|
||||
status = '生成成功'
|
||||
break
|
||||
case 'FAILED':
|
||||
status = '生成失败'
|
||||
break
|
||||
}
|
||||
} else {
|
||||
switch (state) {
|
||||
case 'FAILED':
|
||||
status = '生成失败'
|
||||
break
|
||||
case 'GENERATING':
|
||||
status = '生成中...'
|
||||
break
|
||||
case 'NONE':
|
||||
status = '未生成'
|
||||
break
|
||||
}
|
||||
}
|
||||
return status
|
||||
};
|
||||
@ -108,6 +125,19 @@ const objIsEmpty = function(obj) {
|
||||
}
|
||||
return Object.keys(obj).length === 0;
|
||||
}
|
||||
var moneyTxt = function(size, fontSize, price) {
|
||||
const formattedStr =
|
||||
'<span style="font-size:' + size + 'px;">¥</span><span style="font-size:' + fontSize + 'px;">' + price +
|
||||
'</span>';
|
||||
return formattedStr
|
||||
}
|
||||
var phoneNum = function(str, startLength, endLength, replaceStr) {
|
||||
if (str == null || str == '') return ''
|
||||
if (str.length <= startLength + endLength) {
|
||||
return str;
|
||||
}
|
||||
return str.slice(0, startLength) + replaceStr + str.slice(str.length - endLength);
|
||||
}
|
||||
export {
|
||||
isEmpty,
|
||||
status,
|
||||
@ -116,5 +146,7 @@ export {
|
||||
boderStyle,
|
||||
fontColor,
|
||||
timeSplit,
|
||||
objIsEmpty
|
||||
objIsEmpty,
|
||||
moneyTxt,
|
||||
phoneNum
|
||||
}
|
63
common/js/data.js
Normal file
63
common/js/data.js
Normal file
@ -0,0 +1,63 @@
|
||||
const kindList = [{
|
||||
"value": "CODE",
|
||||
"title": "代码"
|
||||
}, {
|
||||
"title": "操作手册",
|
||||
"value": "MANUAL"
|
||||
}, {
|
||||
"title": "全部",
|
||||
"value": "ALL"
|
||||
}]
|
||||
const typeList = [{
|
||||
"title": "一次补正",
|
||||
"value": "CORRECTION1"
|
||||
}, {
|
||||
"title": "二次补正",
|
||||
"value": "CORRECTION2"
|
||||
}]
|
||||
const stateList = [{
|
||||
"title": "待审核",
|
||||
"value": "PENDING"
|
||||
}, {
|
||||
"title": "已通过",
|
||||
"value": "APPROVED"
|
||||
}, {
|
||||
"title": "未通过",
|
||||
"value": "REJECTED"
|
||||
}, {
|
||||
"title": "已取消",
|
||||
"value": "CANCELED"
|
||||
}]
|
||||
const homeTypeList = [{
|
||||
value: 'FREE',
|
||||
label: '免费试用'
|
||||
},
|
||||
{
|
||||
value: 'MATERIAL',
|
||||
label: '写材料'
|
||||
},
|
||||
{
|
||||
value: 'ALL',
|
||||
label: '全托管'
|
||||
}
|
||||
]
|
||||
const expandList = [{
|
||||
value: 'PKG',
|
||||
label: '安装包'
|
||||
},
|
||||
{
|
||||
value: 'VIDEO_DEMO',
|
||||
label: '演示视频'
|
||||
},
|
||||
{
|
||||
value: 'URGENT',
|
||||
label: '加急'
|
||||
}
|
||||
]
|
||||
export {
|
||||
stateList,
|
||||
kindList,
|
||||
typeList,
|
||||
homeTypeList,
|
||||
expandList
|
||||
}
|
@ -3,80 +3,104 @@ import {
|
||||
} from "./http.js";
|
||||
// 公共API
|
||||
const apiPath = {
|
||||
loginUrl: '/api/user/wx/login', //登录
|
||||
registerUrl: '/api/user/wx/register', //注册,
|
||||
updateUserInfo: '/api/user-info/update-self',
|
||||
csaNo: '/api/csa/get', //获取客服编号
|
||||
createContact: '/api/proj-contact/save', //创建联系人
|
||||
mineAccount: '/api/user-info/get-user-self', //获取我的账户余额
|
||||
minePackageCount: '/api/proj/servicepkg/packageorder/count/self', //我的套餐包剩余
|
||||
uploadImg: '/api/file/v2/upload-image', //上传图片
|
||||
userInfo: '/api/user-info/get-self', //获取我的个人信息
|
||||
mineOrder: '/api/order/listpage/self', //我的订单
|
||||
mineContact: '/api/proj-contact/listpage/self', //联系人列表
|
||||
updateContact: '/api/proj-contact/update/{projContactId}', //更新联系人
|
||||
delContact: '/api/proj-contact/remove/{ids}', //删除联系人
|
||||
canClaimsCoupons: '/api/coupon/list-can-claim', //获取可以申领的优惠卷
|
||||
saveCoupons: '/api/coupon/user/save', //领取优惠卷
|
||||
loginUrl: '/api/user-wx/login', //登录
|
||||
registerUrl: '/api/user-wx/register', //注册,
|
||||
unbindWx: '/api/user-wx/unlock-phone', //解绑微信
|
||||
updateUserInfo: '/api/user-info/update-self',
|
||||
csaNo: '/api/csa/get', //获取客服编号
|
||||
createContact: '/api/proj-contact/save', //创建联系人
|
||||
mineAccount: '/api/user-info/get-user-self', //获取我的账户余额
|
||||
minePackageCount: '/api/proj/servicepkg/packageorder/count/self', //我的套餐包剩余
|
||||
uploadImg: '/api/file/v2/upload-image', //上传图片
|
||||
userInfo: '/api/user-info/get-self', //获取我的个人信息
|
||||
mineOrder: '/api/order/listpage/self', //我的订单
|
||||
mineContact: '/api/proj-contact/listpage/self', //联系人列表
|
||||
updateContact: '/api/proj-contact/update/{projContactId}', //更新联系人
|
||||
delContact: '/api/proj-contact/remove/{ids}', //删除联系人
|
||||
canClaimsCoupons: '/api/coupon/list-can-claim', //获取可以申领的优惠卷
|
||||
saveCoupons: '/api/coupon/user/save', //领取优惠卷
|
||||
minePayRecord: '/api/account/listpage-item/self',
|
||||
mineMsgNotice: '/api/user-msg/listpage-simple/self', //获取消息通知
|
||||
readMsgNotice: '/api/user-msg/update-read/self', //标记读取消息
|
||||
deleteMsgNotice: '/api/user-msg/remove/self/{ids}', //删除消息通知
|
||||
}
|
||||
class UserApi {
|
||||
static doLogin(data) {
|
||||
return request(apiPath.loginUrl, "POST", data, null, 'operator', false)
|
||||
}
|
||||
static doRegister(data) {
|
||||
return request(apiPath.registerUrl, "POST", data, null, 'operator', false)
|
||||
}
|
||||
static doUpdateUserInfo(data) {
|
||||
return request(apiPath.updateUserInfo, "PUT", data)
|
||||
}
|
||||
static doGetCsaNo() {
|
||||
return request(apiPath.csaNo, "GET")
|
||||
}
|
||||
static doCreateContact(data) {
|
||||
return request(apiPath.createContact, "POST", data)
|
||||
}
|
||||
//获取我的账户余额
|
||||
static doGetMineAccount() {
|
||||
return request(apiPath.mineAccount, "GET")
|
||||
}
|
||||
//获取我的套餐包
|
||||
static doGetMinePackageCount() {
|
||||
return request(apiPath.minePackageCount, "GET")
|
||||
}
|
||||
//上传图片
|
||||
static doUploadImg(data) {
|
||||
return request(apiPath.uploadImg, "POST", data)
|
||||
}
|
||||
//获取个人信息
|
||||
static doGetUserInfo() {
|
||||
return request(apiPath.userInfo, "GET")
|
||||
}
|
||||
//获取我的订单
|
||||
static doGetMineOrder(data) {
|
||||
return request(apiPath.mineOrder, "GET", data)
|
||||
}
|
||||
//获取项目联系人列表
|
||||
static doGetMineContactList(data) {
|
||||
return request(apiPath.mineContact, "GET", data)
|
||||
}
|
||||
//更新联系人
|
||||
static doUpdateContactList(id, data) {
|
||||
const path = apiPath.updateContact.replace('{projContactId}', id)
|
||||
return request(path, "PUT", data)
|
||||
}
|
||||
//删除联系人
|
||||
static doDelContact(id) {
|
||||
const path = apiPath.delContact.replace('{ids}', id)
|
||||
return request(path, "DELETE")
|
||||
}
|
||||
//获取可以申领的优惠卷
|
||||
static doGetClaimsCouponsList() {
|
||||
return request(apiPath.canClaimsCoupons, "GET")
|
||||
}
|
||||
//领取优惠卷
|
||||
static doSaveCoupons(data) {
|
||||
return request(apiPath.saveCoupons, "POST", data)
|
||||
}
|
||||
static doLogin(data) {
|
||||
return request(apiPath.loginUrl, "POST", data, null, 'operator', false)
|
||||
}
|
||||
static doRegister(data) {
|
||||
return request(apiPath.registerUrl, "POST", data, null, 'operator', false)
|
||||
}
|
||||
static doUnbindWx() {
|
||||
return request(apiPath.unbindWx, "GET", null, null, 'operator', true)
|
||||
}
|
||||
static doUpdateUserInfo(data) {
|
||||
return request(apiPath.updateUserInfo, "PUT", data)
|
||||
}
|
||||
static doGetCsaNo() {
|
||||
return request(apiPath.csaNo, "GET")
|
||||
}
|
||||
static doCreateContact(data) {
|
||||
return request(apiPath.createContact, "POST", data)
|
||||
}
|
||||
static doGetMinePayRecord(data) {
|
||||
return request(apiPath.minePayRecord, 'GET', data)
|
||||
}
|
||||
//获取我的账户余额
|
||||
static doGetMineAccount() {
|
||||
return request(apiPath.mineAccount, "GET")
|
||||
}
|
||||
//获取我的套餐包
|
||||
static doGetMinePackageCount() {
|
||||
return request(apiPath.minePackageCount, "GET")
|
||||
}
|
||||
//上传图片
|
||||
static doUploadImg(data) {
|
||||
return request(apiPath.uploadImg, "POST", data)
|
||||
}
|
||||
//获取个人信息
|
||||
static doGetUserInfo() {
|
||||
return request(apiPath.userInfo, "GET")
|
||||
}
|
||||
//获取我的订单
|
||||
static doGetMineOrder(data) {
|
||||
return request(apiPath.mineOrder, "GET", data)
|
||||
}
|
||||
//获取项目联系人列表
|
||||
static doGetMineContactList(data) {
|
||||
return request(apiPath.mineContact, "GET", data)
|
||||
}
|
||||
//更新联系人
|
||||
static doUpdateContactList(id, data) {
|
||||
const path = apiPath.updateContact.replace('{projContactId}', id)
|
||||
return request(path, "PUT", data)
|
||||
}
|
||||
//删除联系人
|
||||
static doDelContact(id) {
|
||||
const path = apiPath.delContact.replace('{ids}', id)
|
||||
return request(path, "DELETE")
|
||||
}
|
||||
//获取可以申领的优惠卷
|
||||
static doGetClaimsCouponsList() {
|
||||
return request(apiPath.canClaimsCoupons, "GET")
|
||||
}
|
||||
//领取优惠卷
|
||||
static doSaveCoupons(data) {
|
||||
return request(apiPath.saveCoupons, "POST", data)
|
||||
}
|
||||
//获取消息通知
|
||||
static doGetMineMsgNotice(data) {
|
||||
return request(apiPath.mineMsgNotice, "GET", data)
|
||||
}
|
||||
//标记读取状态
|
||||
static doReadMineMsgNotice(data) {
|
||||
return request(apiPath.readMsgNotice, 'PUT', data)
|
||||
}
|
||||
//删除消息通知
|
||||
static doDeleteMineMsgNotice(id) {
|
||||
const path = apiPath.deleteMsgNotice.replace('{ids}', id)
|
||||
return request(path, 'DELETE')
|
||||
}
|
||||
}
|
||||
|
||||
export default UserApi;
|
@ -2,13 +2,16 @@ import {
|
||||
set,
|
||||
get
|
||||
} from '../cache/storage.js';
|
||||
// 定义api服务地址
|
||||
// const baseUrl = 'https://www.xzszwhy.cn/daqi/app';
|
||||
const operatorUrl = 'http://192.168.0.15:8091/operator';
|
||||
// const operatorUrl = 'https://www.aimzhu.com/operator';
|
||||
const copyrightUrl = 'http://192.168.0.15:7025/copyright';
|
||||
const uploadImgUrl = copyrightUrl + '/api/file/v2/upload-image'
|
||||
const previewUrl = copyrightUrl + '/route/file/v2/download/true/'
|
||||
import {
|
||||
operatorUrl,
|
||||
operatorPlug,
|
||||
uploadImgUrl,
|
||||
previewUrl,
|
||||
copyrightUrl,
|
||||
imgAssets,
|
||||
appUrl
|
||||
} from '../net/mainUrl'
|
||||
|
||||
/**
|
||||
* 传入请求参数,返回Promise支持链试调用
|
||||
* @param url 请求地址
|
||||
@ -18,13 +21,12 @@ const previewUrl = copyrightUrl + '/route/file/v2/download/true/'
|
||||
*/
|
||||
function request(url, method = "GET", data = {}, params = {}, project = "copyright", needToken = true) {
|
||||
const header = {
|
||||
"Content-Type": "application/json"
|
||||
"content-type": "application/json"
|
||||
// 有其他content-type需求加点逻辑判断处理即可
|
||||
}
|
||||
//是否需要token
|
||||
if (needToken) {
|
||||
//TODO const token = get('token')
|
||||
const token =
|
||||
'NjBIOFRORDcraDc4U1RsUTI4a3B5em50VVVzclp2QjdFWDV2dVJJc0VLL3Fhazd0bjZPaU9Tc3E1cHc2cmYyZTc0Y2FITTdRR0pMTk1xaVRHM0I1d0NiTnJ4b1BVSVNtUFl4SlFtR1g2M0tCQTc2TXM4L3d4ZVhwM09VREN0bDMrTXNoa0trWDR1eG5PdG84OXZ4UVE0dDhRUDdQRk1Qd2N0ZWVLSzJaZzBjcC82NXdueGQvUkZNSm1vZ2doQmFncnRQN0pFQ240enZHaEdFcGpVTDZqY3VpdHRUZERUS2Y5RG5BdXZmeE1kNVVyM29icTZTV054RzNYdURDa2lvR3dIbi9nNmJLOHduNUl4Snp3Qm1qTDRkYXFXZ2plaGNQRmw3ZXBZTlgxV3cwZkVuaGxHZlhRb0ZZMlEveEJhQS9zeWE5NnpxRlUxTmJWYkRmMitvMTZXRnExVytHNEhEb1JPZkE4TG5UVzc0PQ=='
|
||||
const token = get('token')
|
||||
if (token) {
|
||||
header.Auth = `Bearer ${token}`;
|
||||
}
|
||||
@ -35,17 +37,17 @@ function request(url, method = "GET", data = {}, params = {}, project = "copyrig
|
||||
baseUrl = operatorUrl
|
||||
} else if (project == 'copyright') {
|
||||
baseUrl = copyrightUrl
|
||||
} else if (project == 'online') {
|
||||
baseUrl = 'https://www.aimzhu.com/operator'
|
||||
} else if (project == 'plug') {
|
||||
baseUrl = operatorPlug
|
||||
}
|
||||
return new Promise(function(resolve, reject) {
|
||||
uni.request({
|
||||
url: baseUrl + url,
|
||||
timeout: 8000,
|
||||
method: method,
|
||||
data: data,
|
||||
dataType: 'json',
|
||||
header: header,
|
||||
method,
|
||||
data,
|
||||
dataType: "json", // 微信官方文档中介绍会对数据进行一次JSON.parse
|
||||
header,
|
||||
success(res) {
|
||||
if (res.statusCode === 200) {
|
||||
resolve(res.data)
|
||||
@ -71,5 +73,7 @@ export {
|
||||
request,
|
||||
uploadImgUrl,
|
||||
previewUrl,
|
||||
copyrightUrl
|
||||
copyrightUrl,
|
||||
imgAssets,
|
||||
appUrl
|
||||
}
|
18
common/js/net/mainUrl.js
Normal file
18
common/js/net/mainUrl.js
Normal file
@ -0,0 +1,18 @@
|
||||
// 定义api服务地址
|
||||
const operatorUrl = 'https://www.aimzhu.com/operator';
|
||||
const operatorPlug = 'https://www.aimzhu.com/operator-plugin'
|
||||
const copyrightUrl = 'https://www.aimzhu.com/copyright';
|
||||
const uploadImgUrl = copyrightUrl + '/api/file/v2/upload-image'
|
||||
const previewUrl = copyrightUrl + '/route/file/v2/download/true/'
|
||||
const imgAssets = 'https://www.aimzhu.com/miniapp-assets'
|
||||
const appUrl = 'https://www.aimzhu.com'
|
||||
|
||||
export {
|
||||
operatorUrl,
|
||||
operatorPlug,
|
||||
uploadImgUrl,
|
||||
previewUrl,
|
||||
copyrightUrl,
|
||||
imgAssets,
|
||||
appUrl
|
||||
}
|
@ -12,6 +12,7 @@ const apiPath = {
|
||||
getPackageList: '/api/proj/servicepkg/packageorder/listpage/self', //获取套餐包
|
||||
getCommendProjectName: '/api/proj/recommend/list-proj-name/ai', //推荐项目名称
|
||||
createProject: '/api/proj/create-quick', //快速创建项目
|
||||
buildProject: '/api/proj/create-quick/proj-id/{projId}', //生成项目
|
||||
reCreate: '/api/proj/generate/proj-id/${projId}', //重新生成
|
||||
proLangList: '/api/env/custom/list-active-lang', //项目语言
|
||||
ruleData: '/app/agreementportal/getrelease/{id}', //使用规则 project="operator"
|
||||
@ -53,6 +54,11 @@ class ProApi {
|
||||
static doCreateProject(data) {
|
||||
return request(apiPath.createProject, "POST", data)
|
||||
}
|
||||
//生成项目
|
||||
static doBuildProject(id) {
|
||||
const path = apiPath.buildProject.replace('{projId}', id)
|
||||
return request(path, "GET")
|
||||
}
|
||||
//重新生成
|
||||
static doReCreate(url) {
|
||||
const path = apiPath.reCreate.replace('${projId}', url)
|
||||
|
@ -67,6 +67,10 @@ const pxToRpx = (pxValue, screenWidth) => {
|
||||
// return pxValue * (750 / screenWidth);
|
||||
const rpx = (750 / screenWidth) * Number(pxValue)
|
||||
return Math.floor(rpx);
|
||||
}
|
||||
|
||||
const rpxToPx = (rpxValue, screenWidth) => {
|
||||
return rpxValue * screenWidth / 750;
|
||||
}
|
||||
|
||||
|
||||
@ -201,5 +205,6 @@ export {
|
||||
removeImgStyleFromRichText,
|
||||
dateTimePicker,
|
||||
pxToRpx,
|
||||
random32Str
|
||||
random32Str,
|
||||
rpxToPx
|
||||
}
|
@ -1,6 +1,16 @@
|
||||
// 手机号验证
|
||||
const isValidPhone = (phone) => {
|
||||
return /^1[3-9]\d{9}$/.test(phone);
|
||||
// 手机号码正则
|
||||
const mobilePattern = /^1[3-9]\d{9}$/;
|
||||
// 固定电话正则
|
||||
const landlinePattern = /^(0\d{2,3})[- ]?\d{7,8}$/;
|
||||
if (mobilePattern.test(phone)) {
|
||||
return true
|
||||
} else if (landlinePattern.test(phone)) {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
};
|
||||
|
||||
// 邮箱验证
|
||||
|
@ -90,4 +90,33 @@
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ0ODc0NTc3NTYwIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ0MzYiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTU3Mi4xNiA1MTJsMTgzLjQ2NjY2Ny0xODMuMDRhNDIuNjY2NjY3IDQyLjY2NjY2NyAwIDEgMC02MC41ODY2NjctNjAuNTg2NjY3TDUxMiA0NTEuODRsLTE4My4wNC0xODMuNDY2NjY3YTQyLjY2NjY2NyA0Mi42NjY2NjcgMCAwIDAtNjAuNTg2NjY3IDYwLjU4NjY2N2wxODMuNDY2NjY3IDE4My4wNC0xODMuNDY2NjY3IDE4My4wNGE0Mi42NjY2NjcgNDIuNjY2NjY3IDAgMCAwIDAgNjAuNTg2NjY3IDQyLjY2NjY2NyA0Mi42NjY2NjcgMCAwIDAgNjAuNTg2NjY3IDBsMTgzLjA0LTE4My40NjY2NjcgMTgzLjA0IDE4My40NjY2NjdhNDIuNjY2NjY3IDQyLjY2NjY2NyAwIDAgMCA2MC41ODY2NjcgMCA0Mi42NjY2NjcgNDIuNjY2NjY3IDAgMCAwIDAtNjAuNTg2NjY3eiIgcC1pZD0iNDQzNyIgZmlsbD0iIzhhOGE4YSI+PC9wYXRoPjwvc3ZnPg==');
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.icon-arrow-solid::after {
|
||||
content: '';
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ1ODA2NDUxMTAzIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE0MDQ5IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik0xMDA0Ljk5MTg5NCAyNDIuOTkzNDRjLTEyLjY1ODA2MS0xMi42Njg1NjgtMjcuNjYyODAyLTE4Ljk5NzU5OS00NS4wMDAyMTItMTguOTk3NTk5SDY0LjAwNDgxNmMtMTcuMzQ0NDE1IDAtMzIuMzM4NjQ5IDYuMzI5MDMtNDUuMDA3MjE3IDE4Ljk5NzU5OUM2LjMyOTAzIDI1NS42NzYwMTggMCAyNzAuNjcwMjUxIDAgMjg4LjAwNDE1OWMwIDE3LjMzMDQwNSA2LjMyOTAzIDMyLjMyNDYzOSAxOC45OTc1OTkgNDQuOTk2NzFsNDQ3Ljk5NTE4NCA0NDcuOTk1MTg0YzEyLjY4MjU3OCAxMi42Njg1NjggMjcuNjc2ODEyIDE5LjAxMTYwOSA0NS4wMDcyMTcgMTkuMDExNjA5czMyLjMzODY0OS02LjM0MzA0IDQ0Ljk5NjcxLTE5LjAxMTYwOUwxMDA0Ljk5MTg5NCAzMzIuOTk3MzY2YzEyLjY1NDU1OC0xMi42Njg1NjggMTkuMDA4MTA2LTI3LjY2MjgwMiAxOS4wMDgxMDYtNDQuOTk2NzA5IDAtMTcuMzMwNDA1LTYuMzUzNTQ4LTMyLjMyNDYzOS0xOS4wMDgxMDYtNDUuMDA3MjE3eiIgcC1pZD0iMTQwNTAiIGZpbGw9IiNkYmRiZGIiPjwvcGF0aD48L3N2Zz4=');
|
||||
display: block;
|
||||
background-size: cover;
|
||||
width: 20rpx;
|
||||
height: 20rpx;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
|
||||
.icon-user-default-blue {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQzOTg4MzkwNjkwIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjM0MDkiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiAxMDI0QzIyOS4yMDUzMzMgMTAyNCAwIDc5NC43OTQ2NjcgMCA1MTJTMjI5LjIwNTMzMyAwIDUxMiAwczUxMiAyMjkuMjA1MzMzIDUxMiA1MTItMjI5LjIwNTMzMyA1MTItNTEyIDUxMnogbTAtNDk2LjQ2OTMzM2ExNzAuNjY2NjY3IDE3MC42NjY2NjcgMCAxIDAgMC0zNDEuMzMzMzM0IDE3MC42NjY2NjcgMTcwLjY2NjY2NyAwIDAgMCAwIDM0MS4zMzMzMzR6IG0yNjMuNzY1MzMzIDI2My43MjI2NjZhMjYzLjc2NTMzMyAyNjMuNzY1MzMzIDAgMSAwLTUyNy41MzA2NjYgMGg1MjcuNTMwNjY2eiIgcC1pZD0iMzQxMCIgZmlsbD0iIzEyOTZkYiI+PC9wYXRoPjwvc3ZnPg==');
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.icon-add-circle-blue {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ3MDM1NjY4ODU4IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjE2NDIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA5MzYuOTE1NjE5Yy0yMzQuNjcyNzY0IDAtNDI0LjkxNTYxOS0xOTAuMjQzODc5LTQyNC45MTU2MTktNDI0LjkxNTYxOVMyNzcuMzI3MjM2IDg3LjA4MzM1NyA1MTIgODcuMDgzMzU3YzIzNC42NzY4NTcgMCA0MjQuOTE2NjQzIDE5MC4yNDM4NzkgNDI0LjkxNjY0MyA0MjQuOTE1NjE5Uzc0Ni42NzY4NTcgOTM2LjkxNTYxOSA1MTIgOTM2LjkxNTYxOXpNNzI0LjQ1NzgxIDQ2OS41MDQxNCA1NTQuNDkxNzY3IDQ2OS41MDQxNCA1NTQuNDkxNzY3IDI5OS41NDYyODRsLTg0Ljk4MzUzMyAwIDAgMTY5Ljk1Nzg1N0wyOTkuNTQyMTkgNDY5LjUwNDE0bDAgODQuOTkxNzIgMTY5Ljk2NjA0MyAwIDAgMTY5Ljk2NjA0MyA4NC45ODM1MzMgMEw1NTQuNDkxNzY3IDU1NC40OTU4NmwxNjkuOTY2MDQzIDBMNzI0LjQ1NzgxIDQ2OS41MDQxNHoiIHAtaWQ9IjE2NDMiIGZpbGw9IiMzMjcwRkYiPjwvcGF0aD48L3N2Zz4=');
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.icon-del-red {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ3Mjk4NjU3MTUxIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjEiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTc2NS41MDU2OTEgMTkxLjk0MjU2NyA2MzkuNjI3NzcyIDE5MS45NDI1NjdjMC0zNS4zMjQ1My0yOC42MzYyMDEtNjMuOTYwNzMxLTYzLjk2MDczMS02My45NjA3MzFMNDQ3Ljc0NTU4IDEyNy45ODE4MzZjLTM1LjMyNDUzIDAtNjMuOTYwNzMxIDI4LjYzNjIwMS02My45NjA3MzEgNjMuOTYwNzMxTDI1Ny45MDU5MDggMTkxLjk0MjU2N2MtMzYuNDUyMjEzIDAtNjYuMDAzMjUgMjkuNTUxMDM2LTY2LjAwMzI1IDY2LjAwMzI1bDAgNTkuODc1NjkyYzAgMzYuNDUyMjEzIDI5LjU1MTAzNiA2Ni4wMDMyNSA2Ni4wMDMyNSA2Ni4wMDMyNWwtMi4wNDI1MTkgMCAwIDQ0NS42ODE1NzJjMCAzNi40NTIyMTMgMjkuNTUxMDM2IDY2LjAwMzI1IDY2LjAwMzI1IDY2LjAwMzI1bDYxLjkxODIxMSAwIDYzLjk2MDczMSAwIDEyNy45MjE0NjEgMCA2My45NjA3MzEgMCA2MS45MTgyMTEgMGMzNi40NTIyMTMgMCA2Ni4wMDMyNS0yOS41NTEwMzYgNjYuMDAzMjUtNjYuMDAzMjVMNzY3LjU0OTIzNCAzODMuODIzNzM2bC0yLjA0MjUxOSAwYzM2LjQ1MjIxMyAwIDY2LjAwMzI1LTI5LjU1MTAzNiA2Ni4wMDMyNS02Ni4wMDMyNWwwLTU5Ljg3NTY5MkM4MzEuNTA4OTQxIDIyMS40OTI1OCA4MDEuOTU4OTI4IDE5MS45NDI1NjcgNzY1LjUwNTY5MSAxOTEuOTQyNTY3ek03MDMuNTg3NDggODAzLjQxMzA0NmMtMC4xMDEzMDcgMy4xMjMxMzEtMS43NDM3MTQgMjcuODEzNDYyLTI3Ljk2MTg0MiAyOC4xMzQ3ODFsLTM1Ljk5ODg4OSAwLTYzLjk2MDczMSAwTDQ0Ny43NDU1OCA4MzEuNTQ3ODI3IDM4My43ODQ4NSA4MzEuNTQ3ODI3bC0zNS44NzkxNjIgMGMtMjcuOTg4NDQ4LTAuMzQzODMxLTI3Ljk2OTAwNS0yOC40NTkxNjktMjcuOTY5MDA1LTI4LjQ1OTE2OWwtMC4xMTI1NjQgMC4wMzE3MjJMMzE5LjgyNDExOSAzODMuODIzNzM2bDM4My43NjMzNiAwTDcwMy41ODc0OCA4MDMuNDEzMDQ2ek03MzUuNTY3ODQ1IDMxOS44NjMwMDUgMjg3Ljg0Mzc1NCAzMTkuODYzMDA1Yy0xNy42NjIyNjUgMC0zMS45ODAzNjUtMTQuMzE4MS0zMS45ODAzNjUtMzEuOTgwMzY1IDAtMTcuNjYyMjY1IDE0LjMxODEtMzEuOTgwMzY1IDMxLjk4MDM2NS0zMS45ODAzNjVsMTU5LjkwMTgyNyAwIDEyNy45MjE0NjEgMCAxNTkuOTAxODI3IDBjMTcuNjYyMjY1IDAgMzEuOTgwMzY1IDE0LjMxODEgMzEuOTgwMzY1IDMxLjk4MDM2NUM3NjcuNTQ4MjEgMzA1LjU0NDkwNSA3NTMuMjMwMTEgMzE5Ljg2MzAwNSA3MzUuNTY3ODQ1IDMxOS44NjMwMDV6IiBwLWlkPSIyNjIyIiBmaWxsPSIjZTQ3YzZlIj48L3BhdGg+PHBhdGggZD0iTTQ0Ny43NDU1OCA3NjcuNTg4MTE5YzE3LjY2MjI2NSAwIDMxLjk4MDM2NS0xNC4zMTgxIDMxLjk4MDM2NS0zMS45ODAzNjVMNDc5LjcyNTk0NiA0NzkuNzY0ODMxYzAtMTcuNjYyMjY1LTE0LjMxODEtMzEuOTgwMzY1LTMxLjk4MDM2NS0zMS45ODAzNjUtMTcuNjYyMjY1IDAtMzEuOTgwMzY1IDE0LjMxODEtMzEuOTgwMzY1IDMxLjk4MDM2NWwwIDI1NS44NDI5MjJDNDE1Ljc2NTIxNSA3NTMuMjcwMDE5IDQzMC4wODMzMTYgNzY3LjU4ODExOSA0NDcuNzQ1NTggNzY3LjU4ODExOXoiIHAtaWQ9IjI2MjMiIGZpbGw9IiNlNDdjNmUiPjwvcGF0aD48cGF0aCBkPSJNNTc1LjY2NzA0MiA3NjcuNTg4MTE5YzE3LjY2MjI2NSAwIDMxLjk4MDM2NS0xNC4zMTgxIDMxLjk4MDM2NS0zMS45ODAzNjVMNjA3LjY0NzQwNyA0NzkuNzY0ODMxYzAtMTcuNjYyMjY1LTE0LjMxODEtMzEuOTgwMzY1LTMxLjk4MDM2NS0zMS45ODAzNjUtMTcuNjYyMjY1IDAtMzEuOTgwMzY1IDE0LjMxODEtMzEuOTgwMzY1IDMxLjk4MDM2NWwwIDI1NS44NDI5MjJDNTQzLjY4NjY3NiA3NTMuMjcwMDE5IDU1OC4wMDQ3NzcgNzY3LjU4ODExOSA1NzUuNjY3MDQyIDc2Ny41ODgxMTl6IiBwLWlkPSIyNjI0IiBmaWxsPSIjZTQ3YzZlIj48L3BhdGg+PC9zdmc+');
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
}
|
17
main.js
17
main.js
@ -1,5 +1,8 @@
|
||||
import App from './App'
|
||||
|
||||
import {
|
||||
imgAssets,
|
||||
appUrl
|
||||
} from './common/js/net/mainUrl'
|
||||
// #ifndef VUE3
|
||||
import Vue from 'vue'
|
||||
import './uni.promisify.adaptor'
|
||||
@ -17,6 +20,18 @@ import {
|
||||
} from 'vue'
|
||||
export function createApp() {
|
||||
const app = createSSRApp(App)
|
||||
// app.provide('globalData', {
|
||||
// appTitle: '测试'
|
||||
// })
|
||||
app.provide('globalData', {
|
||||
imgAssetsUrl: imgAssets,
|
||||
locImg: "/static/images",
|
||||
slideBtns: [],
|
||||
appTitle: 'AI喵著',
|
||||
appUrl: appUrl,
|
||||
onlyDelBtns: [],
|
||||
cancelEditBtns: []
|
||||
})
|
||||
return {
|
||||
app
|
||||
}
|
||||
|
@ -61,7 +61,7 @@
|
||||
},
|
||||
"mp-baidu" : {
|
||||
"usingComponents" : true,
|
||||
"appid" : "testid"
|
||||
"appid" : "118838711"
|
||||
},
|
||||
"mp-toutiao" : {
|
||||
"usingComponents" : true,
|
||||
|
172
pages.json
172
pages.json
@ -8,98 +8,98 @@
|
||||
{
|
||||
"path": "pages/index/home",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/mineIndex/mineIndex",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/common/readTxt/readTxt",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/mineAccount/mineInfo/mineInfo",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/mineAccount/mineOrder/mineOrder",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/mineAccount/mineContact/mineContact",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/mineAccount/mineCoupons/mineCoupons",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/pay/payment/payment",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/pay/publicPay/publicPay",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/pay/payState/payState",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/copyright/createBuy/createBuy",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/copyright/createProjectInfo/createProjectInfo",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/common/rule/rule",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "components/ad-popup",
|
||||
"style": {
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/mine/mineAccount/mineMsgNotice/mineMsgNotice",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/common/readTxt/readTxt",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/mine/mineAccount/mineInfo/mineInfo",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/mine/mineAccount/mineOrder/mineOrder",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/mine/mineAccount/mineContact/mineContact",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/mine/mineAccount/mineCoupons/mineCoupons",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/pay/payment/payment",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/pay/publicPay/publicPay",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/pay/payState/payState",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/copyright/createBuy/createBuy",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/copyright/createProjectInfo/createProjectInfo",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "pages/common/rule/rule",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "components/ad-popup",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : ""
|
||||
}
|
||||
}
|
||||
],
|
||||
"globalStyle": {
|
||||
|
@ -1,154 +1,144 @@
|
||||
<template>
|
||||
<view class="buy-container">
|
||||
<view class="page-container">
|
||||
<swiper indicator-dots style="height: 120rpx;" autoplay indicator-active-color="#fff">
|
||||
<swiper-item>
|
||||
<image src="/static/images/banner_1.png" style="width: 100vw;height: 120rpx;"></image>
|
||||
<image :src="globalData.locImg+'/banner_1.png'" style="width: 100vw;height: 120rpx;"></image>
|
||||
</swiper-item>
|
||||
<swiper-item>
|
||||
<image src="/static/images/banner_2.png" style="width: 100vw;height: 120rpx;"></image>
|
||||
<image :src="globalData.locImg+'/banner_2.png'" style="width: 100vw;height: 120rpx;"></image>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
<!-- 全托管 -->
|
||||
<view class="buy-all-container">
|
||||
<view class="buy-all-box">
|
||||
<view class="pd-20">
|
||||
<view class="buy-all-title">
|
||||
<view class="buy-all-txt">
|
||||
<text class="txt">全托管</text>
|
||||
<text class="money">¥{{allPrice/100}}-{{(allPrice+urgent)/100}}</text>
|
||||
</view>
|
||||
<view class="buy-all-btn" @click="doBuy" data-type="ALL">购买</view>
|
||||
</view>
|
||||
<view class="buy-desc-box mt-10">
|
||||
<view class="buy-desc-txt">从下单到取证,仅需提供基本信息,我们为您提供一站式管家服务.</view>
|
||||
<view class="mt-10" style="font-size: 12px;">提供的服务</view>
|
||||
<view class="buy-desc-item mt-10">
|
||||
<view class="buy-desc-row">
|
||||
<image src="../../../static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">包可运行软件开发与搭建</text>
|
||||
</view>
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">包鉴别材料撰写</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="buy-desc-item mt-10">
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">包代办,包下证,包开发票提</text>
|
||||
</view>
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">供可运行软件安装包</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="buy-desc-item mt-10">
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">提供可运行软件云服务900天</text>
|
||||
</view>
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">提供可运行软件演示视频</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="buy-desc-item mt-10">
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">客服一对一服务</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mt-10">
|
||||
<text style="font-size:12px;">使用流程</text>
|
||||
<view class="buy-desc-column mt-10 list">
|
||||
<view class="buy-desc-row-no-margin list-item">
|
||||
<text class="txt">填写系统名称</text>
|
||||
</view>
|
||||
<view class="buy-desc-row-no-margin list-item">
|
||||
<text class="txt">填写基本信息</text>
|
||||
</view>
|
||||
<view class="buy-desc-row-no-margin list-item">
|
||||
<text class="txt">接收证书</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="container-box">
|
||||
<view class="title-box">
|
||||
<view class="title-content">
|
||||
<text class="title-txt mr-10">全托管</text>
|
||||
<rich-text
|
||||
:nodes="moneyTxt(10,14,allPrice/100)+'-'+moneyTxt(10,14,(allPrice+urgent)/100)"></rich-text>
|
||||
</view>
|
||||
<text class="btn" @click="doBuy" data-type="ALL">购买</text>
|
||||
</view>
|
||||
<text class="desc">从下单到取证,仅需提供基本信息,我们为您提供一站式管家服务.</text>
|
||||
<text class="desc-title">提供的服务</text>
|
||||
<view class="item">
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon">
|
||||
</image>
|
||||
<text>包可运行软件开发与搭建</text>
|
||||
</view>
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon">
|
||||
</image>
|
||||
<text>包鉴别材料撰写</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text class="txt">包代办,包下证,包开发票提</text>
|
||||
</view>
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text class="txt">供可运行软件安装包</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text class="txt">提供可运行软件云服务900天</text>
|
||||
</view>
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text class="txt">提供可运行软件演示视频</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text class="txt">客服一对一服务</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="desc-title">使用流程</view>
|
||||
<view class="list">
|
||||
<view class="buy-desc-row-no-margin list-item">
|
||||
<text class="txt">填写系统名称</text>
|
||||
</view>
|
||||
<view class="buy-desc-row-no-margin list-item">
|
||||
<text class="txt">填写基本信息</text>
|
||||
</view>
|
||||
<view class="buy-desc-row-no-margin list-item">
|
||||
<text class="txt">接收证书</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 写材料 -->
|
||||
<view class="buy-all-box">
|
||||
<view class="pd-20">
|
||||
<view class="buy-all-title">
|
||||
<view class="buy-all-txt">
|
||||
<text class="txt">写材料</text>
|
||||
<text class="money">¥{{materialPrice/100}}</text>
|
||||
</view>
|
||||
<view class="buy-all-btn" @click="doBuy" data-type="MATERIAL">购买</view>
|
||||
<view class="container-box">
|
||||
<view class="title-box">
|
||||
<view class="title-content">
|
||||
<text class="title-txt mr-10">写材料</text>
|
||||
<rich-text :nodes="moneyTxt(10,14,materialPrice/100)"></rich-text>
|
||||
</view>
|
||||
<view class="buy-desc-box">
|
||||
<view class="buy-desc-txt mt-10">通过平台自己搭建可运行软件后由平台自动生成相关鉴别材料,下载鉴别材料后可自行申报或找相关代理机构申报.</view>
|
||||
<view class="mt-10" style="font-size: 12px;">提供的服务</view>
|
||||
<view class="buy-desc-item mt-10">
|
||||
<view class="buy-desc-row">
|
||||
<image src="../../../static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">通过平台自己搭建可运行软件</text>
|
||||
</view>
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">平台自动撰写鉴别材料</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="buy-desc-item">
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">包补正材料撰写一直到下证</text>
|
||||
</view>
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">两次补正不通过平台退款</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="buy-desc-item">
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">包开发票</text>
|
||||
</view>
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">提供可运行软件云服务300天</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="buy-desc-item">
|
||||
<view class="buy-desc-row">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text class="txt">客服一对一服务</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mt-20">
|
||||
<text>使用流程</text>
|
||||
<view style="display: flex;flex-direction: column;">
|
||||
<view class="buy-desc-row-no-margin mt-10">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text>按系统操作流程执行</text>
|
||||
</view>
|
||||
<view class="buy-desc-row-no-margin mt-10">
|
||||
<image src="/static/images/ic_check_fit.png" class="buy-desc-row-icon"></image>
|
||||
<text>如需视频文件和安装包请在下证后购买下载</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="btn" @click="doBuy" data-type="MATERIAL">购买</view>
|
||||
</view>
|
||||
<text class="desc">通过平台自己搭建可运行软件后由平台自动生成相关鉴别材料,下载鉴别材料后可自行申报或找相关代理机构申报.</text>
|
||||
<text class="desc-title">提供的服务</text>
|
||||
<view class="item">
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon">
|
||||
</image>
|
||||
<text>通过平台自己搭建可运行软件</text>
|
||||
</view>
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon">
|
||||
</image>
|
||||
<text>平台自动撰写鉴别材料</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text class="txt">包补正材料撰写一直到下证</text>
|
||||
</view>
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text class="txt">两次补正不通过平台退款</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text class="txt">包开发票</text>
|
||||
</view>
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text class="txt">提供可运行软件云服务300天</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text class="txt">客服一对一服务</text>
|
||||
</view>
|
||||
</view>
|
||||
<text class="desc-title">使用流程</text>
|
||||
<view class="item-column">
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text>按系统操作流程执行</text>
|
||||
</view>
|
||||
<view class="row-item">
|
||||
<image :src="globalData.locImg+'/ic_check_fit.png'" class="check-icon"></image>
|
||||
<text>如需视频文件和安装包请在下证后购买下载</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 提示免费版 -->
|
||||
<view class="hint-box pd-20" bind:tap="copyLink">
|
||||
<view class="icon icon-computer-ind"></view>
|
||||
<view class="content">
|
||||
<text class="hint-content">免费试用请使用电脑端登录</text>
|
||||
<text class="hint-link">https://www.aimzhu.com</text>
|
||||
<view class="container-box-row" bind:tap="copyLink">
|
||||
<view class="icon-computer-ind size-64"></view>
|
||||
<view class="free-content">
|
||||
<text>免费试用请使用电脑端登录</text>
|
||||
<text class="hint-link">{{globalData.appUrl}}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<uni-popup type="message" ref="msg">
|
||||
<uni-popup-message :type="msgType" :message="msgTxt" :duration="2000"></uni-popup-message>
|
||||
@ -157,7 +147,20 @@
|
||||
|
||||
<script>
|
||||
import ProApi from '@/common/js/net/projectApi.js'
|
||||
import {
|
||||
inject
|
||||
} from 'vue'
|
||||
import {
|
||||
moneyTxt
|
||||
} from '@/common/js/conver.js'
|
||||
export default {
|
||||
setup() {
|
||||
const globalData = inject('globalData')
|
||||
console.log(globalData)
|
||||
return {
|
||||
globalData
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
msgType: 'info',
|
||||
@ -184,6 +187,7 @@
|
||||
this.doGetPrice()
|
||||
},
|
||||
methods: {
|
||||
moneyTxt,
|
||||
//是否加急
|
||||
doUrgent(e) {
|
||||
const _self = this
|
||||
@ -251,112 +255,124 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.buy-container {
|
||||
<style lang="scss" scoped>
|
||||
.container-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 30rpx;
|
||||
}
|
||||
|
||||
.buy-title {
|
||||
height: 100rpx;
|
||||
background-color: blanchedalmond;
|
||||
}
|
||||
|
||||
.buy-all-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
|
||||
.buy-all-box {
|
||||
background-color: $white-color;
|
||||
border-radius: 15rpx;
|
||||
margin-top: 20rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-radius: 20rpx;
|
||||
background-color: white;
|
||||
/* box-shadow: 0rpx 0rpx 10rpx 10rpx #e9e8e88f; */
|
||||
padding: 30rpx 30rpx;
|
||||
box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
.buy-all-title {
|
||||
.container-box-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
background-color: $white-color;
|
||||
border-radius: 15rpx;
|
||||
margin-top: 20rpx;
|
||||
padding: 30rpx 30rpx;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
.free-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 28rpx;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
|
||||
.hint-link {
|
||||
color: $text-blue-color;
|
||||
text-align: center;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.title-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.title-content {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
color: $text-brown-color;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.buy-all-txt {
|
||||
font-size: 20px;
|
||||
color: black;
|
||||
}
|
||||
|
||||
|
||||
.buy-all-txt .money {
|
||||
margin-left: 20rpx;
|
||||
font-size: 16px;
|
||||
color: #532A00;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.buy-all-btn {
|
||||
padding: 5rpx 35rpx;
|
||||
.title-txt {
|
||||
font-size: 36rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.btn {
|
||||
font-size: 28rpx;
|
||||
background-color: $primary-color;
|
||||
color: $white-color;
|
||||
text-align: center;
|
||||
line-height: 32rpx;
|
||||
height: 32rpx;
|
||||
padding: 8rpx 25rpx;
|
||||
border-radius: 10rpx;
|
||||
background-color: #FFA900;
|
||||
color: white;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.buy-all-btn:active {
|
||||
background-color: #FFA900C0;
|
||||
color: white;
|
||||
.btn:active {
|
||||
background-color: $primary-color-active;
|
||||
}
|
||||
|
||||
.buy-desc-box {
|
||||
.desc {
|
||||
margin-top: 10rpx;
|
||||
font-size: 24rpx;
|
||||
color: $text-gray-desc-color;
|
||||
}
|
||||
|
||||
.desc-title {
|
||||
font-size: 28rpx;
|
||||
margin-top: 10rpx;
|
||||
color: $text-color;
|
||||
}
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-top: 10rpx;
|
||||
color: $text-gray-desc-color;
|
||||
}
|
||||
|
||||
.item-column {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 12px;
|
||||
margin-top: 10rpx;
|
||||
color: $text-gray-desc-color;
|
||||
}
|
||||
|
||||
.buy-desc-txt {
|
||||
color: #3b3b3b;
|
||||
}
|
||||
|
||||
.buy-desc-title {
|
||||
color: #3b3b3b;
|
||||
}
|
||||
|
||||
.buy-desc-item {
|
||||
.row-item {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.buy-desc-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex: 1;
|
||||
font-size: 20rpx;
|
||||
color: $text-color;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.buy-desc-row-no-margin {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.buy-desc-column {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
.check-icon {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
}
|
||||
|
||||
.list {
|
||||
counter-reset: my-counter;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
font-size: 20rpx;
|
||||
margin-top: 10rpx;
|
||||
color: $text-gray-desc-color;
|
||||
}
|
||||
|
||||
/* 每个列表项递增计数器 */
|
||||
@ -368,78 +384,22 @@
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.list-item:nth-of-type(n+2) {
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
|
||||
/* 使用 ::before 伪元素显示计数器值并设置圆形背景 */
|
||||
.list-item::before {
|
||||
content: counter(my-counter);
|
||||
background-color: #F4CE98;
|
||||
color: black;
|
||||
background-color: $primary-color-active;
|
||||
color: var(--black-color);
|
||||
border-radius: 50%;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
line-height: 18px;
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
line-height: 28rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
|
||||
.txt {
|
||||
line-height: 14px;
|
||||
}
|
||||
|
||||
.buy-desc-row-icon {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
}
|
||||
|
||||
.box-bottom-options {
|
||||
justify-content: center;
|
||||
background-color: #FCF3E5;
|
||||
padding: 20rpx;
|
||||
border-bottom-left-radius: 10px;
|
||||
border-bottom-right-radius: 10px;
|
||||
}
|
||||
|
||||
.box-bottom-options .txt {
|
||||
color: #532A00;
|
||||
padding-left: 10rpx;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.hint-box {
|
||||
margin-top: 20rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border-radius: 20rpx;
|
||||
background-color: white;
|
||||
box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
.hint-box .icon {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.hint-box .content {
|
||||
margin-left: 10px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.hint-content {
|
||||
color: #532A00;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.hint-link {
|
||||
color: #0a86fa;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
}
|
||||
</style>
|
@ -1,56 +1,62 @@
|
||||
<template>
|
||||
<view class="create-container">
|
||||
<view class="page-container">
|
||||
<view class="container-box">
|
||||
<swiper indicator-dots style="height: 120rpx;" autoplay indicator-active-color="#fff">
|
||||
<swiper-item>
|
||||
<image src="/static/images/banner_1.png" style="width: 100vw;height: 120rpx;"></image>
|
||||
<image :src="globalData.locImg+'/banner_1.png'" style="width: 100vw;height: 120rpx;"></image>
|
||||
</swiper-item>
|
||||
<swiper-item>
|
||||
<image src="/static/images/banner_2.png" style="width: 100vw;height: 120rpx;"></image>
|
||||
<image :src="globalData.locImg+'/banner_2.png'" style="width: 100vw;height: 120rpx;"></image>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
<view class="info-box">
|
||||
<view class="info-title">项目信息</view>
|
||||
<rich-text
|
||||
nodes="<span style='font-size:16px;font-weight:bold;'>系统全称</span><span style='font-size:12px;'> (软著名称)</span>"></rich-text>
|
||||
<textarea :value="projectName" @input="inputProjectName" class="info-value"
|
||||
placeholder="请输入系统全称(注:建议以'软件''平台''系统'等字眼结尾)" placeholder-style="font-size:14px;"></textarea>
|
||||
<view class="info-btn" @click="doCommendProjectName">推荐</view>
|
||||
</view>
|
||||
<view class="content-box">
|
||||
<!-- 第一部分 -->
|
||||
<view class="section">
|
||||
<view class="item">
|
||||
<text class="label">产权联系人</text>
|
||||
<text style="box-title">基本信息</text>
|
||||
<view class="item">
|
||||
<text class="item-title star">产权联系人</text>
|
||||
<view class="item-content">
|
||||
<picker style="flex:1;" mode="selector" :range="contactList" range-key="name"
|
||||
@change="doChangeContact">
|
||||
<view style="display: flex;align-items: center;">
|
||||
<view style="font-size: 14px;text-align: center;flex:1;color: #000000;">
|
||||
{{selectContact.name}}
|
||||
<view style="display: flex;flex-direction: row;align-items: center;">
|
||||
<view class="icon-user-default-blue size-48"></view>
|
||||
<view style="display: flex;flex-direction: column;margin-left: 15rpx;flex:1;">
|
||||
<text style="font-size: 24rpx;color:$text-color;">{{selectContact.name}}</text>
|
||||
<text
|
||||
style="font-size: 22rpx;margin-top: 5rpx;">{{phoneNum(selectContact.phone,3,4,'****')}}</text>
|
||||
</view>
|
||||
<view class="icon-arrow-down-line"
|
||||
style="width: 24rpx;height: 24rpx;margin-right: 20px;"></view>
|
||||
<view class="icon-arrow-solid mr-20"></view>
|
||||
</view>
|
||||
</picker>
|
||||
<view class="link" @click="doCreateContact">新建</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="flex-1">
|
||||
<text class="label" style="flex: 1;">系统版本</text>
|
||||
<input class="value" :class="version != '' ? 'v-select':''" placeholder="v1.0"
|
||||
style="flex:1;" :value="version" @input="inputVersion" />
|
||||
</view>
|
||||
<view class="flex-1">
|
||||
<text class="label">系统语言</text>
|
||||
<view class="value selection-box ml-20">
|
||||
<view style="display: flex;align-items: center;">
|
||||
<view class="language-sel" :class="selectLang != ''? 'v-select':''"
|
||||
@click="doShowLang">{{selectLang}}</view>
|
||||
<view class="icon-arrow-down-line" style="width: 28rpx;height: 28rpx;"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="display: flex;flex-direction: row;align-items: center;" @click="doCreateContact">
|
||||
<view class="icon-add-circle-blue size-32"></view>
|
||||
<view class="link ml-10">新建</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="label">开发完成时间</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<text class="item-title star">系统版本</text>
|
||||
<input class="item-content" :class="version != '' ? 'v-select':''" placeholder="v1.0"
|
||||
style="flex:1;" :value="version" @input="inputVersion" />
|
||||
</view>
|
||||
<view class="item">
|
||||
<text class="item-title star">系统语言</text>
|
||||
<view class="item-content">
|
||||
<view class="language-sel" :class="selectLang != ''? 'v-select':''" @click="doShowLang">
|
||||
{{selectLang}}
|
||||
</view>
|
||||
<view class="icon-arrow-solid"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<text class="item-title">开发完成时间</text>
|
||||
<view class="item-content">
|
||||
<picker mode="date" style="flex:1;" :value="completeDate" start="2010-01-01" end="2050-01-01"
|
||||
@change="bindDateChange">
|
||||
<view class="select-time" :class="completeDate ==''? 'value-hint':''">
|
||||
@ -67,46 +73,50 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 第二部分 -->
|
||||
<view class="section">
|
||||
<view v-if="canSelPackage" class="item" style="justify-content: space-between;">
|
||||
<text class="label">套餐包</text>
|
||||
<text class="value" :class="!isEmpty(selectPackage) ? 'v-select':''"
|
||||
style="flex: 1;text-align: right;"
|
||||
</view>
|
||||
<view class="content-box">
|
||||
<text class="box-title">套餐与优惠</text>
|
||||
<view class="item" v-if="canSelPackage">
|
||||
<text class="item-title">套餐包</text>
|
||||
<view class="item-content">
|
||||
<text :class="!isEmpty(selectPackage) ? 'v-select':'v-normal'" style="flex: 1;"
|
||||
@click="doShowPackage">{{selectPackage.packageName?selectPackage.packageName:'请选择套餐包'}}</text>
|
||||
<view class="icon-arrow-solid mr-20"></view>
|
||||
<text v-if="!isEmpty(selectPackage)" class="link" @click="clearSelectPackageOrCoupons">取消</text>
|
||||
</view>
|
||||
<view v-if="canSelCoupons" class="item">
|
||||
<text class="label">优惠券</text>
|
||||
<text @click="doShowCoupons" class="value"
|
||||
:class="!isEmpty(selectCoupons)? 'v-select':''">{{selectCoupons.couponId? selectCoupons.coupon.title : '请选择优惠券'}}</text>
|
||||
</view>
|
||||
<view class="item" v-if="canSelCoupons">
|
||||
<text class="item-title">优惠券</text>
|
||||
<view class="item-content">
|
||||
<text @click="doShowCoupons" style="flex: 1;"
|
||||
:class="!isEmpty(selectCoupons)? 'v-select':'v-normal'">{{selectCoupons.couponId? selectCoupons.coupon.title : '请选择优惠券'}}</text>
|
||||
<view class="icon-arrow-solid mr-20"></view>
|
||||
<text class="link" v-if="!isEmpty(selectCoupons)" @click="clearSelectPackageOrCoupons">取消</text>
|
||||
<text class="link" @click="doShowCoupons" v-if="isEmpty(selectCoupons)">选择</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-box">
|
||||
<view class="bottom-fixed-footer">
|
||||
<view class="money">
|
||||
<view>金额:<text class="price">{{price/100}}元</text></view>
|
||||
<checkbox-group @change="doUrgent" v-if="isShowUrgent">
|
||||
<checkbox :checked="isUrgent" color="#FFA900"
|
||||
<checkbox :checked="isUrgent" color="#FFA900" class="round yellow"
|
||||
style="transform: scale(0.7);transform-origin: left center;margin-left: 8rpx;"
|
||||
:disabled="isUrgentDisable">
|
||||
<text style="color: #532A00;padding-left: 8rpx;font-weight: 400;">加急办理{{urgent/100}}元</text>
|
||||
<text
|
||||
style="color: $text-brown-color;padding-left: 8rpx;font-size:30rpx;">加急办理{{urgent/100}}元</text>
|
||||
</checkbox>
|
||||
</checkbox-group>
|
||||
</view>
|
||||
<view class="btn" @click="doCreateProject">保存并付款</view>
|
||||
<view class="bottom-btn-green" @click="doCreateProject">保存并付款</view>
|
||||
</view>
|
||||
<view>
|
||||
<!-- 推荐项目名称 -->
|
||||
<uni-popup ref="commendDialog" type="bottom" background-color="#fff" border-radius="15rpx 15rpx 0rpx 0rpx">
|
||||
<view class="bottom-dialog-box">
|
||||
<view class="bottom-title-box">
|
||||
<view class="icon-close close-icon" @click="closeCommendDialog"></view>
|
||||
<view class="bottom-title-txt">项目名称</view>
|
||||
<view class="bottom-dialog-container">
|
||||
<view class="dialog-title-box">
|
||||
<view class="icon-close size-48" @click="closeCommendDialog"></view>
|
||||
<view class="dialog-title-txt has-icon">项目名称</view>
|
||||
</view>
|
||||
<textarea @input="inputProjectName" placeholder="请简单介绍您想创建的系统,我们会根据您的描述为您推荐系统全称"
|
||||
class="commend-text-area"></textarea>
|
||||
@ -118,138 +128,146 @@
|
||||
</block>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<view class="confirm-btn" @click="doCreateFullName">生成</view>
|
||||
<view class="bottom-btn-green" @click="doCreateFullName">生成</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
<!-- 新建联系人 -->
|
||||
<uni-popup ref="createContactDialog" type="bottom" background-color="#fff"
|
||||
border-radius="15rpx 15rpx 0rpx 0rpx">
|
||||
<view class="bottom-dialog-box">
|
||||
<view class="bottom-title-box">
|
||||
<view class="icon-close close-icon" @click="closeCreateContact"></view>
|
||||
<view class="bottom-title-txt">新建联系人</view>
|
||||
<view class="bottom-dialog-container">
|
||||
<view class="dialog-title-box">
|
||||
<view class="icon-close size-48" @click="closeCreateContact"></view>
|
||||
<view class="dialog-title-txt has-icon">新建联系人</view>
|
||||
</view>
|
||||
<view class="form-box">
|
||||
<view class="form-item">
|
||||
<view class="form-item-title">姓名</view>
|
||||
<view class="form-item-title star">姓  名</view>
|
||||
<input :adjust-position="true" :cursor-spacing="50" :value="contactName" placeholder="请输入姓名"
|
||||
class="form-item-content" @input="inputContactName" />
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<view class="form-item-title">联系电话</view>
|
||||
<view class="form-item-title star">联系电话</view>
|
||||
<input :adjust-position="true" :cursor-spacing="50" :value="contactPhone"
|
||||
placeholder="请输入联系电话" class="form-item-content" @input="inputContactPhone" />
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<view class="form-item-title no-after" style="padding-left: 16rpx;">联系邮箱</view>
|
||||
<view class="form-item-title">联系邮箱</view>
|
||||
<input :adjust-position="true" :cursor-spacing="50" :value="contactEmail"
|
||||
placeholder="请输入联系邮箱" class="form-item-content" @input="inputContactEmail" />
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<view class="form-item-title no-after" style="padding-left: 16rpx;">公司</view>
|
||||
<view class="form-item-title">公  司</view>
|
||||
<input :adjust-position="true" :cursor-spacing="50" :value="contactCompany"
|
||||
placeholder="请输入公司名称" class="form-item-content" @input="inputContactCompany" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="confirm-btn" @click="doCreateFullName">生成</view>
|
||||
<view class="bottom-btn-green" @click="doSaveContact">保存</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
<!-- 语言选择 -->
|
||||
<uni-popup ref="selectLangDialog" type="bottom" background-color="#fff"
|
||||
border-radius="15rpx 15rpx 0rpx 0rpx">
|
||||
<view class="bottom-dialog-box">
|
||||
<view class="bottom-title-box">
|
||||
<view class="icon-close close-icon" @click="closeLangDialog"></view>
|
||||
<view class="bottom-title-txt">系统语言</view>
|
||||
<view class="bottom-dialog-container">
|
||||
<view class="dialog-title-box">
|
||||
<view class="icon-close size-48" @click="closeLangDialog"></view>
|
||||
<view class="dialog-title-txt has-icon">系统语言</view>
|
||||
</view>
|
||||
<view class="coupons-list-box">
|
||||
<radio-group style="display: flex;flex-direction: column;width: 100vw;" @change="changeLang">
|
||||
<block v-for="(item,index) in langList" :key="index">
|
||||
<radio color="#FFA900" style="transform:scale(0.9);" :checked="selectLang==item"
|
||||
:value="item">
|
||||
<view style="margin-left: 20rpx;text-align: center;">{{item}}</view>
|
||||
</radio>
|
||||
</block>
|
||||
</radio-group>
|
||||
<scroll-view scroll-y style="height: 400rpx;">
|
||||
<radio-group style="display: flex;flex-direction: column;width: 100vw;"
|
||||
@change="changeLang">
|
||||
<block v-for="(item,index) in langList" :key="index">
|
||||
<radio color="#FFA900" style="transform:scale(0.9);margin-top: 10rpx;"
|
||||
:checked="selectLang==item" :value="item">
|
||||
<view style="margin-left: 20rpx;text-align: center;">{{item}}</view>
|
||||
</radio>
|
||||
</block>
|
||||
</radio-group>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="confirm-btn" @click="doConfirmLang">确定</view>
|
||||
<view class="bottom-btn-green" @click="doConfirmLang">确定</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
<!-- 套餐包弹窗 -->
|
||||
<uni-popup ref="selPackageDialog" type="bottom" background-color="#fff"
|
||||
border-radius="15rpx 15rpx 0rpx 0rpx">
|
||||
<view class="bottom-dialog-box">
|
||||
<view class="bottom-title-box">
|
||||
<view class="icon-close close-icon" @click="closePackage"></view>
|
||||
<view class="bottom-title-txt">套餐包</view>
|
||||
<view class="bottom-dialog-container">
|
||||
<view class="dialog-title-box">
|
||||
<view class="icon-close size-48" @click="closePackage"></view>
|
||||
<view class="dialog-title-txt has-icon">套餐包</view>
|
||||
</view>
|
||||
<scroll-view scroll-y style="height: 500rpx;">
|
||||
<view class="coupons-list-box">
|
||||
<radio-group @change="radioSelPackage">
|
||||
<block v-for="(item,index) in packageList" :key="index">
|
||||
<view class="tickets" @click="choosePackage" :data-value="item">
|
||||
<view class="l-tickets">
|
||||
<view class="ticket-title">
|
||||
<view>套餐包</view>
|
||||
<view>剩余{{item.packageTotalSurplusCount}}件</view>
|
||||
<view style="display: flex;flex-direction: column;padding: 20rpx;">
|
||||
<scroll-view scroll-y style="height: 500rpx;">
|
||||
<view class="coupons-list-box">
|
||||
<radio-group @change="radioSelPackage">
|
||||
<block v-for="(item,index) in packageList" :key="index">
|
||||
<view class="tickets" @click="choosePackage" :data-value="item">
|
||||
<view class="l-tickets">
|
||||
<view class="ticket-title">
|
||||
<view>套餐包</view>
|
||||
<view>剩余{{item.packageTotalSurplusCount}}件</view>
|
||||
</view>
|
||||
<view class="ticket-content">{{item.packageInfoAppDTO.packageName}}
|
||||
</view>
|
||||
<view class="ticket-desc">{{item.packageInfoAppDTO.packageDescription}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="ticket-content">{{item.packageInfoAppDTO.packageName}}</view>
|
||||
<view class="ticket-desc">{{item.packageInfoAppDTO.packageDescription}}
|
||||
<view class="r-tickets">
|
||||
<radio color="#FFA900" style="margin-left: 5px;transform:scale(0.8)"
|
||||
:value="index+''"
|
||||
:checked="tempPackage.packageInfoId==item.packageInfoId">
|
||||
</radio>
|
||||
</view>
|
||||
</view>
|
||||
<view class="r-tickets">
|
||||
<radio color="#FFA900" style="margin-left: 5px;transform:scale(0.8)"
|
||||
:value="index+''"
|
||||
:checked="tempPackage.packageInfoId==item.packageInfoId">
|
||||
</radio>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</radio-group>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<view class="confirm-btn" @click="doConfirmPackage">确定</view>
|
||||
</block>
|
||||
</radio-group>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="bottom-btn-green" @click="doConfirmPackage">确定</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
|
||||
<!-- 优惠卷弹窗 -->
|
||||
<uni-popup ref="selCouponsDialog" type="bottom" background-color="#fff"
|
||||
border-radius="15rpx 15rpx 0rpx 0rpx">
|
||||
<view class="bottom-dialog-box">
|
||||
<view class="bottom-title-box">
|
||||
<view class="icon-close close-icon" @click="closeCoupons"></view>
|
||||
<view class="bottom-title-txt">优惠卷</view>
|
||||
<view class="bottom-dialog-container">
|
||||
<view class="dialog-title-box">
|
||||
<view class="icon-close size-48" @click="closeCoupons"></view>
|
||||
<view class="dialog-title-txt has-icon">优惠卷</view>
|
||||
</view>
|
||||
<scroll-view scroll-y style="height: 500rpx;">
|
||||
<view class="coupons-list-box">
|
||||
<radio-group @change="radioSelCoupons">
|
||||
<block v-for="(item,index) in couponsList" :key="index">
|
||||
<view class="tickets" @click="chooseCoupons" :data-value="item">
|
||||
<view class="l-tickets">
|
||||
<view class="ticket-title">
|
||||
<view
|
||||
style="display: flex;flex-direction: row;justify-content: center;align-items: center;">
|
||||
<view class="coupons-icon" style="width: 24px;height: 24px;">
|
||||
<view style="display: flex;flex-direction: column;padding: 20rpx;">
|
||||
<scroll-view scroll-y style="height: 500rpx;">
|
||||
<view class="coupons-list-box">
|
||||
<radio-group @change="radioSelCoupons">
|
||||
<block v-for="(item,index) in couponsList" :key="index">
|
||||
<view class="tickets" @click="chooseCoupons" :data-value="item">
|
||||
<view class="l-tickets">
|
||||
<view class="ticket-title">
|
||||
<view
|
||||
style="display: flex;flex-direction: row;justify-content: center;align-items: center;">
|
||||
<view class="coupons-icon" style="width: 24px;height: 24px;">
|
||||
</view>
|
||||
<text>优惠卷</text>
|
||||
</view>
|
||||
<text>优惠卷</text>
|
||||
<view>减{{item.coupon.amount/100}}元</view>
|
||||
</view>
|
||||
<view>减{{item.coupon.amount/100}}元</view>
|
||||
<view class="ticket-content">{{item.coupon.title}}</view>
|
||||
<view class="ticket-desc">
|
||||
有效期:{{item.coupon.useGmtStart}}至{{item.coupon.useGmtEnd}}</view>
|
||||
</view>
|
||||
<view class="r-tickets">
|
||||
<radio color="#FFA900" style="margin-left: 5px;transform: scale(0.8);"
|
||||
:value="index+''" :checked="tempCoupons.couponId==item.couponId">
|
||||
</radio>
|
||||
</view>
|
||||
<view class="ticket-content">{{item.coupon.title}}</view>
|
||||
<view class="ticket-desc">
|
||||
有效期:{{item.coupon.useGmtStart}}至{{item.coupon.useGmtEnd}}</view>
|
||||
</view>
|
||||
<view class="r-tickets">
|
||||
<radio color="#FFA900" style="margin-left: 5px;transform: scale(0.8);"
|
||||
:value="index+''" :checked="tempCoupons.couponId==item.couponId">
|
||||
</radio>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</radio-group>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<view class="confirm-btn" @click="doConfirmCoupons">确定</view>
|
||||
</block>
|
||||
</radio-group>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="bottom-btn-green" @click="doConfirmCoupons">确定</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
<uni-popup type="message" ref="msg">
|
||||
@ -267,10 +285,23 @@
|
||||
} from '@/common/js/util.js'
|
||||
import {
|
||||
isEmpty,
|
||||
objIsEmpty
|
||||
objIsEmpty,
|
||||
phoneNum
|
||||
} from '@/common/js/conver.js'
|
||||
|
||||
import {
|
||||
isValidPhone,
|
||||
isValidEmail
|
||||
} from '@/common/js/validator.js'
|
||||
import {
|
||||
inject
|
||||
} from 'vue'
|
||||
export default {
|
||||
setup() {
|
||||
const globalData = inject('globalData')
|
||||
return {
|
||||
globalData
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
msgType: 'info',
|
||||
@ -292,6 +323,7 @@
|
||||
contactPhone: '', //联系人电话
|
||||
contactName: '', //联系人姓名
|
||||
contactEmail: '', //联系人邮箱
|
||||
contactCompany: '', //联系人公司
|
||||
csaNo: '', //客服NO
|
||||
projectName: '',
|
||||
projectNameList: [],
|
||||
@ -302,7 +334,6 @@
|
||||
showLang: false, //显示选择语言
|
||||
tempLang: '', //临时选中的语言
|
||||
selectLang: '',
|
||||
contactCompany: '', //联系人公司
|
||||
isShowUrgent: true, //是否加急
|
||||
urgent: 0, //加急费用
|
||||
isUrgentDisable: false, //是否禁用加急
|
||||
@ -364,6 +395,9 @@
|
||||
methods: {
|
||||
// 导入的方法
|
||||
isEmpty,
|
||||
phoneNum,
|
||||
isValidPhone,
|
||||
isValidEmail,
|
||||
// 关闭dialog
|
||||
closeCommendDialog() {
|
||||
this.$refs.commendDialog.close()
|
||||
@ -617,7 +651,13 @@
|
||||
},
|
||||
//显示优惠卷弹窗
|
||||
doShowCoupons() {
|
||||
this.$refs.selCouponsDialog.open()
|
||||
if (this.couponsList.length <= 0) {
|
||||
this.msgType = 'error'
|
||||
this.msgTxt = '您暂时没有可以使用的优惠卷'
|
||||
this.$refs.msg.open()
|
||||
} else {
|
||||
this.$refs.selCouponsDialog.open()
|
||||
}
|
||||
},
|
||||
//关闭优惠卷弹窗
|
||||
closeCoupons() {
|
||||
@ -648,6 +688,79 @@
|
||||
_self.isUrgent = !_self.isUrgent
|
||||
_self.countPrice()
|
||||
},
|
||||
//新建联系人姓名监听
|
||||
inputContactName(e) {
|
||||
this.contactName = e.detail.value
|
||||
},
|
||||
//新建联系人电话监听
|
||||
inputContactPhone(e) {
|
||||
console.log(e)
|
||||
this.contactPhone = e.detail.value
|
||||
},
|
||||
//新建联系人公司监听
|
||||
inputContactCompany(e) {
|
||||
this.contactCompany = e.detail.value
|
||||
},
|
||||
//新建联系人邮箱监听
|
||||
inputContactEmail(e) {
|
||||
this.contactEmail = e.detail.value
|
||||
},
|
||||
//保存新建联系人
|
||||
doSaveContact() {
|
||||
const _self = this
|
||||
if (_self.contactName == '') {
|
||||
_self.msgTxt = '请输入联系人姓名'
|
||||
_self.msgType = 'error'
|
||||
_self.$refs.msg.open()
|
||||
return
|
||||
}
|
||||
if (_self.contactPhone == '' || !isValidPhone(_self.contactPhone)) {
|
||||
_self.msgTxt = '请输入正确的联系电话'
|
||||
_self.msgType = 'error'
|
||||
_self.$refs.msg.open()
|
||||
return
|
||||
}
|
||||
if (_self.contactEmail != '') {
|
||||
if (!isValidEmail(_self.contactEmail)) {
|
||||
_self.msgTxt = '请输入正确的邮箱'
|
||||
_self.msgType = 'error'
|
||||
_self.$refs.msg.open()
|
||||
return
|
||||
}
|
||||
}
|
||||
const data = {
|
||||
company: _self.contactCompany,
|
||||
csaNo: _self.csaNo,
|
||||
name: _self.contactName,
|
||||
phone: _self.contactPhone,
|
||||
email: _self.contactEmail
|
||||
}
|
||||
uni.showLoading({
|
||||
title: '创建中...'
|
||||
})
|
||||
UserApi.doCreateContact(data)
|
||||
.then(res => {
|
||||
uni.hideLoading()
|
||||
_self.msgTxt = '新建成功'
|
||||
_self.msgType = 'success'
|
||||
_self.$refs.msg.open()
|
||||
_self.$refs.createContactDialog.close()
|
||||
_self.contactEmail = ''
|
||||
_self.contactPhone = ''
|
||||
_self.contactName = ''
|
||||
_self.contactCompany = ''
|
||||
//获取一遍联系人
|
||||
_self.doGetContactList()
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
uni.hideLoading()
|
||||
_self.msgTxt = err.msg ? err.msg : '新建失败,请稍后重试'
|
||||
_self.msgType = 'error'
|
||||
_self.$refs.msg.open()
|
||||
// _self.$refs.crateContactDialog.close()
|
||||
})
|
||||
},
|
||||
//计算价格
|
||||
countPrice() {
|
||||
const _self = this;
|
||||
@ -696,8 +809,8 @@
|
||||
})
|
||||
//构建参数
|
||||
var list = []
|
||||
if (_self.isUrgent != '') {
|
||||
list = [_self.isUrgent]
|
||||
if (_self.isUrgent != '' && _self.isUrgent) {
|
||||
list = ['URGENT']
|
||||
}
|
||||
const data = {
|
||||
applyContactCsaNo: _self.selectContact.csaNo, // 联系人客服编号
|
||||
@ -739,38 +852,6 @@
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.custom-checkbox {
|
||||
font-size: 14px;
|
||||
margin-left: 14px;
|
||||
}
|
||||
|
||||
.custom-wx-checkbox .wx-checkbox-input.wx-checkbox-input-checked {
|
||||
color: #fff !important;
|
||||
background-color: #FFA900;
|
||||
border: 1px solid #FFA900;
|
||||
}
|
||||
|
||||
.custom-wx-checkbox .wx-checkbox-input {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
margin-bottom: 3px;
|
||||
outline: 0;
|
||||
text-indent: 0;
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
background-color: transparent;
|
||||
position: relative;
|
||||
border: 1rpx solid #FFA900;
|
||||
box-sizing: border-box;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/*钩大小*/
|
||||
.custom-wx-checkbox .wx-checkbox-input.wx-checkbox-input-checked:before {
|
||||
font-size: 32rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.create-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@ -781,7 +862,7 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
padding: 15px;
|
||||
padding-bottom: 200rpx;
|
||||
}
|
||||
|
||||
.create-title {
|
||||
@ -790,19 +871,23 @@
|
||||
}
|
||||
|
||||
.commend-text-area {
|
||||
border: 1px solid #f2f2f2;
|
||||
padding: 10px;
|
||||
height: 50px;
|
||||
align-self: center;
|
||||
width: 85vw;
|
||||
margin-top: 20rpx;
|
||||
font-size: 28rpx;
|
||||
background-color: $bg-gray-input-color;
|
||||
border-radius: 15rpx;
|
||||
}
|
||||
|
||||
.info-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-top: 20rpx;
|
||||
background-color: $white-color;
|
||||
border-radius: 15rpx;
|
||||
padding: 20rpx;
|
||||
}
|
||||
|
||||
.info-title {
|
||||
@ -812,13 +897,13 @@
|
||||
|
||||
.info-value {
|
||||
margin-top: 20rpx;
|
||||
border: 1rpx solid #f2f2f2;
|
||||
font-size: 14px;
|
||||
font-size: 24rpx;
|
||||
line-height: 16px;
|
||||
background-color: white;
|
||||
background-color: $bg-gray-input-color;
|
||||
height: 65rpx;
|
||||
width: auto;
|
||||
padding: 15px;
|
||||
border-radius: 15rpx;
|
||||
}
|
||||
|
||||
.info-btn {
|
||||
@ -832,23 +917,42 @@
|
||||
}
|
||||
|
||||
.content-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 20rpx;
|
||||
background-color: $white-color;
|
||||
border-radius: 15rpx;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.section {
|
||||
border: 1px solid #f4f4f4;
|
||||
border-radius: 5rpx;
|
||||
padding: 15rpx;
|
||||
margin-bottom: 15rpx;
|
||||
background-color: white;
|
||||
.box-title {
|
||||
font-size: 32rpx;
|
||||
font-weight: $black-color;
|
||||
color: $text-color;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10rpx;
|
||||
padding: 20rpx 10rpx;
|
||||
flex-direction: column;
|
||||
margin-top: 15rpx;
|
||||
margin-left: 15rpx;
|
||||
}
|
||||
|
||||
.item-title {
|
||||
font-size: 28rpx;
|
||||
color: $text-color;
|
||||
}
|
||||
|
||||
.item-content {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background-color: $bg-gray-input-color;
|
||||
margin-top: 10rpx;
|
||||
padding: 15rpx;
|
||||
border-radius: 15rpx;
|
||||
}
|
||||
|
||||
.label {
|
||||
@ -873,7 +977,6 @@
|
||||
flex: 1;
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
padding-left: 40rpx;
|
||||
}
|
||||
|
||||
.clear-icon {
|
||||
@ -889,31 +992,33 @@
|
||||
|
||||
.value {
|
||||
color: #9A9A9A;
|
||||
padding-right: 10px;
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
|
||||
.value-hint {
|
||||
color: #9A9A9A;
|
||||
color: $text-gray-hint-color;
|
||||
}
|
||||
|
||||
.v-select {
|
||||
color: #000000;
|
||||
font-size: 28rpx;
|
||||
color: $text-color;
|
||||
}
|
||||
|
||||
.v-normal {
|
||||
font-size: 28rpx;
|
||||
color: $text-gray-hint-color;
|
||||
}
|
||||
|
||||
|
||||
.language-sel {
|
||||
font-size: 14px;
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.link {
|
||||
font-size: 28rpx;
|
||||
color: #007AFF;
|
||||
}
|
||||
|
||||
@ -967,19 +1072,8 @@
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.bottom-box .btn {
|
||||
background-color: #37AD46;
|
||||
color: white;
|
||||
text-align: center;
|
||||
height: 40px;
|
||||
width: 94vw;
|
||||
line-height: 40px;
|
||||
border-radius: 20rpx;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.bottom-box .money {
|
||||
color: #532A00;
|
||||
.money {
|
||||
color: $text-brown-color;
|
||||
font-size: 20px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
@ -995,39 +1089,33 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
font-size: 14px;
|
||||
width: 100vw;
|
||||
font-size: 28rpx;
|
||||
padding: 40rpx 0rpx;
|
||||
}
|
||||
|
||||
.form-item {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
width: 80vw;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.form-item:nth-of-type(n+2) {
|
||||
margin-top: 15rpx;
|
||||
}
|
||||
|
||||
.form-item-title {
|
||||
flex: .3;
|
||||
font-size: 14px;
|
||||
color: black;
|
||||
font-weight: 500;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.form-item-title:not(.no-after)::before {
|
||||
content: "*";
|
||||
color: red;
|
||||
font-size: 14px;
|
||||
margin-left: 1px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.form-item-content {
|
||||
flex: 1;
|
||||
flex: .7;
|
||||
text-align: right;
|
||||
padding: 15rpx;
|
||||
border-radius: 15rpx;
|
||||
background-color: $bg-gray-input-color;
|
||||
}
|
||||
|
||||
.project-box {
|
||||
@ -1071,15 +1159,11 @@
|
||||
.coupons-list-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
min-height: 400rpx;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
|
||||
.tickets {
|
||||
display: flex;
|
||||
padding: 5px;
|
||||
width: 88vw;
|
||||
box-sizing: border-box;
|
||||
height: 210rpx;
|
||||
}
|
||||
|
@ -68,11 +68,10 @@
|
||||
</view>
|
||||
<!-- 列表 -->
|
||||
<view class="content-box">
|
||||
<ContainerLoading :loadingVisible="listLoading" :style="{'height':contentHeight+'px'}"
|
||||
<ContainerLoading :loadingVisible="listLoading" :style="{'height':contentHeight+'rpx'}"
|
||||
@doRefresh="doRefreshList">
|
||||
<scroll-view scroll-y="true" :style="{'height':contentHeight+'px'}" refresher-enabled="true"
|
||||
:refresher-triggered="listRefreshTrig" :refresher-threshold="100" :lower-threshold="100"
|
||||
refresher-background="#FFFFFF00" @refresherrefresh="doRefreshList" @scrolltolower="doLoadMore">
|
||||
<scroll-view scroll-y="true" :style="{'height':contentHeight+'rpx'}" :lower-threshold="100"
|
||||
refresher-background="#FFFFFF00" @scrolltolower="doLoadMore">
|
||||
<view class="list-content">
|
||||
<block v-for="(item,index) in projectList" :key="index">
|
||||
<view class="list-item">
|
||||
@ -86,38 +85,49 @@
|
||||
</block>
|
||||
</swiper>
|
||||
<view class="item-img-status">
|
||||
<text>{{status(item.generate.generateStatus)}}</text>
|
||||
<text>{{status(item.generate.generateStatus,item.aiSetting.settingStatus)}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="item-content">
|
||||
<view class="item-content-title">
|
||||
<view class="project-name single-line">{{item.projName}}</view>
|
||||
<view class="project-status">
|
||||
{{item.pay.servicePackageId != '' ? '套餐包':item.pay.charge}}
|
||||
<view class="list-item-content">
|
||||
<view class="project-name">{{item.projName}}</view>
|
||||
<view class="project-aff">
|
||||
<view class="icon icon-user-ind"></view>
|
||||
<text class="txt">{{item.apply.applyContactName}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="project-aff">
|
||||
<view class="icon icon-user-ind"></view>
|
||||
<text class="txt">{{item.apply.applyContactName}}</text>
|
||||
</view>
|
||||
<view class="project-btns">
|
||||
<view class="project-create-time">{{item.gmtCreate}}</view>
|
||||
<view v-if="item.generate.generateStatus=='SUCCESS'" class="project-btn"
|
||||
@click="doShowDownload(item)">下载</view>
|
||||
<view v-if="item.generate.generateStatus=='FAILED'" class="project-re-btn"
|
||||
@click="doReCreate(item)">重新生成</view>
|
||||
</view>
|
||||
<view class="list-item-btns">
|
||||
<view v-if="item.pay.servicePackageId != ''" class="project-status">套餐包
|
||||
</view>
|
||||
<rich-text wx:else class="project-status single-line"
|
||||
:nodes="moneyTxt(8,12,(item.pay.payment/100))"></rich-text>
|
||||
|
||||
<view v-if="item.isShowCreate" class="project-btn"
|
||||
@click="doCreatePro(item)">生成</view>
|
||||
<block v-else>
|
||||
<view v-if="item.generate.generateStatus=='SUCCESS'" class="project-btn"
|
||||
@click="doShowDownload(item)">下载
|
||||
</view>
|
||||
<view v-else-if="item.generate.generateStatus=='FAILED'"
|
||||
class="project-re-btn" @click="doReCreate(item)">重新生成
|
||||
</view>
|
||||
<view v-else-if="item.generate.generateStatus=='NONE'"
|
||||
class="project-btn" @click="doCreatePro(item)">生成</view>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
<uni-load-more :status="loadMore"></uni-load-more>
|
||||
<uni-load-more :status="loadMore" color="var(--divider-color)"></uni-load-more>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</ContainerLoading>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 下载弹窗 -->
|
||||
<uni-popup ref="downloadPopup" type="bottom" background-color="#fff" border-radius="15rpx 15rpx 0rpx 0rpx">
|
||||
<view class="bottom-dialog-box">
|
||||
<view class="bottom-dialog-container">
|
||||
<view style="font-size: 16px;font-weight: bold;align-self: center;">资料下载</view>
|
||||
<view style="margin-top: 10px;padding-bottom: 80rpx;">
|
||||
<view class="download-desc">
|
||||
@ -198,12 +208,20 @@
|
||||
} from '@/common/js/net/http.js'
|
||||
|
||||
import {
|
||||
status
|
||||
status,
|
||||
moneyTxt
|
||||
} from '@/common/js/conver.js'
|
||||
import {
|
||||
get,
|
||||
set
|
||||
} from '@/common/js/cache/storage.js';
|
||||
import {
|
||||
pxToRpx
|
||||
} from '@/common/js/util.js'
|
||||
import {
|
||||
homeTypeList,
|
||||
expandList
|
||||
} from '@/common/js/data.js'
|
||||
export default {
|
||||
components: {
|
||||
ContainerLoading,
|
||||
@ -227,33 +245,9 @@
|
||||
page: 1,
|
||||
rows: 10
|
||||
},
|
||||
typeList: [{
|
||||
value: 'FREE',
|
||||
label: '免费试用'
|
||||
},
|
||||
{
|
||||
value: 'MATERIAL',
|
||||
label: '写材料'
|
||||
},
|
||||
{
|
||||
value: 'ALL',
|
||||
label: '全托管'
|
||||
},
|
||||
],
|
||||
typeList: homeTypeList,
|
||||
currentType: '',
|
||||
expandList: [{
|
||||
value: 'PKG',
|
||||
label: '安装包'
|
||||
},
|
||||
{
|
||||
value: 'VIDEO_DEMO',
|
||||
label: '演示视频'
|
||||
},
|
||||
{
|
||||
value: 'URGENT',
|
||||
label: '加急'
|
||||
},
|
||||
],
|
||||
expandList: expandList,
|
||||
currentExpand: '',
|
||||
tagList: [],
|
||||
currentTag: '',
|
||||
@ -290,8 +284,13 @@
|
||||
onReady() {
|
||||
this.calculateRemainingHeight()
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.doRefreshList()
|
||||
uni.stopPullDownRefresh()
|
||||
},
|
||||
methods: {
|
||||
status,
|
||||
moneyTxt,
|
||||
//计算状态栏等高度
|
||||
countBarHeight() {
|
||||
//#ifdef MP-WEIXIN || H5
|
||||
@ -433,7 +432,7 @@
|
||||
},
|
||||
//刷新列表
|
||||
doRefreshList() {
|
||||
console.log('正在刷新...')
|
||||
console.log('页面刷新...')
|
||||
const _self = this
|
||||
_self.listRefreshTrig = true
|
||||
_self.listLoading = 'loading'
|
||||
@ -460,6 +459,8 @@
|
||||
// 获取窗口高度
|
||||
const systemInfo = uni.getSystemInfoSync();
|
||||
const windowHeight = systemInfo.windowHeight;
|
||||
const screenHeight = systemInfo.screenHeight;
|
||||
const screenWidth = systemInfo.screenWidth
|
||||
// bg-title container-title
|
||||
// 获取已占用元素的高度
|
||||
const query = uni.createSelectorQuery().in(this);
|
||||
@ -467,11 +468,14 @@
|
||||
if (data) {
|
||||
const occupiedHeight = data.height;
|
||||
// 计算剩余高度
|
||||
this.contentHeight = windowHeight - occupiedHeight - this.totalHeight - this
|
||||
.statusBarHeight;
|
||||
console.log('窗口高度', windowHeight);
|
||||
console.log('内容高度', this.contentHeight)
|
||||
console.log('头布局高度', occupiedHeight);
|
||||
let tabbarHeight = screenHeight - windowHeight
|
||||
this.contentHeight = windowHeight - occupiedHeight - tabbarHeight - 20;
|
||||
let coverHeight = pxToRpx(this.contentHeight, screenWidth)
|
||||
this.contentHeight = coverHeight
|
||||
console.log('头布局高度', occupiedHeight)
|
||||
console.log('屏幕高度', screenHeight)
|
||||
console.log('窗口高度', windowHeight)
|
||||
console.log('计算内容高度', this.contentHeight)
|
||||
} else {
|
||||
console.log('未获取到高度');
|
||||
}
|
||||
@ -481,6 +485,12 @@
|
||||
addPrefixToPreviewImgs(data) {
|
||||
const prefix = this.imgUrl;
|
||||
return data.map(item => {
|
||||
const values = Object.values(item.aiSetting);
|
||||
const isSuccess = values.every(value => value === "SUCCESS");
|
||||
const isCreate = values.every(value => value === "NONE");
|
||||
const isFailed = values.some(value => value === "FAILED");
|
||||
const isShow = !isSuccess && (isCreate || isFailed);
|
||||
item.isShowCreate = isShow
|
||||
if (item.codeTypePage && item.codeTypePage.previewImgs) {
|
||||
const imgIds = item.codeTypePage.previewImgs.split(',');
|
||||
item.codeTypePage.previewImgs = imgIds.map(id => prefix + id);
|
||||
@ -649,6 +659,54 @@
|
||||
_self.$refs.msg.open()
|
||||
})
|
||||
},
|
||||
//去生成项目
|
||||
doCreatePro(e) {
|
||||
uni.showLoading({
|
||||
title: '生成中...',
|
||||
})
|
||||
const _self = this
|
||||
const item = e.currentTarget.dataset.value
|
||||
ProApi.doBuildProject(item.projId)
|
||||
.then(res => {
|
||||
// 刷新列表
|
||||
uni.hideLoading()
|
||||
console.log(res)
|
||||
_self.msgTxt = '正在生成中,请耐心等待'
|
||||
_self.msgType = 'success'
|
||||
_self.$refs.msg.open()
|
||||
_self.doRefreshList()
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
uni.hideLoading()
|
||||
_self.msgType = 'error'
|
||||
_self.msgTxt = err.msg ? err.msg : '生成失败,请稍后重试'
|
||||
_self.$refs.msg.open()
|
||||
})
|
||||
},
|
||||
//重新生成
|
||||
doReCreate(e) {
|
||||
console.log(e)
|
||||
const item = e.currentTarget.dataset.value
|
||||
const _self = this
|
||||
uni.showLoading({
|
||||
title: '提交中...',
|
||||
})
|
||||
ProApi.doReCreate(item.projId)
|
||||
.then(res => {
|
||||
uni.hideLoading()
|
||||
_self.msgType = 'success'
|
||||
_self.msgTxt = '提交成功,正在生成中,请耐心等待'
|
||||
_self.$refs.msg.open()
|
||||
_self.doRefreshList()
|
||||
})
|
||||
.catch(err => {
|
||||
uni.hideLoading()
|
||||
_self.msgTxt = err.msg ? err.msg : '提交失败,请稍后重试'
|
||||
_self.msgType = 'error'
|
||||
_self.$refs.msg.open()
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@ -688,7 +746,7 @@
|
||||
position: absolute;
|
||||
top: 0rpx;
|
||||
left: 0rpx;
|
||||
padding: 30rpx;
|
||||
padding: 0rpx 30rpx 30rpx 30rpx;
|
||||
width: 100vw;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
@ -699,7 +757,7 @@
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
width: 100vw;
|
||||
height: 480rpx;
|
||||
height: 520rpx;
|
||||
}
|
||||
|
||||
.content-up {
|
||||
@ -740,14 +798,14 @@
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex: 2.5;
|
||||
background-color: #FFE5BC;
|
||||
background-color: $btn-primary-color;
|
||||
color: #550101;
|
||||
border-radius: 10rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.create-btn:active {
|
||||
background-color: #ffe5bc79;
|
||||
background-color: $btn-primary-color-active;
|
||||
}
|
||||
|
||||
.buy-btn {
|
||||
@ -756,19 +814,19 @@
|
||||
width: 80px;
|
||||
height: 78px;
|
||||
border-radius: 4px;
|
||||
background-color: rgba(78, 175, 121, 1);
|
||||
color: rgba(255, 255, 255, 1);
|
||||
background-color: $btn-green-color;
|
||||
color: $white-color;
|
||||
font-size: 18px;
|
||||
text-align: center;
|
||||
font-family: PingFangSC-regular;
|
||||
}
|
||||
|
||||
.buy-btn:active {
|
||||
background-color: rgba(78, 175, 121, .3);
|
||||
background-color: $btn-green-color-active;
|
||||
}
|
||||
|
||||
.notice-box {
|
||||
background-color: #FFE5BC;
|
||||
background-color: $btn-primary-color;
|
||||
margin-top: 20rpx;
|
||||
border-radius: 3px;
|
||||
display: flex;
|
||||
@ -786,7 +844,7 @@
|
||||
.notice-box .txt {
|
||||
height: 20px;
|
||||
line-height: 17px;
|
||||
color: rgba(85, 0, 0, 1);
|
||||
color: $text-brown-color;
|
||||
font-size: 12px;
|
||||
text-align: left;
|
||||
line-height: 20px;
|
||||
@ -809,7 +867,7 @@
|
||||
|
||||
.list-title-txt {
|
||||
line-height: 23px;
|
||||
color: rgba(16, 16, 16, 1);
|
||||
color: $text-color;
|
||||
font-size: 16px;
|
||||
font-family: TaipeiHei-bold;
|
||||
font-weight: bold;
|
||||
@ -825,7 +883,7 @@
|
||||
|
||||
.list-title-line {
|
||||
width: 10rpx;
|
||||
background-color: #FE9944;
|
||||
background-color: $primary-color;
|
||||
border-radius: 5rpx;
|
||||
height: 30rpx;
|
||||
}
|
||||
@ -841,21 +899,21 @@
|
||||
|
||||
.btn-select {
|
||||
line-height: 20px;
|
||||
background-color: rgba(244, 206, 152, 0.18);
|
||||
color: rgba(233, 157, 66, 1);
|
||||
background-color: $bg-primary-shallow-color;
|
||||
color: $primary-color;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
border: 1px solid rgba(244, 206, 152, 0.18);
|
||||
border: 1px solid $bg-primary-shallow-color;
|
||||
}
|
||||
|
||||
.btn-normal {
|
||||
line-height: 20px;
|
||||
background-color: rgba(255, 255, 255, 1);
|
||||
color: rgba(16, 16, 16, 1);
|
||||
background-color: $white-color;
|
||||
color: $text-color;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
border: 1px solid rgba(248, 248, 248, 1);
|
||||
border: 1px solid $divider-color;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
@ -870,8 +928,8 @@
|
||||
white-space: nowrap;
|
||||
line-height: 17px;
|
||||
border-radius: 2px;
|
||||
background-color: rgba(255, 226, 168, 0.57);
|
||||
color: rgba(93, 57, 0, 1);
|
||||
background-color: $primary-color-active;
|
||||
color: $text-brown-color;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
flex-wrap: nowrap;
|
||||
@ -881,8 +939,8 @@
|
||||
.tab-normal {
|
||||
line-height: 17px;
|
||||
border-radius: 2px;
|
||||
background-color: rgba(248, 248, 248, 1);
|
||||
color: rgba(154, 154, 154, 1);
|
||||
background-color: $bg-gray-color;
|
||||
color: $text-gray-hint-color;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
flex-wrap: nowrap;
|
||||
@ -912,10 +970,11 @@
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background-color: #F7F7F7;
|
||||
background-color: $gray-bg-color;
|
||||
border-radius: 2px;
|
||||
padding: 5px;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.list-item:nth-of-type(n+2) {
|
||||
@ -927,6 +986,8 @@
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
width: 200rpx;
|
||||
height: 132rpx;
|
||||
}
|
||||
|
||||
.item-img .cover {
|
||||
@ -936,7 +997,7 @@
|
||||
}
|
||||
|
||||
.item-img-status {
|
||||
background-color: #AFE5C7;
|
||||
background-color: $bg-green-status-light-color;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
@ -949,11 +1010,30 @@
|
||||
|
||||
.item-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
box-sizing: border-box;
|
||||
flex: 1;
|
||||
height: 72px;
|
||||
padding-left: 16px;
|
||||
width: 69%;
|
||||
max-width: 69%;
|
||||
padding-left: 15rpx;
|
||||
padding-right: 15rpx;
|
||||
}
|
||||
|
||||
.list-item-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.list-item-btns {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
width: 20%;
|
||||
max-width: 20%;
|
||||
}
|
||||
|
||||
.item-content-title {
|
||||
@ -965,31 +1045,29 @@
|
||||
|
||||
|
||||
.project-name {
|
||||
color: rgba(16, 16, 16, 1);
|
||||
font-size: 14px;
|
||||
color: $text-color;
|
||||
font-size: 28rpx;
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
flex: 1;
|
||||
display: block;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.project-status {
|
||||
font-size: 12px;
|
||||
color: rgba(16, 16, 16, 1);
|
||||
font-weight: 400;
|
||||
flex: .3;
|
||||
text-align: right;
|
||||
font-size: 24rpx;
|
||||
line-height: 40rpx;
|
||||
color: $text-color;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.item-content-title {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.project-aff {
|
||||
color: #4f4f4f;
|
||||
margin-top: 2px;
|
||||
font-size: 13px;
|
||||
color: $text-gray-desc-color;
|
||||
font-size: 24rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
@ -1014,20 +1092,21 @@
|
||||
}
|
||||
|
||||
.project-create-time {
|
||||
font-size: 26rpx;
|
||||
color: #4f4f4f;
|
||||
font-size: 24rpx;
|
||||
color: $text-gray-desc-color;
|
||||
}
|
||||
|
||||
.project-btn {
|
||||
font-size: 20rpx;
|
||||
background-color: #FE9944;
|
||||
color: white;
|
||||
padding: 2rpx 15rpx;
|
||||
border-radius: 3rpx;
|
||||
background-color: $primary-color;
|
||||
color: $white-color;
|
||||
padding: 5rpx 15rpx;
|
||||
border-radius: 5rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.project-btn:active {
|
||||
background-color: #fe9844d5;
|
||||
background-color: $primary-color-active;
|
||||
}
|
||||
|
||||
.project-re-btn {
|
||||
@ -1059,21 +1138,19 @@
|
||||
|
||||
.marquee-text {
|
||||
display: inline-block;
|
||||
color: rgba(85, 0, 0, 1);
|
||||
font-size: 14px;
|
||||
animation: marquee 25s linear infinite;
|
||||
color: $text-brown-color;
|
||||
font-size: 24rpx;
|
||||
margin-left: 15px;
|
||||
white-space: nowrap;
|
||||
transform: translateX(100%);
|
||||
animation: marquee 10s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes marquee {
|
||||
0% {
|
||||
transform: translateX(100%);
|
||||
transform: translateX(0%);
|
||||
}
|
||||
|
||||
100% {
|
||||
/* 滚动到容器左侧外部 */
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
}
|
||||
@ -1181,14 +1258,14 @@
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100vw;
|
||||
background-color: #fe9844c9;
|
||||
background-color: $primary-color;
|
||||
color: white;
|
||||
padding: 5px 0px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.download-all:active {
|
||||
background-color: #fe9844;
|
||||
background-color: $primary-color;
|
||||
}
|
||||
|
||||
|
||||
|
@ -45,8 +45,9 @@
|
||||
// #endif
|
||||
// #ifdef H5 || MP-BAIDU
|
||||
set('token',
|
||||
'NjBIOFRORDcraDc4U1RsUTI4a3B5em50VVVzclp2QjdFWDV2dVJJc0VLL3Fhazd0bjZPaU9Tc3E1cHc2cmYyZTc0Y2FITTdRR0pMTk1xaVRHM0I1d0NiTnJ4b1BVSVNtUFl4SlFtR1g2M0tCQTc2TXM4L3d4ZVhwM09VREN0bDMrTXNoa0trWDR1eG5PdG84OXZ4UVE0dDhRUDdQRk1Qd2N0ZWVLSzJaZzBjcC82NXdueGQvUkZNSm1vZ2doQmFncnRQN0pFQ240enZHaEdFcGpVTDZqY3VpdHRUZERUS2Y5RG5BdXZmeE1kNVVyM29icTZTV054RzNYdURDa2lvR3dIbi9nNmJLOHduNUl4Snp3Qm1qTDRkYXFXZ2plaGNQRmw3ZXBZTlgxV3cwZkVuaGxHZlhRb0ZZMlEveEJhQS9zeWE5NnpxRlUxTmJWYkRmMitvMTZXRnExVytHNEhEb1JPZkE4TG5UVzc0PQ=='
|
||||
'WWZRMmsySWJib2hKQUZVVzdYdjFBS3RGRko5UzVVb1dWdm1SZUVxVnUycVhTeDFtN0Q2aHcyTXlwVFRXUTJZM2I5eWRjc2VXK0lLd2d2Z1pCSndydFZQYjZ6ejIyakd6czV4UVF2V3hSRUxsNWZlOStITjhTU1JWdXNWWExIeTloNHNsVkdPMWQ3Q0JGamNhSnpSNXhVVXN5Wnk1NmpnOGNsckxueHNiZFBVdlU3NGpkZDRHMTQrc1pYTGlyZ1c3MnprdFRvTUhWODhJR2M1THhObkN4NGpKZk9sUmVJcTJqYTBZalp0YkNxRU5aNjA3WklLQnRTMVdEdXg0NW1tMEV5V3RSSEEvV0M2ZmFoRWtzRGRoZkd0ZUcyZ2pKRFYwa3YxYThDZm53ZGE5bTBYKzgrVm8yV1h1aTdVU2FQbVAwbFZ6TnhobkxvNGswMWlsMGtiSVNBPT0='
|
||||
)
|
||||
set('userId', 'c2438eb8-2685-49a9-bf02-5111a5192d96')
|
||||
setTimeout(() => {
|
||||
uni.switchTab({
|
||||
url: '/pages/index/home'
|
||||
|
@ -12,10 +12,9 @@
|
||||
</view>
|
||||
<ContainerLoading :loadingVisible="loadingState" style="height: 83vh;margin-top: 30rpx;"
|
||||
@doRefresh="doRefreshList">
|
||||
<scroll-view scroll-y style="height: 83vh;" refresher-enabled :refresher-triggered="listRefreshTrig"
|
||||
:refresher-threshold="100" :lower-threshold="100" refresher-background="#FFFFFF00"
|
||||
@refresherrefresh="doRefreshList" @scrolltolower="doLoadMore">
|
||||
<view class="order-box">
|
||||
<scroll-view scroll-y style="height: 83vh;" :lower-threshold="100" refresher-background="#FFFFFF00"
|
||||
@scrolltolower="doLoadMore">
|
||||
<view class="contact-order-box">
|
||||
<block v-for="(item,index) in contactList" :key="index">
|
||||
<view class="order-item">
|
||||
<view class="contact-desc">
|
||||
@ -145,6 +144,10 @@
|
||||
this.doGetCsaNo()
|
||||
this.doGetMineContactList()
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.doRefreshList()
|
||||
uni.stopPullDownRefresh()
|
||||
},
|
||||
methods: {
|
||||
inputKeywords(e) {
|
||||
this.keywords = e.detail.value
|
||||
@ -465,11 +468,10 @@
|
||||
}
|
||||
|
||||
|
||||
.order-box {
|
||||
.contact-order-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.order-item {
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<view class="body-container">
|
||||
<view class="page-container">
|
||||
<view class="list-title-btns">
|
||||
<view @click="doChangeStatus" data-value="1" :class="currentStatus==1? 'btn-select':'btn-normal'"
|
||||
class="border-left">
|
||||
@ -23,11 +23,10 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="margin-top: 100rpx;">
|
||||
<view style="margin-top: 10rpx;">
|
||||
<ContainerLoading :loadingVisible="loadingState">
|
||||
<scroll-view scroll-y style="height: 85vh;" refresher-enabled :refresher-triggered="listRefreshTrig"
|
||||
:refresher-threshold="100" :lower-threshold="100" @refresherrefresh="doRefreshList" refresher-background="#FFFFFF00"
|
||||
@scrolltolower="doLoadMore">
|
||||
<scroll-view scroll-y style="height: 80vh;" :lower-threshold="100" refresher-background="#FFFFFF00"
|
||||
@scrolltolower="doLoadMore">
|
||||
<view class="coupons-list-box">
|
||||
<block v-for="(item,index) in couponsList" :key="index">
|
||||
<view class="tickets" :class="boderStyle(currentStatus)">
|
||||
@ -101,6 +100,10 @@
|
||||
//加载数据
|
||||
this.doRefreshList()
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.doRefreshList()
|
||||
uni.stopPullDownRefresh()
|
||||
},
|
||||
methods: {
|
||||
boderStyle,
|
||||
fontColor,
|
||||
@ -190,7 +193,7 @@
|
||||
showRule() {
|
||||
const id = '89c4ca41-a44e-4ae2-bad3-6fa6536dd453'
|
||||
wx.navigateTo({
|
||||
url: '/pages/treaty/rule/rule?id=' + id,
|
||||
url: '/pages/common/rule/rule?id=' + id,
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -199,15 +202,11 @@
|
||||
|
||||
<style lang="scss">
|
||||
.list-title-btns {
|
||||
position: fixed;
|
||||
top: 45px;
|
||||
left: 0;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
width: 100vw;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<view class="body-container">
|
||||
<view class="page-container">
|
||||
<view class="user-info-container">
|
||||
<view class="user-item">
|
||||
<view class="user-item-title">姓名</view>
|
||||
<view class="user-item-title">姓  名</view>
|
||||
<view class="user-item-content">
|
||||
<input :value="userInfo.userInfoName" @input="inputName" placeholder="请输入姓名" />
|
||||
</view>
|
||||
@ -14,8 +14,8 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="user-bottom-box">
|
||||
<view class="user-green-bottom-btn" @click="doUpdateInfo">保存</view>
|
||||
<view class="bottom-fixed-footer">
|
||||
<view class="bottom-btn-green" @click="doUpdateInfo">保存</view>
|
||||
</view>
|
||||
</view>
|
||||
<uni-popup ref="msg" type="message">
|
||||
@ -136,12 +136,12 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style lang="scss" scoped>
|
||||
.user-info-container {
|
||||
height: 100vh;
|
||||
background-color: white;
|
||||
border-radius: 10px;
|
||||
padding: 20px;
|
||||
padding: 15rpx;
|
||||
}
|
||||
|
||||
.user-item {
|
||||
@ -159,6 +159,9 @@
|
||||
.user-item-content {
|
||||
flex: .7;
|
||||
text-align: right;
|
||||
padding: 15rpx;
|
||||
border-radius: 15rpx;
|
||||
background-color: $bg-gray-input-color;
|
||||
}
|
||||
|
||||
.user-bottom-box {
|
||||
|
334
pages/mine/mineAccount/mineMsgNotice/mineMsgNotice.vue
Normal file
334
pages/mine/mineAccount/mineMsgNotice/mineMsgNotice.vue
Normal file
@ -0,0 +1,334 @@
|
||||
<template>
|
||||
<view class="page-container">
|
||||
<view class="list-title-btns">
|
||||
<view @click="doChangeStatus" data-value="" :class="currentStatus==''? 'btn-select':'btn-normal'"
|
||||
class="border-left">
|
||||
<view class="tab">
|
||||
<text>全部</text>
|
||||
<view :class="currentStatus==''?'border-select':'border-normal'"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view @click="doChangeStatus" data-value="0" :class="currentStatus=='0'? 'btn-select':'btn-normal'"
|
||||
class="border-right">
|
||||
<view class="tab">
|
||||
<text>未读</text>
|
||||
<view :class="currentStatus=='0'?'border-select':'border-normal'"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view @click="doChangeStatus" data-value="1" :class="currentStatus=='1'? 'btn-select':'btn-normal'"
|
||||
class="border-right">
|
||||
<view class="tab">
|
||||
<text>已读</text>
|
||||
<view :class="currentStatus=='1'?'border-select':'border-normal'"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view style="margin-top: 10rpx;">
|
||||
<ContainerLoading :loadingVisible="loadingState">
|
||||
<scroll-view scroll-y style="height: 80vh;" :lower-threshold="100" refresher-background="#FFFFFF00"
|
||||
@scrolltolower="doLoadMore">
|
||||
<view class="coupons-list-box">
|
||||
<block v-for="(item,index) in msgList" :key="index">
|
||||
<view class="msg-item-container">
|
||||
<view class="msg-item-box">
|
||||
<view class="msg-title-box" @click="readItem" :data-value="item">
|
||||
<view class="title-type" :class="item.isRead==0? 'text-noread':'text-read'">
|
||||
{{item.title}}
|
||||
</view>
|
||||
<view class="title-time">{{item.gmtCreate}}</view>
|
||||
</view>
|
||||
<view class="divider-v mt-10"></view>
|
||||
<view class="msg-content-box" @click="readItem" :data-value="item">
|
||||
<view :class="item.isRead==0? 'text-noread':'text-read'"
|
||||
class="msg-content-content">{{item.content}}</view>
|
||||
</view>
|
||||
<view @click="deleteItem" :data-value="item" class="icon-del-red size-48"
|
||||
style="align-self: flex-end;"></view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
<uni-load-more :status="hasMore"></uni-load-more>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</ContainerLoading>
|
||||
</view>
|
||||
<uni-popup type="message" ref="msg">
|
||||
<uni-popup-message :type="msgType" :message="msgHint" :duration="2000"></uni-popup-message>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ContainerLoading from '@/components/container-loading.vue'
|
||||
import UserApi from '@/common/js/net/UserApi.js'
|
||||
export default {
|
||||
components: {
|
||||
ContainerLoading
|
||||
},
|
||||
setup() {
|
||||
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
currentStatus: '',
|
||||
msgList: [], //订单列表
|
||||
pageData: {
|
||||
page: 1,
|
||||
rows: 10,
|
||||
isRead: '', //默认已读
|
||||
}, //检索参数
|
||||
loadingState: 'loading', //加载状态
|
||||
listRefreshTrig: false, //list刷新状态
|
||||
isLoadMore: false, //加载更多的状态
|
||||
hasMore: 'more', //是否有更多数据
|
||||
keywords: '', //搜索关键字
|
||||
msgType: 'info',
|
||||
msgHint: '',
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
uni.setNavigationBarTitle({
|
||||
title: '消息通知',
|
||||
})
|
||||
uni.setNavigationBarColor({
|
||||
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
|
||||
backgroundColor: '#F0F0F0', // 传递的颜色值,仅支持十六进制颜色
|
||||
animation: { // 可选项
|
||||
duration: 500,
|
||||
timingFunc: 'easeIn'
|
||||
}
|
||||
})
|
||||
this.doRefreshList()
|
||||
},
|
||||
methods: {
|
||||
doChangeStatus(e) {
|
||||
this.currentStatus = e.currentTarget.dataset.value
|
||||
//刷新列表
|
||||
this.doRefreshList()
|
||||
},
|
||||
doGetMineMsgList(isRefresh) {
|
||||
const _self = this
|
||||
_self.msgList = isRefresh ? [] : _self.msgList
|
||||
_self.loadingState = isRefresh ? 'loading' : ''
|
||||
UserApi.doGetMineMsgNotice(_self.pageData)
|
||||
.then(res => {
|
||||
var status = 'success'
|
||||
status = res.rows && res.rows.length > 0 ? 'success' : 'empty'
|
||||
_self.loadingState = isRefresh ? status : ''
|
||||
_self.msgList = _self.msgList.concat(res.rows)
|
||||
_self.isLoadMore = false
|
||||
_self.hasMore = _self.msgList.length < res.total ? 'more' : 'noMore'
|
||||
})
|
||||
.catch(err => {
|
||||
_self.loadingState = 'error'
|
||||
_self.isLoadMore = false
|
||||
_self.hasMore = 'more'
|
||||
})
|
||||
},
|
||||
//下拉刷新
|
||||
doRefreshList() {
|
||||
const _self = this
|
||||
_self.loadingState = 'loading'
|
||||
_self.hasMore = 'more'
|
||||
_self.pageData.page = 1
|
||||
_self.pageData.isRead = _self.currentStatus
|
||||
_self.isLoadMore = false
|
||||
_self.doGetMineMsgList(true)
|
||||
},
|
||||
//加载更多
|
||||
doLoadMore() {
|
||||
//判断是否正在加载中 与是否存在更多数据
|
||||
const _self = this
|
||||
if (_self.isLoadMore || !_self.hasMore) {
|
||||
return
|
||||
}
|
||||
_self.isLoadMore = true
|
||||
_self.pageData.page = ++_self.pageData.page
|
||||
_self.pageData.isRead = _self.currentStatus
|
||||
_self.doGetMineMsgList(false)
|
||||
},
|
||||
readItem(e) {
|
||||
const item = e.currentTarget.dataset.value
|
||||
if (item.isRead == 1) {
|
||||
return
|
||||
}
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
})
|
||||
const _self = this
|
||||
const ids = {
|
||||
ids: [item.userMsgId]
|
||||
}
|
||||
UserApi.doReadMineMsgNotice(ids)
|
||||
.then(res => {
|
||||
uni.hideLoading()
|
||||
_self.doRefreshList()
|
||||
})
|
||||
.catch(err => {
|
||||
uni.hideLoading()
|
||||
_self.msgHint = err.msg ? err.msg : '操作失败,请稍后重试'
|
||||
_self.msgType = 'error'
|
||||
_self.$refs.msg.open()
|
||||
})
|
||||
},
|
||||
deleteItem(e) {
|
||||
const item = e.currentTarget.dataset.value
|
||||
const _self = this
|
||||
uni.showModal({
|
||||
title: '警告',
|
||||
content: '您确定要删除该消息吗?',
|
||||
success: res => {
|
||||
if (res.confirm) {
|
||||
_self.doDeleteItem(item)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
//删除信息
|
||||
doDeleteItem(item) {
|
||||
const _self = this
|
||||
uni.showLoading({
|
||||
title: '删除中...',
|
||||
})
|
||||
UserApi.doDeleteMineMsgNotice(item.userMsgId)
|
||||
.then(res => {
|
||||
uni.hideLoading()
|
||||
_self.msgHint = '删除成功'
|
||||
_self.msgType = 'success'
|
||||
_self.$refs.msg.open()
|
||||
_self.doRefreshList()
|
||||
})
|
||||
.catch(err => {
|
||||
uni.hideLoading()
|
||||
_self.msgHint = err.msg ? err.msg : '删除失败,请稍后重试'
|
||||
_self.msgType = 'error'
|
||||
_self.$refs.msg.open()
|
||||
})
|
||||
}
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.doRefreshList()
|
||||
uni.stopPullDownRefresh()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.list-title-btns {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
.btn-select {
|
||||
line-height: 20px;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
flex: 1;
|
||||
padding: 10px;
|
||||
color: $bg-green-status-deep-color;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.btn-normal {
|
||||
line-height: 20px;
|
||||
color: $text-color;
|
||||
flex: 1;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
padding: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.border-select {
|
||||
width: 20px;
|
||||
height: 4px;
|
||||
background-color: $bg-green-status-deep-color;
|
||||
margin-top: 10px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.tab {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.border-normal {
|
||||
width: 20px;
|
||||
height: 4px;
|
||||
margin-top: 10px;
|
||||
border-radius: 2px;
|
||||
background-color: $bg-top-color;
|
||||
}
|
||||
|
||||
.coupons-list-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.msg-item-container {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.msg-item-container:nth-of-type(n+2) {
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.msg-item-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 20rpx;
|
||||
background-color: $white-color;
|
||||
border-radius: 5rpx;
|
||||
|
||||
}
|
||||
|
||||
.msg-title-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.text-read {
|
||||
color: $text-gray-hint-color;
|
||||
}
|
||||
|
||||
.text-noread {
|
||||
color: $text-color;
|
||||
|
||||
}
|
||||
|
||||
.title-type {
|
||||
font-size: 28rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.title-time {
|
||||
font-size: 24rpx;
|
||||
color: $text-gray-hint-color;
|
||||
}
|
||||
|
||||
.msg-content-box {
|
||||
margin-top: 15rpx;
|
||||
}
|
||||
|
||||
.msg-content-notice-point {
|
||||
width: 15rpx;
|
||||
height: 15rpx;
|
||||
border-radius: 15rpx;
|
||||
background-color: $primary-color-active;
|
||||
position: absolute;
|
||||
right: -10rpx;
|
||||
top: -10rpx;
|
||||
}
|
||||
|
||||
.msg-content-content {
|
||||
font-size: 28rpx;
|
||||
}
|
||||
</style>
|
@ -9,9 +9,8 @@
|
||||
</view>
|
||||
<ContainerLoading :loadingVisible="loadingState" style="height: 85vh;margin-top: 30rpx;"
|
||||
@doRefresh="doRefreshList">
|
||||
<scroll-view scroll-y style="height: 85vh;" refresher-enabled :refresher-triggered="listRefreshTrig"
|
||||
:refresher-threshold="100" :lower-threshold="100" @refresherrefresh="doRefreshList"
|
||||
refresher-background="#FFFFFF00" @scrolltolower="doLoadMore">
|
||||
<scroll-view scroll-y style="height: 85vh;" :lower-threshold="100" refresher-background="#FFFFFF00"
|
||||
@scrolltolower="doLoadMore">
|
||||
<view class="order-box">
|
||||
<block v-for="(item,index) in orderList" :key="index">
|
||||
<view class="order-item">
|
||||
@ -88,6 +87,10 @@
|
||||
})
|
||||
this.doRefreshList()
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.doRefreshList()
|
||||
uni.stopPullDownRefresh()
|
||||
},
|
||||
methods: {
|
||||
orderStatus,
|
||||
proType,
|
||||
|
@ -2,7 +2,7 @@
|
||||
<view class="bg-container">
|
||||
<image class="bg-image" src="/static/images/bg_mine.png"></image>
|
||||
<view class="content-container">
|
||||
<view id="func-box" style="padding: 0rpx 30rpx;">
|
||||
<view id="func-box" style="padding: 30rpx 30rpx 0rpx 30rpx;">
|
||||
<view class="custom-navbar"
|
||||
:style="{'height':totalHeight+'px','padding-top':statusBarHeight+'px','justify-content':'center','color':'#532A00'}">
|
||||
<view class="navbar-title">AI喵著</view>
|
||||
@ -19,7 +19,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="box-down">
|
||||
<view>套餐包余额</view>
|
||||
<view class="mt-10">套餐包余额</view>
|
||||
<view class="package-bag">
|
||||
<view class="package-bag-item" @click="openCreate" data-type="ALL">
|
||||
<text class="title">全托管</text>
|
||||
@ -81,21 +81,41 @@
|
||||
animation: null,
|
||||
alertMsg: '', //alertDialog提示内容
|
||||
menuList: [{
|
||||
"icon": "ic-user",
|
||||
"title": "个人信息",
|
||||
"path": "/pages/mine/mineAccount/mineInfo/mineInfo"
|
||||
icon: "ic-user",
|
||||
title: "个人信息",
|
||||
path: "/pages/mine/mineAccount/mineInfo/mineInfo"
|
||||
}, {
|
||||
"icon": "ic-order",
|
||||
"title": "我的订单",
|
||||
"path": "/pages/mine/mineAccount/mineOrder/mineOrder"
|
||||
icon: 'ic-msg',
|
||||
title: '消息通知',
|
||||
path: '/pages/mine/mineAccount/mineMsgNotice/mineMsgNotice'
|
||||
}, {
|
||||
"icon": "ic-invoice",
|
||||
"title": "发票管理",
|
||||
"path": ""
|
||||
icon: 'ic-refund',
|
||||
title: '退款项目',
|
||||
path: '/pages/copyright/refund/refund'
|
||||
}, {
|
||||
"icon": "ic-contact",
|
||||
"title": "产权联系人",
|
||||
"path": "/pages/mine/mineAccount/mineContact/mineContact"
|
||||
icon: 'ic-repair',
|
||||
title: '补正项目',
|
||||
path: '/pages/copyright/repair/repair'
|
||||
}, {
|
||||
icon: 'ic-invoice-info',
|
||||
title: '发票抬头',
|
||||
path: '/pages/mine/mineAccount/invoiceInfo/invoiceInfo'
|
||||
}, {
|
||||
icon: "ic-pay-record",
|
||||
title: "资金流水",
|
||||
path: "/pages/mine/mineAccount/minePayRecord/minePayRecord"
|
||||
}, {
|
||||
icon: "ic-order",
|
||||
title: "我的订单",
|
||||
path: "/pages/mine/mineAccount/mineOrder/mineOrder"
|
||||
}, {
|
||||
icon: "ic-invoice",
|
||||
title: "发票管理",
|
||||
path: "/pages/mine/mineAccount/mineInvoiceManage/mineInvoiceManage"
|
||||
}, {
|
||||
icon: "ic-contact",
|
||||
title: "产权联系人",
|
||||
path: "/pages/mine/mineAccount/mineContact/mineContact"
|
||||
}],
|
||||
msgType: 'info',
|
||||
msgTxt: '',
|
||||
@ -121,6 +141,11 @@
|
||||
this.getMineAccount()
|
||||
this.getMinePackageCount()
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
this.getMineAccount()
|
||||
this.getMinePackageCount()
|
||||
uni.stopPullDownRefresh()
|
||||
},
|
||||
methods: {
|
||||
//计算状态栏等高度
|
||||
countBarHeight() {
|
||||
@ -197,15 +222,10 @@
|
||||
//跳转页面
|
||||
itemClick(e) {
|
||||
const path = e.currentTarget.dataset.path
|
||||
const _self = this
|
||||
if (path == '') {
|
||||
_self.alertMsg = `鉴于功能特性,需在电脑端完成操作。请打开浏览器,登录网址${copyrightUrl},进行后续操作。`
|
||||
_self.$refs.alertDialog.open()
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: path
|
||||
})
|
||||
}
|
||||
const title = e.currentTarget.dataset.title
|
||||
uni.navigateTo({
|
||||
url: path
|
||||
})
|
||||
},
|
||||
//获取单价
|
||||
doGetPrice() {
|
||||
@ -228,10 +248,9 @@
|
||||
})
|
||||
.catch(err => {
|
||||
uni.hideLoading()
|
||||
uni.showToast({
|
||||
title: '数据有误,请刷新页面',
|
||||
icon: 'error'
|
||||
})
|
||||
_self.msgTxt = '网络错误,请刷新页面'
|
||||
_self.msgType = 'error'
|
||||
_self.$refs.msg.open()
|
||||
})
|
||||
},
|
||||
//播放刷新动画
|
||||
@ -572,6 +591,67 @@
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.ic-pay-record {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ1MzkyMTQyNzY1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ3ODEiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PHBhdGggZD0iTTYyNC4zNjA3MjcgODUxLjc4MTgxOGMwIDk1LjE4NTQ1NS0xMzkuNjM2MzY0IDE3Mi4yMTgxODItMzEyLjE4MDM2MyAxNzIuMjE4MTgyUzAgOTQ2LjgyNzYzNiAwIDg1MS43ODE4MTh2LTY3LjkwOTgxOGMwLjc0NDcyNyA5NC44MTMwOTEgMTQwLjE0ODM2NCAxNzEuNDczNDU1IDMxMS44NTQ1NDUgMTcxLjQ3MzQ1NXMzMTIuMTgwMzY0LTc3LjA3OTI3MyAzMTIuMTgwMzY0LTE3Mi4yMTgxODJWODUxLjc4MTgxOHogbTAtMTE5LjkwMTA5MWMwIDk1LjIzMi0xMzkuNjM2MzY0IDE3Mi4yMTgxODItMzEyLjE4MDM2MyAxNzIuMjE4MTgyUzAgODI2LjkyNjU0NSAwIDczMS43NDEwOTF2LTY3LjkwOTgxOGMwLjc0NDcyNyA5NC44MTMwOTEgMTQwLjE0ODM2NCAxNzEuNTIgMzExLjg1NDU0NSAxNzEuNTJzMzEyLjE4MDM2NC03Ny4wNzkyNzMgMzEyLjE4MDM2NC0xNzIuMjE4MTgydjY4LjY1NDU0NXogbS0zMTIuMTgwMzYzIDUyLjQ1NjcyOGMtMTcyLjIxODE4MiAwLTMxMi4xODAzNjQtNzcuMTI1ODE4LTMxMi4xODAzNjQtMTcyLjIxODE4MnMxMzkuNjM2MzY0LTE3Mi4yMTgxODIgMzEyLjE4MDM2NC0xNzIuMjE4MTgyIDMxMi4xODAzNjQgNzcuMTI1ODE4IDMxMi4xODAzNjMgMTcyLjIxODE4Mi0xMzkuNjgyOTA5IDE3Mi4wNzg1NDUtMzEyLjE4MDM2MyAxNzIuMDc4NTQ1ek0xMDI0IDY1MS42MzYzNjRjMCA5NS4xODU0NTUtMTM5LjYzNjM2NCAxNzIuMjE4MTgyLTMxMi4xODAzNjQgMTcyLjIxODE4MS05LjMwOTA5MSAwLTE4LjYxODE4Mi0wLjMyNTgxOC0yNy40NjE4MTgtMC43OTEyNzJ2LTQwLjQwMTQ1NWE2MC41MDkwOTEgNjAuNTA5MDkxIDAgMCAwLTMuMTE4NTQ1LTE5LjMxNjM2M2MwLjU1ODU0NS0yLjkzMjM2NCAwLjQ2NTQ1NS02LjAwNDM2NCAwLjgzNzgxOC04Ljk4MzI3M3ExNC43NTQ5MDkgMC43NDQ3MjcgMjkuNzQyNTQ1IDAuNzkxMjczYzE3Mi40OTc0NTUgMCAzMTIuMTgwMzY0LTc3LjA3OTI3MyAzMTIuMTgwMzY0LTE3Mi4yMTgxODJWNjUxLjYzNjM2NHogbTAtMTE5Ljg1NDU0NmMwIDk1LjE4NTQ1NS0xMzkuNjM2MzY0IDE3Mi4yMTgxODItMzEyLjE4MDM2NCAxNzIuMjE4MTgyLTkuMzA5MDkxIDAtMTguNjE4MTgyLTAuMjc5MjczLTI3LjQ2MTgxOC0wLjc5MTI3M3YtNDAuNDAxNDU0YTYwLjUwOTA5MSA2MC41MDkwOTEgMCAwIDAtMy4xMTg1NDUtMTkuMjY5ODE4YzAuNTU4NTQ1LTIuOTc4OTA5IDAuNDY1NDU1LTYuMDUwOTA5IDAuODM3ODE4LTkuMDI5ODE5cTE0Ljc1NDkwOSAwLjc5MTI3MyAyOS43NDI1NDUgMC43OTEyNzNDODg0LjM2MzYzNiA2MzUuNTMxNjM2IDEwMjQgNTU4LjU0NTQ1NSAxMDI0IDQ2My4yNjY5MDl2NjguNzAxMDkxeiBtMC0xMTkuOTQ3NjM2YzAgOTUuMjc4NTQ1LTEzOS42MzYzNjQgMTcyLjIxODE4Mi0zMTIuMTgwMzY0IDE3Mi4yMTgxODJxLTE1LjA4MDcyNyAwLTMwLjIwOC0wLjg4NDM2NEExNzIuNzMwMTgyIDE3Mi43MzAxODIgMCAwIDAgNjUwLjUxOTI3MyA1MTJhNTUwLjAyNzYzNiA1NTAuMDI3NjM2IDAgMCAwIDYxLjI1MzgxOCAzLjM5NzgxOGMxNzIuNDk3NDU1IDAgMzEyLjE4MDM2NC03Ny4xMjU4MTggMzEyLjE4MDM2NC0xNzIuMjE4MTgydjY4LjY1NDU0NnogbTAtMTE5Ljg1NDU0NmMwIDk1LjIzMi0xMzkuNjM2MzY0IDE3Mi4yMTgxODItMzEyLjE4MDM2NCAxNzIuMjE4MTgyYTUzMy4yNzEyNzMgNTMzLjI3MTI3MyAwIDAgMS0xMzAuMzI3MjcyLTE1LjgyNTQ1NCA0MDcuNTUyIDQwNy41NTIgMCAwIDAtMTEzLjUyNDM2NC00OS4wMTIzNjQgMTM1LjgxOTYzNiAxMzUuODE5NjM2IDAgMCAxLTY4LjMyODcyNy0xMDcuNDczNDU1VjIyMy45NzY3MjdjMC43OTEyNzMgOTQuODEzMDkxIDE0MC4xOTQ5MDkgMTcxLjU2NjU0NSAzMTIuMTMzODE4IDE3MS41NjY1NDZTMTAyNCAzMTguNzQzMjczIDEwMjQgMjIzLjQxODE4MnY2OC43MDEwOTF6TTcxMS43NzMwOTEgMzQ0LjQzNjM2NGMtMTcyLjIxODE4MiAwLTMxMi4xODAzNjQtNzcuMDc5MjczLTMxMi4xODAzNjQtMTcyLjIxODE4MnMxMzkuNjM2MzY0LTE3Mi4yMTgxODIgMzEyLjE4MDM2NC0xNzIuMjE4MTgyUzEwMjQgNzcuMDc5MjczIDEwMjQgMTcyLjIxODE4MnMtMTM5LjYzNjM2NCAxNzIuMjE4MTgyLTMxMi4yMjY5MDkgMTcyLjIxODE4MnoiIGZpbGw9IiNGRkJBMzQiIHAtaWQ9IjQ3ODIiPjwvcGF0aD48L3N2Zz4=');
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.ic-invoice-info {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ1NzM3NDQ3MTAwIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ0MTMiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTUxMiA1MTJtLTQ3NS40Mjg1NzEgMGE0NzUuNDI4NTcxIDQ3NS40Mjg1NzEgMCAxIDAgOTUwLjg1NzE0MiAwIDQ3NS40Mjg1NzEgNDc1LjQyODU3MSAwIDEgMC05NTAuODU3MTQyIDBaIiBmaWxsPSIjN0U0RkZGIiBwLWlkPSI0NDE0Ij48L3BhdGg+PHBhdGggZD0iTTY1Ni4wOTE0MjkgNDIyLjc2NTcxNGExNi43NDk3MTQgMTYuNzQ5NzE0IDAgMCAxIDE3LjE4ODU3MSAxNS43OTg4NTd2MzA0LjM0NzQyOWE2LjU4Mjg1NyA2LjU4Mjg1NyAwIDAgMS0zLjUxMDg1NyA1LjQ4NTcxNCA3LjE2OCA3LjE2OCAwIDAgMS02LjcyOTE0MyAwYy0zLjgwMzQyOS0yLjQxMzcxNC02NC4yMTk0MjktMzcuODE0ODU3LTY0LjIxOTQyOS0zNy44MTQ4NTdhMTQuNDA5MTQzIDE0LjQwOTE0MyAwIDAgMC0xNC4xMTY1NzEgMGwtNjUuMTcwMjg2IDM3LjUyMjI4NmExNy41NTQyODYgMTcuNTU0Mjg2IDAgMCAxLTcuNjggMS4yNDM0MjggMjAuMjYwNTcxIDIwLjI2MDU3MSAwIDAgMS04LjA0NTcxNC0xLjI0MzQyOGwtNjEuOTUyLTM2Ljg2NGExNC40MDkxNDMgMTQuNDA5MTQzIDAgMCAwLTE0LjExNjU3MSAwbC0yMy40MDU3MTUgMTMuNDU4Mjg2LTE1Ljc5ODg1NyA5LjA2OTcxNC0yNi42MjQgMTUuMjg2ODU3YTguMjY1MTQzIDguMjY1MTQzIDAgMCAxLTcuMzE0Mjg2LTAuMzY1NzE0IDcuNjA2ODU3IDcuNjA2ODU3IDAgMCAxLTMuODc2NTcxLTUuNzc4Mjg2VjQzOS4wNzY1NzFhMTYuMDkxNDI5IDE2LjA5MTQyOSAwIDAgMSA1LjEyLTExLjYyOTcxNCAxNy42Mjc0MjkgMTcuNjI3NDI5IDAgMCAxIDEyLjE0MTcxNC00Ljc1NDI4NnogbS00Ny4wMzA4NTggMTQ4LjE4NzQyOUg0MTQuOTM5NDI5YTE1Ljk0NTE0MyAxNS45NDUxNDMgMCAwIDAtMTYuMDkxNDI5IDE1LjUwNjI4NmMwIDguNTU3NzE0IDcuMjQxMTQzIDE1LjQzMzE0MyAxNi4wOTE0MjkgMTUuNTc5NDI4aDE5NC4xMjExNDJjNS44NTE0MjkgMC4wNzMxNDMgMTEuMzM3MTQzLTIuODUyNTcxIDE0LjMzNi03LjY4YTE0LjkyMTE0MyAxNC45MjExNDMgMCAwIDAgMC0xNS43MjU3MTQgMTYuNDU3MTQzIDE2LjQ1NzE0MyAwIDAgMC0xNC4zMzYtNy42OHogbTAtNzAuNDM2NTcySDQxNC45Mzk0MjlhMTYuNDU3MTQzIDE2LjQ1NzE0MyAwIDAgMC0xNC4zMzYgNy42OCAxNC45MjExNDMgMTQuOTIxMTQzIDAgMCAwIDAgMTUuNzI1NzE1YzIuOTk4ODU3IDQuODI3NDI5IDguNDg0NTcxIDcuNzUzMTQzIDE0LjMzNiA3LjY4aDE5NC4xMjExNDJjNS44NTE0MjkgMC4wNzMxNDMgMTEuMzM3MTQzLTIuOTI1NzE0IDE0LjMzNi03LjY4YTE0LjkyMTE0MyAxNC45MjExNDMgMCAwIDAgMC0xNS43MjU3MTUgMTYuNDU3MTQzIDE2LjQ1NzE0MyAwIDAgMC0xNC4zMzYtNy42OHpNNzI0LjExNDI4NiAzNDIuMjM1NDI5YzE0LjExNjU3MSAwIDI1LjYgMTAuOTcxNDI5IDI1LjYgMjQuMzU2NTcxdjExMS45MDg1NzFhMjUuNTI2ODU3IDI1LjUyNjg1NyAwIDAgMS0yNS42IDI0LjQyOTcxNWgtMzMuNTcyNTcyVjQ0Mi41MTQyODZoMS45NzQ4NTdhMjAuMzMzNzE0IDIwLjMzMzcxNCAwIDAgMCAyMC40OC0xOS43NDg1NzIgMjAuMzMzNzE0IDIwLjMzMzcxNCAwIDAgMC0yMC40OC0xOS44OTQ4NTdIMzMxLjQ4MzQyOWEyMC45OTIgMjAuOTkyIDAgMCAwLTE4LjIxMjU3MiA5Ljg3NDI4NiAxOS4wMTcxNDMgMTkuMDE3MTQzIDAgMCAwIDAgMTkuOTY4IDIwLjk5MiAyMC45OTIgMCAwIDAgMTguMjg1NzE0IDkuODAxMTQzaDEuOTAxNzE1djYwLjQxNmgtMzMuNjQ1NzE1YTI1LjA4OCAyNS4wODggMCAwIDEtMjUuNTI2ODU3LTI0LjQyOTcxNXYtMTExLjkwODU3MWMwLTEzLjQ1ODI4NiAxMS40ODM0MjktMjQuMzU2NTcxIDI1LjYtMjQuMzU2NTcxeiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iNDQxNSI+PC9wYXRoPjwvc3ZnPg==');
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.ic-unbind {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ1NDAwMzc2MjkxIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjYwMTgiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PHBhdGggZD0iTTUxMiA5ODRDMjUxLjc1IDk4NCAzOS45OSA3NzIuMjYgMzkuOTkgNTEyUzI1MS43NSA0MCA1MTIgNDBzNDcyLjAxIDIxMS43NCA0NzIuMDEgNDcyUzc3Mi4yNSA5ODQgNTEyIDk4NHoiIGZpbGw9IiNGRkY4RUYiIHAtaWQ9IjYwMTkiPjwvcGF0aD48cGF0aCBkPSJNNTEyIDgwQzI3My44MiA4MCA3OS45NyAyNzMuNzkgNzkuOTcgNTEyczE5My44NCA0MzIgNDMyLjAyIDQzMiA0MzIuMDMtMTkzLjc5IDQzMi4wMy00MzJDOTQ0LjAzIDI3My43OSA3NTAuMTggODAgNTEyIDgweiBtMC04MGMyODIuNzggMCA1MTIgMjI5LjIzIDUxMiA1MTJzLTIyOS4yMiA1MTItNTEyIDUxMlMwIDc5NC43NyAwIDUxMiAyMjkuMjIgMCA1MTIgMHoiIGZpbGw9IiNGRkE3MzgiIHAtaWQ9IjYwMjAiPjwvcGF0aD48cGF0aCBkPSJNMjc4LjYzIDI3OC42NmMyNy4zNC0yNy4yOSA3MS43My0yNy4yOSA5OS4wMiAwbDM2Ny43MiAzNjcuNjljMjcuMjkgMjcuMjkgMjcuMjkgNzEuNyAwIDk5LTI3LjM0IDI3LjI5LTcxLjczIDI3LjI5LTk5LjAyIDBsLTM2Ny43Mi0zNjcuN2MtMjcuMjktMjcuMjktMjcuMjktNzEuNyAwLTk4Ljk5eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iNjAyMSI+PC9wYXRoPjxwYXRoIGQ9Ik03MTcuMDYgNzE3LjA2YzExLjcyLTExLjY5IDExLjcyLTMwLjczIDAtNDIuNDJsLTM2Ny42Ny0zNjcuN2MtMTEuNzMtMTEuNy0zMC43Ny0xMS43LTQyLjQ1IDAtMTEuNjcgMTEuNy0xMS43MyAzMC43MyAwIDQyLjQzbDM2Ny42NyAzNjcuNjljMTEuNzMgMTEuNyAzMC43NyAxMS43IDQyLjQ1IDB6IG01Ni41NyA1Ni41N2MtNDIuOTYgNDIuOTYtMTEyLjU5IDQyLjk2LTE1NS41NSAwbC0zNjcuNzItMzY3LjdjLTQyLjk2LTQyLjk2LTQyLjk2LTExMi42MSAwLTE1NS41NiA0Mi45Ni00Mi45NiAxMTIuNTktNDIuOTYgMTU1LjU1IDBsMzY3LjcyIDM2Ny42OWM0Mi45NiA0Mi45NyA0Mi45NiAxMTIuNjIgMCAxNTUuNTd6IiBmaWxsPSIjRkZBNzM4IiBwLWlkPSI2MDIyIj48L3BhdGg+PHBhdGggZD0iTTczMC41MiAzOTguNzZsLTMzOS40IDMzOS40MWMtNy41MyA3LjUtMTcuNjYgMTEuNzEtMjguMzEgMTEuNzEtMTAuNiAwLTIwLjc5LTQuMjEtMjguMjYtMTEuNzFsLTQyLjQ1LTQyLjQyYy0zLjY5LTMuNzEtNi42Ni04LjEzLTguNjUtMTIuOTgtMi00Ljg1LTMuMDctMTAuMDUtMy4wNy0xNS4zczEuMDgtMTAuNDYgMy4wNy0xNS4zMWMyLTQuODUgNC45Ny05LjI2IDguNjUtMTIuOThsMzM5LjQtMzM5LjQxYzMuNzQtMy43MSA4LjE0LTYuNjYgMTMtOC42N2EzOS45NzQgMzkuOTc0IDAgMCAxIDE1LjMxLTMuMDRjNS4yMiAwIDEwLjQ0IDEuMDMgMTUuMzEgMy4wNCA0Ljg2IDIuMDEgOS4yNyA0Ljk2IDEyLjk1IDguNjdsNDIuNDUgNDIuNDNjNy40OCA3LjUgMTEuNzMgMTcuNjggMTEuNzMgMjguMjggMCAxMC42MS00LjI1IDIwLjc4LTExLjczIDI4LjI4eiIgZmlsbD0iI0ZGRjhFRiIgcC1pZD0iNjAyMyI+PC9wYXRoPjxwYXRoIGQ9Ik03MTMuMTYgMzcxLjQxbC0zMzkuNCAzMzkuNDFjLTcuNTMgNy41MS0xNy42NiAxMS43Mi0yOC4zMSAxMS43Mi0xMC42IDAtMjAuNzktNC4yMi0yOC4yNi0xMS43MmEzOS44OCAzOS44OCAwIDAgMS0xMS43My0yOC4yOGMwLTEwLjYxIDQuMi0yMC43OCAxMS43My0yOC4yOGwzMzkuNC0zMzkuNDFjNy41My03LjQ1IDE3LjY2LTExLjYyIDI4LjI2LTExLjU5IDEwLjU1IDAuMDIgMjAuNjggNC4yNCAyOC4yMSAxMS43MmEzOS45MDUgMzkuOTA1IDAgMCAxIDExLjY3IDI4LjJjMC4wNiAxMC41Ni00LjE0IDIwLjcyLTExLjU3IDI4LjIzeiIgZmlsbD0iI0ZGQTczOCIgcC1pZD0iNjAyNCI+PC9wYXRoPjwvc3ZnPg==');
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.ic-msg {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ2NTE1Mjg3MDE2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MzIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTkzNC42Mjc1NTYgODI3LjczMzMzM2EyNzMuMDA5Nzc4IDI3My4wMDk3NzggMCAwIDAtMTA2LjMyNTMzNC0yMDQuNTcyNDQ0VjM5Ny40MjU3NzhjMC0xMzAuMzg5MzMzLTkyLjEwMzExMS0yNDAuMDcxMTExLTIxMy45MDIyMjItMjY2LjA2OTMzNHYtNS4xMkExMDcuOTc1MTExIDEwNy45NzUxMTEgMCAwIDAgNTA3LjE2NDQ0NCAxNy45NzY4ODljLTU4LjgyMzExMSAwLTEwNy4wMDggNDguNjk2ODg5LTEwNy4wMDggMTA4LjE0NTc3OHY1LjE3Njg4OWMtMTIxLjc0MjIyMiAyNS45OTgyMjItMjEzLjkwMjIyMiAxMzUuNjgtMjEzLjkwMjIyMiAyNjYuMDY5MzMzdjIyNS44NDg4ODlhMjczLjAwOTc3OCAyNzMuMDA5Nzc4IDAgMCAwLTEwNi4zODIyMjIgMjA0LjYyOTMzM2gxMDYuMzgyMjIydjAuNjgyNjY3SDgyOC4zMDIyMjJ2LTAuNjgyNjY3aDEwNi4zMjUzMzR2LTAuMTEzNzc4eiBtLTQ0OS45OTExMTIgMTgyLjk1NDY2N2gyNi41NjcxMTJjNjkuNzQ1Nzc4IDAgMTI3LjY1ODY2Ny01My4yNDggMTM2LjAyMTMzMy0xMjEuNDAwODg5SDM2Ny41MDIyMjJjOC40MTk1NTYgNjguMTUyODg5IDY2LjM4OTMzMyAxMjEuNDAwODg5IDEzNi4wNzgyMjIgMTIxLjQwMDg4OUg0ODQuNjkzMzMzeiIgZmlsbD0iI0ZGQjgwMCIgcC1pZD0iMjYzMyI+PC9wYXRoPjwvc3ZnPg==');
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.custom-tips {
|
||||
margin-top: 82px;
|
||||
}
|
||||
|
||||
.ic-refund {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ2NTgyMTEwOTk2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjM1NzYiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PHBhdGggZD0iTTU1MC4wMjc2MzYgMjI3Ljc0NjkwOWEyNzkuMjcyNzI3IDI3OS4yNzI3MjcgMCAxIDEgMCA1NTguNTQ1NDU1IDI3OS4yNzI3MjcgMjc5LjI3MjcyNyAwIDAgMSAwLTU1OC41NDU0NTV6IG0tNTQuNDU4MTgxIDE0Mi4xNDk4MThhMjIuMDYyNTQ1IDIyLjA2MjU0NSAwIDAgMC0zMS4xODU0NTUgMzEuMTg1NDU1bDQ3LjEwNCA0Ny4xMDRoLTQyLjM1NjM2NGEyMi4wNjI1NDUgMjIuMDYyNTQ1IDAgMSAwIDAgNDQuMTI1MDkxaDU4LjgzMzQ1NXYyOS4zNzAxODJINDY5LjE3ODE4MmEyMi4wNjI1NDUgMjIuMDYyNTQ1IDAgMSAwIDAgNDQuMTI1MDloNTguNzg2OTA5djczLjU0MTgxOWEyMi4wNjI1NDUgMjIuMDYyNTQ1IDAgMCAwIDQ0LjEyNTA5MSAwdi03My41NDE4MTloNTguNzg2OTA5YTIyLjA2MjU0NSAyMi4wNjI1NDUgMCAxIDAgMC00NC4wNzg1NDVINTcyLjA0MzYzNnYtMjkuNDE2NzI3aDU4LjgzMzQ1NWEyMi4wNjI1NDUgMjIuMDYyNTQ1IDAgMSAwIDAtNDQuMDc4NTQ2aC00Mi4zNTYzNjRsNDcuMTk3MDkxLTQ3LjE1MDU0NSAxLjU4MjU0Ni0xLjgxNTI3M2EyMi4wNjI1NDUgMjIuMDYyNTQ1IDAgMCAwLTMyLjc2OC0yOS4zNzAxODJMNTUyLjQ5NDU0NSA0MjEuODQxNDU1bC0xLjU4MjU0NSAxLjgxNTI3Mi0wLjkzMDkwOSAxLjI1NjcyOGEyMi4xNTU2MzYgMjIuMTU1NjM2IDAgMCAwLTIuNTEzNDU1LTMuMDcybC01MS45OTEyNzItNTEuOTQ0NzI4eiIgZmlsbD0iIzNCOERGRiIgcC1pZD0iMzU3NyI+PC9wYXRoPjxwYXRoIGQ9Ik05NzcuNDU0NTQ1IDUxMmMwLTIzMS4zMzA5MDktMTg4LjUwOTA5MS00MTguOTA5MDkxLTQyMS4wMDM2MzYtNDE4LjkwOTA5MS0yMzIuNTQxMDkxIDAtNDIxLjA1MDE4MiAxODcuNTc4MTgyLTQyMS4wNTAxODIgNDE4LjkwOTA5MWEzMC4wMjE4MTggMzAuMDIxODE4IDAgMCAwIDMwLjA2ODM2NCAyOS4xODRjMTYuMzM3NDU1IDAgMjkuNjk2LTEyLjkzOTYzNiAzMC4xMTQ5MDktMjkuMTg0IDAtMTk4LjI4MzYzNiAxNjEuNTEyNzI3LTM1OS4wNTE2MzYgMzYwLjg2NjkwOS0zNTkuMDUxNjM2IDE5OS4zMDc2MzYgMCAzNjAuODY2OTA5IDE2MC43MjE0NTUgMzYwLjg2NjkwOSAzNTkuMDUxNjM2IDAgMTk4LjI4MzYzNi0xNjEuNTU5MjczIDM1OS4wNTE2MzYtMzYwLjg2NjkwOSAzNTkuMDUxNjM2YTM2MC42MzQxODIgMzYwLjYzNDE4MiAwIDAgMS0xNjguMjYxODE4LTQxLjI4NTgxOCAzMC4xNjE0NTUgMzAuMTYxNDU1IDAgMCAwLTQwLjAyOTA5MSAxMi44IDI5LjgzNTYzNiAyOS44MzU2MzYgMCAwIDAgMTEuOTYyMTgyIDQwLjEyMjE4MkE0MjAuOTU3MDkxIDQyMC45NTcwOTEgMCAwIDAgNTU2LjQ1MDkwOSA5MzAuOTA5MDkxQzc4OC45NDU0NTUgOTMwLjkwOTA5MSA5NzcuNDU0NTQ1IDc0My4zMzA5MDkgOTc3LjQ1NDU0NSA1MTJ6TTE3OS43NTg1NDUgNTk3LjgyOTgxOGw1NC41NTEyNzMtNzIuNDI0NzI3YTE3LjY4NzI3MyAxNy42ODcyNzMgMCAwIDAtMTQuMjQyOTA5LTI4LjM5MjcyN0gxMTAuOTE3ODE4YTE3LjY4NzI3MyAxNy42ODcyNzMgMCAxIDAtMTQuMjQyOTA5IDI4LjM5MjcyN2w1NC41NTEyNzMgNzIuNDI0NzI3YTE3Ljg3MzQ1NSAxNy44NzM0NTUgMCAwIDAgMjguNTMyMzYzIDB6IiBmaWxsPSIjM0I4REZGIiBwLWlkPSIzNTc4Ij48L3BhdGg+PC9zdmc+');
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.ic-repair {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ2NTgyMjU3MDY5IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjEyNjg2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjxwYXRoIGQ9Ik04NjEuMTg0IDk1Mi4zMmMzMy4yOCAwIDYwLjQxNi0yNy42NDggNjAuNDE2LTYxLjQ0VjEzMy4xMmMwLTMzLjc5Mi0yNy4xMzYtNjEuNDQtNjAuNDE2LTYxLjQ0SDE2Mi44MTZDMTI5LjUzNiA3MS42OCAxMDIuNCA5OS4zMjggMTAyLjQgMTMzLjEydjc1Ny43NmMwIDMzLjc5MiAyNy4xMzYgNjEuNDQgNjAuNDE2IDYxLjQ0aDY5OC4zNjh6IG0tMTYuODk2LTgwMy44NHY3MjcuMDRIMTc5LjJWMTQ4LjQ4aDY2NS4wODh6IiBwLWlkPSIxMjY4NyIgZmlsbD0iIzEyOTZkYiI+PC9wYXRoPjxwYXRoIGQ9Ik03MTEuNjggMjE1LjU1MkgzMTIuMzJjLTIwLjk5MiAwLTM4LjQgMTcuNDA4LTM4LjQgMzguNHMxNy40MDggMzguNCAzOC40IDM4LjRoMzk5LjM2YzIwLjk5MiAwIDM4LjQtMTcuNDA4IDM4LjQtMzguNHMtMTcuNDA4LTM4LjQtMzguNC0zOC40eiBtMCAxMjhIMzEyLjMyYy0yMC45OTIgMC0zOC40IDE3LjQwOC0zOC40IDM4LjRzMTcuNDA4IDM4LjQgMzguNCAzOC40aDM5OS4zNmMyMC45OTIgMCAzOC40LTE3LjQwOCAzOC40LTM4LjRzLTE3LjQwOC0zOC40LTM4LjQtMzguNHpNNTMxLjk2OCA2NDIuMDQ4Yy0xNC4zMzYgMTMuODI0LTI5LjE4NCAyOS42OTYtNDEuNDcyIDQxLjk4NCAxMy44MjQgMTMuODI0IDI3LjY0OCAyNy4xMzYgMzIuNzY4IDMyLjc2OGwtMjguNjcyIDM3LjM3NmMtMTEuMjY0LTE2LjM4NC0zMy4yOC00MS40NzItNTIuMjI0LTYyLjQ2NHYxNTUuMTM2aC00OS4xNTJWNzA2LjU2Yy0xNy40MDggMTUuODcyLTMzLjc5MiAzMC4yMDgtNTEuMiA0MS45ODQtNC42MDgtMTMuMzEyLTE3LjQwOC0zNy4zNzYtMjUuNi00Ni41OTIgNDYuMDgtMjcuMTM2IDkzLjY5Ni03NS4yNjQgMTIzLjM5Mi0xMjQuOTI4SDMyOS4yMTZ2LTQ0LjAzMmg3Mi43MDRjLTkuMjE2LTEzLjgyNC0yMy41NTItMzAuNzItMzYuMzUyLTQ0LjAzMmwzNS4zMjgtMjUuMDg4YzE2Ljg5NiAxNC44NDggMzUuODQgMzUuODQgNDQuNTQ0IDUwLjE3NmwtMjQuNTc2IDE4Ljk0NGg0Ni4wOGw4LjcwNC0yLjA0OCAyOC4xNiAxOS45NjhjLTEzLjgyNCAzMi43NjgtMzMuNzkyIDY0LjUxMi01NS44MDggOTQuMjA4IDQuNjA4IDMuNTg0IDkuNzI4IDguMTkyIDE1LjM2IDEzLjMxMiAxMS43NzYtMTUuMzYgMjUuMDg4LTMyLjc2OCAzMi4yNTYtNDYuNTkybDM2LjM1MiAzMC4yMDh6IG04MC4zODQtNTYuODMyYzI5LjY5NiAyNS4wODggNzMuNzI4IDYxLjQ0IDk1LjIzMiA4NC45OTJsLTM5LjkzNiAzNS44NGMtMTUuMzYtMTkuNDU2LTQ2LjA4LTQ3LjYxNi03Mi43MDQtNzEuNjh2MjEwLjk0NGgtNTMuMjQ4VjQ2NC44OTZoNTMuMjQ4VjU5OS4wNGwxNy40MDgtMTMuODI0eiIgcC1pZD0iMTI2ODgiIGZpbGw9IiMxMjk2ZGIiPjwvcGF0aD48L3N2Zz4=');
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.icon-refresh {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQ0MTY2MTkyNTg5IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjU2MDkiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTkzNi41OTQyODYgNjAzLjQyODU3MXEwIDIuODUyNTcxLTAuNTg1MTQzIDQuMDIyODU3LTM2LjU3MTQyOSAxNTMuMTYxMTQzLTE1My4xNjExNDMgMjQ4LjMydC0yNzMuMTE1NDI5IDk1LjE1ODg1N3EtODMuNDU2IDAtMTYxLjQyNjI4Ni0zMS40NTE0Mjl0LTEzOS4xMTc3MTQtODkuNzQ2Mjg2bC03My43MjggNzMuNzI4cS0xMC44MjUxNDMgMTAuODI1MTQzLTI1Ljc0NjI4NiAxMC44MjUxNDN0LTI1Ljc0NjI4Ni0xMC44MjUxNDMtMTAuODI1MTQzLTI1Ljc0NjI4NmwwLTI1NnEwLTE0Ljg0OCAxMC44MjUxNDMtMjUuNzQ2Mjg2dDI1Ljc0NjI4Ni0xMC44MjUxNDNsMjU2IDBxMTQuODQ4IDAgMjUuNzQ2Mjg2IDEwLjgyNTE0M3QxMC44MjUxNDMgMjUuNzQ2Mjg2LTEwLjgyNTE0MyAyNS43NDYyODZsLTc4LjI2Mjg1NyA3OC4yNjI4NTdxNDAuNTk0Mjg2IDM3Ljc0MTcxNCA5Mi4wMTM3MTQgNTguMjk0ODU3dDEwNi44NjE3MTQgMjAuNTUzMTQzcTc2LjU4MDU3MSAwIDE0Mi44NDgtMzcuMTU2NTcxdDEwNi4yNzY1NzEtMTAyLjI1MzcxNHE2LjI5MDI4Ni05LjcyOCAzMC4yODExNDMtNjYuODUyNTcxIDQuNTM0ODU3LTEzLjE2NTcxNCAxNy4xMTU0MjktMTMuMTY1NzE0bDEwOS43MTQyODYgMHE3LjQ2MDU3MSAwIDEyLjg3MzE0MyA1LjQxMjU3MXQ1LjQxMjU3MSAxMi44NzMxNDN6TTk1MC44NTcxNDMgMTQ2LjI4NTcxNGwwIDI1NnEwIDE0Ljg0OC0xMC44MjUxNDMgMjUuNzQ2Mjg2dC0yNS43NDYyODYgMTAuODI1MTQzbC0yNTYgMHEtMTQuODQ4IDAtMjUuNzQ2Mjg2LTEwLjgyNTE0M3QtMTAuODI1MTQzLTI1Ljc0NjI4NiAxMC44MjUxNDMtMjUuNzQ2Mjg2bDc4Ljg0OC03OC44NDhxLTg0LjU1MzE0My03OC4yNjI4NTctMTk5LjQ2MDU3MS03OC4yNjI4NTctNzYuNTgwNTcxIDAtMTQyLjg0OCAzNy4xNTY1NzF0LTEwNi4yNzY1NzEgMTAyLjI1MzcxNHEtNi4yOTAyODYgOS43MjgtMzAuMjgxMTQzIDY2Ljg1MjU3MS00LjUzNDg1NyAxMy4xNjU3MTQtMTcuMTE1NDI5IDEzLjE2NTcxNGwtMTEzLjczNzE0MyAwcS03LjQ2MDU3MSAwLTEyLjg3MzE0My01LjQxMjU3MXQtNS40MTI1NzEtMTIuODczMTQzbDAtNC4wMjI4NTdxMzcuMTU2NTcxLTE1My4xNjExNDMgMTU0LjI1ODI4Ni0yNDguMzJ0Mjc0LjI4NTcxNC05NS4xNTg4NTdxODMuNDU2IDAgMTYyLjMwNCAzMS43NDR0MTM5Ljk5NTQyOSA4OS40NTM3MTRsNzQuMzEzMTQzLTczLjcyOHExMC44MjUxNDMtMTAuODI1MTQzIDI1Ljc0NjI4Ni0xMC44MjUxNDN0MjUuNzQ2Mjg2IDEwLjgyNTE0MyAxMC44MjUxNDMgMjUuNzQ2Mjg2eiIgZmlsbD0iIzUzMkEwMCIgcC1pZD0iNTYxMCI+PC9wYXRoPjwvc3ZnPg==');
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
margin-left: 5px;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
.custom-tips {
|
||||
margin-top: 82px;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<view class="body-container">
|
||||
<view class="page-container">
|
||||
<view class="contaienr">
|
||||
<view class="icon" style="width: 96px;height: 96px;"></view>
|
||||
<view class="title">交易成功</view>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<view class="body-container">
|
||||
<view class="page-container">
|
||||
<swiper indicator-dots style="height: 120rpx;" autoplay indicator-active-color="#fff">
|
||||
<swiper-item>
|
||||
<image src="/static/images/banner_1.png" style="width: 100vw;height: 120rpx;"></image>
|
||||
@ -73,8 +73,8 @@
|
||||
</view>
|
||||
</ContainerLoading>
|
||||
</view>
|
||||
<view class="bottom-btn-box">
|
||||
<view class="green-bottom-btn" @click="doPay">确认充值</view>
|
||||
<view class="bottom-fixed-footer">
|
||||
<view class="bottom-btn-green" @click="doPay">确认充值</view>
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<view class="body-container">
|
||||
<view class="page-container">
|
||||
<!-- 轮播图 -->
|
||||
<swiper indicator-dots style="height: 120rpx;" autoplay indicator-active-color="#fff">
|
||||
<swiper-item>
|
||||
@ -31,10 +31,9 @@
|
||||
<view class="item center">
|
||||
<view class="title star">打款时间</view>
|
||||
<view class="content">
|
||||
<view class="time-picker-box">
|
||||
<uni-datetime-picker :style="{'color':selectTime==''? '' :'#000000 !important'}" type="datetime"
|
||||
:border="false" v-model="selectTime" @change="changeDateTime" />
|
||||
</view>
|
||||
<uni-datetime-picker
|
||||
:style="{'color':selectTime==''? '$text-gray-hint-color' :'$text-color !important'}"
|
||||
type="datetime" :border="false" v-model="selectTime" @change="changeDateTime" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
@ -42,7 +41,7 @@
|
||||
<view class="content">
|
||||
<view class="file-picker-container">
|
||||
<uni-file-picker ref="imgPicker" :del-icon="false" limit="1" fileMediatype="image"
|
||||
:auto-upload="false" :image-styles="imageStyles" @select="uploadFile"></uni-file-picker>
|
||||
:auto-upload="false" :image-styles="imageStyles" @select="uploadImgToNet"></uni-file-picker>
|
||||
<view v-if="files.length>0" class="icon-delete" @click="delImgs"></view>
|
||||
</view>
|
||||
</view>
|
||||
@ -75,17 +74,17 @@
|
||||
<view class="content" style="color: red;">请打款时必须按照以上备注填写</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-btn-box">
|
||||
<view class="money">金额:
|
||||
<text class="price">{{payMoney}}元</text>
|
||||
<text style="font-size:12px;" v-if="packageId">({{packageName}})</text>
|
||||
<view class="bottom-fixed-footer">
|
||||
<view class="money">金额:
|
||||
<text class="price">{{payMoney}}元</text>
|
||||
<text style="font-size:12px;" v-if="packageId">({{packageName}})</text>
|
||||
</view>
|
||||
<view class="bottom-btn-green" @click="completePay">完成充值</view>
|
||||
</view>
|
||||
<view class="green-bottom-btn" @click="completePay">完成充值</view>
|
||||
<uni-popup type="message" ref="msg">
|
||||
<uni-popup-message :type="msgType" :message="msgTxt" :duration="2000"></uni-popup-message>
|
||||
</uni-popup>
|
||||
</view>
|
||||
<uni-popup type="message" ref="msg">
|
||||
<uni-popup-message :type="msgType" :message="msgTxt" :duration="2000"></uni-popup-message>
|
||||
</uni-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@ -230,7 +229,10 @@
|
||||
this.$refs.imgPicker.clearFiles()
|
||||
},
|
||||
//上传图片
|
||||
uploadFile(e) {
|
||||
uploadImgToNet(e) {
|
||||
uni.showLoading({
|
||||
title: '上传中...'
|
||||
})
|
||||
const tempFilePaths = e.tempFilePaths;
|
||||
const token = get('token')
|
||||
const header = {}
|
||||
@ -245,10 +247,19 @@
|
||||
filePath: tempFilePaths[i],
|
||||
name: 'image',
|
||||
success(res) {
|
||||
uni.hideLoading()
|
||||
console.log(res)
|
||||
if (res.statusCode == 200) {
|
||||
let result = JSON.parse(res.data)
|
||||
that.files.push(result.data)
|
||||
let result = res.data
|
||||
if (typeof res.data == 'string') {
|
||||
result = JSON.parse(res.data)
|
||||
} else {
|
||||
result = res.data
|
||||
}
|
||||
// let result = JSON.parse(res.data)
|
||||
console.log(result);
|
||||
that.files = that.files.concat(result.data)
|
||||
// that.files.push(result.data)
|
||||
} else {
|
||||
that.msgTxt = '凭证上传失败,请稍后重试'
|
||||
that.msgType = 'error'
|
||||
@ -257,6 +268,7 @@
|
||||
}
|
||||
},
|
||||
fail(err) {
|
||||
uni.hideLoading()
|
||||
console.log("错误", err);
|
||||
that.$refs.imgPicker.clearFiles()
|
||||
}
|
||||
@ -386,19 +398,10 @@
|
||||
.time-picker-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.star::after {
|
||||
content: "*";
|
||||
color: red;
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
|
||||
.time-icon {
|
||||
background-image: url('data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzQzNDE0Mzc3MjcwIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ2MjgiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTE5MiA1MTJoMTI4di0xMjhIMTkyeiBtMCAxOTJoMTI4di0xMjhIMTkyeiBtNzY4LTE5Mi4wMzJWMTYwYTk2IDk2IDAgMCAwLTk2LTk2aC05NnYtMzEuMTA0YzAtMTcuMjE2LTEzLjI0OC0zMi4wNjQtMzAuNDY0LTMyLjg2NEw3MzYgMGEzMiAzMiAwIDAgMC0zMiAzMnYzMkgzMjB2LTMxLjEwNEMzMjAgMTUuNjggMzA2Ljc1MiAwLjgzMiAyODkuNTM2IDAuMDMyTDI4OCAwYTMyIDMyIDAgMCAwLTMyIDMydjMySDE2MGE5NiA5NiAwIDAgMC05NiA5NnY2NDBhOTYgOTYgMCAwIDAgOTYgOTZoMjg4YzU4LjkxMiA3OC4wOCAxNTEuNDg4IDEyOCAyNTUuNzQ0IDEyOGgyLjg0OC0wLjE2YzE3NS45NjgtMS4zMTIgMzE4LjgxNi0xNDYuNDMyIDMxNy41MzYtMzIyLjRhMzE3LjEyIDMxNy4xMiAwIDAgMC02NC41NzYtMTkwLjRsMC41NzYgMC44ek0xMjggMTc2QTQ4IDQ4IDAgMCAxIDE3NiAxMjhIMjU2djMxLjEwNGMwIDE3LjIxNiAxMy4yNDggMzIuMDY0IDMwLjQ2NCAzMi44NjRMMjg4IDE5MmEzMiAzMiAwIDAgMCAzMi0zMlYxMjhoMzg0djMxLjEwNGMwIDE3LjIxNiAxMy4yNDggMzIuMDY0IDMwLjQ2NCAzMi44NjRMNzM2IDE5MmEzMiAzMiAwIDAgMCAzMi0zMlYxMjhoODBBNDggNDggMCAwIDEgODk2IDE3NlYyNTZIMTI4ek0zODQgNzA0djAuMzg0YTMxOC4wOCAzMTguMDggMCAwIDAgMjcuNDU2IDEyOS42NjRsLTAuOC0yLjAxNkgxNzZhNDggNDggMCAwIDEtNDgtNDh2LTQ2NGg3Njh2MTI4Yy01Mi44MzItMzkuOTM2LTExOS42MTYtNjQtMTkyLTY0cy0xMzkuMTY4IDI0LjAzMi0xOTIuOCA2NC41NzZsMC44LTAuNTc2di02NGgtMTI4djEyOGg2NGEzMTYuMzg0IDMxNi4zODQgMCAwIDAtNjQgMTkxLjUydjAuNTEyLTAuMDMyeiBtNTc1Ljk2OCAzLjQyNGEyNTYgMjU2IDAgMSAxLTc3LjM0NC0xODYuNzg0bC0wLjA2NC0wLjA2NGEyNTUuNTg0IDI1NS41ODQgMCAwIDEgNzcuNDA4IDE4My41NTJsLTAuMDMyIDMuNDg4di0wLjE5MnpNODAwIDcwNGgtOTZ2LTE2MGEzMiAzMiAwIDAgMC02NCAwdjE5MmEzMiAzMiAwIDAgMCAzMiAzMmgxMjhhMzIgMzIgMCAwIDAgMC02NHoiIHAtaWQ9IjQ2MjkiIGZpbGw9IiMyYzJjMmMiPjwvcGF0aD48L3N2Zz4=');
|
||||
background-size: contain;
|
||||
@ -407,12 +410,11 @@
|
||||
|
||||
.input-box {
|
||||
flex: 1;
|
||||
background-color: #FAFAFA;
|
||||
border-radius: 2rpx;
|
||||
padding: 3px 8px;
|
||||
background-color: $bg-gray-input-color;
|
||||
border-radius: 10rpx;
|
||||
padding: 15rpx;
|
||||
text-align: left;
|
||||
font-size: 12px;
|
||||
border: 1px solid #F0F0F0;
|
||||
font-size: 28rpx;
|
||||
line-height: 40rpx;
|
||||
height: 40rpx;
|
||||
}
|
||||
@ -451,12 +453,14 @@
|
||||
}
|
||||
|
||||
.money {
|
||||
color: #532A00;
|
||||
font-size: 20px;
|
||||
color: $text-brown-color;
|
||||
font-size: 32rpx;
|
||||
text-align: center;
|
||||
padding-bottom: 15rpx;
|
||||
}
|
||||
|
||||
.price {
|
||||
color: rgb(250, 0, 0);
|
||||
color: $red-color;
|
||||
}
|
||||
|
||||
|
||||
@ -483,40 +487,42 @@
|
||||
height: 4rpx !important;
|
||||
}
|
||||
|
||||
:deep(.uni-datetime-picker--btn) {
|
||||
background-color: rgba(255, 169, 0, 0.3) !important;
|
||||
.uni-datetime-picker--btn {
|
||||
background-color: $btn-green-color !important;
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
.uni-datetime-picker--btn:active {
|
||||
background-color: $btn-green-color-active !important;
|
||||
}
|
||||
|
||||
.green-bottom-btn:active {
|
||||
background-color: rgba(255, 169, 0, 0.3);
|
||||
color: white;
|
||||
}
|
||||
|
||||
:deep(.uniui-calendar) {
|
||||
.icon-calendar {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
:deep(.uni-date-editor--x) {
|
||||
.uni-date-editor--x {
|
||||
flex: 1 !important;
|
||||
background-color: #FAFAFA !important;
|
||||
border-radius: 2rpx !important;
|
||||
background-color: $bg-gray-input-color !important;
|
||||
border-radius: 15rpx !important;
|
||||
text-align: left !important;
|
||||
font-size: 12px !important;
|
||||
border: 1px solid #F0F0F0 !important;
|
||||
font-size: 28rpx !important;
|
||||
border: none !important;
|
||||
line-height: 40rpx !important;
|
||||
padding: 15rpx;
|
||||
}
|
||||
|
||||
:deep(.uni-date__x-input) {
|
||||
.uni-date__x-input {
|
||||
flex: 1 !important;
|
||||
background-color: #FAFAFA !important;
|
||||
border-radius: 2rpx !important;
|
||||
padding: 3px 8px !important;
|
||||
text-align: left !important;
|
||||
font-size: 12px !important;
|
||||
background-color: $bg-gray-input-color !important;
|
||||
font-size: 28rpx !important;
|
||||
line-height: 40rpx !important;
|
||||
height: auto !important;
|
||||
/* color: black; */
|
||||
color: $text-color !important;
|
||||
}
|
||||
|
||||
:deep(.icon-del-box) {
|
||||
|
143
uni.scss
143
uni.scss
@ -1,76 +1,75 @@
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
|
||||
/* 颜色变量 */
|
||||
|
||||
/* 行为相关颜色 */
|
||||
$uni-color-primary: #007aff;
|
||||
$uni-color-success: #4cd964;
|
||||
$uni-color-warning: #f0ad4e;
|
||||
$uni-color-error: #dd524d;
|
||||
|
||||
/* 文字基本颜色 */
|
||||
$uni-text-color:#333;//基本色
|
||||
$uni-text-color-inverse:#fff;//反色
|
||||
$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
|
||||
$uni-text-color-placeholder: #808080;
|
||||
$uni-text-color-disable:#c0c0c0;
|
||||
|
||||
/* 背景颜色 */
|
||||
$uni-bg-color:#ffffff;
|
||||
$uni-bg-color-grey:#f8f8f8;
|
||||
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
|
||||
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
|
||||
|
||||
/* 边框颜色 */
|
||||
$uni-border-color:#c8c7cc;
|
||||
|
||||
/* 尺寸变量 */
|
||||
|
||||
/* 文字尺寸 */
|
||||
$uni-font-size-sm:12px;
|
||||
$uni-font-size-base:14px;
|
||||
$uni-font-size-lg:16px;
|
||||
|
||||
/* 图片尺寸 */
|
||||
$uni-img-size-sm:20px;
|
||||
$uni-img-size-base:26px;
|
||||
$uni-img-size-lg:40px;
|
||||
|
||||
/* Border Radius */
|
||||
$uni-border-radius-sm: 2px;
|
||||
$uni-border-radius-base: 3px;
|
||||
$uni-border-radius-lg: 6px;
|
||||
$uni-border-radius-circle: 50%;
|
||||
|
||||
/* 水平间距 */
|
||||
$uni-spacing-row-sm: 5px;
|
||||
$uni-spacing-row-base: 10px;
|
||||
$uni-spacing-row-lg: 15px;
|
||||
|
||||
/* 垂直间距 */
|
||||
$uni-spacing-col-sm: 4px;
|
||||
$uni-spacing-col-base: 8px;
|
||||
$uni-spacing-col-lg: 12px;
|
||||
|
||||
/* 透明度 */
|
||||
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
|
||||
|
||||
/* 文章场景相关 */
|
||||
$uni-color-title: #2C405A; // 文章标题颜色
|
||||
$uni-font-size-title:20px;
|
||||
$uni-color-subtitle: #555555; // 二级标题颜色
|
||||
$uni-font-size-subtitle:26px;
|
||||
$uni-color-paragraph: #3F536E; // 文章段落颜色
|
||||
$uni-font-size-paragraph:15px;
|
||||
/* 颜色变量 */
|
||||
|
||||
/* 底部tabbar */
|
||||
$tabbar-normal-color: #515151;
|
||||
$tabbar-select-color: #FE9944;
|
||||
/* 我的页面账户信息背景 */
|
||||
$mine-page-upbox-color: #FFDBB4;
|
||||
$mine-page-upbox-color-light: #FFEDD2;
|
||||
$mine-page-downbox-color: #FFF0DE;
|
||||
$mine-page-downbox-color-light: #FEEBD0;
|
||||
/* 主题色 */
|
||||
$primary-color: #FFA900;
|
||||
$primary-color-active: #ffaa008e;
|
||||
$primary-color-light: #FFFAF1;
|
||||
/* 页面背景色 */
|
||||
$bg-top-color: #F0F0F0;
|
||||
$bg-bottom-color: #FFFFFF;
|
||||
/* 文字颜色 */
|
||||
$text-color: #333333;
|
||||
$text-brown-color: #42210B;
|
||||
$text-gray-hint-color: #9A9A9A;
|
||||
$text-gray-desc-color: #5c5c5c;
|
||||
$text-blue-color: #3270FF;
|
||||
/* 背景棕色 */
|
||||
$bg-brown-color: #42210B;
|
||||
$bg-gray-color: #FAFAFA;
|
||||
$bg-primary-deep-color: #FFA900;
|
||||
$bg-primary-shallow-color: #ffaa0017;
|
||||
$bg-red-color: #F7312A6B;
|
||||
$bg-green-color: #78e2846b;
|
||||
$bg-green-deep-color: #39C7C1;
|
||||
$bg-gray-deep-color: #CCCCCC;
|
||||
$bg-gray-status-light-color: #D5D5D5;
|
||||
$bg-green-status-deep-color: #4EAF79;
|
||||
$bg-green-status-light-color: #AFE5C7;
|
||||
$bg-red-deep-color: #F7312A;
|
||||
$bg-gray-shade-color: #00000025;
|
||||
$bg-gray-input-color: #F9FAFB;
|
||||
/* 按钮颜色 */
|
||||
$btn-cyan-color: #39C7C1;
|
||||
$btn-cyan-active: #39c7c08f;
|
||||
$btn-primary-color: #FFE5BC;
|
||||
$btn-primary-color-active: #FFE5BC79;
|
||||
$btn-green-color: #4EAF79;
|
||||
$btn-green-color-active: #4EAF7979;
|
||||
$btn-blue-color: #3270FF;
|
||||
$btn-blue-color-active: #3270FF79;
|
||||
$btn-red-color: #F7312A;
|
||||
$btn-red-color-active: #F7312A6B;
|
||||
$red-color: #FF0000;
|
||||
$red-color-light: #FF000079;
|
||||
$white-color: #FFFFFF;
|
||||
$black-color: #000000;
|
||||
$blue-color: #3270FF;
|
||||
$gray-color: #9c9c9c;
|
||||
$gray-bg-color: #efefef79;
|
||||
$green-color: #4EAF79;
|
||||
$green-color-light: #4EAF7979;
|
||||
$gray-color-light: #eeeeee;
|
||||
$divider-color: #F0F0F0;
|
||||
$page-padding: 30rpx;
|
Loading…
Reference in New Issue
Block a user