Browse Source

采购上架弹出扫描页面2024/7/8 14:26:20

hella_vue3
zhang_li 3 months ago
parent
commit
48e2bd6cbc
  1. 4
      src/mycomponents/scan/winScanPackAndLocation.vue
  2. 2
      src/pages/index/index.vue
  3. 7
      src/pages/issue/coms/comScanIssuePack.vue
  4. 18
      src/pages/login/index.vue
  5. 4
      src/pages/package/record/overPackageRecord.vue
  6. 11
      src/pages/purchaseReceipt/job/receiptDetail.vue
  7. 1
      src/pages/putaway/job/putawayJob.vue
  8. 139
      src/pages/query/location.vue
  9. 546
      src/uni_modules/uni-combox/components/uni-combox/uni-combox.vue

4
src/mycomponents/scan/winScanPackAndLocation.vue

@ -10,7 +10,7 @@
</view>
</view>
<view class="uni-flex uni-row" style="align-items: center; background-color: #fff; margin-left: 20rpx; margin-right: 20rpx; border-radius: 8rpx; height: 30px">
<view class="uni-center" style="width: 25%"> 来源库位 </view>
<view class="uni-center" style="width: 25%; font-size: 40rpx"> 来源库位 </view>
<!-- style="width: 75%;padding: 8rpx" -->
<view class="">
<!-- <input v-model="fromLocationCode" placeholder="请扫描来源库位" :focus="locationOnFocus"
@ -20,7 +20,7 @@
<uni-combox :candidates="fromLocationList" v-model="fromLocationCode" placeholder="请扫描来源库位" @confirm="handleConfirm" style="height: 30rpx; border: 1px solid #fff"></uni-combox>
</view>
<view v-else>
<text style="padding: 5px">
<text style="padding: 5px; font-size: 50rpx">
{{ fromLocationCode }}
</text>
</view>

2
src/pages/index/index.vue

@ -351,7 +351,7 @@ const getDictory = () => {
console.log('包装规格获取失败', res)
})
const switchCode = 'FgPutawayLocationCodeValidate,SemiPutawayLocationCodeValidate,PurchasePutawayToLocationCodeValidate,IssueToLocationCodeValidate,fgProductReceipCommitValidate,purchasereceiptPrintPDA'
const switchCode = 'FgPutawayLocationCodeValidate,SemiPutawayLocationCodeValidate,PurchasePutawayToLocationCodeValidate,IssueToLocationCodeValidate,fgProductReceipCommitValidate,purchasereceiptPrintPDA,purchaseReceiptLocationCodeValidate'
getSwitchByCode(switchCode)
.then((res) => {

7
src/pages/issue/coms/comScanIssuePack.vue

@ -11,9 +11,9 @@
</view>
</view>
<view class="uni-flex uni-row" style="align-items: center; background-color: #fff; margin-left: 20rpx; margin-right: 20rpx; margin-top: 8rpx; border-radius: 8rpx">
<view class="uni-center" style="width: 25%"> 来源库位 </view>
<view class="uni-center" style="width: 25%; font-size: 35rpx"> 来源库位 </view>
<view class="" style="width: 75%; padding: 8rpx">
<uni-combox :candidates="fromLocationList" v-model="fromLocationCode" placeholder="请选择库位" @confirm="fromLocationUpdate"></uni-combox>
<uni-combox class="my-combox" :candidates="fromLocationList" v-model="fromLocationCode" placeholder="请选择库位" @confirm="fromLocationUpdate" :inputStyle="inputStyleObject"></uni-combox>
</view>
</view>
@ -94,6 +94,9 @@ const defaultValueList = ref([])
const fromInventoryStatuses = ref('')
const packageInfo = ref({})
const label = ref({})
const inputStyleObject = ref({
fontSize: '100rpx'
})
const toLocationCombox = ref()
const comscansimulate = ref()
const comMessageRef = ref()

18
src/pages/login/index.vue

@ -3,7 +3,8 @@
<image mode="widthFix" class="loginimg" src="../../static/icons_ui/login_bg.png"></image>
<view class="login_title">
<text>您好欢迎使用</text><br />
WMS仓库管理系统
WMS仓库管理系统<br />
版本: {{ version }}
</view>
<view class="bgf login_wrap">
<view class="loginbox">
@ -83,6 +84,7 @@ const showPassword = ref(true)
const imageSrc = ref('')
const code = ref('')
const uuid = ref('')
const version = ref('')
const comMessageRef = ref('')
//
onNavigationBarButtonTap((e) => {
@ -186,6 +188,18 @@ const getCode = () => {
.catch((error) => {
showErrorMessage(error)
})
getAppVersion()
}
const getAppVersion = () => {
const systemInfo = uni.getSystemInfoSync()
// #ifdef H5
version.value = systemInfo.appVersion
console.log(systemInfo.appVersion, '版本号')
// #endif
// #ifdef APP
version.value = systemInfo.appWgtVersion
// #endif
}
</script>
@ -214,7 +228,7 @@ page {
.mytabline {
flex: 1;
text-align: center;
padding: 20rpx 0;
padding: 10rpx 0;
color: #666;
position: relative;
font-size: 0.875rem;

4
src/pages/package/record/overPackageRecord.vue

@ -52,7 +52,7 @@
</view>
<win-scan-button @goScan="openScanPopup"></win-scan-button>
</view>
<winComScanBalance ref="scanPopup" @getBalance="getScanResult" businesstypeCode="OverPackage"> </winComScanBalance>
<winComScanBalance ref="scanPopup" @getBalance="getScanResult" bussinessCode="OverPackage"> </winComScanBalance>
<com-message ref="comMessageRef" />
</view>
</template>
@ -413,7 +413,7 @@ const showCommitSuccessMessage = (hint, pointData) => {
fromLocationCode.value = ''
dataContent.value = {}
if (pointData.length > 0) {
uni.redirectTo({
uni.navigateTo({
url: `/pages/point/index?points=${JSON.stringify(pointData)}`
})
}

11
src/pages/purchaseReceipt/job/receiptDetail.vue

@ -36,7 +36,7 @@
<view style="background-color: ghostwhite; width: 100%">
<view v-if="operation == 'receipt'" class="uni-flex u-col-center space-between padding_10">
<view>
<locationCompare ref="locationCompareRef" title="收货库位" :recommendLocationCode="jobToLocationCode" :locationCode="toLocationCode" @getLocation="scanLocationCode" :locationAreaTypeList="toLocationAreaTypeList"> </locationCompare>
<locationCompare ref="locationCompareRef" title="收货库位" :recommendLocationCode="jobToLocationCode" :locationCode="toLocationCode" :locationAreaTypeList="toLocationAreaTypeList"> </locationCompare>
</view>
<view>
<button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button>
@ -97,6 +97,7 @@ const operation = ref('')
const scanedPackingNumber = ref('')
const status = ref('')
const switchCode = ref('')
const isCheckLocation = ref('purchaseReceiptLocationCodeValidate') //
const reasonText = ref('')
const comMessageRef = ref()
const locationCompareRef = ref()
@ -108,7 +109,7 @@ onLoad((option) => {
scanedPackingNumber.value = option.scaned || ''
status.value = option.status || ''
operation.value = option.operation
switchCode.value = 'purchasereceiptPrintPDA'
switchCode.value = 'purchasereceiptPrintPDA' // pda
})
onShow(() => {
@ -181,6 +182,12 @@ const getDetail = () => {
jobStatus.value = res.data.status
jobToLocationCode.value = subList.value[0].toLocationCode
detailSource.value = getTreeDataSource(subList.value)
isCheckLocation.value = getSwitchInfoByCode(isCheckLocation.value)
if (isCheckLocation.value) {
toLocationCode.value = ''
} else {
toLocationCode.value = jobToLocationCode.value
}
isAllReceived.value = false
nextTick(() => {
detailSource.value.forEach((r) => {

1
src/pages/putaway/job/putawayJob.vue

@ -134,6 +134,7 @@ const getList = (type) => {
uni.hideLoading()
if (type === 'refresh') {
uni.stopPullDownRefresh()
openScanPopup()
}
const { list } = res.data

139
src/pages/query/location.vue

@ -1,12 +1,12 @@
<template>
<!-- <page-meta root-font-size="18px"></page-meta> -->
<view class="">
<view class="" style="width: 100%; position: fixed; top: 20rpx; right: 0">
<view class="uni-flex" style="flex-direction: column">
<view class="" style="width: 100%; position: fixed; top: 0; right: 0">
<com-blank-view @goScan="openScanPopup" v-if="locationCode == ''"></com-blank-view>
<location-info :locationDetail="locationDetail" v-if="locationCode"></location-info>
<z-tabs v-if="locationCode" :list="tabList" @change="tabChange" />
</view>
<view style="margin-top: 200rpx; width: 100%">
<view style="padding-top: 200rpx; width: 100%">
<view v-if="totalCount > 0" style="margin: 10rpx; font-size: 35rpx; font-weight: bold">总数 : {{ totalCount }} </view>
<view v-for="(item, index) in dataList" style="width: 100%">
<view class="uni-flex uni-row" style="align-items: center; background-color: #fff; border-radius: 10rpx; margin: 10rpx">
@ -175,56 +175,104 @@ const getDetailList = (pageNo, pageSize, type) => {
showMessage(error)
})
}
const getExpectin = (pageNo, pageSize, type) => {
uni.showLoading({
title: '加载中...',
mask: true
})
if (type === 'refresh') {
pageNo.value = 1
dataList.value = []
}
const setShowList = (list) => {
const resultlist = []
list.forEach((res) => {
const temp = resultlist.find((res1) => res1.itemCode == res.itemCode)
if (temp == undefined) {
const data = {
itemCode: res.itemCode,
qty: Number(res.qty),
uom: res.uom,
list: []
const params = {
pageNo: pageNo.value,
pageSize,
filters: [
{
column: 'locationCode',
action: '==',
value: locationCode.value
}
var item = {
packingNumber: res.packingNumber,
batch: res.batch,
uom: res.uom,
qty: Number(res.qty),
inventoryStatus: res.inventoryStatus
]
}
getExpectInByLocationCode(params)
.then((res) => {
uni.hideLoading()
if (type === 'refresh') {
uni.stopPullDownRefresh()
}
data.list.push(item)
resultlist.push(data)
} else {
temp.qty = calc.add(temp.qty, res.qty)
var item = {
packingNumber: res.packingNumber,
batch: res.batch,
uom: res.uom,
qty: Number(res.qty),
inventoryStatus: res.inventoryStatus
const { list } = res.data
totalCount.value = res.data.total
loadingType.value = 'loadmore'
if (list == null || list.length == 0) {
loadingType.value = 'nomore'
return
}
temp.list.push(item)
}
})
return resultlist
dataList.value = type === 'refresh' ? list : dataList.value.concat(list)
pageNo.value++
})
.catch((error) => {
uni.hideLoading()
showMessage(error)
})
}
const ontabtap = (e) => {
const index = e.target.dataset.current || e.currentTarget.dataset.current
tabIndex.value = index
getContentByTab(tabIndex.value)
const getExpectOut = (pageNo, pageSize, type) => {
uni.showLoading({
title: '加载中...',
mask: true
})
if (type === 'refresh') {
pageNo.value = 1
dataList.value = []
}
const params = {
pageNo: pageNo.value,
pageSize,
filters: [
{
column: 'locationCode',
action: '==',
value: locationCode.value
}
]
}
getExpectOutByLocationCode(params)
.then((res) => {
uni.hideLoading()
if (type === 'refresh') {
uni.stopPullDownRefresh()
}
const { list } = res.data
totalCount.value = res.data.total
loadingType.value = 'loadmore'
if (list == null || list.length == 0) {
loadingType.value = 'nomore'
return
}
dataList.value = type === 'refresh' ? list : dataList.value.concat(list)
pageNo.value++
})
.catch((error) => {
uni.hideLoading()
showMessage(error)
})
}
const getContentByTab = (index, pageNo, pageSize) => {
const getContentByTab = (index, pageNo, pageSize, type) => {
if (index === 0) {
getSummary(pageNo, pageSize)
getSummary(pageNo, pageSize, type)
} else if (index === 1) {
getDetailList(pageNo, pageSize)
getDetailList(pageNo, pageSize, type)
} else if (index === 2) {
dataIn.value = balances.value
getExpectin(pageNo, pageSize, type)
} else if (index == 3) {
dataOut.value = balances.value
getExpectin(pageNo, pageSize, type)
}
}
@ -242,12 +290,7 @@ const afterCloseMessage = () => {
}
const tabChange = (index) => {
tabIndex.value = index
paging.value.reload(true)
}
const queryList = (pageNo, pageSize) => {
if (locationCode.value != '') {
getContentByTab(tabIndex.value, pageNo, pageSize)
}
getContentByTab(index, pageNo.value, pageSize.value, 'refresh')
}
</script>

546
src/uni_modules/uni-combox/components/uni-combox/uni-combox.vue

@ -1,297 +1,295 @@
<template>
<view class="uni-combox" :class="border ? '' : 'uni-combox__no-border'">
<view v-if="label" class="uni-combox__label" :style="labelStyle">
<text>{{label}}</text>
</view>
<view class="uni-combox__input-box" :style="inputStyle">
<input class="uni-combox__input " type="text" :placeholder="placeholder"
placeholder-class="uni-combox__input-plac" v-model="inputVal" @input="onInput" @focus="onFocus"
@blur="onBlur" @confirm ="confirm"/>
<uni-icons :type="showSelector? 'top' : 'bottom'" size="14" color="#999" @click="toggleSelector">
</uni-icons>
</view>
<view class="uni-combox__selector" v-if="showSelector">
<view class="uni-popper__arrow"></view>
<scroll-view scroll-y="true" class="uni-combox__selector-scroll">
<view class="uni-combox__selector-empty" v-if="filterCandidatesLength === 0">
<text>{{emptyTips}}</text>
</view>
<view class="uni-combox__selector-item" v-for="(item,index) in filterCandidates" :key="index"
@click="onSelectorClick(index)">
<text>{{item}}</text>
</view>
</scroll-view>
</view>
</view>
<view class="uni-combox" :class="border ? '' : 'uni-combox__no-border'">
<view v-if="label" class="uni-combox__label" :style="labelStyle">
<text>{{ label }}</text>
</view>
<view class="uni-combox__input-box" :style="inputStyle">
<input class="uni-combox__input" type="text" :placeholder="placeholder" placeholder-class="uni-combox__input-plac" v-model="inputVal" @input="onInput" @focus="onFocus" @blur="onBlur" @confirm="confirm" />
<uni-icons :type="showSelector ? 'top' : 'bottom'" size="14" color="#999" @click="toggleSelector"> </uni-icons>
</view>
<view class="uni-combox__selector" v-if="showSelector">
<view class="uni-popper__arrow"></view>
<scroll-view scroll-y="true" class="uni-combox__selector-scroll">
<view class="uni-combox__selector-empty" v-if="filterCandidatesLength === 0">
<text>{{ emptyTips }}</text>
</view>
<view class="uni-combox__selector-item" v-for="(item, index) in filterCandidates" :key="index" @click="onSelectorClick(index)">
<text>{{ item }}</text>
</view>
</scroll-view>
</view>
</view>
</template>
<script>
/**
* Combox 组合输入框
* @description 组合输入框一般用于既可以输入也可以选择的场景
* @tutorial https://ext.dcloud.net.cn/plugin?id=1261
* @property {String} label 左侧文字
* @property {String} labelWidth 左侧内容宽度
* @property {String} placeholder 输入框占位符
* @property {Array} candidates 候选项列表
* @property {String} emptyTips 筛选结果为空时显示的文字
* @property {String} value 组合框的值
*/
export default {
name: 'uniCombox',
emits: ['input', 'update:modelValue','confirm'],
props: {
border: {
type: Boolean,
default: true
},
label: {
type: String,
default: ''
},
labelWidth: {
type: String,
default: 'auto'
},
inputWidth:{
type: String,
default: 'auto'
},
placeholder: {
type: String,
default: ''
},
candidates: {
type: Array,
default () {
return []
}
},
emptyTips: {
type: String,
default: '无匹配项'
},
// #ifndef VUE3
value: {
type: [String, Number],
default: ''
},
// #endif
// #ifdef VUE3
modelValue: {
type: [String, Number],
default: ''
},
// #endif
},
data() {
return {
showSelector: false,
inputVal: ''
}
},
computed: {
labelStyle() {
if (this.labelWidth === 'auto') {
return ""
}
/**
* Combox 组合输入框
* @description 组合输入框一般用于既可以输入也可以选择的场景
* @tutorial https://ext.dcloud.net.cn/plugin?id=1261
* @property {String} label 左侧文字
* @property {String} labelWidth 左侧内容宽度
* @property {String} placeholder 输入框占位符
* @property {Array} candidates 候选项列表
* @property {String} emptyTips 筛选结果为空时显示的文字
* @property {String} value 组合框的值
*/
export default {
name: 'uniCombox',
emits: ['input', 'update:modelValue', 'confirm'],
props: {
border: {
type: Boolean,
default: true
},
label: {
type: String,
default: ''
},
labelWidth: {
type: String,
default: 'auto'
},
inputWidth: {
type: String,
default: 'auto'
},
placeholder: {
type: String,
default: ''
},
candidates: {
type: Array,
default() {
return []
}
},
emptyTips: {
type: String,
default: '无匹配项'
},
// #ifndef VUE3
value: {
type: [String, Number],
default: ''
},
// #endif
// #ifdef VUE3
modelValue: {
type: [String, Number],
default: ''
}
// #endif
},
data() {
return {
showSelector: false,
inputVal: ''
}
},
computed: {
labelStyle() {
if (this.labelWidth === 'auto') {
return ''
}
return `width: ${this.labelWidth}`
},
return `width: ${this.labelWidth}`
},
inputStyle(){
if (this.inputWidth === 'auto') {
return ""
}
inputStyle() {
if (this.inputWidth === 'auto') {
return ''
}
return `width: ${this.inputWidth}`
},
filterCandidates() {
// return this.candidates.filter((item) => {
// return item.toString().indexOf(this.inputVal) > -1
// })
return this.candidates;
},
filterCandidatesLength() {
return this.filterCandidates.length
}
},
watch: {
// #ifndef VUE3
value: {
handler(newVal) {
this.inputVal = newVal
},
immediate: true
},
// #endif
// #ifdef VUE3
modelValue: {
handler(newVal) {
this.inputVal = newVal
},
immediate: true
},
// #endif
},
methods: {
toggleSelector() {
this.showSelector = !this.showSelector
},
onFocus() {
this.showSelector = true
},
onBlur() {
setTimeout(() => {
this.showSelector = false
}, 153)
},
onSelectorClick(index) {
this.inputVal = this.filterCandidates[index]
this.showSelector = false
this.$emit('input', this.inputVal)
this.$emit('update:modelValue', this.inputVal)
},
onInput() {
setTimeout(() => {
this.$emit('input', this.inputVal)
this.$emit('update:modelValue', this.inputVal)
})
},
confirm(){
setTimeout(() => {
this.$emit('confirm', this.inputVal)
this.$emit('update:modelValue', this.inputVal)
})
}
}
}
return `width: ${this.inputWidth}`
},
filterCandidates() {
// return this.candidates.filter((item) => {
// return item.toString().indexOf(this.inputVal) > -1
// })
return this.candidates
},
filterCandidatesLength() {
return this.filterCandidates.length
}
},
watch: {
// #ifndef VUE3
value: {
handler(newVal) {
this.inputVal = newVal
},
immediate: true
},
// #endif
// #ifdef VUE3
modelValue: {
handler(newVal) {
this.inputVal = newVal
},
immediate: true
}
// #endif
},
methods: {
toggleSelector() {
this.showSelector = !this.showSelector
},
onFocus() {
this.showSelector = true
},
onBlur() {
setTimeout(() => {
this.showSelector = false
}, 153)
},
onSelectorClick(index) {
this.inputVal = this.filterCandidates[index]
this.showSelector = false
this.$emit('input', this.inputVal)
this.$emit('update:modelValue', this.inputVal)
},
onInput() {
setTimeout(() => {
this.$emit('input', this.inputVal)
this.$emit('update:modelValue', this.inputVal)
})
},
confirm() {
setTimeout(() => {
this.$emit('confirm', this.inputVal)
this.$emit('update:modelValue', this.inputVal)
})
}
}
}
</script>
<style lang="scss" scoped>
.uni-combox {
font-size: 14px;
border: 1px solid #DCDFE6;
border-radius: 4px;
padding: 6px 10px;
position: relative;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
// height: 40px;
flex-direction: row;
align-items: center;
// border-bottom: solid 1px #DDDDDD;
}
<style lang="scss">
.uni-combox {
font-size: 14px;
border: 1px solid #dcdfe6;
border-radius: 4px;
padding: 6px 10px;
position: relative;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
// height: 40px;
flex-direction: row;
align-items: center;
// border-bottom: solid 1px #DDDDDD;
}
.uni-combox__label {
font-size: 16px;
line-height: 22px;
padding-right: 10px;
color: #999999;
}
.uni-combox__label {
font-size: 16px;
line-height: 22px;
padding-right: 10px;
color: #999999;
}
.uni-combox__input-box {
position: relative;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex: 1;
flex-direction: row;
align-items: center;
}
.uni-combox__input-box {
position: relative;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex: 1;
flex-direction: row;
align-items: center;
}
.uni-combox__input {
flex: 1;
font-size: 14px;
height: 22px;
line-height: 22px;
}
.uni-combox__input {
flex: 1;
font-size: 14px;
height: 26px;
line-height: 26px;
}
.uni-combox__input-plac {
font-size: 14px;
color: #999;
}
.uni-combox__input-plac {
font-size: 14px;
color: #999;
}
.uni-combox__selector {
/* #ifndef APP-NVUE */
box-sizing: border-box;
/* #endif */
position: absolute;
top: calc(100% + 12px);
left: 0;
width: 100%;
background-color: #FFFFFF;
border: 1px solid #EBEEF5;
border-radius: 6px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
z-index: 2;
padding: 4px 0;
}
.uni-combox__selector {
/* #ifndef APP-NVUE */
box-sizing: border-box;
/* #endif */
position: absolute;
top: calc(100% + 12px);
left: 0;
width: 100%;
background-color: #ffffff;
border: 1px solid #ebeef5;
border-radius: 6px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
z-index: 2;
padding: 4px 0;
}
.uni-combox__selector-scroll {
/* #ifndef APP-NVUE */
max-height: 200px;
height: 200rpx;
box-sizing: border-box;
/* #endif */
}
.uni-combox__selector-scroll {
/* #ifndef APP-NVUE */
max-height: 200px;
height: 200rpx;
box-sizing: border-box;
/* #endif */
}
.uni-combox__selector-empty,
.uni-combox__selector-item {
/* #ifndef APP-NVUE */
display: flex;
cursor: pointer;
/* #endif */
line-height: 36px;
font-size: 14px;
text-align: center;
// border-bottom: solid 1px #DDDDDD;
padding: 0px 10px;
}
.uni-combox__selector-empty,
.uni-combox__selector-item {
/* #ifndef APP-NVUE */
display: flex;
cursor: pointer;
/* #endif */
line-height: 36px;
font-size: 60rpx;
text-align: center;
// border-bottom: solid 1px #DDDDDD;
padding: 0px 10px;
}
.uni-combox__selector-item:hover {
background-color: #f9f9f9;
}
.uni-combox__selector-item:hover {
background-color: #f9f9f9;
}
.uni-combox__selector-empty:last-child,
.uni-combox__selector-item:last-child {
/* #ifndef APP-NVUE */
border-bottom: none;
/* #endif */
}
.uni-combox__selector-empty:last-child,
.uni-combox__selector-item:last-child {
/* #ifndef APP-NVUE */
border-bottom: none;
/* #endif */
}
// picker
.uni-popper__arrow,
.uni-popper__arrow::after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 6px;
}
// picker
.uni-popper__arrow,
.uni-popper__arrow::after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
border-width: 6px;
}
.uni-popper__arrow {
filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
top: -6px;
left: 10%;
margin-right: 3px;
border-top-width: 0;
border-bottom-color: #EBEEF5;
}
.uni-popper__arrow {
filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.03));
top: -6px;
left: 10%;
margin-right: 3px;
border-top-width: 0;
border-bottom-color: #ebeef5;
}
.uni-popper__arrow::after {
content: " ";
top: 1px;
margin-left: -6px;
border-top-width: 0;
border-bottom-color: #fff;
}
.uni-popper__arrow::after {
content: ' ';
top: 1px;
margin-left: -6px;
border-top-width: 0;
border-bottom-color: #fff;
}
.uni-combox__no-border {
border: none;
}
.uni-combox__no-border {
border: none;
}
.uni-input-input {
font-size: 60rpx;
}
</style>

Loading…
Cancel
Save