{"remainingRequest":"/data/jenkins/workspace/test-v5inweb-5.x-vue/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/test-v5inweb-5.x-vue/src/components/view_treeview.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/test-v5inweb-5.x-vue/src/components/view_treeview.vue","mtime":1739760944327},{"path":"/data/jenkins/workspace/test-v5inweb-5.x-vue/node_modules/babel-loader/lib/index.js","mtime":315532800000},{"path":"/data/jenkins/workspace/test-v5inweb-5.x-vue/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/test-v5inweb-5.x-vue/node_modules/vue-loader/lib/index.js","mtime":1655715099000}],"contextDependencies":[],"result":[" \nimport view_listview from \"@/components/view_listview.vue\";\nimport form_normalform from \"@/components/form_normalform.vue\";\nimport form_searchform from \"@/components/form_searchform.vue\";\nexport default {\n name: \"view_treeview\",\n props: [\n \"view\",\n \"isView\",\n \"mutil\",\n \"selectOne\",\n \"openParams\",\n \"isSearchForm\"\n ],\n components: {\n view_listview,\n form_normalform,\n form_searchform\n },\n data: function() {\n return {\n defaultProps: {\n label: 'label',\n children: 'children',\n isLeaf: 'leaf'\n },\n arrNodes:[],\n treeViewData:[],\n isDisplay: false,\n treeview:'',\n openParam:'',\n parentId:'',\n isRouterAlive: true,\n isFormRouter:true,\n isTreeRouterAlive: true,\n tags: [], // 右侧选中的数组\n loading:this.$t('view.loading'),\n currentDocIds:[],\n hasChildren:'',\n menuVisible:false,\n currentRightNodeId:'', //当前右键选择中的节点\n filterText: '', // 输入框的内容\n searchValue: '',\n node_had: '',\n resolve_had:'',\n showSearchPanel: false, // 是否显示弹窗面板\n isSearchOperation:false,\n linkUrl: '', //外部链接\n clickTreeDocId:'',\n linkVoJson:'',\n treeData:[],//默认展示二级\n appId: null // 防止openParams缺失属性appId\n };\n },\n computed: {\n menus() {\n let list = this.view.activities;\n list.forEach(item => {\n switch(item.type) {\n case 1:\n item.setClass = \"glyphicon glyphicon-list\";\n break;\n case 2:\n item.setClass = \"glyphicon glyphicon-plus\";\n break;\n case 3:\n item.setClass = \"glyphicon glyphicon-trash\";\n break;\n case 16:\n item.setClass = \"glyphicon glyphicon-log-out\";\n break;\n case 18:\n item.setClass = \"glyphicon glyphicon-erase\";\n break;\n case 20:\n item.setClass = \"glyphicon glyphicon-send\";\n break;\n case 26:\n item.setClass = \"glyphicon glyphicon-save\";\n break;\n case 27:\n item.setClass = \"glyphicon glyphicon-log-in\";\n break;\n case 29:\n item.setClass = \"glyphicon glyphicon-globe\";\n break;\n case 34:\n item.setClass = \"glyphicon glyphicon-file\";\n break;\n case 36:\n item.setClass = \"glyphicon glyphicon-print\";\n break;\n case 43:\n item.setClass = \"glyphicon glyphicon-new-window\";\n break;\n default:\n break;\n }\n });\n return list;\n }\n },\n watch:{\n filterText(val) {\n if(this.$refs.deptTree){\n this.$refs.deptTree.filter(val);\n this.$nextTick(() => {\n if(document.getElementsByClassName('el-tree__empty-text')[0]){\n document.getElementsByClassName('el-tree__empty-text')[0].innerText = this.$t('nodata')\n }\n })\n }else{\n this.$refs.viewTree.filter(val);\n this.$nextTick(() => {\n if(document.getElementsByClassName('el-tree__empty-text')[0]){\n document.getElementsByClassName('el-tree__empty-text')[0].innerText = this.$t('nodata')\n }\n })\n }\n }\n },\n created() {\n if (!this.openParams.appId) {\n this.appId = this.$route.query.appId;\n }\n },\n mounted() {\n if(!this.isView) {\n let view = this.view;\n if(view.linkVoJson) {\n this.linkVoJson = JSON.parse(view.linkVoJson);\n }\n this.getTemplete()\n }\n },\n methods: {\n openDialogJump(params,type){\n this.$parent.openDialogJump(params,type)\n },\n\n setSearchDocItems(doc){ //view-listview调用了\n this.$parent.setSearchDocItems(doc);\n },\n\n onloadTree(){\n this.$emit(\"updateView\");\n },\n\n onClickBtn(item) {\n if(item.type == 2 || item.type == 3) {\n this.handleBtn(item.type, item)\n }else {\n this.$parent.onAction(item)\n }\n },\n \n //右键删除树形节点\n deleteTreeNode(){\n this.$api.deleteTreeviewNode(\n this.openParams.appId,\n this.currentRightNodeId, \n {\n onSucess: res => {\n if(res.data.errcode == 0) {\n this.$notify({\n title: this.$t('success'),\n message: '',\n type: 'success'\n });\n this.$emit(\"updateView\");\n }\n }\n }\n )\n },\n \n //当树形视图完全为空的时候,右键显示\n emptyRightClick(e) {\n if(this.view.activities[0].contextMenu || this.view.activities[1].contextMenu) {\n this.rightMenu = {top:e.pageY + 8 +'px',left:e.pageX+'px'};\n this.menuVisible = true;\n const self = this;\n document.onclick=function(ev){\n if(ev.target!==document.getElementById('perTreeMenu')){\n self.menuVisible = false;\n }\n }\n }\n },\n\n rightClick(e,data,node,comp){\n if(this.view.activities[0].contextMenu || this.view.activities[1].contextMenu) {\n this.currentRightNodeId = data.key;\n this.rightMenu = {top:e.pageY + 8 +'px',left:e.pageX+'px'};\n this.menuVisible = true;\n const self = this;\n document.onclick=function(ev){\n if(ev.target!==document.getElementById('perTreeMenu')){\n self.menuVisible = false;\n }\n }\n }\n },\n\n setDocIds(val,hasChildren) {\n this.currentDocIds = val;\n this.hasChildren = hasChildren;\n },\n\n checkedNodes(node) {\n let res = this.$refs.viewTree.getCheckedNodes();\n let arr = [];\n if(res && res.length>0) {\n this.tags = [];\n let select='';\n for(let i=0; i {\n this.treeview = response.data.data;\n }\n }\n )\n }else {\n this.parentId = node.key;\n let params = {\n appId: this.openParams.appId,\n viewId: this.view.id,\n hasListview: true,\n hasTreeview: true,\n parentId: node.key,\n isTreeView: true,\n opentarget: \"detail\",\n treedocid: node.key,\n };\n this.$api.getViewTemplateP(appId, this.view.id, params, {\n onSucess: response => {\n if (response.data.data) {\n //this.parentId = node.key;\n this.treeview = response.data.data;\n this.$refs.treeView.setTreeViewData(node.key);\n //this.reload();\n }\n }\n });\n }\n }else if (this.view.innerType && this.view.innerType == 'FORM') {\n if(!node) {\n let params = {\n linkType: \"00\",\n appId: this.openParams.appId,\n actionContent: this.view.relatedForm,\n _select: \"\",\n viewId: \"\",\n };\n this.treeview = params;\n }else {\n let params = {\n linkType: \"00\",\n appId: this.openParams.appId,\n actionContent: this.view.relatedForm,\n _select: node.key,\n viewId: \"\",\n };\n this.treeview = params;\n let value = \"FORM\"\n this.reload(value)\n }\n }else if (this.view.innerType && this.view.innerType == 'LINK') {\n if(JSON.parse(this.view.linkVoJson).type == \"06\"){ //外部链接\n this.linkUrl = this.view.linkViewId;\n }else{\n let linkVoJson = JSON.parse(view.linkVoJson);\n let params = {};\n if(linkVoJson.type == \"00\") {\n params = {\n linkType: \"00\",\n appId: openParams.appId,\n actionContent: view.linkViewId,\n parentId: node?node.key:'',\n viewId: \"\",\n refreshId: openParams.id,\n isTreeViewLink: true,\n treedocid: this.clickTreeDocId,\n };\n this.openParam = params;\n let appId = openParams.appId;\n let linkViewId = view.id;\n let hasListview = '';\n if(!node) {\n this.$api.getTreeViewTemplate(\n appId, \n linkViewId, \n hasListview,\n {\n onSucess: response => {\n this.treeview = response.data.data;\n }\n }\n )\n }else {\n this.$api.getViewTemplateP(appId, this.view.id, node.key, {\n onSucess: response => {\n if (response.data.data) {\n this.treeview = response.data.data;\n this.parentId = node.key;\n // this.reload();\n }\n }\n });\n }\n }else if(linkVoJson.type == \"01\"){\n params = {\n linkType: \"01\",\n appId: openParams.appId,\n actionContent: view.linkViewId,\n parentId: node?node.key:'',\n viewId: \"\",\n refreshId: openParams.id,\n isTreeViewLink: true,\n\t\t\t\ttreedocid: node?node.key:'',\n };\n this.openParam = params;\n let appId = openParams.appId;\n let linkViewId = view.linkViewId;\n let hasListview = true;\n if(!node) {\n this.$api.getTreeViewTemplate(\n appId, \n linkViewId, \n hasListview,\n {\n onSucess: response => {\n this.treeview = response.data.data;\n }\n }\n )\n }else {\n this.$api.getViewTemplateP(appId, this.view.id, node.key, {\n onSucess: response => {\n if (response.data.data) {\n this.treeview = response.data.data;\n this.parentId = node.key;\n this.reload();\n }\n }\n });\n }\n }\n \n }\n }\n }else {\n let arr = [];\n arr.push(node.rows);\n let isRadio = true\n let params = {\n linkType: \"00\",\n appId: this.openParams.appId,\n actionContent: node.formId,\n _select:node.key,\n viewId: this.view.id,\n }\n this.$emit(\"updateViewData\", params, arr, isRadio);\n }\n },\n \n getExcelParams() {\n if (this.searchExcelData) {\n return this.searchExcelData;\n } else {\n return \"\";\n }\n },\n\n reload (value) {\n if(value == \"FORM\") {\n this.isFormRouter = false\n this.$nextTick(() => (this.isFormRouter = true));\n }else {\n this.isRouterAlive = false\n this.$nextTick(() => (this.isRouterAlive = true));\n }\n \n }, \n\n handleIconSearch(value) {\n // 【暂时先注释,通过element的方法实现筛选】\n this.node_had.childNodes = [];//把存起来的node的子节点清空,不然会界面会出现重复树!\n this.loadNode(this.node_had, this.resolve_had, value);//再次执行懒加载的方法\n // this.filterText = value\n },\n\n loadNode(node, resolve, searchValue) {\n let op = this.openParams\n if(!this.node_had) {\n this.node_had = node;//这里是关键!在data里面定义一个变量,将node.level == 0的node存起来\n }\n \n if(!this.resolve_had) {\n this.resolve_had = resolve;\n }\n\n //同上,把node.level == 0的resolve也存起来\n let name = searchValue?searchValue:''\n if (node.level === 0) {\n this.$api.getTreeViewData(\n this.openParams.appId || this.appId,\n this.view.id,\n {\n parentId: op.parentId,\n isRelate: op.isRelate,\n rootNode: true,\n name: name?name:'',\n isSearchForm: this.isSearchForm,\n },\n {},\n name,\n {\n onSucess: response => {\n let viewData = response.data;\n this.treeViewData = response.data.data.data;\n if (viewData.data.data && viewData.data.data.length > 0) {\n this.clickTreeDocId = viewData.data.data[0].id;\n this.isSearchOperation = false;\n let nodes = [];\n this.view.columns.forEach(clm => {\n if (clm.mappingField == \"name_Node\") {\n viewData.data.data.forEach(doc => {\n let rows = {};\n rows.formId = doc.formId;\n rows.docId = doc.id;\n for (var key in doc.items) {\n let items = doc.items[key];\n rows[key] = items.value;\n }\n\n let label = doc.items[clm.id].value;\n nodes.push(\n { \n key: doc.id, \n level: 0, \n label: label, \n children: doc.children, \n formId: doc.formId, \n row_count: doc.row_count,\n rows,\n leaf: doc.children?false:true,\n });\n });\n }\n });\n this.arrNodes = nodes\n console.log(\"this.arrNodes-1--->\",this.arrNodes)\n resolve(this.arrNodes);\n if(this.arrNodes.length){//展开第一个节点的二级菜单\n this.arrNodes.forEach((item,index)=>{\n if(index==this.arrNodes.length-1&&item.children){//默认只展开最后一级目录\n this.treeData.push(item.key)\n }\n })\n }\n }else if(viewData.data.data.length == 0){\n this.loading = \" \"\n this.isDisplay = true;\n if(searchValue) {\n this.isSearchOperation = true;\n }\n }\n }\n } \n );\n } else {\n this.$api.getTreeViewData(\n this.openParams.appId || this.appId,\n this.view.id,\n {\n parentId: node.key,\n isSearchForm: this.isSearchForm,\n },\n {},\n \"\",\n {\n onSucess: response => {\n let viewData = response.data;\n this.treeViewData = response.data.data.data;\n if (viewData.data.data && viewData.data.data.length > 0) {\n this.isSearchOperation = false;\n let nodes = [];\n this.view.columns.forEach(clm => {\n if (clm.mappingField == \"name_Node\") {\n viewData.data.data.forEach(doc => {\n let rows = {};\n rows.formId = doc.formId;\n rows.docId = doc.id;\n for (var key in doc.items) {\n let items = doc.items[key];\n rows[key] = items.value;\n }\n\n let label = doc.items[clm.id].value;\n nodes.push(\n { \n key: doc.id, \n level: 0, \n label: label, \n children: doc.children, \n formId: doc.formId, \n row_count: doc.row_count,\n rows,\n leaf: doc.children?false:true,\n });\n });\n }\n });\n //this.arrNodes = nodes\n // console.log(\"nodes-2--->\",nodes)\n resolve(nodes);\n }else if(viewData.data.data.length == 0){\n let nodes = [];\n resolve(nodes);\n this.isDisplay = true;\n if(searchValue) {\n this.isSearchOperation = true;\n }\n }\n }\n }\n );\n }\n },\n\n getTreeView() {\n this.$api.getTreeViewData(\n this.openParams.appId,\n this.view.id,\n {\n parentId: \"\"\n },\n {},\n \"\",\n {\n onSucess: response => {\n let viewData = response.data;\n this.treeViewData = response.data.data.data;\n if (viewData.data.data && viewData.data.data.length > 0) {\n let nodes = [];\n this.view.columns.forEach(clm => {\n if (clm.mappingField == \"current_Node\") {\n viewData.data.data.forEach(doc => {\n let label = doc.items[clm.id].value;\n nodes.push({ key: doc.id, level: 0, label: label, children: doc.children, formId: doc.formId});\n });\n }\n });\n this.arrNodes = nodes\n // console.log(\"this.treeViewData--->\",this.treeViewData)\n // console.log(\"arrNodes--->\",this.arrNodes);\n }else if(viewData.data.data.length == 0){\n this.isDisplay = true;\n }\n }\n }\n );\n },\n\n reloadListView(){\n this.isTreeRouterAlive = false\n this.$nextTick(() => (this.isTreeRouterAlive = true));\n this.isRouterAlive = false\n this.$nextTick(() => (this.isRouterAlive = true));\n // this.getTreeView(this.currentPage, 10, \"\");\n },\n\n // 重置数组\n reset(){\n // 清空右侧的内容\n this.tags = []\n // 清空左侧选中的内容\n this.$refs.viewTree.setCheckedKeys([])\n },\n\n /**\n * 点击tag的删除\n */\n handleClose(tag){\n // 删除右侧的数据\n this.tags.splice(this.tags.indexOf(tag), 1)\n // 获取左侧所有数据\n let leftData = this.$refs.viewTree.getCheckedNodes()\n let keys = []\n // 筛选左侧需要显示的值\n leftData.filter(item => (item.label != tag.name)).map(item2 => keys.push(item2.key))\n this.$refs.viewTree.setCheckedKeys(keys)\n },\n\n /**\n * 点击查询获取值\n */\n onSearch(searchData, data) {\n this.filterText = data[this.$t('view.this_node')]\n },\n /**\n * 筛选显示的节点\n */\n filterNode(value, data) {\n if (!value) return true;\n if(data.label.indexOf(value) !== -1){\n return data.label.indexOf(value) !== -1;\n }else{\n return false;\n }\n },\n\n /**\n * 搜索的下来弹窗\n */\n onSearchTree(data){\n this.filterText = data[this.$t('view.this_node')] || data[this.$t('view.node_id')] || data[this.$t('view.parent_id')]\n }\n }\n};\n",null]}