5 changed files with 334 additions and 142 deletions
@ -0,0 +1,145 @@ |
|||||||
|
<template> |
||||||
|
<el-dialog v-model="visible" width="50vw" top="4vh" class="dialog-header-nopadding" align-center |
||||||
|
style="--el-dialog-padding-primary: 10px"> |
||||||
|
<template #header="" style="display: flex;align-items: center;justify-content: space-between;"> |
||||||
|
<div class="dialog-header"> |
||||||
|
<span class="dialog-title">不满意信件申诉</span> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<div class="dialog-body"> |
||||||
|
<span class="main-label">申诉中</span> |
||||||
|
<el-steps :active="active" class="steps"> |
||||||
|
<el-step title="提交申诉"></el-step> |
||||||
|
<el-step title="处理中"></el-step> |
||||||
|
<el-step title="完成"></el-step> |
||||||
|
</el-steps> |
||||||
|
<span class="main-label">申诉理由</span> |
||||||
|
<div> |
||||||
|
<span>{{ }}</span> |
||||||
|
</div> |
||||||
|
<span class="main-label">相关附件</span> |
||||||
|
<div> |
||||||
|
|
||||||
|
</div> |
||||||
|
<div style="display: flex;justify-content: flex-end;"> |
||||||
|
<el-button type="primary" @click="handleSubmit">关闭窗口</el-button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</el-dialog> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script lang="ts" setup> |
||||||
|
import { ref, defineProps } from 'vue' |
||||||
|
import { watch } from 'vue' |
||||||
|
const props = defineProps({ |
||||||
|
show: { |
||||||
|
type: Boolean, |
||||||
|
default: false |
||||||
|
}, |
||||||
|
mailId: { |
||||||
|
type: String, |
||||||
|
default: '' |
||||||
|
} |
||||||
|
}) |
||||||
|
const emits = defineEmits(["update:show", "update"]); |
||||||
|
const visible = ref(props.show) |
||||||
|
watch(visible, (val) => { |
||||||
|
emits("update:show", val); |
||||||
|
}); |
||||||
|
watch( |
||||||
|
() => props.show, |
||||||
|
(val) => { |
||||||
|
visible.value = val; |
||||||
|
} |
||||||
|
); |
||||||
|
|
||||||
|
const active = ref(1) |
||||||
|
const handleSubmit = () => { |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.dialog-header { |
||||||
|
height: 60px; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-self: center; |
||||||
|
} |
||||||
|
|
||||||
|
.dialog-title { |
||||||
|
margin-left: 20px; |
||||||
|
height: 22px; |
||||||
|
font-size: 16px; |
||||||
|
font-family: PingFangSC, PingFang SC; |
||||||
|
font-weight: 400; |
||||||
|
color: #FFFFFF; |
||||||
|
line-height: 22px; |
||||||
|
} |
||||||
|
|
||||||
|
.dialog-body { |
||||||
|
margin-left: 20px; |
||||||
|
margin-right: 20px; |
||||||
|
} |
||||||
|
|
||||||
|
.main-label { |
||||||
|
width: 80px; |
||||||
|
height: 22px; |
||||||
|
font-size: 20px; |
||||||
|
font-family: PingFang-SC, PingFang-SC; |
||||||
|
font-weight: bold; |
||||||
|
color: #333333; |
||||||
|
line-height: 22px; |
||||||
|
} |
||||||
|
|
||||||
|
.main-content { |
||||||
|
width: 100%; |
||||||
|
height: 22px; |
||||||
|
font-size: 20px; |
||||||
|
font-family: PingFang-SC, PingFang-SC; |
||||||
|
font-weight: bold; |
||||||
|
color: #162582; |
||||||
|
line-height: 22px; |
||||||
|
} |
||||||
|
|
||||||
|
.title-label { |
||||||
|
margin-bottom: 20px; |
||||||
|
} |
||||||
|
|
||||||
|
.info-input { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
.el-upload__inner { |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
|
||||||
|
// 可定义局部公共样式 |
||||||
|
$publicColor: #162582; |
||||||
|
$publicHeight: 35px; |
||||||
|
|
||||||
|
.steps { |
||||||
|
width: 80%; |
||||||
|
margin: 20px auto 0; |
||||||
|
height: $publicHeight; |
||||||
|
|
||||||
|
::v-deep .el-step { |
||||||
|
height: 100%; |
||||||
|
|
||||||
|
.el-step__line { |
||||||
|
background-color: rgba(0, 0, 0, 0.15); |
||||||
|
margin-right: 30px; |
||||||
|
margin-left: 105px; |
||||||
|
top: 50%; |
||||||
|
height: 1px; |
||||||
|
} |
||||||
|
|
||||||
|
.el-step__title { |
||||||
|
position: absolute ; |
||||||
|
top: calc((100% - 130%)/2); |
||||||
|
left: calc(5% + 25px); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
||||||
@ -0,0 +1,121 @@ |
|||||||
|
<template> |
||||||
|
<el-dialog v-model="visible" width="50vw" top="4vh" class="dialog-header-nopadding" align-center |
||||||
|
style="--el-dialog-padding-primary: 10px"> |
||||||
|
<template #header="" style="display: flex;align-items: center;justify-content: space-between;"> |
||||||
|
<div class="dialog-header"> |
||||||
|
<span class="dialog-title">不满意信件申诉</span> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<div class="dialog-body"> |
||||||
|
<span class="main-label">申诉中</span> |
||||||
|
<el-steps :active="1" finish-status="success" space="2500" style="width: 100%;"> |
||||||
|
<el-step title="提交申诉"></el-step> |
||||||
|
<el-step title="处理中"></el-step> |
||||||
|
<el-step title="完成"></el-step> |
||||||
|
</el-steps> |
||||||
|
<span class="main-label">驳回理由</span> |
||||||
|
<div> |
||||||
|
<span>{{ }}</span> |
||||||
|
</div> |
||||||
|
<span class="main-label">申诉理由</span> |
||||||
|
<div> |
||||||
|
<span>{{ }}</span> |
||||||
|
</div> |
||||||
|
<span class="main-label">相关附件</span> |
||||||
|
<div> |
||||||
|
|
||||||
|
</div> |
||||||
|
<div style="display: flex;justify-content: flex-end;"> |
||||||
|
<el-button type="primary" @click="handleSubmit">重新申诉</el-button> |
||||||
|
<el-button type="primary" @click="handleSubmit">关闭窗口</el-button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</el-dialog> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script lang="ts" setup> |
||||||
|
import { ref, defineProps } from 'vue' |
||||||
|
import { watch } from 'vue' |
||||||
|
const props = defineProps({ |
||||||
|
show: { |
||||||
|
type: Boolean, |
||||||
|
default: false |
||||||
|
}, |
||||||
|
mailId: { |
||||||
|
type: String, |
||||||
|
default: '' |
||||||
|
} |
||||||
|
}) |
||||||
|
const emits = defineEmits(["update:show", "update"]); |
||||||
|
const visible = ref(props.show) |
||||||
|
watch(visible, (val) => { |
||||||
|
emits("update:show", val); |
||||||
|
}); |
||||||
|
watch( |
||||||
|
() => props.show, |
||||||
|
(val) => { |
||||||
|
visible.value = val; |
||||||
|
} |
||||||
|
); |
||||||
|
|
||||||
|
const handleSubmit = () => { |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.dialog-header { |
||||||
|
height: 60px; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-self: center; |
||||||
|
} |
||||||
|
|
||||||
|
.dialog-title { |
||||||
|
margin-left: 20px; |
||||||
|
height: 22px; |
||||||
|
font-size: 16px; |
||||||
|
font-family: PingFangSC, PingFang SC; |
||||||
|
font-weight: 400; |
||||||
|
color: #FFFFFF; |
||||||
|
line-height: 22px; |
||||||
|
} |
||||||
|
|
||||||
|
.dialog-body { |
||||||
|
margin-left: 20px; |
||||||
|
margin-right: 20px; |
||||||
|
} |
||||||
|
|
||||||
|
.main-label { |
||||||
|
width: 80px; |
||||||
|
height: 22px; |
||||||
|
font-size: 20px; |
||||||
|
font-family: PingFang-SC, PingFang-SC; |
||||||
|
font-weight: bold; |
||||||
|
color: #333333; |
||||||
|
line-height: 22px; |
||||||
|
} |
||||||
|
|
||||||
|
.main-content { |
||||||
|
width: 100%; |
||||||
|
height: 22px; |
||||||
|
font-size: 20px; |
||||||
|
font-family: PingFang-SC, PingFang-SC; |
||||||
|
font-weight: bold; |
||||||
|
color: #162582; |
||||||
|
line-height: 22px; |
||||||
|
} |
||||||
|
|
||||||
|
.title-label { |
||||||
|
margin-bottom: 20px; |
||||||
|
} |
||||||
|
|
||||||
|
.info-input { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
.el-upload__inner { |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
} |
||||||
|
</style> |
||||||
Loading…
Reference in new issue