Browse Source

优化样式

master
DX 5 days ago
parent
commit
a02ff4cb24
  1. 8
      components/cs-emty/index.vue
  2. 4
      config.js
  3. 6
      pages/enterprise.vue
  4. 10
      pages/index.vue
  5. 2
      pages/login.vue
  6. 2
      sub/chat/index.vue
  7. 8
      sub/invite/addEnterprise.vue
  8. 271
      sub/task/detail.vue

8
components/cs-emty/index.vue

@ -1,5 +1,5 @@
<template> <template>
<view class="cs-empty" :style="{ marginTop: marginTop + 'rpx' }"> <view class="cs-empty" :style="{ marginTop: marginTop + 'rpx', height }">
<image <image
class="empty-image" class="empty-image"
src="/static/images/emty.png" src="/static/images/emty.png"
@ -23,6 +23,10 @@ export default {
marginTop: { marginTop: {
type: Number, type: Number,
default: 0 default: 0
},
height: {
type: String,
default: '856rpx'
} }
} }
} }
@ -35,7 +39,7 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background-color: #fff; background-color: #fff;
height: 856rpx;
border-radius: 24rpx; border-radius: 24rpx;
gap: 24rpx; gap: 24rpx;
.empty-image { .empty-image {

4
config.js

@ -2,8 +2,8 @@
module.exports = { module.exports = {
// baseUrl: 'http://188.188.5.188:48080', // baseUrl: 'http://188.188.5.188:48080',
// baseUrl: 'https://www.jzce.com', // baseUrl: 'https://www.jzce.com',
baseUrl: 'https://yxsthj.cn', // baseUrl: 'https://yxsthj.cn',
// baseUrl: 'http://188.188.3.232:48080', baseUrl: 'http://188.188.3.232:48080',
// baseUrl: 'http://localhost:48080', // baseUrl: 'http://localhost:48080',
baseApi: '/admin-api', baseApi: '/admin-api',
// 应用信息 // 应用信息

6
pages/enterprise.vue

@ -70,7 +70,9 @@
:src="enterprise.files[0].url" :src="enterprise.files[0].url"
shape="square" shape="square"
size="64" size="64"
v-if="enterprise.files.length > 0"
></u-avatar> ></u-avatar>
<view v-else style="min-width: 128rpx;height:128rpx; border-radius:8rpx; background-color: #f9f9f9"></view>
<view class="wd-flex wd-flex-col"> <view class="wd-flex wd-flex-col">
<text <text
class="wd-font-800 wd-text-15" class="wd-font-800 wd-text-15"
@ -120,7 +122,7 @@
待审核 待审核
</view> </view>
</view> </view>
<cs-emty v-if="list.length == 0"></cs-emty> <cs-emty marginTop="24" v-if="list.length == 0"></cs-emty>
<u-loadmore <u-loadmore
:status="load" :status="load"
marginTop="12" marginTop="12"
@ -272,7 +274,7 @@ export default {
this.queryEnterprise() this.queryEnterprise()
}, },
handleSearch(e) { handleSearch(e) {
if (e.detail && e.detail.length > 1) { if (e.detail && e.detail.length > 0) {
this.queryParams.pageNo = 1 // this.queryParams.pageNo = 1 //
this.queryParams.enterprisesName = e.detail // this.queryParams.enterprisesName = e.detail //
this.queryEnterprise() this.queryEnterprise()

10
pages/index.vue

@ -6,7 +6,7 @@
<van-dropdown-item <van-dropdown-item
:value="queryParams.region" :value="queryParams.region"
:options="dropOption.area" :options="dropOption.area"
title="按乡镇" title="按区域"
@change=" @change="
v => { v => {
querySelect(v, 'region') querySelect(v, 'region')
@ -34,6 +34,9 @@
:refresher-triggered="refresherTriggered" :refresher-triggered="refresherTriggered"
@refresherpulling="refresherpulling" @refresherpulling="refresherpulling"
> >
<view class="box row-1"> <view class="box row-1">
<view <view
class="wd-flex" class="wd-flex"
@ -80,7 +83,12 @@
<view style="color: #4b5675">企业数量</view> <view style="color: #4b5675">企业数量</view>
</view> </view>
</view> </view>
<cs-emty marginTop="0"
v-if="detail.enterpriseCount == 0"
height="288rpx"
></cs-emty>
<qiun-data-charts <qiun-data-charts
v-if="detail.enterpriseCount > 0"
type="ring" type="ring"
:opts="opts" :opts="opts"
:chartData="chartData" :chartData="chartData"

2
pages/login.vue

@ -115,7 +115,7 @@ export default {
} }
uni.switchTab({ uni.switchTab({
url: '/pages/owner' url: '/pages/index'
}) })
} }
} }

2
sub/chat/index.vue

@ -1,5 +1,5 @@
<template> <template>
<web-view src="https://yxsthj.cn/chat/313cf9e35628923a"></web-view> <web-view src="https://mb.yxsthj.cn/chat/313cf9e35628923a"></web-view>
<!-- <web-view src="https://chat.deepseek.com/"></web-view> --> <!-- <web-view src="https://chat.deepseek.com/"></web-view> -->
</template> </template>

8
sub/invite/addEnterprise.vue

@ -499,6 +499,7 @@ export default {
} }
}) })
const load = this.$util.loading('上传中...') const load = this.$util.loading('上传中...')
if (this.form.id) { if (this.form.id) {
updateEnterprise(data).then(res => { updateEnterprise(data).then(res => {
load.close() load.close()
@ -552,6 +553,13 @@ export default {
}) })
return false return false
} }
if (this.form.photo.length == 0) {
uni.showToast({
icon: 'none',
title: '请上传企业照片'
})
return false
}
return true return true
}, },
/** /**

271
sub/task/detail.vue

@ -1,11 +1,8 @@
<template> <template>
<cs-page> <cs-page>
<view <view class="detail-container" :style="{
class="detail-container"
:style="{
paddingBottom: isSelect.length > 0 ? '140rpx' : '40rpx' paddingBottom: isSelect.length > 0 ? '140rpx' : '40rpx'
}" }">
>
<view class="box detail"> <view class="box detail">
<text class="wd-font-800 wd-text-16" style="color: #071437"> <text class="wd-font-800 wd-text-16" style="color: #071437">
{{ detail.title }} {{ detail.title }}
@ -19,24 +16,14 @@
$dict.echoDicValue(dictMap.task_priority, detail.priority) $dict.echoDicValue(dictMap.task_priority, detail.priority)
}} }}
</view> </view>
<view <view v-for="(tag, index) in detail.tagList" :key="index" class="tag">
v-for="(tag, index) in detail.tagList"
:key="index"
class="tag"
>
{{ tag }} {{ tag }}
</view> </view>
</view> </view>
<view <view class="wd-flex wd-text-13" style="justify-content: space-between">
class="wd-flex wd-text-13"
style="justify-content: space-between"
>
<view class="wd-flex" style="align-items: center; gap: 8rpx"> <view class="wd-flex" style="align-items: center; gap: 8rpx">
<u-icon name="calendar" color="#17C653" size="16" /> <u-icon name="calendar" color="#17C653" size="16" />
<text <text class="wd-text-13" style="font-weight: bold; margin-right: 8rpx">
class="wd-text-13"
style="font-weight: bold; margin-right: 8rpx"
>
{{ {{
`${$util.formatDate( `${$util.formatDate(
detail.startDate, detail.startDate,
@ -47,54 +34,40 @@
</view> </view>
</view> </view>
<cs-text-more :value="detail.description" /> <cs-text-more :value="detail.description" />
<view class="file-list" v-if="files && files.length > 0">
<view class="file" v-for="(file, index) in files" :key="index" @click="openFile(file)"
style="cursor: pointer; width: 48%;">
<u-icon name="attach" color="#17C653" size="16" />
<text class="name" style="var(--LightMode-Grey-Grey-900, #071437);">{{ file.name }}</text>
</view>
</view>
<view class="audit"> <view class="audit">
<cs-dict-tag <cs-dict-tag :dict="dictMap.task_state" :value="detail.status"></cs-dict-tag>
:dict="dictMap.task_state"
:value="detail.status"
></cs-dict-tag>
</view> </view>
</view> </view>
<u-sticky> <u-sticky>
<view <view :class="[
:class="[
'options-container', 'options-container',
OptionsOffset.isTop ? 'isTop' : '' OptionsOffset.isTop ? 'isTop' : ''
]" ]" ref="optionRef" id="options">
ref="optionRef"
id="options"
>
<van-dropdown-menu active-color="#17C653" style="flex: 1"> <van-dropdown-menu active-color="#17C653" style="flex: 1">
<van-dropdown-item <van-dropdown-item v-if="showItem(['director'])" :value="queryParams.departmentId"
v-if="showItem(['director'])" :options="dropOption.dept" @change="
:value="queryParams.departmentId"
:options="dropOption.dept"
@change="
v => { v => {
querySelect(v, 'departmentId') querySelect(v, 'departmentId')
} }
" " />
/> <van-dropdown-item v-if="showItem(['queue', 'director'])" :value="queryParams.userId" use-before-toggle
<van-dropdown-item @before-toggle="getUserOption" :options="userList" @change="
v-if="showItem(['queue', 'director'])"
:value="queryParams.userId"
use-before-toggle
@before-toggle="getUserOption"
:options="userList"
@change="
v => { v => {
querySelect(v, 'userId') querySelect(v, 'userId')
} }
" " />
/> <van-dropdown-item :value="queryParams.Inspections_status" :options="dropOption.status" @change="
<van-dropdown-item
:value="queryParams.Inspections_status"
:options="dropOption.status"
@change="
v => { v => {
querySelect(v, 'inspectionsStatus') querySelect(v, 'inspectionsStatus')
} }
" " />
/>
</van-dropdown-menu> </van-dropdown-menu>
<view style="flex: 0 0 120rpx"> <view style="flex: 0 0 120rpx">
<text style="color: #17c653">{{ list.length }}</text> <text style="color: #17c653">{{ list.length }}</text>
@ -102,20 +75,11 @@
</view> </view>
</view> </view>
</u-sticky> </u-sticky>
<view <view class="record" v-for="record in list" :key="record.id" @tap="goRecord(record)">
class="record" <view :class="{
v-for="record in list"
:key="record.id"
@tap="goRecord(record)"
>
<view
:class="{
select: true, select: true,
isSelect: isSelect.includes(record.id) isSelect: isSelect.includes(record.id)
}" }" @tap.native.stop="select(record.id)" v-if="['3', null].includes(record.inspectionStatus)">
@tap.native.stop="select(record.id)"
v-if="['3', null].includes(record.inspectionStatus)"
>
<u-icon name="checkbox-mark" size="16" color="#fff"></u-icon> <u-icon name="checkbox-mark" size="16" color="#fff"></u-icon>
</view> </view>
<view class="disable" v-else></view> <view class="disable" v-else></view>
@ -123,8 +87,7 @@
<view class="name"> <view class="name">
{{ record.enterpriseName }} {{ record.enterpriseName }}
</view> </view>
<view <view style="
style="
font-size: 26rpx; font-size: 26rpx;
padding-right: 3rem; padding-right: 3rem;
margin-bottom: 4rpx; margin-bottom: 4rpx;
@ -132,44 +95,26 @@
text-overflow: ellipsis; text-overflow: ellipsis;
width: 528rpx; width: 528rpx;
overflow: hidden; overflow: hidden;
" ">
>
{{ record.enterpriseAddress }} {{ record.enterpriseAddress }}
</view> </view>
<view class="tagList" style="margin-top: 16rpx"> <view class="tagList" style="margin-top: 16rpx">
<view <view v-for="(item, index) in record.tagList" :key="index" class="tag">
v-for="(item, index) in record.tagList"
:key="index"
class="tag"
>
{{ item }} {{ item }}
</view> </view>
</view> </view>
</view> </view>
<view class="audit" v-show="record.inspectionStatus"> <view class="audit" v-show="record.inspectionStatus">
<cs-dict-tag <cs-dict-tag :dict="dictMap.Inspections_status" :value="record.inspectionStatus"></cs-dict-tag>
:dict="dictMap.Inspections_status"
:value="record.inspectionStatus"
></cs-dict-tag>
</view> </view>
</view> </view>
<u-loadmore <u-loadmore :status="load" marginTop="12" marginBottom="12" v-if="load != 'nomore'" />
:status="load"
marginTop="12"
marginBottom="12"
v-if="load != 'nomore'"
/>
<view class="btn-box" v-if="isSelect.length > 0"> <view class="btn-box" v-if="isSelect.length > 0">
<view class="confirm-btn" @tap="replay"> <view class="confirm-btn" @tap="replay">
已选择({{ isSelect.length }}) 已选择({{ isSelect.length }})
</view> </view>
</view> </view>
<u-modal <u-modal :show="model.show" closeOnClickOverlay @close="closeModel" borderRadius="32rpx">
:show="model.show"
closeOnClickOverlay
@close="closeModel"
borderRadius="32rpx"
>
<view class="wd-flex wd-flex-col" style="gap: 20px"> <view class="wd-flex wd-flex-col" style="gap: 20px">
<view class="header"> <view class="header">
<view class="row-1"> <view class="row-1">
@ -180,31 +125,17 @@
<view class="row-2">每次只能选择一人</view> <view class="row-2">每次只能选择一人</view>
</view> </view>
<view class="staff-list"> <view class="staff-list">
<view <view class="staff" v-for="staff in model.list" :key="staff.userId" :style="{
class="staff"
v-for="staff in model.list"
:key="staff.userId"
:style="{
'--select-color': '--select-color':
model.isSelect == staff.userId ? '#17c653' : '#f1f1f4' model.isSelect == staff.userId ? '#17c653' : '#f1f1f4'
}" }" @click="selectUser(staff.userId)">
@click="selectUser(staff.userId)" <u-avatar size="40" shape="circle" :src="staff.avatar"></u-avatar>
>
<u-avatar
size="40"
shape="circle"
:src="staff.avatar"
></u-avatar>
<view class="info"> <view class="info">
<view class="name">{{ staff.realName }}</view> <view class="name">{{ staff.realName }}</view>
<view class="dept">{{ staff.roleName[0] }}</view> <view class="dept">{{ staff.roleName[0] }}</view>
</view> </view>
<view class="isSelect"> <view class="isSelect">
<u-icon <u-icon name="checkbox-mark" size="16px" color="#fff"></u-icon>
name="checkbox-mark"
size="16px"
color="#fff"
></u-icon>
</view> </view>
</view> </view>
</view> </view>
@ -220,10 +151,19 @@
</template> </template>
<script> <script>
import { getDeptTree, getDictBatchByType } from '@/api/system/dict.js' import {
import { TaskApi } from '@/api/task/index.js' getDeptTree,
import { InspectionsApi } from '@/api/inspections/index.js' getDictBatchByType
import { getUserList } from '@/api/system/user.js' } from '@/api/system/dict.js'
import {
TaskApi
} from '@/api/task/index.js'
import {
InspectionsApi
} from '@/api/inspections/index.js'
import {
getUserList
} from '@/api/system/user.js'
export default { export default {
data() { data() {
return { return {
@ -232,6 +172,8 @@ export default {
id: '', id: '',
description: '' description: ''
}, },
//
files: [],
list: [], list: [],
// //
isShowAllText: false, isShowAllText: false,
@ -257,12 +199,10 @@ export default {
list: [], list: [],
isSelect: '' isSelect: ''
}, },
userList: [ userList: [{
{
value: '', value: '',
text: '按人员' text: '按人员'
} }],
],
// //
dropOption: { dropOption: {
dept: [], dept: [],
@ -292,6 +232,23 @@ export default {
this.reset() this.reset()
}, },
methods: { methods: {
openFile(file) {
uni.downloadFile({
url: file.url,
success: function (res) {
var filePath = res.tempFilePath;
uni.openDocument({
filePath: filePath,
showMenu: true,
success: function (res) {
console.log('打开文档成功');
}
});
}
});
},
getOptionOffset() { getOptionOffset() {
const query = uni.createSelectorQuery().in(this) const query = uni.createSelectorQuery().in(this)
query query
@ -319,8 +276,7 @@ export default {
dept: dept.data dept: dept.data
} }
this.dropOption = { this.dropOption = {
dept: [ dept: [{
{
value: '', value: '',
text: '按部门' text: '按部门'
}, },
@ -331,8 +287,7 @@ export default {
} }
}) })
], ],
status: [ status: [{
{
value: '', value: '',
text: '按状态' text: '按状态'
}, },
@ -377,7 +332,10 @@ export default {
text: d.label text: d.label
} }
}), }),
{ value: '', text: keyMap[key] } {
value: '',
text: keyMap[key]
}
] ]
}, },
querySelect(v, key) { querySelect(v, key) {
@ -390,6 +348,7 @@ export default {
async init() { async init() {
const res = await TaskApi.getDetail(this.detail.id) const res = await TaskApi.getDetail(this.detail.id)
this.detail = res.data this.detail = res.data
this.files = res.data.fileList
}, },
async getUser() { async getUser() {
const res = await getUserList(this.queryParams.departmentId) const res = await getUserList(this.queryParams.departmentId)
@ -405,7 +364,9 @@ export default {
icon: 'loading' icon: 'loading'
}) })
this.load = 'loading' this.load = 'loading'
const { data } = await InspectionsApi.getList({ const {
data
} = await InspectionsApi.getList({
...this.queryParams, ...this.queryParams,
taskId: this.detail.id taskId: this.detail.id
}) })
@ -414,13 +375,15 @@ export default {
if (this.list.length == data.total) { if (this.list.length == data.total) {
this.load = 'nomore' this.load = 'nomore'
} }
uni.stopPullDownRefresh() uni.stopPullDownRefresh()
uni.hideToast() uni.hideToast()
}, },
getUserOption({ detail }) { getUserOption({
detail
}) {
this.getUser().then(res => { this.getUser().then(res => {
this.userList = [ this.userList = [{
{
value: '', value: '',
text: '按人员' text: '按人员'
}, },
@ -520,18 +483,21 @@ export default {
.detail-container { .detail-container {
position: relative; position: relative;
color: $cs-color-grey; color: $cs-color-grey;
.box { .box {
margin: 12px; margin: 12px;
background-color: #fff; background-color: #fff;
border-radius: $cs-border-radius; border-radius: $cs-border-radius;
padding: 16px; padding: 16px;
} }
.detail { .detail {
display: flex; display: flex;
flex-flow: column nowrap; flex-flow: column nowrap;
gap: 12px; gap: 12px;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
.audit { .audit {
position: absolute; position: absolute;
right: 0; right: 0;
@ -539,7 +505,38 @@ export default {
transform: translateX(58rpx) translateY(24rpx) rotateZ(45deg); transform: translateX(58rpx) translateY(24rpx) rotateZ(45deg);
transform-origin: 50% 50%; transform-origin: 50% 50%;
} }
.file-list {
border-radius: 4px;
background: var(--LightMode-Grey-Grey-100, #F9F9F9);
padding: 8rpx 16rpx;
display: flex;
flex-wrap: wrap;
gap: 24rpx;
width: 100%;
.file {
display: flex;
flex-flow:row nowarp;
gap:8rpx;
.name {
color: var(--LightMode-Grey-Grey-900, #071437);
font-family: "PingFang SC";
font-size: 24rpx;
font-style: normal;
font-weight: 400;
line-height: normal;
text-decoration-line: underline;
text-decoration-style: solid;
text-decoration-skip-ink: auto;
text-decoration-thickness: auto;
text-underline-offset: auto;
text-underline-position: from-font;
}
}
} }
}
.record { .record {
background-color: #fff; background-color: #fff;
display: flex; display: flex;
@ -551,6 +548,7 @@ export default {
margin-top: 0; margin-top: 0;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
.audit { .audit {
position: absolute; position: absolute;
right: 0; right: 0;
@ -558,6 +556,7 @@ export default {
transform-origin: 50% 50%; transform-origin: 50% 50%;
transform: translateX(64rpx) translateY(18rpx) rotateZ(45deg); transform: translateX(64rpx) translateY(18rpx) rotateZ(45deg);
} }
.select { .select {
width: 44rpx; width: 44rpx;
height: 44rpx; height: 44rpx;
@ -569,6 +568,7 @@ export default {
transition: 0.2s all; transition: 0.2s all;
margin-right: 32rpx; margin-right: 32rpx;
} }
.disable { .disable {
width: 44rpx; width: 44rpx;
height: 44rpx; height: 44rpx;
@ -576,6 +576,7 @@ export default {
margin-right: 32rpx; margin-right: 32rpx;
border-radius: 100%; border-radius: 100%;
position: relative; position: relative;
&::after { &::after {
content: ''; content: '';
position: absolute; position: absolute;
@ -585,11 +586,14 @@ export default {
transform: translateX(calc(50% - 2rpx)) rotateZ(45deg); transform: translateX(calc(50% - 2rpx)) rotateZ(45deg);
} }
} }
.isSelect { .isSelect {
background-color: $cs-color-main; background-color: $cs-color-main;
} }
.info { .info {
font-size: 26rpx; font-size: 26rpx;
.name { .name {
font-size: 32rpx; font-size: 32rpx;
font-weight: 600; font-weight: 600;
@ -601,6 +605,7 @@ export default {
overflow: hidden; overflow: hidden;
} }
} }
&:active { &:active {
background-color: $cs-color-touch; background-color: $cs-color-touch;
} }
@ -616,6 +621,7 @@ export default {
bottom: 0; bottom: 0;
left: 0; left: 0;
} }
.confirm-btn { .confirm-btn {
background-color: $cs-color-main; background-color: $cs-color-main;
padding: 12px 40px; padding: 12px 40px;
@ -624,25 +630,30 @@ export default {
font-weight: 600; font-weight: 600;
border-radius: 120px; border-radius: 120px;
} }
.header { .header {
display: flex; display: flex;
flex-flow: column nowrap; flex-flow: column nowrap;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
gap: 4px; gap: 4px;
.row-1 { .row-1 {
font-size: 16px; font-size: 16px;
font-weight: 600; font-weight: 600;
color: #071437; color: #071437;
.num { .num {
color: $cs-color-main; color: $cs-color-main;
padding: 0 4px; padding: 0 4px;
} }
} }
.row-2 { .row-2 {
color: $cs-color-grey; color: $cs-color-grey;
} }
} }
.staff-list { .staff-list {
width: 70vw; width: 70vw;
display: flex; display: flex;
@ -650,6 +661,7 @@ export default {
gap: 12px; gap: 12px;
max-height: 30vh; max-height: 30vh;
overflow-y: scroll; overflow-y: scroll;
.staff { .staff {
width: calc(50% - 6px); width: calc(50% - 6px);
padding: 12px; padding: 12px;
@ -658,26 +670,27 @@ export default {
position: relative; position: relative;
gap: 8px; gap: 8px;
display: flex; display: flex;
.info { .info {
.name { .name {
font-size: 30rpx; font-size: 30rpx;
font-weight: bold; font-weight: bold;
} }
.dept { .dept {
color: $cs-color-grey; color: $cs-color-grey;
} }
} }
.isSelect { .isSelect {
position: absolute; position: absolute;
right: 0; right: 0;
top: 0; top: 0;
width: 30px; width: 30px;
height: 30px; height: 30px;
background-image: linear-gradient( background-image: linear-gradient(45deg,
45deg,
rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 50%,
var(--select-color, #f1f1f4) 50% var(--select-color, #f1f1f4) 50%);
);
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
align-items: flex-start; align-items: flex-start;
@ -685,6 +698,7 @@ export default {
} }
} }
} }
.options-container { .options-container {
overflow: hidden; overflow: hidden;
margin: 12px; margin: 12px;
@ -698,23 +712,28 @@ export default {
background-color: #fff; background-color: #fff;
border-bottom: 1px solid #f1f1f4; border-bottom: 1px solid #f1f1f4;
color: #071437; color: #071437;
::v-deep .van-dropdown-menu { ::v-deep .van-dropdown-menu {
background-color: transparent; background-color: transparent;
box-shadow: none; box-shadow: none;
--dropdown-menu-title-font-size: 13px; --dropdown-menu-title-font-size: 13px;
--dropdown-menu-title-text-color: #071437; --dropdown-menu-title-text-color: #071437;
.van-dropdown-menu__item { .van-dropdown-menu__item {
flex: 0; flex: 0;
.van-dropdown-menu__title { .van-dropdown-menu__title {
width: 80px; width: 80px;
} }
} }
} }
} }
.isTop { .isTop {
margin: 12px 0; margin: 12px 0;
border-radius: 0px; border-radius: 0px;
} }
::v-deep .u-popup__content { ::v-deep .u-popup__content {
border-radius: 32rpx; border-radius: 32rpx;
} }

Loading…
Cancel
Save