{"remainingRequest":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/badp-bcxin-web-5.x-vue/src/components/form_searchform.vue?vue&type=script&lang=js","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/src/components/form_searchform.vue","mtime":1725957645722},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vue/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":["\nimport API from \"@/api.js\";\nexport default {\n name: \"form-searchform\",\n props: [\n \"appId\", \n \"viewId\",\n \"chartType\", \n \"isTreeView\",\n \"openParams\",\n \"commonFilterCondition\"\n ], // isTreeView: 是否显示收起按钮\n\n provide () {\n return {\n findField: this.findField,\n buildFormData: this.buildFormData\n }\n },\n\n created: function() {\n this.initSearchForm({\n appId: this.appId,\n viewId: this.viewId\n });\n },\n\n data: function() {\n return {\n formdata: undefined,\n };\n },\n methods: { \n getAllFields(){\n console.log(this.$parent) \n if(this.$store.state.searchFlag==0){\n return this.formdata.fields;\n }\n },\n findField(id) {\n console.log(this.appId+'--测试-'+this.viewId)\n \n let data = this.formdata \n console.log('变量:'+this.$store.state.searchFlag)\n for (let i = 0; i < data.fields.length; i++) {\n let fld = data.fields[i];\n console.log(fld.value)\n // data.fields[i].value='1' \n console.log(this.$store.state.searchDataStore) \n if(this.$store.state.searchDataStore.length){\n if(this.$store.state.searchFlag==2&&i<=data.fields.length){ \n console.log(66) \n this.$store.state.searchDataStore.forEach(item=>{\n if(item.appId==this.appId&&item.viewId==this.viewId){ \n Object.keys(item).forEach((key)=>{\n if(key==fld.name){\n console.log('测试数据'+item[key]) \n this.$set(data.fields[i],'value',item[key])\n if(i==data.fields.length-1){\n setTimeout(()=>{\n this.$store.commit('searchFlag',1)\n },800)\n console.log(this.$parent.$parent)\n this.$parent.$parent.openSearchTemplate()//打开高级查询按钮\n }\n }\n })\n }\n });\n }\n } \n \n console.log(fld)\n if (id == fld.id) return fld;\n } \n \n return this.formdata;\n },\n form(data) {\n let that = this;\n // debugger\n if (data) {\n return {\n methods: {\n findField: that.findField,\n // findField(id) {\n // for (let i = 0; i < data.fields.length; i++) {\n // let fld = data.fields[i];\n // if (id == fld.id) return fld;\n // }\n // return null;\n // },\n refresh: this.refresh,\n getAllFields: this.getAllFields,\n },\n template: \"
\" + data.template + \"
\"\n };\n } else\n return {\n template: \"
\"\n };\n },\n\n initSearchForm({ appId, viewId }) {\n let ct = this.chartType\n if(ct && ct == 'report') { //报表的查询判断\n this.$api.reportSearchformtemplate(\n appId,\n viewId,\n {\n onSucess: res => {\n let formdata = res.data.data;\n this.formdata = formdata;\n \n if(formdata.fields && formdata.fields.length > 0) {\n this.$emit('event', true)\n }else {\n this.$emit('event', false)\n }\n }\n }\n )\n }else if(ct && ct == 'chart'){ //图表\n this.$api.chartSearchformtemplate(\n appId,\n viewId,\n {\n onSucess: res => {\n let formdata = res.data.data;\n this.formdata = formdata;\n if(formdata.fields && formdata.fields.length > 0) {\n this.$emit('event', true)\n }else {\n this.$emit('event', false)\n }\n }\n }\n )\n }else {\n let urlParams = '';\n let obj = {};\n if(this.openParams) {\n urlParams = this.openParams.urlParams; //跳转按钮携带的参数\n obj = {\n parentId: this.openParams.parentId ? this.openParams.parentId : '',\n isRelate: this.openParams.isRelate ? this.openParams.isRelate : '',\n }\n }\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 obj[p[0]] = p[1];\n }\n }\n }\n \n let op = this.openParams;\n let exparams = {};\n if (op.exparams) {//上一个页面url传递过来的参数,放到到参数里面\n //如果携带参数\n let ex = op.exparams.replace(/^(\\s|&)+|(\\s|&)+$/g, \"\");\n let list = ex.split(\"&\");\n for (let i = 0; i < list.length; i++) {\n let e = list[i].split(\"=\");\n if (e[1]) {\n exparams[e[0]] = e[1];\n }\n }\n }\n obj={...obj,...exparams}\n\n this.$api.getSearchFormTemplate(appId, viewId, obj, {\n onSucess: response => {\n if (response.data.data) {\n let fd = response.data.data;\n fd = response.data.data;\n \n if(fd.fields) {\n fd.fields.forEach(el => {\n if(el.formField == \"ViewDialogField\") { //如果是视图选择框,并且是查询表单,不要传parentId\n el.isSearchForm = true;\n }\n })\n }\n fd.formId = response.data.data.fields[0].formId; //可能不行,但没时间,先这样\n fd.docId = response.data.data.fields[0].docId;\n if(this.commonFilterCondition) {\n let searchFilter = eval(this.commonFilterCondition);\n for(let i=0; i {\n let fields = response.data.data;\n let keys = Object.keys(fields);\n keys.forEach(key => {\n let field = fields[key];\n this.formdata.fields.forEach((f, i) => {\n if (field.id == f.id) {\n // console.log(\"this.formdata.fields--->\",this.formdata.fields[i])\n this.formdata.fields[i].value = field.value;//只能更新value,而不能简单做对象替换,field.value绑定在组件v-model上,如果直接替换只是数组内存指针简单变更\n this.formdata.fields[i].options = field.options;\n this.formdata.fields[i].tabs = field.tabs;\n //如果为选择类型field,则options也要在这里替换.....\n this.formdata.fields[i].displayType = field.displayType;\n if(field.formField == \"DepartmentField\") { //这个会把部门选择框的值去除掉,后果未知,先这样\n if(this.formdata.fields[i].value && this.formdata.fields[i].options.length <= 0) {\n this.formdata.fields[i].value = '';\n }\n }\n }\n });\n });\n \n }\n });\n },\n\n searchBtnShow(data) {\n return data && data.template && data.template.length > 0;\n },\n\n throttle (fn, gapTime) {\n let _this = this\n return function () {\n let _nowTime = +new Date()\n if (_nowTime - _this._lastTime > gapTime || !_this._lastTime) {\n fn()// 函数可以带参数\n _this._lastTime = _nowTime\n }\n }\n },\n\n handleWheel (e) {\n e.stopPropagation()\n this.throttle(this.pageUpOrDown, 600)(e)\n },\n\n pageUpOrDown () { \n let allSelelect = document.getElementsByClassName(\"el-select-dropdown\");\n if(allSelelect && allSelelect.length > 0) {\n for(let i=0; i {\n // item.value = \"\";\n\t\t// if(item.formField == \"UserField\" || item.formField == \"TreeDepartmentField\") {\n // item.data = [];\n // }\n // this.$forceUpdate()\n // // if(item.impressionVal) {\n // // //item.impressionVal = '';\n // // }\n // });\n },\n\n /**\n * 收起【调用父组件方法】\n */\n away(){\n this.$parent.showSearchPanel = false;\n },\n\n // refresh(fieldId) {\n // //刷新方法\n // let fd = this. buildSearchData();\n // let data = {\n // document: fd,\n // formId: '',\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: response => {\n // let fields = response.data.data;\n // let keys = Object.keys(fields);\n // keys.forEach(key => {\n // let field = fields[key];\n // this.formdata.fields.forEach((f, i) => {\n // if (field.id == f.id) {\n // this.formdata.fields[i].value = field.value;//只能更新value,而不能简单做对象替换,field.value绑定在组件v-model上,如果直接替换只是数组内存指针简单变更\n // this.formdata.fields[i].options = field.options;\n // this.formdata.fields[i].tabs = field.tabs;\n // //如果为选择类型field,则options也要在这里替换.....\n // this.formdata.fields[i].displayType = field.displayType;\n // }\n // });\n // });\n \n // }\n // });\n // },\n\n //按钮事件执行前\n /* actId:参数值为act.id;\n * isOrRefresh:刷新重计算\n * id:\n * activityType:参数值为act.type.\n * withOld:判断是否是保存并新建,\n * act:当前点击的按钮的全部参数\n */\n runBeforeAction(actId, isOrRefresh, id, activityType, withOld, act){\n let appId = this.openParams.appId;\n let formData = \"\";\n let documentId = \"\";\n if(this.copyFormData) { //复制文档时存在\n formData = this.buildFormData();//当复制时数据不变,只改变id值\n formData.docId = this.copyFormData.id;\n formData.id = this.copyFormData.id;\n documentId = this.copyFormData.id;\n }else {\n formData = this.buildFormData();\n formData.docId = this.buildFormData().id;\n documentId = this.buildFormData().id;\n }\n let subDocuments = [];\n let versions = '';\n let templateForm = '';\n let subDoc = this.$store.state.subDocuments;\n if(subDoc && subDoc.length > 0) { //判断是否是包含元素网格视图\n subDocuments = subDoc;\n versions = formData.versions;\n delete formData.subDocuments;\n delete formData.versions;\n delete formData.templateForm;\n }else {\n subDocuments = formData.subDocuments;\n versions = formData.versions;\n }\n let document = {\n applicationId: this.openParams.appId,\n formId: formData.formId,\n id: documentId,\n items: formData.items,\n parentId: formData.parentId,\n sign: formData.sign,\n subDocuments: subDocuments,\n versions: versions,\n exparams: {},\n templateForm: templateForm,\n };\n delete formData.items;\n \n formData.document = document;\n formData.viewId = \"\";\n formData.templateForm = this.openParams.templateForm?this.openParams.templateForm:\"\";\n\n if(this.openParams.displayType && this.openParams.displayType == \"templateForm\") {//如果是模板表单,formId是真实formID,而不是templateForm\n formData.formId = this.openParams.realformId;\n formData.document.formId = this.openParams.realformId;\n }\n\n this.parameterObj = formData;\n API.runBeforeActionScript(\n appId, \n actId,\n formData,\n activityType,\n '', //treedocid\n '', //flowType\n {\n onSucess: response => {\n if(response.data.data){ //如果有数据返回,结束下一步\n let resData = response.data.data;\n let errmsg = response.data.data.content;\n if(!resData.type) { //没有type值,但是有返回数据,把数据放进document\n if(resData.changedField) {\n let items = this.formdata.fields;//formData.document.items;\n let resDataItem = resData.changedField;\n if(resDataItem) {\n for(let j = 0; j {\n \n }).catch(() => {});\n }\n }else {\n switch (activityType) {\n case 43: //跳转\n this.jumpType(act);\n break;\n default:\n break;\n }\n if(isOrRefresh) {\n this.refresh(id);\n }\n }\n },\n })\n },\n\n //跳转\n jumpType(act){\n let name = act.name;\n if(act.jumpMode === 0) {\n let actId = act.targetList.split(\"|\")[0];\n let params = {\n linkType: \"00\",\n appId: this.openParams.appId,\n actionContent: actId,\n _select:'',\n name,\n };\n let isExternalLink = false;\n switch(act.jumpActOpenType) {\n case 0:\n if(!isExternalLink) {\n params.isCurrentPageOpen = true;\n this.$emit(\"openNewpage\",params)\n }\n break;\n case 1:\n this.isJumpForm = true;\n if(!isExternalLink) {\n params.isPopupLayerDisplay = true; \n this.jumpParams = params;\n this.jumpPopup = true;\n this.popupLayerType = \"VIEW\";\n }else {\n this.jumpParams = params;\n this.jumpPopup = true;\n }\n break;\n case 2:\n if(!isExternalLink) {\n this.$emit(\"add-tab\", params);\n }\n break;\n case 3:\n if(!isExternalLink) {\n params.isOpenNewWindow = true; //判断是新窗口打开\n let routeData = this.$router.resolve({\n // name: \"form_blank\",\n name: 'open',\n query: params,\n });\n window.open(routeData.href, \"_blank\");\n }\n break;\n case 4:\n \n break;\n default:\n break;\n }\n }else if(act.jumpMode === 1) {\n this.$api.runScript(\n this.openParams.appId, \n act.id, \n this.buildFormData().id, \n 'dispatcherUrl',\n '',\n '',\n {\n onSucess: res => {\n if(res.data.errcode === 0) {\n let url = res.data.data;\n let isForm = url.search(\"form.html\") != -1;\n let isView = url.search(\"view.html\") != -1;\n let urlArrayF = url.split(\"?\");\n let urlArray = '';\n if(urlArrayF[1]) {\n urlArray = urlArrayF[1].split(\"&\");\n }\n this.isJumpForm = isForm;\n this.isJumpView = isView;\n let type = '';\n let isExternalLink = false;\n \n if(isForm) {\n type = '00';\n }else if(isView) {\n type = \"01\"\n }else if (!isForm && !isView) {\n isExternalLink = true;\n this.isExternalLink = true; //判断是否是外部链接\n }\n let params = {\n linkType: type,\n appId: this.openParams.appId,\n actionContent: '',\n name: act.name,\n _select: '',\n viewId: \"\",\n };\n let obj = {};\n if(urlArray && urlArray.length > 0) {\n for(let i=0; i {\n for (let i = 0; i < fields.length; i++) {\n let fld = fields[i];\n if (\n fld.name &&\n fld.value != undefined &&\n fld.formField != \"ButtonField\" && \n fld.displayType != undefined\n ) {\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 }\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(this.formdata.fields)\n }\n return {\n applicationId: this.openParams.appId,\n formId: this.formdata.formId,\n id: this.formdata.docId,\n items: items,\n parentId: \"\",\n sign: \"\",\n subDocuments: [],\n versions: \"0\"\n };\n },\n }\n};\n",null]}