parent
d12b749802
commit
f9319ef4fb
10 changed files with 456 additions and 50 deletions
@ -0,0 +1,192 @@ |
||||
<template> |
||||
<div class="page"> |
||||
<div class="text-right m-b-20"> |
||||
<el-button type="primary" |
||||
@click="handleColumn(false, 1)">添加分类 |
||||
</el-button> |
||||
</div> |
||||
<div class="el-table"> |
||||
<div class="list"> |
||||
<div class="thead"> |
||||
<span>分类名称</span> |
||||
<span>操作</span> |
||||
</div> |
||||
</div> |
||||
<el-tree :data="list" |
||||
node-key="id" |
||||
default-expand-all> |
||||
<span class="custom-tree-node" |
||||
slot-scope="{ node, data }"> |
||||
<span class="name">{{ data.classificationName }}</span> |
||||
<span class="action"> |
||||
<el-button type="text" |
||||
@click.stop="handleColumn(data)">编辑</el-button> |
||||
<el-divider direction="vertical"></el-divider> |
||||
<template v-if="node.level < 3"> |
||||
<el-button type="text" |
||||
@click.stop="handleColumn(data, data.id)">新增</el-button> |
||||
<el-divider direction="vertical"></el-divider> |
||||
</template> |
||||
<el-button type="text" |
||||
@click.stop="delData(data)">删除</el-button> |
||||
</span> |
||||
</span> |
||||
</el-tree> |
||||
</div> |
||||
|
||||
<el-dialog :title="!curRow.id ? '添加分类' : '编辑分类'" |
||||
:visible.sync="columnVisible" |
||||
width="400px" |
||||
:close-on-click-modal="false" |
||||
@close="closeColumn"> |
||||
<el-form> |
||||
<el-form-item> |
||||
<el-input placeholder="分类名称" |
||||
v-model="curRow.classificationName"></el-input> |
||||
</el-form-item> |
||||
</el-form> |
||||
<span slot="footer" |
||||
class="dialog-footer"> |
||||
<el-button @click="columnVisible = false">取 消</el-button> |
||||
<el-button type="primary" |
||||
@click="columnSubmit">确 定</el-button> |
||||
</span> |
||||
</el-dialog> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import Util from "@/libs/util"; |
||||
import Setting from '@/setting' |
||||
export default { |
||||
data () { |
||||
return { |
||||
list: [], |
||||
columnVisible: false, |
||||
curRow: {}, |
||||
}; |
||||
}, |
||||
mounted () { |
||||
this.getData(); |
||||
}, |
||||
methods: { |
||||
async getData () { |
||||
const { list } = await this.$post(this.api.treeStructureList) |
||||
this.list = list |
||||
}, |
||||
delData (row) { |
||||
this.$confirm("此删除操作不可逆,是否确认删除选中项?", "提示", { |
||||
type: "warning" |
||||
}).then(() => { |
||||
this.$post(this.api.delSupplierClass, [row.id]).then(res => { |
||||
Util.successMsg("删除成功"); |
||||
this.getData(); |
||||
}).catch(res => { }); |
||||
}).catch(() => { }); |
||||
}, |
||||
handleColumn (row, parentId) { |
||||
this.columnVisible = true |
||||
if (row) { |
||||
this.curRow = JSON.parse(JSON.stringify(row)) |
||||
} |
||||
if (typeof parentId === 'number') { |
||||
this.curRow = { |
||||
parentId, |
||||
classificationName: '', |
||||
} |
||||
} |
||||
}, |
||||
columnSubmit () { |
||||
const row = this.curRow |
||||
if (!row.classificationName) return Util.warningMsg("请填写分类名称"); |
||||
if (this.curRow.id) { |
||||
this.$post(this.api.updateSupplierClass, row).then(res => { |
||||
Util.successMsg("修改成功"); |
||||
this.columnVisible = false; |
||||
this.getData(); |
||||
}).catch(res => { }); |
||||
} else { |
||||
this.$post(this.api.saveSupplierClass, row).then(res => { |
||||
Util.successMsg("添加成功"); |
||||
this.columnVisible = false; |
||||
this.getData(); |
||||
}).catch(res => { }); |
||||
} |
||||
}, |
||||
closeColumn () { |
||||
this.curRow = {} |
||||
}, |
||||
} |
||||
}; |
||||
</script> |
||||
|
||||
<style lang="scss" scoped> |
||||
.list { |
||||
.thead { |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
background: rgba(0, 0, 0, 0.04) !important; |
||||
|
||||
span { |
||||
padding: 0.75rem 0.625rem; |
||||
text-align: center; |
||||
font-size: 14px; |
||||
color: rgba(0, 0, 0, 0.85); |
||||
font-weight: normal; |
||||
box-sizing: border-box; |
||||
|
||||
&:first-child { |
||||
padding-left: 23.5vw; |
||||
@media (max-width: 1270px) { |
||||
padding-left: 25.5%; |
||||
} |
||||
} |
||||
|
||||
&:last-child { |
||||
width: 16%; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
/deep/ .el-tree { |
||||
.el-tree-node__expand-icon { |
||||
margin-left: 22.5vw; |
||||
@media (max-width: 1270px) { |
||||
margin-left: 23.5%; |
||||
} |
||||
} |
||||
|
||||
.el-tree-node__content { |
||||
height: 35px; |
||||
padding: 5px; |
||||
border-bottom: 0.0625rem solid #ebeef5; |
||||
} |
||||
} |
||||
|
||||
.custom-tree-node { |
||||
flex: 1; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
font-size: 14px; |
||||
padding-right: 8px; |
||||
|
||||
.name { |
||||
line-height: 44px; |
||||
} |
||||
|
||||
.action { |
||||
width: 8.5vw; |
||||
text-align: left; |
||||
@media (max-width: 1270px) { |
||||
width: 16%; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.hide { |
||||
opacity: 0; |
||||
} |
||||
</style> |
@ -0,0 +1,23 @@ |
||||
import BasicLayout from '@/layouts/home' |
||||
|
||||
const meta = {} |
||||
|
||||
const pre = 'supplierClassification-' |
||||
|
||||
export default { |
||||
path: '/supplierClassification', |
||||
name: 'supplierClassification', |
||||
redirect: { |
||||
name: `${pre}list` |
||||
}, |
||||
meta, |
||||
component: BasicLayout, |
||||
children: [ |
||||
{ |
||||
name: `${pre}list`, |
||||
path: `list`, |
||||
component: () => import('@/pages/supplierClassification/list'), |
||||
meta: { title: '供应商分类' } |
||||
}, |
||||
] |
||||
} |
Loading…
Reference in new issue