feat: 企业标准库模块
This commit is contained in:
@@ -125,11 +125,11 @@ export default {
|
|||||||
// // // title: '本地产品/项目库',
|
// // // title: '本地产品/项目库',
|
||||||
// // // path: '/localProductsOrProjectLibrary'
|
// // // path: '/localProductsOrProjectLibrary'
|
||||||
// // // },
|
// // // },
|
||||||
// {
|
{
|
||||||
// title: '企业标准库',
|
title: '企业标准库',
|
||||||
// path: '/enterpriseStandardDatabase',
|
path: '/enterpriseStandardDatabase',
|
||||||
// menuId: '3YVZP8R4TC'
|
menuId: '01ed8f752748227777b3572d56ee9ab5'
|
||||||
// },
|
},
|
||||||
// {
|
// {
|
||||||
// title: '企标制修订计划',
|
// title: '企标制修订计划',
|
||||||
// path: '/enterBSysRevPlanManaLib',
|
// path: '/enterBSysRevPlanManaLib',
|
||||||
|
|||||||
+328
-23
@@ -4,27 +4,43 @@
|
|||||||
<!--左侧树-->
|
<!--左侧树-->
|
||||||
<div class="tree-content" :class="{ 'tree-closed': sideClose }" >
|
<div class="tree-content" :class="{ 'tree-closed': sideClose }" >
|
||||||
<div class="tree">
|
<div class="tree">
|
||||||
<laws-tree :zNodes="lawsZNodes"
|
<el-tree
|
||||||
ref="enterpriseStandardTree"
|
ref="tree"
|
||||||
treeDivId="enterpriseStandardTree"
|
node-key="id"
|
||||||
:deptSelect = true
|
class="filter-tree"
|
||||||
showRMenu
|
:props="props"
|
||||||
autoSelect
|
:data="treeList"
|
||||||
add-id="TB9979T4Y4"
|
highlight-current
|
||||||
edit-id="AES4L4E52G"
|
@node-click="treeClick"
|
||||||
remove-id="4PP7QBKXSQ"
|
default-expand-all
|
||||||
:drag="hasPermissionDrag"
|
:expand-on-click-node="false">
|
||||||
drag-bind=".drag-table"
|
<span class="custom-tree-node" slot-scope="{ node, data }" @mouseenter="mouseenter(data)" @mouseleave="mouseleave(data)">
|
||||||
:hideRMenuNode="['wdsc']"
|
<span> {{ node.label}} </span>
|
||||||
drag-dom="drag-row"
|
<span>
|
||||||
v-if="treeReload"
|
<el-button
|
||||||
@treeAdd="(treeId, treeNode) => clickDropMenu('newMenu', treeNode)"
|
type="text"
|
||||||
@treeEdit="(treeId, treeNode) => clickDropMenu('editMenu', treeNode)"
|
size="mini"
|
||||||
@treeClick="(treeId, treeNode) => treeClick(treeNode)"
|
v-show="data.show"
|
||||||
@treeRightClick="(treeId, treeNode) => treeRightClick(treeNode)"
|
@click="() => append(data)">
|
||||||
@treeRemove="(treeId, treeNode) => clickDropMenu('deleteMenu', treeNode)"
|
新增
|
||||||
@drag="drag"
|
</el-button>
|
||||||
></laws-tree>
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
v-show="data.show"
|
||||||
|
@click="() => update(data)">
|
||||||
|
编辑
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
v-show="data.showDel"
|
||||||
|
@click="() => remove(node, data)">
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</el-tree>
|
||||||
</div>
|
</div>
|
||||||
<div class="tree-collapse" @click="treeCollapse" :class="{ 'tree-close': sideClose }">
|
<div class="tree-collapse" @click="treeCollapse" :class="{ 'tree-close': sideClose }">
|
||||||
<!--切换折叠样式-->
|
<!--切换折叠样式-->
|
||||||
@@ -860,6 +876,64 @@
|
|||||||
}"
|
}"
|
||||||
@confirm="isTreeOk"
|
@confirm="isTreeOk"
|
||||||
></org-table>
|
></org-table>
|
||||||
|
<!-- 新建抽屉 -->
|
||||||
|
<el-drawer
|
||||||
|
:wrapperClosable="false"
|
||||||
|
:title="productTitle"
|
||||||
|
:visible.sync="productModal"
|
||||||
|
size="800px"
|
||||||
|
:before-close="closeDrawer"
|
||||||
|
label-width="130px"
|
||||||
|
>
|
||||||
|
<div class="demo-drawer-content">
|
||||||
|
<el-form :model="productModelAdd"
|
||||||
|
ref="productModelAdd"
|
||||||
|
:rules="productRules"
|
||||||
|
class="label-input-form"
|
||||||
|
label-width="130px">
|
||||||
|
<el-row>
|
||||||
|
<el-col>
|
||||||
|
<el-form-item label="菜单名称" prop="menuName" class="add-form-item">
|
||||||
|
<el-input v-model.trim="productModelAdd.menuName" placeholder="请输入菜单名称" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col>
|
||||||
|
<el-form-item label="排序号" prop="displaySeq" class="add-form-item">
|
||||||
|
<el-input v-model.number="productModelAdd.displaySeq"
|
||||||
|
number
|
||||||
|
placeholder="请输入排序号"
|
||||||
|
:maxlength="4"
|
||||||
|
clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col>
|
||||||
|
<el-form-item v-if="modalType === 2" label="上级菜单" prop="parentIdsName" class="add-form-item">
|
||||||
|
<el-input v-model="productModelAdd.parentIdsName" disabled
|
||||||
|
clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col>
|
||||||
|
<el-form-item label="描述" prop="remarks" class="add-form-item">
|
||||||
|
<el-input v-model.trim="productModelAdd.remarks"
|
||||||
|
placeholder="请输入描述"
|
||||||
|
clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<div class="demo-drawer-footer">
|
||||||
|
<el-button
|
||||||
|
class="common-button-primary"
|
||||||
|
icon="el-icon-check"
|
||||||
|
type="primary"
|
||||||
|
@click="saveProduct('productModelAdd')">提交</el-button>
|
||||||
|
<el-button
|
||||||
|
class="common-button-default"
|
||||||
|
icon="el-icon-close"
|
||||||
|
@click="closeModal">取消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-drawer>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -893,6 +967,60 @@ export default {
|
|||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
props: {
|
||||||
|
label: 'menuName',
|
||||||
|
children: 'children'
|
||||||
|
},
|
||||||
|
productModal: false, // 模态框是否打开
|
||||||
|
modalType: '',
|
||||||
|
productTitle: '', // 模态框标题
|
||||||
|
// 规范
|
||||||
|
productRules: {
|
||||||
|
menuName: [
|
||||||
|
{required: true, message: '一级菜单不能为空', trigger: 'blur'},
|
||||||
|
{type: 'string', max: 100, message: '最多输入100位', trigger: 'blur'}
|
||||||
|
],
|
||||||
|
displaySeq: [
|
||||||
|
{type: 'number', required: true, message: '排序号不能为空且为正整数', trigger: 'blur'},
|
||||||
|
{type: 'string', validator: this.verify.validStandNumInCompile2, trigger: 'blur'}
|
||||||
|
],
|
||||||
|
remarks: [
|
||||||
|
{type: 'string', max: 500, message: '最多输入500位', trigger: 'blur'}
|
||||||
|
],
|
||||||
|
dicTypeName: [
|
||||||
|
{required: true, message: '选项不能为空', trigger: 'blur'},
|
||||||
|
{type: 'string', max: 100, message: '最多输入100位', trigger: 'blur'}
|
||||||
|
],
|
||||||
|
showIndex: [
|
||||||
|
{type: 'number', required: true, message: '排序号不能为空且为正整数', trigger: 'blur'},
|
||||||
|
{type: 'string', validator: this.verify.validStandNumInCompile2, trigger: 'blur'}
|
||||||
|
],
|
||||||
|
describes: [
|
||||||
|
{type: 'string', max: 500, message: '最多输入500位', trigger: 'blur'}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
productModelAdd: {
|
||||||
|
id : "",
|
||||||
|
sorDivide : "INLAND_STAND",
|
||||||
|
menuName : "",
|
||||||
|
parentId : null,
|
||||||
|
parentIds : null,
|
||||||
|
parentIdsName : "",
|
||||||
|
displaySeq : "",
|
||||||
|
validFlag : "",
|
||||||
|
creationTime : "",
|
||||||
|
modifyTime : "",
|
||||||
|
remarks : "",
|
||||||
|
children : [],
|
||||||
|
// 模态框信息
|
||||||
|
dicTypeName: '',
|
||||||
|
showIndex: '',
|
||||||
|
// 描述
|
||||||
|
describes: '',
|
||||||
|
// 唯一辨识
|
||||||
|
dicId: ""
|
||||||
|
},
|
||||||
|
treeList: [],
|
||||||
standId: '',
|
standId: '',
|
||||||
visibleOrgTable: false,
|
visibleOrgTable: false,
|
||||||
visibleShare: false,
|
visibleShare: false,
|
||||||
@@ -1423,6 +1551,183 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
closeModal () {
|
||||||
|
this.productModal = false
|
||||||
|
this.closeDrawer()
|
||||||
|
},
|
||||||
|
// 提交新增/修改
|
||||||
|
saveProduct (name) {
|
||||||
|
this.$refs[name].validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.modalType === 1) {
|
||||||
|
this.$http.postData('sarResource/ts-resource/add', this.productModelAdd, {
|
||||||
|
_this: this
|
||||||
|
}, res => {
|
||||||
|
if (res.ok) {
|
||||||
|
this.selectMenuList()
|
||||||
|
this.productModal = false
|
||||||
|
this.productModelAdd = {
|
||||||
|
// 模态框信息
|
||||||
|
dicTypeName: '',
|
||||||
|
showIndex: '',
|
||||||
|
// 描述
|
||||||
|
describes: '',
|
||||||
|
// 唯一辨识
|
||||||
|
dicId: this.$route.params.id
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.productModal = true
|
||||||
|
}
|
||||||
|
}, e => {})
|
||||||
|
} else if (this.modalType === 2) {
|
||||||
|
this.$http.putData('sarResource/ts-resource', this.productModelAdd, {
|
||||||
|
_this: this
|
||||||
|
}, res => {
|
||||||
|
this.selectMenuList()
|
||||||
|
this.productModal = false
|
||||||
|
this.productModelAdd = {
|
||||||
|
// 模态框信息
|
||||||
|
dicTypeName: '',
|
||||||
|
showIndex: '',
|
||||||
|
// 描述
|
||||||
|
describes: '',
|
||||||
|
// 唯一辨识
|
||||||
|
dicId: this.$route.params.id
|
||||||
|
}
|
||||||
|
}, e => {
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
closeDrawer () {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs['productModelAdd'].resetFields()
|
||||||
|
this.productModelAdd = {
|
||||||
|
// 模态框信息
|
||||||
|
dicTypeName: '',
|
||||||
|
showIndex: '',
|
||||||
|
// 描述
|
||||||
|
describes: '',
|
||||||
|
// 唯一辨识
|
||||||
|
dicId: this.$route.params.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.productModal = false
|
||||||
|
},
|
||||||
|
// 查询二级菜单
|
||||||
|
selectMenuList () {
|
||||||
|
this.$http.get('sarResource/ts-resource', {
|
||||||
|
sorDivide: 'BUSINESS_STAND'
|
||||||
|
}, {}, res => {
|
||||||
|
if (res.ok) {
|
||||||
|
this.treeList = res.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 查询二级菜单
|
||||||
|
selectChildMenu (row) {
|
||||||
|
this.$http.get('sarResource/ts-resource/getMenuById', {
|
||||||
|
menuId: row.id
|
||||||
|
}, {}, res => {
|
||||||
|
if (res.ok) {
|
||||||
|
if(this.modalType === 1){
|
||||||
|
let idsName = ""
|
||||||
|
if(row.parentIds !== null){
|
||||||
|
if(row.parentIds.indexOf(res.data.id) != -1){
|
||||||
|
this.productModelAdd.parentIds = row.parentIds
|
||||||
|
}else {
|
||||||
|
this.productModelAdd.parentIds = row.parentIds + ',' + res.data.id
|
||||||
|
idsName = row.parentIdsName + ',' + res.data.menuName
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
this.productModelAdd.parentIds = res.data.id
|
||||||
|
idsName = res.data.menuName;
|
||||||
|
}
|
||||||
|
this.productModelAdd.parentId = res.data.id
|
||||||
|
this.productModelAdd.parentIdsName = idsName
|
||||||
|
this.$forceUpdate()
|
||||||
|
}else {
|
||||||
|
this.productModelAdd = res.data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
update(data) {
|
||||||
|
this.modalType = 2
|
||||||
|
this.selectChildMenu(data)
|
||||||
|
this.productModal = true
|
||||||
|
this.productTitle = '编辑信息'
|
||||||
|
// const newChild = { id: this.id++, label: 'testtest', children: [] };
|
||||||
|
// if (!data.children) {
|
||||||
|
// this.$set(data, 'children', []);
|
||||||
|
// }
|
||||||
|
// data.children.push(newChild);
|
||||||
|
},
|
||||||
|
|
||||||
|
append(data) {
|
||||||
|
this.modalType = 1
|
||||||
|
this.selectChildMenu(data)
|
||||||
|
this.productModal = true
|
||||||
|
this.productTitle = '新增下级菜单信息'
|
||||||
|
this.productModelAdd.dicTypeCode = ''
|
||||||
|
// const newChild = { id: this.id++, label: 'testtest', children: [] };
|
||||||
|
// if (!data.children) {
|
||||||
|
// this.$set(data, 'children', []);
|
||||||
|
// }
|
||||||
|
// data.children.push(newChild);
|
||||||
|
},
|
||||||
|
|
||||||
|
remove(node, data) {
|
||||||
|
this.$confirm('是否删除菜单?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
confirmButtonClass: 'common-button-primary',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
roundButton: true,
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
this.$http.delete("sarResource/ts-resource", {
|
||||||
|
resourceId: data.id
|
||||||
|
}, res => {
|
||||||
|
}, e => {
|
||||||
|
if(e.ok){
|
||||||
|
this.$message({
|
||||||
|
type: 'success',
|
||||||
|
message: "删除成功"
|
||||||
|
})
|
||||||
|
this.selectMenuList()
|
||||||
|
}else {
|
||||||
|
this.$message({
|
||||||
|
type: 'warning',
|
||||||
|
message: e.message
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
this.$refs.selections.clearSelection()
|
||||||
|
this.$message({
|
||||||
|
type: 'info',
|
||||||
|
message: '已取消删除'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// const parent = node.parent;
|
||||||
|
// const children = parent.data.children || parent.data;
|
||||||
|
// const index = children.findIndex(d => d.id === data.id);
|
||||||
|
// children.splice(index, 1);
|
||||||
|
},
|
||||||
|
// 树节点鼠标移入移出
|
||||||
|
mouseenter(data){
|
||||||
|
console.log(data)
|
||||||
|
this.$set(data, 'show', true)
|
||||||
|
if(data.parentId !== null){
|
||||||
|
this.$set(data, 'showDel', true)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mouseleave(data){
|
||||||
|
this.$set(data, 'show', false)
|
||||||
|
this.$set(data, 'showDel', false)
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* @description: 起草人名称展示
|
* @description: 起草人名称展示
|
||||||
* @author: chenxiaoxi
|
* @author: chenxiaoxi
|
||||||
@@ -3147,7 +3452,7 @@ export default {
|
|||||||
mounted () {
|
mounted () {
|
||||||
this.treeReload = true
|
this.treeReload = true
|
||||||
// 进入页面后查询树形结构目录
|
// 进入页面后查询树形结构目录
|
||||||
this.selectMenu()
|
this.selectMenuList()
|
||||||
// 查询各下拉框数据
|
// 查询各下拉框数据
|
||||||
this.$http.get('sys/dictype/getDicTypeListCode', '', {
|
this.$http.get('sys/dictype/getDicTypeListCode', '', {
|
||||||
_this: this
|
_this: this
|
||||||
@@ -3194,7 +3499,7 @@ export default {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
//background: #fff;
|
//background: #fff;
|
||||||
.tree-content {
|
.tree-content {
|
||||||
width: 16%;
|
width: 20%;
|
||||||
position: relative;
|
position: relative;
|
||||||
/*height: 100%;*/
|
/*height: 100%;*/
|
||||||
background: #fff;
|
background: #fff;
|
||||||
|
|||||||
Reference in New Issue
Block a user