9 changed files with 910 additions and 64 deletions
-
83src/api/inquiryMachine/index.js
-
2src/assets/styles/digitalScreen.scss
-
5src/main.js
-
84src/views/digitalScreen/index.vue
-
4src/views/digitalScreen/module/advSetting.vue
-
3src/views/digitalScreen/module/areaSetting.vue
-
13src/views/digitalScreen/module/bookRecommend.vue
-
276src/views/inquiryMachine/column.vue
-
412src/views/inquiryMachine/content.vue
@ -0,0 +1,83 @@ |
|||
import request from '@/utils/request' |
|||
|
|||
export function FetchInitFondsList(params) { |
|||
return request({ |
|||
url: 'api/fonds/initFondsList', |
|||
method: 'get', |
|||
params |
|||
}) |
|||
} |
|||
|
|||
export function add(data) { |
|||
return request({ |
|||
url: 'api/fonds/editFonds', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
|
|||
export function edit(data) { |
|||
return request({ |
|||
url: 'api/fonds/editFonds', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
|
|||
export function del(data) { |
|||
return request({ |
|||
url: 'api/fonds/delFonds', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
|
|||
export function FetchUpdateFondsStatus(data) { |
|||
return request({ |
|||
url: 'api/fonds/updateFondsStatus', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
|
|||
export function FetchDownload(params) { |
|||
return request({ |
|||
url: 'api/fonds/download', |
|||
method: 'get', |
|||
params |
|||
}) |
|||
} |
|||
|
|||
export function FetchFondsAll() { |
|||
return request({ |
|||
url: 'api/fonds/getFondsAll', |
|||
method: 'get' |
|||
}) |
|||
} |
|||
|
|||
export function FetchFondsCategory(data) { |
|||
return request({ |
|||
url: 'api/fonds/fondsCategory', |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
|
|||
export function FetchFondsDetail(params) { |
|||
return request({ |
|||
url: 'api/fonds/getFondsDetail', |
|||
method: 'get', |
|||
params |
|||
}) |
|||
} |
|||
|
|||
// 根据门类和档案id获取显示全宗
|
|||
export function FetchInitFondsByCategoryIdAndArchivesId(params) { |
|||
return request({ |
|||
url: 'api/fonds/initFondsByCategoryIdAndArchivesId', |
|||
method: 'get', |
|||
params |
|||
}) |
|||
} |
|||
|
|||
export default { add, edit, del, FetchInitFondsList, FetchUpdateFondsStatus, FetchDownload, FetchFondsCategory, FetchFondsDetail, FetchInitFondsByCategoryIdAndArchivesId } |
@ -0,0 +1,276 @@ |
|||
<template> |
|||
<div class="app-container row-container"> |
|||
<!--侧边部门数据--> |
|||
<!--工具栏--> |
|||
<div class="head-container"> |
|||
<div class="head-search" style="align-items: center;"> |
|||
<!-- 搜索 --> |
|||
<el-input v-model="query.blurry" size="small" clearable placeholder="输入栏目名称搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" /> |
|||
<el-select v-model="query.status" clearable size="small" placeholder="状态" class="filter-item" style="width: 100px" @change="crud.toQuery"> |
|||
<i slot="prefix" class="iconfont icon-zhuangtai" /> |
|||
<el-option v-for="item in enabledTypeOptions" :key="item.key" :label="item.display_name" :value="item.key" /> |
|||
</el-select> |
|||
<rrOperation /> |
|||
<el-checkbox v-model="fiterColumnZero" label="仅显示内容数量为 0 的栏目" name="fiterColumnZero" @change="handleFiterColumnZero($event)" /> |
|||
</div> |
|||
<crudOperation :permission="permission"> |
|||
<template v-slot:middle> |
|||
<el-button slot="reference" size="mini" :loading="crud.delAllLoading" :disabled="crud.selections.length === 0" @click="toDelete(crud.selections)"> |
|||
<i class="iconfont icon-shanchu" /> |
|||
删除 |
|||
</el-button> |
|||
</template> |
|||
<template v-slot:right> |
|||
<el-button :loading="crud.downloadLoading" size="mini" :disabled="crud.selections.length === 0" @click="doExport(crud.selections)"> |
|||
<i class="iconfont icon-daochu" /> |
|||
导出 |
|||
</el-button> |
|||
</template> |
|||
</crudOperation> |
|||
</div> |
|||
<div class="container-wrap"> |
|||
<span class="right-top-line" /> |
|||
<span class="left-bottom-line" /> |
|||
<el-dialog :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title"> |
|||
<span class="dialog-right-top" /> |
|||
<span class="dialog-left-bottom" /> |
|||
<div class="setting-dialog"> |
|||
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="110px"> |
|||
<el-row> |
|||
<el-form-item label="栏目名称" prop="columnName"> |
|||
<el-input v-model="form.columnName" style="width: 586px;" /> |
|||
</el-form-item> |
|||
</el-row> |
|||
<el-form-item label="栏目编码" prop="columnNo"> |
|||
<el-input v-model="form.columnNo" /> |
|||
</el-form-item> |
|||
<el-form-item label="栏目类型" prop="columnType"> |
|||
<el-radio-group v-model="form.columnType"> |
|||
<el-radio :label="1">单页展示</el-radio> |
|||
<el-radio :label="0">列表展示</el-radio> |
|||
</el-radio-group> |
|||
</el-form-item> |
|||
<el-form-item label="排序" prop="columnOrders"> |
|||
<el-input-number |
|||
v-model.number="form.columnOrders" |
|||
:min="0" |
|||
:max="999" |
|||
controls-position="right" |
|||
/> |
|||
</el-form-item> |
|||
<el-form-item label="内容类型" prop="columnContentType"> |
|||
<el-radio-group v-model="form.columnContentType"> |
|||
<el-radio :label="1">图文</el-radio> |
|||
<el-radio :label="0">链接</el-radio> |
|||
</el-radio-group> |
|||
</el-form-item> |
|||
<el-row> |
|||
<el-form-item label="状态" prop="columnStatus" style="margin-left: 350px;"> |
|||
<el-radio-group v-model="form.columnStatus"> |
|||
<el-radio :label="1">启用</el-radio> |
|||
<el-radio :label="0">停用</el-radio> |
|||
</el-radio-group> |
|||
</el-form-item> |
|||
</el-row> |
|||
<el-row> |
|||
<el-form-item label="备注" prop="columnRemarks"> |
|||
<el-input v-model="form.columnRemarks" style="width: 586px;" rows="3" type="textarea" /> |
|||
</el-form-item> |
|||
</el-row> |
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button type="text" @click="crud.cancelCU">取消</el-button> |
|||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确定</el-button> |
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
<el-table ref="table" v-loading="crud.loading" highlight-current-row style="width: 100%;" height="calc(100vh - 330px)" :data="crud.data" @selection-change="crud.selectionChangeHandler"> |
|||
<el-table-column type="selection" align="center" width="55" /> |
|||
<el-table-column prop="columnName" label="栏目名称" /> |
|||
<el-table-column prop="code" label="栏目编码" /> |
|||
<el-table-column prop="type" label="栏目类型" /> |
|||
<el-table-column prop="cotentType" label="内容类型" /> |
|||
<el-table-column prop="deptsCount" label="内容数量" /> |
|||
<el-table-column prop="columnOrders" label="排序" align="center" /> |
|||
<el-table-column label="状态" align="center" prop="columnStatus"> |
|||
<template slot-scope="scope"> |
|||
<el-switch v-model="scope.row.columnStatus" active-color="#409EFF" inactive-color="#F56C6C" :active-value="1" :inactive-value="0" @change="changeStatus(scope.row, scope.row.columnStatus)" /> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="create" label="创建者" /> |
|||
<el-table-column :show-overflow-tooltip="true" prop="createTime" label="创建日期"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.createTime | parseTime }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!--分页组件--> |
|||
<pagination /> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
// import crudColumn from '@/api/inquiryMachine/index' |
|||
import crudfonds from '@/api/system/fonds' |
|||
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
|||
import rrOperation from '@crud/RR.operation' |
|||
import crudOperation from '@crud/CRUD.operation' |
|||
import pagination from '@crud/Pagination' |
|||
// import { exportFile } from '@/utils/index' |
|||
// import qs from 'qs' |
|||
import { mapGetters } from 'vuex' |
|||
|
|||
const defaultForm = { id: null, columnName: null, columnNo: null, columnType: 1, columnOrders: 999, columnContentType: 1, columnStatus: 1, columnRemarks: null } |
|||
export default { |
|||
name: 'Column', |
|||
components: { pagination, crudOperation, rrOperation }, |
|||
cruds() { |
|||
return CRUD({ title: '栏目', idField: 'fondsId', url: 'api/fonds/initFondsList', crudMethod: { ...crudfonds }, optShow: { |
|||
add: true, |
|||
edit: true, |
|||
del: false, |
|||
reset: true, |
|||
download: false, |
|||
group: false |
|||
}}) |
|||
}, |
|||
mixins: [presenter(), header(), form(defaultForm), crud()], |
|||
data() { |
|||
return { |
|||
permission: { |
|||
add: ['admin', 'column:add'], |
|||
edit: ['admin', 'column:edit'], |
|||
del: ['admin', 'column:del'] |
|||
}, |
|||
enabledTypeOptions: [ |
|||
{ key: '1', display_name: '启用' }, |
|||
{ key: '0', display_name: '停用' } |
|||
], |
|||
fiterColumnZero: false, |
|||
rules: { |
|||
columnName: [ |
|||
{ required: true, message: '请输入机构名称', trigger: 'blur' } |
|||
], |
|||
columnNo: [ |
|||
{ required: true, message: '请输入栏目编码', trigger: 'blur' } |
|||
], |
|||
columnType: [ |
|||
{ required: true, message: '请选择栏目类型', trigger: 'change' } |
|||
], |
|||
columnContentType: [ |
|||
{ required: true, message: '请选择内容类型', trigger: 'change' } |
|||
], |
|||
columnOrders: [ |
|||
{ required: true, message: '请输入排序', trigger: 'blur', type: 'number' } |
|||
], |
|||
columnStatus: [ |
|||
{ required: true, message: '请选择状态', trigger: 'change' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
...mapGetters([ |
|||
'baseApi', |
|||
'user' |
|||
]) |
|||
}, |
|||
created() { |
|||
}, |
|||
mounted() { |
|||
}, |
|||
methods: { |
|||
[CRUD.HOOK.beforeRefresh]() { |
|||
}, |
|||
[CRUD.HOOK.afterRefresh]() { |
|||
}, |
|||
// 新增前 |
|||
[CRUD.HOOK.beforeToAdd](crud, form) { |
|||
}, |
|||
// 编辑前 |
|||
[CRUD.HOOK.beforeToEdit](crud, form) { |
|||
}, |
|||
// 提交前做的操作 |
|||
[CRUD.HOOK.afterValidateCU](crud) { |
|||
console.log(crud.form) |
|||
return true |
|||
}, |
|||
handleFiterColumnZero(val) { |
|||
console.log(val) |
|||
}, |
|||
toDelete(datas) { |
|||
this.$confirm('此操作将删除当前所选' + this.crud.title + '<span>你是否还要继续?</span>', '提示', { |
|||
confirmButtonText: '继续', |
|||
cancelButtonText: '取消', |
|||
type: 'warning', |
|||
dangerouslyUseHTMLString: true |
|||
}).then(() => { |
|||
this.crud.delAllLoading = true |
|||
const ids = [] |
|||
datas.forEach(val => { |
|||
ids.push(val.fondsId) |
|||
}) |
|||
// crudfonds.del(ids).then(() => { |
|||
// this.$message({ message: '删除成功', type: 'success', offset: 8 }) |
|||
// this.crud.delAllLoading = false |
|||
// this.crud.refresh() |
|||
// }).catch(err => { |
|||
// this.crud.delAllLoading = false |
|||
// console.log(err) |
|||
// }) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
changeStatus(data, val) { |
|||
this.$confirm('此操作将禁用 / 启用栏目 “' + data.fondsName + '”' + '<span>你是否还要继续?</span>', '提示', { |
|||
confirmButtonText: '继续', |
|||
cancelButtonText: '取消', |
|||
type: 'warning', |
|||
dangerouslyUseHTMLString: true |
|||
}).then(() => { |
|||
// crudfonds.FetchUpdateFondsStatus(data).then(res => { |
|||
// this.$message({ message: '修改成功', type: 'success', offset: 8 }) |
|||
// }).catch(() => { |
|||
// data.fondsStatus = !data.fondsStatus |
|||
// }) |
|||
}).catch(() => { |
|||
this.$message({ message: '已取消修改', offset: 8 }) |
|||
// data.fondsStatus = data.fondsStatus ? 0 : 1 |
|||
}) |
|||
}, |
|||
doExport(data) { |
|||
crud.downloadLoading = true |
|||
this.$confirm('此操作将导出所选数据' + '<span>你是否还要继续?</span>', '提示', { |
|||
confirmButtonText: '继续', |
|||
cancelButtonText: '取消', |
|||
type: 'warning', |
|||
dangerouslyUseHTMLString: true |
|||
}).then(() => { |
|||
const ids = [] |
|||
data.forEach(val => { |
|||
ids.push(val.fondsId) |
|||
}) |
|||
const params = { |
|||
'fondsIds': ids |
|||
} |
|||
console.log('params', params) |
|||
// exportFile(this.baseApi + '/api/fonds/download?' + qs.stringify(params, { indices: false })) |
|||
}).catch(() => { |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
::v-deep .el-dialog { |
|||
.el-dialog__body { |
|||
.el-form-item{ |
|||
&:nth-child(odd){ |
|||
margin-right: 0 !important; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,412 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div class="container-main" style="justify-content: flex-start;"> |
|||
<div class="elect-cont-left"> |
|||
<div class="head-container"> |
|||
<el-input v-model="filterText" clearable size="small" placeholder="输入栏目名称搜索" prefix-icon="el-icon-search" class="filter-item" /> |
|||
</div> |
|||
<el-tree ref="tree" v-loading="crud.loading" :data="fondsDatas" :props="defaultProps" :expand-on-click-node="false" :default-expanded-keys="defaultExpandedKeys" node-key="id" highlight-current :filter-node-method="filterNode" @node-click="handleNodeClick"> |
|||
<template |
|||
slot-scope="{node}" |
|||
class="custom-tree-node" |
|||
> |
|||
<span |
|||
v-if="node.label.length <= 10" |
|||
class="tree-text" |
|||
> {{ node.label }}</span> |
|||
<el-tooltip |
|||
v-else |
|||
effect="dark" |
|||
:content="node.label" |
|||
:enterable="false" |
|||
placement="left" |
|||
> |
|||
<span class="tree-text"> {{ node.label }}</span> |
|||
</el-tooltip> |
|||
</template> |
|||
</el-tree> |
|||
</div> |
|||
<!--用户数据--> |
|||
<div class="elect-cont-right"> |
|||
<!--工具栏--> |
|||
<div class="head-container"> |
|||
<div class="head-search"> |
|||
<el-input v-model="query.blurry" clearable size="small" placeholder="输入内容标题搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" /> |
|||
<el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="crud.toQuery">搜索</el-button> |
|||
<el-button v-if="crud.optShow.reset" class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery()">重置</el-button> |
|||
</div> |
|||
<crudOperation :permission="permission"> |
|||
<template v-slot:middle> |
|||
<el-button slot="reference" size="mini" :loading="crud.delAllLoading" :disabled="crud.selections.length === 0" @click="toDelete(crud.selections)"> |
|||
<i class="iconfont icon-shanchu" /> |
|||
删除 |
|||
</el-button> |
|||
</template> |
|||
</crudOperation> |
|||
</div> |
|||
<el-dialog class="inquiry-dialog" append-to-body :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title"> |
|||
<div class="setting-dialog"> |
|||
<div class="content-parent-info"> |
|||
<div>所属栏目:<span>图书馆简介</span></div> |
|||
<div>栏目类型:<span>单页展示</span></div> |
|||
<div>栏目类型:<span>图文</span></div> |
|||
</div> |
|||
<el-form ref="form" inline :model="form" :rules="rules" size="small" label-width="90px"> |
|||
<el-row> |
|||
<el-form-item label="标题" prop="title"> |
|||
<el-input v-model="form.title" style="width: 1000px;" /> |
|||
</el-form-item> |
|||
</el-row> |
|||
<el-form-item label="来源" prop="original"> |
|||
<el-input v-model="form.original" /> |
|||
</el-form-item> |
|||
<el-form-item label="作者" prop="author"> |
|||
<el-input v-model="form.author" /> |
|||
</el-form-item> |
|||
<el-form-item label="责编" prop="editor"> |
|||
<el-input v-model="form.editor" /> |
|||
</el-form-item> |
|||
<mavon-editor |
|||
:value="form.content" |
|||
:subfield="true" |
|||
:default-open="'edit,preview'" |
|||
:editable="true" |
|||
:ishljs="true" |
|||
@change="handleEditorChange" |
|||
/> |
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button type="text" @click="crud.cancelCU">取消</el-button> |
|||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确定</el-button> |
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
<!--表格渲染--> |
|||
<div class="container-right"> |
|||
<span class="right-top-line" /> |
|||
<span class="left-bottom-line" /> |
|||
<el-table |
|||
ref="table" |
|||
v-loading="crud.loading" |
|||
height="calc(100vh - 330px)" |
|||
:data="tableData" |
|||
:row-key="getRowKey" |
|||
@selection-change="crud.selectionChangeHandler" |
|||
@row-click="clickRowHandler" |
|||
> |
|||
<el-table-column type="selection" align="center" width="55" /> |
|||
<el-table-column label="标题" prop="deptsName" /> |
|||
<el-table-column label="所属栏目" prop="deptsCode" /> |
|||
<el-table-column label="栏目类型" prop="deptsTotalPeoNum" /> |
|||
<el-table-column label="内容类型" prop="fondsName" /> |
|||
<el-table-column label="创建者" prop="create" /> |
|||
<el-table-column prop="createTime" label="创建日期"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.createTime | parseTime }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!--分页组件--> |
|||
<pagination v-if="crud.data.length!==0" /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import crudDept from '@/api/system/dept' |
|||
import { FetchFondsAll } from '@/api/system/fonds' |
|||
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
|||
import crudOperation from '@crud/CRUD.operation' |
|||
import pagination from '@crud/Pagination' |
|||
import Vue from 'vue' |
|||
import { mapGetters } from 'vuex' |
|||
|
|||
const defaultForm = { id: null, title: null, original: '', author: '', editor: '', content: '' } |
|||
export default { |
|||
name: 'Content', |
|||
components: { crudOperation, pagination }, |
|||
cruds() { |
|||
return CRUD({ title: '内容', idField: 'deptsId', url: 'api/depts/initDeptsList', crudMethod: { ...crudDept }, optShow: { |
|||
add: true, |
|||
edit: true, |
|||
del: false, |
|||
reset: true, |
|||
download: false, |
|||
group: false |
|||
}, |
|||
queryOnPresenterCreated: false |
|||
}) |
|||
}, |
|||
mixins: [presenter(), header(), form(defaultForm), crud()], |
|||
dicts: ['dept_status'], |
|||
data() { |
|||
return { |
|||
depts: [], |
|||
tableData: [], |
|||
rules: { |
|||
title: [ |
|||
{ required: true, message: '标题不可为空', trigger: 'blur' } |
|||
] |
|||
// deptsName: [ |
|||
// { required: true, message: '部门名称不可为空', trigger: 'blur' } |
|||
// ], |
|||
// isTop: [ |
|||
// { required: true, message: '是否为顶级部门', trigger: 'change' } |
|||
// ], |
|||
// deptsParentsId: [ |
|||
// { required: true, message: '请选择上级部门', trigger: 'change' } |
|||
// ], |
|||
// deptsOrders: [ |
|||
// { required: true, message: '请输入序号', trigger: 'blur', type: 'number' } |
|||
// ], |
|||
// deptsStatus: [ |
|||
// { required: true, message: '请选择状态', trigger: 'change' } |
|||
// ] |
|||
}, |
|||
fondsName: '', |
|||
fondsDatas: [], |
|||
filterText: '', |
|||
defaultExpandedKeys: [], |
|||
fondsOptions: [], |
|||
defaultProps: { children: 'children', label: 'fondsName' }, |
|||
permission: { |
|||
add: ['admin', 'dept:add'], |
|||
edit: ['admin', 'dept:edit'], |
|||
del: ['admin', 'dept:del'] |
|||
}, |
|||
enabledTypeOptions: [ |
|||
{ key: '1', display_name: '激活' }, |
|||
{ key: '0', display_name: '锁定' } |
|||
], |
|||
levelNumber: 0 |
|||
} |
|||
}, |
|||
computed: { |
|||
...mapGetters([ |
|||
'baseApi', |
|||
'user' |
|||
]) |
|||
}, |
|||
watch: { |
|||
filterText(val) { |
|||
this.$refs.tree.filter(val) |
|||
} |
|||
}, |
|||
mounted() { |
|||
this.getFondsDatas() |
|||
}, |
|||
methods: { |
|||
// 处理vue-treeSelect回显出现unknown问题 |
|||
getAutoNameUnknown(name) { |
|||
if (name.lastIndexOf('unknown') > -1) { |
|||
return name.split('(')[0] |
|||
} else { |
|||
return name |
|||
} |
|||
}, |
|||
getRowKey(row) { |
|||
return row.deptsId |
|||
}, |
|||
resetQuery() { |
|||
this.crud.query.blurry = '' |
|||
this.blurryTime = null |
|||
this.crud.query.startTime = null |
|||
this.crud.query.endTime = null |
|||
this.crud.query.status = null |
|||
this.crud.toQuery() |
|||
}, |
|||
[CRUD.HOOK.beforeRefresh]() { |
|||
this.tableData = [] |
|||
}, |
|||
[CRUD.HOOK.afterRefresh](crud) { |
|||
crud.data.forEach(function(item, index) { |
|||
if (item.sonNum !== 0) { |
|||
item.hasChildren = true |
|||
} else { |
|||
item.hasChildren = false |
|||
} |
|||
if (!item.hasChildren) { |
|||
item.children = null |
|||
} |
|||
}) |
|||
this.tableData = this.crud.data |
|||
}, |
|||
// 新增与编辑前做的操作 |
|||
[CRUD.HOOK.afterToCU](crud, form) { |
|||
this.depts = [] |
|||
this.levelNumber = 0 |
|||
if (form.id != null) { |
|||
if (form.deptsParentsId === null) { |
|||
form.isTop = '1' |
|||
} else { |
|||
form.isTop = '0' |
|||
const params = { |
|||
'fondsId': form.fondsId, |
|||
'fondsName': form.fondsName, |
|||
'status': 1 |
|||
} |
|||
this.getDepts(params) |
|||
this.levelNumber = 4 |
|||
} |
|||
} |
|||
}, |
|||
// 编辑前 |
|||
[CRUD.HOOK.beforeToEdit](crud, form) { |
|||
crud.form.id = form.deptsId |
|||
}, |
|||
// 提交前的验证 |
|||
[CRUD.HOOK.afterValidateCU](crud) { |
|||
console.log(crud.form) |
|||
return false |
|||
}, |
|||
handleEditorChange(value) { |
|||
this.form.content = value |
|||
}, |
|||
getFondsDatas() { |
|||
const parent = {} |
|||
parent.id = 0 |
|||
parent.fondsName = '栏目' |
|||
FetchFondsAll().then(res => { |
|||
parent.children = res |
|||
this.fondsDatas.push(parent) |
|||
this.fondsOptions = res |
|||
this.$nextTick(() => { |
|||
Vue.set(this.defaultExpandedKeys, 0, this.fondsDatas[0].children[0].id) |
|||
this.$refs.tree.setCurrentKey(this.fondsDatas[0].children[0].id) |
|||
this.handleNodeClick(this.fondsDatas[0].children[0]) |
|||
}) |
|||
}) |
|||
}, |
|||
filterNode(value, data) { |
|||
if (!value) return true |
|||
return data.fondsName.indexOf(value) !== -1 |
|||
}, |
|||
handleNodeClick(val) { |
|||
if (val) { |
|||
if (val.id !== 0) { |
|||
this.query.fondsName = val.fondsName |
|||
this.query.fondsNo = val.fondsNo |
|||
this.crud.toQuery() |
|||
const params = { |
|||
'fondsId': val.id, |
|||
'fondsName': val.fondsName, |
|||
'status': 1 |
|||
} |
|||
this.getDepts(params) |
|||
} |
|||
} |
|||
}, |
|||
clickRowHandler(row) { |
|||
this.$refs.table.clearSelection() |
|||
this.$refs.table.toggleRowSelection(row) |
|||
}, |
|||
getDepts(params) { |
|||
crudDept.getDepts(params).then(res => { |
|||
this.depts = res.content.map(function(obj) { |
|||
if (obj.sonNum !== 0) { |
|||
obj.hasChildren = true |
|||
} else { |
|||
obj.hasChildren = false |
|||
} |
|||
if (obj.hasChildren) { |
|||
obj.children = null |
|||
} |
|||
return obj |
|||
}) |
|||
}) |
|||
}, |
|||
toDelete(datas) { |
|||
const bool = datas.every(item => item.deptsTotalPeoNum !== 0) |
|||
if (!bool) { |
|||
this.$confirm('此操作将删除当前所选' + this.crud.title + '<span>你是否还要继续?</span>', '提示', { |
|||
confirmButtonText: '继续', |
|||
cancelButtonText: '取消', |
|||
type: 'warning', |
|||
dangerouslyUseHTMLString: true |
|||
}).then(() => { |
|||
this.crud.delAllLoading = true |
|||
const ids = [] |
|||
datas.forEach(val => { |
|||
ids.push(val.deptsId) |
|||
}) |
|||
crudDept.del(ids).then(() => { |
|||
this.$message({ message: '删除成功', type: 'success', offset: 8 }) |
|||
this.crud.delAllLoading = false |
|||
this.crud.refresh() |
|||
}).catch(err => { |
|||
this.crud.delAllLoading = false |
|||
console.log(err) |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
} else { |
|||
this.$message({ message: '当前选择条目中有用户存在不可直接操作删除', type: 'error', offset: 8 }) |
|||
} |
|||
}, |
|||
normalizer(node) { |
|||
if (node.children && !node.children.length) { |
|||
delete node.children |
|||
} |
|||
return { |
|||
id: node.deptsId, |
|||
label: node.deptsName, |
|||
children: node.children |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
::v-deep .expanded-list.el-table .el-table__cell:first-child .cell{ |
|||
margin-left: -20px; |
|||
} |
|||
.el-tree{ |
|||
.el-tree-node__content{ |
|||
.tree-text{ |
|||
font-size: 16px; |
|||
font-weight: 600; |
|||
} |
|||
} |
|||
.el-tree-node__children{ |
|||
.tree-text { |
|||
font-size: 14px !important; |
|||
font-weight: normal; |
|||
text-overflow: ellipsis; |
|||
overflow: hidden; |
|||
white-space: nowrap; |
|||
display: inline-block; |
|||
min-width: 170px; |
|||
} |
|||
} |
|||
} |
|||
.inquiry-dialog{ |
|||
::v-deep .el-dialog{ |
|||
width: 1170px !important; |
|||
.el-dialog__body .el-form-item .el-form-item__content{ |
|||
width: 254px !important; |
|||
} |
|||
|
|||
.v-note-wrapper{ |
|||
height: 420px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.content-parent-info{ |
|||
display: flex; |
|||
justify-content: flex-start; |
|||
align-items: center; |
|||
line-height: 32px; |
|||
padding: 0 0 20px 48px; |
|||
& div{ |
|||
margin-right: 20px; |
|||
span{ |
|||
font-weight: bold; |
|||
color: #0c0e1e; |
|||
} |
|||
} |
|||
} |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue