freight-ts-dy-web/src/components/Modal/smallModal.vue

77 lines
1.5 KiB
Vue

<template>
<u-modal :show="show" >
<view class="slot-content">
<view class="title"> {{ title }} </view>
<view class="content">
<text :class="{ isMain: isMain }">{{ content }}</text>
</view>
</view>
<template #confirmButton>
<view class="btn-box">
<text class="cancel" @click="handleClose('cancel')">取消</text>
<text class="ok" @click="handleClose('ok')">{{ okText }}</text>
</view>
</template>
</u-modal>
</template>
<script setup lang="ts">
const props = withDefaults(
defineProps<{
title: string;
content: string;
okText: string;
isMain: boolean;
show: boolean;
}>(),
{
okText: "确认",
isMain: false,
show: false
}
);
const emit = defineEmits(["handleModal", "handleOk", "handleCancel"]);
const handleClose = (v: string) => {
emit("handleModal", false);
if (v === 'ok') {
// 走确认操作
emit("handleOk");
} else {
emit("handleCancel")
}
};
</script>
<style lang="scss" scoped>
.title {
text-align: center;
font-weight: 400;
font-size: 32rpx;
color: #000000;
margin-top: 25px;
}
.content {
padding-top: 25px;
font-weight: 400;
font-size: 27rpx;
color: #999999;
}
.isMain {
color: #ec0f3e;
}
.btn-box {
display: flex;
justify-content: space-between;
margin-bottom: 25px;
.cancel {
font-weight: 500;
font-size: 32rpx;
color: #999999;
}
.ok {
font-weight: 500;
font-size: 32rpx;
color: $u-primary;
}
}
</style>