{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\dataTemplate\\ConditionSetting.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\dataTemplate\\ConditionSetting.vue","mtime":1675071992131},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport deepmerge from \"deepmerge\";\r\nconst templateCtrlFieldDialog = () =>\r\n import(\"@/components/form/dataTemplate/TemplateCtrlFieldDialog.vue\");\r\n const BTN_TYPE = {\r\n isShow: '1',\r\n notShow: '2',\r\n}\r\nexport default {\r\n name: \"condition-setting\",\r\n components: {\r\n templateCtrlFieldDialog\r\n },\r\n props: [\"data\"],\r\n data() {\r\n return {\r\n btnType:BTN_TYPE,//移动端显示隐藏按钮\r\n dataTemplate: {},\r\n conditionSettingFields: [],\r\n conditionFields: [],\r\n tabHeight: `${document.documentElement.clientHeight}` - 245,\r\n controlTypes: [\r\n { key: \"onetext\", value: \"单行文本框\" },\r\n { key: \"date\", value: \"日期控件\" },\r\n { key: \"select\", value: \"下拉选项\" },\r\n { key: \"radio\", value: \"单选按钮\" },\r\n { key: \"customDialog\", value: \"自定义对话框\" }\r\n ],\r\n editField: {},\r\n editFieldIndex: -1,\r\n option:{\r\n choiceType: \"static\",\r\n customQuery:{}\r\n }\r\n };\r\n },\r\n mounted() {\r\n this.dataTemplate = this.data.bpmDataTemplate;\r\n if (this.data.fields) {\r\n let fields = deepmerge({}, this.data.fields, { clone: true });\r\n fields=fields.filter(item=>!item.flowField);\r\n this.conditionSettingFields = fields;\r\n }\r\n this.templates = this.data.templates;\r\n this.initData();\r\n },\r\n methods: {\r\n isShow(row){\r\n this.$set(row,'isShow',!row.isShow)\r\n },\r\n btnChange(row){\r\n this.$set(row,'mpDisplay',row.mpDisplay==='1' ? '2' : '1')\r\n },\r\n //保存查询条件数据\r\n saveConditionField() {\r\n let unPassCondtionArr = [];\r\n this.conditionFields.forEach(c => {\r\n if (\r\n (c.ct == \"select\" || c.ct == \"radio\" || c.ct == \"customDialog\") &&\r\n !c.controlContent\r\n ) {\r\n unPassCondtionArr.push(c.cm);\r\n }\r\n });\r\n if (unPassCondtionArr.length > 0) {\r\n this.$message.error(\r\n \"查询字段【\" +\r\n unPassCondtionArr.join(\",\") +\r\n \"】尚未配置控件,无法保存\"\r\n );\r\n return \"false\";\r\n }\r\n this.dataTemplate.conditionField = this.conditionFields\r\n ? JSON.stringify(this.conditionFields)\r\n : null;\r\n },\r\n //初始化处理\r\n initData() {\r\n if (this.dataTemplate.conditionField) {\r\n this.conditionFields = JSON.parse(this.dataTemplate.conditionField);\r\n }\r\n if (this.conditionFields) {\r\n this.conditionFields.forEach(item => {\r\n if (\r\n item.ct != \"onetext\" &&\r\n item.ct != \"date\" &&\r\n item.ct != \"select\" &&\r\n item.ct != \"radio\" &&\r\n item.ct != \"customDialog\"\r\n ) {\r\n item.ct = \"onetext\";\r\n }\r\n });\r\n }\r\n }, //查询字段控件设置\r\n addCtrlField(index, row,conditionFields) {\r\n if(row.ct == \"select\" && !row.option){\r\n row.option={\r\n choiceType: \"static\",\r\n customQuery:{}\r\n };\r\n }\r\n this.editFieldIndex = index;\r\n this.editField = row;\r\n this.$refs.templateCtrlFieldDialog.showDialog(row,conditionFields);\r\n }, //回填查询字段控件设置\r\n ctrlFieldDialogOnConfirm(field) {\r\n this.editField = field;\r\n },\r\n //双击字段列表中的字段时将该字段加入到显示字段\r\n fillToCondition(row, event, column) {\r\n let isIn = this.isInConditionFields(row.name);\r\n if (!isIn) {\r\n let field = this.getConditionField(row);\r\n this.conditionFields.push(field);\r\n }\r\n },\r\n //将字段列表中的已选字段加入到显示字段列表\r\n allfillToCondition() {\r\n let selectrows = this.$refs.conditionSettingTable.store.states.selection;\r\n if (!selectrows || selectrows.length < 1) {\r\n this.$message({\r\n message: \"请在左侧列表中选择要作为条件的字段\",\r\n type: \"warning\"\r\n });\r\n }\r\n selectrows.forEach(obj => {\r\n let ctrlType = obj.ctrlType;\r\n if (ctrlType == \"dialog\") {\r\n ctrlType = \"customDialog\";\r\n } else if (ctrlType == \"input\") {\r\n ctrlType = \"onetext\";\r\n }\r\n if (obj.type === 'date') {\r\n ctrlType = \"date\";\r\n }\r\n let isTrue = false;\r\n for (let i = 0; i < this.controlTypes.length; i++) {\r\n if (ctrlType == this.controlTypes[i].key) {\r\n isTrue = true;\r\n break;\r\n }\r\n }\r\n if (!isTrue) {\r\n ctrlType = \"onetext\";\r\n }\r\n this.$set(obj, \"ctrlType\", ctrlType);\r\n if (!this.isInConditionFields(obj.name)) {\r\n let field = this.getConditionField(obj);\r\n this.conditionFields.push(field);\r\n }\r\n });\r\n },\r\n //显示字段排序\r\n sort(index, type) {\r\n if (\"up\" == type) {\r\n if (index === 0) {\r\n this.$message({\r\n message: \"已经是列表中第一位\",\r\n type: \"warning\"\r\n });\r\n } else {\r\n let temp = this.conditionFields[index - 1];\r\n this.$set(\r\n this.conditionFields,\r\n index - 1,\r\n this.conditionFields[index]\r\n );\r\n this.$set(this.conditionFields, index, temp);\r\n }\r\n } else {\r\n if (index === this.conditionFields.length - 1) {\r\n this.$message({\r\n message: \"已经是列表中最后一位\",\r\n type: \"warning\"\r\n });\r\n } else {\r\n let i = this.conditionFields[index + 1];\r\n this.$set(this.conditionFields, index + 1, this.displayFields[index]);\r\n this.$set(this.conditionFields, index, i);\r\n }\r\n }\r\n },\r\n //删除显示字段\r\n remove(index) {\r\n this.conditionFields.splice(index, 1);\r\n },\r\n //判断字段是否已在显示字段列表中\r\n isInConditionFields(name) {\r\n let isIn = false;\r\n if (this.conditionFields && this.conditionFields.length > 0) {\r\n this.conditionFields.forEach(obj => {\r\n if (obj.name == name) {\r\n isIn = true;\r\n return;\r\n }\r\n });\r\n }\r\n return isIn;\r\n },\r\n getConditionField(field) {\r\n let option = field.option ? JSON.parse(field.option) : null;\r\n let ctrlType = field.ctrlType;\r\n let resultField;\r\n ctrlType = ctrlType == \"multiselect\" ? \"select\" : ctrlType; //下拉框多选也为下拉框\r\n if (ctrlType == \"selector\" && option) {\r\n ctrlType = this.getSelectorOptions(option.selector.type.alias);\r\n for (var bind in option.bind) {\r\n if (\r\n option.bind[bind].json &&\r\n option.bind[bind].json.name == field.name\r\n ) {\r\n resultField = option.bind[bind].key;\r\n break;\r\n }\r\n }\r\n if (!resultField) {\r\n resultField = option.bind[0].key;\r\n }\r\n }\r\n if (\"text\" == ctrlType || \"checkbox\" == ctrlType) {\r\n ctrlType = \"onetext\";\r\n }\r\n var colPrefix = this.data.colPrefix;\r\n return {\r\n colPrefix: colPrefix,\r\n name: field.name,\r\n na: field.name,\r\n ty: field.type,\r\n op: field.type == \"varchar\" ? \"equal\" : \"1\",\r\n cm: field.desc,\r\n va: \"\",\r\n vf: (option && option.choiceType) || \"static\",\r\n ct: ctrlType || \"onetext\",\r\n qt: this.getQueryType(field.fieldType || field.type, 1),\r\n option: option,\r\n controlContent:\r\n resultField ||\r\n (option && option.choice) ||\r\n (option && option[ctrlType]) ||\r\n \"\"\r\n };\r\n },\r\n getQueryType(type, op) {\r\n let qt = \"equal\";\r\n op = parseInt(op);\r\n switch (type) {\r\n case \"varchar\":\r\n case \"clob\":\r\n if (op) {\r\n switch (op) {\r\n case 1:\r\n qt = \"EQUAL\";\r\n break;\r\n case 2:\r\n qt = \"NOT_EQUAL\";\r\n break;\r\n case 3:\r\n qt = \"LIKE\";\r\n break;\r\n case 4:\r\n qt = \"RIGHT_LIKE\";\r\n break;\r\n case 5:\r\n qt = \"LEFT_LIKE\";\r\n break;\r\n case 6:\r\n qt = \"IN\";\r\n break;\r\n default:\r\n qt = \"LIKE\";\r\n break;\r\n }\r\n }\r\n break;\r\n case \"int\":\r\n case \"number\":\r\n if (op) {\r\n switch (op) {\r\n case 1:\r\n qt = \"EQUAL\";\r\n break;\r\n case 2:\r\n qt = \"GREAT\";\r\n break;\r\n case 3:\r\n qt = \"LESS\";\r\n break;\r\n case 4:\r\n qt = \"GREAT_EQUAL\";\r\n break;\r\n case 5:\r\n qt = \"LESS_EQUAL\";\r\n break;\r\n default:\r\n qt = \"EQUAL\";\r\n break;\r\n }\r\n }\r\n break;\r\n case \"date\":\r\n if (op) {\r\n switch (op) {\r\n case 1:\r\n qt = \"EQUAL\";\r\n break;\r\n case 2:\r\n qt = \"GREAT\";\r\n break;\r\n case 3:\r\n qt = \"LESS\";\r\n break;\r\n case 4:\r\n qt = \"GREAT_EQUAL\";\r\n break;\r\n case 5:\r\n qt = \"LESS_EQUAL\";\r\n break;\r\n case 6:\r\n qt = \"between\";\r\n break;\r\n default:\r\n qt = \"EQUAL\";\r\n break;\r\n }\r\n }\r\n break;\r\n default:\r\n qt = \"equal\";\r\n break;\r\n }\r\n return qt;\r\n },\r\n getSelectorOptions(type) {\r\n let selector = \"userSelector\";\r\n switch (type) {\r\n case \"RoleDialog\":\r\n selector = \"roleSelector\";\r\n break;\r\n case \"PostDialog\":\r\n selector = \"postSelector\";\r\n break;\r\n case \"OrgDialog\":\r\n selector = \"orgSelector\";\r\n break;\r\n default:\r\n selector = \"userSelector\";\r\n break;\r\n }\r\n return selector;\r\n },\r\n getOpOptions(type) {\r\n let options = {\r\n varchar: [\r\n { key: \"equal\", value: \"=\" },\r\n { key: \"2\", value: \"!=\" },\r\n { key: \"3\", value: \"like\" },\r\n { key: \"4\", value: \"left_like\" },\r\n { key: \"5\", value: \"right_like\" },\r\n { key: \"6\", value: \"in\" }\r\n ],\r\n clob: [\r\n { key: \"1\", value: \"=\" },\r\n { key: \"2\", value: \"!=\" },\r\n { key: \"3\", value: \"like\" },\r\n { key: \"4\", value: \"left_like\" },\r\n { key: \"5\", value: \"right_like\" },\r\n { key: \"6\", value: \"in\" }\r\n ],\r\n number: [\r\n { key: \"1\", value: \"=\" },\r\n { key: \"2\", value: \">\" },\r\n { key: \"3\", value: \"<\" },\r\n { key: \"4\", value: \">=\" },\r\n { key: \"5\", value: \"<=\" }\r\n ],\r\n int: [\r\n { key: \"1\", value: \"=\" },\r\n { key: \"2\", value: \">\" },\r\n { key: \"3\", value: \"<\" },\r\n { key: \"4\", value: \">=\" },\r\n { key: \"5\", value: \"<=\" }\r\n ],\r\n date: [\r\n { key: \"1\", value: \"=\" },\r\n { key: \"2\", value: \">\" },\r\n { key: \"3\", value: \"<\" },\r\n { key: \"4\", value: \">=\" },\r\n { key: \"5\", value: \"<=\" },\r\n { key: \"6\", value: \"日期范围\" }\r\n ]\r\n };\r\n let otherOption = [\r\n { key: \"1\", value: \"=\" },\r\n { key: \"2\", value: \">\" },\r\n { key: \"3\", value: \"<\" },\r\n { key: \"4\", value: \">=\" },\r\n { key: \"5\", value: \"<=\" }\r\n ];\r\n if (options[type]) {\r\n return options[type];\r\n } else {\r\n return otherOption;\r\n }\r\n },\r\n changeQt(row, index) {\r\n let qt = this.getQueryType(row.ty, row.op);\r\n this.conditionFields[index].qt = qt;\r\n },\r\n initMpDisplay(row){\r\n this.$set(row,\"mpDisplay\",\"2\");\r\n },\r\n controlTypeChange(index){\r\n this.conditionFields[index].controlContent = \"\";\r\n let option = {...this.option};\r\n let field = this.conditionFields[index];\r\n if( field.ct=='select' || field.ct == 'radio'){\r\n if(field.ct == 'radio'){\r\n option.choiceType = 'static';\r\n }\r\n this.$set(field,\"option\",option);\r\n }\r\n },\r\n setDefaultValue(row){\r\n let inputErrorMessage = \"\";\r\n let pattern = /(.)*/;\r\n if(row.ty == 'number'){\r\n pattern = /^\\d*$/;\r\n inputErrorMessage = \"只能输入数字\"\r\n }\r\n let defaultValue = \"请输入默认值\"\r\n if(row.defaultValue){\r\n defaultValue = row.defaultValue;\r\n }\r\n this.$prompt('请输入默认值','提示',{\r\n confirmButtonText:\"确定\",\r\n cancelButtonText:\"取消\",\r\n inputPlaceholder:defaultValue,\r\n inputPattern:pattern,\r\n inputErrorMessage:inputErrorMessage,\r\n inputValue:row.defaultValue\r\n }).then(({value})=>{\r\n this.$set(row,\"defaultValue\",value)\r\n }).catch(()=>{\r\n\r\n })\r\n }\r\n }\r\n};\r\n",null]}