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.

162 lines
4.2 KiB

2 months ago
<template>
<div class="container">
<!-- 顶部信息 -->
<div class="containertop">
<div class="topleft">
<img src="../../../assets/images/detailsicon/1.png" alt="">
<span>项目备忘录</span>
</div>
<div class="topright">
1 month ago
<el-button type="primary" icon="el-icon-edit" size="medium" plain style="border: none;"> 导入</el-button>
<el-button type="primary" icon="el-icon-upload" size="medium" plain style="border: none;"> 导出</el-button>
</div>
</div>
<div class="content">
<div class="descriptionsdiv">
<el-form :model="form" @submit.native.prevent="onSubmit">
<el-form-item>
<el-col :span="11">
<el-date-picker type="date" placeholder="选择日期" v-model="form.date1"
style="width: 100%;"></el-date-picker>
</el-col>
</el-form-item>
</el-form>
</div>
<div class="descriptionsdiv">
<el-tag :key="tag" v-for="tag in dynamicTags" closable :disable-transitions="false"
@close="handleClose(tag)">
{{ tag }}
</el-tag>
<el-input class="input-new-tag" v-if="inputVisible" v-model="inputValue" ref="saveTagInput" size="small"
@keyup.enter.native="handleInputConfirm" @blur="handleInputConfirm">
</el-input>
<el-button v-else class="button-new-tag" size="small" @click="showInput">+ New Tag</el-button>
2 months ago
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
dynamicTags: ['标签一', '标签二', '标签三'],
inputVisible: false,
inputValue: '',
form: {
name: '',
region: '',
date1: null, // 确保初始值为 null 或者一个默认日期
date2: '',
delivery: false,
type: [],
resource: '',
desc: ''
}
};
},
methods: {
onSubmit() {
console.log('submit!');
console.log(this.form); // 确保在提交时可以正确读取 form 数据
},
handleClose(tag) {
this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
},
showInput() {
this.inputVisible = true;
this.$nextTick(_ => {
this.$refs.saveTagInput.$refs.input.focus();
});
},
2 months ago
handleInputConfirm() {
let inputValue = this.inputValue;
if (inputValue) {
this.dynamicTags.push(inputValue);
}
this.inputVisible = false;
this.inputValue = '';
}
}
};
2 months ago
</script>
<style scoped>
.container {
display: flex;
flex-direction: column;
width: 100%;
background-color: #FFFFFF;
box-shadow: 0rem 0.13rem 0.63rem 0rem rgba(177, 177, 177, 0.1);
2 months ago
border-radius: 0.5rem 0.5rem 0.5rem 0.5rem;
gap: 1rem;
}
.content {
padding: 1rem;
display: flex;
flex-direction: column;
gap: 2rem;
}
.containertop {
2 months ago
height: auto;
display: flex;
justify-content: space-between;
padding: .7rem 0;
border-bottom: 1px solid #E5E5E5;
padding: .5rem;
}
.topleft {
width: 8rem;
2 months ago
display: flex;
gap: 0.4rem;
align-items: center;
}
.topleft img {
2 months ago
width: 0.81rem;
height: 0.81rem;
}
.topleft span {
2 months ago
width: auto;
height: 0.88rem;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 500;
font-size: 0.88rem;
color: #3D424C;
line-height: 0.88rem;
text-align: right;
font-style: normal;
text-transform: none;
}
.descriptionsdiv {
width: 100%;
margin-left: 1rem;
height: auto;
}
.el-tag+.el-tag {
margin-left: 10px;
}
.button-new-tag {
margin-left: 10px;
height: 32px;
line-height: 30px;
padding-top: 0;
padding-bottom: 0;
}
.input-new-tag {
width: 90px;
margin-left: 10px;
vertical-align: bottom;
}
</style>