{"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/o_view_dialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/test-v5inweb-5.x-vue/src/components/o_view_dialog.vue","mtime":1739760944322},{"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 Constant from \"@/Constant.js\";\nimport API from \"@/api.js\";\nimport view_delegate from \"@/components/view_delegate.vue\";\nimport form_normalform from \"@/components/form_normalform.vue\";\nimport controlHidden from \"@/assets/js/controlHidden.js\";\nexport default {\n name: \"o-view-dialog\",\n props: [\"id\", \"appId\"],\n components: {\n view_delegate,\n form_normalform,\n },\n inject: [\"findField\", \"buildFormData\"],\n computed: {\n field: function () {\n let formData = this.$parent.findField(this.id);\n if (formData.divWidth) {\n if (formData.divWidth.indexOf(\"px\") > -1) {\n this.dialogWidth = formData.divWidth;\n } else if (formData.divWidth.indexOf(\"%\") > -1) {\n this.dialogWidth = formData.divWidth;\n } else {\n this.dialogWidth = formData.divWidth + \"px\";\n }\n }\n if (formData.divHeight) {\n let screen = document.documentElement.clientHeight;\n let h = \"\";\n if (formData.divHeight.indexOf(\"px\") > -1) {\n h = formData.divHeight.split(\"px\")[0];\n this.dialogHidth = parseInt(h) - 100 + \"px\";\n } else if (formData.divHeight.indexOf(\"%\") > -1) {\n h = formData.divHeight;\n let num = h.split(\"%\")[0];\n let he = (screen * parseInt(num)) / 100;\n this.dialogHidth = he - 124 + \"px\";\n } else {\n let t = screen * 0.15;\n //let t = 1 - (formData.divHeight / screen);\n if (parseInt(formData.divHeight) >= screen) {\n this.dialogTop = \"1%\";\n } else {\n let hd = screen - parseInt(formData.divHeight);\n if (hd < t) {\n let d = Math.ceil(hd / t);\n if (d >= 15) {\n this.dialogTop = \"15%\";\n } else {\n this.dialogTop = d + \"%\";\n }\n }\n }\n this.dialogHidth = parseInt(formData.divHeight) - 124 + \"px\";\n }\n } else {\n let screen = document.documentElement.clientHeight;\n this.dialogHidth = screen / 2 + 24 + \"px\";\n }\n\n formData.obpmFilePath = obpmConfig.obpmFilePath;\n //return this.$parent.findField(this.id);\n return formData;\n },\n params: function () {\n let appId = this.$root.appid;\n let field = this.field;\n return {\n appId: appId,\n actionContent: field.dialogView,\n parentId: field.docId,\n };\n },\n },\n watch: {\n dialogVisible(newVal) {\n if (!newVal) {\n this.isClickBtn = false;\n this.selectedDocIdNum = \"\";\n }\n },\n // 监听$store.state.eventMapping是否为true,显示视图选择框的视图\n \"$store.state.eventMapping\"() {\n let eventMapping = this.$store.state.eventMapping;\n if (eventMapping) {\n eventMapping.forEach((item) => {\n if (item.eventMapping == this.field.name) {\n this.onBtnClick();\n }\n });\n }\n },\n },\n mounted() {\n this.$nextTick(() => {\n let field = this.field;\n if (\n field.textType == \"hidden\" ||\n field.displayType == Constant.PermissionType_HIDDEN\n ) {\n if (field.isHideType) {\n let id = this.id,\n formShowType = field.formShowType;\n controlHidden({ id, field, formShowType });\n }\n }\n });\n },\n data: function () {\n return {\n path: window.location.origin + \"/obpm\",\n dialog: false,\n Constant,\n dialogVisible: false,\n items: {},\n checkboxParams: {},\n newRow: {},\n clearCheckboxV: \"\",\n selectedValArr: [],\n allParams: [],\n selectedDocIdNum: \"\",\n isView: true,\n popupVisible: false,\n documentData: \"\",\n selectedRows: [],\n dialogWidth: \"\",\n dialogHidth: \"\",\n showCleanBtn: true, // 是否显示清除按钮\n dialogTop: \"\",\n isClickBtn: false,\n isSingleClick: false, //单选的时候限制一直点击\n userFieldList: [],\n };\n },\n methods: {\n hiddencheck() {},\n /**\n * 获取当前的视图类型(树形视图不显示清除按钮)\n */\n getViewType(val) {\n if (val == \"TreeView\") {\n this.showCleanBtn = false;\n }\n },\n openDoc(params) {\n params.allowOpenDoc = true; //视图选择框允许查看文档,添加个参数让返回按钮正常返回\n this.documentData = params;\n this.popupVisible = true;\n },\n onBtnClick() {\n this.dialogVisible = true;\n },\n handleDocumentClose() {\n this.popupVisible = false;\n },\n handleClose() {\n this.dialogVisible = false;\n let eventMapping = this.dialogVisible;\n this.$store.commit(\"saveEventMapping\", eventMapping);\n },\n onOk() {\n if (!this.isClickBtn) {\n this.isClickBtn = true;\n this.doAction();//弹窗’确认‘按钮事件,记住复选框选中的数据核心--555\n }\n },\n //清除多选框的值\n clearCheckbox() {\n this.clearCheckboxV = parseInt(Math.random() * 100 + 1) + new Date();\n // this.clearCheckboxV = true;\n },\n\n checkboxVal(params, arrRow, isRadio, userFieldList) {\n //多选时的值\n this.userFieldList = userFieldList;\n this.selectedDocIdNum = arrRow;//复选框选中的数据\n let selectedVal = [];\n this.allParams = params; //之前放在判断中\n if (this.field.mapping && this.field.mapping.length > 0) {\n let mapping = this.field.mapping;\n arrRow.forEach((row) => {\n for (let item in row) {\n for (let i = 0; i < mapping.length; i++) {\n if (item == mapping[i].id) {\n let obj = {};\n obj.id = item;\n obj.value = row[item];\n selectedVal.push(obj);\n }\n }\n }\n });\n let result = [];\n let obj = {};\n for (let i = 0; i < selectedVal.length; i++) {\n if (!obj[selectedVal[i].id]) {\n result.push(selectedVal[i]);\n obj[selectedVal[i].id] = true;\n } else {\n if (result.length > 0) {\n for (let j = 0; j < result.length; j++) {\n if (result[j].id == selectedVal[i].id) {\n result[j].value =\n result[j].value + \";\" + selectedVal[i].value;\n }\n }\n }\n }\n }\n this.selectedValArr = result;\n }\n if (isRadio) {\n this.doAction();\n }\n },\n\n doAction() {//弹窗’确定‘按钮核心555\n // debugger\n this.selectedRows = JSON.parse(JSON.stringify(this.selectedDocIdNum));\n this.selectedDocIdNum = \"\";\n let sr = this.selectedRows;\n let docId = this.field.docId;\n let inputIdAndName = []; //id+name\n let field = this.field;\n if (\n field.mutil != \"field.mutil\" &&\n field.selectOne != \"field.selectOne\"\n ) {\n //单选第一次点击允许,之后连续点击禁止之后的操作\n if (!this.isSingleClick) {\n this.isSingleClick = true;\n } else {\n return;\n }\n }\n if (field.mapping && field.mapping.length > 0) {\n let mapping = this.field.mapping;\n if (sr && sr.length > 0) {\n for (let i = 0; i < mapping.length; i++) {\n for (let j = 0; j < this.selectedValArr.length; j++) {\n let obj = {};\n // if (inputIdAndName.id == this.selectedValArr[j].id) {\n if (mapping[i].id == this.selectedValArr[j].id) {\n obj.id = docId + \"_\" + mapping[i].value;\n obj.value = this.selectedValArr[j].value;\n inputIdAndName.push(obj);\n }\n }\n }\n if (this.userFieldList && this.userFieldList.length > 0) {\n //视图选择框映射用户选择框\n for (let x = 0; x < this.userFieldList.length; x++) {\n if (this.userFieldList[x].formField == \"UserField\") {\n for (let m = 0; m < inputIdAndName.length; m++) {\n if (this.userFieldList[x].value == inputIdAndName[m].value) {\n //百川信好像是.id == .id, 有点忘了\n inputIdAndName[m].data = this.userFieldList[x].data;\n let userId = \"\";\n for (let n = 0; n < inputIdAndName[m].data.length; n++) {\n userId = userId + \";\" + inputIdAndName[m].data[n].id;\n }\n userId = userId.replace(/^(\\s|;)+|(\\s|;)+$/g, \"\"); //首尾;去掉\n inputIdAndName[m].value = userId; //用户选择框映射时value值需为用户id\n }\n }\n }\n }\n }\n } else {\n for (let i = 0; i < mapping.length; i++) {\n let obj = {};\n if (mapping[i].id) {\n obj.id = docId + \"_\" + mapping[i].value;\n obj.value = \"\";\n inputIdAndName.push(obj);\n }\n }\n }\n }\n let doc;\n let fieldData;\n\n fieldData = this.findField();\n doc = this.buildFormData();\n\n /**\n * 不要删除先(10.29)\n * 开始\n * **/\n // if (this.$parent.findField) {\n // if (this.$parent.$parent.buildFormData) {\n // if(this.$parent.$parent.findField) {\n // fieldData = this.$parent.$parent.findField();\n // }else {\n // fieldData = this.$parent.$parent.formdata; //高级查询里的视图选择框(树形)获取的this.$parent.$parent.findField为undefined\n // }\n // doc = this.$parent.$parent.buildFormData();\n // }else if(this.$parent.$parent.$parent.$parent.buildFormData){ //选项卡折叠模式下\n // fieldData = this.$parent.$parent.$parent.findField();\n // doc = this.$parent.$parent.$parent.$parent.buildFormData()\n // }else if (this.$parent.$parent.$parent.$parent.$parent.$parent.buildFormData) {\n // fieldData = this.$parent.$parent.$parent.$parent.$parent.$parent.findField();\n // doc = this.$parent.$parent.$parent.$parent.$parent.$parent.buildFormData();\n // }\n /**\n * 结束\n * **/\n\n if (fieldData && fieldData.fields) {\n //tab标签\n const loopOpe = (fields) => {\n for (let i = 0; i < fields.length; i++) {\n let fd = fields[i];\n inputIdAndName.forEach((item) => {\n if (fd.id == item.id) {\n if (fd.formField == \"RadioField\") {\n for (let i = 0; i < fd.options.length; i++) {\n if (\n fd.options[i].label == item.value ||\n fd.options[i].option == item.value\n ) {\n fd.value = fd.options[i].value;\n }\n }\n } else if (fd.formField == \"UserField\") {\n fd.value = item.value;\n fd.data = item.data;\n } else if (fd.formField == \"InputField\") {\n if (item.data && item.value) {\n let valArr = item.value.split(\";\");\n let name = \"\";\n valArr.forEach((el) => {\n item.data.forEach((elm) => {\n if (el == elm.id) {\n name += elm.name + \";\";\n }\n });\n });\n fd.value = name.replace(/^(\\s|;)+|(\\s|;)+$/g, \"\");\n } else {\n fd.value = item.value;\n }\n } else {\n fd.value = item.value;\n }\n if (item.value) {\n //这里针对视图选择框 隐藏并且没值时,但有选过值,也要把这个属性传到后台\n fd.isUpdatedValue = true;\n }\n }\n });\n if (fd.tabs && fd.tabs.length > 0) {\n fd.tabs.forEach((tab) => {\n if (tab.fields) {\n loopOpe(tab.fields);\n }\n });\n }\n }\n };\n loopOpe(fieldData.fields);\n }\n\n /**\n * 不要删除先(10.29)\n * 开始\n * **/\n // } else if (this.$parent.$parent.findField) {\n // //选项卡\n // let fieldData = this.$parent.$parent.findField();\n // if(fieldData && fieldData.fields) { //tab标签\n // const loopOpe = fields => {\n // for (let i = 0; i < fields.length; i++) {\n // let fd = fields[i];\n // inputIdAndName.forEach((item) => {\n // if (fd.id == item.id) {\n // if(fd.formField == \"RadioField\") {\n // for (let i = 0; i < fd.options.length; i++) {\n // if(fd.options[i].label == item.value || fd.options[i].option == item.value) {\n // fd.value = fd.options[i].value\n // }\n // }\n // }else if(fd.formField == \"UserField\") {\n // fd.value = item.value;\n // fd.data = item.data;\n // }else {\n // fd.value = item.value;\n // }\n // if(item.value) { //这里针对视图选择框 隐藏并且没值时,但有选过值,也要把这个属性传到后台\n // fd.isUpdatedValue = true;\n // }\n // }\n // });\n // if(fd.tabs && fd.tabs.length>0) {\n // fd.tabs.forEach(tab => {\n // if(tab.fields) {\n // loopOpe(tab.fields)\n // }\n // })\n // }\n // }\n // };\n // loopOpe(fieldData.fields)\n // }\n\n // // fieldData.fields.forEach((items) => {\n // // if (items.tabs) {\n // // items.tabs.forEach((item) => {\n // // if (item.fields && item.fields.length > 0) {\n // // item.fields.forEach((el) => {\n // // if (el.id == inputIdAndName) {\n // // el.value = selectedVal;\n // // }\n // // });\n // // }\n // // });\n // // }\n // // });\n // doc = this.$parent.$parent.buildFormData();\n // }\n /**\n * 结束\n * **/\n\n let allData = {\n docId: this.field.docId,\n document: doc,\n fieldId: this.field.divId,\n formId: this.field.formId,\n viewId: this.field.dialogView,\n _selects: this.allParams._select,\n };\n API.runViewDialogConfirmScript(allData, {\n onSucess: (response) => {\n if (response.data.data && response.data.data != \"false\") {\n this.$message({\n message: response.data.data,\n type: \"error\",\n });\n this.isSingleClick = false;\n } else if (response.data.data == \"false\") {\n this.dialogVisible = false;\n this.$message({\n message: response.data.data,\n type: \"error\",\n });\n this.isSingleClick = false;\n } else if (!response.data.data && response.data.errmsg == \"ok\") {\n API.runViewDialogCallbackScript(allData, {\n onSucess: (response) => {\n let fds = fieldData.fields;\n if (response.data.data && response.data.data.changedField) {\n //一定先执行,不然刷新出问题\n let cf = response.data.data.changedField;\n let uList = this.userFieldList;\n if (uList && uList.length > 0) {\n const loopOpeSetUser = (fields) => {\n for (let i = 0; i < fields.length; i++) {\n let fld = fields[i];\n for (let j = 0; j < uList.length; j++) {\n if (uList[j].name == fields[i].name) {\n if (fields[i].formField === \"UserField\") {\n fields[i].data = uList[j].data;\n }\n }\n }\n if (fld.tabs && fld.tabs.length > 0) {\n fld.tabs.forEach((tab) => {\n if (tab.fields) {\n loopOpeSetUser(tab.fields);\n }\n });\n }\n }\n };\n loopOpeSetUser(fds);\n }\n const loopOpe = (fields) => {\n for (let i = 0; i < fields.length; i++) {\n let fld = fields[i];\n for (let j = 0; j < cf.length; j++) {\n for (let key in cf[j]) {\n if (key == fields[i].name) {\n fields[i].value = cf[j][key];\n }\n }\n }\n if (fld.tabs && fld.tabs.length > 0) {\n fld.tabs.forEach((tab) => {\n if (tab.fields) {\n loopOpe(tab.fields);\n }\n });\n }\n }\n };\n loopOpe(fds);\n }\n\n if (response.data.errcode == 0) {\n if (this.field.refreshOnChanged) {\n //刷新\n if (this.$parent.refresh) {\n this.$parent.refresh(this.field.id);\n } else if (this.$parent.$parent.refresh) {\n this.$parent.$parent.refresh(this.field.id);\n } else if (\n this.$parent.$parent.$parent.$parent.$parent.$parent\n .refresh\n ) {\n //视图列类型设置脚本,返回用户id,映射到用户选择框 bug19929 有选项卡嵌套比较复杂暂时先这样\n let parentFields =\n this.$parent.$parent.$parent.$parent.$parent.$parent.findField()\n .fields;\n if (parentFields) {\n for (let i = 0; i < parentFields.length; i++) {\n if (\n parentFields[i].tabs &&\n parentFields[i].tabs.length > 0\n ) {\n for (\n let x = 0;\n x < parentFields[i].tabs.length;\n x++\n ) {\n if (parentFields[i].tabs[x].fields) {\n for (\n let m = 0;\n m < parentFields[i].tabs[x].fields.length;\n m++\n ) {\n if (\n parentFields[i].tabs[x].fields[m]\n .refreshOnChanged\n ) {\n this.$parent.$parent.$parent.$parent.$parent.$parent.refresh(\n parentFields[i].tabs[x].fields[m].id\n );\n }\n }\n }\n }\n }\n }\n }\n }\n }\n this.isSingleClick = false;\n this.dialogVisible = false;\n let eventMapping = this.dialogVisible;\n this.$store.commit(\"saveEventMapping\", eventMapping);\n }\n },\n });\n }\n },\n });\n },\n },\n};\n",null]}