Merge remote-tracking branch 'origin/master'

master
hansha 2 years ago
commit 77d9dfe807

@ -9,7 +9,7 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="父目录ID" prop="pid"> <!-- <el-form-item label="父目录ID" prop="pid">
<el-input <el-input
v-model="queryParams.pid" v-model="queryParams.pid"
placeholder="请输入父目录ID" placeholder="请输入父目录ID"
@ -32,7 +32,7 @@
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>-->
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -52,49 +52,38 @@
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="success" type="info"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['dangan:bookshelf:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['dangan:bookshelf:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain plain
icon="el-icon-download" icon="el-icon-sort"
size="mini" size="mini"
@click="handleExport" @click="toggleExpandAll"
v-hasPermi="['dangan:bookshelf:export']" >展开/折叠</el-button>
>导出</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="bookshelfList" @selection-change="handleSelectionChange"> <el-table v-if="refreshTable"
<el-table-column type="selection" width="55" align="center" /> v-loading="loading"
<el-table-column label="书架id" align="center" prop="shelfId" /> :data="list"
row-key="shelfId"
:default-expand-all="isExpandAll"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}">
<el-table-column label="书架Id" align="center" prop="shelfId" />
<el-table-column label="名称" align="center" prop="name" /> <el-table-column label="名称" align="center" prop="name" />
<el-table-column label="父目录ID" align="center" prop="pid" /> <!-- <el-table-column label="父目录ID" align="center" prop="pid" />-->
<el-table-column label="祖级列表" align="center" prop="ancestors" /> <!-- <el-table-column label="祖级列表" align="center" prop="ancestors" />-->
<el-table-column label="显示顺序" align="center" prop="orderNum" /> <el-table-column label="显示顺序" align="center" prop="orderNum" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="handleAdd(scope.row)"
v-hasPermi="['dangan:bookshelf:add']"
>新增</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -112,7 +101,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
@ -124,12 +113,18 @@
<!-- 添加或修改物理书架对话框 --> <!-- 添加或修改物理书架对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="上级书架" prop="pid">
<treeselect
v-model="form.pid"
:options="muOptions"
:normalizer="normalizer"
:show-count="true"
placeholder="选择上级书架"
/>
</el-form-item>
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="form.name" placeholder="请输入名称" /> <el-input v-model="form.name" placeholder="请输入名称" />
</el-form-item> </el-form-item>
<el-form-item label="父目录ID" prop="pid">
<el-input v-model="form.pid" placeholder="请输入父目录ID" />
</el-form-item>
<el-form-item label="显示顺序" prop="orderNum"> <el-form-item label="显示顺序" prop="orderNum">
<el-input v-model="form.orderNum" placeholder="请输入显示顺序" /> <el-input v-model="form.orderNum" placeholder="请输入显示顺序" />
</el-form-item> </el-form-item>
@ -147,45 +142,49 @@
<script> <script>
import { listBookshelf, getBookshelf, delBookshelf, addBookshelf, updateBookshelf } from "@/api/dangan/bookshelf"; import { listBookshelf, getBookshelf, delBookshelf, addBookshelf, updateBookshelf } from "@/api/dangan/bookshelf";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "Bookshelf", name: "Bookshelf",
components: { Treeselect },
data() { data() {
return { return {
// //
loading: true, loading: true,
// //
ids: [], ids: [],
//
single: true,
//
multiple: true,
// //
showSearch: true, showSearch: true,
//
total: 0,
// //
bookshelfList: [], list: [],
//
muOptions: [],
// //
title: "", title: "",
// //
open: false, open: false,
//
isExpandAll: false,
//
refreshTable: true,
// //
queryParams: { queryParams: {
pageNum: 1, name: null
pageSize: 10,
name: null,
pid: null,
ancestors: null,
orderNum: null,
}, },
// //
form: {}, form: {},
// //
rules: { rules: {
pid: [
{ required: true, message: "上级书架不能为空", trigger: "blur" }
],
name: [ name: [
{ required: true, message: "名称不能为空", trigger: "blur" } { required: true, message: "名称不能为空", trigger: "blur" }
], ],
orderNum: [
{ required: true, message: "显示顺序不能为空", trigger: "blur" }
],
} }
}; };
}, },
@ -197,11 +196,36 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
listBookshelf(this.queryParams).then(response => { listBookshelf(this.queryParams).then(response => {
this.bookshelfList = response.rows; this.list = response.rows;
this.total = response.total; this.list.forEach(item=>{
item['children']=[]
})
this.list = this.handleTree(response.rows, "shelfId","pid");
this.loading = false; this.loading = false;
}); });
}, },
/** 转换目录数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.shelfId,
label: node.name,
children: node.children
};
},
/** 查询目录下拉树结构 */
getTreeselect() {
listBookshelf().then(response => {
debugger
this.muOptions = [];
const menu = { shelfId: 0, name: '主类目', children: [] };
menu.children = this.handleTree(response.rows, "shelfId", "pid");
this.muOptions.push(menu);
console.log(this.muOptions);
});
},
// //
cancel() { cancel() {
this.open = false; this.open = false;
@ -240,14 +264,29 @@ export default {
this.multiple = !selection.length this.multiple = !selection.length
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd(row) {
this.reset(); this.reset();
this.getTreeselect();
if (row != null && row.shelfId) {
this.form.pid = row.shelfId;
} else {
this.form.pid = 0;
}
this.open = true; this.open = true;
this.title = "添加物理书架"; this.title = "添加物理书架";
}, },
/** 展开/折叠操作 */
toggleExpandAll() {
this.refreshTable = false;
this.isExpandAll = !this.isExpandAll;
this.$nextTick(() => {
this.refreshTable = true;
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.getTreeselect();
const shelfId = row.shelfId || this.ids const shelfId = row.shelfId || this.ids
getBookshelf(shelfId).then(response => { getBookshelf(shelfId).then(response => {
this.form = response.data; this.form = response.data;

Loading…
Cancel
Save