<template>
|
|
<view class="protocol-dialog" v-if="show">
|
|
<view class="dialog-mask"></view>
|
|
<view class="dialog-content">
|
|
<view class="dialog-title">{{ title }}</view>
|
|
<scroll-view class="dialog-body" scroll-y>
|
|
<view class="rich-text-wrapper">
|
|
<rich-text :nodes="content"></rich-text>
|
|
</view>
|
|
</scroll-view>
|
|
<view class="dialog-footer">
|
|
<view class="footer-btn reject" @click="$emit('reject')">拒绝</view>
|
|
<view class="footer-divider"></view>
|
|
<view class="footer-btn agree" @click="$emit('agree')">同意</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name: 'ProtocolDialog',
|
|
props: {
|
|
show: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
title: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
content: {
|
|
type: String,
|
|
default: ''
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
.protocol-dialog {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
z-index: 999;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.dialog-mask {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: rgba(0, 0, 0, 0.6);
|
|
}
|
|
.dialog-content {
|
|
position: relative;
|
|
width: 86vw;
|
|
max-width: 700rpx;
|
|
background: #fff;
|
|
border-radius: 32rpx;
|
|
overflow: hidden;
|
|
z-index: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
box-sizing: border-box;
|
|
}
|
|
.dialog-title {
|
|
text-align: center;
|
|
font-size: 36rpx;
|
|
font-weight: bold;
|
|
color: #222;
|
|
margin: 48rpx 0 24rpx 0;
|
|
}
|
|
.dialog-body {
|
|
flex: 1;
|
|
max-height: 60vh;
|
|
min-height: 200rpx;
|
|
width: 100%;
|
|
padding: 0 40rpx;
|
|
font-size: 28rpx;
|
|
color: #444;
|
|
line-height: 1.8;
|
|
box-sizing: border-box;
|
|
margin-bottom: 24rpx;
|
|
}
|
|
.rich-text-wrapper {
|
|
width: 100%;
|
|
font-size: 28rpx;
|
|
color: #444;
|
|
line-height: 1.8;
|
|
}
|
|
:deep(h1), :deep(h2), :deep(h3) {
|
|
font-size: 32rpx !important;
|
|
font-weight: bold !important;
|
|
margin: 24rpx 0 12rpx 0 !important;
|
|
color: #222 !important;
|
|
}
|
|
:deep(p) {
|
|
font-size: 28rpx !important;
|
|
color: #444 !important;
|
|
margin: 0 0 12rpx 0 !important;
|
|
line-height: 1.8 !important;
|
|
}
|
|
.dialog-footer {
|
|
display: flex;
|
|
flex-direction: row;
|
|
border-top: 1rpx solid #eee;
|
|
height: 90rpx;
|
|
}
|
|
.footer-btn {
|
|
flex: 1;
|
|
text-align: center;
|
|
line-height: 90rpx;
|
|
font-size: 32rpx;
|
|
font-weight: 500;
|
|
}
|
|
.reject {
|
|
color: #888;
|
|
background: #fff;
|
|
}
|
|
.agree {
|
|
color: #f79400;
|
|
background: #fff;
|
|
}
|
|
.footer-divider {
|
|
width: 1rpx;
|
|
background: #eee;
|
|
height: 100%;
|
|
}
|
|
</style>
|