{"remainingRequest":"/data/jenkins/workspace/test-v5inweb-5.x-vue/node_modules/thread-loader/dist/cjs.js!/data/jenkins/workspace/test-v5inweb-5.x-vue/node_modules/babel-loader/lib/index.js!/data/jenkins/workspace/test-v5inweb-5.x-vue/node_modules/cache-loader/dist/cjs.js??ref--0-0!/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_gridview.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/test-v5inweb-5.x-vue/src/components/view_gridview.vue","mtime":1739760944326},{"path":"/data/jenkins/workspace/test-v5inweb-5.x-vue/babel.config.js","mtime":1739760943855},{"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/thread-loader/dist/cjs.js","mtime":499162500000},{"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":["import \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.object.keys\";\nimport _typeof from \"/data/jenkins/workspace/test-v5inweb-5.x-vue/node_modules/@babel/runtime-corejs2/helpers/esm/typeof.js\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.object.values\";\nimport form_searchform from \"@/components/form_searchform.vue\";\nimport activity from \"@/components/activity.vue\";\nimport mdialog from \"@/components/dialog.vue\";\nimport API from \"@/api.js\";\nimport Constant from \"@/Constant.js\";\nimport Watermark from \"@/assets/js/watermark\";\nimport isJSON from \"@/assets/js/isJSON.js\";\nexport default {\n name: \"view-gridview\",\n props: [\"openParams\", \"view\", \"showtype\", \"isIncludeViewRefresh\", \"isFormPrint\", \"fixationHeight\", \"includeDisplayType\"],\n components: {\n form_searchform: form_searchform,\n activity: activity,\n mdialog: mdialog\n },\n data: function data() {\n return {\n Constant: Constant,\n rowdatas: {},\n status: {},\n //存放编辑状态\n currentPage: 1,\n tableData: [],\n tableHeight: document.documentElement.clientHeight - 55 - 15 - 45 - 50 - 18 - 20 - 2,\n // 55: 按钮 15:padding 45:tabs(padding-top) 50: header 18:table的padding 20:padding-bottom 2: border\n row_count: 0,\n dataList: [],\n formdata: \"\",\n newBuild: \"\",\n currentFormData: [],\n selectDocId: [],\n allFormdata: [],\n newBuildDocId: [],\n isZomm: true,\n viewGridviewZomm: {\n position: \"fixed\",\n top: \"93px\",\n left: \"225px\",\n zIndex: \"2000\",\n backgroundColor: \"#fff\"\n },\n tdWidth: \"\",\n subDocuments: [],\n totalColumnWidth: \"\",\n //网格视图所有视图列都有设置列宽的总和\n activityBtns: []\n };\n },\n computed: {\n pagesize: function pagesize() {\n return this.view.data ? this.view.data.page_lines : 0;\n },\n listenSaveSubDocments: function listenSaveSubDocments() {\n return this.$store.state.saveSubDocments;\n }\n },\n watch: {\n listenSaveSubDocments: function listenSaveSubDocments(newVal) {\n //如果是包含元素打开标签页,返回或者关闭页签时刷新视图\n var op = this.openParams;\n if (Object.values(newVal).length > 0 && newVal.docId === op.docId) {\n var subDoc = this.setSaveDoc() || [];\n subDoc = JSON.parse(JSON.stringify(subDoc));\n if (subDoc && subDoc.length > 0) {\n this.$store.commit(\"SET_SUBDOCUMENTS_DATA\", {\n sourceDocId: op.docId,\n currentViewFormId: subDoc[0].formId,\n saveData: subDoc\n });\n }\n // if(afd && afd.length > 0) {\n // afd.forEach(item => {\n // let bfd = this.buildFormData(true, item.data)\n // formId = bfd.formId\n // let saveData = {\n // edit: true,\n // formId: bfd.formId,\n // id: bfd.id,\n // items: bfd.items\n // }\n // if(op.parentId) {\n // saveData.parentId = op.parentId\n // }\n // if(op.isRelate) {\n // saveData.isRelate = \"true\"\n // }\n // subDoc.push(saveData)\n // });\n // this.$store.commit(\"SET_SUBDOCUMENTS_DATA\", {\n // sourceDocId: op.docId,\n // currentViewFormId: formId,\n // saveData: subDoc\n // })\n // }\n }\n }\n },\n created: function created() {\n var _this = this;\n var view = this.view;\n if (view.activities && view.activities.length > 0) {\n var _arr = [];\n var iType = this.includeDisplayType;\n if (iType == Constant.PermissionType_READONLY || iType == Constant.PermissionType_DISABLED) {\n //只读状态下。某些按钮隐藏\n view.activities.forEach(function (el) {\n if (el.type != 34) {\n _arr.push(el);\n }\n });\n this.activityBtns = _arr;\n } else {\n this.activityBtns = view.activities;\n }\n }\n var columns = JSON.parse(JSON.stringify(view.columns));\n var count = 0; //网格视图有设置视图列宽度的个数\n for (var i = 0; i < columns.length; i++) {\n if (columns[i].width) {\n count = count + 1;\n }\n }\n if (count == columns.length) {\n //只有当网格所有的视图列的宽度都有设置宽度时totalColumnWidth才会有值\n this.totalColumnWidth = Number(this.totalColumnWidth);\n for (var x = 0; x < columns.length; x++) {\n this.totalColumnWidth = this.totalColumnWidth + Number(columns[x].width);\n }\n this.totalColumnWidth = this.totalColumnWidth + 100 + 50 + \"px\"; //100是操作的宽度,50是打勾的宽度\n }\n columns.forEach(function (el, i) {\n if (el.hiddenColumn) {\n columns.splice(i, 1);\n i--;\n }\n });\n var activities = JSON.parse(JSON.stringify(view.activities));\n activities.forEach(function (el, i) {\n if (el.type == 18) {\n activities.splice(i, 1);\n i--;\n }\n });\n this.view.columns = columns;\n this.view.activities = activities;\n // let id = \"delegate_\" + this.openParams.actionContent;\n var id = \"formTemplate_\" + this.openParams.docId;\n this.$nextTick(function () {\n var dom = document.getElementById(id);\n if (dom) {\n var totalWidth = dom.clientWidth - 40;\n var averageWidth = Math.floor(totalWidth / _this.view.columns.length);\n _this.tdWidth = averageWidth > 130 ? averageWidth : 130;\n }\n });\n },\n mounted: function mounted() {\n this.getData();\n },\n updated: function updated() {\n //更新生命周期触发\n this.$refs.multipleTable && this.$refs.multipleTable.doLayout(); //重新刷新页面解决fix固定列问题\n },\n methods: {\n checkbox: function checkbox(row) {\n if (row.row.isSum) {\n //当前页小计\n return \"mycell isSum\";\n }\n if (row.row.isTotal) {\n //总计\n return \"mycell isTotal\";\n }\n },\n onRowClick: function onRowClick(row) {\n if (!row.isTotal && !row.isSum) {\n this.doEdit(row, this.view.columns, row.index);\n }\n },\n //视图列类型-操作\n template: function template(val) {\n return {\n methods: {\n // calctextJump: this.calctextJump,\n },\n template: \"
\" + val + \"
\"\n };\n },\n previewFile: function previewFile(item) {\n var url = obpmConfig.obpmFilePath + item.path;\n window.open(url);\n },\n downloadFile: function downloadFile(file) {\n //列表文件下载\n // let link = document.createElement('a')\n // link.style.display = 'none'\n // link.href = this.obpmConfig.obpmFilePath +\n // \"/runtime/file/download?filename=\"+ file.name +\n // \"&filepath=\" + file.path;\n // link.setAttribute('download', file.name);\n // link.click();\n var link = document.createElement(\"a\");\n link.style.display = \"none\";\n var op = obpmConfig.obpmFilePath;\n var statiContextPath = obpmConfig.statiContextPath;\n if (statiContextPath) {\n //5.0 trunk\n op = obpmConfig.contextPath;\n }\n link.href = op + \"/runtime/file/download?filename=\" + file.name + \"&filepath=\" + file.path;\n link.setAttribute(\"download\", file.name);\n link.click();\n },\n handlePreview: function handlePreview(file) {\n var _this2 = this;\n this.$api.getenvironment({\n onSucess: function onSucess(res) {\n if (res.data.errcode === 0) {\n if (res.data.data === true) {\n var realName = file.path.split(\"/\")[file.path.split(\"/\").length - 1];\n var isEdit = \"edit\";\n var waterMark = \"\";\n var openWaterMark = false;\n var curEditUserId = _this2.$store.state.myProfile.id;\n var userName = _this2.$store.state.myProfile.name;\n var showTrackRevisions = false;\n var selectEditPlug = \"tray\";\n var cp = obpmConfig.obpmFilePath;\n sessionStorage.setItem(\"obpmContextPath\", cp);\n var statiContextPath = obpmConfig.statiContextPath;\n var pdfPath = \"\";\n if (statiContextPath) {\n //5.0 trunk\n pdfPath = obpmConfig.statiContextPath;\n } else {\n //4.4 stable\n pdfPath = cp;\n }\n var url = pdfPath + \"/portal/vue/pdf/pdfviewer.html?action=\" + isEdit + \"&path=\" + file.path + \"&name=\" + realName + \"&showName=\" + file.name + \"&waterMark=\" + waterMark + \"&openWaterMark=\" + openWaterMark + \"&curEditUserId=\" + curEditUserId + \"&userName=\" + userName + \"&showTrackRevisions=\" + showTrackRevisions + \"&selectEditPlug=\" + selectEditPlug;\n var URL = encodeURI(url);\n window.open(URL);\n }\n }\n }\n });\n },\n /**\n 点击文件直接预览\n */\n handleFileClick: function handleFileClick(flie) {\n var flieType = flie.name.substring(flie.name.lastIndexOf(\".\")).toLowerCase();\n var imgType = this.isImgType(flieType);\n if (imgType) {\n this.isShowImg = true;\n this.addHtml = \"\";\n } else {\n this.handlePreview(flie);\n }\n },\n /**\n * 判断是否是图片类型\n */\n isImgType: function isImgType(extName) {\n switch (extName) {\n case \".jpg\":\n case \".jpeg\":\n case \".png\":\n case \".gif\":\n case \".bmp\":\n return true;\n default:\n return false;\n }\n },\n isJson: function isJson(str) {\n return isJSON(str);\n },\n filterHandler: function filterHandler(value, row, column) {\n var property = column[\"property\"];\n return row[property][0] === value;\n },\n getIconMapping: function getIconMapping(val, keyVal) {\n var valObj = JSON.parse(val);\n for (var i = 0; i < valObj.length; i++) {\n if (valObj[i].key == keyVal) {\n return valObj[i].key;\n }\n }\n },\n //视图列按钮操作\n buttonClick: function buttonClick(column, row) {\n var _this3 = this;\n var id = column.id,\n parentView = column.parentView,\n type = column.buttonType,\n name = column.name,\n docId = row.docId,\n actionScript = column.actionScript,\n mappingform = column.mappingform,\n jumpMapping = column.jumpMapping;\n var params = \"\";\n var data = {\n actionScript: actionScript,\n columnName: name,\n docId: docId\n };\n switch (type //type为操作类型\n ) {\n case \"00\":\n this.$api.beforescript(this.openParams.appId, parentView, id, data, {\n onSucess: function onSucess(res) {\n if (res.data.errcode == 0) {\n if (res.data.data) {\n var resData = res.data.data;\n if (!resData.type) {} else if (resData.type == 32) {\n _this3.$confirm(\"\".concat(resData.content), _this3.$t(\"tip\"), {\n confirmButtonText: _this3.$t(\"msg.confirm\"),\n cancelButtonText: _this3.$t(\"btns.cancel\"),\n type: \"warning\"\n }).then(function () {\n var arr = [];\n arr.push(docId);\n _this3.$api.batchRemoveDocuments(_this3.openParams.appId, arr, {\n onSucess: function onSucess(res) {\n _this3.getData();\n }\n });\n }).catch(function () {});\n }\n } else {\n _this3.$confirm(_this3.$t(\"msg.deldata\"), _this3.$t(\"tip\"), {\n confirmButtonText: _this3.$t(\"msg.confirm\"),\n cancelButtonText: _this3.$t(\"btns.cancel\"),\n type: \"warning\"\n }).then(function () {\n var arr = [];\n arr.push(docId);\n _this3.$api.batchRemoveDocuments(_this3.openParams.appId, arr, {\n onSucess: function onSucess(res) {\n _this3.getData();\n }\n });\n }).catch(function () {});\n }\n }\n }\n });\n break;\n case \"01\":\n var isSubmissionProcess = true;\n this.$parent.viewColumnSubmission(isSubmissionProcess, docId);\n break;\n case \"02\":\n break;\n case \"03\":\n params = {\n linkType: \"00\",\n appId: this.openParams.appId,\n actionContent: column.templateForm,\n _select: docId,\n name: name,\n refreshId: this.openParams.id\n };\n if (this.showtype === \"include\" || this.showtype === \"tab\") {\n this.toTab(params);\n } else {\n this.$emit(\"add-tab\", params);\n }\n break;\n case \"04\":\n this.$api.runActionScript(this.openParams.appId, parentView, id, data, {\n onSucess: function onSucess(res) {\n if (res.data.errcode == 0) {\n if (res.data.data) {\n var _data = res.data.data;\n if (_data.type == \"1\") {\n _this3.$message(_data.content);\n }\n if (!_data.type) {\n _this3.$message(_data);\n }\n } else {\n _this3.$emit(\"updateView\");\n _this3.$message({\n showClose: true,\n message: _this3.$t(\"success\"),\n type: \"success\"\n });\n }\n }\n }\n });\n break;\n case \"05\":\n var emptyParams = \"\";\n var _arr2 = [];\n if (jumpMapping) {\n var map = jumpMapping.split(\";\");\n if (map.length > 0) {\n for (var i = 0; i < map.length; i++) {\n var currentObj = map[i].split(\":\");\n var obj = {};\n for (var key in row) {\n if (currentObj[1] === key) {\n obj[currentObj[0]] = row[key];\n _arr2.push(obj);\n }\n }\n }\n }\n }\n if (_arr2.length > 0) {\n emptyParams = _arr2;\n }\n params = {\n linkType: \"00\",\n appId: this.openParams.appId,\n active: true,\n actionContent: mappingform,\n name: this.view.name,\n refreshId: this.openParams.id,\n title: \"\",\n type: 277\n };\n this.$parent.openForm(params, emptyParams);\n break;\n }\n },\n tableRowClassName: function tableRowClassName(_ref) {\n var row = _ref.row,\n rowIndex = _ref.rowIndex;\n row.index = rowIndex;\n if (rowIndex % 2 != 0) {\n return \"table-row-color\";\n } else {\n return \"\";\n }\n },\n onClickZoom: function onClickZoom() {\n var el = document.getElementById(\"mainHomeContent\");\n var delegateWidth = el.getBoundingClientRect().width - 16,\n delegateHeight = el.getBoundingClientRect().height - 40;\n this.viewGridviewZomm.width = delegateWidth + \"px\";\n this.viewGridviewZomm.height = delegateHeight + \"px\";\n this.isZomm = !this.isZomm;\n },\n setSubDocuments: function setSubDocuments() {\n var editRow = [];\n if (this.newBuildDocId && this.newBuildDocId.length > 0) {\n //(this.newBuildDocId的数组有问题,未去重)该方法判断如果不是新建的行数据,那么编辑确定后行数据放到editRow数组中\n for (var i = 0; i < this.newBuildDocId.length; i++) {\n for (var j = 0; j < this.tableData.length; j++) {\n if (this.newBuildDocId[i] === this.tableData[j].docId) {\n editRow.push(this.tableData[j]);\n }\n }\n }\n }\n for (var _i = 0; _i < editRow.length; _i++) {\n //判断原有的行数据编辑后,赋予到this.dataList中,改变值,新建的数据不用赋予到this.dataList\n for (var _j = 0; _j < this.dataList.length; _j++) {\n if (editRow[_i].docId === this.dataList[_j].id) {\n for (var key in editRow[_i]) {\n for (var el in this.dataList[_j].items) {\n if (key === el) {\n this.dataList[_j].items[el].value = editRow[_i][key][0];\n }\n }\n }\n }\n }\n }\n // for (let i = 0; i < this.tableData.length; i++) { //当table有数据,对数据编辑时,新的数据给旧的数据\n // for (let j = 0; j < this.dataList.length; j++) {\n // if (this.tableData[i].docId === this.dataList[j].id) {\n // for (let key in this.tableData[i]) {\n // for (let el in this.dataList[j].items) {\n // if (key === el) {\n // this.dataList[j].items[el].value = this.tableData[i][key][0];\n // }\n // }\n // }\n // }\n // }\n // }\n var arr = [];\n for (var _i2 = 0; _i2 < this.dataList.length; _i2++) {\n var obj = JSON.parse(JSON.stringify(this.dataList[_i2]));\n obj.items = {};\n for (var _j2 = 0; _j2 < this.view.columns.length; _j2++) {\n for (var _key in this.dataList[_i2].items) {\n if (_key == this.view.columns[_j2].id) {\n // obj.items[this.view.columns[j].name] = this.dataList[i].items[\n // key\n // ].value;\n obj.items[this.dataList[_i2].items[_key].name] = this.dataList[_i2].items[_key].value;\n }\n }\n }\n arr.push(obj);\n }\n for (var _i3 = 0; _i3 < arr.length; _i3++) {\n if (arr[_i3].id) {\n arr[_i3].edit = true;\n arr[_i3].isRelate = this.openParams.isRelate.toString();\n delete arr[_i3].isRunningBack;\n arr[_i3].parentId = this.openParams.parentId; //2020-10-22,执行前脚本错误,注释这里\n } else {\n arr.splice(_i3, 1);\n _i3--;\n }\n }\n return arr;\n },\n getData: function getData(page) {\n var _this4 = this;\n this.getViewData(page).then(function (response) {\n // response.data.data.forEach((item,index) => { //网格视图不显示后台配置好的汇总(当前页小计,总计)属性\n // if(item.isSum) {\n // response.data.data.splice(index,1)\n // }\n // })\n var docs = response.data.data;\n _this4.dataList = response.data.data;\n _this4.row_count = response.data.row_count;\n var tds = [];\n if (docs.length > 0) {\n docs.forEach(function (doc, index) {\n var rows = {};\n var newBuild = {};\n rows.formId = doc.formId;\n rows.docId = doc.id;\n if (doc.isSum) {\n rows.isSum = doc.isSum;\n }\n if (doc.isTotal) {\n rows.isTotal = doc.isTotal;\n }\n newBuild.formId = doc.formId;\n newBuild.docId = doc.id;\n for (var key in doc.items) {\n var items = doc.items[key];\n //rows[key] = items.value;\n rows[key] = [];\n rows[key].push(items.value);\n newBuild[key] = [];\n newBuild[key].push(\"\");\n }\n if (!doc.isSum && !doc.isTotal) {\n _this4.newBuild = newBuild;\n }\n tds.push(rows);\n });\n } else {\n var newBuild = {};\n for (var i = 0; i < _this4.view.columns.length; i++) {\n newBuild[_this4.view.columns[i].id] = [];\n newBuild[_this4.view.columns[i].id].push(\"\");\n }\n _this4.newBuild = newBuild;\n }\n if (!_this4.newBuild) {\n //如果是有总计\n var _newBuild = {};\n for (var _i4 = 0; _i4 < _this4.view.columns.length; _i4++) {\n _newBuild[_this4.view.columns[_i4].id] = [];\n _newBuild[_this4.view.columns[_i4].id].push(\"\");\n }\n _this4.newBuild = _newBuild;\n }\n var columns = _this4.view.columns;\n columns.forEach(function (el) {\n var filtersList = [];\n docs.forEach(function (items) {\n for (var key in items.items) {\n if (key == el.id) {\n var obj = {};\n obj.text = items.items[key].value;\n obj.value = items.items[key].value;\n filtersList.push(obj);\n }\n }\n });\n filtersList = _this4.deteleObject(filtersList);\n el.filtersList = filtersList;\n });\n _this4.tableData = tds;\n _this4.$nextTick(function () {\n if (_this4.view.showWaterMark === true) {\n if (_this4.view.waterMarkText) {\n //判断是否显示水印\n var val = _this4.view.waterMarkText;\n var id = \"view_\" + _this4.view.id;\n Watermark.set(val, id);\n }\n }\n });\n });\n },\n //模拟数据请求\n getViewData: function getViewData(page) {\n var _this5 = this;\n var openParams = this.openParams;\n var treeData = \"\";\n var treeName = \"\";\n var searchData = {};\n if (this.parentId) {\n //树形视图\n return new Promise(function (resolve) {\n _this5.$api.getTreeViewData(\n //树形视接口\n _this5.openParams.appId, _this5.openParams.actionContent, {\n parentId: _this5.parentId ? _this5.parentId : \"\"\n }, treeData, treeName, {\n onSucess: function onSucess(response) {\n var treeViewData = response.data;\n resolve(treeViewData);\n }\n });\n });\n } else if (this.openParams && this.openParams.parentId) {\n //包含元素时\n return new Promise(function (resolve) {\n _this5.$api.getViewData(\n //普通视图接口\n _this5.openParams.appId, _this5.view.id, {\n parentId: _this5.openParams.parentId,\n isRelate: _this5.openParams.isRelate,\n currpage: page ? page : _this5.currentPage,\n lines: _this5.view.data ? _this5.view.data.page_lines : 2000,\n searchWord: \"\"\n }, {}, {\n onSucess: function onSucess(response) {\n var viewData = response.data;\n resolve(viewData);\n }\n });\n });\n } else {\n if (openParams.queryString) {\n searchData = this.setParams(openParams.queryString, searchData);\n }\n var urlParams = openParams.urlParams;\n if (urlParams) {\n searchData = this.setParams(urlParams, searchData);\n }\n if (openParams.exparams) {\n searchData = this.setParams(openParams.exparams, searchData);\n }\n if (openParams.formParams) {\n searchData = this.setParams(openParams.formParams, searchData);\n }\n return new Promise(function (resolve) {\n _this5.$api.getViewData(\n //普通视图接口\n _this5.openParams.appId, _this5.view.id, {\n parentId: _this5.parentId ? _this5.parentId : \"\",\n currpage: page ? page : _this5.currentPage,\n lines: _this5.view.data ? _this5.view.data.page_lines : 2000,\n searchWord: \"\"\n }, searchData ? searchData : {}, {\n onSucess: function onSucess(response) {\n var viewData = response.data;\n resolve(viewData);\n }\n });\n });\n }\n },\n setParams: function setParams(params, obj) {\n params = params.replace(/^(\\s|&)+|(\\s|&)+$/g, \"\");\n var list = params.split(\"&\");\n for (var i = 0; i < list.length; i++) {\n var p = list[i].split(\"=\");\n var isJson = this.isJSON(p[1]);\n if (isJson) {\n obj[p[0]] = encodeURI(p[1]); //encodeURIComponent(p[1])\n } else {\n obj[p[0]] = p[1] ? p[1] : \"\";\n }\n }\n return obj;\n },\n isJSON: function isJSON(str) {\n //判断是json字符串\n if (typeof str == \"string\") {\n try {\n var 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 onPageChang: function onPageChang(ev) {\n var page = ev;\n this.getData(page);\n //this.$refs.searchform.onSearchClick();\n },\n onSearch: function onSearch(searchData) {\n this.$parent.initView({\n appId: this.openParams.appId,\n viewId: this.openParams.actionContent,\n data: searchData,\n exparams: {\n currpage: this.currentPage,\n lines: this.pagesize\n }\n });\n },\n //进入编辑状态\n doEdit: function doEdit(row, column, index, isNewBuild) {\n var _this6 = this;\n if (!isNewBuild) {\n // let newBuildDocId = {};\n // newBuildDocId.docId = row.docId;\n this.newBuildDocId.push(row.docId);\n }\n var op = this.openParams;\n var objParams = {};\n if (op.isRelate === true || op.isRelate === 'true') {\n //包含原素或者标签也新建可能会携带isRelate和parentId,需要传到后台\n objParams.isRelate = 'true';\n } else {\n objParams.isRelate = op.isRelate;\n }\n if (op.parentId) {\n objParams.parentId = op.parentId;\n }\n API.getForm(op.appId, this.view.relatedForm ? this.view.relatedForm : row.formId, row.docId, objParams, {\n onSucess: function onSucess(response) {\n var fields, formdata;\n if (row.data) {\n fields = row.data.fields;\n formdata = row.data;\n _this6.formdata = formdata;\n } else {\n fields = response.data.data.fields;\n formdata = response.data.data;\n _this6.formdata = formdata;\n if (isNewBuild) {\n var obj = {};\n var _loopOpe = function _loopOpe(fields) {\n for (var i = 0; i < fields.length; i++) {\n for (var j = 0; j < _this6.view.columns.length; j++) {\n if (fields[i].divId === _this6.view.columns[j].fieldId) {\n obj[_this6.view.columns[j].id] = fields[i];\n }\n if (fields[i].tabs && fields[i].tabs.length > 0) {\n fields[i].tabs.forEach(function (tab) {\n if (tab.fields) {\n _loopOpe(tab.fields);\n }\n });\n }\n }\n }\n };\n _loopOpe(formdata.fields);\n var newRow = {\n id: row.docId,\n edit: true,\n // formId: row.formId,\n formId: formdata.fields[0].formId,\n items: obj,\n formName: _this6.$t(\"view.view_type\")\n };\n _this6.dataList.push(newRow);\n }\n }\n var eachLine = {\n docId: row.docId,\n data: _this6.formdata\n };\n if (isNewBuild) {\n eachLine.isNewBuild = true;\n }\n if (_this6.allFormdata.length > 0) {\n //每次编辑或者新建把formdata放进这里\n var result = _this6.allFormdata.some(function (item) {\n if (item.docId === eachLine.docId) {\n return true;\n }\n });\n if (result) {\n for (var i = 0; i < _this6.allFormdata.length; i++) {\n if (_this6.allFormdata[i].docIds === eachLine.docId) {\n _this6.allFormdata[i].data = eachLine.data;\n }\n }\n } else {\n _this6.allFormdata.push(eachLine);\n }\n } else {\n _this6.allFormdata.push(eachLine);\n }\n var docId = \"\";\n var loopOpe = function loopOpe(fields) {\n var _loop = function _loop(item) {\n var _loop2 = function _loop2() {\n if (item == column[_i5].id) {\n //this.view.columns[i].control = formdata;\n var controlName = row.docId + \"_\" + column[_i5].fieldName;\n fields.forEach(function (fld) {\n var template = \"\";\n //网格视图的表单的样式在这里写个class,通过class去_view.scss的.gridview-box里面添加样式\n if (fld.formField == \"InputField\") {\n template = \"
\";\n } else if (fld.formField == \"RadioField\") {\n template = \"
\";\n } else if (fld.formField == \"CheckboxField\") {\n template = \"
\";\n } else if (fld.formField == \"SelectField\") {\n template = \"
\";\n } else if (fld.formField == \"IncludeField\") {\n template = \"
\";\n } else if (fld.formField == \"TextareaField\") {\n template = \"
\";\n } else if (fld.formField == \"DateField\") {\n template = \"
\";\n } else if (fld.formField == \"UserField\") {\n template = \"
\";\n } else if (fld.formField == \"DepartmentField\") {\n template = \"
\";\n } else if (fld.formField == \"ImageUploadField\") {\n template = \"
\";\n } else if (fld.formField == \"AttachmentUploadField\") {\n template = \"
\";\n } else if (fld.formField == \"QRCodeField\") {\n template = \"
\";\n } else if (fld.formField == \"TreeDepartmentField\") {\n template = \"
\";\n } else if (fld.formField == \"SelectAboutField\") {\n template = \"
\";\n } else if (fld.formField == \"HTMLEditorField\") {\n template = \"
\";\n } else if (fld.formField == \"SurveyField\") {\n template = \"
\";\n } else if (fld.formField == \"FlowHistoryField\") {\n template = \"
\";\n } else if (fld.formField == \"ButtonField\") {\n template = \"
\";\n } else if (fld.formField == \"ViewDialogField\") {\n template = \"
\";\n } else if (fld.formField == \"TabField\") {\n template = \"
\";\n } else if (fld.formField == \"GenericWordField\") {\n template = \"
\";\n } else if (fld.formField == \"WeixinGpsField\") {\n template = \"
\";\n } else if (fld.formField == \"CalctextField\") {\n template = \"
\";\n } else if (fld.formField == \"FlowReminderHistoryField\") {\n template = \"
\";\n } else if (fld.formField == \"OnLineTakePhotoField\") {\n template = \"
\";\n } else if (fld.formField == \"SuggestField\") {\n template = \"
\";\n } else if (fld.formField == \"NoField\") {\n template = \"
\";\n }\n if (fld.formField != \"IncludeField\") {\n if (controlName == fld.id) {\n var temp = {\n methods: {\n findField: function findField(controlName) {\n if (controlName == fld.id) {\n return fld;\n }\n return {\n id: fld.id,\n displayType: Constant.PermissionType_HIDDEN,\n hiddenValue: \"\"\n };\n },\n refresh: _this6.refresh,\n checkData: _this6.checkData,\n getAllFields: _this6.getAllFields\n },\n template: template\n };\n if (!_this6.tableData[index][item][1]) {\n _this6.tableData[index][item][1] = temp;\n }\n }\n }\n if (fld.tabs && fld.tabs.length) {\n fld.tabs.forEach(function (tab) {\n if (tab.fields) {\n loopOpe(tab.fields);\n }\n });\n }\n });\n }\n };\n for (var _i5 = 0; _i5 < column.length; _i5++) {\n _loop2();\n }\n };\n for (var item in row) {\n _loop(item);\n }\n };\n loopOpe(fields);\n _this6.$set(_this6.status, row.docId, 1);\n }\n });\n },\n //确定记录\n doConfirm: function doConfirm(row, column) {\n var _this7 = this;\n var buildData = \"\";\n var op = this.openParams;\n var appId = this.openParams.appId,\n id = this.openParams.parentId,\n viewId = this.view.id;\n for (var i = 0; i < this.allFormdata.length; i++) {\n if (row.docId === this.allFormdata[i].docId) {\n buildData = this.allFormdata[i].data;\n }\n }\n var jsonData = this.buildFormData(true, buildData);\n this.$api.setGridView(appId, viewId, id, jsonData, {\n onSucess: function onSucess(response) {\n if (response.data.errcode == 0) {\n var showtype = _this7.showtype;\n if (showtype && (showtype == \"include\" || showtype == \"tab\")) {\n for (var _i6 = 0; _i6 < _this7.allFormdata.length; _i6++) {\n if (row.docId === _this7.allFormdata[_i6].docId) {\n buildData = _this7.allFormdata[_i6].data;\n }\n }\n var _jsonData = _this7.buildFormData(\"isInclude\", buildData);\n if (op.isRelate === true) {\n _jsonData.isRelate = \"true\";\n }\n var loopOpe = function loopOpe(fields) {\n for (var _i7 = 0; _i7 < fields.length; _i7++) {\n var _loop3 = function _loop3() {\n if (column[j].fieldId == fields[_i7].divId) {\n if (fields[_i7].formField === \"DateField\") {\n row[column[j].id][0] = _this7.writeCurrentDate(fields[_i7].value, fields[_i7].dateFormat);\n } else if (fields[_i7].formField === \"SelectField\") {\n //某些控件有显示值,给显示显示值(未完善),编辑数据保存时,显示值保存到了后台(错了)\n var options = fields[_i7].options;\n for (var z = 0; z < options.length; z++) {\n if (options[z].value === fields[_i7].value) {\n // row[column[j].id].push(options[z].option);\n row[column[j].id][2] = options[z].option;\n }\n }\n row[column[j].id][0] = fields[_i7].value;\n } else if (fields[_i7].formField === \"DepartmentField\") {\n var valArr = \"\";\n var value = fields[_i7].value;\n var deptName = \"\";\n if (value) {\n valArr = value.split(\";\");\n }\n if (valArr && valArr.length > 0) {\n var data = fields[_i7].options;\n valArr.forEach(function (item) {\n data.forEach(function (el) {\n if (item == el.value) {\n deptName += el.option + \";\";\n }\n });\n });\n }\n deptName = deptName.replace(/^(\\s|;)+|(\\s|;)+$/g, \"\");\n row[column[j].id][0] = deptName;\n } else if (fields[_i7].formField === \"TreeDepartmentField\") {\n var _valArr = \"\";\n var _value = fields[_i7].value;\n var _deptName = \"\";\n if (_value) {\n _valArr = _value.split(\";\");\n }\n if (_valArr && _valArr.length > 0) {\n var _data2 = fields[_i7].data;\n _valArr.forEach(function (item) {\n _data2.forEach(function (el) {\n if (item == el.key) {\n _deptName += el.label + \";\";\n }\n });\n });\n }\n _deptName = _deptName.replace(/^(\\s|;)+|(\\s|;)+$/g, \"\");\n row[column[j].id][0] = _deptName;\n } else if (fields[_i7].formField === \"UserField\") {\n var _valArr2 = \"\";\n var _value2 = fields[_i7].value;\n var userName = \"\";\n if (_value2) {\n _valArr2 = _value2.split(\";\");\n }\n if (_valArr2 && _valArr2.length > 0) {\n var _data3 = fields[_i7].data;\n _valArr2.forEach(function (item) {\n _data3.forEach(function (el) {\n if (item == el.id) {\n userName += el.name + \";\";\n }\n });\n });\n }\n userName = userName.replace(/^(\\s|;)+|(\\s|;)+$/g, \"\");\n row[column[j].id][0] = userName;\n } else {\n row[column[j].id][0] = fields[_i7].value;\n }\n }\n };\n for (var j = 0; j < column.length; j++) {\n _loop3();\n }\n if (fields[_i7].tabs && fields[_i7].tabs.length > 0) {\n fields[_i7].tabs.forEach(function (tab) {\n if (tab.fields) {\n loopOpe(tab.fields);\n }\n });\n }\n }\n };\n loopOpe(buildData.fields);\n _this7.$set(_this7.status, row.docId, 0);\n if (op.isRefreshOnChanged) {\n _this7.$api.refreshView(_jsonData, {\n onSucess: function onSucess(res) {\n if (res.data.errcode === 0) {\n // let obj = {};\n // obj.data = this.setSubDocuments();\n // obj.isRefresh = this.isIncludeViewRefresh;\n // this.$store.commit(\"saveSubDocuments\", obj);\n }\n }\n });\n //this.$set(this.status, row.docId, 0);\n }\n } else {\n var allFormdata = _this7.allFormdata;\n var formdata = \"\";\n for (var z = 0; z < allFormdata.length; z++) {\n if (row.docId === allFormdata[z].docId) {\n formdata = allFormdata[z].data;\n break;\n }\n }\n for (var _i8 = 0; _i8 < formdata.fields.length; _i8++) {\n var _loop4 = function _loop4() {\n if (column[j].fieldId == formdata.fields[_i8].divId) {\n if (formdata.fields[_i8].formField === \"DateField\") {\n row[column[j].id][0] = _this7.writeCurrentDate(formdata.fields[_i8].value, formdata.fields[_i8].dateFormat);\n } else if (formdata.fields[_i8].formField === \"SelectField\") {\n var options = formdata.fields[_i8].options;\n for (var _z = 0; _z < options.length; _z++) {\n if (options[_z].value === formdata.fields[_i8].value) {\n row[column[j].id][2] = options[_z].option; ////row[column[j].id].push(options[z].option);\n }\n }\n row[column[j].id][0] = formdata.fields[_i8].value;\n } else if (formdata.fields[_i8].formField === \"DepartmentField\") {\n var valArr = \"\";\n var value = formdata.fields[_i8].value;\n var deptName = \"\";\n if (value) {\n valArr = value.split(\";\");\n }\n if (valArr && valArr.length > 0) {\n var data = formdata.fields[_i8].options;\n valArr.forEach(function (item) {\n data.forEach(function (el) {\n if (item == el.value) {\n deptName += el.option + \";\";\n }\n });\n });\n }\n deptName = deptName.replace(/^(\\s|;)+|(\\s|;)+$/g, \"\");\n row[column[j].id][0] = deptName;\n } else if (formdata.fields[_i8].formField === \"TreeDepartmentField\") {\n var _valArr3 = \"\";\n var _value3 = formdata.fields[_i8].value;\n var _deptName2 = \"\";\n if (_value3) {\n _valArr3 = _value3.split(\";\");\n }\n if (_valArr3 && _valArr3.length > 0) {\n var _data4 = formdata.fields[_i8].data;\n _valArr3.forEach(function (item) {\n _data4.forEach(function (el) {\n if (item == el.key) {\n _deptName2 += el.label + \";\";\n }\n });\n });\n }\n _deptName2 = _deptName2.replace(/^(\\s|;)+|(\\s|;)+$/g, \"\");\n row[column[j].id][0] = _deptName2;\n } else if (formdata.fields[_i8].formField === \"UserField\") {\n var _valArr4 = \"\";\n var _value4 = formdata.fields[_i8].value;\n var userName = \"\";\n if (_value4) {\n _valArr4 = _value4.split(\";\");\n }\n if (_valArr4 && _valArr4.length > 0) {\n var _data5 = formdata.fields[_i8].data;\n _valArr4.forEach(function (item) {\n _data5.forEach(function (el) {\n if (item == el.id) {\n userName += el.name + \";\";\n }\n });\n });\n }\n userName = userName.replace(/^(\\s|;)+|(\\s|;)+$/g, \"\");\n row[column[j].id][0] = userName;\n } else {\n row[column[j].id][0] = formdata.fields[_i8].value;\n }\n _this7.$set(_this7.status, row.docId, 0);\n }\n };\n for (var j = 0; j < column.length; j++) {\n _loop4();\n }\n }\n /*\n 下面那些实在没办法,先这样写了。\n */\n row.data = formdata;\n var obj = {\n docId: row.docId,\n data: formdata\n };\n _this7.currentFormData.push(obj);\n }\n } else if (response.data.errcode == 4001) {\n var promptData = \"\";\n var errcode = response.data.errcode;\n var errmsg = response.data.errmsg;\n var errorsList = response.data.errors;\n if (errorsList && errorsList.length > 0) {\n errorsList.forEach(function (item) {\n promptData += item.errmsg + \"
\";\n });\n }\n _this7.promptBox(errcode, errmsg, promptData);\n }\n }\n });\n },\n getAllFields: function getAllFields() {\n return this.formdata.fields;\n },\n //执行脚本前\n runBeforeAction: function runBeforeAction(act) {\n var _this8 = this;\n var op = this.openParams;\n var formData = {\n docId: \"\",\n document: {},\n formId: this.view.relatedForm,\n parentId: \"\",\n templateForm: this.view.templateForm,\n viewId: op.actionContent,\n _selects: this.selectDocId.length > 0 ? this.selectDocId : []\n };\n if (op.parentId) {\n formData.parentId = op.parentId;\n formData.isRelate = op.isRelate;\n }\n var divId = act.id;\n this.$api.runBeforeActionScript(this.openParams.appId, divId, formData, act.type, \"\",\n //treedocid\n \"\",\n //flowType\n {\n onSucess: function onSucess(response) {\n if (response.data.data) {\n //如果有数据返回,结束下一步\n var resData = response.data.data;\n var errmsg = response.data.data.content;\n if (!resData.type) {\n //没有type值,但是有返回数据,把数据放进document\n if (resData.changedField) {\n _this8.$notify.success({\n title: resData.content,\n message: \"\"\n });\n }\n } else if (resData.type == 1) {\n _this8.$notify.success({\n title: errmsg,\n message: \"\"\n });\n } else if (resData.type == 16) {\n _this8.$notify.error({\n title: errmsg,\n message: \"\"\n });\n } else if (resData.type == 32) {\n _this8.$confirm(\"\".concat(errmsg), _this8.$t(\"tip\"), {\n confirmButtonText: _this8.$t(\"msg.confirm\"),\n cancelButtonText: _this8.$t(\"btns.cancel\"),\n type: \"warning\"\n }).then(function () {\n switch (act.type) {\n case 1:\n //载入视图\n _this8.getTemplate(act);\n break;\n case 2:\n //新建表单\n _this8.doCreate(act);\n break;\n case 3:\n //删除数据\n for (var i = 0; i < _this8.selectDocId.length; i++) {\n for (var j = 0; j < _this8.dataList.length; j++) {\n if (_this8.selectDocId[i] == _this8.dataList[j].id) {\n _this8.dataList[j].delete = true;\n }\n }\n }\n for (var _i9 = 0; _i9 < _this8.selectDocId.length; _i9++) {\n for (var _j3 = 0; _j3 < _this8.tableData.length; _j3++) {\n if (_this8.selectDocId[_i9] == _this8.tableData[_j3].docId) {\n _this8.tableData.splice(_j3, 1);\n _j3--;\n }\n }\n }\n // let obj = {};\n // obj.data = this.setSubDocuments();\n // obj.isRefresh = this.isIncludeViewRefresh;\n // this.$store.commit(\"saveSubDocuments\", obj);\n break;\n case 34:\n _this8.doSave(act);\n break;\n default:\n _this8.getTemplate(act);\n break;\n }\n }).catch(function () {});\n }\n } else {\n if (act.type == 2) {\n _this8.doCreate(act);\n } else if (act.type == 3) {\n for (var i = 0; i < _this8.selectDocId.length; i++) {\n for (var j = 0; j < _this8.dataList.length; j++) {\n if (_this8.selectDocId[i] == _this8.dataList[j].id) {\n _this8.dataList[j].delete = true;\n }\n }\n }\n for (var _i10 = 0; _i10 < _this8.selectDocId.length; _i10++) {\n for (var _j4 = 0; _j4 < _this8.tableData.length; _j4++) {\n if (_this8.selectDocId[_i10] == _this8.tableData[_j4].docId) {\n _this8.tableData.splice(_j4, 1);\n _j4--;\n }\n }\n }\n // let obj = {};\n // obj.data = this.setSubDocuments();\n // obj.isRefresh = this.isIncludeViewRefresh;\n // this.$store.commit(\"saveSubDocuments\", obj);\n } else if (act.type == 34) {\n _this8.doSave(act);\n } else {\n _this8.getTemplate(act);\n }\n }\n }\n });\n },\n //执行脚本后\n runAfterAction: function runAfterAction(act, docIds) {\n var _this9 = this;\n var op = this.openParams;\n var formData = {\n docId: \"\",\n document: {},\n formId: this.view.relatedForm,\n parentId: \"\",\n templateForm: \"\",\n viewId: this.openParams.actionContent,\n _selects: docIds && docIds.length > 0 ? docIds : []\n };\n var appId = this.openParams.appId;\n var divId = act.id;\n var docId = \"\";\n var parentId = \"\";\n var _templateForm = \"\";\n var _ = \"\";\n if (op.parentId) {\n formData.parentId = op.parentId;\n formData.isRelate = op.isRelate;\n parentId = op.parentId;\n }\n this.$api.runAfterActionScript(appId, divId, docId, this.openParams.actionContent, this.view.relatedForm, _templateForm, parentId, _, formData, act.type, \"\",\n //treedocid\n {\n onSucess: function onSucess(response) {\n if (response.data.errcode == 0) {\n if (act.type == 34) {\n // this.getData();\n _this9.$parent.updateView();\n }\n if (response.data.data) {\n var errmsg = response.data.data.content.content;\n _this9.$notify({\n title: errmsg,\n message: \"\",\n type: \"warning\"\n });\n } else {\n if (act.type == 20) {\n _this9.popupVisible = false;\n }\n }\n if (act.type == 2) {\n //新建, 针对最外层直接保存\n var _afd = _this9.allFormdata;\n var _dl = _this9.dataList;\n var view = _this9.view;\n var _op = _this9.openParams;\n _this9.$store.commit(\"SET_SUBDOCUMENTS_DATA\", {\n _afd: _afd,\n _dl: _dl,\n view: view,\n op: _op\n });\n }\n }\n }\n });\n },\n setSaveDoc: function setSaveDoc() {\n //针对直接保存包含元素,单点击确定的勾后也行\n var _afd = this.allFormdata;\n var _dl = this.dataList;\n if (_afd && _afd.length > 0) {\n for (var i = 0; i < _afd.length; i++) {\n var _loop5 = function _loop5() {\n if (_afd[i].docId == _dl[j].id) {\n var fields = _afd[i].data.fields;\n var items = _dl[j].items;\n _dl[j].edit = true;\n var _loop6 = function _loop6(key) {\n // for (let z = 0; z < fields.length; z++) {\n // if (items[key].id == fields[z].id) {\n // items[key].value = fields[z].value\n // }\n // }\n var loopOpe = function loopOpe(fields) {\n for (var z = 0; z < fields.length; z++) {\n if (items[key].id == fields[z].id) {\n items[key].value = fields[z].value;\n }\n if (fields[z].tabs && fields[z].tabs.length > 0) {\n fields[z].tabs.forEach(function (tab) {\n if (tab.fields) {\n loopOpe(tab.fields);\n }\n });\n }\n }\n };\n loopOpe(fields);\n };\n for (var key in items) {\n _loop6(key);\n }\n }\n };\n for (var j = 0; j < _dl.length; j++) {\n _loop5();\n }\n }\n }\n var arr = [];\n var dataList = this.dataList;\n if (dataList.length >= 1) {\n for (var x = 0; x < dataList.length; x++) {\n //网格视图当前页小计和总计不保存\n if (dataList[x].isSum || dataList[x].isTotal) {\n dataList.splice(x--, 1); //x要--\n }\n }\n }\n var view = this.view;\n var op = this.openParams;\n for (var _i11 = 0; _i11 < dataList.length; _i11++) {\n var obj = JSON.parse(JSON.stringify(dataList[_i11]));\n if (op.parentId) {\n obj.parentId = op.parentId;\n }\n if (op.isRelate === true) {\n obj.isRelate = \"true\";\n }\n obj.items = {};\n if (obj.edit || obj[\"delete\"]) {\n for (var _j5 = 0; _j5 < view.columns.length; _j5++) {\n for (var key in dataList[_i11].items) {\n if (key == view.columns[_j5].id) {\n obj.items[dataList[_i11].items[key].name] = dataList[_i11].items[key].value;\n if (dataList[_i11].delete) {\n delete dataList[_i11].edit;\n delete dataList[_i11].isRelate;\n delete dataList[_i11].isRunningBack;\n delete dataList[_i11].parentId;\n continue;\n } else {\n if (dataList[_i11].edit) {\n obj.edit = true;\n }\n }\n }\n }\n }\n arr.push(obj);\n }\n }\n if (arr && arr.length > 0) {\n arr.forEach(function (item) {\n if (item[\"delete\"] && item.edit) {\n delete item.edit;\n }\n });\n }\n return arr;\n },\n doSave: function doSave(act) {\n var _this10 = this;\n var jsonData = {};\n jsonData.data = this.setSaveDoc();\n if (!this.showtype) {\n //普通视图删除后保存\n arr.forEach(function (el) {\n if (el.delete) {\n delete el.edit;\n el.items = {};\n }\n });\n }\n this.$api.saveGridview(this.openParams.appId, jsonData, {\n onSucess: function onSucess(res) {\n if (res.data.errcode === 0) {\n _this10.$notify({\n title: res.data.errmsg,\n message: \"\",\n type: \"success\"\n });\n _this10.runAfterAction(act);\n } else if (res.data.errcode === 4001) {\n var promptData = \"\";\n var errcode = res.data.errcode;\n var errmsg = res.data.errmsg;\n var errorsList = res.data.errors;\n if (errorsList && errorsList.length > 0) {\n errorsList.forEach(function (item) {\n promptData += item.errmsg + \"
\";\n });\n }\n _this10.promptBox(errcode, errmsg, promptData);\n }\n }\n });\n },\n //获取视图模板\n getTemplate: function getTemplate(act) {\n this.$emit(\"gridviewTem\", act);\n // let op = this.openParams;\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 // exparams.parentId = op.parentId;\n // exparams.isRelate = op.isRelate;\n // }\n // this.$api.getViewTemplate(appId, viewId, exparams, {\n // onSucess: response => {\n // if(response.data.errcode == 0) {\n // this.runAfterAction(act, []);\n // }\n // }\n // })\n },\n //返回成功或失败时的提示框\n promptBox: function promptBox(errcode, errmsg, title) {\n var that = this;\n var p = new Promise(function (resolve) {\n if (errcode == 4001) {\n that.$toastr.e({\n closeButton: true,\n title: errmsg,\n msg: title,\n clickClose: true,\n //Disable click to close\n timeout: 3000,\n // 3 sec\n type: \"error\",\n //error, warning, success, info\n preventDuplicates: true\n });\n } else if (errcode == 0) {\n that.$toastr.s({\n closeButton: true,\n msg: errmsg,\n clickClose: true,\n timeout: 2000,\n type: \"success\",\n preventDuplicates: true\n });\n resolve(\"成功\");\n }\n });\n return p;\n },\n handleSelectionChange: function handleSelectionChange(val) {\n var docIds = [];\n if (val.length > 0) {\n for (var i = 0; i < val.length; i++) {\n docIds.push(val[i].docId);\n }\n } else {\n docIds = [];\n }\n this.selectDocId = docIds;\n this.$emit(\"getDocIds\", docIds);\n },\n onAction: function onAction(act) {\n //绑定视图的处理事件\n var activityType = act.type;\n switch (act.type) {\n case 1:\n //载入视图\n this.runBeforeAction(act);\n break;\n case 2:\n //创建\n this.runBeforeAction(act);\n break;\n case 3:\n //删除\n if (this.selectDocId.length <= 0) {\n this.$message({\n message: this.$t(\"msg.least_one_data\"),\n type: \"warning\"\n });\n } else {\n this.runBeforeAction(act);\n }\n // this.doRemove(act);\n break;\n case 4:\n //保存并启动流程\n break;\n case 5:\n //流程处理\n this.$parent.flowHandle();\n break;\n case 8:\n //关闭窗口\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 10:\n //返回\n this.doBack();\n //this.$parent.goBack();\n break;\n case 11:\n //保存并返回\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 13:\n //无\n break;\n case 14: //网页打印(表单)\n case 15:\n //网页打印含历史\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 16:\n //导出excel\n this.$parent.runBeforeAction(act, \"\", \"\", activityType);\n break;\n case 19:\n //保存草稿不校检\n //this.$parent.saveDraft();\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 18:\n //清空所有数据\n break;\n case 20:\n //批量提交\n this.$parent.showSubmitPanel(act, this.selectDocId);\n break;\n case 21: //保存并复制\n case 25: //PDF导出\n case 26:\n //文件下载\n this.$parent.runBeforeAction(act);\n break;\n case 27:\n //导入excel\n this.$parent.runBeforeAction(act, \"\", \"\", activityType);\n break;\n case 28:\n //电子签章\n break;\n case 29:\n //批量签章\n break;\n case 33:\n //流程启动\n break;\n case 34:\n //保存\n this.runBeforeAction(act);\n break;\n case 36:\n //网页打印(视图)\n this.$parent.runBeforeAction(act);\n // this.$emit(\"action\",act);\n break;\n case 37:\n //邮件短信分享\n break;\n case 42:\n //保存并新建\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 43:\n //跳转\n this.$parent.runBeforeAction(act);\n break;\n case 45:\n //归档\n this.$parent.runBeforeAction(act.id, \"\", \"\", activityType);\n break;\n case 46:\n //签章\n break;\n case 47:\n //回退流程\n break;\n case 48:\n //催办流程\n break;\n case 49:\n //挂起流程\n break;\n case 50:\n //恢复流程\n break;\n case 51:\n //回撤流程\n break;\n case 52:\n //终止流程\n break;\n case 53:\n //编辑流程审批人\n break;\n case 54:\n //调整流程\n break;\n case 55:\n //点评\n break;\n case 56:\n //补签\n break;\n case 57:\n //加签主办\n break;\n case 58: //加签协办\n default:\n break;\n }\n },\n getExcelParams: function getExcelParams() {\n if (this.searchExcelData) {\n return this.searchExcelData;\n } else {\n return \"\";\n }\n },\n reloadListView: function reloadListView() {\n this.getData();\n },\n checkData: function checkData(value, fieldId) {\n //method哪里注释了,因为每一行buildFormData()的数据都不一样,有空再改了\n if (value) {\n var allFormdata = this.allFormdata;\n var haveRow = false;\n var index = '';\n var data;\n if (allFormdata && allFormdata.length > 0) {\n for (var i = 0; i < allFormdata.length; i++) {\n if (fieldId == allFormdata[i].docId) {\n index = i;\n haveRow = true;\n break;\n }\n }\n }\n if (haveRow) {\n data = this.buildFormData(true, allFormdata[index].data);\n } else {\n data = this.buildFormData();\n }\n return data;\n // let data = this.buildFormData();\n // return data;\n }\n },\n refresh: function refresh(fieldId) {\n var fieldid = fieldId.replace(/\\\"/g, \"\");\n var idArr = fieldid.split(\"_\");\n var currentDocId = idArr[0] + \"__\" + idArr[2];\n var allFormdata = this.allFormdata;\n var haveRow = false;\n var index = '';\n var fd = '';\n if (allFormdata && allFormdata.length > 0) {\n for (var i = 0; i < allFormdata.length; i++) {\n if (currentDocId == allFormdata[i].docId) {\n index = i;\n haveRow = true;\n break;\n }\n }\n }\n var formdata = '';\n if (haveRow) {\n fd = this.buildFormData(true, allFormdata[index].data);\n formdata = allFormdata[index].data;\n } else {\n fd = this.buildFormData();\n formdata = formdata;\n }\n //刷新方法\n var data = {\n document: fd,\n formId: this.view.relatedForm,\n docId: fd.id,\n parentId: \"\",\n templateForm: \"\",\n viewId: \"\",\n applicationId: fd.applicationId,\n id: fd.id\n };\n API.refreshForm(fieldId, data, {\n onSucess: function onSucess(response) {\n var fields = response.data.data;\n var keys = Object.keys(fields);\n keys.forEach(function (key) {\n var field = fields[key];\n formdata.fields.forEach(function (f, i) {\n if (field.id == f.id) {\n formdata.fields[i].value = field.value; //只能更新value,而不能简单做对象替换,field.value绑定在组件v-model上,如果直接替换只是数组内存指针简单变更\n formdata.fields[i].options = field.options;\n formdata.fields[i].tabs = field.tabs;\n //如果为选择类型field,则options也要在这里替换.....\n formdata.fields[i].displayType = field.displayType;\n }\n });\n });\n }\n });\n },\n buildFormData: function buildFormData(val, buildData) {\n var formDataFields = \"\";\n if (val == \"isInclude\" || val) {\n formDataFields = buildData.fields;\n } else {\n formDataFields = this.formdata.fields;\n }\n var items = {};\n if (formDataFields) {\n var loopOpe = function loopOpe(fields) {\n for (var i = 0; i < fields.length; i++) {\n var fld = fields[i];\n if (fld.name && fld.value != undefined && fld.formField != \"ButtonField\" && fld.displayType != undefined) {\n if (fld.textType == \"hidden\" && fld.value) {\n items[fld.name] = fld.value;\n } else if (fld.textType != \"hidden\") {\n items[fld.name] = fld.value;\n }\n if (fld.textType == \"hidden\" && !fld.value) {\n if (fld.isUpdatedValue) {\n //这里针对视图选择框 隐藏并且没值时,但有选过值,也要把这个属性传到后台\n items[fld.name] = '';\n }\n }\n }\n if (fld.addInTtems) {\n items[fld.name] = fld.value;\n }\n if (fld.tabs && fld.tabs.length > 0) {\n fld.tabs.forEach(function (tab) {\n if (tab.fields) {\n loopOpe(tab.fields);\n }\n });\n }\n }\n };\n loopOpe(formDataFields);\n }\n var obj = {\n applicationId: this.openParams.appId,\n formId: formDataFields[0].formId,\n id: formDataFields[0].docId,\n items: items,\n parentId: this.openParams.parentId ? this.openParams.parentId : \"\",\n sign: \"\",\n subDocuments: [],\n versions: \"0\"\n };\n return obj;\n },\n writeCurrentDate: function writeCurrentDate(val, dateFormat) {\n if (val) {\n var now = new Date(val);\n var year = now.getFullYear();\n var month = now.getMonth() + 1;\n var date = now.getDate();\n var hour = now.getHours();\n var minute = now.getMinutes();\n var second = now.getSeconds();\n month = month < 10 ? \"0\" + month : month;\n date = date < 10 ? \"0\" + date : date;\n hour = hour < 10 ? \"0\" + hour : hour;\n minute = minute < 10 ? \"0\" + minute : minute;\n second = second < 10 ? \"0\" + second : second;\n if (dateFormat == \"HH:mm:ss\") {\n return val; //hour+\":\"+minute+\":\"+second;\n } else if (dateFormat == \"yyyy-MM-dd HH:mm:ss\") {\n return year + \"-\" + month + \"-\" + date + \" \" + hour + \":\" + minute + \":\" + second;\n } else if (dateFormat == \"yyyy-MM-dd HH:mm\") {\n return year + \"-\" + month + \"-\" + date + \" \" + hour + \":\" + minute;\n } else if (dateFormat == \"yyyy-MM-dd\") {\n return year + \"-\" + month + \"-\" + date;\n } else if (dateFormat == \"yyyy-MM\") {\n return year + \"-\" + month;\n } else if (dateFormat == \"yyyy\") {\n return year;\n }\n // return year + \"-\" + month + \"-\" + date + \" \"; //hour+\":\"+minute+\":\"+second;\n } else {\n return \"\";\n }\n },\n //取消记录\n doCancel: function doCancel(row, column) {\n var allFormdata = this.allFormdata;\n var formdata = \"\";\n for (var z = 0; z < allFormdata.length; z++) {\n if (row.docId === allFormdata[z].docId) {\n formdata = allFormdata[z].data;\n break;\n }\n }\n for (var i = 0; i < formdata.fields.length; i++) {\n for (var j = 0; j < column.length; j++) {\n if (column[j].fieldId == formdata.fields[i].divId) {\n formdata.fields[i].value = row[column[j].id][0];\n }\n }\n }\n this.$set(this.status, row.docId, 0);\n // let af = allFormdata;\n // let td = this.tableData;\n // for(let i=0; i 3) {\n result = \",\" + num.slice(-3) + result;\n num = num.slice(0, num.length - 3);\n }\n if (result) {\n result = num + result + \".\" + currentVal.split(\".\")[1];\n return result;\n } else {\n return currentVal;\n }\n } else {\n return currentVal;\n }\n },\n /* number:要格式化的数字\n * decimals:保留几位小数 默认0位\n * currency:货币类型\n * decPoint:小数点符号 默认.\n * thousandsSep:千分位符号 默认为,\n */\n currencyChange: function currencyChange(number, decimals, currency) {\n var decPoint = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : \".\";\n var thousandsSep = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : \",\";\n number = (number + \"\").replace(/[^0-9+-Ee.]/g, \"\");\n var n = !isFinite(+number) ? 0 : +number;\n var prec = !isFinite(+decimals) ? 0 : Math.abs(decimals);\n var sep = typeof thousandsSep === \"undefined\" ? \",\" : thousandsSep;\n var dec = typeof decPoint === \"undefined\" ? \".\" : decPoint;\n var s = \"\";\n var 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 var toFixedFix = function toFixedFix(n, prec) {\n var k = Math.pow(10, prec);\n return \"\" + Math.ceil(n * k) / k;\n };\n s = (prec ? toFixedFix(n, prec) : \"\" + Math.round(n)).split(\".\");\n var 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 deteleObject: function deteleObject(obj) {\n //去除数组中的重复对象 \n var uniques = [];\n var stringify = {};\n for (var i = 0; i < obj.length; i++) {\n var keys = Object.keys(obj[i]);\n keys.sort(function (a, b) {\n return Number(a) - Number(b);\n });\n var str = \"\";\n for (var j = 0; j < keys.length; j++) {\n str += JSON.stringify(keys[j]);\n str += JSON.stringify(obj[i][keys[j]]);\n }\n if (!stringify.hasOwnProperty(str)) {\n uniques.push(obj[i]);\n stringify[str] = true;\n }\n }\n uniques = uniques;\n return uniques;\n }\n }\n};",null]}