{"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_delegate.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/test-v5inweb-5.x-vue/src/components/view_delegate.vue","mtime":1739760944325},{"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 API from \"@/api.js\";\nimport Constant from \"@/Constant.js\";\nimport view_emptyview from \"@/components/view_emptyview.vue\";\nimport view_listview from \"@/components/view_listview.vue\";\nimport view_gridview from \"@/components/view_gridview.vue\";\nimport view_mapview from \"@/components/view_mapview.vue\";\nimport view_treeview from \"@/components/view_treeview.vue\";\nimport view_collapsibleview from \"@/components/view_collapsibleview.vue\";\nimport view_cardview from \"@/components/view_cardview.vue\";\n\nimport view_calendarview from \"@/components/view_calendarview.vue\";\nimport activity from \"@/components/activity.vue\";\nimport form_normalform from \"@/components/form_normalform.vue\";\nimport customDialog from \"@/components/dialog.vue\";\nimport excelUpload from \"@/components/excel_upload.vue\";\n// import Watermark from '@/assets/js/watermark'; //路径不要写错\nimport view_print from \"@/components/view_print\";\nimport form_customize_searchform from \"@/components/form_customize_searchform.vue\";\nimport common_linkcontent from \"@/components/common_linkcontent\";\nimport view_gantt from \"@/components/view_gantt\";\nimport view_table from \"@/expandedComponents/view_table.vue\"; // 公用的table组件\n\nexport default {\n name: \"view-delegate\",\n props: [\n \"openParams\",\n \"clearCheckboxVal\",\n \"mutil\", //判断视图选择框多选或者拼接\n \"selectOne\", //判断视图选择框多选或者拼接\n \"isView\",\n \"showtype\",\n \"allowOpenDoc\",\n \"toTab\",\n \"openType\",\n \"includeDisplayType\", //包含元素或者选项卡为只读时的displayType=1,=4\n \"isFormPrint\", //表单打印时等于5\n \"currentTab\",\n \"widgetChartView\", //widget点击统计图时,传到这里的数据\n \"showCleanBtn\",\n ],\n inject: [\"addTab\", \"openNewpage\"],\n\n watch: {\n listenIncludeViewUpdate(newVal) {\n //如果是包含元素打开标签页,返回或者关闭页签时刷新视图\n if (newVal == this.includeRefreshId) {\n this.$refs.delegate.getData();\n }\n },\n\n isShowSearchTemplate() {\n this.$refs.delegate.handleOpenSearchTemplate();\n },\n exportDialog(newVal) {\n if (!newVal) {\n this.isShowProgress = false;\n this.exportProgress = 0;\n }\n },\n },\n\n created: function () {\n if (this.widgetChartView) {\n //首页widget统计图数据\n this.delegateWidth = 0;\n this.view = this.widgetChartView;\n this.loading = false;\n } else {\n this.init();\n }\n },\n mounted: function () {\n window.handleClose = this.handleClose; //调整按钮以iframe嵌套打开,在iframe页面调用此方法关闭弹窗\n },\n\n beforeDestroy() {\n window.clearInterval(this.task);\n },\n\n components: {\n view_emptyview,\n view_listview,\n view_gridview,\n view_treeview,\n view_mapview,\n view_collapsibleview,\n view_cardview,\n view_calendarview,\n activity,\n form_normalform,\n customDialog,\n excelUpload,\n view_print,\n form_customize_searchform,\n common_linkcontent,\n view_gantt,\n view_table,\n },\n\n data: function () {\n return {\n isBlockClick: false,\n // screenHeight: document.documentElement.clientHeight - 180,//高度修改bcx\n screenHeight: \"\", //不要设置高度\n isShowActivity: true, //视图操作按钮为0时,不显示操作按钮行\n exportProgress: 0, //导出进度条进度\n isShowProgress: false, //导出进度条是否显示\n switchValue: true, //全选\n view: { columns: [] }, //视图的列\n loading: true,\n title: \"\",\n dialogTitle: \"新建\",\n newIncludeO: \"\",\n dialogVisible: false,\n isRouterAliveInclude: true,\n currentOpenType: \"\",\n currentDocIds: [],\n popupVisible: false,\n attitude: \"\",\n currentAct: \"\",\n customizeVisible: false,\n width: \"40%\",\n excelPath: \"\",\n act: \"\",\n isPrint: false,\n printParams: \"\",\n viewPrintData: \"\",\n delegateWidth: \"\",\n isSubmissionProcess: \"\", //是否是视图列的提交流程\n viewRowId: \"\", //视图列的提交流程docId\n emptyParams: \"\",\n isShowSearchTemplate: false,\n jumpParams: \"\", //跳转按钮参数\n jumpPopup: false, //跳转按钮弹出窗\n isJumpForm: \"\", //跳转按钮参数\n isJumpView: \"\", //跳转按钮参数\n isExternalLink: \"\", //判断是否是外部链接\n checkedNum: 0, //获取视图选择框选中的数值\n jumpParamsForm: \"\", //弹出层打开的视图进入表单的参数\n viewTableData: {\n // table的数据\n tableHeight: 370,\n datas: [], // 被选中的数据\n columns: [], // 显示的列\n },\n checkedListDialog: false, // 视图选择框选中的列表\n excelColumns: [], //导出数据应该显示的列\n exportDialog: false, //文件导出的弹窗\n exportData: 1, //2为导出全部数据,1为导出选中数据\n currentClickBtnAct: \"\", //当前点击按钮的act数据\n popupLayerType: \"\", //判断弹出层是打开表单还是视图\n excelSelectList: [],\n searchDocItems: \"\", //查询表单的数据\n imageParams: {\n hiddenDialog: false,\n pathLists: [],\n initialIndex: 0,\n },\n dialogView: {\n //视图弹出层打开设置了宽高\n width: \"\",\n height: \"\",\n },\n cvFormData: {}, //复制runBeforeAction的参数formdata,保存在cvFormData里用于给getAxecuteAddress传参\n signatureDialog: false,\n signatureData: [],\n signatureValue: \"\",\n task: \"\", //导出时的定时器\n isExporting: false, //正在导出\n isMultiLevelListHeader: false,\n multiLevelColumnData: [], //多级列列表头\n copyColumns: [], //深拷贝视图列给excell导出使用\n isDialogOpenExternalLink: false,\n refreshId: \"\",\n cardBack: \"\",\n };\n },\n\n methods: {\n viewDialogClean() {\n this.$parent.$parent.$parent.clearCheckbox(); //视图选择框的clearCheckbox()//view_listview.vue-->toggleSelection()清空选中 this.$refs.multipleTable.clearSelection();\n },\n\n viewDialogSure() {\n this.$parent.$parent.$parent.onOk(); //视图选择框的onOk()\n },\n\n init(isCloseDialog) {\n // debugger\n console.log(this.jumpParams);\n let op = this.openParams;\n let exparams = {};\n if (op.exparams) {\n //如果携带参数\n let ex = op.exparams.replace(/^(\\s|&)+|(\\s|&)+$/g, \"\");\n let list = ex.split(\"&\");\n for (let i = 0; i < list.length; i++) {\n let e = list[i].split(\"=\");\n if (e[1]) {\n exparams[e[0]] = e[1];\n }\n }\n }\n if (op.formParams) {\n exparams = this.setParams(op.formParams, exparams);\n }\n this.initView({\n appId: op.appId || this.$route.query.appId, // 防止传入的openParams对象中appId属性丢失\n viewId: op.actionContent,\n exparams: exparams ? exparams : {},\n isCloseDialog: isCloseDialog,\n });\n },\n\n setParams(params, obj) {\n params = params.replace(/^(\\s|&)+|(\\s|&)+$/g, \"\");\n let list = params.split(\"&\");\n for (let i = 0; i < list.length; i++) {\n let p = list[i].split(\"=\");\n let isJson = this.isJSON(p[1]);\n if (isJson) {\n obj[p[0]] = encodeURI(p[1]);\n } else {\n obj[p[0]] = p[1] ? p[1] : \"\";\n }\n }\n return obj;\n },\n\n isJSON(str) {\n //判断是json字符串\n if (typeof str == \"string\") {\n try {\n let obj = JSON.parse(str);\n if (typeof obj == \"object\" && obj) {\n return true;\n } else {\n return false;\n }\n } catch (e) {\n return false;\n }\n }\n },\n\n //选中的导出方式\n // handleChange(opt){\n // if(opt === 1) {\n // this.switchValue = false;\n // // this.isDisabled = false;\n // this.excelSelectList = [];\n // }\n // else if(opt === 2) {\n // let selectAll = [];\n // let columns = this.excelColumns;\n // for (let i = 0; i < columns.length; i++) {\n // selectAll.push(columns[i].name);\n // }\n // this.excelSelectList = selectAll;\n // // this.switchValue = false;\n // // this.isDisabled = true;\n // }\n // },\n isShowSwitch(val) {\n if (val.length === this.excelColumns.length) {\n this.switchValue = true;\n } else {\n this.switchValue = false;\n }\n },\n\n //el-switch全选\n dataAll(val) {\n if (val === true) {\n let selectAll = [];\n let columns = this.excelColumns;\n for (let i = 0; i < columns.length; i++) {\n selectAll.push(columns[i].name);\n }\n this.excelSelectList = selectAll;\n } else {\n this.excelSelectList = [];\n }\n },\n\n setDialogStatus(params) {\n this.imageParams = params;\n },\n\n setSearchDocItems(doc) {\n this.searchDocItems = doc;\n },\n\n //查询--单个查询\n onSearch(searchData, data) {\n //单个查询按钮--子组件为form_customize_searchform.vue 在祖组件view_delegate.vue视图\n this.$store.commit('page', 1)\n this.$store.commit('searchDataStore', searchData)//第五步,缓存查询条件到vuex数组里面\n setTimeout(() => {\n this.$refs.delegate.onSearch(searchData, data);\n }, 800);//异步调用20230816--行业信息-从高筛选择保安公司--弹窗视图查询bug\n },\n\n //执行常用查询的重置\n executeCommonReset() {\n this.$refs.searchform.commonReset();\n },\n\n //打开或者关闭查询表单\n openSearchTemplate() {\n // alert(this.isShowSearchTemplate)\n if (this.isShowSearchTemplate) {//收起 重置高筛搜索条件\n this.$refs.delegate && this.$refs.delegate.$refs.searchform.reset()//重置高筛搜索条件\n }\n this.isShowSearchTemplate = !this.isShowSearchTemplate;\n },\n\n updateView() {\n this.isRouterAliveInclude = false;\n this.$nextTick(() => (this.isRouterAliveInclude = true));\n },\n\n hiddenCustomizeVisible() {\n //该方法实现视图修改数据,或者删除数据重新加载视图数据\n let openType = this.view.openType;\n if (this.view.simpleClassName == \"GanttView\") {\n //当是甘特视图直接刷新整个页面\n // this.updateView();\n this.$refs.delegate.reloadListView();\n } else if (openType == 288) {\n //网格视图\n setTimeout(() => {\n this.customizeVisible = false;\n this.updateView();\n }, 1000);\n } else {\n setTimeout(() => {\n this.customizeVisible = false;\n this.$refs.delegate && this.$refs.delegate.reloadListView();\n }, 1000);\n }\n },\n\n setExcelPath(path) {\n this.excelPath = path;\n },\n\n //批量提交或者提交流程\n onOk() {\n if (this.isSubmissionProcess) {\n if (!this.attitude) {\n this.$message({\n message: this.$t(\"view.input_ss\"),\n type: \"warning\",\n });\n } else {\n let obj = {\n approveLimit: \"\",\n attitude: this.attitude,\n docId: this.viewRowId,\n };\n this.$api.operateSubmit(this.openParams.appId, this.view.id, obj, {\n onSucess: (res) => {\n this.popupVisible = false;\n if (res.data.errcode == 0) {\n this.attitude = \"\";\n this.$notify({\n title: res.data.data,\n message: \"\",\n type: \"success\",\n });\n } else {\n this.$notify.error({\n title: this.$t(\"msg.err\"),\n message: \"\",\n });\n }\n },\n });\n }\n } else {\n if (!this.attitude) {\n this.$message({\n message: this.$t(\"view.input_ss\"),\n type: \"warning\",\n });\n } else {\n // this.v3ActionSubmit(this.currentAct, this.currentDocIds); //bcx替换合并一个接口\n this.runBeforeAction(this.currentAct, this.currentDocIds);\n }\n }\n },\n\n handleClose() {\n this.dialogVisible = false;\n this.jumpPopup = false;\n if (this.isDialogOpenExternalLink) {\n // this.$refs.delegate.getData();\n let isCloseDialog = true;\n this.init(isCloseDialog);\n }\n },\n\n //包含元素弹出层和当前页打开都是使用这个刷新\n closeDialog(isSave) {\n console.log(this.viewType)\n this.$refs.delegate.reloadListView();\n if (!isSave) {\n this.dialogVisible = false;\n this.jumpPopup = false;\n }\n let _st = this.showtype;\n if (_st && _st == \"include\") {\n this.$emit(\"refresh\");\n }\n },\n\n includeReload() {\n //重新刷新组件刷新\n this.$emit(\"change\");\n this.isRouterAliveInclude = false;\n this.$nextTick(() => (this.isRouterAliveInclude = true));\n },\n\n initView({ appId, viewId, exparams, isCloseDialog }) {\n //重新加载视图\n let op = this.openParams;\n let st = this.showtype;\n exparams = exparams || {};\n if (op.queryString) {\n let qs = op.queryString;\n let list = qs.split(\"&\");\n for (let i = 0; i < list.length; i++) {\n let p = list[i].split(\"=\");\n if (p[1]) {\n exparams[p[0]] = p[1];\n }\n }\n }\n let urlParams = op.urlParams; //跳转按钮携带的参数\n if (urlParams) {\n let fp = urlParams.replace(/^(\\s|&)+|(\\s|&)+$/g, \"\");\n let list = fp.split(\"&\");\n for (let i = 0; i < list.length; i++) {\n let p = list[i].split(\"=\");\n if (p[0] && p[0] != \"appId\" && p[0] != \"viewId\") {\n if (p[1]) {\n exparams[p[0]] = p[1];\n }\n }\n }\n }\n if ((st && st == \"tab\") || (st && st == \"include\")) {\n console.log(exparams);\n console.log(5455);\n //如果是控件选项卡\n exparams.parentId = op.parentId;\n exparams.isRelate = op.isRelate;\n }\n console.info('delegate 1', appId);\n this.$api.getViewTemplate(appId, viewId, exparams, {\n onSucess: (response) => {\n // alert(88)\n this.loading = true;\n\n console.info('response', response);\n if (response.data.data) {\n if (!response.data.data.activities) {\n //后台配置的视图操作按钮为0\n this.isShowActivity = false;\n }\n let viewWidth = \"\";\n let viewDom = this.$refs.viewDelegate;\n this.delegateWidth = viewWidth = viewDom.clientWidth;\n // this.delegateWidth = this.$refs.viewDelegate.clientWidth;\n // alert(viewWidth)\n if (viewWidth > 0) {\n if (this.showtype == \"home\") {\n this.delegateWidth = viewWidth - 40;\n } else {\n this.delegateWidth = viewWidth; //自动排版要设置固定宽度\n }\n }\n let viewData = response.data.data;\n let columns = viewData.columns;\n this.copyColumns = JSON.parse(JSON.stringify(columns));\n if (!columns) {\n this.$message({\n message: this.$t(\"msg.set_viewlist\"),\n type: \"warning\",\n });\n return;\n }\n let isMultiLevelListHeader = false; //多级表头\n for (let i = 0; i < columns.length; i++) {\n let name = columns[i].name;\n if (!isMultiLevelListHeader) {\n if (name.indexOf(\"__\") > -1) {\n isMultiLevelListHeader = true;\n }\n }\n if (!columns[i].visible) {\n columns.splice(i, 1);\n i--;\n }\n }\n let iType = this.includeDisplayType;\n if (\n viewData.readonly ||\n (iType &&\n (iType == Constant.PermissionType_READONLY ||\n iType == Constant.PermissionType_DISABLED))\n ) {\n //只读或者包含元素为只读,视图都要只读\n let btnArr = viewData.activities;\n if (btnArr && btnArr.length > 0) {\n for (let i = btnArr.length - 1; i >= 0; i--) {\n if (\n btnArr[i].type != 1 &&\n btnArr[i].type != 16 &&\n btnArr[i].type != 26 &&\n btnArr[i].type != 36 &&\n btnArr[i].type != 43 &&\n btnArr[i].type != 27\n ) {\n btnArr.splice(i, 1);\n }\n }\n }\n // 1 16 26 36\n }\n let formPrint = this.isFormPrint;\n if (formPrint && formPrint == \"5\") {\n //判断视图列打印时是否隐藏\n // let bodyWidth = document.documentElement.clientWidth - 52;\n let tdsWidth = 0;\n for (let j = 0; j < columns.length; j++) {\n if (!columns[j].visible4PagePrint) {\n columns.splice(j, 1);\n j--;\n } else {\n if (columns[j].width) {\n tdsWidth = tdsWidth + parseInt(columns[j].width);\n } else {\n columns[j].width = 100;\n tdsWidth = tdsWidth + 100;\n }\n }\n }\n for (let j = 0; j < columns.length; j++) {\n if (columns[j].width) {\n let tdWidth = Math.floor((columns[j].width / tdsWidth) * 100);\n columns[j].tdWidth = tdWidth + \"%\";\n }\n }\n }\n if (viewData.openType != 288) {\n //判断是视图类型不是网格视图时,把保存按钮删除\n if (viewData.activities) {\n if (viewData.activities.length > 0) {\n for (let i = 0; i < viewData.activities.length; i++) {\n if (viewData.activities[i].type === 34) {\n viewData.activities.splice(i, 1);\n break;\n }\n }\n }\n }\n }\n viewData.columns.forEach((item, index) => {\n if (item.iconMapping) {\n if (!viewData.columns[index].visible) {\n viewData.columns[index].iconMapping = JSON.parse(\n item.iconMapping\n ); // item.iconMapping//JSON.parse(item.iconMapping)\n }\n }\n });\n\n if (viewData.width) {\n //视图是弹出层打开时有宽高\n this.dialogView.width = viewData.width;\n }\n if (viewData.height) {\n this.dialogView.height = viewData.height;\n }\n\n let columnsArray = columns;\n for (let i = 0; i < columnsArray.length; i++) {\n if (!columnsArray[i].visible || columnsArray[i].hiddenColumn) {\n columnsArray.splice(i, 1);\n i--;\n }\n }\n this.view = viewData;\n this.title =\n response.data.data.description || response.data.data.name;\n this.currentOpenType = response.data.data.openType;\n\n if (viewData.style && viewData.style.content) {\n let viewCss =\n \"#view_\" + viewData.id + \" \" + viewData.style.content;\n let css = viewCss,\n head =\n document.head || document.getElementsByTagName(\"head\")[0],\n style = document.createElement(\"style\");\n head.appendChild(style);\n style.type = \"text/css\";\n style.appendChild(document.createTextNode(css));\n }\n\n if (isCloseDialog) {\n //弹窗打开视图后重新加载数据\n this.$refs.delegate.getData();\n }\n\n //多级表头\n if (isMultiLevelListHeader) {\n let listArr = [];\n const loopOpe = (columns) => {\n let arr = [];\n for (let i = 0; i < columns.length; i++) {\n let name = columns[i].name;\n if (name.indexOf(\"__\") > -1) {\n let nArr = name.split(\"__\");\n let t = nArr[0];\n let t2 = nArr.slice(1).join(\"__\");\n let nobj = {\n id: t,\n name: t2,\n label: name,\n columns: columns[i],\n haveChildren: true,\n };\n arr.push(nobj);\n } else {\n let nobj = {\n id: name,\n name: name,\n label: name,\n columns: columns[i],\n haveChildren: false,\n };\n arr.push(nobj);\n }\n }\n arr.forEach((el) => {\n for (let i = 0; i < listArr.length; i++) {\n if (listArr[i].id == el.id) {\n listArr[i].children.push({\n name: el.name,\n label: el.label,\n columns: el.columns,\n id: el.name,\n });\n return;\n }\n }\n if (el.haveChildren) {\n listArr.push({\n id: el.id,\n children: [\n {\n id: el.name,\n name: el.name,\n label: el.label,\n columns: el.columns,\n },\n ],\n });\n } else {\n listArr.push({\n id: el.id,\n label: el.label,\n columns: el.columns,\n });\n }\n // listArr.push({\n // id: el.id,\n // children: [{\n // name: el.name,\n // }]\n // })\n });\n };\n if (columns && columns.length > 0) {\n loopOpe(columns);\n }\n\n const loopOpe2 = (columns, index) => {\n let arr = [];\n let lArr = [];\n for (let i = 0; i < columns.length; i++) {\n let name = columns[i].name;\n if (name.indexOf(\"__\") > -1) {\n let nArr = name.split(\"__\");\n let t = nArr[0];\n let t2 = nArr.slice(1).join(\"__\");\n let nobj = {\n id: t,\n name: t2,\n label: t2,\n columns: columns[i].columns,\n haveChildren: true,\n };\n arr.push(nobj);\n } else {\n let nobj = {\n id: name,\n name: name,\n label: name,\n columns: columns[i].columns,\n haveChildren: false,\n };\n arr.push(nobj);\n }\n }\n arr.forEach((el) => {\n for (let i = 0; i < lArr.length; i++) {\n if (lArr[i].id == el.id) {\n lArr[i].children.push({\n id: el.name,\n name: el.name,\n label: el.label,\n columns: el.columns,\n });\n return;\n }\n }\n if (el.haveChildren) {\n lArr.push({\n id: el.id,\n children: [\n {\n id: el.name,\n name: el.name,\n label: el.label,\n columns: el.columns,\n },\n ],\n });\n } else {\n lArr.push({\n id: el.id,\n label: el.label,\n columns: el.columns,\n });\n }\n });\n listArr[index].children = lArr;\n };\n\n if (listArr && listArr.length > 0) {\n listArr.forEach((el, index) => {\n if (el.children && el.children.length > 0) {\n loopOpe2(el.children, index);\n }\n });\n }\n this.multiLevelColumnData = listArr;\n this.isMultiLevelListHeader = true;\n }\n this.loading = false;\n // 传递给子组件 view_treeview 判断是否需要显示清除按钮\n this.$emit(\"getViewType\", response.data.data.simpleClassName);\n if (st && st == \"tab\" && viewData.openType == 288) {\n //视图是选项卡打开并且是网格视图,为了外层保存按钮保存网格视图\n this.$emit(\"setTabOpentype\", op.tabIndex);\n }\n }\n clearTimeout(timeLoading);\n },\n });\n },\n\n openForm(params, emptyParams) {\n this.emptyParams = emptyParams;\n this.newIncludeO = params;\n if (params.title != undefined) {\n this.dialogTitle = params.title;\n }\n this.dialogVisible = true;\n },\n\n //创建新表单\n doCreate(act, extraParams) {\n let view = this.view;\n let openParams = this.openParams;\n let params = {\n linkType: \"00\",\n appId: openParams.appId,\n active: true,\n actionContent: act.onActionForm,\n name: view.name,\n refreshId: openParams.id,\n id: new Date().getTime(),\n };\n\n //以下的参数形式是在新建后执行执行后脚本\n let sd = this.searchDocItems;\n let formData = {\n docId: \"\",\n document: {},\n formId: view.relatedForm,\n parentId: \"\",\n templateForm: \"\",\n viewId: openParams.actionContent,\n _selects: this.currentDocIds,\n };\n if (extraParams && extraParams.treedocid) {\n params.treedocid = extraParams.treedocid;\n formData.treedocid = extraParams.treedocid;\n }\n if (sd) {\n formData.document = sd;\n }\n let appId = openParams.appId;\n let divId = act.id;\n let docId = \"\";\n let parentId = openParams.parentId ? openParams.parentId : \"\";\n let _templateForm = \"\";\n let _ = \"\";\n params.isNewCreate = true;\n params.runAfterParams = {\n appId,\n divId,\n docId,\n actionContent: openParams.actionContent,\n relatedForm: view.relatedForm,\n _templateForm,\n parentId,\n _,\n formData,\n };\n let includeRunAfterParams = params.runAfterParams; //包含元素里嵌套视图,视图新建执行后有脚本\n if (view.newPage) {\n //新窗口打开\n this.isBlockClick = false;\n params.isOpenNewWindow = true;\n params.runAfterParams = JSON.stringify(params.runAfterParams);\n let routeData = this.$router.resolve({\n // name: \"form_blank\",\n name: \"open\",\n query: params,\n });\n let winObj = window.open(routeData.href, \"_blank\");\n let loop = setInterval(() => {\n if (winObj.closed) {\n clearInterval(loop);\n this.$refs.delegate.reloadListView();\n }\n }, 1500);\n } else if (this.widgetChartView) {\n //如果是widget的视图新建\n this.isBlockClick = false;\n this.$emit(\"action\", params);\n } else if (openParams.isOpenNewWindow && view.openType !== 277) {\n //如果是新窗口打开且没设置视图打开方式为弹出层\n this.isBlockClick = false;\n let newParams = JSON.parse(JSON.stringify(params));\n newParams.isOpenNewWindow = true;\n let routeData = this.$router.resolve({\n name: \"open\",\n query: newParams,\n });\n window.open(routeData.href, \"_blank\");\n } else if (openParams.isPopupLayerDisplay) {\n //如果打开类型是弹出层,新建时打开表单\n this.isBlockClick = false;\n this.$emit(\"popupOpenType\", \"FORM\", params);\n } else if (openParams.isExternalLink) {\n //外链打开,然后新建表单,通过opener组件\n // params = {\n // linkType: '00',\n // appId: openParams.appId,\n // actionContent: act.onActionForm,//url,\n // isExternalLink: true, //url是打开opener组件,判断是外链。\n // };\n this.isBlockClick = false;\n params.isExternalLink = true;\n this.$emit(\"onAction\", params);\n } else {\n if (!this.showtype || this.showtype == \"target\") {\n this.isBlockClick = false;\n //普通视图新建或者后台设置了菜单的打开链接方式是新窗口打开(target)\n if (view.newPage) {\n //打开新窗口\n let newParams = JSON.parse(JSON.stringify(params));\n newParams.runAfterParams = JSON.stringify(newParams.runAfterParams);\n newParams.isOpenNewWindow = true;\n let routeData = this.$router.resolve({\n // name: \"form_blank\",\n name: \"open\",\n query: newParams,\n });\n window.open(routeData.href, \"_blank\");\n } else {\n if (this.view.openType == 277) {\n //弹出层\n params.type = 277;\n params.dialogId = \"dialog_normalform_\" + openParams.actionContent; ////用于弹窗打开表单有包含元素时,计算包含元素宽度\n this.newIncludeO = params;\n this.dialogVisible = true;\n } else {\n if (this.view.openType == 293) {\n //新页签打开\n this.$emit(\"add-tab\", params);\n } else {\n //当前页打开\n this.openNewpage(params);\n }\n }\n }\n } else {\n if (this.showtype == \"include\") {\n //包含元素\n this.isBlockClick = false;\n let params = {\n linkType: \"00\",\n appId: openParams.appId,\n active: true,\n actionContent: act.onActionForm,\n name: this.view.name,\n refreshId: openParams.id,\n randomRefreshId: new Date().getTime(),\n runAfterParams: includeRunAfterParams,\n };\n params.parentId = openParams.parentId ? openParams.parentId : \"\"; //包含元素时判断是否有parentId\n params.isRelate = openParams.isRelate ? true : \"\";\n params.isIncludeCreate = \"include\";\n params.isNewCreate = true;\n this.includeRefreshId = params.randomRefreshId;\n if (this.currentOpenType == 1) {\n if (this.view.simpleClassName == \"CollapsibleView\") {\n params.viewType = \"CollapsibleView\";\n this.toTab(params);\n } else {\n this.$refs.delegate.addRow(params);\n }\n } else if (this.currentOpenType == 277) {\n this.newIncludeO = params;\n this.dialogVisible = true;\n } else if (this.currentOpenType == 293) {\n //标签页打开\n params.name = this.view.name;\n params.openType = this.view.openType;\n this.toTab(params);\n }\n } else if (this.showtype == \"tab\") {\n //选项卡\n this.isBlockClick = false;\n params.parentId = openParams.parentId ? openParams.parentId : \"\"; //包含元素时判断是否有parentId\n params.isRelate = openParams.isRelate ? true : \"\";\n params.istabCreate = \"tab\";\n this.includeRefreshId = params.randomRefreshId;\n if (this.currentOpenType == 1) {\n if (extraParams && extraParams.innerType == \"FORM\") {\n //树形视图新建打开表单\n this.toTab(params);\n } else {\n this.$refs.delegate.addRow(params);\n }\n } else if (this.currentOpenType == 277) {\n params.isTabCreate = \"tab\";\n params.type = 277;\n params.dialogId = \"dialog_normalform_\" + openParams.actionContent; //用于弹窗打开表单有包含元素时,计算包含元素宽度\n this.newIncludeO = params;\n this.dialogVisible = true;\n } else if (this.currentOpenType == 293) {\n //标签页打开\n // this.$emit(\"add-tab\", {\n // linkType: \"00\",\n // appId: this.openParams.appId,\n // active: true,\n // actionContent: act.onActionForm,\n // name: this.view.name,\n // refreshId:this.openParams.id,\n // });\n this.toTab(params);\n }\n }\n }\n }\n },\n\n setViewRefreshId(id) {\n this.includeRefreshId = id;\n },\n\n setPopupOpenType(type, params) {\n //当视图是弹出层打开,新建或打开视图列表\n if (type == \"FORM\") {\n params.isPopupLayerDisplay = true;\n this.jumpParamsForm = params;\n this.popupLayerType = type;\n } else if (type == \"VIEW\") {\n this.popupLayerType = type;\n }\n },\n\n //是否删除的弹窗提示\n doRemove(act, value) {\n let docIds = \"\";\n if (this.currentDocIds && this.currentDocIds.length > 0) {\n docIds = this.currentDocIds;\n } else {\n //树形视图时\n docIds = value;\n }\n if (docIds && docIds.length > 0) {\n this.$confirm(\n this.$t(\"msg.del_select\") + `${docIds.length}` + this.$t(\"msg.data\"),\n this.$t(\"tip\"),\n {\n confirmButtonText: this.$t(\"msg.confirm\"),\n cancelButtonText: this.$t(\"btns.cancel\"),\n type: \"warning\",\n }\n )\n .then(() => {\n this.runBeforeAction(act, docIds);\n })\n .catch(() => { });\n } else {\n this.$confirm(this.$t(\"msg.least_one_data\"), this.$t(\"tip\"), {\n confirmButtonText: this.$t(\"msg.confirm\"),\n cancelButtonText: this.$t(\"btns.cancel\"),\n type: \"warning\",\n })\n .then(() => { })\n .catch(() => { });\n }\n },\n\n //删除视图\n removeDocuments(act, docIds) {\n this.$api.batchRemoveDocuments(this.openParams.appId, docIds, {\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.runAfterAction(act, []);\n this.$refs.delegate.reloadListView();\n let _st = this.showtype;\n if (_st && _st == \"include\") {\n //包含元素删除视图应刷新表单页面,新建也一样\n this.$emit(\"refresh\");\n }\n // this.includeReload();\n }\n },\n });\n },\n\n setDocIds(val) {\n this.currentDocIds = val;\n },\n\n //是否清空所有数据的弹窗\n clearDataPopup(data) {\n this.$confirm(this.$t(\"msg.del_all\"), this.$t(\"tip\"), {\n confirmButtonText: this.$t(\"msg.confirm\"),\n cancelButtonText: this.$t(\"btns.cancel\"),\n type: \"warning\",\n })\n .then(() => {\n this.runBeforeAction(data);\n })\n .catch(() => { });\n },\n\n //清空所有数据\n clearAllData(act) {\n let appId = this.openParams.appId;\n let formId = this.view.relatedForm;\n this.$api.deleteAllData(appId, formId, {\n onSucess: (res) => {\n if (res.data.errcode == 0) {\n this.$notify({\n title: res.data.data,\n message: \"\",\n type: \"success\",\n });\n this.runAfterAction(act, []);\n this.includeReload();\n }\n },\n });\n },\n\n //执行脚本前\n /**\n * docIds 视图选中的id\n * extraParams 树形视图新建传过来的参数,以后其他视图可能也会用到\n * **/\n runBeforeAction(act, docIds, extraParams) {\n this.isBlockClick = true;\n let view = this.view;\n let sd = this.searchDocItems;\n let openParams = this.openParams;\n let formData = {\n docId: \"\",\n document: sd ? sd : {},\n formId: view.relatedForm,\n parentId: \"\",\n templateForm: view.templateForm,\n viewId: openParams.actionContent,\n _selects: docIds && docIds.length > 0 ? docIds : this.currentDocIds,\n };\n this.cvFormData = formData; //复制runBeforeAction的参数formdata,保存在cvFormData里用于给getAxecuteAddress传参\n let st = this.showtype;\n if ((st && st == \"tab\") || (st && st == \"include\")) {\n //如果是控件选项卡或包含元素\n formData.parentId = openParams.parentId;\n formData.isRelate = openParams.isRelate;\n }\n let treedocid = \"\";\n if (extraParams && extraParams.treedocid) {\n treedocid = extraParams.treedocid;\n formData.treedocid = extraParams.treedocid;\n formData.document = extraParams.document;\n }\n if (openParams.isRelate) {\n formData.isRelate = openParams.isRelate;\n }\n if (openParams.parentId) {\n formData.parentId = openParams.parentId;\n }\n if (this.$route.query) {\n formData = { ...formData, ...this.$route.query };\n }\n let divId = act.id;\n let actType = act.type;\n this.$api.runBeforeActionScript(\n openParams.appId,\n divId,\n formData,\n actType,\n treedocid ? treedocid : \"\", //treedocid\n \"\", //flowType\n {\n onSucess: (response) => {\n if (response.data.data) {\n this.isBlockClick = false;\n //如果有数据返回,结束下一步\n let resData = response.data.data;\n let errmsg = response.data.data.content;\n if (!resData.type) {\n //没有type值,但是有返回数据,把数据放进document\n if (resData.changedField) {\n this.$notify.success({\n title: resData.content,\n message: \"\",\n });\n }\n } else if (resData.type == 1) {\n if (resData.content == \"站内信发送成功\") {\n this.$notify.success({\n title: resData.content,\n message: \"\",\n });\n } else {\n this.$notify.error({\n title: errmsg,\n message: \"\",\n customClass: \"notify-success\", //载入视图执行前脚本返回值显示为红色\n });\n }\n } else if (resData.type == 16) {\n this.$notify.error({\n title: errmsg,\n message: \"\",\n });\n } else if (resData.type == 32) {\n this.$confirm(`${errmsg}`, this.$t(\"tip\"), {\n confirmButtonText: this.$t(\"msg.confirm\"),\n cancelButtonText: this.$t(\"btns.cancel\"),\n type: \"warning\",\n })\n .then(() => {\n switch (act.type) {\n case 1: //载入视图\n this.getTemplate(act);\n break;\n case 2: //新建表单\n this.doCreate(act, extraParams);\n break;\n case 3: //删除数据\n this.removeDocuments(act, docIds);\n break;\n case 16: //导出excel\n // debugger\n this.isBlockClick = false;\n this.currentClickBtnAct = act;\n let excelColumns = [];\n let columns = this.copyColumns;\n let selectAll = [];\n for (let i = 0; i < columns.length; i++) {\n if (columns[i].visible4ExpExcel) {\n excelColumns.push(columns[i]);\n }\n selectAll.push(columns[i].name);\n }\n this.excelColumns = excelColumns;\n this.excelSelectList = selectAll;\n this.exportDialog = true;\n this.switchValue = true;\n this.exportData = 1;\n break;\n case 18: //清空所有数据\n this.clearAllData(act);\n break;\n case 20: //批量提交\n this.onSubmit(act, docIds);\n break;\n case 26: //文件下载\n this.fileDownload(act.id);\n break;\n case 27: //导入excel\n this.showLeadDialog(act);\n break;\n case 36: //网页打印(视图)\n this.viewPrint(act);\n break;\n case 43: //跳转\n this.jumpType(act);\n break;\n default:\n break;\n }\n })\n .catch(() => { });\n }\n } else {\n switch (act.type) {\n case 1: //载入视图\n this.getTemplate(act);\n break;\n case 2: //新建表单\n this.doCreate(act, extraParams);\n break;\n case 3: //删除数据\n this.removeDocuments(act, docIds);\n break;\n case 16: //导出excel\n debugger\n this.isBlockClick = false;\n this.currentClickBtnAct = act;\n let excelColumns = [];\n let columns = this.copyColumns;\n let selectAll = [];\n console.log(columns)\n for (let i = 0; i < columns.length; i++) {\n if (columns[i].visible4ExpExcel) {\n excelColumns.push(columns[i]);\n }\n selectAll.push(columns[i].name);\n }\n this.excelColumns = excelColumns;\n this.excelSelectList = selectAll;\n this.exportDialog = true;\n this.switchValue = true;\n this.exportData = 1;\n break;\n case 18: //清空所有数据\n this.clearAllData(act);\n break;\n case 20: //批量提交\n this.onSubmit(act, docIds);\n break;\n case 26: //文件下载\n this.fileDownload(act.id);\n break;\n case 27: //导入excel\n this.showLeadDialog(act);\n break;\n case 29:\n break;\n case 36: //网页打印(视图)\n this.viewPrint(act);\n break;\n case 43: //跳转\n this.jumpType(act);\n break;\n default:\n break;\n }\n }\n\n // if(response.data.errcode == 0 && response.data.data) {\n // let errcode = response.data.errcode;\n // let errmsg = response.data.data.content;\n // this.$notify.error({\n // title: errmsg,\n // message: ''\n // });\n // }else if(response.data.errcode == 0){\n // switch(act.type) {\n // case 1: //载入视图\n // this.getTemplate(act);\n // break;\n // case 2: //新建表单\n // this.doCreate(act);\n // break;\n // case 3: //删除数据\n // this.removeDocuments(act,docIds);\n // break;\n // case 16: //导出excel\n // this.currentClickBtnAct = act;\n // let selectAll = [];\n // let columns = this.view.columns;\n // columns.forEach(el => {\n // selectAll.push(el.name);\n // });\n // this.excelSelectList = selectAll;\n // this.exportDialog = true;\n // break;\n // case 18: //清空所有数据\n // this.clearAllData(act);\n // break;\n // case 20: //批量提交\n // this.onSubmit(act, docIds);\n // break;\n // case 26: //文件下载\n // this.fileDownload(act.id);\n // break;\n // case 36: //网页打印(视图)\n // this.viewPrint(act);\n // break;\n // case 43: //跳转\n // this.jumpType(act);\n // break;\n // default:\n // break;\n // }\n // }\n },\n }\n );\n },\n\n //执行脚本后\n runAfterAction(act, docIds, extraParams) {\n let sd = this.searchDocItems;\n let op = this.openParams;\n let formData = {\n docId: \"\",\n document: sd ? sd : {},\n formId: this.view.relatedForm,\n parentId: \"\",\n templateForm: \"\",\n viewId: op.actionContent,\n _selects: docIds && docIds.length > 0 ? docIds : this.currentDocIds,\n };\n let st = this.showtype;\n let parentId = \"\";\n if ((st && st == \"tab\") || (st && st == \"include\")) {\n //如果是控件选项卡或包含元素\n formData.parentId = op.parentId;\n formData.isRelate = op.isRelate;\n parentId = op.parentId;\n }\n if (extraParams && extraParams.treedocid) {\n formData.treedocid = extraParams.treedocid;\n formData.document = extraParams.document;\n }\n let appId = op.appId;\n let divId = act.id;\n let docId = \"\";\n\n let _templateForm = \"\";\n let _ = \"\";\n this.$api.runAfterActionScript(\n appId,\n divId,\n docId,\n op.actionContent,\n this.view.relatedForm,\n _templateForm,\n parentId,\n _,\n formData,\n act.type,\n \"\", //treedocid\n {\n onSucess: (response) => {\n this.isBlockClick = false;\n if (response.data.data) {\n let returnData = response.data.data;\n if (returnData.changedField) {\n this.$notify.success({\n title: returnData.content,\n message: \"\",\n });\n } else {\n let errmsg = response.data.data.content;\n if (returnData.type && returnData.type == \"message\") {\n if (errmsg.type == 16) {\n this.$notify.success({\n title: errmsg.content,\n message: \"\",\n });\n }\n } else if (returnData.type && returnData.type == \"1\") {\n this.$notify.success({\n title: errmsg,\n message: \"\",\n });\n } else {\n this.$notify.error({\n title: errmsg,\n message: \"\",\n });\n }\n }\n } else {\n if (act.type == 1) {\n // this.$refs.delegate.reloadListView();\n } else if (act.type == 20) {\n this.popupVisible = false;\n }\n }\n // if(response.data.errcode == 0) {\n // if(response.data.data.content) {\n // let errmsg = response.data.data.content.content;\n // this.$notify({\n // title: errmsg,\n // message: '',\n // type: 'warning'\n // });\n // }else {\n // if(act.type == 20) {\n // this.popupVisible = false;\n // }\n // }\n // }\n },\n }\n );\n },\n\n //计算基本打开窗口跳转\n openDialogJump(params, type) {\n if (type == \"FORM\") {\n params.dialogId = \"dialog_normalform_\" + this.openParams.actionContent; //用于弹窗打开表单有包含元素时,计算包含元素宽度\n this.isJumpView = false;\n this.isJumpForm = true;\n this.jumpParams = params;\n this.jumpPopup = true;\n } else if (type == \"VIEW\") {\n this.popupLayerType = \"VIEW\";\n this.isJumpForm = false;\n this.isJumpView = true;\n params.isPopupLayerDisplay = true;\n this.jumpParams = params;\n this.jumpPopup = true;\n } else if (type == \"JUMP\") {\n this.popupLayerType = \"VIEW\";\n this.isJumpForm = false;\n this.isJumpView = false;\n this.jumpParams = params;\n this.jumpPopup = true;\n this.isExternalLink = true;\n }\n this.$nextTick(() => {\n this.$refs.elDialog.$el.firstChild.style.height = this.jumpParams\n .styleParams\n ? this.jumpParams.styleParams.dialogHeight\n : \"\"; //elDialog设置弹窗自定义高度--点击视图弹窗加载\n });\n },\n\n //跳转按钮的跳转类型---新增跳转\n jumpType(act) {\n // debugger\n let name = this.view.fullName.split(\"_\").join(\"、\");\n let _selects = this.cvFormData._selects;\n let op = this.openParams;\n let obj = {\n docId: \"\",\n appId: this.$api.appid,\n viewId: act.parentView,\n opentarget: \"\",\n containTitle: name,\n field: \"\",\n isRelate: undefined,\n parentId: \"\",\n _selects: _selects,\n };\n if (op.parentId) {\n obj.parentId = op.parentId;\n }\n if (op.isRelate != null) {\n obj.isRelate = op.isRelate;\n }\n obj = { ...obj, ...this.$route.query }; //执行获取url参数\n this.$api.getAxecuteAddress(this.openParams.appId, act.id, obj, {\n onSucess: (res) => {\n this.isBlockClick = false;\n if (res.data.errcode === 0) {\n let url = res.data.data.content;\n console.log(url);\n let queryString = act.dispatcherParams;\n let isForm = url.search(\"form.html\") != -1; //兼容good的url的写法(后期改)\n let isView = url.search(\"view.html\") != -1; //兼容good的url的写法(后期改)\n let isReport = url.search(\"report.html\") != -1; //兼容good的url的写法(后期改)\n let isOpenCurrentSoftwareData = url.search(\"open?\") != -1;\n\n let urlArrayF = url.split(\"?\");\n let urlArray = \"\";\n if (urlArrayF[1]) {\n urlArray = urlArrayF[1].split(\"&\");\n } else {\n if (url.indexOf(\"?\") == -1) {\n url = url + \"?\";\n }\n }\n this.isJumpForm = isForm;\n this.isJumpView = isView;\n let type = \"\";\n let isExternalLink = false;\n\n console.log(\"编辑流程\");\n console.log(url);\n if (url && url.indexOf(\"processHtmlTem.html\") > -1) {\n API.softwareApplication(this.openParams.appId, {\n onSucess: (res) => {\n let errcode = res.data.errcode;\n if (errcode == 0) {\n let software = JSON.stringify(res.data.data);\n sessionStorage.setItem(\"appId\", this.openParams.appId);\n sessionStorage.setItem(\"software\", software);\n }\n },\n });\n }\n\n if (isForm) {\n type = \"00\";\n } else if (isView) {\n type = \"01\";\n } else if (isReport) {\n //报表\n type = \"09\";\n } else if (!isForm && !isView && !isOpenCurrentSoftwareData) {\n isExternalLink = true;\n this.isExternalLink = true; //判断是否是外部链接\n }\n\n let params = {\n linkType: type,\n appId: op.appId,\n actionContent: \"\",\n name: act.name,\n _select: \"\",\n viewId: \"\",\n };\n if (op.parentId) {\n params.parentId = op.parentId;\n }\n if (op.isRelate != null) {\n params.isRelate = op.isRelate;\n }\n let obj = {};\n if (urlArray && urlArray.length > 0) {\n for (let i = 0; i < urlArray.length; i++) {\n let val = urlArray[i].split(\"=\");\n obj[val[0]] = val[1];\n }\n }\n obj.refreshId = op.id;\n switch (act.jumpActOpenType) {\n case 0:\n if (!isExternalLink) {\n if (isOpenCurrentSoftwareData) {\n //如果外链形式还是打开产品的控件,那么不用iframe的方法嵌套\n if (op.exparams) {\n obj.exparams = op.exparams;\n }\n obj.name = act.name;\n if (op.isPopupLayerDisplay) {\n //弹窗打开视图后,跳转按钮打开表单,还是在弹窗打开\n this.$emit(\"popupOpenType\", \"FORM\", obj);\n } else {\n this.$emit(\"openNewpage\", obj);\n }\n } else {\n params.actionContent = obj.viewId ? obj.viewId : obj.formId;\n params.clearTemp = obj.clearTemp ? obj.clearTemp : \"\";\n param.isCurrentPageOpen = true;\n param.queryString = queryString;\n this.$emit(\"openNewpage\", params);\n }\n } else {\n params = {\n linkType: \"103\",\n appId: op.appId,\n actionContent: url,\n };\n // this.$emit(\"openNewpage\",params)\n this.openNewpage(params);\n }\n break;\n case 1:\n if (!isExternalLink) {\n if (isOpenCurrentSoftwareData) {\n let formParams = \"\";\n console.log(obj);\n for (let key in obj) {\n if (\n key != \"name\" &&\n key != \"actionContent\" &&\n key != \"searchData\" &&\n key != \"showtype\" &&\n key != \"realformId\" &&\n key != \"templateForm\" &&\n key != \"urlParams\" &&\n key != \"exparams\" &&\n key != \"runAfterParams\" &&\n key != \"queryString\" &&\n key != \"isOpenDialog\"\n ) {\n if (obj[key]) {\n formParams += \"&\" + key + \"=\" + obj[key];\n }\n }\n }\n if (op.exparams) {\n if (formParams) {\n formParams = formParams + \"\" + op.exparams;\n } else {\n formParams = op.exparams;\n }\n }\n if (formParams) {\n obj.formParams = formParams;\n }\n obj.name = act.name;\n obj.isPopupLayerDisplay = true;\n if (obj.linkType == \"00\") {\n //表单\n this.isJumpForm = true;\n } else if (obj.linkType == \"01\") {\n //视图\n this.isJumpView = true;\n this.popupLayerType = \"VIEW\";\n }\n if (obj.isRefresh && obj.isRefresh == \"true\") {\n this.isDialogOpenExternalLink = true;\n }\n this.jumpParams = obj;\n } else {\n params.actionContent = obj.viewId ? obj.viewId : obj.formId;\n params.clearTemp = obj.clearTemp ? obj.clearTemp : \"\";\n params.isPopupLayerDisplay = true;\n this.jumpParams = params;\n this.popupLayerType = \"VIEW\";\n }\n this.jumpPopup = true;\n } else {\n params.linkType = \"103\";\n params.actionContent = url; //url + \"&isOpenDialog=true\"\n params.clearTemp = obj.clearTemp ? obj.clearTemp : \"\";\n params.isExternalLink = true;\n let linkType = \"\";\n for (let i = 0; i < urlArray.length; i++) {\n if (urlArray[i].indexOf(\"linkType\") > -1) {\n if (urlArray[i].indexOf(\"01\") > -1) {\n linkType = \"VIEW\";\n params.actionContent = url + \"&isOpenDialog=true\";\n } else if (urlArray[i].indexOf(\"00\") > -1) {\n linkType = \"FORM\";\n params.actionContent = url + \"&isOpenDialog=true\";\n }\n }\n }\n this.jumpParams = params;\n this.popupLayerType = linkType;\n this.jumpPopup = true;\n }\n break;\n case 2:\n if (!isExternalLink) {\n if (isOpenCurrentSoftwareData) {\n if (op.exparams) {\n obj.exparams = op.exparams;\n }\n obj.name = act.name;\n this.addTab(obj);\n } else {\n params.actionContent = obj.viewId ? obj.viewId : obj.formId;\n params.clearTemp = obj.clearTemp ? obj.clearTemp : \"\";\n if (isReport) {\n //报表\n if (obj.reportId) {\n params.actionContent = obj.reportId;\n }\n Object.assign(params, obj);\n }\n this.addTab(params);\n }\n } else {\n params.linkType = \"103\";\n params.actionContent = url;\n params.clearTemp = obj.clearTemp ? obj.clearTemp : \"\";\n params.isExternalLink = true;\n if (isReport) {\n //报表\n if (obj.reportId) {\n params.actionContent = obj.reportId;\n }\n Object.assign(params, obj);\n }\n // this.$emit(\"add-tab\", params);\n this.addTab(params);\n }\n break;\n case 3:\n if (!isExternalLink) {\n params.actionContent = obj.viewId ? obj.viewId : obj.formId;\n params.clearTemp = obj.clearTemp ? obj.clearTemp : \"\";\n if (isForm) {\n params.urlParams = urlArrayF[1]; //携带url后面的参数\n let routeData = this.$router.resolve({\n // name: \"form_blank\",\n name: \"open\",\n query: params,\n });\n window.open(routeData.href, \"_blank\");\n } else if (isView) {\n let routeData = this.$router.resolve({\n name: \"view_blank\",\n query: params,\n });\n window.open(routeData.href, \"_blank\");\n } else if (isOpenCurrentSoftwareData) {\n url += \"&isOpenNewWindow=true\";\n window.open(url);\n }\n } else {\n params = {\n linkType: \"103\",\n appId: op.appId,\n actionContent: url,\n };\n window.open(params.actionContent);\n }\n break;\n case 4:\n break;\n default:\n break;\n }\n }\n },\n });\n },\n\n //提交\n onSubmit(act, docIds) {\n let attitude = this.attitude;\n let appId = this.openParams.appId;\n let doJson = {\n actId: act.id,\n attitude,\n docIds: docIds,\n limistStrList: \"\",\n remark: \"\",\n };\n this.$api.batchApprove(appId, doJson, {\n onSucess: (res) => {\n if (res.data.data && res.data.errcode == 0) {\n this.$notify.success({\n title: this.$t(\"success\"),\n message: res.data.data.content,\n });\n this.popupVisible = false;\n this.runAfterAction(act, docIds);\n this.$refs.delegate.reloadListView(); //刷新\n } else if (res.data.errcode == 0) {\n this.$notify.success({\n title: this.$t(\"success\"),\n message: res.data.data.content,\n });\n this.popupVisible = false;\n this.runAfterAction(act, docIds);\n this.$refs.delegate.reloadListView(); //刷新\n } else if (res.data.errcode == 4001) {\n this.isBlockClick = false;\n this.$notify.error({\n title: this.$t(\"msg.err\"),\n message: res.data.errmsg,\n });\n }\n },\n });\n },\n\n //获取视图模板\n getTemplate(act) {\n let op = this.openParams;\n // this.view = \"\";\n let appId = op.appId;\n let viewId = act.onActionView;\n let exparams = {};\n let st = this.showtype;\n if ((st && st == \"tab\") || (st && st == \"include\")) {\n //如果是控件选项卡或包含元素\n exparams.parentId = op.parentId;\n exparams.isRelate = op.isRelate;\n }\n exparams.appId = appId;\n exparams.viewId = viewId;\n this.$api.getViewTemplate(appId, viewId, exparams, {\n onSucess: (response) => {\n if (response.data.errcode == 0) {\n setTimeout(() => {\n this.view = response.data.data;\n this.runAfterAction(act, []);\n }, 1000);\n // this.runAfterAction(act, []);//外面执行this.view仍为''\n }\n },\n });\n },\n\n //批量提交按钮弹窗\n showSubmitPanel(act, docIds) {\n if (\n (this.currentDocIds && this.currentDocIds.length > 0) ||\n (docIds && docIds.length > 0)\n ) {\n if (docIds && docIds.length > 0) {\n this.currentDocIds = docIds;\n }\n this.currentAct = act;\n this.popupVisible = true;\n } else {\n this.$alert(this.$t(\"msg.least_one_data\"), this.$t(\"tip\"), {\n confirmButtonText: this.$t(\"msg.confirm\"),\n callback: () => { },\n });\n }\n },\n\n //文件下载\n fileDownload(divId) {\n let op = this.openParams;\n let appId = op.appId;\n let docId = \"\";\n let actId = divId;\n let params = {\n parentId: op.parentId ? op.parentId : \"\",\n isRelate: op.isRelate,\n };\n API.viewDocumentDownload(appId, docId, actId, params, {\n onSucess: (response) => {\n this.isBlockClick = false;\n if (response.data.errcode != 0) {\n this.$notify({\n title: this.$t(\"form.warning\"),\n message: this.$t(\"view.nofile\"),\n type: \"warning\",\n });\n } else {\n let fileName = \"\";\n let url = \"\";\n let contextPath = obpmConfig.contextPath;\n let filePath = response.data.data; //uploads/doc/202108/文本框pdf导出 (7).pdf\n if (\n filePath &&\n (filePath.indexOf(\"https://\") > -1 ||\n filePath.indexOf(\"http://\") > -1)\n ) {\n window.open(encodeURI(filePath));\n return false;\n }\n fileName = filePath.substring(filePath.lastIndexOf(\"/\") + 1);\n url =\n contextPath +\n \"/runtime/file/download?filepath=\" +\n filePath +\n \"&filename=\" +\n fileName;\n window.open(encodeURI(url));\n }\n // let type = response.headers['content-type'];\n // if(response.headers['content-disposition']) {\n // fileName = decodeURIComponent(response.headers['content-disposition'].split(\"=\")[1]);\n // }else {\n // fileName=this.$t('report.download');\n // }\n // if(response.data.size >0){\n // this.download(response, type, fileName);\n // }else {\n // this.$notify({\n // title: this.$t('form.warning'),\n // message: this.$t('view.nofile'),\n // type: 'warning'\n // });\n // }\n },\n onError: (error) => {\n this.isBlockClick = false;\n if (error.response && error.response.status == 500)\n this.$notify({\n title: this.$t(\"form.warning\"),\n message: this.$t(\"view.nofile\"),\n type: \"warning\",\n });\n },\n });\n },\n\n download(res, type, filename, act) {\n const blob = new Blob([res.data], {\n // 如果后端没返回下载文件类型,则需要手动设置:type: 'application/pdf;chartset=UTF-8' 表示下载文档为pdf,如果是word则设置为msword,excel为excel\n type: type,\n });\n const a = document.createElement(\"a\");\n const herf = window.URL.createObjectURL(blob);\n // 下载链接\n a.href = herf;\n // 下载文件名,如果后端没有返回,可以自己写a.download = '文件.pdf'\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(herf);\n this.runAfterAction(act, this.currentDocIds);\n setTimeout(() => {\n window.clearInterval(this.task);\n this.exportDialog = false;\n this.isShowProgress = false; //进度条下载后隐藏\n this.exportProgress = 0; //进度条数值下载后为0\n this.isExporting = false;\n }, 500);\n },\n\n //Excel导出弹窗\n confirmExportFile(act) {\n if (this.exportData === 1 && this.currentDocIds.length === 0) {\n this.$alert(this.$t(\"msg.least_one_data\"), this.$t(\"tip\"), {\n confirmButtonText: this.$t(\"msg.confirm\"),\n type: \"warning\",\n callback: () => { },\n });\n } else {\n if (this.excelSelectList.length === 0) {\n this.$alert(this.$t(\"msg.select_list\"), this.$t(\"tip\"), {\n confirmButtonText: this.$t(\"msg.confirm\"),\n type: \"warning\",\n callback: () => { },\n });\n return false;\n }\n if (this.isExporting) {\n return;\n }\n // this.$message({type:'warning',message:'当前最多只能导出5000条数据'})\n let view = this.view;\n this.isExporting = true;\n let op = this.openParams;\n let applicationId = op.appId,\n viewId = view.id,\n actId = act.id,\n name = view.name,\n isExpSub = act.expSub,\n parentId = \"\",\n isRelate = undefined;\n let st = this.showtype;\n if ((st && st == \"tab\") || (st && st == \"include\")) {\n //如果是控件选项卡或包含元素\n (parentId = op.parentId), (isRelate = op.isRelate);\n }\n let params = this.$refs.delegate.getExcelParams();\n let selectDocId = this.exportData == 2 ? [] : this.currentDocIds;\n let sc = this.excelSelectList;\n let selectColumns = sc && sc.length > 0 ? sc.join(\",\") : \"\";\n let obj = {\n selectColumns,\n selectDocIds: selectDocId,\n items: {},\n };\n let sd = this.searchDocItems;\n let commonSearchFlag = true; //常用查询是否有值\n for (let key in sd) {\n if (sd[key]) {\n commonSearchFlag = false;\n }\n }\n if (commonSearchFlag) {\n //常用查询\n if (this.$refs.searchform) {\n sd = this.$refs.searchform.buildSearchData();\n obj.items = sd;\n }\n }\n debugger\n console.log(view)\n if (view.searchFormId != undefined) {\n //高级查询\n let sfd = this.$refs.delegate.getSearchformBuildData();\n console.log('sfd', sfd)\n console.log('sd', sd)\n sd = Object.assign(sd, sfd);//导出全部--获取高筛搜索条件sfd\n obj.items = sd;\n }\n this.task = setInterval(() => {\n this.$api.exportExcelProgress({\n onSucess: (response) => {\n if (response.data.errcode == 0) {\n let process; //进度条数值\n this.isShowProgress = true;\n let excelExportCount = response.data.data.excelExportCount; //获取已经导出的条数\n let excelRowCount = response.data.data.excelRowCount; //需要导出总条数\n if (excelRowCount == 0) {\n //导出空表\n process = 100;\n } else {\n process = Math.floor(\n (excelExportCount / excelRowCount) * 100\n );\n }\n this.exportProgress = process;\n if (process == 100) {\n window.clearInterval(this.task);\n }\n console.log(excelRowCount);\n if (excelRowCount == 10000) {\n process = 100;\n this.$message({\n type: \"warning\",\n message: \"当前最多只能导出10000条数据\",\n });\n return;\n }\n }\n },\n });\n }, 500);\n this.$api.exportExcel(\n applicationId,\n viewId,\n actId,\n name,\n isExpSub,\n parentId,\n isRelate,\n params,\n obj,\n {\n onSucess: (response) => {\n let fileName = \"\";\n let type = response.headers[\"content-type\"];\n if (response.headers[\"content-disposition\"]) {\n fileName = decodeURIComponent(\n response.headers[\"content-disposition\"].split(\"=\")[1]\n );\n let suffix = fileName.split(\".\")[1];\n fileName = name + \".\" + suffix;\n } else {\n fileName = this.$t(\"report.download\");\n }\n setTimeout(() => {\n this.isExporting = false;\n }, 1000);\n\n this.download(response, type, fileName, act);\n },\n }\n );\n }\n },\n\n //网页打印\n viewPrint(act) {\n let openParams = this.openParams;\n let view = this.view;\n let routeData = this.$router.resolve({\n name: \"printView\",\n query: {\n //给print_view.vue接收\n viewId: this.view.id,\n isPrint: true,\n openType: view.openType,\n simpleClassName: view.simpleClassName,\n appId: openParams.appId,\n isRelate: openParams.isRelate,\n parentId: openParams.parentId,\n },\n });\n window.open(routeData.href, \"_blank\");\n this.runAfterAction(act, []);\n },\n\n //视图提交流程打开弹窗\n viewColumnSubmission(val, docId) {\n this.isSubmissionProcess = val;\n this.viewRowId = docId;\n this.popupVisible = true;\n },\n\n //弹出导入Excel的窗口\n showLeadDialog(act) {\n this.isBlockClick = false;\n this.act = act;\n this.customizeVisible = true;\n },\n\n onAction(act) {\n console.log(act);\n //绑定视图的处理事件\n let actId = act.id;\n let activityType = act.type; \n switch (act.type) {\n case 1: //载入视图\n this.runBeforeAction(act);\n // this.v3ActionSubmit(act, \"\", \"\", activityType, \"\", act); //bcx替换合并一个接口\n break;\n case 2: //创建\n this.isBlockClick = true;\n let formId = this.view.relatedForm;\n this.$api.hasPermissionToForm(this.openParams.appId, formId, {\n onSucess: (res) => {\n if (res.data.data) {\n this.runBeforeAction(act);\n // this.v3ActionSubmit(act, \"\", \"\", activityType, \"\", act); //bcx替换合并一个接口\n } else {\n this.isBlockClick = false;\n this.$message({\n message: this.$t(\"msg.refuse\"),\n type: \"warning\",\n });\n }\n },\n });\n break;\n case 3: //删除\n this.doRemove(act);\n break;\n case 5: //流程处理\n this.$parent.flowHandle();\n break;\n case 8: //关闭窗口\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 10: //返回\n this.doBack();\n break;\n case 11: //保存并返回\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 14: //网页打印(表单)\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 15: //网页打印含历史\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 16: //导出excel\n this.isShowProgress = false;\n this.exportProgress = 0;\n this.runBeforeAction(act);\n break;\n case 18: //清空所有数据\n this.clearDataPopup(act);\n //this.runBeforeAction(act);\n break;\n case 20: //批量提交\n this.showSubmitPanel(act);\n break;\n case 26: //文件下载\n this.runBeforeAction(act);\n break;\n case 27: //导入excel\n this.showLeadDialog(act);\n break;\n case 28: //电子签章\n break;\n case 29: //批量签章\n this.pdfsignatures(act);\n break;\n case 34: //保存\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 36: //网页打印(视图)\n this.runBeforeAction(act);\n break;\n case 37: //邮件短信分享\n break;\n case 42: //保存并新建\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 43: //跳转\n this.runBeforeAction(act);\n break;\n case 46: //签章\n break;\n default:\n break;\n }\n },\n\n pdfsignatures(act) {\n this.isBlockClick = false;\n let cd = this.currentDocIds;\n let appId = this.openParams.appId;\n if (cd.length <= 0) {\n this.$message({\n message: this.$t(\"msg.least_one_data\"),\n type: \"warning\",\n });\n } else {\n this.$api.getPdfsignatures(appId, cd, {\n onSucess: (res) => {\n this.signatureData = res.data.data;\n this.signatureDialog = true;\n },\n });\n }\n },\n\n //获取子组件的选中的数据\n selectNum(val) {\n this.checkedNum = val.length;\n // 已选中的视图列表\n this.viewTableData.datas = val;\n if (val.length > 0 && val[0] != undefined) {\n let select = \"\";\n for (let i = 0; i < val.length; i++) {\n select += val[i].docId + \";\";\n }\n let params = {\n linkType: \"00\",\n appId: this.openParams.appId,\n actionContent: val[0].formId,\n _select: select,\n viewId: this.view.id,\n };\n\n this.$emit(\"updateViewData\", params, val);\n } else {\n this.$emit(\"updateViewData\", [], val);\n }\n },\n\n gridviewTem(act) {\n this.getTemplate(act);\n },\n\n clearViewSelect() {\n let openParams = this.openParams;\n let formId = openParams.actionContent;\n if (this.view.displayType && this.view.displayType == \"templateForm\") {\n //判断是模板表单还是数据源表单\n formId = this.view.templateForm;\n }\n let params = {\n linkType: \"00\",\n appId: openParams.appId,\n actionContent: formId, //row.formId,\n _select: \"\",\n viewId: this.view.id,\n parentId: openParams.parentId ? openParams.parentId : \"\", //包含元素时判断是否有parentId\n isRelate: openParams.isRelate ? openParams.isRelate : \"\", //包含元素时判断isRelate是否为true\n templateForm: this.view.templateForm ? this.view.templateForm : \"\", //模板表单携带的formId\n };\n let isRadio = true;\n this.$emit(\"updateViewData\", params, [], isRadio);\n },\n\n /**\n * 显示已选择的列表\n */\n showCheckedList() {\n this.checkedListDialog = true;\n },\n\n /**\n * 接受view_listview传递table的column\n */\n getViewTableColumns(val) {\n let tempColumns = [];\n let columnObj = {};\n for (let k in val) {\n columnObj = {\n prop: k,\n label: val[k].name, //字段名\n columnName: val[k].columnName, //列名称\n };\n tempColumns.push(columnObj);\n }\n this.viewTableData.columns = tempColumns;\n },\n /**\n * 接受view_cardview的下一层级出现返回按钮的标志\n */\n cardBackSign(val) {\n this.cardBack = val;\n },\n\n returnPrevious(val) {\n //点击返回触发的事件 重新加载上一次的数据 (可以保留在父节点的数据 在层数高的时候可以使用多层在浏览器缓存太多不合算)\n this.$refs.delegate.returnPrevious();\n // if(val){\n // this.cardBack=false;\n // }\n // else{\n // // this.$refs.view_cardview.\n // }\n },\n // handleSelectionChange(val) {//参考列表视图把数据传回去 2个问题能不能正确回显和显示参数\n // //将长度传回去\n // // this.$emit('selectNum',val)\n // if (this.isView) {\n // //视图选择框\n // if (val.length > 0 && val[0] != undefined) {\n // let select = \"\";\n // for (let i = 0; i < val.length; i++) {\n // select += val[i].docId + \";\";\n // }\n // let params = {\n // linkType: \"00\",\n // appId: this.openParams.appId,\n // actionContent: val[0].formId,\n // _select: select,\n // viewId: this.view.id,\n // };\n // this.$emit(\"updateViewData\", params, val);\n // }else{\n // this.$emit(\"updateViewData\", [], val);\n // }\n // } else {\n // let docIds = []\n // let hasChildren = \"\"\n // if (val.length > 0) {\n // for (let i = 0; i < val.length; i++) {\n // docIds.push(val[i].docId);\n // if (val[i].children) {\n // hasChildren = true\n // }\n // }\n // } else {\n // docIds = []\n // }\n\n // let sy = this.showtype\n\n // if(sy == 'include' || sy == 'tab') { //如果是包含元素或者tab页,获取的docId传到最上层表单\n // this.setListViewDocIds(docIds)\n // }\n\n // this.$emit(\"getDocIds\", docIds, hasChildren);\n // }\n // },\n //重构自定义、普通按钮的功能\n //普通按钮(type=11: 比如: 考试申报->资格证报名管理->报名人员->报名->提交按钮),\n //自定义按钮(type=13: 比如: 报名审核 ->学员管理->材料审核->提交审核)\n v3ActionSubmit(act, docIds, extraParams) {\n this.isBlockClick = true;\n let view = this.view;\n let sd = this.searchDocItems;\n let openParams = this.openParams;\n let formData = {\n docId: \"\",\n document: sd ? sd : {},\n formId: view.relatedForm,\n parentId: \"\",\n templateForm: view.templateForm,\n viewId: openParams.actionContent,\n _selects: docIds && docIds.length > 0 ? docIds : this.currentDocIds,\n };\n this.cvFormData = formData; //复制runBeforeAction的参数formdata,保存在cvFormData里用于给getAxecuteAddress传参\n let st = this.showtype;\n if ((st && st == \"tab\") || (st && st == \"include\")) {\n //如果是控件选项卡或包含元素\n formData.parentId = openParams.parentId;\n formData.isRelate = openParams.isRelate;\n }\n let treedocid = \"\";\n if (extraParams && extraParams.treedocid) {\n treedocid = extraParams.treedocid;\n formData.treedocid = extraParams.treedocid;\n formData.document = extraParams.document;\n }\n if (openParams.isRelate) {\n formData.isRelate = openParams.isRelate;\n }\n if (openParams.parentId) {\n formData.parentId = openParams.parentId;\n }\n if (this.$route.query) {\n formData = { ...formData, ...this.$route.query };\n }\n debugger\n let divId = act.id;\n let actType = act.type;\n \n //重构start \n let step = \"BeforeAction\";\n this.v3Activities(\n step,\n openParams.appId,\n divId,\n formData,\n actType,\n treedocid ? treedocid : \"\", //treedocid\n \"\", //flowType\n act\n ); //重构执行前代码\n //重构end\n\n \n },\n v3Activities(step,appId,divId,formData,actType,treedocid,flowType,act){\n API.v3ActivitiesApi(\n step,\n appId,\n divId,\n formData,\n actType,\n treedocid ? treedocid : \"\", //treedocid\n flowType, //flowType\n {\n onSucess: (response) => {\n if (response.data.data) {\n this.isBlockClick = false;\n //如果有数据返回,结束下一步\n let resData = response.data.data;\n let errmsg = response.data.data.content;\n if (!resData.type) {\n //没有type值,但是有返回数据,把数据放进document\n if (resData.changedField) {\n this.$notify.success({\n title: resData.content,\n message: \"\",\n });\n }\n } else if (resData.type == 1) {\n if (resData.content == \"站内信发送成功\") {\n this.$notify.success({\n title: resData.content,\n message: \"\",\n });\n } else {\n this.$notify.error({\n title: errmsg,\n message: \"\",\n customClass: \"notify-success\", //载入视图执行前脚本返回值显示为红色\n });\n }\n } else if (resData.type == 16) {\n this.$notify.error({\n title: errmsg,\n message: \"\",\n });\n } else if (resData.type == 32) {\n this.$confirm(`${errmsg}`, this.$t(\"tip\"), {\n confirmButtonText: this.$t(\"msg.confirm\"),\n cancelButtonText: this.$t(\"btns.cancel\"),\n type: \"warning\",\n })\n .then(() => {\n let step=response.data.data.next-step\n this.v3Activities(step,appId,divId,formData,actType,treedocid,flowType,act) //重构执行前代码 \n switch (act.type) {\n case 1: //载入视图\n this.getTemplate(act);\n break;\n case 2: //新建表单\n this.doCreate(act, extraParams);\n break;\n case 3: //删除数据\n this.removeDocuments(act, docIds);\n break;\n case 16: //导出excel\n // debugger\n this.isBlockClick = false;\n this.currentClickBtnAct = act;\n let excelColumns = [];\n let columns = this.copyColumns;\n let selectAll = [];\n for (let i = 0; i < columns.length; i++) {\n if (columns[i].visible4ExpExcel) {\n excelColumns.push(columns[i]);\n }\n selectAll.push(columns[i].name);\n }\n this.excelColumns = excelColumns;\n this.excelSelectList = selectAll;\n this.exportDialog = true;\n this.switchValue = true;\n this.exportData = 1;\n break;\n case 18: //清空所有数据\n this.clearAllData(act);\n break;\n case 20: //批量提交\n this.onSubmit(act, docIds);\n break;\n case 26: //文件下载\n this.fileDownload(act.id);\n break;\n case 27: //导入excel\n this.showLeadDialog(act);\n break;\n case 36: //网页打印(视图)\n this.viewPrint(act);\n break;\n case 43: //跳转\n this.jumpType(act);\n break;\n default:\n break;\n }\n })\n .catch(() => {});\n }\n } else {\n switch (act.type) {\n case 1: //载入视图\n this.getTemplate(act);\n break;\n case 2: //新建表单\n this.doCreate(act, extraParams);\n break;\n case 3: //删除数据\n this.removeDocuments(act, docIds);\n break;\n case 16: //导出excel\n // debugger\n this.isBlockClick = false;\n this.currentClickBtnAct = act;\n let excelColumns = [];\n let columns = this.copyColumns;\n let selectAll = [];\n console.log(columns)\n for (let i = 0; i < columns.length; i++) {\n if (columns[i].visible4ExpExcel) {\n excelColumns.push(columns[i]);\n }\n selectAll.push(columns[i].name);\n }\n this.excelColumns = excelColumns;\n this.excelSelectList = selectAll;\n this.exportDialog = true;\n this.switchValue = true;\n this.exportData = 1;\n break;\n case 18: //清空所有数据\n this.clearAllData(act);\n break;\n case 20: //批量提交\n this.onSubmit(act, docIds);\n break;\n case 26: //文件下载\n this.fileDownload(act.id);\n break;\n case 27: //导入excel\n this.showLeadDialog(act);\n break;\n case 29:\n break;\n case 36: //网页打印(视图)\n this.viewPrint(act);\n break;\n case 43: //跳转\n this.jumpType(act);\n break;\n default:\n break;\n }\n }\n\n // if(response.data.errcode == 0 && response.data.data) {\n // let errcode = response.data.errcode;\n // let errmsg = response.data.data.content;\n // this.$notify.error({\n // title: errmsg,\n // message: ''\n // });\n // }else if(response.data.errcode == 0){\n // switch(act.type) {\n // case 1: //载入视图\n // this.getTemplate(act);\n // break;\n // case 2: //新建表单\n // this.doCreate(act);\n // break;\n // case 3: //删除数据\n // this.removeDocuments(act,docIds);\n // break;\n // case 16: //导出excel\n // this.currentClickBtnAct = act;\n // let selectAll = [];\n // let columns = this.view.columns;\n // columns.forEach(el => {\n // selectAll.push(el.name);\n // });\n // this.excelSelectList = selectAll;\n // this.exportDialog = true;\n // break;\n // case 18: //清空所有数据\n // this.clearAllData(act);\n // break;\n // case 20: //批量提交\n // this.onSubmit(act, docIds);\n // break;\n // case 26: //文件下载\n // this.fileDownload(act.id);\n // break;\n // case 36: //网页打印(视图)\n // this.viewPrint(act);\n // break;\n // case 43: //跳转\n // this.jumpType(act);\n // break;\n // default:\n // break;\n // }\n // }\n },\n }\n );\n }\n },\n\n computed: {\n viewType() {\n //let type = \"view_emptyview\";\n let type = \"\";\n if (this.view) {\n switch (this.view.simpleClassName) {\n case \"CollapsibleView\": //折叠视图\n if (this.view.collapsibleShowMode == \"card\") {\n type = \"view_cardview\";\n } else {\n type = \"view_collapsibleview\";\n }\n\n break;\n case \"CalendarView\": //日历视图\n type = \"view_calendarview\";\n break;\n case \"TreeView\": //树形视图\n type = \"view_treeview\";\n break;\n case \"MapView\": //地图视图\n type = \"view_mapview\";\n break;\n case \"GanttView\": //甘特视图\n type = \"view_gantt\";\n break;\n case \"ListView\": //列表视图\n if (this.view.openType == 288) {\n //网格打开\n type = \"view_gridview\";\n } else {\n //正常打开\n type = \"view_listview\";\n }\n break;\n default:\n }\n }\n return type;\n },\n\n listenIncludeViewUpdate() {\n return this.$store.state.includeViewId;\n },\n },\n};\n",null]}