123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371 |
- <template>
- <div
- class="fileManagement_List"
- v-loading.fullscreen.lock="fullscreenLoading"
- >
- <div class="fileManagement_List_headerSelect">
- <div class="fileManagement-list-btn">
- <el-form style="display: inline" :model="form" ref="form" inline>
- <el-form-item
- class="header_top_form"
- label="分类名称:"
- prop="typeId"
- >
- <el-select
- clearable
- filterable
- size="small"
- placeholder="请选择"
- v-model="form.typeId"
- @visible-change="visbleChange"
- >
- <el-option
- v-for="(item, index) in classifyList"
- :key="index"
- :label="item.name"
- :value="item.typeId"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item class="header_top_form" label="文件名称:" prop="name">
- <el-input
- clearable
- v-model.trim="form.name"
- placeholder="请输入"
- size="small"
- ></el-input>
- </el-form-item>
- <el-form-item class="header_top_form" label="状态:" prop="status">
- <el-select
- v-model="form.status"
- clearable
- size="small"
- placeholder="请选择"
- >
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-form>
- <div style="margin-right: 23px">
- <el-button
- size="small"
- type="primary"
- style="width: 88px"
- @click="search"
- >查询</el-button
- >
- <el-button size="small" style="width: 88px" @click="resetForm('form')"
- >重置</el-button
- >
- </div>
- </div>
- <div style="text-align: right">
- <el-button
- size="small"
- style="width: 104px; margin-right: 23px"
- icon="iconfont icon-a-zu13"
- @click="addList"
- >新增</el-button
- >
- </div>
- </div>
- <div>
- <el-table
- :data="tableData"
- stripe
- ref="editTable"
- :header-cell-style="{ background: '#F7F7F7' }"
- :height="screenHeight"
- >
- <el-table-column
- label="分类名称"
- prop="typeName"
- align="center"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- label="文件名称"
- prop="name"
- align="center"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- label="链接地址"
- prop="linkUrl"
- align="center"
- min-width="180"
- ></el-table-column>
- <el-table-column
- label="禁用/启用"
- prop="status"
- align="center"
- >
- <template slot-scope="scope">
- <div>
- <div>
- <el-switch
- v-model="scope.row.status"
- active-color="#17A8FF"
- inactive-color="#AFAFAF"
- @change="statusChange($event, scope.row)"
- >
- </el-switch>
- </div>
- </div> </template
- ></el-table-column>
- <el-table-column
- label="创建人"
- prop="createUser"
- align="center"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column
- label="创建时间"
- prop="createTime"
- align="center"
- show-overflow-tooltip
- ></el-table-column>
- <el-table-column label="操作" width="140px" align="center">
- <template slot-scope="scope">
- <div>
- <el-button type="text" @click="history(scope.row)"
- >历史版本</el-button
- >
- <el-button type="text" @click="edit(scope.row)">编辑</el-button>
- </div>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <el-pagination
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :current-page="form.pageNum"
- :page-sizes="[100, 200, 300, 400]"
- :page-size="form.pageSize"
- background
- layout="total,prev, pager, next,jumper"
- :total="form.total"
- >
- </el-pagination>
- <editDialog ref="editDialogRefs" />
- <detailDialog ref="detailDialogRefs" />
- </div>
- </template>
- <script>
- import editDialog from './edit'
- import detailDialog from './detail'
- import * as api from '@/api/api'
- export default {
- name: 'fileManagement',
- components: {
- editDialog,
- detailDialog
- },
- data() {
- return {
- fullscreenLoading: false,
- tableData: [],
- options: [
- { label: '启用', value: 1 },
- { label: '禁用', value: 0 }
- ],
- form: {
- pageNum: 1,
- pageSize: 10,
- total: 0,
- name: '',
- start: '',
- status: '',
- typeId: ''
- },
- classifyList: [],
- screenHeight: document.body.clientHeight - 320,
- tableDataheight: 0
- }
- },
- mounted() {
- this.screenHeight = document.body.clientHeight - 320
- window.onresize = () => {
- return (() => {
- this.screenHeight = document.body.clientHeight - 320
- })()
- }
- this.listDataInit()
- },
- methods: {
- /**
- * @method 重置
- * **/
- resetForm(formName) {
- this.$refs[formName].resetFields()
- this.search()
- },
- /**
- * @method 分类下拉列表
- * **/
- visbleChange(val) {
- if (val) {
- api.GET('/doc/type/dropListAll').then(data => {
- if (data.code == 0) {
- this.classifyList = data.data
- }
- })
- }
- },
- /**
- * @method 搜索
- * **/
- search() {
- if (sessionStorage.getItem('filemanage')) {
- this.form.pageNum = Number(sessionStorage.getItem('filemanage'))
- sessionStorage.removeItem('filemanage')
- } else {
- this.form.pageNum = 1
- }
- this.listDataInit()
- },
- /**
- * @method 列表数据
- * **/
- listDataInit() {
- this.tableData = []
- this.fullscreenLoading = true
- let code = {
- name: this.form.name,
- page: this.form.pageNum,
- pageSize: this.form.pageSize,
- start: this.form.start,
- status: this.form.status,
- typeId: this.form.typeId
- }
- api
- .POST('/doc/getDocList', code)
- .then(res => {
- if (res.code == 0) {
- this.tableData = res.data.list
- this.tableData.forEach(item => {
- item.status == 1 ? (item.status = true) : (item.status = false)
- })
- this.form.pageNum = res.data.currPage
- this.form.pageSize = res.data.pageSize
- this.form.total = res.data.totalCount
- this.fullscreenLoading = false
- this.$nextTick(() => {
- this.$refs.editTable.bodyWrapper.scrollTop = this.tableDataheight
- this.tableDataheight = 0
- })
- }
- })
- .catch(() => {
- this.fullscreenLoading = false
- })
- },
- /**
- * @method 条数分页
- * **/
- handleSizeChange(val) {
- this.form.pageNum = 1
- this.form.pageSize = val
- this.listDataInit()
- },
- /**
- * @method 分页
- * **/
- handleCurrentChange(val) {
- this.form.pageNum = val
- this.listDataInit()
- },
- /**
- * @method 新增
- * **/
- addList() {
- let code = {
- title: '文件新增',
- show: true
- }
- this.$refs.editDialogRefs.openClose(code)
- },
- // 编辑
- edit(val) {
- this.tableDataheight = this.$refs.editTable.bodyWrapper.scrollTop
- sessionStorage.setItem('filemanage', this.form.pageNum)
- let code = {
- title: '文件编辑',
- show: false,
- id: val.id
- }
- this.$refs.editDialogRefs.openClose(code)
- },
- // 历史版本
- history(val) {
- this.tableDataheight = this.$refs.editTable.bodyWrapper.scrollTop
- sessionStorage.setItem('filemanage', this.form.pageNum)
- const code = {
- id: val.id
- }
- this.$refs.detailDialogRefs.openClose(code)
- },
- /**
- * @method 状态修改
- * **/
- statusChange(val, item) {
- this.tableDataheight = this.$refs.editTable.bodyWrapper.scrollTop
- sessionStorage.setItem('filemanage', this.form.pageNum)
- val ? (val = 1) : (val = 0)
- let code = {
- id: item.id,
- status: val
- }
- api
- .PUT('/doc/updateSwitch', code)
- .then(data => {
- if (data.code == 0) {
- this.search()
- this.$message.success(data.message)
- }
- })
- .catch(() => {
- this.search()
- })
- }
- }
- }
- </script>
- <style lang="less">
- .fileManagement_List {
- .fileManagement_List_headerSelect {
- .fileManagement-list-btn {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 10px;
- .el-input__suffix {
- height: 32px;
- }
- }
- margin-bottom: 20px;
- .el-form-item {
- margin-bottom: 10px;
- margin-right: 60px;
- .el-input__inner {
- background: #f5f5f5;
- opacity: 1;
- border-radius: 17px;
- }
- }
- .icon-a-zu13 {
- font-size: 11px;
- margin-right: 5px;
- }
- }
- }
- </style>
|