feat: 企业标准库模块

This commit is contained in:
super_liu
2021-07-22 10:39:52 +08:00
parent ba35661aa8
commit b41cd111c8
2 changed files with 333 additions and 28 deletions
+5 -5
View File
@@ -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',
@@ -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;