<template> <div class="card"> <el-card shadow="hover" :body-style="{ padding: '0px' }"> <!-- <img :src="require(`@/assets/images/${content.image}`)" class="image" /> --> <img :src="`https://picsum.photos/id/${content.image}/1024/768`" class="image" /> <el-row class="card-content"> <el-col class="card-content-left"> <div class="card-word"> <span>项目英文名:</span> <em v-if="isEdit == false">{{ content.name }}</em ><el-input v-model="content.name" v-if="isEdit == true"></el-input> </div> <div class="card-word"> <span>项目中文名:</span> <em>{{ content.name_zh }}</em> </div> <div class="card-word"> <span>项目端口:</span> <em>{{ content.port }}</em> </div> <div class="card-word"> <span>项目提供者:</span> <em>{{ content.provider }}</em> </div> <div class="card-word"> <span>数据库文件名:</span> <em>{{ content.dbfilename }}</em> </div> </el-col> <el-col class="card-content-right"> <i :class="isEditIcon" @click="handleEdit"></i> <i class="el-icon-view" @click="handleView"></i> <i class="el-icon-delete" @click="handleDelete"></i> </el-col> </el-row> </el-card> </div> </template> <script> export default { props: { content: { type: Object, }, }, mounted() { // console.log("card cardIndex", this.cardIndex); }, data() { return { labelPosition: "right", formLabelAlign: { name: "", region: "", type: "", }, isEdit: false, isEditIcon: "el-icon-edit-outline", }; }, methods: { handleEdit() { if (this.isEdit == true) { this.updateItem(this.content); } this.isEdit = !this.isEdit; this.isEditIcon = this.isEditIcon == "el-icon-success" ? "el-icon-edit-outline" : "el-icon-success"; console.log("handleEdit"); }, handleView() { console.log("handleView"); }, handleDelete() { console.log("handleDelete"); console.log(this.content); this.deleteItem(this.content); }, deleteItem(item) { var url = this.$client.apiUrlprefix() + "/project/"; this.$axios.post(url + "delete", item, (res) => { console.log(res); this.$emit("deleteGrid"); }); }, }, updateItem(item) { var url = this.$client.apiUrlprefix() + "/project/"; this.$axios.post(url + "update", item, (res) => { console.log(res); }); }, }; </script> <style lang="scss" scoped> .card { height: 100%; .el-card { height: 100%; } .el-card.is-hover-shadow { border: 1px solid #bbb; &:hover { box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.5); } } img { display: block; width: 100%; padding-bottom: 10px; } .card-content-left { width: calc(100% - 30px); } .card-content-right { width: 30px; text-align: center; i { cursor: pointer; display: block; padding: 10px 0; font-size: 18px; &:hover { color: #409eff; } } } .card-word { position: relative; padding: 7px 0; padding-left: 105px; span { position: absolute; left: 0; top: 12px; padding-left: 10px; // display: inline-block; // width: 100px; // text-align: right; font-size: 14px; } em { display: block; overflow: hidden; text-overflow: ellipsis; font-style: normal; } } } </style>