110 lines
2.1 KiB
Vue
110 lines
2.1 KiB
Vue
<template>
|
|
<u-popup
|
|
:show="show"
|
|
mode="bottom"
|
|
:round="10"
|
|
:closeable="true"
|
|
@close="handleClose"
|
|
>
|
|
<view class="c-dialog">
|
|
<view class="box"><text>单据状态</text></view>
|
|
<view class="box-btn"
|
|
><text
|
|
v-for="(item, index) in state.statusList"
|
|
:key="index"
|
|
:class="{ active: state.currentStates === item.id }"
|
|
@click="handleSelect(item)"
|
|
>{{ item.name }}</text
|
|
></view
|
|
>
|
|
</view>
|
|
</u-popup>
|
|
</template>
|
|
<script setup lang="ts">
|
|
const props = defineProps<{
|
|
show: boolean;
|
|
}>();
|
|
|
|
const state = reactive({
|
|
currentStates: -1,
|
|
statusList: [
|
|
{
|
|
id: -1,
|
|
name: "全部",
|
|
},
|
|
{
|
|
id: 4,
|
|
name: "已支付",
|
|
},
|
|
{
|
|
id: 3,
|
|
name: "已审未付",
|
|
},
|
|
{
|
|
id: 2,
|
|
name: "未审核",
|
|
},
|
|
],
|
|
});
|
|
|
|
const emit = defineEmits(["handleDialog", "changeStatus"]);
|
|
const handleClose = () => {
|
|
emit("handleDialog", false);
|
|
};
|
|
const handleSelect = (item: any) => {
|
|
state.currentStates = item.id
|
|
emit("changeStatus", item)
|
|
emit("handleDialog", false);
|
|
}
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
::v-deep .u-popup__content {
|
|
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12);
|
|
border-radius: 32rpx 32rpx 0rpx 0rpx;
|
|
}
|
|
.c-dialog {
|
|
margin: 65.38rpx 44.87rpx;
|
|
font-family: Source Han Sans CN;
|
|
font-weight: 500;
|
|
font-size: 26rpx;
|
|
color: #000000;
|
|
.box-btn,
|
|
.box {
|
|
line-height: 80rpx;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
}
|
|
.box-btn {
|
|
line-height: 40rpx;
|
|
margin-bottom: 30rpx;
|
|
text {
|
|
font-weight: 400;
|
|
font-size: 26rpx;
|
|
color: #999999;
|
|
width: 140rpx;
|
|
background: #ffffff;
|
|
border-radius: 6rpx;
|
|
border: 1px solid rgba(153, 153, 153, 0.64);
|
|
text-align: center;
|
|
cursor: pointer;
|
|
}
|
|
.active {
|
|
border-color: $u-primary;
|
|
color: $u-primary;
|
|
}
|
|
}
|
|
.btn {
|
|
font-weight: 500;
|
|
font-size: 26rpx;
|
|
color: $u-primary;
|
|
}
|
|
.box-border {
|
|
border-top: 1px solid rgba(233, 233, 233, 0.76);
|
|
}
|
|
.line {
|
|
height: 18rpx;
|
|
background: #f8f8f8;
|
|
}
|
|
}
|
|
</style>
|