{"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\\DisplaySetting.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\dataTemplate\\DisplaySetting.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//\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//\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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nconst eipAuthDialog = () => import('@/components/dialog/EipAuthDialog.vue')\r\nconst EipDataTemplateDialog = () =>\r\n import('@/components/dialog/EipDataTemplateDialog.vue')\r\nconst BTN_TYPE = {\r\n isShow: '1',\r\n notShow: '2',\r\n}\r\nexport default {\r\n components: {\r\n eipAuthDialog,\r\n EipDataTemplateDialog,\r\n },\r\n name: 'display-setting',\r\n props: ['data'],\r\n data() {\r\n return {\r\n btnType:BTN_TYPE,//移动端显示隐藏按钮\r\n activeName: 'formatter',\r\n reportName: '',\r\n conditionField: [],\r\n dataTemplate: {},\r\n displaySettingFields: [],\r\n displayFields: [],\r\n permissionMap: {},\r\n permissionList: [],\r\n rightList: [\r\n {key: '', value: '请选择'},\r\n {key: 'none', value: '无'},\r\n {key: 'everyone', value: '所有人'},\r\n ],\r\n tabHeight: `${document.documentElement.clientHeight}` - 245,\r\n currentAuthRow: null,\r\n settingVisible: false,\r\n selectedRow: {},\r\n proSetting2: true,\r\n formFieldList: [],\r\n urlParams: [],\r\n defaultRight: '[{\"type\":\"everyone\",\"id\":\"\",\"name\":\"\",\"script\":\"\"}]',\r\n sqlConfigDialog: false,\r\n sql: '',\r\n sqlConfigRow: {},\r\n isShowRuleSettingDialog: false,\r\n cmOptions: {\r\n value: ' ',\r\n mode: 'javascript',\r\n readOnly: false,\r\n tabSize: 3,\r\n theme: 'base16-light',\r\n lineNumbers: true,\r\n line: true,\r\n },\r\n diyScript: '',\r\n ruleSettingIndex: '',\r\n dialogRuleData: '',\r\n multipleSelection: [],\r\n rightLab: '',\r\n }\r\n },\r\n computed: {\r\n calOptions: function () {\r\n return [\r\n {key: 100, value: '按100计算'},\r\n {key: 10, value: '按10计算'},\r\n {key: 1, value: '按1计算'},\r\n {key: this.selectedRow.diyProRule, value: '输入统计总数'},\r\n ]\r\n },\r\n },\r\n mounted() {\r\n if (this.data.bpmDataTemplate.displayField) {\r\n let displayFields = JSON.parse(this.data.bpmDataTemplate.displayField)\r\n for (let i = 0; i < displayFields.length; i++) {\r\n if (!displayFields[i].formatterData) {\r\n displayFields[i].formatterData = []\r\n }\r\n if (!displayFields[i].ruleSettings) {\r\n displayFields[i].ruleSettings = []\r\n }\r\n }\r\n this.data.bpmDataTemplate.displayField = JSON.stringify(displayFields)\r\n }\r\n this.dataTemplate = this.data.bpmDataTemplate\r\n this.displaySettingFields = [...this.data.fields]\r\n this.templates = this.data.templates\r\n this.permissionMap = this.data.permissionList\r\n this.initData()\r\n },\r\n methods: {\r\n btnChange(row){\r\n this.$set(row,'mpDisplay',row.mpDisplay==='1' ? '2' : '1')\r\n },\r\n dialogOk() {\r\n var conditionField = this.conditionField\r\n let isDislogClose = true\r\n this.selectedRow.parameter = []\r\n conditionField.forEach((item) => {\r\n this.selectedRow.parameter.push({\r\n property: item.key,\r\n value: item.parameter,\r\n group: 'main',\r\n operation: item.qt,\r\n relation: 'AND',\r\n })\r\n })\r\n if (this.selectedRow.urlType == 'url' && this.urlParams) {\r\n this.urlParams.forEach((param) => {\r\n const paramText = /^[a-zA-Z][a-zA-Z0-9]+$/\r\n if (!paramText.test(param.name)) {\r\n isDislogClose = false\r\n this.$message.warning('参数名称格式有误')\r\n }\r\n })\r\n if (isDislogClose) {\r\n this.selectedRow.urlParams = [...this.urlParams]\r\n this.urlParams = []\r\n }\r\n }\r\n if (isDislogClose) {\r\n this.settingVisible = false\r\n }\r\n },\r\n onDataTemplateConfirm(selectedNode) {\r\n if (selectedNode && selectedNode.length > 0) {\r\n this.$nextTick(() => {\r\n this.conditionField = []\r\n var conditionField = JSON.parse(selectedNode[0].conditionField)\r\n conditionField.forEach((item) => {\r\n var obj = {\r\n key: item.colPrefix + item.name,\r\n parameter: '',\r\n qt: item.qt,\r\n value: item.cm,\r\n }\r\n this.conditionField.push(obj)\r\n })\r\n this.reportName = selectedNode[0].name\r\n this.selectedRow.reportNameConfigure = {\r\n alias: selectedNode[0].alias,\r\n reportName: selectedNode[0].name,\r\n conditionField: this.conditionField,\r\n }\r\n })\r\n } else {\r\n this.reportName = ''\r\n this.conditionField = []\r\n this.selectedRow.reportNameConfigure = {}\r\n }\r\n },\r\n //保存显示列数据\r\n saveDisplayField() {\r\n this.dataTemplate.displayField = this.displayFields\r\n ? JSON.stringify(this.displayFields)\r\n : null\r\n },\r\n validateDisplayField() {\r\n for (let i = 0; i < this.displayFields.length; i++) {\r\n if (this.displayFields[i].customColumn && !this.displayFields[i].name) {\r\n this.$message.warning(`请完善显示字段第${i + 1}列虚拟字段的列名`)\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n //初始化处理\r\n initData() {\r\n if (this.dataTemplate.displayField) {\r\n this.displayFields = JSON.parse(this.dataTemplate.displayField)\r\n }\r\n if (this.permissionMap) {\r\n for (let key in this.permissionMap) {\r\n this.permissionList.push({\r\n type: key,\r\n title: this.permissionMap[key],\r\n })\r\n }\r\n }\r\n if (this.dataTemplate.formField) {\r\n this.formFieldList = []\r\n const formFieldList = JSON.parse(this.dataTemplate.formField)\r\n let fieldMap = {}\r\n let _this = this\r\n formFieldList.forEach((ffield) => {\r\n if (!fieldMap[ffield.name]) {\r\n _this.formFieldList.push(ffield)\r\n fieldMap[ffield.name] = true\r\n }\r\n })\r\n }\r\n },\r\n showDataTemplateDialog() {\r\n this.$refs.dataTemplateDialog.showDialog()\r\n },\r\n columnFilter(type) {\r\n return type != 'sub' && type != 'tabs'\r\n },\r\n //双击字段列表中的字段时将该字段加入到显示字段\r\n fillToDisplay(row, event, column) {\r\n let isIn = this.isInDisplayFields(row.name)\r\n if (!isIn) {\r\n let fileds = {\r\n name: row.name,\r\n desc: row.desc,\r\n type: row.type,\r\n showFlowField: row.showFlowField,\r\n right: this.defaultRight,\r\n }\r\n this.displayFields.push(fileds)\r\n }\r\n },\r\n //将字段列表中的已选字段加入到显示字段列表\r\n allFillToDisplay() {\r\n let selectrows = this.$refs.displaySettingTable.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 if (!this.isInDisplayFields(obj.name)) {\r\n let fileds = {\r\n name: obj.name,\r\n desc: obj.desc,\r\n type: obj.type,\r\n showFlowField: obj.showFlowField,\r\n right: this.defaultRight,\r\n }\r\n this.displayFields.push(fileds)\r\n }\r\n })\r\n },\r\n //打开设置权限\r\n setFieldRightDialog(row) {\r\n let conf = {\r\n right: JSON.parse(row.right),\r\n permissionList: this.permissionList,\r\n }\r\n this.currentAuthRow = row\r\n this.$refs.eipAuthDialog.showDialog(conf)\r\n },\r\n //设置权限\r\n authDialogOnConfirm(data) {\r\n if (this.currentAuthRow) {\r\n this.currentAuthRow.right = JSON.stringify(data)\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.displayFields[index - 1]\r\n this.$set(this.displayFields, index - 1, this.displayFields[index])\r\n this.$set(this.displayFields, index, temp)\r\n }\r\n } else {\r\n if (index === this.displayFields.length - 1) {\r\n this.$message({\r\n message: '已经是列表中最后一位',\r\n type: 'warning',\r\n })\r\n } else {\r\n let i = this.displayFields[index + 1]\r\n this.$set(this.displayFields, index + 1, this.displayFields[index])\r\n this.$set(this.displayFields, index, i)\r\n }\r\n }\r\n },\r\n\r\n //删除显示字段\r\n remove(index) {\r\n this.displayFields.splice(index, 1)\r\n },\r\n //判断字段是否已在显示字段列表中\r\n isInDisplayFields(name) {\r\n let isIn = false\r\n if (this.displayFields && this.displayFields.length > 0) {\r\n this.displayFields.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 //显示权限信息\r\n rightToDesc(right) {\r\n if (right) {\r\n right = JSON.parse(right)\r\n } else {\r\n return '无'\r\n }\r\n let desc = ''\r\n let _this = this\r\n right.forEach((r) => {\r\n if (desc) {\r\n desc += ' 和 '\r\n }\r\n var str = _this.permissionMap[r.type]\r\n if (r.name) {\r\n str += ':' + r.name\r\n } else if (r.id) {\r\n str += ':' + r.id\r\n }\r\n desc += str\r\n })\r\n return desc\r\n },\r\n //标题统一权限设置\r\n rightRenderHeader(h, para) {\r\n //下拉框选项\r\n let _this = this\r\n let rights = [\r\n {key: '', value: '请选择'},\r\n {key: 'none', value: '无'},\r\n {key: 'everyone', value: '所有人'},\r\n ]\r\n let rightMap = {'': '请选择', none: '无', everyone: '所有人'}\r\n //下拉框内容包裹在一个div里面\r\n return h('div', {}, [\r\n h(\r\n 'span',\r\n {\r\n //div里面有一个文字提示:下拉框所属内容\r\n style: {},\r\n class: 'level-font-class',\r\n },\r\n para.column.label\r\n ),\r\n h(\r\n 'el-select',\r\n {\r\n //el-select实现下拉框\r\n size: 'mini',\r\n style: {\r\n width: '120px',\r\n marginLeft: '10px',\r\n },\r\n on: {\r\n input: (value) => {\r\n //随着下拉框的不同,文字框里的内容在边\r\n _this.rightLab = rightMap[value]\r\n if (\r\n value &&\r\n _this.displayFields &&\r\n _this.displayFields.length > 0\r\n ) {\r\n _this.displayFields.forEach((field) => {\r\n if (field.right) {\r\n field.right = JSON.parse(field.right)\r\n }\r\n if (field.right[0].hasOwnProperty('v')) {\r\n field.right[0] = {v: value}\r\n } else {\r\n field.right[0] = {type: value}\r\n }\r\n field.right = JSON.stringify(field.right)\r\n })\r\n }\r\n },\r\n },\r\n props: {\r\n value: _this.rightLab, //文字框的内容取决于这个value,如果value不存在,会报错\r\n },\r\n },\r\n [\r\n //下拉框里面填充选项,通过rights遍历map,为每一个选项赋值。\r\n rights.map((item) => {\r\n return h('el-option', {\r\n props: {\r\n value: item.key,\r\n label: item.value,\r\n },\r\n })\r\n }),\r\n ]\r\n ),\r\n ])\r\n },\r\n setting(row) {\r\n this.settingVisible = true\r\n this.selectedRow = row\r\n if (this.selectedRow.reportNameConfigure) {\r\n this.reportName = this.selectedRow.reportNameConfigure.reportName\r\n this.conditionField =\r\n this.selectedRow.reportNameConfigure.conditionField == undefined\r\n ? []\r\n : this.selectedRow.reportNameConfigure.conditionField\r\n }\r\n if (!this.selectedRow.ruleSettings) {\r\n this.selectedRow.ruleSettings = []\r\n }\r\n this.selectedRow.diyProRule = 0\r\n if (!this.selectedRow.formatterData) {\r\n this.selectedRow.formatterData = []\r\n }\r\n /* this.selectedRow.ruleSetting = 100;*/\r\n if (this.selectedRow.proSetting) {\r\n this.proSetting2 = true\r\n } else {\r\n this.selectedRow.proSetting = false\r\n this.proSetting2 = false\r\n }\r\n if (\r\n this.selectedRow.urlType == 'url' &&\r\n this.selectedRow.urlParams &&\r\n this.selectedRow.urlParams.length > 0\r\n ) {\r\n this.urlParams = [...this.selectedRow.urlParams]\r\n }\r\n },\r\n addSetting() {\r\n this.selectedRow.formatterData.push({\r\n key_: '',\r\n value_: '',\r\n })\r\n },\r\n removeSetting(index) {\r\n this.selectedRow.formatterData.splice(index, 1)\r\n },\r\n removeProSetting(index) {\r\n this.selectedRow.ruleSettings.splice(index, 1)\r\n },\r\n cancelSetting() {\r\n this.settingVisible = false\r\n this.selectedRow.formatterData = []\r\n },\r\n urlParamsAdd() {\r\n this.urlParams.push({name: '', field: ''})\r\n },\r\n urlParamsRemove(item) {\r\n this.urlParams.remove(item)\r\n },\r\n initMpDisplay(row) {\r\n this.$set(row, 'mpDisplay', '2')\r\n },\r\n // 添加自定义列值\r\n addCustomColumn() {\r\n this.displayFields.push({\r\n desc: '',\r\n name: '',\r\n right: '[{\"type\":\"everyone\",\"id\":\"\",\"name\":\"\",\"script\":\"\"}]',\r\n showFlowField: true,\r\n type: 'varchar',\r\n sql: '',\r\n customColumn: true,\r\n })\r\n },\r\n delCustomColumn() {\r\n const names = this.multipleSelection.map((item) => item.name)\r\n this.displayFields = this.displayFields.filter(\r\n (item) => !names.includes(item.name)\r\n )\r\n },\r\n sqlDialogShow(row) {\r\n this.sqlConfigDialog = true\r\n this.sqlConfigRow = row\r\n if (row.sql) {\r\n this.sql = row.sql\r\n }\r\n },\r\n sqlConfigOk() {\r\n this.displayFields.forEach((field) => {\r\n if (field.name == this.sqlConfigRow.name) {\r\n field.sql = this.sql\r\n this.sql = ''\r\n }\r\n })\r\n this.sqlConfigDialog = false\r\n },\r\n //添加显示设置\r\n addProSetting() {\r\n this.selectedRow.ruleSettings.push({\r\n proColor: '',\r\n proRule: '',\r\n })\r\n },\r\n //弹窗规则设置对话框\r\n showRuleSettingDialog(proRule, index) {\r\n this.ruleSettingIndex = index\r\n this.dialogRuleData = proRule\r\n this.isShowRuleSettingDialog = true\r\n },\r\n diyScriptChange(myValue) {\r\n var cm = this.$refs.scriptText.codemirror\r\n var doc = cm.getDoc()\r\n var cursor = doc.getCursor() //gets the line number in the cursor position\r\n var line = doc.getLine(cursor.line) //get the line contents\r\n var pos = {\r\n line: cursor.line,\r\n ch: line.length - 1, //set the character position to the end of the line\r\n }\r\n doc.replaceRange(' ' + myValue + ' ', pos) //adds a new line\r\n },\r\n methodOk() {\r\n this.selectedRow.ruleSettings[\r\n this.ruleSettingIndex\r\n ].proRule = this.dialogRuleData\r\n this.dialogRuleData = ''\r\n this.isShowRuleSettingDialog = false\r\n },\r\n proSwitchChange(data) {\r\n this.selectedRow.proSetting = data\r\n if (data) {\r\n this.selectedRow.diyProRule = 0\r\n }\r\n },\r\n diyProRuleChange(val) {\r\n this.$set(this.selectedRow, 'diyProRule', val)\r\n if (val == 1 || val == 10 || val == 100) {\r\n this.$set(this.selectedRow, 'diyProRule', 0)\r\n }\r\n this.$set(this.selectedRow, 'ruleSetting', val)\r\n },\r\n handleSelectionChange(val) {\r\n this.multipleSelection = val\r\n },\r\n },\r\n}\r\n",null]}