{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\dataTemplate\\templateForm.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\dataTemplate\\templateForm.vue","mtime":1667804638821},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\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\r\nimport OnlineForm from '@/components/flow/OnlineForm.vue';\r\nimport form from '@/api/form.js';\r\nimport utils from '@/utils.js';\r\nexport default {\r\n name: 'formContent',\r\n props: ['templateKey', 'action', 'isShare',\"openType\"],\r\n data() {\r\n return {\r\n alias_new: 'statement',\r\n html: null,\r\n data: null,\r\n permission: null,\r\n reloadOnlineForm: false,\r\n isView: true,\r\n disabled: false,\r\n boAlias: '',\r\n id: '',\r\n startFlow: false,\r\n recordId: '',\r\n defKey: '',\r\n formKey: '',\r\n fillField: '',\r\n fillValue: '',\r\n bindList: [],\r\n print: false,\r\n isShow: true,\r\n tempAlias: '',\r\n startLable: '发起流程',\r\n printLable: '打印',\r\n };\r\n },\r\n components: { OnlineForm },\r\n updated() {\r\n let result = window.location.href.split('?')[0].split('/');\r\n if (result[result.length - 1] == 'get' || result[result.length - 2] == 'get') {\r\n this.isShow = false;\r\n }\r\n //判断是否显示发起流程按钮\r\n if(window.location.href.split('?')[1] && window.location.href.split('?')[1].split('&')){\r\n if(window.location.href.split('?')[1].split('&')[1] && window.location.href.split('?')[1].split('&')[1]==\"startFlow=false\"){\r\n this.startFlow = false;\r\n }\r\n }\r\n\r\n },\r\n methods: {\r\n loadSuccess(){\r\n if (this.$route.query.isPrint) {\r\n this.printDetail();\r\n }\r\n },\r\n printDetail() {\r\n this.$refs.btnRegion.style.display = \"none\";\r\n setTimeout(() => {\r\n document.getElementsByTagName('body')[0].style.zoom = 0.8;\r\n window.print();\r\n this.$refs.btnRegion.style.display = \"block\";\r\n if (this.$route.query.isPrint){\r\n this.close(false)\r\n }\r\n document.getElementsByTagName('body')[0].style.zoom = 1;\r\n }, 500);\r\n },\r\n //启动\r\n start() {\r\n utils\r\n .getOnlineFormData(true)\r\n .then((formDataStr) => this.processStart(formDataStr))\r\n .catch((reason) => utils.handleGetFormDataReject(reason).then(() => this.processStart()));\r\n },\r\n processStart(formDataStr) {\r\n utils.closeAllNotification();\r\n let data = { flowKey: this.defKey };\r\n if (formDataStr) {\r\n data.data = Base64.encode(formDataStr);\r\n }\r\n this.disabled = true;\r\n this.$store\r\n .dispatch('storeProcess/start', data)\r\n .then(() => {\r\n this.close(true);\r\n })\r\n .catch(() => {\r\n this.disabled = false;\r\n });\r\n },\r\n //保存\r\n boSave(delDraftId) {\r\n utils\r\n .getOnlineFormData(true)\r\n .then((formDataStr) => {\r\n utils.closeAllNotification();\r\n let _me = this;\r\n // for (let i=0; i<_me.$validator.errors.items.length; i++) {\r\n // if(_me.$validator.errors.items[i].rule == \"required\"){\r\n // this.$message.warning(\"请将信息填写完整\");\r\n // return false;\r\n // }\r\n // }\r\n let data = {\r\n boAlias: this.boAlias,\r\n boData: utils.parseToJson(formDataStr),\r\n };\r\n //数据视图控件\r\n // if (this.fillField && this.fillField != \"\") {\r\n // let fillField = this.fillField;\r\n // data.boData[this.boAlias][fillField] = this.fillValue;\r\n // }\r\n this.disabled = true;\r\n\r\n if (delDraftId) {\r\n data.delDraftId = delDraftId;\r\n }\r\n data.formKey = this.formKey;\r\n data.templateKey = this.templateKey;\r\n this.$store.dispatch('form/boSave', data).then((result) => {\r\n if (result.state) {\r\n //当操作为编辑是,点击保存成功后提示继续编辑还是返回\r\n if (this.action === 'edit' || this.action === 'add') {\r\n this.$message.success(result.message);\r\n this.$confirm('保存成功,是否退出?', '提示', {\r\n confirmButtonText: '立即退出',\r\n cancelButtonText: '继续操作',\r\n type: 'warning',\r\n })\r\n .then(() => {\r\n this.close(false);\r\n })\r\n .catch(() => {\r\n this.$refs.onlineForm.init();\r\n this.disabled = false;\r\n if (this.action === 'editDraft') {\r\n this.editDraftHandler();\r\n } else {\r\n this.handler();\r\n }\r\n });\r\n } else {\r\n this.close(true);\r\n }\r\n } else {\r\n this.disabled = false;\r\n }\r\n });\r\n })\r\n .catch((reason) => utils.handleGetFormDataReject(reason));\r\n },\r\n boSaveAndDelDraft() {\r\n this.boSave(this.draftId);\r\n },\r\n //保存\r\n boSaveDraft() {\r\n const this_ = this;\r\n utils\r\n .getOnlineFormData(false)\r\n .then((formDataStr) => {\r\n utils.closeAllNotification();\r\n let _me = this;\r\n let data = {\r\n tempAlias: this.tempAlias,\r\n dataJson: formDataStr,\r\n };\r\n if (this.draft) {\r\n data.id = this.draft.id;\r\n data.title = this.draft.title;\r\n data.createBy = this.draft.createBy;\r\n data.createTime = this.draft.createTime;\r\n }\r\n //数据视图控件\r\n // if(this.bindList && this.bindList.length >0) {\r\n // for(var i=0;i {\r\n if (result.state) {\r\n this.$message.success(result.message);\r\n let dataViewFlag = false;\r\n //数据视图随机添加到其他菜单下面时获取当前菜单的别名 并且当前数据视图不是表单里的数据视图 dataViewFlag\r\n if (sessionStorage.menu_alias && !(this_.fillField && this_.fillField != '')) {\r\n this.alias_new = sessionStorage.menu_alias;\r\n }\r\n //判断当前数据视图是不是表单里的数据视图\r\n if(this.bindList && this.bindList.length >0) {\r\n dataViewFlag = true;\r\n }\r\n if (_me.isShare) {\r\n _me.close(true);\r\n return;\r\n }\r\n let path = \"\"\r\n if(this.openType == \"new\"){\r\n path = `/statement/draftList/${this.tempAlias}/${dataViewFlag}?isNew=true`;\r\n }else{\r\n path = '/' + this.alias_new + '/draftList/' + this.tempAlias + '/' + dataViewFlag;\r\n }\r\n this.$router.push(path);\r\n // this.$router.push(\"/statement/draftList\");\r\n } else {\r\n this.disabled = false;\r\n this.$message.error(result.message);\r\n }\r\n });\r\n })\r\n .catch((reason) => utils.handleGetFormDataReject(reason));\r\n },\r\n\r\n //关闭窗口\r\n close(isDelay) {\r\n utils.closeAllNotification();\r\n let _me = this;\r\n let url = window.location.href;\r\n let arr = url.split('?');\r\n if (isDelay) {\r\n setTimeout(function () {\r\n if (_me.isShare) {\r\n _me.$router.push(\"/messageFillPage/1\");\r\n return;\r\n }\r\n if (arr.length > 1) {\r\n let param = url.split('?')[1].split('&');\r\n if (param.includes('isNewPage=true')) {\r\n _me.$router.push(\"/messageFillPage/1\");\r\n return;\r\n }\r\n }\r\n if(_me.openType == \"new\"){\r\n //跳转到草稿\r\n let dataViewFlag = false;\r\n if(_me.bindList && _me.bindList.length >0) {\r\n dataViewFlag = true;\r\n }\r\n _me.$router.push(\r\n `/statement/draftList/${_me.tempAlias}/${dataViewFlag}?isNew=true`\r\n )\r\n }else{\r\n _me.$router.go(-1);\r\n }\r\n }, 2000);\r\n } else {\r\n if (_me.isShare) {\r\n _me.$router.push(\"/messageFillPage/1\");\r\n }else{\r\n if(_me.openType == \"new\"){\r\n window.close();\r\n }else{\r\n //打印取消之后会导致路由发生变化,不能直接回到上一个页面\r\n let menuAlias = \"statement\";\r\n //发布到其它菜单的别名\r\n if(sessionStorage.menu_alias){\r\n menuAlias = sessionStorage.menu_alias;\r\n }\r\n let url = \"/\"+ menuAlias + \"/template/preview/\" + _me.templateKey;\r\n if(_me.$route.meta && _me.$route.meta.single){\r\n url += \"/true\";\r\n }\r\n _me.$router.push(url);\r\n }\r\n\r\n // _me.$router.go(-1);\r\n }\r\n\r\n }\r\n },\r\n handler() {\r\n let _me = this;\r\n let data = {\r\n formKey: _me.formKey,\r\n boAlias: _me.boAlias,\r\n id: _me.id ? _me.id : '',\r\n action: _me.action,\r\n recordId: _me.recordId ? _me.recordId : '',\r\n dataKey: _me.templateKey ? _me.templateKey : '',\r\n };\r\n _me.$store.dispatch('form/getTemplateForm', data).then((rep) => {\r\n if (rep.result) {\r\n _me.data = rep.data;\r\n //数据视图控件\r\n if(_me.bindList && _me.bindList.length >0) {\r\n for(var i=0;i<_me.bindList.length;i++){\r\n if (_me.data[_me.boAlias][_me.bindList[i].key] == '') {\r\n // 回填数据\r\n _me.data[_me.boAlias][_me.bindList[i].key] = _me.bindList[i].value;\r\n }\r\n }\r\n }\r\n //是否是数据报表明细\r\n if (rep.permission && _me.action == 'get') {\r\n const permissionObj = rep.permission;\r\n let commonRight = '';\r\n //如果是管理端进入,则将页面字段的权限修改为可编辑\r\n if (_me.type == 'manage') {\r\n commonRight = 'w';\r\n //如果是查看实例,也是获取发起流程的表单和权限。只不过所有可见的权限要变成编辑\r\n } else {\r\n commonRight = 'r';\r\n }\r\n if (permissionObj.fields && commonRight) {\r\n for (var key in permissionObj.fields) {\r\n const bodef = permissionObj.fields[key];\r\n if (bodef) {\r\n for (var fname in bodef) {\r\n if (commonRight == 'w' || (commonRight == 'r' && bodef[fname] != 'n')) {\r\n bodef[fname] = commonRight;\r\n }\r\n }\r\n }\r\n permissionObj.fields[key] = bodef;\r\n }\r\n }\r\n if (permissionObj.table && commonRight) {\r\n for (var key in permissionObj.table) {\r\n const table = permissionObj.table[key];\r\n if (table) {\r\n if (commonRight == 'w') {\r\n table['hidden'] = false;\r\n table['add'] = true;\r\n table['del'] = true;\r\n } else if (commonRight == 'r') {\r\n table['add'] = false;\r\n table['del'] = false;\r\n table['required'] = false;\r\n table['edit'] = false;\r\n }\r\n }\r\n permissionObj.table[key] = table;\r\n }\r\n }\r\n _me.permission = permissionObj;\r\n } else {\r\n _me.permission = rep.permission;\r\n }\r\n _me.html = rep.form.formHtml;\r\n this.handlerJs(rep.form);\r\n }\r\n });\r\n },\r\n handlerJs(rep) {\r\n let _me = this;\r\n _me.reloadOnlineForm = true;\r\n const currentUser = _me.$store.state.login.currentUser;\r\n\r\n let data = _me.data;\r\n let _this = _me;\r\n setTimeout(()=>{\r\n eval(rep.diyJs);\r\n },10)\r\n },\r\n editDraftHandler() {\r\n let _me = this;\r\n _me.$store.dispatch('form/getTempDraftData', _me.draftId).then((rep) => {\r\n if (rep.result) {\r\n _me.data = rep.data;\r\n _me.draft = rep.draft;\r\n if (rep.permission) {\r\n _me.permission = rep.permission;\r\n }\r\n _me.html = rep.form.formHtml;\r\n this.handlerJs(rep.form);\r\n }\r\n });\r\n },\r\n init() {\r\n var $ = require('jquery');\r\n this.id = utils.getUrlKey('id');\r\n this.startFlow = utils.getUrlKey('startFlow');\r\n this.recordId = utils.getUrlKey('recordId');\r\n let bindList = utils.getUrlKey(\"bindList\");\r\n if(bindList){\r\n this.bindList = JSON.parse(Base64.decode(decodeURIComponent(bindList)));\r\n }\r\n this.draftId = utils.getUrlKey('draftId');\r\n this.isView = (this.action !== 'get');\r\n let _me = this;\r\n\r\n this.$store\r\n .dispatch('form/getBpmDataTemplateInfo', {\r\n templateKey: this.templateKey,\r\n })\r\n .then((result) => {\r\n if (result.state) {\r\n if (result.value.allowShare == 2 && _me.isShare) {\r\n _me.$router.push(\"/messageFillPage/5\");\r\n return;\r\n }\r\n _me.boAlias = result.value.boDefAlias;\r\n _me.defKey = result.value.defId;\r\n _me.formKey = result.value.formKey;\r\n _me.tempAlias = result.value.alias;\r\n if (result.value.manageField) {\r\n let re = JSON.parse(result.value.manageField);\r\n re.forEach((item) => {\r\n if (item.name == 'startFlow') {\r\n this.startFlow = true;\r\n this.startLable = item.desc;\r\n }else if(item.name == 'print'){\r\n this.printLable = item.desc;\r\n }\r\n });\r\n } else {\r\n this.startFlow = true;\r\n }\r\n this.reloadOnlineForm = false;\r\n //如果编辑的是草稿数据\r\n if (this.action === 'editDraft') {\r\n this.editDraftHandler();\r\n } else {\r\n this.handler();\r\n }\r\n }\r\n });\r\n }\r\n },\r\n created() {\r\n this.init();\r\n },\r\n watch: {\r\n templateKey: function (n, o) {\r\n if (n && o && n != o) {\r\n this.init();\r\n }\r\n },\r\n //控件的联动会导致表单的permission发生变化,联动显示会变成'w',需要改回原来的权限\r\n permission:{\r\n handler(newVal,oldVal){\r\n if(this.formKey && this.action == \"get\"){\r\n for(let key in newVal.fields[this.formKey]){\r\n if(newVal.fields[this.formKey][key] == 'w'){\r\n newVal.fields[this.formKey][key] = 'r';\r\n }\r\n }\r\n }\r\n },\r\n deep: true\r\n }\r\n },\r\n};\r\n",null]}