Compare commits

..

21 Commits

Author SHA1 Message Date
ynmlzdwsp 86325a00a3 准备传到头歌
10 months ago
ynmlzdwsp ad27d3bc1d 完成测试
11 months ago
ynmlzdwsp 9541be0e83 合并完成
11 months ago
ynmlzdwsp fbae76b86f Merge remote-tracking branch 'origin/master'
11 months ago
ynmlzdwsp 03a022c778 完成药品管理功能
11 months ago
ynmlzdwsp 1f94efe60c 完成药品管理的新增操作
11 months ago
王岚馨 13f70e3047 首页展示速览
11 months ago
王岚馨 efe15fbc19 Merge remote-tracking branch 'origin/master'
11 months ago
王岚馨 210ef6e3e8 修复bugs
11 months ago
王岚馨 636e8c94c6 Merge remote-tracking branch 'origin/master'
11 months ago
ynmlzdwsp 7a3be7c18f 开始做管理药品的后台功能2
11 months ago
ynmlzdwsp 17ff7b6175 开始做管理药品的后台功能
11 months ago
王岚馨 0a8f850c19 Merge remote-tracking branch 'origin/master'
11 months ago
ynmlzdwsp 70677674bc Merge remote-tracking branch 'origin/master'
11 months ago
ynmlzdwsp 7322f566f1 完成后端博客功能
11 months ago
ynmlzdwsp 6110fde8fb Merge remote-tracking branch 'origin/master'
11 months ago
ynmlzdwsp 54f75993a0 Merge remote-tracking branch 'origin/master'
11 months ago
ynmlzdwsp bee8311f24 改进细节2
11 months ago
ynmlzdwsp fff40b27d2 初步合并,可以运行,还差一些细节
11 months ago
ynmlzdwsp 5b82cc74d8 Merge remote-tracking branch 'origin/master'
11 months ago
ynmlzdwsp 2d2601b1c5 完成和王乐的合并
11 months ago

@ -78,7 +78,7 @@
--commentURL: url(../file/comment.jpg);
--springBg: url(../file/bg1.jpg);
--admireImage: url(../file/bg1.jpg);
--admireImage: url(../file/bg2.jpg);
--toTop: url(../file/top.jpg);
--bannerWave1: url(../file/bannerwave1.png) repeat-x;
--bannerWave2: url(../file/bannerwave2.png) repeat-x;

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 555 KiB

@ -33,22 +33,41 @@
data() {
return {
sayShow: false,
// sayContent: [
// {
// "talk": ["Hi, there👋", " Vue2 Vue3 SpringBoot ~"],
// "reply": [" 😃", " 🙄"]
// }, {
// "talk": ["😘",
// "",
// ""],
// "reply": [" 😂"]
// }, {
// "talk": ["🚀",
// "👋",
// "🥝"],
// "reply": []
// }
// ],
sayContent: [
{
"talk": ["Hi, there👋", "这是一个 Vue2 Vue3 与 SpringBoot 结合的产物~"],
"reply": ["然后呢? 😃", "少废话! 🙄"]
"talk": ["大家好👋", "欢迎来到查询药物相互作用,病友间相互交流的平台~"],
"reply": ["然后呢? 😃", "废话! 🙄"]
}, {
"talk": ["😘",
"本站平时仅用于交流和学习新知识",
"如涉及侵权请联系站长删除对应资源,谢谢!!!"],
"reply": ["这个网站有什么用吗? 😂"]
"这个平台是一个温暖的港湾,让我们可以相互倾听、相互支持",
"在这里,我们可以分享经验、交流心情,共同战胜疾病的困难和挑战"],
"reply": ["这个平台有什么用吗? 😂"]
}, {
"talk": ["拥有自己的独立网站难道不酷吗🚀",
"那就摸鱼吧👋",
"摸鱼大军请在聊天室集合🥝"],
"talk": ["拥有一个专属的交流平台,我们能够找到理解和同伴🚀",
"一起度过艰难时刻,分享希望和勇气👋",
"病友们请在聊天室集合🥝"],
"reply": []
}
],
sayIndex: 0
}
},

@ -24,6 +24,8 @@
</svg>
<span>&nbsp;首页</span>
</div>
<!--头像-->
<div class="header-user-con">
<el-dropdown placement="bottom">
<el-avatar class="user-avatar" :size="40"
@ -34,6 +36,7 @@
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
</div>
</template>

@ -29,6 +29,7 @@
</template>
</el-submenu>
</template>
<template v-else>
<el-menu-item :index="item.index" :key="item.index">
<i :class="item.icon"></i>
@ -61,6 +62,11 @@
index: "/userList",
title: "用户管理",
isBoss: true
}, {
icon: "el-icon-first-aid-kit",
index: "/drugReaction",
title: "药品管理",
isBoss: false
}, {
icon: "el-icon-postcard",
index: "/postList",
@ -94,7 +100,7 @@
}, {
icon: "el-icon-sugar",
index: "/loveList",
title: "表白墙管理",
title: "科研项目管理",
isBoss: true
}]
}

@ -0,0 +1,324 @@
<template>
<div>
<div>
<div class="handle-box">
<el-input v-model="queryParams.drug1" placeholder="药品A名称" class="handle-input mrb10"></el-input>
<el-input v-model="queryParams.drug2" placeholder="药品B名称" class="handle-input mrb10"></el-input>
<el-input v-model="queryParams.reaction" placeholder="相互作用效果" class="handle-input mrb10"></el-input>
<el-button type="primary" icon="el-icon-search" @click="handleQuery()"></el-button>
<el-button type="danger" @click="clearSearch()"></el-button>
<el-button type="primary" icon="el-icon-plus" @click="addDrugs()"></el-button>
</div>
<el-table :data="table1List" border class="table" header-cell-class-name="table-header">
<el-table-column prop="id" label="ID" width="55" align="center"></el-table-column>
<el-table-column prop="drug1" label="药品A名称" align="center"></el-table-column>
<el-table-column prop="drug2" label="药品B名称" align="center"></el-table-column>
<el-table-column prop="reaction" label="相互作用效果" align="center"></el-table-column>
<el-table-column label="操作" width="180" align="center">
<template slot-scope="scope">
<el-button type="text" icon="el-icon-edit" @click="handleEdit(scope.row)"></el-button>
<el-button type="text" icon="el-icon-delete" style="color: var(--orangeRed)" @click="handleDelete(scope.row)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog title="新增药品作用" :visible.sync="dialogVisible">
<el-form :model="formData" :rules="rules" ref="drugForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="药品A名称" prop="drug1">
<el-input v-model="formData.drug1"></el-input>
</el-form-item>
<el-form-item label="药品B名称" prop="drug2">
<el-input v-model="formData.drug2"></el-input>
</el-form-item>
<el-form-item label="相互作用效果" prop="reaction">
<el-input v-model="formData.reaction"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="submitForm('drugForm')"> </el-button>
</div>
</el-dialog>
<el-dialog title="编辑药品作用" :visible.sync="editVisible">
<el-form :model="changeUser" :rules="editRules" ref="editForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="药品A名称" prop="drug1">
<el-input v-model="changeUser.drug1"></el-input>
</el-form-item>
<el-form-item label="药品B名称" prop="drug2">
<el-input v-model="changeUser.drug2"></el-input>
</el-form-item>
<el-form-item label="相互作用效果" prop="reaction">
<el-input v-model="changeUser.reaction"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="editVisible = false"> </el-button>
<el-button type="primary" @click="submitEditForm('editForm')"> </el-button>
</div>
</el-dialog>
<div class="pagination">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="1"
:page-sizes="[10, 15, 20, 25]"
:page-size="10"
layout="total, sizes, prev, pager, next, jumper"
:total=this.pagination.total>
</el-pagination>
</div>
</div>
</div>
</template>
<script>
import {addTable1, listTable1, listTotal} from "../../utils/table1";
import axios from "axios";
export default {
data() {
return {
pagination: {
current: 1,
size: 10,
total: 0,
searchKey: "",
userStatus: null,
userType: null
},
users: [],
table1List: [
],
//
queryParams: {
pageNum: 1,
pageSize: 10,
drug1: null,
drug2: null,
reaction: null
},
//
formData: {
drug1: "",
drug2: "",
reaction: ""
},
dialogVisible: false,
rules: {
drug1: [
{ required: true, message: "请输入药品A名称", trigger: "blur" }
],
drug2: [
{ required: true, message: "请输入药品B名称", trigger: "blur" }
],
reaction: [
{ required: true, message: "请输入相互作用效果", trigger: "blur" }
]
},
editVisible: false,
changeUser: {
id: null,
drug1: null,
drug2: null,
reaction: null
},
editRules: {
drug1: [
{ required: true, message: "请输入药品A名称", trigger: "blur" }
],
drug2: [
{ required: true, message: "请输入药品B名称", trigger: "blur" }
],
reaction: [
{ required: true, message: "请输入相互作用效果", trigger: "blur" }
]
}
}
},
computed: {},
watch: {},
created() {
// this.getUsers();
this.handleQuery();
},
mounted() {
},
methods: {
//
addDrugs(){
this.dialogVisible = true;
},
/** 查询药品作用列表条数 */
getTotal() {
listTotal(this.queryParams).then(response => {
this.pagination.total = parseInt(response);
console.log(this.pagination.total);
});
},
handleSizeChange(val) {
this.queryParams.pageSize = val; //
this.getList();
},
handleCurrentChange(val) {
this.queryParams.pageNum = val; //
this.getList();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
this.getTotal();
},
/** 查询药品作用管理列表 */
getList() {
// this.loading = true;
this.table1List = []; //
listTable1(this.queryParams).then(response => {
this.table1List = response;
});
},
clearSearch() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
drug1: null,
drug2: null,
reaction: null
}
},
handlePageChange(val) {
this.pagination.current = val;
this.getUsers();
},
//
submitForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
addTable1(this.formData).then(() => {
this.dialogVisible = false;
this.getList();
this.getTotal();
this.$message({
message: "新增成功",
type: "success"
});
}).catch((error) => {
this.$message.error(error);
});
} else {
return false;
}
});
},
//
handleEdit(row) {
this.changeUser.id = row.id;
this.changeUser.drug1 = row.drug1;
this.changeUser.drug2 = row.drug2;
this.changeUser.reaction = row.reaction;
this.editVisible = true;
},
submitEditForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
axios.put(`/system/table1/`, this.changeUser)
.then(() => {
this.editVisible = false; //
this.getList(); //
this.getTotal(); //
this.$message({
message: "编辑成功",
type: "success"
});
})
.catch(error => {
this.$message.error("编辑失败:" + error.message);
});
} else {
return false;
}
});
},
//
handleDelete(row) {
this.$confirm("此操作将永久删除该药品作用, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
axios.delete(`/system/table1/${row.id}`)
.then(() => {
this.getList();
this.getTotal();
this.$message({
message: "删除成功",
type: "success"
});
})
.catch(error => {
this.$message.error("删除失败:" + error.message);
});
}).catch(() => {});
}
}
}
</script>
<style scoped>
.handle-box {
margin-bottom: 20px;
}
.handle-select {
width: 120px;
}
.handle-input {
width: 160px;
display: inline-block;
}
.table {
width: 100%;
font-size: 14px;
}
.mrb10 {
margin-right: 10px;
margin-bottom: 10px;
}
.table-td-thumb {
display: block;
margin: auto;
width: 40px;
height: 40px;
}
.pagination {
margin: 20px 0;
text-align: right;
}
.el-switch {
margin: 5px;
}
</style>

@ -12,8 +12,8 @@
<el-table-column prop="id" label="ID" width="55" align="center"></el-table-column>
<el-table-column prop="userId" label="用户ID" align="center"></el-table-column>
<el-table-column prop="manName" label="男生昵称" align="center"></el-table-column>
<el-table-column prop="womanName" label="女生昵称" align="center"></el-table-column>
<el-table-column prop="manName" label="科研人员" align="center"></el-table-column>
<el-table-column prop="womanName" label="项目" align="center"></el-table-column>
<el-table-column label="背景封面" align="center">
<template slot-scope="scope">

@ -20,7 +20,7 @@
<el-table-column prop="username" label="用户名" align="center"></el-table-column>
<el-table-column prop="phoneNumber" label="手机号" align="center"></el-table-column>
<el-table-column prop="email" label="邮箱" align="center"></el-table-column>
<el-table-column label="赞赏" width="100" align="center">
<el-table-column label="援助" width="100" align="center">
<template slot-scope="scope">
<el-input size="medium" maxlength="30" v-model="scope.row.admire"
@blur="changeUserAdmire(scope.row)"></el-input>

@ -1,20 +1,51 @@
<template>
<div>
<div class="welcome-title">
<h2 class="playful">
<span></span>
<span></span>
<span></span>
<span></span>
</h2>
<div class="home">
<h1>欢迎来到后台管理界面</h1>
<p>这里你能够管理所有的配置</p>
<div class="stats-container">
<div class="stat-card">
<div class="stat-icon">
<i class="fas fa-users"></i>
</div>
<div class="stat-info">
<h2>网站今日访问量</h2>
<p>{{historyInfo.ip_count_today}}</p>
</div>
</div>
<div class="stats-container">
<div class="stat-card">
<div class="stat-icon">
<i class="fas fa-users"></i>
</div>
<div class="stat-info">
<h2>网站昨日访问量</h2>
<p>{{historyInfo.ip_count_yest}}</p>
</div>
</div>
</div>
<div class="stat-card">
<div class="stat-icon">
<i class="fas fa-shopping-cart"></i>
</div>
<div class="stat-info">
<h2>网站总访问量</h2>
<p>{{historyInfo.ip_history_count}}</p>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
export default {
data() {
return {}
return {
historyInfo: {}
};
},
computed: {},
@ -22,85 +53,74 @@
watch: {},
created() {
this.getHistoryInfo();
},
mounted() {
},
mounted() {},
methods: {}
methods: {
getHistoryInfo() {
this.$http.get(this.$constant.baseURL + "/webInfo/getHistoryInfo", {}, true)
.then((res) => {
if (!this.$common.isEmpty(res.data)) {
this.historyInfo = res.data;
}
})
.catch((error) => {
this.$message({
message: error.message,
type: "error"
});
});
}
}
};
</script>
<style scoped>
.welcome-title {
.home {
text-align: center;
font-size: 50px;
font-weight: bold;
}
.playful span {
position: relative;
color: #5362f6;
text-shadow: 0.25px 0.25px #e485f8, 0.5px 0.5px #e485f8, 0.75px 0.75px #e485f8,
1px 1px #e485f8, 1.25px 1.25px #e485f8, 1.5px 1.5px #e485f8, 1.75px 1.75px #e485f8,
2px 2px #e485f8, 2.25px 2.25px #e485f8, 2.5px 2.5px #e485f8, 2.75px 2.75px #e485f8,
3px 3px #e485f8, 3.25px 3.25px #e485f8, 3.5px 3.5px #e485f8, 3.75px 3.75px #e485f8,
4px 4px #e485f8, 4.25px 4.25px #e485f8, 4.5px 4.5px #e485f8, 4.75px 4.75px #e485f8,
5px 5px #e485f8, 5.25px 5.25px #e485f8, 5.5px 5.5px #e485f8, 5.75px 5.75px #e485f8,
6px 6px #e485f8;
animation: scatter 1.75s infinite;
font-weight: normal;
}
.playful span:nth-child(2n) {
color: #ed625c;
text-shadow: 0.25px 0.25px #f2a063, 0.5px 0.5px #f2a063, 0.75px 0.75px #f2a063,
1px 1px #f2a063, 1.25px 1.25px #f2a063, 1.5px 1.5px #f2a063, 1.75px 1.75px #f2a063,
2px 2px #f2a063, 2.25px 2.25px #f2a063, 2.5px 2.5px #f2a063, 2.75px 2.75px #f2a063,
3px 3px #f2a063, 3.25px 3.25px #f2a063, 3.5px 3.5px #f2a063, 3.75px 3.75px #f2a063,
4px 4px #f2a063, 4.25px 4.25px #f2a063, 4.5px 4.5px #f2a063, 4.75px 4.75px #f2a063,
5px 5px #f2a063, 5.25px 5.25px #f2a063, 5.5px 5.5px #f2a063, 5.75px 5.75px #f2a063,
6px 6px #f2a063;
animation-delay: 0.3s;
}
.playful span:nth-child(3n) {
color: #ffd913;
text-shadow: 0.25px 0.25px #6ec0a9, 0.5px 0.5px #6ec0a9, 0.75px 0.75px #6ec0a9,
1px 1px #6ec0a9, 1.25px 1.25px #6ec0a9, 1.5px 1.5px #6ec0a9, 1.75px 1.75px #6ec0a9,
2px 2px #6ec0a9, 2.25px 2.25px #6ec0a9, 2.5px 2.5px #6ec0a9, 2.75px 2.75px #6ec0a9,
3px 3px #6ec0a9, 3.25px 3.25px #6ec0a9, 3.5px 3.5px #6ec0a9, 3.75px 3.75px #6ec0a9,
4px 4px #6ec0a9, 4.25px 4.25px #6ec0a9, 4.5px 4.5px #6ec0a9, 4.75px 4.75px #6ec0a9,
5px 5px #6ec0a9, 5.25px 5.25px #6ec0a9, 5.5px 5.5px #6ec0a9, 5.75px 5.75px #6ec0a9,
6px 6px #6ec0a9;
animation-delay: 0.15s;
}
.playful span:nth-child(5n) {
color: #555bff;
text-shadow: 0.25px 0.25px #e485f8, 0.5px 0.5px #e485f8, 0.75px 0.75px #e485f8,
1px 1px #e485f8, 1.25px 1.25px #e485f8, 1.5px 1.5px #e485f8, 1.75px 1.75px #e485f8,
2px 2px #e485f8, 2.25px 2.25px #e485f8, 2.5px 2.5px #e485f8, 2.75px 2.75px #e485f8,
3px 3px #e485f8, 3.25px 3.25px #e485f8, 3.5px 3.5px #e485f8, 3.75px 3.75px #e485f8,
4px 4px #e485f8, 4.25px 4.25px #e485f8, 4.5px 4.5px #e485f8, 4.75px 4.75px #e485f8,
5px 5px #e485f8, 5.25px 5.25px #e485f8, 5.5px 5.5px #e485f8, 5.75px 5.75px #e485f8,
6px 6px #e485f8;
animation-delay: 0.4s;
}
.playful span:nth-child(7n) {
color: #ff9c55;
text-shadow: 0.25px 0.25px #ff5555, 0.5px 0.5px #ff5555, 0.75px 0.75px #ff5555,
1px 1px #ff5555, 1.25px 1.25px #ff5555, 1.5px 1.5px #ff5555, 1.75px 1.75px #ff5555,
2px 2px #ff5555, 2.25px 2.25px #ff5555, 2.5px 2.5px #ff5555, 2.75px 2.75px #ff5555,
3px 3px #ff5555, 3.25px 3.25px #ff5555, 3.5px 3.5px #ff5555, 3.75px 3.75px #ff5555,
4px 4px #ff5555, 4.25px 4.25px #ff5555, 4.5px 4.5px #ff5555, 4.75px 4.75px #ff5555,
5px 5px #ff5555, 5.25px 5.25px #ff5555, 5.5px 5.5px #ff5555, 5.75px 5.75px #ff5555,
6px 6px #ff5555;
animation-delay: 0.25s;
}
padding: 20px;
}
h1 {
font-size: 32px;
color: #333;
margin-bottom: 20px;
}
p {
font-size: 18px;
color: #666;
margin-bottom: 40px;
}
.stats-container {
display: flex;
justify-content: space-around;
}
.stat-card {
background-color: #f2f2f2;
padding: 20px;
border-radius: 5px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.stat-icon {
font-size: 24px;
color: #333;
margin-bottom: 10px;
}
.stat-info h2 {
font-size: 18px;
color: #333;
margin-bottom: 5px;
}
.stat-info p {
font-size: 14px;
color: #666;
}
</style>

@ -187,7 +187,7 @@
overflow: hidden;
border-radius: 10px;
animation: hideToShow 1s ease-in-out;
background-color: #1d1f21;
//background-color: #1d1f21;
}
.recent-post-item-image {

@ -24,15 +24,11 @@
</a>
</div>
<div style="display: inline-block;position: absolute;left: 470px;top: 208px; width: fit-content">
<!-- 写博客按钮 -->
<!-- <button class="write-blog-btn" @click="showEditor = true">-->
<!-- 写个人博客-->
<!-- </button>-->
<div style="text-align: center;display: inline-block">
<button class="publicBlog" @click="showPostEditor = true"> 写博客</button>
</div>
</div>
<!--公开文章-->
<!--公开文章编辑-->
<div id="editorPost" v-if="showPostEditor" style="background-color: #efe5fa;padding-bottom: 10px;margin-left: 35px;margin-right: 35px;border-radius: 10px;box-shadow: 0px 10px 10px 10px #d9c8fc; ">
<div>
<el-tag effect="dark" class="my-tag">
@ -253,7 +249,7 @@
{{ article.articleContent }}
</div>
<!-- 分类 标签 -->
<div class="sort-label" @click="$router.push({path: '/article', query: {id: article.id}})">
<div class="sort-label">
<span style="margin-right: 12px"
@click.stop="$router.push({path: '/sort', query: {sortId: article.sortId}})">
<svg viewBox="0 0 1024 1024" width="15" height="15" style="vertical-align: -3px;">
@ -285,17 +281,17 @@
</svg> {{ article.labelName }}
</span>
<span style="margin-left: 7px">
</div>
</div>
<span style="margin-left: 340px;z-index: 99">
<el-button type="text" icon="el-icon-edit" @click="handleEdit(article)"></el-button>
<el-button type="text" icon="el-icon-delete" style="margin-left: 7px;color: var(--orangeRed)" @click="handleDelete(article)">
删除
</el-button>
</span>
</div>
</div>
</div>
</div>
@ -373,7 +369,6 @@ export default {
showUpdateBtn: false,
showSaveBtn: true,
articleSearch: "",
// showEditor: false,
showPostEditor: false,
blogContent: "",
blogContentTitle:"",
@ -568,11 +563,11 @@ export default {
},
submitForm(formName) {
if (this.article.viewStatus === false && this.$common.isEmpty(this.article.password)) {
this.$message({
message: "文章不可见时必须输入密码!",
type: "error"
});
return;
// this.$message({
// message: "",
// type: "error"
// });
// return;
}
this.$refs[formName].validate((valid) => {
if (valid) {
@ -592,12 +587,14 @@ export default {
},
submitForm2() {
if (this.article.viewStatus === false && this.$common.isEmpty(this.article.password)) {
this.$message({
message: "文章不可见时必须输入密码!",
type: "error"
});
return;
// this.$message({
// message: "",
// type: "error"
// });
// return;
}
this.article.userId = this.$store.state.currentUser.id;
console.log(this.$store.state.currentUser.id)
this.saveArticle(this.article, "/article/updateArticle")
},
resetForm(formName) {
@ -828,131 +825,6 @@ export default {
showTip() {
this.$router.push({path: '/weiYan'});
},
cancelEdit() {
//
this.showEditor = false;
this.showUpdateBtn = false;
this.showPublishBtn = true;
this.blogContent = "";
this.blogContentTitle = "";
},
saveBlog() {
let selectedIndex = this.selectedCategoryIndex+1;
console.log('选中的分类索引号为:' + selectedIndex);
const articleVO = {
userId:this.$store.state.currentUser.id,
articleContent: this.blogContent ,//
articleTitle:this.blogContentTitle,
// ...
sortId:1,
labelId:selectedIndex,
articleCover:this.articleUp.articleCover,
viewStatus: 0,
commentStatus: 0,
recommendStatus: 0
};
console.log(this.$store.state.currentUser)
console.log(this.articleUp.articleCover+"cover")
// console.log("index:"+document.getElementById('category').select)
this.$http.post('/article/saveArticle', articleVO)
.then(response => {
//
console.log('博客保存成功!');
this.getUserArticles();
this.showEditor = false;
this.blogContent = "";
this.blogContentTitle = "";
this.$message({
message: '发布成功',
type: 'success'
});
})
.catch(error => {
//
console.error('博客保存失败:', error);
this.$message({
message: '发布失败',
type: 'error'
});
});
},
deleteArticle(article){
//
this.$http.get(`/article/deleteArticle?id=${article.id}`)
// .then(response => response.json())
.then(response => {
//
console.log('博客删除成功!');
console.log(response)
this.getUserArticles()
this.getUserArticleLabelTotalNum()
})
.catch(error => {
//
console.error('删除博客失败:', error);
});
},
updateArticle(article) {
this.showPostEditor = true;
this.blogContentTitle = article.articleTitle;
this.blogContent = article.articleContent;
this.selectedCategoryIndex = article.labelId - 1; //
this.articleUp.id = article.id;
// this.blogLabelName
// #editorArea
const editorArea = document.getElementById('editorArea');
if (editorArea) {
editorArea.scrollIntoView({ behavior: "smooth", block: "start" });
} else {
console.log("#editorArea not found");
}
},
// updateBlog(){
// this.blogContentTitle = document.getElementById('areaTitle').value
// this.blogContent = document.getElementById('areaContent').value
// // document.getElementById('category').
// this.articleUp.articleContent = document.getElementById('areaContent').value
// this.articleUp.articleTitle = document.getElementById('areaTitle').value
// this.articleUp.username = this.$store.state.currentUser.username
// this.articleUp.labelId = this.selectedCategoryIndex+1
//
// //
// this.$http.post('/article/updateArticle', this.articleUp)
// .then(response => {
// //
// console.log('');
//
// console.log(response)
// this.getUserArticles()
// this.getUserArticleLabelTotalNum()
// this.$message({
// message: '',
// type: 'success'
// });
// this.showEditor = false;
// this.showPublishBtn = true;
// this.showUpdateBtn = false;
// this.blogContent = "";
// this.blogContentTitle = "";
// })
// .catch(error => {
// //
// console.error('', error);
// this.$message({
// message: '',
// type: 'error'
// });
// this.showPublishBtn = true;
// this.showUpdateBtn = false;
// this.blogContent = "";
// this.blogContentTitle = "";
// });
// },
getBlogLabels() {
const url = "/webInfo/listLabel";
console.log("gettingLabels");
@ -962,22 +834,13 @@ export default {
console.log(response.data.data)
const labels = response.data.data;
this.blogLabels = Object.values(labels).map(label => label.labelName);
// blogLabels
// this.blogLabels = labels;
})
.catch(error => {
//
console.error(error);
});
},
handleFileChange() {
let file0 = this.$refs.fileInput.files[0];
this.file = file0;
console.log('上传的文件:', file0);
//
}
}
}
</script>

@ -2,7 +2,7 @@
<div class="myFooter-wrap" v-show="showFooter">
<div class="myFooter">
<div class="footer-title">{{$store.state.webInfo.footer}}</div>
<div class="icp">本网站由 <a href="https://poetize.cn" target="_blank">Poetize</a> 强力支持</div>
<div class="icp">或许所有的努力都会失败但即使是战死在这条路上我也不要被疾病摧残而死我别无选择</div>
</div>
</div>
</template>

@ -10,27 +10,27 @@
<div style="position: absolute;left: 0;top: 0;padding: 20px">
<!-- 标题 -->
<div style="color: var(--white);margin: 10px">
<div>
记录
</div>
<!-- <div>-->
<!-- 记录-->
<!-- </div>-->
<div style="font-size: 36px;font-weight: bold;line-height: 2">
百宝箱
医院推荐
</div>
</div>
<div class="card-container">
<!-- 收藏夹 -->
<div @click="changeFavorite(1)"
class="card-item">
<div class="favorite-image"></div>
<div style="position: absolute;left: 0;top: 0;padding: 20px 25px 15px">
<div class="card-name">
收藏夹
</div>
<div class="card-desc">
poetize.cn 添加到您的收藏夹吧
</div>
</div>
</div>
<!-- <div @click="changeFavorite(1)"-->
<!-- class="card-item">-->
<!-- <div class="favorite-image"></div>-->
<!-- <div style="position: absolute;left: 0;top: 0;padding: 20px 25px 15px">-->
<!-- <div class="card-name">-->
<!-- 收藏夹-->
<!-- </div>-->
<!-- <div class="card-desc">-->
<!-- poetize.cn 添加到您的收藏夹吧-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
</div>
</div>
</div>

@ -41,7 +41,7 @@
<!-- 预测研发流程 -->
<li @click="$router.push({path: '/love'})">
<div class="my-menu">
🥼 <span>预测研发流程</span>
🥼 <span>研发流程</span>
</div>
</li>
@ -53,17 +53,17 @@
</li>
<!-- 旅拍 -->
<li @click="$router.push({path: '/travel'})">
<div class="my-menu">
📷 <span>记录</span>
🌏 <span>照片</span>
</div>
</li>
<!-- 百宝箱 -->
<li @click="$router.push({path: '/favorite'})">
<div class="my-menu">
🧰 <span>百宝箱</span>
🧰 <span>医院推荐</span>
</div>
</li>
@ -74,11 +74,11 @@
</div>
</li>
<!-- 音乐 -->
<li @click="$router.push({path: '/funny'})">
<div class="my-menu">
🎺 <span>曲乐</span>
</div>
</li>
<!-- <li @click="$router.push({path: '/funny'})">-->
<!-- <div class="my-menu">-->
<!-- 🎺 <span>曲乐</span>-->
<!-- </div>-->
<!-- </li>-->
<!-- 留言 -->
<li @click="$router.push({path: '/message'})">
<div class="my-menu">
@ -86,11 +86,11 @@
</div>
</li>
<!-- 友人帐 -->
<li @click="$router.push({path: '/friend'})">
<div class="my-menu">
💃 <span>友人帐</span>
</div>
</li>
<!-- <li @click="$router.push({path: '/friend'})">-->
<!-- <div class="my-menu">-->
<!-- 💃 <span>友人帐</span>-->
<!-- </div>-->
<!-- </li>-->
<!-- 关于 -->
<li @click="$router.push({path: '/about'})">

@ -25,8 +25,7 @@
<!-- 首页文字 -->
<div class="signature-wall myCenter my-animation-hideToShow">
<h1 class="playful">
<p> </p>
<!--<span v-for="(a, index) in $store.state.webInfo.webTitle" :key="index">{{a}}</span>-->
<span v-for="(a, index) in $store.state.webInfo.webTitle" :key="index">{{a}}</span>
</h1>
<!-- 搜索 -->
@ -83,13 +82,11 @@
<div class="announcement background-opacity">
<i class="fa fa-volume-up" aria-hidden="true"></i>
<div>
<!-- <div v-for="(notice, index) in $store.state.webInfo.notices" :key="index">-->
<!-- {{ notice }}-->
<!-- </div>-->
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;世界上只有一种真正的英雄主义那就是看清生活的真相之后依然勇敢地热爱生活
<div v-for="(notice, index) in $store.state.webInfo.notices" :key="index">
{{ notice }}
</div>
</div>
</div>
<articleList :articleList="articles"></articleList>
<template>
<div class="shadow-box pagination-wrap background-opacity">
@ -114,12 +111,24 @@
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage1"
:page-sizes="[10, 15, 20, 15]"
:page-sizes="[10, 15, 20, 25]"
:page-size="10"
layout="total, sizes, prev, pager, next, jumper"
:total=this.pagination.total>
</el-pagination>
</div>
<articleList :articleList="articles"></articleList>
<div class="pagination-wrap">
<div @click="pageArticles()" class="pagination" v-if="pagination.total !== articles.length">
下一页
</div>
<div v-else style="user-select: none">
~~到底啦~~
</div>
</div>
</template>
@ -248,13 +257,13 @@ export default {
};
this.articles = [];
await this.getArticles();
this.$nextTick(() => {
document.querySelector('.recent-posts').scrollIntoView({
behavior: "smooth",
block: "start",
inline: "nearest"
});
});
// this.$nextTick(() => {
// document.querySelector('.recent-posts').scrollIntoView({
// behavior: "smooth",
// block: "start",
// inline: "nearest"
// });
// });
},
async selectArticle(articleSearch) {
this.pagination = {

@ -9,7 +9,7 @@
:size="120"
:src="!$common.isEmpty($store.state.currentUser)?$store.state.currentUser.avatar:$store.state.webInfo.avatar">
</el-avatar>
<div class="web-name">{{webInfo.webName}}</div>
<div class="web-name">{{this.$store.state.currentUser.username}}</div>
<div class="web-info">
<div class="blog-info-box">
<span>文章</span>
@ -52,6 +52,39 @@
</div>
</div>
<!-- 分类 -->
<div class="shadow-box background-opacity wow"
style="margin-top: 30px;padding: 25px 25px 5px;border-radius: 10px;animation: hideToShow 1s ease-in-out">
<div class="card-content2-title">
<i class="el-icon-folder-opened card-content2-icon"></i>
<span>药品简述</span>
</div>
<!-- <div v-for="(sort, index) in sortInfo"-->
<!-- :key="index"-->
<!-- class="post-sort"-->
<!-- @click="$router.push({path: '/sort', query: {sortId: sort.id}})">-->
<!-- <div>-->
<!-- <span v-for="(s, i) in sort.sortName.split('')" :key="i">{{ s }}</span>-->
<!-- </div>-->
<!-- </div>-->
{{drugDetails}}
</div>
<!-- 速览 -->
<div v-for="(sort, index) in sortInfo"
@click="selectSort(sort)"
:key="index"
:style="{background: $constant.sortColor[index % $constant.sortColor.length]}"
class="shadow-box-mini background-opacity wow"
style="position: relative;padding: 10px 25px 15px;border-radius: 10px;animation: hideToShow 1s ease-in-out;margin-top: 30px;cursor: pointer;color: var(--white)">
<div>速览</div>
<div class="sort-name">
{{sort.sortName}}
</div>
<div style="font-weight: bold;margin-top: 15px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden">
{{sort.sortDescription}}
</div>
</div>
<!-- 推荐文章 -->
<div v-if="!$common.isEmpty(recommendArticles)"
style="padding: 25px;border-radius: 10px;margin-top: 30px;animation: hideToShow 1s ease-in-out"
@ -84,38 +117,21 @@
</div>
<!-- 速览 -->
<div v-for="(sort, index) in sortInfo"
@click="selectSort(sort)"
:key="index"
:style="{background: $constant.sortColor[index % $constant.sortColor.length]}"
class="shadow-box-mini background-opacity wow"
style="position: relative;padding: 10px 25px 15px;border-radius: 10px;animation: hideToShow 1s ease-in-out;margin-top: 30px;cursor: pointer;color: var(--white)">
<div>速览</div>
<div class="sort-name">
{{sort.sortName}}
</div>
<div style="font-weight: bold;margin-top: 15px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden">
{{sort.sortDescription}}
</div>
</div>
<!-- 分类 -->
<div class="shadow-box background-opacity wow"
style="margin-top: 30px;padding: 25px 25px 5px;border-radius: 10px;animation: hideToShow 1s ease-in-out">
<div class="card-content2-title">
<i class="el-icon-folder-opened card-content2-icon"></i>
<span>药品简述</span>
</div>
<!-- <div v-for="(sort, index) in sortInfo"-->
<!-- @click="selectSort(sort)"-->
<!-- :key="index"-->
<!-- class="post-sort"-->
<!-- @click="$router.push({path: '/sort', query: {sortId: sort.id}})">-->
<!-- <div>-->
<!-- <span v-for="(s, i) in sort.sortName.split('')" :key="i">{{ s }}</span>-->
<!-- :style="{background: $constant.sortColor[index % $constant.sortColor.length]}"-->
<!-- class="shadow-box-mini background-opacity wow"-->
<!-- style="position: relative;padding: 10px 25px 15px;border-radius: 10px;animation: hideToShow 1s ease-in-out;margin-top: 30px;cursor: pointer;color: var(&#45;&#45;white)">-->
<!-- <div>速览</div>-->
<!-- <div class="sort-name">-->
<!-- {{sort.sortName}}-->
<!-- </div>-->
<!-- <div style="font-weight: bold;margin-top: 15px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden">-->
<!-- {{sort.sortDescription}}-->
<!-- </div>-->
<!-- </div>-->
{{drugDetails}}
</div>
<!-- 赞赏 -->
<div class="shadow-box-mini background-opacity wow admire-box"
@ -130,15 +146,14 @@
<el-avatar
style="margin-bottom: 10px"
:size="36"
:src="!$common.isEmpty($store.state.currentUser)?$store.state.currentUser.avatar:$store.state.webInfo.avatar">
:src="item.avatar ">
</el-avatar>
<div style="margin-left: 10px;height: 36px;line-height: 36px;overflow: hidden;max-width: 80px">
{{ item.username }}
</div>
</div>
<div style="height: 36px;line-height: 36px">
<!-- {{ item.admire }}-->
500
{{ item.admire }}
</div>
</div>
</vue-seamless-scroll>

@ -11,7 +11,7 @@
<!-- 标题 -->
<div style="margin: 10px">
<div style="font-size: 36px;font-weight: bold;line-height: 1.5;margin-top: 20px">
让照片留下医药学的足迹
健康亲情和爱要比成功名利更重要
</div>
</div>
</div>
@ -89,6 +89,7 @@ export default {
created() {
this.getPhotoTitles();
this.changePhotoTitle("公益计划");
},
mounted() {

@ -83,7 +83,7 @@
<div v-if="!$common.isEmpty(currentUser.phoneNumber)">
{{ currentUser.phoneNumber }} <span class="changeInfo" @click="changeDialog('修改手机号')"></span>
</div>
<div v-else><span class="changeInfo" @click="changeDialog('绑定手机号')"></span></div>
<div v-else><span class="changeInfo" @click="changeDialog('绑定手机号')"></span></div>
</div>
<div>
<div v-if="!$common.isEmpty(currentUser.email)">

@ -123,7 +123,13 @@ const routes = [
path: '/resourcePathList',
name: 'resourcePathList',
component: () => import('../components/admin/resourcePathList')
}]
},
, {
path: '/drugReaction',
name: 'drugReaction',
component: () => import('../components/admin/drugReaction')
}
]
},
{
path: '/verify',

@ -18,7 +18,7 @@ export default {
//前后端定义的密钥AES使用16位
cryptojs_key: "aoligeimeimaobin",
qiniuUrl: "https://upload.qiniup.com",
qiniuDownload: "http://s6qc8qkjn.hd-bkt.clouddn.com/",
qiniuDownload: "http://s6ondx7d9.hd-bkt.clouddn.com/",
favoriteVideo: "http://s6q4ppvdk.hd-bkt.clouddn.com/new.mp4",
favoriteVideo2: "http://s6q4ppvdk.hd-bkt.clouddn.com/images/340c8040d037c2f3217e8a1ade444fc8.mp4",
@ -26,7 +26,7 @@ export default {
loveWeiYan: "https://s1.ax1x.com/2022/12/04/zsKgDs.jpg",
loveMessage: "https://s1.ax1x.com/2022/12/04/zsKgDs.jpg",
lovePhoto: "https://s1.ax1x.com/2022/12/04/zsKh5V.jpg",
loveLike: "https://cdn.cbd.int//hexo-butterfly-envelope/lib/violet.jpg",
// loveLike: "https://cdn.cbd.int//hexo-butterfly-envelope/lib/violet.jpg",
loveSortId: 1,
loveLabelId: 1,
@ -34,14 +34,15 @@ export default {
friendLetterTop: "https://cdn.cbd.int/hexo-butterfly-envelope/lib/before.png",
friendLetterBottom: "https://cdn.cbd.int/hexo-butterfly-envelope/lib/after.png",
friendLetterBiLi: "https://cdn.cbd.int/hexo-butterfly-envelope/lib/line.png",
friendLetterMiddle: "https://cdn.cbd.int//hexo-butterfly-envelope/lib/violet.jpg",
friendLetterMiddle: "http://s6ondx7d9.hd-bkt.clouddn.com/images/R-C%281%29.jpg",
before_color_list: ["#ff4b2b", "#EF794F", "#67C23A", "orange", "rgb(131, 123, 199)", "#23d5ab"],
tree_hole_color: ["#ee7752", "#e73c7e", "#23a6d5", "#23d5ab", "rgb(131, 123, 199)", "#23d5ab"],
two_poem_image: ["https://s1.ax1x.com/2022/12/04/zsKgDs.jpg",
"https://s1.ax1x.com/2022/12/04/zsKh5V.jpg"],
// two_poem_image: ["https://s1.ax1x.com/2022/12/04/zsKgDs.jpg",
// "https://s1.ax1x.com/2022/12/04/zsKh5V.jpg"],
two_poem_image: ["https://s11.ax1x.com/2024/01/11/pF9HX24.jpg"],
before_color_1: "black",
after_color_1: "linear-gradient(45deg, #f43f3b, #ec008c)",

@ -52,7 +52,7 @@ export function predictReaction(mol1, mol2) {
// })
// }
// // 新增药品作用管理
// export function addTable1(data) {
// return request({
// url: '/system/table1',
@ -60,7 +60,14 @@ export function predictReaction(mol1, mol2) {
// data: data
// })
// }
//
export function addTable1(data) {
const url = '/system/table1';
return axios.post(url, data)
.then(response => response.data)
.catch(error => console.error(error));
}
// // 修改药品作用管理
// export function updateTable1(data) {
// return request({

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

Loading…
Cancel
Save