Commit adcc7f5c authored by miaojiale's avatar miaojiale

运营管理

parent c8f78c2a
...@@ -57,13 +57,21 @@ ...@@ -57,13 +57,21 @@
<i class="el-icon-download"></i> <i class="el-icon-download"></i>
</span> </span>
</span> </span>
<span <el-tooltip
style="cursor: pointer" class="item"
class="fileName" effect="dark"
v-if="accept != 'image/*'" :content="file.name"
@click="handlePreview(file)" placement="top"
>{{ file.name }}</span
> >
<div
v-if="accept != 'image/*'"
style="cursor: pointer"
class="fileNameText"
@click="handlePreview(file)"
>
{{ file.name }}
</div>
</el-tooltip>
</div> </div>
<!-- <div slot="tip" class="el-upload__tip">{{ tip }}</div> --> <!-- <div slot="tip" class="el-upload__tip">{{ tip }}</div> -->
</el-upload> </el-upload>
...@@ -268,15 +276,24 @@ export default { ...@@ -268,15 +276,24 @@ export default {
.el-upload-self { .el-upload-self {
font-size: 14px; font-size: 14px;
} }
.avatar-uploader { ::v-deep .avatar-uploader {
display: flex; display: flex;
align-items: center; align-items: center;
.el-upload--picture-card {
height: 20px;
transform: translateY(-4px);
}
} }
.pdfUpload { ::v-deep .pdfUpload {
display: flex; display: flex;
flex-direction: row-reverse; flex-direction: row-reverse;
justify-content: flex-end; justify-content: flex-end;
::v-deep .el-upload-list__item { .el-upload--text {
height: 20px;
transform: translateY(-4px);
}
.el-upload-list__item {
transform: translateY(-6px); transform: translateY(-6px);
// width: 158px; // width: 158px;
height: 20px; height: 20px;
...@@ -324,6 +341,12 @@ export default { ...@@ -324,6 +341,12 @@ export default {
height: 88px; height: 88px;
display: block; display: block;
} }
.fileNameText {
width: 100px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
// ::v-deep .el-upload--picture-card { // ::v-deep .el-upload--picture-card {
// width: none; // width: none;
// height: none; // height: none;
......
<template> <template>
<div>学术动态</div> <div id="medicalunion-management">
<div class="top-btn">
<el-button type="primary" class="btn" @click="addMedical">添加</el-button>
</div>
<div class="bot-table">
<customs-table
ref="table"
:table-data="tableData"
:columns="columns"
:header-class="'newHeader'"
:list-loading="listLoading"
:current-page="pageIndex"
:total-count="total"
:page-sizes="pageSizes"
:page-size="pageSize"
@pageSizeChange="handleSizeChange"
@currentPageChange="handleCurrentChange"
/>
</div>
<el-dialog
:visible.sync="addVisible"
width="520px"
:show-close="true"
@closed="resetForm"
>
<div class="title">{{ readOnly ? "查看" : "添加" }}</div>
<el-form
ref="form"
:model="form"
:label-position="'right'"
label-width="110px"
label-suffix=":"
:disabled="readOnly"
>
<el-form-item
v-for="(item, index) in formList"
:key="index"
:label="item.label"
:prop="item.prop"
:rules="[{ required: true, message: item.label + '不能为空' }]"
>
<!-- <template v-if="!readOnly"> -->
<template>
<!-- 输入框 -->
<el-input
v-if="item.type == 'input'"
v-model="form[item.prop]"
autocomplete="off"
:placeholder="'请填写' + item.label"
></el-input>
<!-- 下拉选 -->
<el-select
v-else-if="item.type == 'select'"
v-model="form[item.prop]"
:placeholder="'请选择' + item.label"
style="width: 100%"
>
<el-option
v-for="e in item.selectGroup"
:key="e.value"
:label="e.label"
:value="e.value"
></el-option>
</el-select>
<!-- 上传 -->
<el-upload-self
v-else-if="item.type === 'upload'"
v-model="form[item.prop]"
:btn-type="'text'"
v-bind="item"
:list-type="item.listType"
:accept="item.accept"
:limit="item.limit"
:disabled="readOnly"
></el-upload-self>
<!-- switch -->
<!-- switch切换 启用 -->
<el-switch
v-else-if="item.type === 'switch'"
v-model="form[item.prop]"
:active-value="1"
:inactive-value="0"
>
</el-switch>
</template>
<!-- <template v-else>
<span>{{ form[item.prop] || "--" }}</span>
</template> -->
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button class="f-btn" type="primary" @click="submitForm('3')"
>保存</el-button
>
</span>
</el-dialog>
<!-- 删除提示框 -->
<el-dialog title="提示" :visible.sync="deleteVisible" width="30%">
<span>确定删除吗?</span>
<span slot="footer" class="dialog-footers">
<el-button @click="deleteVisible = false">取 消</el-button>
<el-button type="primary" @click="confirmDelete">确 定</el-button>
</span>
</el-dialog>
</div>
</template> </template>
<script> <script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import ElUploadSelf from "@/components/Upload"
import mixin from "./mixin"
import { articleList } from "@/api/operation-management"
export default { export default {
components: {
CustomsTable,
ElUploadSelf,
},
mixins: [paginationMixin, mixin],
data() { data() {
return {} return {
addVisible: false,
listLoading: false,
deleteVisible: false,
columns: [
{
label: "标题",
minWidth: 120,
value: "articleTitle",
},
{
label: "文件",
minWidth: 120,
type: "file",
value: "filePath",
},
{
label: "上传时间",
minWidth: 120,
value: "uploadTime",
},
{
label: "最新修改时间",
minWidth: 120,
value: "updateTime",
},
{
label: "上传人姓名",
minWidth: 120,
value: "uploadUserName",
},
{
label: "启用状态",
minWidth: 120,
type: "switch",
value: "status",
func: this.openChage,
},
{
label: "操作",
width: 220,
fixed: "right",
operType: "button",
operations: [
{
func: this.viewMedical,
formatter(row) {
return {
label: "查看",
type: "text",
}
},
},
{
func: this.editMedical,
formatter(row) {
return {
label: "编辑",
type: "text",
}
},
},
{
func: this.deleteFunc,
style: {
color: "#FA6400",
},
formatter(row) {
return {
label: "删除",
type: "text",
}
},
},
],
},
],
tableData: [
// {
// title: "第一个",
// isOpen: true,
// },
],
formList: [
{
type: "input",
label: "标题",
prop: "articleTitle",
},
{
type: "upload",
label: "PDF",
prop: "filePath",
accept: "application/pdf",
},
{
type: "switch",
label: "启用状态",
prop: "status",
},
],
}
}, },
methods: {},
mounted() {},
watch: {}, watch: {},
mounted() {
this.getArticleList()
},
methods: {
// 获取新闻会议
getArticleList() {
this.listLoading = true
let params = {
size: this.pageSize,
current: this.pageIndex,
moduleType: "3",
}
articleList(params)
.then((res) => {
if (res.code == 1) {
this.tableData = [...res.data.records]
this.total = res.data.total
this.listLoading = false
}
})
.catch((e) => {
this.listLoading = false
})
},
},
} }
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
#medicalunion-management {
padding: 20px 0;
.top-btn {
.btn {
width: 80px;
height: 32px;
background: #4e68ff;
border-radius: 4px;
}
}
.bot-table {
margin-top: 20px;
}
.title {
text-align: center;
height: 26px;
font-size: 22px;
font-family: AlibabaPuHuiTiM;
color: rgba(0, 0, 0, 0.8);
line-height: 26px;
margin-bottom: 30px;
}
}
::v-deep .el-dialog__body {
padding: 0 40px;
border-top: none;
}
::v-deep .el-dialog__footer {
border-top: none;
text-align: center;
.f-btn {
width: 100px;
height: 32px;
background: #4e68ff;
}
}
</style>
...@@ -33,59 +33,83 @@ ...@@ -33,59 +33,83 @@
:show-close="true" :show-close="true"
@closed="resetForm" @closed="resetForm"
> >
<div class="title">添加</div> <div class="title">{{ readOnly ? "查看" : "添加" }}</div>
<el-form <el-form
ref="form" ref="form"
:model="form" :model="form"
:label-position="'right'" :label-position="'right'"
label-width="110px" label-width="110px"
label-suffix=":" label-suffix=":"
:rules="rules" :disabled="readOnly"
> >
<el-form-item <el-form-item
v-for="(item, index) in formList" v-for="(item, index) in formList"
:key="index" :key="index"
:label="item.label" :label="item.label"
:prop="item.prop" :prop="item.prop"
:rules="[{ required: true, message: item.label + '不能为空' }]"
> >
<!-- 输入框 --> <!-- <template v-if="!readOnly"> -->
<el-input <template>
v-if="item.type == 'input'" <!-- 输入框 -->
v-model="form[item.prop]" <el-input
autocomplete="off" v-if="item.type == 'input'"
:placeholder="'请填写' + item.label" v-model="form[item.prop]"
></el-input> autocomplete="off"
<!-- 下拉选 --> :placeholder="'请填写' + item.label"
<el-select ></el-input>
v-else-if="item.type == 'select'" <!-- 下拉选 -->
v-model="form[item.prop]" <el-select
:placeholder="'请选择' + item.label" v-else-if="item.type == 'select'"
> v-model="form[item.prop]"
<el-option :placeholder="'请选择' + item.label"
v-for="e in item.selectGroup" style="width: 100%"
:key="e.value" >
:label="e.label" <el-option
:value="e.value" v-for="e in item.selectGroup"
></el-option> :key="e.value"
</el-select> :label="e.label"
<!-- 上传 --> :value="e.value"
<el-upload-self ></el-option>
v-else-if="item.type === 'upload'" </el-select>
v-model="form[item.prop]" <!-- 上传 -->
:btn-type="'text'" <el-upload-self
v-bind="item" v-else-if="item.type === 'upload'"
></el-upload-self> v-model="form[item.prop]"
<!-- switch --> :btn-type="'text'"
<!-- switch切换 启用 --> v-bind="item"
<el-switch :list-type="item.listType"
v-else-if="item.type === 'switch'" :accept="item.accept"
v-model="form[item.prop]" :limit="item.limit"
> :disabled="readOnly"
</el-switch> ></el-upload-self>
<!-- switch -->
<!-- switch切换 启用 -->
<el-switch
v-else-if="item.type === 'switch'"
v-model="form[item.prop]"
:active-value="1"
:inactive-value="0"
>
</el-switch>
</template>
<!-- <template v-else>
<span>{{ form[item.prop] || "--" }}</span>
</template> -->
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">保存</el-button> <el-button class="f-btn" type="primary" @click="submitForm('5')"
>保存</el-button
>
</span>
</el-dialog>
<!-- 删除提示框 -->
<el-dialog title="提示" :visible.sync="deleteVisible" width="30%">
<span>确定删除吗?</span>
<span slot="footer" class="dialog-footers">
<el-button @click="deleteVisible = false">取 消</el-button>
<el-button type="primary" @click="confirmDelete">确 定</el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
...@@ -94,50 +118,47 @@ ...@@ -94,50 +118,47 @@
import CustomsTable from "@/components/CustomsTable" import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin" import paginationMixin from "@/components/TabComponents/mixin"
import ElUploadSelf from "@/components/Upload" import ElUploadSelf from "@/components/Upload"
import { import mixin from "./mixin"
articleList, import { articleList } from "@/api/operation-management"
articleEnable,
deleteArticle,
} from "@/api/operation-management"
export default { export default {
components: { components: {
CustomsTable, CustomsTable,
ElUploadSelf, ElUploadSelf,
}, },
mixins: [paginationMixin], mixins: [paginationMixin, mixin],
data() { data() {
return { return {
addVisible: false,
selectList: [ selectList: [
{ {
label: "筛查技术方案", label: "筛查技术方案",
value: 0, value: "1",
}, },
{ {
label: "筛查指南", label: "筛查指南",
value: 1, value: "2",
}, },
{ {
label: "学术成果", label: "学术成果",
value: 2, value: "3",
}, },
{ {
label: "项目进展与成果", label: "项目进展与成果",
value: 3, value: "4",
}, },
], ],
selectType: 0, selectType: "1",
listLoading: false, listLoading: false,
columns: [ columns: [
{ {
label: "标题", label: "标题",
minWidth: 120, minWidth: 120,
value: "title", value: "articleTitle",
}, },
{ {
label: "文件", label: "文件",
minWidth: 120, minWidth: 120,
value: "file", type: "file",
value: "filePath",
}, },
{ {
label: "上传时间", label: "上传时间",
...@@ -147,18 +168,18 @@ export default { ...@@ -147,18 +168,18 @@ export default {
{ {
label: "最新修改时间", label: "最新修改时间",
minWidth: 120, minWidth: 120,
value: "editTime", value: "updateTime",
}, },
{ {
label: "上传人姓名", label: "上传人姓名",
minWidth: 120, minWidth: 120,
value: "uploadPerson", value: "uploadUserName",
}, },
{ {
label: "启用状态", label: "启用状态",
minWidth: 120, minWidth: 120,
type: "switch", type: "switch",
value: "isOpen", value: "status",
func: this.openChage, func: this.openChage,
}, },
{ {
...@@ -168,7 +189,7 @@ export default { ...@@ -168,7 +189,7 @@ export default {
operType: "button", operType: "button",
operations: [ operations: [
{ {
func: this.editMedical, func: this.viewMedical,
formatter(row) { formatter(row) {
return { return {
label: "查看", label: "查看",
...@@ -186,7 +207,7 @@ export default { ...@@ -186,7 +207,7 @@ export default {
}, },
}, },
{ {
func: this.rowOpration, func: this.deleteFunc,
style: { style: {
color: "#FA6400", color: "#FA6400",
}, },
...@@ -200,56 +221,52 @@ export default { ...@@ -200,56 +221,52 @@ export default {
], ],
}, },
], ],
tableData: [],
tableData: [
{
title: "第一个",
isOpen: true,
},
],
formList: [ formList: [
{ {
type: "select", type: "select",
label: "类型", label: "类型",
prop: "type", prop: "articleType",
selectGroup: [ selectGroup: [
{ {
label: "筛查", label: "筛查技术方案",
value: 0, value: "1",
}, },
{ {
label: "生活", label: "筛查指南",
value: 1, value: "2",
}, },
{ {
label: "医学知识", label: "学术成果",
value: 2, value: "3",
}, },
{ {
label: "其他", label: "项目进展与成果",
value: 3, value: "4",
}, },
], ],
}, },
{ {
type: "input", type: "input",
label: "标题", label: "标题",
prop: "title", prop: "articleTitle",
},
{
type: "upload",
label: "图片",
prop: "img",
}, },
// {
// type: "upload",
// label: "图片",
// prop: "imgPath",
// listType: "picture-card",
// },
{ {
type: "upload", type: "upload",
label: "PDF", label: "PDF",
prop: "aaa", prop: "filePath",
accept: "application/pdf",
}, },
{ {
type: "switch", type: "switch",
label: "启用状态", label: "启用状态",
prop: "ssd", prop: "status",
}, },
], ],
rules: { rules: {
...@@ -283,39 +300,6 @@ export default { ...@@ -283,39 +300,6 @@ export default {
this.listLoading = false this.listLoading = false
}) })
}, },
// 添加医联体
addMedical() {
this.addVisible = true
},
// 编辑医联体
editMedical(data) {
console.log(data)
this.form = {
medicalName: "黑乎乎",
medicalId: "123",
province: "001",
city: "001",
}
this.addVisible = true
},
// 启用状态
openChage(data, index) {
console.log(data, index)
},
resetForm() {
this.$refs["form"].resetFields()
},
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
alert("submit!")
this.addVisible = false
} else {
console.log("error submit!!")
return false
}
})
},
}, },
} }
</script> </script>
...@@ -351,7 +335,7 @@ export default { ...@@ -351,7 +335,7 @@ export default {
::v-deep .el-dialog__footer { ::v-deep .el-dialog__footer {
border-top: none; border-top: none;
text-align: center; text-align: center;
.el-button { .f-btn {
width: 100px; width: 100px;
height: 32px; height: 32px;
background: #4e68ff; background: #4e68ff;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment