Browse Source

门类管理 排序

master
z_yu 3 years ago
parent
commit
6ad62a223a
  1. 10
      src/api/category/category.js
  2. 10
      src/api/category/fieldManage.js
  3. 17
      src/views/category/index.vue
  4. 16
      src/views/category/sortDialog.vue

10
src/api/category/category.js

@ -14,7 +14,6 @@ export function getCategoryType() {
}) })
} }
// 根据字典id查询子集
export function FetchArchivesTypeManage(parameter) { export function FetchArchivesTypeManage(parameter) {
return request({ return request({
url: 'api/archives-type/manage', url: 'api/archives-type/manage',
@ -23,6 +22,15 @@ export function FetchArchivesTypeManage(parameter) {
}) })
} }
// 点击排序对话框保存按钮,保存顺序
export function sort(data) {
return request({
url: 'api/archives-type/sort',
method: 'put',
data
})
}
export function add(data) { export function add(data) {
data = Object.assign({ isTypeMetic: data.isType === 6 }, data) data = Object.assign({ isTypeMetic: data.isType === 6 }, data)
return request({ return request({

10
src/api/category/fieldManage.js

@ -1,6 +1,11 @@
import request from '@/utils/request' import request from '@/utils/request'
export function add(data) { export function add(data) {
if (data.isDataType === 1) {
data.isDataTypeDetail = 'varchar'
} else if (data.isDataType === 2) {
data.isDataTypeDetail = 'int'
}
return request({ return request({
url: 'api/archives-type/create-dic', url: 'api/archives-type/create-dic',
method: 'post', method: 'post',
@ -18,6 +23,11 @@ export function del(ids) {
} }
export function edit(data) { export function edit(data) {
if (data.isDataType === 1) {
data.isDataTypeDetail = 'varchar'
} else if (data.isDataType === 2) {
data.isDataTypeDetail = 'int'
}
return request({ return request({
url: 'api/archives-type/update', url: 'api/archives-type/update',
method: 'put', method: 'put',

17
src/views/category/index.vue

@ -24,7 +24,7 @@
</div> </div>
</el-dialog> </el-dialog>
<!--排序对话框组件--> <!--排序对话框组件-->
<sortDialog ref="sort" />
<sortDialog ref="sort" @treeNodeSort="treeNodeSort" />
<!-- 门类列表 --> <!-- 门类列表 -->
<el-row class="container-main" :gutter="20"> <el-row class="container-main" :gutter="20">
<el-col class="container-left curd-in-out" :xs="10" :sm="8" :md="5" :lg="6" :xl="5"> <el-col class="container-left curd-in-out" :xs="10" :sm="8" :md="5" :lg="6" :xl="5">
@ -207,17 +207,8 @@ export default {
return false return false
} }
}, },
updateKeyChildren(data) {
const oldDatas = this.$refs.tree.getCurrentNode().children
if (oldDatas) {
for (let i = 0; i < data.length; i++) {
const oldData = oldDatas.find((d) => { return d.id === data[i].id })
if (oldData) {
data[i].children = oldData.children
}
}
}
this.$refs.tree.updateKeyChildren(this.$refs.tree.getCurrentKey(), data)
treeNodeSort(data) {
this.$refs.tree.updateKeyChildren(data[0].pid, JSON.parse(JSON.stringify(data)))
}, },
toDelete(data) { toDelete(data) {
this.deleteData = data this.deleteData = data
@ -237,10 +228,8 @@ export default {
done() done()
}, },
toSort(data) { toSort(data) {
// findSubsetById(data[0].id).then(res => {
this.$refs.sort.sortTableData = data[0].children this.$refs.sort.sortTableData = data[0].children
this.$refs.sort.sortVisible = true this.$refs.sort.sortVisible = true
// })
}, },
changeActiveTab(data) { changeActiveTab(data) {
this.activeIndex = data this.activeIndex = data

16
src/views/category/sortDialog.vue

@ -1,11 +1,11 @@
<template> <template>
<!--表单组件--> <!--表单组件-->
<el-dialog title="排序" :visible.sync="sortVisible" @opened="opened">
<el-dialog :close-on-click-modal="false" title="排序" :visible.sync="sortVisible" @opened="opened">
<span class="dialog-right-top" /> <span class="dialog-right-top" />
<span class="dialog-left-bottom" /> <span class="dialog-left-bottom" />
<div class="setting-dialog"> <div class="setting-dialog">
<i class="drag-tip">提示请通过拖动鼠标来调整当前顺序</i> <i class="drag-tip">提示请通过拖动鼠标来调整当前顺序</i>
<el-table :data="sortTableData" class="category-sort" style="width: 100%;max-height: 70vh;" row-key="id">
<el-table :data="sortTableData" :tree-props="{children: 'childrens'}" class="category-sort" style="width: 100%;max-height: 70vh;" row-key="id">
<el-table-column type="index" label="序号" width="100" align="center" /> <el-table-column type="index" label="序号" width="100" align="center" />
<el-table-column prop="cnName" label="门类名称" /> <el-table-column prop="cnName" label="门类名称" />
</el-table> </el-table>
@ -18,6 +18,7 @@
<script> <script>
import Sortable from 'sortablejs' import Sortable from 'sortablejs'
import { sort } from '@/api/category/category'
export default { export default {
data() { data() {
@ -45,7 +46,16 @@ export default {
this.rowDrop('category-sort', 'sortTableData') this.rowDrop('category-sort', 'sortTableData')
}, },
handleSort() { handleSort() {
const data = this.sortTableData.map((value, index) => {
return { id: value.id, sort: index + 1 }
})
this.sortTableData.forEach((item, index) => {
item.categorySeq = index + 1
})
sort(data).then(() => {
this.sortVisible = false
this.$emit('treeNodeSort', this.sortTableData)
})
} }
} }
} }

Loading…
Cancel
Save