You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.6 KiB
85 lines
1.6 KiB
<template>
|
|
<div class="table-operation">
|
|
<div class="table-operation-box">
|
|
<div class="operation-header">
|
|
<div class="operation-title">{{ getTitle }}</div>
|
|
<section>
|
|
<el-button type="primary" v-if="showSub" @click="clickSub()"
|
|
>提 交</el-button
|
|
>
|
|
<el-button @click="handlerBack()">返 回</el-button>
|
|
</section>
|
|
</div>
|
|
<div class="operation-panel">
|
|
<slot></slot>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { useRoute } from "vue-router";
|
|
|
|
const router = useRouter();
|
|
const route = useRoute();
|
|
const emits = defineEmits(["handlerSub"]);
|
|
|
|
const props = defineProps({
|
|
showSub: {
|
|
type: Boolean,
|
|
default: true,
|
|
},
|
|
title: {
|
|
type: String,
|
|
default: "",
|
|
},
|
|
});
|
|
|
|
const getTitle = computed(() => {
|
|
if (props.title) return props.title;
|
|
return route.meta.title;
|
|
});
|
|
|
|
const handlerBack = () => {
|
|
router.back();
|
|
};
|
|
const clickSub = () => {
|
|
console.log(route);
|
|
emits("handlerSub");
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.table-operation {
|
|
padding: 20px 16px;
|
|
height: 100%;
|
|
background-color: #f5f8fd;
|
|
|
|
.table-operation-box {
|
|
height: 100%;
|
|
background-color: #fff;
|
|
box-shadow: 0px 4px 4px 0px rgba(168, 196, 237, 0.25);
|
|
}
|
|
|
|
.operation-header {
|
|
padding: 0 10px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 10px;
|
|
height: 50px;
|
|
border-bottom: 1px solid #e5eaf3;
|
|
}
|
|
.operation-title {
|
|
font-size: 18px;
|
|
font-family: "MiSans-Medium";
|
|
}
|
|
|
|
.operation-panel {
|
|
height: calc(100% - 50px);
|
|
padding: 10px 20px;
|
|
overflow-y: auto;
|
|
}
|
|
}
|
|
</style>
|