Browse Source

添加 添加文章与复制功能

master V0.1.4
zhangyj-html 3 years ago
parent
commit
6564c02b9b
  1. 2
      dist/css/app.2ba28ef4.css
  2. 2
      dist/index.html
  3. 2
      dist/js/app.a7c40410.js
  4. 1
      dist/js/app.a7c40410.js.map
  5. 2
      dist/js/app.d361711a.js
  6. 1
      dist/js/app.d361711a.js.map
  7. 9
      src/api/admin.js
  8. 2
      src/api/upload.js
  9. 74
      src/views/Home.vue
  10. 15
      vue.config.js

2
dist/css/app.f500aa5e.css → dist/css/app.2ba28ef4.css

@ -1 +1 @@
body,html{height:100%}body{margin:0}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;height:100%}::-webkit-scrollbar{width:7px!important;height:7px}::-webkit-scrollbar-track{border-radius:10px;background-color:#e7e7e7}::-webkit-scrollbar-thumb{border-radius:10px;background-color:#909399}.el-dialog__wrapper .el-dialog .el-dialog__body .box_style .demo-ruleForm .el-row{margin-left:0!important;margin-right:0!important}.box_style[data-v-940a84bc]{overflow-y:auto}.index[data-v-087ec562]{padding:10px 30px 10px;height:100%;display:flex;flex-direction:column;background-color:#fff;border-radius:5px;box-sizing:border-box}.index .search_b[data-v-087ec562]{margin-bottom:0;padding:5px 0}.index .search_b[data-v-087ec562] .search_form{flex:1}.index .search_b[data-v-087ec562] .search_form .el-row{margin-left:0!important;margin-right:0!important}.index .search_b[data-v-087ec562] .el-form-item{margin-bottom:0;display:flex}.index .search_b[data-v-087ec562] .el-form-item .el-form-item__content{flex:1}.index .search_b[data-v-087ec562] .btn_b .el-button{margin:0}.index .search_b[data-v-087ec562] .btn_b .el-button:not(:first-child){margin-top:10px}.index .add_count_b[data-v-087ec562]{padding:8px 0;border-top:1px solid #ebeef5}.index .add_count_b .total_b[data-v-087ec562]{font-size:14px;color:#606266}.index .page_b[data-v-087ec562]{display:flex;align-items:center;justify-content:space-between;padding:5px 0}.index .el-table[data-v-087ec562] .el-image-viewer__wrapper .el-image-viewer__close{color:#fff}.index .demo-ruleForm .el-row[data-v-087ec562]{margin-left:0!important;margin-right:0!important}.index .label[data-v-087ec562]{width:150px}.index .el-dropdown-link[data-v-087ec562]{cursor:pointer;color:#1890ff;font-size:12px}.index .el-icon-arrow-down[data-v-087ec562]{font-size:12px}.detail_item{border-bottom:1px dashed #eee;padding:0 10px;border-radius:5px;line-height:30px;min-height:30px}.el-upload-list__item{transition:none!important}.u-f{display:flex}.u-fdc{flex-direction:column}.u-as{align-items:flex-start}.u-ac{align-items:center}.u-ae{align-items:flex-end}.u-jcs{justify-content:flex-start}.u-jcc{justify-content:center}.u-jce{justify-content:flex-end}.u-jca{justify-content:space-around}.u-jcb{justify-content:space-between}.u-flex{flex:1}.u-fcc{justify-content:center}.u-fcb,.u-fcc{display:flex;align-items:center}.u-fcb{justify-content:space-between}.u-fca{display:flex;align-items:center;justify-content:space-around}
body,html{height:100%}body{margin:0}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;height:100%}::-webkit-scrollbar{width:7px!important;height:7px}::-webkit-scrollbar-track{border-radius:10px;background-color:#e7e7e7}::-webkit-scrollbar-thumb{border-radius:10px;background-color:#909399}.el-dialog__wrapper .el-dialog .el-dialog__body .box_style .demo-ruleForm .el-row{margin-left:0!important;margin-right:0!important}.box_style[data-v-940a84bc]{overflow-y:auto}.index[data-v-6a65a812]{padding:10px 30px 10px;height:100%;display:flex;flex-direction:column;background-color:#fff;border-radius:5px;box-sizing:border-box}.index .search_b[data-v-6a65a812]{margin-bottom:0;padding:5px 0}.index .search_b[data-v-6a65a812] .search_form{flex:1}.index .search_b[data-v-6a65a812] .search_form .el-row{margin-left:0!important;margin-right:0!important}.index .search_b[data-v-6a65a812] .el-form-item{margin-bottom:0;display:flex}.index .search_b[data-v-6a65a812] .el-form-item .el-form-item__content{flex:1}.index .search_b[data-v-6a65a812] .btn_b .el-button{margin:0}.index .search_b[data-v-6a65a812] .btn_b .el-button:not(:first-child){margin-top:10px}.index .add_count_b[data-v-6a65a812]{padding:8px 0;border-top:1px solid #ebeef5}.index .add_count_b .total_b[data-v-6a65a812]{font-size:14px;color:#606266}.index .page_b[data-v-6a65a812]{display:flex;align-items:center;justify-content:space-between;padding:5px 0}.index .el-table[data-v-6a65a812] .el-image-viewer__wrapper .el-image-viewer__close{color:#fff}.index .demo-ruleForm .el-row[data-v-6a65a812]{margin-left:0!important;margin-right:0!important}.index .label[data-v-6a65a812]{width:150px}.index .el-dropdown-link[data-v-6a65a812]{cursor:pointer;color:#1890ff;font-size:12px}.index .el-icon-arrow-down[data-v-6a65a812]{font-size:12px}.detail_item{border-bottom:1px dashed #eee;padding:0 10px;border-radius:5px;line-height:30px;min-height:30px}.el-upload-list__item{transition:none!important}.u-f{display:flex}.u-fdc{flex-direction:column}.u-as{align-items:flex-start}.u-ac{align-items:center}.u-ae{align-items:flex-end}.u-jcs{justify-content:flex-start}.u-jcc{justify-content:center}.u-jce{justify-content:flex-end}.u-jca{justify-content:space-around}.u-jcb{justify-content:space-between}.u-flex{flex:1}.u-fcc{justify-content:center}.u-fcb,.u-fcc{display:flex;align-items:center}.u-fcb{justify-content:space-between}.u-fca{display:flex;align-items:center;justify-content:space-around}

2
dist/index.html

@ -1 +1 @@
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>articleadmin</title><link href="/js/about.ed7f9285.js" rel="prefetch"><link href="/css/app.f500aa5e.css" rel="preload" as="style"><link href="/css/chunk-vendors.06c3b195.css" rel="preload" as="style"><link href="/js/app.a7c40410.js" rel="preload" as="script"><link href="/js/chunk-vendors.132157ac.js" rel="preload" as="script"><link href="/css/chunk-vendors.06c3b195.css" rel="stylesheet"><link href="/css/app.f500aa5e.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but articleadmin doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.132157ac.js"></script><script src="/js/app.a7c40410.js"></script></body></html>
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>articleadmin</title><link href="/js/about.ed7f9285.js" rel="prefetch"><link href="/css/app.2ba28ef4.css" rel="preload" as="style"><link href="/css/chunk-vendors.06c3b195.css" rel="preload" as="style"><link href="/js/app.d361711a.js" rel="preload" as="script"><link href="/js/chunk-vendors.132157ac.js" rel="preload" as="script"><link href="/css/chunk-vendors.06c3b195.css" rel="stylesheet"><link href="/css/app.2ba28ef4.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but articleadmin doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.132157ac.js"></script><script src="/js/app.d361711a.js"></script></body></html>

2
dist/js/app.a7c40410.js
File diff suppressed because it is too large
View File

1
dist/js/app.a7c40410.js.map
File diff suppressed because it is too large
View File

2
dist/js/app.d361711a.js
File diff suppressed because it is too large
View File

1
dist/js/app.d361711a.js.map
File diff suppressed because it is too large
View File

9
src/api/admin.js

@ -46,4 +46,13 @@ export function idsReady(data) {
method: 'post',
data
})
}
//复制
export function copyArticle(data) {
return request({
url: '/copyOrInsertArticle',
method: 'post',
data
})
}

2
src/api/upload.js

@ -1,5 +1,5 @@
export default {
api: 'https://haoyi.kkxxkj.cn/agencyapi/base/fileUpload'
api: process.env.NODE_ENV === 'development' ? '/image/agencyapi/base/fileUpload' : '/image'
}

74
src/views/Home.vue

@ -10,10 +10,13 @@
<el-form-item label="标题:">
<el-input v-model="searchForm.title" size="small" placeholder="文章标题" />
</el-form-item>
<el-form-item label="平台:">
<el-input v-model="searchForm.platform" size="small" placeholder="平台" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="作者:">
<el-select v-model="searchForm.account" placeholder="请选择" size="small" clearable filterable >
<el-select v-model="searchForm.account" placeholder="请选择" size="small" clearable filterable>
<el-option v-for="item in docoptions" :key="item.id" :label="item.showName" :value="item.id">
</el-option>
</el-select>
@ -60,13 +63,15 @@
{{row.account_names }}
</template>
</el-table-column>
<el-table-column prop="platform" label="平台" show-overflow-tooltip />
<el-table-column prop="create_time" label="时间" show-overflow-tooltip />
<el-table-column prop="create_time" label="状态" show-overflow-tooltip>
<template slot-scope="{row}">
<span :style="'color:'+(row.status!=1?'green':'red')"> {{({1:'未就绪',2:'已就绪',3:'已下载',4:'已发布'})[row.status]}}</span>
<span :style="'color:'+(row.status!=1?'green':'red')">
{{({1:'未就绪',2:'已就绪',3:'已下载',4:'已发布'})[row.status]}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="120">
<template slot-scope="{ row, $index }">
@ -76,6 +81,7 @@
</el-button>
<el-button size="mini" type="text" :style="'color:'+(row.status!=1?'#C0C4CC':'red')"
:disabled="row.status!=1?true:false" @click="deletem($index, row)">删除</el-button>
<el-button size="mini" type="text" @click="copyArticle( row)">复制</el-button>
<!-- <el-dropdown trigger="click" style="margin-left:10px">
<span class="el-dropdown-link">
操作<i class="el-icon-arrow-down el-icon--right" />
@ -113,7 +119,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="作者" prop="doctorId">
<el-select v-model="editform.doctorId" placeholder="请选择" size="small" clearable filterable >
<el-select v-model="editform.doctorId" placeholder="请选择" size="small" clearable filterable>
<el-option v-for="item in docoptions" :key="item.id" :label="item.showName" :value="item.id">
</el-option>
</el-select>
@ -121,13 +127,13 @@
</el-form-item>
</el-col>
</el-row>
<!-- <el-row :gutter="20">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="封面">
<el-form-item label="封面" required>
<uploadimg :limit="1" :name="'file'" :img-url-list="articleCover" @onUpload="eqrcodeUpload" />
</el-form-item>
</el-col>
</el-row> -->
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="简介" prop="des">
@ -156,7 +162,8 @@
edtiSubmit,
delActicle,
getAuthors,
idsReady
idsReady,
copyArticle
} from '@/api/admin'
@ -182,7 +189,8 @@
searchForm: {
status: '',
title: '',
account: ''
account: '',
platform: '',
},
tableLoading: false,
tableData: [],
@ -302,6 +310,7 @@
title: this.searchForm.title,
status: this.searchForm.status,
account: this.searchForm.account,
platform: this.searchForm.platform,
})
.then((res) => {
this.tableData = res.data
@ -324,6 +333,8 @@
this.editform = {
...this.clearForm
}
this.articleCover=[]
this.editIndex++
this.$nextTick(() => {
this.$refs.editform.clearValidate()
})
@ -365,24 +376,22 @@
this.editform.des = res.data.des
this.editform.content = res.data.content
// this.editform.doctorId = res.data.account?res.data.account.split(',').map(Number):[]
this.editform.doctorId = res.data.account
// this.articleCover = res.data.cover ? [{
// url: res.data.cover
// }] : []
this.editform.doctorId = res.data.account-0
this.articleCover = res.data.cover ? [{
url: res.data.cover
}] : []
// this.editform.departId = res.departIds[0] == '[' ? JSON.parse(res.departIds) : [];
// this.editform.diseaseId = res.diseaseIds ? JSON.parse(res.diseaseIds) : []
this.adddialogLoading = false
})
},
changeRecommend(a, row) {
isRecommend({
copyArticle(row) {
copyArticle({
id: row.id,
isRecommend: a - 0
})
.then((res) => {
this.$message.success('修改成功!')
this.$message.success('复制成功!')
this.search()
})
.catch((err) => {
@ -410,7 +419,7 @@
})
.catch(() => {})
},
ready( row,status) {
ready(row, status) {
this.$confirm(`确认此文章${status==1?'取消就绪':'已准备就绪'}吗,是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -457,13 +466,13 @@
async editconfirm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
// if (this.articleCover.length == 0) return this.$message('')
if (this.articleCover.length == 0) return this.$message('请上传封面')
if (this.editform.content=='') return this.$message('请填写文章内容')
this.adddialogLoading = true
// const wangEditorRef1 = this.$refs.wangEditorRef1
// if (wangEditorRef1 != null) {
// this.editform.content = wangEditorRef1.getEditorHtml()
// }
// console.log(this.editorParams1.content);
// let departIds = JSON.stringify(this.editform.departId)
// let diseaseIds = JSON.stringify(this.editform.diseaseId)
@ -473,23 +482,42 @@
// let diseaseId = this.editform.diseaseId.map(a => a[a.length - 1]).toString()
// let docIds = this.editform.doctorId.toString()
edtiSubmit({
if (this.editform.id) {
edtiSubmit({
id: this.editform.id,
title: this.editform.title, //
account: this.editform.doctorId,
des: this.editform.des, //
content: this.editform.content, //
cover: this.editform.cover
})
.then((res) => {
this.$message.success('操作成功!')
this.$message.success('编辑文章成功!')
this.formdialogVisible = false
this.search()
})
.finally((f) => {
this.adddialogLoading = false
})
}else{
copyArticle({
title: this.editform.title, //
account: this.editform.doctorId,
des: this.editform.des, //
content: this.editform.content, //
cover: this.editform.cover
})
.then((res) => {
this.$message.success('新增文章成功!')
this.formdialogVisible = false
this.search()
})
.finally((f) => {
this.adddialogLoading = false
})
}
} else {
return false
}

15
vue.config.js

@ -12,12 +12,21 @@ module.exports = {
'/api': { //代理api
// target: 'http://192.168.5.102:8001/',//服务器api地址
// target: 'https://7cc72bb9.r3.cpolar.top',//服务器api地址
target: 'https://article.kkxxkj.cn/',
// target: 'http://192.168.5.105:70/',
// target: 'https://article.kkxxkj.cn/',
target: 'http://192.168.5.105:70/',
ws: true, // proxy websockets
changeOrigin: true, //是否跨域
pathRewrite: {
'^/api': '/api'
// '^/api': '/api'
'^/api': ''
} //重写路径
},
'/image': { //代理api
target: 'https://haoyi.kkxxkj.cn/',
ws: true, // proxy websockets
changeOrigin: true, //是否跨域
pathRewrite: {
'^/image': ''
} //重写路径
}
}

Loading…
Cancel
Save