12 changed files with 583 additions and 192 deletions
@ -1,187 +1,186 @@
|
||||
{ |
||||
"name" : "货无忧", |
||||
"appid" : "__UNI__EB22F37", |
||||
"description" : "", |
||||
"versionName" : "1.0.32", |
||||
"versionCode" : 1032, |
||||
"transformPx" : false, |
||||
/* 5+App特有相关 */ |
||||
"app-plus" : { |
||||
// "custom":false, |
||||
"usingComponents" : true, |
||||
"nvueStyleCompiler" : "uni-app", |
||||
"compilerVersion" : 3, |
||||
"splashscreen" : { |
||||
"alwaysShowBeforeRender" : true, |
||||
"waiting" : true, |
||||
"autoclose" : true, |
||||
"delay" : 0 |
||||
}, |
||||
/* 模块配置 */ |
||||
"modules" : { |
||||
"Bluetooth" : {}, |
||||
"Barcode" : {}, |
||||
"Camera" : {}, |
||||
"Geolocation" : {} |
||||
}, |
||||
/* 应用发布信息 */ |
||||
"distribute" : { |
||||
/* android打包配置 */ |
||||
"android" : { |
||||
"permissions" : [ |
||||
"<uses-feature android:name=\"android.hardware.camera\"/>", |
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", |
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>", |
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", |
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", |
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", |
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>", |
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", |
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" |
||||
] |
||||
}, |
||||
/* ios打包配置 */ |
||||
"ios" : { |
||||
"dSYMs" : false, |
||||
"idfa" : false |
||||
}, |
||||
/* SDK配置 */ |
||||
"sdkConfigs" : { |
||||
"geolocation" : { |
||||
"amap" : { |
||||
"__platform__" : [ "android" ], |
||||
"appkey_ios" : "f5577fdddf4f68f92bbde932e9e35bd6", |
||||
"appkey_android" : "f5577fdddf4f68f92bbde932e9e35bd6" |
||||
} |
||||
}, |
||||
"ad" : {} |
||||
}, |
||||
"splashscreen" : { |
||||
"androidStyle" : "common", |
||||
"useOriginalMsgbox" : false, |
||||
"iosStyle" : "common" |
||||
}, |
||||
"icons" : { |
||||
"android" : { |
||||
"hdpi" : "unpackage/res/icons/72x72.png", |
||||
"xhdpi" : "unpackage/res/icons/96x96.png", |
||||
"xxhdpi" : "unpackage/res/icons/144x144.png", |
||||
"xxxhdpi" : "unpackage/res/icons/192x192.png" |
||||
}, |
||||
"ios" : { |
||||
"appstore" : "unpackage/res/icons/1024x1024.png", |
||||
"ipad" : { |
||||
"app" : "unpackage/res/icons/76x76.png", |
||||
"app@2x" : "unpackage/res/icons/152x152.png", |
||||
"notification" : "unpackage/res/icons/20x20.png", |
||||
"notification@2x" : "unpackage/res/icons/40x40.png", |
||||
"proapp@2x" : "unpackage/res/icons/167x167.png", |
||||
"settings" : "unpackage/res/icons/29x29.png", |
||||
"settings@2x" : "unpackage/res/icons/58x58.png", |
||||
"spotlight" : "unpackage/res/icons/40x40.png", |
||||
"spotlight@2x" : "unpackage/res/icons/80x80.png" |
||||
}, |
||||
"iphone" : { |
||||
"app@2x" : "unpackage/res/icons/120x120.png", |
||||
"app@3x" : "unpackage/res/icons/180x180.png", |
||||
"notification@2x" : "unpackage/res/icons/40x40.png", |
||||
"notification@3x" : "unpackage/res/icons/60x60.png", |
||||
"settings@2x" : "unpackage/res/icons/58x58.png", |
||||
"settings@3x" : "unpackage/res/icons/87x87.png", |
||||
"spotlight@2x" : "unpackage/res/icons/80x80.png", |
||||
"spotlight@3x" : "unpackage/res/icons/120x120.png" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"nativePlugins" : { |
||||
"MT-TTS" : { |
||||
"__plugin_info__" : { |
||||
"name" : "MT-TTS语音合成", |
||||
"description" : "安卓tts语音合成", |
||||
"platforms" : "Android", |
||||
"url" : "", |
||||
"android_package_name" : "", |
||||
"ios_bundle_id" : "", |
||||
"isCloud" : false, |
||||
"bought" : -1, |
||||
"pid" : "", |
||||
"parameters" : {} |
||||
} |
||||
}, |
||||
"Sunmi-Print-Inner" : { |
||||
"__plugin_info__" : { |
||||
"name" : "Sunmi-Print-Inner", |
||||
"description" : "商米打印服务uniapp插件", |
||||
"platforms" : "Android", |
||||
"url" : "", |
||||
"android_package_name" : "", |
||||
"ios_bundle_id" : "", |
||||
"isCloud" : false, |
||||
"bought" : -1, |
||||
"pid" : "", |
||||
"parameters" : {} |
||||
} |
||||
}, |
||||
"LcPrinter" : { |
||||
"__plugin_info__" : { |
||||
"name" : "LcPrinter", |
||||
"description" : "打印插件", |
||||
"platforms" : "Android", |
||||
"url" : "", |
||||
"android_package_name" : "", |
||||
"ios_bundle_id" : "", |
||||
"isCloud" : false, |
||||
"bought" : -1, |
||||
"pid" : "", |
||||
"parameters" : {} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
/* 快应用特有相关 */ |
||||
"quickapp" : {}, |
||||
/* 小程序特有相关 */ |
||||
"mp-weixin" : { |
||||
"appid" : "wxedb0d10ea46a0113", |
||||
"setting" : { |
||||
"urlCheck" : false, |
||||
"es6" : false, |
||||
"ignoreDevUnusedFiles" : false, |
||||
"lazyCodeLoading" : "requiredComponents", |
||||
"minified" : true |
||||
}, |
||||
"usingComponents" : true, |
||||
"permission" : { |
||||
"scope.userFuzzyLocation" : { |
||||
"desc" : "你的位置信息将用于小程序位置接口的效果展示" |
||||
}, |
||||
"scope.userLocation" : { |
||||
"desc" : "你的位置信息将用于小程序位置接口的效果展示" |
||||
} |
||||
}, |
||||
"requiredPrivateInfos" : [ "getLocation" ] |
||||
}, |
||||
"mp-alipay" : { |
||||
"usingComponents" : true |
||||
}, |
||||
"mp-baidu" : { |
||||
"usingComponents" : true |
||||
}, |
||||
"mp-toutiao" : { |
||||
"usingComponents" : true |
||||
}, |
||||
"uniStatistics" : { |
||||
"enable" : false |
||||
}, |
||||
"vueVersion" : "3" |
||||
"name": "货无忧", |
||||
"appid": "__UNI__EB22F37", |
||||
"description": "", |
||||
"versionName": "1.0.32", |
||||
"versionCode": 1032, |
||||
"transformPx": false, |
||||
/* 5+App特有相关 */ |
||||
"app-plus": { |
||||
// "custom":false, |
||||
"usingComponents": true, |
||||
"nvueStyleCompiler": "uni-app", |
||||
"compilerVersion": 3, |
||||
"splashscreen": { |
||||
"alwaysShowBeforeRender": true, |
||||
"waiting": true, |
||||
"autoclose": true, |
||||
"delay": 0 |
||||
}, |
||||
/* 模块配置 */ |
||||
"modules": { |
||||
"Bluetooth": {}, |
||||
"Barcode": {}, |
||||
"Camera": {}, |
||||
"Geolocation": {} |
||||
}, |
||||
/* 应用发布信息 */ |
||||
"distribute": { |
||||
/* android打包配置 */ |
||||
"android": { |
||||
"permissions": [ |
||||
"<uses-feature android:name=\"android.hardware.camera\"/>", |
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", |
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>", |
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", |
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", |
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", |
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>", |
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>", |
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", |
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" |
||||
] |
||||
}, |
||||
/* ios打包配置 */ |
||||
"ios": { |
||||
"dSYMs": false, |
||||
"idfa": false |
||||
}, |
||||
/* SDK配置 */ |
||||
"sdkConfigs": { |
||||
"geolocation": { |
||||
"amap": { |
||||
"__platform__": ["android"], |
||||
"appkey_ios": "f5577fdddf4f68f92bbde932e9e35bd6", |
||||
"appkey_android": "f5577fdddf4f68f92bbde932e9e35bd6" |
||||
} |
||||
}, |
||||
"ad": {} |
||||
}, |
||||
"splashscreen": { |
||||
"androidStyle": "common", |
||||
"useOriginalMsgbox": false, |
||||
"iosStyle": "common" |
||||
}, |
||||
"icons": { |
||||
"android": { |
||||
"hdpi": "unpackage/res/icons/72x72.png", |
||||
"xhdpi": "unpackage/res/icons/96x96.png", |
||||
"xxhdpi": "unpackage/res/icons/144x144.png", |
||||
"xxxhdpi": "unpackage/res/icons/192x192.png" |
||||
}, |
||||
"ios": { |
||||
"appstore": "unpackage/res/icons/1024x1024.png", |
||||
"ipad": { |
||||
"app": "unpackage/res/icons/76x76.png", |
||||
"app@2x": "unpackage/res/icons/152x152.png", |
||||
"notification": "unpackage/res/icons/20x20.png", |
||||
"notification@2x": "unpackage/res/icons/40x40.png", |
||||
"proapp@2x": "unpackage/res/icons/167x167.png", |
||||
"settings": "unpackage/res/icons/29x29.png", |
||||
"settings@2x": "unpackage/res/icons/58x58.png", |
||||
"spotlight": "unpackage/res/icons/40x40.png", |
||||
"spotlight@2x": "unpackage/res/icons/80x80.png" |
||||
}, |
||||
"iphone": { |
||||
"app@2x": "unpackage/res/icons/120x120.png", |
||||
"app@3x": "unpackage/res/icons/180x180.png", |
||||
"notification@2x": "unpackage/res/icons/40x40.png", |
||||
"notification@3x": "unpackage/res/icons/60x60.png", |
||||
"settings@2x": "unpackage/res/icons/58x58.png", |
||||
"settings@3x": "unpackage/res/icons/87x87.png", |
||||
"spotlight@2x": "unpackage/res/icons/80x80.png", |
||||
"spotlight@3x": "unpackage/res/icons/120x120.png" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"nativePlugins": { |
||||
"MT-TTS": { |
||||
"__plugin_info__": { |
||||
"name": "MT-TTS语音合成", |
||||
"description": "安卓tts语音合成", |
||||
"platforms": "Android", |
||||
"url": "", |
||||
"android_package_name": "", |
||||
"ios_bundle_id": "", |
||||
"isCloud": false, |
||||
"bought": -1, |
||||
"pid": "", |
||||
"parameters": {} |
||||
} |
||||
}, |
||||
"Sunmi-Print-Inner": { |
||||
"__plugin_info__": { |
||||
"name": "Sunmi-Print-Inner", |
||||
"description": "商米打印服务uniapp插件", |
||||
"platforms": "Android", |
||||
"url": "", |
||||
"android_package_name": "", |
||||
"ios_bundle_id": "", |
||||
"isCloud": false, |
||||
"bought": -1, |
||||
"pid": "", |
||||
"parameters": {} |
||||
} |
||||
}, |
||||
"LcPrinter": { |
||||
"__plugin_info__": { |
||||
"name": "LcPrinter", |
||||
"description": "打印插件", |
||||
"platforms": "Android", |
||||
"url": "", |
||||
"android_package_name": "", |
||||
"ios_bundle_id": "", |
||||
"isCloud": false, |
||||
"bought": -1, |
||||
"pid": "", |
||||
"parameters": {} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
/* 快应用特有相关 */ |
||||
"quickapp": {}, |
||||
/* 小程序特有相关 */ |
||||
"mp-weixin": { |
||||
"appid": "wxedb0d10ea46a0113", |
||||
"setting": { |
||||
"urlCheck": false, |
||||
"es6": false, |
||||
"ignoreDevUnusedFiles": false, |
||||
"lazyCodeLoading": "requiredComponents", |
||||
"minified": true |
||||
}, |
||||
"usingComponents": true, |
||||
"permission": { |
||||
"scope.userFuzzyLocation": { |
||||
"desc": "你的位置信息将用于小程序位置接口的效果展示" |
||||
}, |
||||
"scope.userLocation": { |
||||
"desc": "你的位置信息将用于小程序位置接口的效果展示" |
||||
} |
||||
}, |
||||
"requiredPrivateInfos": ["getLocation"] |
||||
}, |
||||
"mp-alipay": { |
||||
"usingComponents": true |
||||
}, |
||||
"mp-baidu": { |
||||
"usingComponents": true |
||||
}, |
||||
"mp-toutiao": { |
||||
"usingComponents": true |
||||
}, |
||||
"uniStatistics": { |
||||
"enable": false |
||||
}, |
||||
"vueVersion": "3" |
||||
} |
||||
// "custom":false, |
||||
/* 模块配置 */ |
||||
|
||||
/* 模块配置 */ |
@ -0,0 +1,275 @@
|
||||
<template> |
||||
<view class="container"> |
||||
<u-navbar title="安全设置" bgColor='#D3832A' leftIconColor='#ffffff' titleStyle='color:#ffffff' placeholder |
||||
:autoBack="true" leftIconSize='35'></u-navbar> |
||||
<view class="list"> |
||||
<!-- 设置密码 --> |
||||
<view class="list_item" style="display: flex;" @click="showEditPwd"> |
||||
<view class="uni-list-cell-left"> |
||||
<u-icon class="margin-right-10" name="setting-fill" color="#47beff"></u-icon> |
||||
<view> |
||||
设置密码: |
||||
</view> |
||||
</view> |
||||
<u-icon name="arrow-right" color="#000"></u-icon> |
||||
</view> |
||||
</view> |
||||
</view> |
||||
|
||||
<!-- 弹出层 -- 设置密码 --> |
||||
<PopUp ref="EditPwdPop"> |
||||
<!-- 原密码 --> |
||||
<view class="flex-c-sb"> |
||||
<view class="EditPwdPop-title"> |
||||
原密码: |
||||
</view> |
||||
<u-input placeholder="原密码" border="none" :input="handleTrim('oldPwd')" v-model="editPwdForm.oldPwd" |
||||
:password="!ShowPwdObj.oldPwd" clearable> |
||||
<template #suffix> |
||||
<view @click="isShowPwd('oldPwd')"> |
||||
<u-icon v-if="ShowPwdObj.oldPwd" name="eye-off" size="40"></u-icon> |
||||
<u-icon v-else name="eye-fill" size="40"></u-icon> |
||||
</view> |
||||
</template> |
||||
</u-input> |
||||
</view> |
||||
|
||||
<!-- 新密码 --> |
||||
<view class="flex-c-sb"> |
||||
<view class="EditPwdPop-title"> |
||||
新密码: |
||||
</view> |
||||
<u-input placeholder="新密码" border="none" :input="handleTrim('newPwd1')" |
||||
onkeypress="javascript:if(event.keyCode == 32)event.returnValue = false;" v-model="editPwdForm.newPwd1" |
||||
:password="!ShowPwdObj.newPwd1" clearable> |
||||
<template #suffix> |
||||
<view @click="isShowPwd('newPwd1')"> |
||||
<u-icon v-if="ShowPwdObj.newPwd1" name="eye-off" size="40"></u-icon> |
||||
<u-icon v-else name="eye-fill" size="40"></u-icon> |
||||
</view> |
||||
</template> |
||||
</u-input> |
||||
</view> |
||||
|
||||
<!-- 确认新密码 --> |
||||
<view class="flex-c-sb"> |
||||
<view class="EditPwdPop-title"> |
||||
确认新密码: |
||||
</view> |
||||
<u-input placeholder="确认新密码" border="none" :input="handleTrim('newPwd2')" v-model.trim="editPwdForm.newPwd2" |
||||
:password="!ShowPwdObj.newPwd2" clearable> |
||||
<template #suffix> |
||||
<view @click="isShowPwd('newPwd2')"> |
||||
<u-icon v-if="ShowPwdObj.newPwd2" name="eye-off" size="40"></u-icon> |
||||
<u-icon v-else name="eye-fill" size="40"></u-icon> |
||||
</view> |
||||
</template> |
||||
</u-input> |
||||
</view> |
||||
|
||||
</PopUp> |
||||
</template> |
||||
|
||||
<script lang="ts" setup> |
||||
import { |
||||
onShow, |
||||
onLoad, |
||||
onHide, |
||||
onPullDownRefresh |
||||
} from '@dcloudio/uni-app' |
||||
import { reactive, ref, toRefs } from 'vue'; |
||||
import { editPassword } from '@/api/user.js'; |
||||
import { |
||||
hexMD5 |
||||
} from '@/utils/md5.js' |
||||
|
||||
onPullDownRefresh(() => { |
||||
const timer = setTimeout(() => { |
||||
// 关闭下拉刷新 |
||||
uni.stopPullDownRefresh() |
||||
clearTimeout(timer) |
||||
}, 500) |
||||
}) |
||||
|
||||
const details = reactive({ |
||||
// |
||||
scanStateList: [], |
||||
// 选中的索引 -- 默认为关闭 |
||||
scanStateChooseIndex: 0 |
||||
}) |
||||
|
||||
// 组件实例 |
||||
/** 修改密码 */ |
||||
const EditPwdPop = ref() |
||||
|
||||
const ShowPwdObj = reactive({ |
||||
oldPwd: false, |
||||
newPwd1: false, |
||||
newPwd2: false, |
||||
}) |
||||
|
||||
const editPwdForm = reactive({ |
||||
oldPwd: '', |
||||
newPwd1: '', |
||||
newPwd2: '', |
||||
}) |
||||
|
||||
/** 退出登录 */ |
||||
function removeall() { |
||||
const res = uni.getStorageInfoSync(); |
||||
res.keys.map(item => { |
||||
if (item == 'loginuser' || item == 'HistoryDate' || item == 'setip' || item == 'checkname' || item.indexOf('IMAGE_CACHE_INFO') != -1) { |
||||
return |
||||
} |
||||
uni.removeStorageSync(item) |
||||
}) |
||||
uni.reLaunch({ |
||||
url: '/pages/login/login' |
||||
}) |
||||
console.log(res.currentSize); |
||||
console.log(String(res.limitSize)); |
||||
} |
||||
|
||||
/** 显示设置密码弹窗 */ |
||||
const showEditPwd = () => { |
||||
EditPwdPop.value.setDetails({ |
||||
title: '设置密码', |
||||
showPopUp: true, |
||||
async success() { |
||||
console.log('editPwdForm :>> ', editPwdForm); |
||||
let _isReturn = false |
||||
// 循环验证密码是否符合规则 |
||||
for (let key in editPwdForm) { |
||||
if (editPwdForm[key].length < 6) { |
||||
_isReturn = true |
||||
uni.showToast({ |
||||
title: '请输入6位以上密码', |
||||
icon: 'none' |
||||
}) |
||||
// 退出循环 |
||||
break |
||||
} |
||||
} |
||||
|
||||
if (_isReturn) return |
||||
|
||||
// 原密码 |
||||
let { password } = <{ password : string; tenantId : string; username : string }>uni.getStorageSync('loginuser') |
||||
if (editPwdForm.oldPwd !== password) { |
||||
uni.showToast({ |
||||
title: '密码与原密码不一致', |
||||
icon: 'none' |
||||
}) |
||||
return |
||||
} |
||||
|
||||
// 两次密码比对 |
||||
if (editPwdForm.newPwd1 !== editPwdForm.newPwd2) { |
||||
uni.showToast({ |
||||
title: '确认密码与新密码不一致', |
||||
icon: 'none' |
||||
}) |
||||
return |
||||
} |
||||
|
||||
/** 加密密码 */ |
||||
const submitData = { |
||||
oldPassword: hexMD5(editPwdForm.oldPwd), |
||||
newPassword: hexMD5(editPwdForm.newPwd1), |
||||
newPassword1: hexMD5(editPwdForm.newPwd2), |
||||
} |
||||
|
||||
const response = await editPassword(submitData) |
||||
|
||||
console.log('response :>> ', response); |
||||
if (response.msg) uni.showToast({ |
||||
title: response.msg, |
||||
icon: 'none' |
||||
}) |
||||
if (response.code !== 200) return |
||||
removeall() |
||||
} |
||||
}) |
||||
} |
||||
|
||||
/** 处理文本输入 -- 去除收尾空格 */ |
||||
const handleTrim = (item) => { |
||||
editPwdForm[item] = uni.$u.trim(editPwdForm[item].trim(), 'all') |
||||
} |
||||
|
||||
/** 是否显示密码 */ |
||||
const isShowPwd = (item) => { |
||||
ShowPwdObj[item] = !ShowPwdObj[item] |
||||
} |
||||
|
||||
const { } = toRefs(details) |
||||
</script> |
||||
|
||||
<style lang="scss" scoped> |
||||
.container { |
||||
width: 100vw; |
||||
height: 100vh; |
||||
// background: #fff; |
||||
} |
||||
|
||||
.list {} |
||||
|
||||
.list_item { |
||||
display: flex; |
||||
justify-content: space-between; |
||||
padding: 20upx; |
||||
border-bottom: 2upx solid #eee; |
||||
background: #fff; |
||||
position: relative; |
||||
|
||||
.uni-list-cell-db { |
||||
position: absolute; |
||||
top: 0; |
||||
left: 0; |
||||
padding: 20upx; |
||||
width: 100%; |
||||
height: 100%; |
||||
text-align: right; |
||||
box-sizing: border-box; |
||||
} |
||||
|
||||
&:last-child { |
||||
border-bottom: 0px; |
||||
} |
||||
|
||||
.uni-list-cell-left { |
||||
display: inline-flex; |
||||
} |
||||
} |
||||
|
||||
.margin-right-10 { |
||||
margin-right: 10upx; |
||||
} |
||||
|
||||
// 修改密码弹窗 |
||||
.EditPwdPop-title { |
||||
position: relative; |
||||
width: 200upx; |
||||
flex: none; |
||||
|
||||
&::after { |
||||
right: 20upx; |
||||
top: 50%; |
||||
transform: translateY(-50%); |
||||
position: absolute; |
||||
content: ''; |
||||
display: block; |
||||
width: 2upx; |
||||
height: 40upx; |
||||
background: #000; |
||||
} |
||||
} |
||||
|
||||
.flex-c-sb { |
||||
display: flex; |
||||
align-items: center; |
||||
margin: 20upx 0 10upx; |
||||
border-bottom: 1upx solid #aaa; |
||||
padding: 20upx 0 10upx; |
||||
} |
||||
</style> |
Loading…
Reference in new issue