<!--
|
* @Date: 2024-05-26 16:12:09
|
* @LastEditors: Sneed
|
* @LastEditTime: 2024-06-11 19:53:38
|
* @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/dnc/craft/document/index.vue
|
-->
|
<!--
|
* @Date: 2024-05-21 22:46:05
|
* @LastEditors: Sneed
|
* @LastEditTime: 2024-05-26 21:50:37
|
* @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/dnc/craft/document/index.vue
|
-->
|
<template>
|
<el-main style="height: 100%;">
|
<el-card shadow="never" style="height: 100%;" body-style="height: 100%">
|
<el-container>
|
<el-aside width="200px">
|
<el-tree ref="group" node-key="id" :props="{
|
label: 'name',
|
hasChildren: 'id'
|
}" @node-click="nodeClick" highlight-current :current-node-key="selectNode.id" :load="loadNode"
|
lazy></el-tree>
|
</el-aside>
|
<el-container>
|
<el-header>
|
<el-button style="margin-left: 8px;" type="danger" plain :disabled="selection.length === 0"
|
@click="del">删除</el-button>
|
<el-button style="margin-left: 8px;margin-right: auto;" type="primary"
|
@click="addNew">新增</el-button>
|
</el-header>
|
<el-main v-if="selectNode.id || selectNode.id == 0">
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<scTable highlight-current-row @dataChange="dataChange" @row-click="rowClick"
|
ref="table" :params="params" :apiObj="apiObj" @selection-change="selectionChange"
|
stripe>
|
<el-table-column type="selection" width="50"></el-table-column>
|
<el-table-column label="工艺包名称" prop="name" width="160">
|
</el-table-column>
|
<el-table-column label="工艺包编号" prop="code" width="160"></el-table-column>
|
<el-table-column label="操作" fixed="right" align="right" width="160">
|
<template #default="scope">
|
<el-button-group>
|
<el-button text type="primary" size="small"
|
@click="table_edit(scope.row, scope.$index)">编辑</el-button>
|
<el-button text type="primary" size="small"
|
@click="del([scope.row])">删除</el-button>
|
</el-button-group>
|
</template>
|
</el-table-column>
|
</scTable>
|
</el-col>
|
<el-col :span="12">
|
<h2>工艺包详情</h2>
|
<el-row>
|
<el-col :span="12">
|
工艺包名称:
|
</el-col>
|
<el-col :span="12">
|
工艺包编号:
|
</el-col>
|
<el-col :span="12">
|
工艺包所在目录:
|
</el-col>
|
<el-col :span="24">
|
<Children></Children>
|
</el-col>
|
</el-row>
|
</el-col>
|
</el-row>
|
|
</el-main>
|
</el-container>
|
</el-container>
|
</el-card>
|
<el-dialog v-model="visible" title="新建文件夹" width="500">
|
<el-form :model="formEdit" :rules="rulesEdit" ref="dialogForm" label-width="120px" label-position="center">
|
<el-form-item label="上级目录">
|
<el-input disabled v-model="formEdit.parentName" />
|
</el-form-item>
|
<el-form-item label="目录名称" prop="name">
|
<el-input v-model="formEdit.name" />
|
</el-form-item>
|
<el-col :span="24">
|
<el-form-item>
|
<slot>
|
<el-button type="primary" @click="submit">提交</el-button>
|
</slot>
|
</el-form-item>
|
</el-col>
|
</el-form>
|
</el-dialog>
|
<scDialog v-model="newVisible">
|
<scForm ref="form" :config="config" :rules="rules" v-model="form" @submit="submit">
|
</scForm>
|
</scDialog>
|
</el-main>
|
</template>
|
|
<script>
|
import Children from './Children.vue'
|
export default {
|
components: {
|
Children
|
},
|
data() {
|
return {
|
treeData: [],
|
selection: [],
|
selectNode: {
|
// id: 0
|
},
|
apiObj: {
|
get: async (data) => {
|
let params = {
|
...data,
|
catalogueId: this.selectNode.id,
|
...this.params
|
}
|
return await this.$HTTP.get(`/api/blade-dnc/dnc-art-bag/cur-sub-page`, {}, { params }).then(res => {
|
return res
|
})
|
}
|
},
|
newVisible: false,
|
config: {
|
labelWidth: 120,
|
formItems: [
|
{
|
component: 'input',
|
label: '工艺包名称',
|
name: 'name',
|
options: {
|
placeholder: '',
|
maxlength: 100,
|
}
|
},
|
{
|
component: 'input',
|
label: '工艺包编号',
|
name: 'code',
|
options: {
|
multiple: false,
|
data: []
|
},
|
disabled: false
|
}
|
]
|
},
|
form: {
|
},
|
rules: {
|
name: [
|
{ required: true, message: '请输入' },
|
],
|
code: [
|
{ required: true, message: '请输入' },
|
]
|
},
|
selection: [],
|
visible: false,
|
formEdit: {
|
parentId: '',
|
parentName: '',
|
name: ''
|
},
|
rulesEdit: {
|
name: [
|
{ required: true, message: '必填' }
|
]
|
},
|
}
|
},
|
created() {
|
},
|
methods: {
|
loadNode(node, resolve) {
|
console.log(node, '>>>>>>')
|
let id = node.level === 0 ? '' : node.data.id
|
this.$HTTP.get(`/api/blade-dnc/dnc-process-catalogue/lazy-list?parentId=${id}`).then(res => {
|
if (node.level === 0) {
|
this.$nextTick(() => {
|
this.nodeClick(res.data[0])
|
})
|
}
|
resolve(res.data)
|
})
|
},
|
addNew() {
|
this.$refs?.form?.resetFields()
|
this.form = {
|
name: '',
|
code: ''
|
}
|
this.config.formItems[1].disabled = false
|
this.newVisible = true
|
},
|
submit() {
|
if (this.form.id) {
|
return this.$HTTP.put(`/api/blade-dnc/dnc-art-bag/update?id=${this.form.id}&name=${this.form.name}`).then(res => {
|
if (res.success) {
|
this.newVisible = false
|
this.$refs.table.reload()
|
}
|
})
|
}
|
this.$HTTP.post(`/api/blade-dnc/dnc-art-bag/insert`, {
|
catalogueId: this.selectNode.id,
|
...this.form
|
}).then(res => {
|
if (res.success) {
|
this.newVisible = false
|
this.$refs.table.reload()
|
} else {
|
this.$message.error(res.msg)
|
}
|
|
})
|
},
|
table_edit(row) {
|
this.$refs?.form?.resetFields()
|
this.form = {
|
name: row.name,
|
code: row.code,
|
id: row.id,
|
}
|
this.config.formItems[1].disabled = true
|
this.newVisible = true
|
},
|
selectionChange(selection) {
|
this.selection = selection
|
},
|
del() {
|
this.$confirm(`是否确认删除?`, '提示', {
|
type: 'warning',
|
}).then(() => {
|
this.$HTTP.delete(`/api/blade-dnc/dnc-art-bag/remove`, {}, { data: this.selection.map(v => v.id) }).then(res => {
|
this.$message.success("操作成功");
|
this.$refs.table.reload()
|
})
|
}).catch(() => {
|
return false
|
})
|
|
},
|
nodeClick(node, treeNode) {
|
console.log(node, treeNode)
|
this.selectNode = {
|
...node,
|
parentName: treeNode?.parent?.data?.name || '-'
|
}
|
this.$refs?.table?.reload()
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped></style>
|