{"remainingRequest":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/src/components/view_listview.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/src/components/view_listview.vue","mtime":1740130327259},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nimport { Toast } from 'mint-ui';\nimport VueBetterScroll from \"vue2-better-scroll\";\nimport { Indicator } from \"mint-ui\";\nexport default {\n inject:['reload'],\n name: \"view-listview\",\n props: [\n \"view\",\n \"openParams\",\n \"clearCheckboxVal\",\n \"mutil\",\n \"selectOne\",\n \"searchData\",\n \"isView\", //是否是视图选择框\n \"allow\", //如果是视图选择框是否允许点击打开文档\n \"showtype\", //判断是包含元素还是选项卡还厚普通视图\n \"parentId\",\n \"checkedState\",\n \"activities\",\n \"searchViewData\",\n \"newInclude\",\n \"columnsId\",\n \"newColumns\",\n \"showViewRow\",\n \"includeDisplayType\", //包含元素为只读时的displayType=1\n \"isCurrentPageDisplay\",\n \"isFormToView\", //包含元素打开表单后返回视图的判断\n \"selectedDocId\"\n ],\n components: { VueBetterScroll},\n\n watch: {\n columnsId() {\n this.view.columns = JSON.parse(JSON.stringify(this.newColumns));\n this.showColumnLength = this.view.columns.length;\n },\n clearCheckboxVal() {\n this.selectAllDocIds();\n },\n searchData() {\n if(this.searchData.appId) {\n this.openParams.searchdata = {};\n this.getData();\n }\n },\n checkedState() {\n this.onChangeAll();\n },\n searchViewData() {\n if(this.searchViewData.isMobile) {\n this.getData();\n }\n },\n newInclude(){\n this.doCreate();\n },\n 'view.id': {\n deep:true,\n handler:function(){\n setTimeout(() => {\n this.currentPage = 1;\n this.getData(1);\n }, 200)\n }\n }\n },\n\n created() {\n // this.startY = this.$store.state.scrollTranslateY\n Indicator.open({\n text: \"加载中...\",\n spinnerType: \"fading-circle\"\n });\n this.setView();\n },\n\n mounted() {\n this.getData(); \n this.$nextTick(function() {\n if(this.$refs.pendingwrapper) {\n this.pendingContentH =\n document.documentElement.clientHeight -\n this.$refs.pendingwrapper.getBoundingClientRect().top -\n 40;\n }\n });\n },\n\n data: function() {\n return {\n showColumnLength:3,\n newIncludeElement:[],\n createFormParams:'',\n isCreate:false,\n includeParams:'',\n pendingContentH: \"\",\n documents: [],\n selectedDocIds: [], //被选中的docs,存储docid\n selectedRadioDocIds: [],\n checkedAll: [],\n // view: { columns: [] }\n // 这个配置可以开启滚动条,默认为 false。当设置为 true 或者是一个 Object 的时候,都会开启滚动条,默认是会 fade 的\n scrollbarObj: {\n fade: true\n },\n // 这个配置用于做下拉刷新功能,默认为 false。当设置为 true 或者是一个 Object 的时候,可以开启下拉刷新,可以配置顶部下拉的距离(threshold) 来决定刷新时机以及回弹停留的距离(stop)\n // pullDownRefreshObj: {\n // threshold: 90,\n // stop: 40\n // },\n // 这个配置用于做上拉加载功能,默认为 false。当设置为 true 或者是一个 Object 的时候,可以开启上拉加载,可以配置离底部距离阈值(threshold)来决定开始加载的时机\n pullUpLoadObj: {\n threshold: 0,\n txt: {\n more: \" \",\n noMore: \"没有更多数据了\"\n }\n },\n startY: 0, // 纵轴方向初始化位置\n scrollToX: 0,\n scrollToY: 0,\n scrollToTime: 700,\n scrollTranslateY: 0, //滚动条y值高度\n selectRow: [],\n currentPage: 1,\n row_count: 0,\n presentationForm:false, //包含元素展开表单\n isShow:false,\n filePreviewId: '',\n dialogVisible:false,\n pdfUrl:'',\n keyWord:'',\n searchPlaceholder: '', //常用查询\n accessToken: localStorage.getItem(\"accessToken\")\n };\n },\n\n methods: {\n openIncludeViewDialog(){\n this.$emit(\"action\")\n },\n\n search(){\n this.currentPage = 1;\n this.$parent.search(undefined ,this.keyWord);\n },\n\n onSearchBtnClick() {\n this.$emit(\"onViewSearch\");\n // this.popupVisible = !this.popupVisible;\n },\n\n filePreview(path){\n let filePath = path.replace(/^(\\s|;)+|(\\s|;)+$/g, \"\");\n this.dialogVisible = true;\n let arr = filePath.split('/');\n let id = arr[arr.length-1].split('.')[0];\n let len = arr[arr.length-1].split('.').length;\n let suffix = arr[arr.length-1].split('.')[len-1];\n let supportedDoc = ['doc','docx','txt','pdf','xls','xlsx','ppt']\n if(suffix) {\n suffix = suffix.toLowerCase();\n if(supportedDoc.indexOf(suffix) < 0) {\n Toast({\n message: '不支持打开该格式文件',\n position: 'center',\n });\n return;\n }\n }\n this.isPdf = false;\n this.$api.readPDF(id, filePath, {\n onSucess: response => {\n let originalPdf = response.data.data;\n let minPdf = originalPdf;\n if(originalPdf) {\n minPdf = originalPdf.split('.')[0] + '.min.pdf';\n }\n\n let pdfUrl = obpmConfig.obpmFilePath + minPdf;\n let pdfPath = \"\";\n let statiContextPath = obpmConfig.statiContextPath;\n if(statiContextPath) { //5.0 trunk\n pdfPath = obpmConfig.statiContextPath + '/mobile/pdf/web/viewer.html?file=' + pdfUrl;\n }else { //4.4 stable\n pdfPath = obpmConfig.obpmFilePath + '/mobile/pdf/web/viewer.html?file=' + pdfUrl;\n }\n this.pdfUrl = pdfPath;\n\n }\n });\n },\n\n seeMoreFile(value, id) {\n if(this.filePreviewId === id){\n this.filePreviewId = '';\n return;\n }\n this.filePreviewId = id;\n },\n\n nav_click() {\n this.$router.push({ \n name:'open',\n query:{linkType:'01',actionContent:this.openParams.actionContent}\n }) \n },\n \n loadMore() {\n Indicator.open({\n text: \"加载中...\",\n spinnerType: \"fading-circle\"\n });\n this.currentPage += 1;\n this.getViewData().then(response => {\n Indicator.close();\n this.documents = this.documents.concat(response.data.data);\n this.row_count = response.data.row_count;\n });\n },\n \n setView() {\n //v-if=\"!column.hiddenColumn && column.visible\"\n if (this.view.columns && this.view.columns.length > 0) {\n let arr = [];\n for (let i = 0; i < this.view.columns.length; i++) {\n if (\n !this.view.columns[i].hiddenColumn &&\n this.view.columns[i].visible\n ) {\n arr.push(this.view.columns[i]);\n }\n }\n this.view.columns = arr;\n }\n },\n\n //视图选择框选择所有数据\n selectAllDocIds() {\n if (this.clearCheckboxVal) {\n let select, formId;\n this.selectRow = this.documents;\n this.selectRow.forEach(item => {\n select += item.id + \";\";\n });\n this.documents.forEach(item => {\n this.selectedDocIds.push(item.id);\n formId = item.formId;\n });\n let val = this.selectedDocIds;\n let params = {\n linkType: \"00\",\n appId: this.$root.appid,\n actionContent: formId,\n _select: select,\n viewId: this.view.id\n };\n if (this.$parent.$parent.$parent.checkboxVal) {\n this.$parent.$parent.$parent.checkboxVal(params, this.selectRow, val);\n }\n } else {\n this.selectRow = [];\n this.selectedDocIds = [];\n }\n },\n\n //模拟数据请求\n getViewData() {\n let newsearchData = {};\n let openParams = this.openParams;\n let view = this.view;\n if(JSON.stringify(this.searchData == '{}')) {\n if(openParams.searchdata && JSON.stringify(openParams.searchdata) !== '{}') {\n //this.searchData = this.openParams.searchdata\n newsearchData = openParams.searchdata;\n }\n }\n let treeData = \"\";\n let treeName = \"\";\n if (this.parentId) {\n //树形视图\n return new Promise(resolve => {\n this.$api.getTreeViewData(\n //树形视接口\n this.$root.appid,\n this.openParams.actionContent,\n {\n parentId: this.parentId ? this.parentId : \"\"\n },\n treeData,\n treeName,\n {\n onSucess: response => {\n let treeViewData = response.data;\n resolve(treeViewData);\n }\n }\n );\n });\n } else if (openParams && openParams.parentId) {\n //包含元素时\n let searchData = JSON.stringify(newsearchData) !== '{}' ? newsearchData:this.searchData;\n return new Promise(resolve => {\n this.$api.getViewData(\n this.$root.appid,\n this.view.id,\n {\n parentId: this.openParams.parentId,\n isRelate: this.openParams.isRelate,\n currpage: this.currentPage,\n lines: this.view.data ? this.view.data.page_lines : 5,\n searchWord: this.searchViewData.searchWord ? this.searchViewData.searchWord:''\n },\n\n //this.searchData,\n searchData,\n {\n onSucess: response => {\n let viewData = response.data;\n resolve(viewData);\n }\n }\n );\n });\n } else {\n let searchData = JSON.stringify(newsearchData) !== '{}' ? newsearchData:this.searchData;\n if(openParams.queryString) {\n searchData = searchData || {};\n let qs = openParams.queryString.replace(/^(\\s|&)+|(\\s|&)+$/g, '');\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 searchData[p[0]] = p[1];\n }\n }\n }\n let obj = {\n parentId: this.parentId ? this.parentId : \"\",\n currpage: this.currentPage,\n lines: view.data ? view.data.page_lines : 10,\n searchWord: this.searchViewData.searchWord ? this.searchViewData.searchWord:'',\n };\n if(this.showtype == 'home') { //首页widget最多显示5条\n obj.lines = 5;\n }\n let _fp = openParams.formParams;\n let _newFp = '';\n if(_fp) { //携带自定义的参数\n _fp = _fp.replace(/^(\\s|&)+|(\\s|&)+$/g, '');\n let _fpArr = _fp.split(\"&\");\n for(let i=_fpArr.length-1; i>=0; i--) {\n if(_fpArr[i].indexOf(\"linkType\")<0 && _fpArr[i].indexOf(\"actionContent\")<0) {\n _newFp += \"&\"+_fpArr[i];\n }\n }\n obj.formParams = _newFp;\n }\n\n let urlParams = openParams.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[1]) {\n searchData[p[0]] = p[1];\n }\n }\n }\n return new Promise(resolve => {\n this.$api.getViewData(\n //普通试图接口\n this.$root.appid,\n view.id,\n obj,\n searchData,\n {\n onSucess: response => {\n let viewData = response.data;\n resolve(viewData);\n }\n }\n );\n });\n }\n },\n\n // 滚动到页面顶部\n scrollTo() {\n this.$refs.scroll.scrollTo(\n this.scrollToX,\n this.scrollToY,\n this.scrollToTime\n );\n },\n\n getData() {\n this.getViewData().then(response => {\n Indicator.close();\n if(this.showViewRow && this.showViewRow.length > 0) {\n this.view.columns = this.showViewRow;\n this.showColumnLength = this.showViewRow.length;\n }\n let docs = response.data.data;\n docs.splice(docs.length);\n if(docs.length >= 1) {\n if(docs[docs.length - 1].isSum) {\n docs.splice(docs.length - 1);\n }\n }\n \n this.documents = docs;\n let view = this.view;\n if(view.searchForm) { //常用查询显示的placeholder\n if(view.searchForm.discription) {\n this.searchPlaceholder = view.searchForm.discription;\n }\n }\n this.row_count = response.data.row_count;\n let showtype = this.showtype;\n if(showtype && showtype == 'include') {\n this.$emit(\"getRowCount\", response.data.row_count); //包含元素获取数量\n }\n\n this.$emit(\"setTabNameAndCount\", {rowCount:response.data.row_count,name:this.view.name}); //选项卡获取描述和数量\n this.$emit(\"getDeleteCount\", response.data.row_count); //view_delegate的标题栏设置数量\n if(docs.length > 0) {\n for(let i=0; i docs.length) {\n this.pullUpLoadObj = {\n threshold: 0,\n txt: {\n more: \"加载更多\",\n noMore: \"没有更多数据了\"\n }\n };\n }\n if(this.$refs.pendingwrapper) {\n if(this.$refs.scroll) {\n this.$refs.scroll.forceUpdate(true);\n }\n }\n //视图选择框的回选\n if (this.selectedDocId && this.selectedDocId.length > 0) {\n this.$nextTick(() => {\n this.selectedDocIds = this.selectedDocId\n let viewSelectedDocIdsLength = this.selectedDocIds.length\n this.$emit('viewSelectedDocIdsLength',viewSelectedDocIdsLength)\n })\n } \n this.$nextTick(() => { //包含元素下视图无法滑动问题解决方案\n setTimeout(() => {\n if(showtype && showtype == 'include' && !this.isFormToView) {\n let pendingContentH = this.pendingContentH;\n let p = document.getElementById('scroll_' + this.view.id);\n let dom = p.firstElementChild.firstElementChild;\n if(this.view.searchFormId != undefined && !this.showtype && !this.isView) {\n dom.style['min-height'] = (pendingContentH - 145) + 'px';\n dom.style['pointer-events'] = 'auto';\n this.$forceUpdate();\n }else {\n dom.style['min-height'] = (pendingContentH - 95) + 'px';\n dom.style['pointer-events'] = 'auto';\n this.$forceUpdate();\n }\n }\n }, 100)\n })\n this.isShow=true;\n });\n },\n\n scrollbarScroll(){ //为了解决包含元素下的视图初次无法滚动\n if(this.showtype == 'include') {\n document.getElementsByClassName(\"pullup-wrapper\")[0].style['pointer-events'] = 'auto'\n }\n },\n\n // onPullingDown() {\n // // 模拟下拉刷新\n // console.log(\"下拉刷新\");\n // this.getViewData().then(() => {\n // this.$refs.scroll.forceUpdate(true);\n // });\n // },\n\n //模拟上拉加载更多数据\n onPullingUp() {\n if (this.documents.length < this.row_count) {\n setTimeout(() => {\n this.currentPage += 1;\n this.getViewData().then(response => {\n let docs = response.data.data;\n if(docs[docs.length - 1].isSum) {\n docs.splice(docs.length - 1);\n }\n this.documents = this.documents.concat(docs);\n\n // this.documents = this.documents.concat(response.data.data);\n this.row_count = response.data.row_count;\n this.$refs.scroll.forceUpdate(true);\n });\n }, 500);\n } else {\n this.$refs.scroll.forceUpdate(false);\n }\n },\n\n doSearch() {\n this.onPullingDown();\n },\n\n //清空选择\n toggleSelection() {\n this.$refs.multipleTable.clearSelection();\n },\n\n handleSelectionChange(ev, row) {\n let select = \"\";\n let val = [];\n if (this.mutil || this.selectOne) {\n //视图选择框多选\n val = this.selectedDocIds;\n if (ev.target.checked && val.length > 0) {\n for (let i = 0; i < val.length; i++) {\n if (val[i] == row.id) {\n this.selectRow.push(row);\n }\n }\n } else {\n for (let j = 0; j < this.selectRow.length; j++) {\n if (row.id == this.selectRow[j].id) {\n this.selectRow.splice(j, 1);\n }\n }\n }\n this.selectRow.forEach(item => {\n select += item.id + \";\";\n });\n } else if (!this.mutil && !this.selectOne && this.isView) {\n //视图选择框单选\n let radioArr = [];\n radioArr.push(row);\n this.selectRow = radioArr;\n select = this.selectedRadioDocIds;\n val.push(this.selectedRadioDocIds);\n } else {\n //非视图选择框时\n val = this.selectedDocIds;\n }\n let params = {\n linkType: \"00\",\n appId: this.$root.appid,\n actionContent: row.formId,\n _select: select,\n viewId: this.view.id\n };\n if(this.isView) { //当是视图选择框时\n this.$emit(\"updateViewData\", params, this.selectRow, val);\n }else {\n this.$emit(\"updateDeletegateData\", val);\n }\n // if (this.$parent.$parent.$parent.checkboxVal) {\n // this.$parent.$parent.$parent.checkboxVal(params, this.selectRow, val);\n // } else if (this.$parent.checkboxVal) {\n // this.$parent.checkboxVal(val);\n // }\n },\n\n //全选\n onChangeAll() {\n if (this.checkedState==true) {\n this.selectedDocIds = [];\n for (let i = 0; i < this.documents.length; i++) {\n this.selectedDocIds.push(this.documents[i].id);\n }\n }else if(this.checkedState=='state'){\n this.selectedDocIds = this.selectedDocIds;\n }else if(this.checkedState==false){\n this.selectedDocIds = [];\n }\n this.$emit(\"action\", this.selectedDocIds);\n },\n\n onRowClick(row) {\n let transform = document.getElementsByClassName('scroll-content')[0].style.transform; //获取滚动条的transform值 'translate(0px, -613px) scale(1) translateZ(0px)'\n this.scrollTranslateY = transform.slice(transform.indexOf(' ')+1,transform.indexOf(')')) //截取y值\n this.scrollTranslateY = this.scrollTranslateY.replace('px','') //px去掉\n let scrollTranslateY = this.scrollTranslateY;\n this.$store.commit('saveScrollTranslateY', scrollTranslateY) //记录视图滚动条位置\n let view = this.view;\n let openParams = this.openParams;\n if(view.readonly || view.readOnlyShowValOnly) {\n return\n }else {\n let formId;\n if(view.displayType && view.displayType == \"templateForm\") { //判断是模板表单还是数据源表单\n formId = view.templateForm;\n }else {\n formId = row.formId;\n }\n if(!this.isView) {//视图选择框点击时不执行下面步骤\n this.$api.hasPermissionToForm(this.$root.appid, formId, {\n onSucess: response => {\n if(response.data.data) {\n let params = {\n linkType: \"00\",\n appId: this.$root.appid,\n actionContent: formId,\n _select: row.id,\n viewId: view.id,\n newDoc: false,\n parentId: openParams.parentId?openParams.parentId:'', //包含元素时判断是否有parentId\n isRelate: openParams.isRelate?openParams.isRelate:'', //包含元素时判断isRelate是否为true\n searchData: this.searchData,\n showtype: this.showtype,\n templateForm: view.templateForm ? view.templateForm:'', //模板表单携带的formId\n realformId: row.formId, //有模板表单时,原本真实的formId\n };\n if(this.showtype == \"include\" || this.showtype == \"tab\") {\n this.$parent.toNormalform(params,this.includeDisplayType);\n }else {\n if (view.openType == 1 || view.openType == 277 || view.openType == 293) { //293 \n this.$router.push({ name: \"open\", query: params }); \n } else if (view.openType == 288) {\n this.$router.push({ name: \"open\", query: params }); \n }\n }\n \n }else {\n Toast(this.$t('notPermission'))\n }\n }\n })\n }\n }\n \n },\n\n //o-action跳转\n calctextJump(routeParams){\n if(this.showtype == 'include' || this.showtype == 'tab') {\n this.$parent.onHandlerOaction(routeParams.query)\n }else{\n this.$router.push(routeParams)\n }\n },\n\n //正则转换值\n regReplace(value, formField) {\n if(formField && formField === 'WeixinGpsField'){ //GPS定位控件\n if(value) {\n let addressData = JSON.parse(value);\n if(addressData.address) {\n return addressData.address;\n }else {\n return '';\n }\n }\n }else {\n if(value){\n return value.replace(/%/g, \"%\")\n }\n }\n \n },\n\n viewFieldPath(value, field) {\n if (value && field == \"ImageUploadField\") {\n // let arr = JSON.parse(value);\n // let name = \"\";\n // if (arr && arr.length > 0) {\n // for (let i = 0; i < arr.length; i++) {\n // name += arr[i].name + \";\";\n // }\n // }\n // name = name.replace(/^(\\s|;)+|(\\s|;)+$/g, \"\");\n // return name;\n return obpmConfig.obpmFilePath + value.path;\n } else if (value && field == \"AttachmentUploadField\") {\n let arr = JSON.parse(value);\n let name = \"\";\n if (arr && arr.length > 0) {\n for (let i = 0; i < arr.length; i++) {\n name += arr[i].name + \";\";\n }\n }\n name = name.replace(/^(\\s|;)+|(\\s|;)+$/g, \"\");\n let filesNumber = arr.length;\n let obj = {\n filesNumber,\n name,\n }\n return obj;\n }else if(value && field == \"GenericWordField\") { \n let obj = JSON.parse(value);\n return obj.filename;\n }\n },\n //列表视图在线拍照控件显示的图片\n viewPhotoPath(value,field) {\n if(value && field == \"OnLineTakePhotoField\") {\n if(value.charAt(0) == '[') {\n value = value.replace(/"/g,\"\\\"\")\n let onlinePhotoPath = eval('(' + value+ ')');\n let list = onlinePhotoPath;\n for (let i = 0; i < list.length; i++) {\n list[i] = obpmConfig.obpmFilePath + list[i];\n }\n return list\n }\n else {\n //默认保存的value是字符串\"/resource/image/photo.png\"\n value = obpmConfig.obpmFilePath + value\n let defaultArr = []\n defaultArr.push(value)\n return defaultArr\n }\n }\n },\n\n\n /*number 需要保留小数的数\n fractionDigits 保留小数位数\n */\n toFixed(number, fractionDigits) {\n var times = Math.pow(10, fractionDigits);\n var roundNum = Math.round(number * times) / times;\n return roundNum.toFixed(fractionDigits);\n },\n /* number:要格式化的数字\n * decimals:保留几位小数 默认0位\n * currency:货币类型\n * decPoint:小数点符号 默认.\n * thousandsSep:千分位符号 默认为,\n */\n currencyChange(number, decimals,currency,decPoint = '.',thousandsSep = ',') {\n number = (number + \"\").replace(/[^0-9+-Ee.]/g, \"\");\n let n = !isFinite(+number) ? 0 : +number;\n let prec = !isFinite(+decimals) ? 0 : Math.abs(decimals);\n let sep = typeof thousandsSep === \"undefined\" ? \",\" : thousandsSep;\n let dec = typeof decPoint === \"undefined\" ? \".\" : decPoint;\n let s = \"\";\n let symbol;\n if(currency ==\"zh_CN\"){\n symbol = \"¥\"\n }else if(currency ==\"en_US\"){\n symbol = \"$\"\n }else if(currency ==\"en_GB\"){\n symbol = \"£\"\n }else if(currency ==\"ja_JP\"){\n symbol = \"¥\"\n }else{\n symbol = \"\"\n }\n let toFixedFix = function(n, prec) {\n let k = Math.pow(10, prec);\n return \"\" + Math.ceil(n * k) / k;\n };\n s = (prec ? toFixedFix(n, prec) : \"\" + Math.round(n)).split(\".\");\n let re = /(-?\\d+)(\\d{3})/;\n while (re.test(s[0])) {\n s[0] = s[0].replace(re, \"$1\" + sep + \"$2\");\n }\n if ((s[1] || \"\").length < prec) {\n s[1] = s[1] || \"\";\n s[1] += new Array(prec - s[1].length + 1).join(\"0\");\n }\n return symbol+s.join(dec);\n },\n\n /*\n * 脚本,o-action\n */\n template(val) {\n if(val) {\n console.log(val)\n return {\n methods: {\n calctextJump: this.calctextJump,\n },\n template: \"
\"+val+\"
\"\n }\n }else {\n return {\n template: \"
\"\n }\n }\n \n },\n }\n};\n",null]}