|
@@ -0,0 +1,92 @@
|
|
|
|
+<template>
|
|
|
|
+ <div class="sidebar">
|
|
|
|
+ <div class="fixed-requirements">固定需求</div>
|
|
|
|
+ <ul>
|
|
|
|
+ <li v-for="requirement in requirements" :key="requirement.id" @click="selectRequirement(requirement)">
|
|
|
|
+ {{ requirement.title }}
|
|
|
|
+ </li>
|
|
|
|
+ </ul>
|
|
|
|
+ <button @click="toggleCollapse">{{ isCollapsed ? '>' : '<' }}</button>
|
|
|
|
+ <button @click="addNewRequirement">添加新需求</button>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+export default {
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ isCollapsed: false,
|
|
|
|
+ requirements: [
|
|
|
|
+ { id: 1, title: '需求1' },
|
|
|
|
+ { id: 2, title: '需求2' },
|
|
|
|
+ { id: 3, title: '需求3' },
|
|
|
|
+ ],
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ selectRequirement(requirement) {
|
|
|
|
+ this.$emit('requirement-selected', requirement);
|
|
|
|
+ },
|
|
|
|
+ toggleCollapse() {
|
|
|
|
+ this.isCollapsed = !this.isCollapsed;
|
|
|
|
+ },
|
|
|
|
+ addNewRequirement() {
|
|
|
|
+ // Logic for adding a new requirement
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style scoped>
|
|
|
|
+.sidebar {
|
|
|
|
+ width: 250px;
|
|
|
|
+ height: 100%;
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ border-right: 1px solid #ddd;
|
|
|
|
+ padding: 20px;
|
|
|
|
+ box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1);
|
|
|
|
+ transition: transform 0.3s ease-in-out;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.fixed-requirements {
|
|
|
|
+ position: sticky;
|
|
|
|
+ top: 0;
|
|
|
|
+ background-color: #f9f9f9;
|
|
|
|
+ padding: 10px;
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.sidebar ul {
|
|
|
|
+ list-style-type: none;
|
|
|
|
+ padding-left: 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.sidebar li {
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ padding: 8px 0;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ transition: background-color 0.2s ease-in-out;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.sidebar li:hover {
|
|
|
|
+ background-color: #f1f1f1;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.sidebar button {
|
|
|
|
+ position: absolute;
|
|
|
|
+ bottom: 20px;
|
|
|
|
+ left: 50%;
|
|
|
|
+ transform: translateX(-50%);
|
|
|
|
+ background-color: #6c757d;
|
|
|
|
+ color: white;
|
|
|
|
+ border: none;
|
|
|
|
+ padding: 10px 20px;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.sidebar button:hover {
|
|
|
|
+ background-color: #5a6268;
|
|
|
|
+}
|
|
|
|
+</style>
|