{"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\\flow\\FlowFormAuth.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\flow\\FlowFormAuth.vue","mtime":1675071991803},{"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\r\nimport flow from \"@/api/flow.js\";\r\nimport req from \"@/request.js\";\r\nimport { mapState, mapActions } from \"vuex\";\r\n\r\nconst eipAuthDialog = () => import(\"@/components/dialog/EipAuthDialog.vue\");\r\nconst flowFormSubRowAuth = () => import(\"@/components/flow/FlowFormSubRowAuth.vue\");\r\n\r\n\r\nexport default {\r\n props: [\"defId\", \"topDefKey\"],\r\n components: { eipAuthDialog ,flowFormSubRowAuth},\r\n data() {\r\n return {\r\n dialogVisible: false,\r\n _oldPermission: {},\r\n subTableList: [],\r\n permissionList: [],\r\n pageParams: {},\r\n curAuthieldObj: {},\r\n subRowAuth:{},\r\n boTree:{}\r\n };\r\n },\r\n methods: {\r\n selectField: function(field, rightType, action) {\r\n let data = [{ checked: true, title: \"无\", type: \"none\" }];\r\n if (action == \"everyone\") {\r\n data = [{ checked: true, title: \"所有人\", type: \"everyone\" }];\r\n }\r\n field[rightType] = data;\r\n //当只读,编辑和必填是所有人时,将只读点击无时,自动将编辑和必填也设置为无\r\n if(rightType=='read' && action=='none'){\r\n field['write']=[{ checked: true, title: \"无\", type: \"none\" }];\r\n field['required']=[{ checked: true, title: \"无\", type: \"none\" }];\r\n }\r\n //当编辑和必填是所有人时,将编辑点击无时,自动将必填也设置为无\r\n if(rightType=='write' && action=='none'){\r\n field['required']=[{ checked: true, title: \"无\", type: \"none\" }];\r\n }\r\n },\r\n openSunRowAuthDailog(table){\r\n this.$refs.flowFormSubRowAuth.showDialog(this.subRowAuth,table,this.boTree);\r\n },\r\n showDialog: function(param) {\r\n this.dialogVisible = true;\r\n let this_ = this;\r\n this.pageParams = param;\r\n req\r\n .post(window.context.form + \"/form/rights/v1/getPermission\", param)\r\n .then(response => {\r\n let data = response.data;\r\n data.permissionList.push({ type: \"none\", title: \"无\" });\r\n this_._oldPermission = JSON.parse(JSON.stringify(data));\r\n this_.handleData(data);\r\n let permissionObj = {};\r\n for (var i = 0, p; (p = data.permissionList[i++]); ) {\r\n permissionObj[p.type] = p.title;\r\n }\r\n this_.permissionList = permissionObj;\r\n });\r\n req\r\n .get(window.context.form + \"/form/form/v1/generateBoTreeData?formKey=\"+this.pageParams.formKey)\r\n .then(response => {\r\n let data = response.data;\r\n if (data && data.value) {\r\n this_.boTree = JSON.parse(data.value)\r\n }\r\n });\r\n },\r\n handleClose: function() {\r\n this._oldPermission = {};\r\n this.subTableList = [];\r\n this.permissionList = [];\r\n this.pageParams = {};\r\n this.curAuthieldObj = {};\r\n this.subRowAuth = {};\r\n this.boTree = {};\r\n this.dialogVisible = false;\r\n },\r\n addNewField: function() {\r\n let this_ = this;\r\n req\r\n .post(\r\n window.context.form +\r\n \"/form/rights/v1/getDefaultByFormKey?type=1&formKey=\" +\r\n this.pageParams.formKey,\r\n this.pageParams\r\n )\r\n .then(response => {\r\n let data = response.data;\r\n if (this_._oldPermission) {\r\n // 不存在的字段,添加进来\r\n this.deepMerge(data, this_._oldPermission);\r\n }\r\n this_.handleData(data);\r\n });\r\n },\r\n deepMerge: function(obj1, obj2) {\r\n var key;\r\n for (key in obj2) {\r\n // 如果target(也就是obj1[key])存在,且是对象的话再去调用deepMerge,否则就是obj1[key]里面没这个对象,需要与obj2[key]合并\r\n if (!obj2.hasOwnProperty(key)) continue;\r\n obj1[key] =\r\n obj1[key] && obj1[key].toString() === \"[object Object]\"\r\n ? this.deepMerge(obj1[key], obj2[key])\r\n : (obj1[key] = obj2[key]);\r\n }\r\n return obj1;\r\n },\r\n emptyAll: function() {\r\n let this_ = this;\r\n req\r\n .get(\r\n window.context.form +\r\n \"/form/rights/v1/emptyAll?flowKey=\" +\r\n this.pageParams.flowKey\r\n )\r\n .then(response => {\r\n let data = response.data;\r\n if (data.state) {\r\n this_.$message.success(data.message);\r\n this_.showDialog(this.pageParams);\r\n } else {\r\n this_.$message.fail(data.message);\r\n }\r\n });\r\n },\r\n getDefaultByFormKey: function() {\r\n let this_ = this;\r\n req\r\n .post(\r\n window.context.form +\r\n \"/form/rights/v1/getDefaultByFormKey?type=1&formKey=\" +\r\n this.pageParams.formKey,\r\n this.pageParams\r\n )\r\n .then(response => {\r\n let data = response.data;\r\n this_.handleData(data);\r\n });\r\n },\r\n hideOrShowAll: function() {\r\n if (this.checkIsAllhide()) {\r\n this.hiddenAll();\r\n } else {\r\n this.editAll();\r\n }\r\n },\r\n hiddenAll: function() {\r\n this.clickAll(\"read\", \"none\");\r\n this.clickAll(\"write\", \"none\");\r\n this.clickAll(\"required\", \"none\");\r\n },\r\n editAll: function() {\r\n this.clickAll(\"read\", \"everyone\");\r\n this.clickAll(\"write\", \"none\");\r\n this.clickAll(\"required\", \"none\");\r\n },\r\n /**\r\n * 批量权限选择 rightType:权限类型 只读-\"read\" 编辑-\"write\" 必填-\"required\"\r\n */\r\n clickAll: function(rightType, type) {\r\n for (let index = 0; index < this.subTableList.length; index++) {\r\n //子表\r\n if(!this.subTableList[index].main && this.subTableList[index].ctrlType!=\"dataView\"){\r\n if(rightType == \"write\" && type == \"none\"){\r\n this.subTableList[index].rights.add = false;\r\n this.subTableList[index].rights.del = false;\r\n }else if(rightType == \"write\" && type == \"everyone\"){\r\n this.subTableList[index].rights.add = true;\r\n this.subTableList[index].rights.del = true;\r\n }\r\n }\r\n const fields = this.subTableList[index].fields;\r\n for (let j = 0, f; (f = fields[j++]); ) {\r\n f[rightType] = [{ type: type }];\r\n //当只读,编辑和必填是所有人时,将只读点击无时,自动将编辑和必填也设置为无\r\n if(rightType=='read' && type=='none'){\r\n f['write']=[{ checked: true, title: \"无\", type: \"none\" }];\r\n f['required']=[{ checked: true, title: \"无\", type: \"none\" }];\r\n }\r\n //当编辑和必填是所有人时,将编辑点击无时,自动将必填也设置为无\r\n if(rightType=='write' && type=='none'){\r\n f['required']=[{ checked: true, title: \"无\", type: \"none\" }];\r\n }\r\n }\r\n }\r\n },\r\n checkIsAllhide: function() {\r\n for (let index = 0; index < this.subTableList.length; index++) {\r\n const fields = this.subTableList[index].fields;\r\n if (fields && fields.constructor == Array) {\r\n for (var j = 0; j < fields.length; j++) {\r\n var file = fields[j];\r\n if (this.checkIshide(file) == \"否\") {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n },\r\n checkIshide: function(file) {\r\n let desc = \"是\";\r\n if (file && file.read && file.read.length > 0) {\r\n if (file.read[0].type != \"none\") {\r\n desc = \"否\";\r\n return desc;\r\n }\r\n }\r\n if (file && file.required && file.required.length > 0) {\r\n if (file.required[0].type != \"none\") {\r\n desc = \"否\";\r\n return desc;\r\n }\r\n }\r\n if (file && file.write && file.write.length > 0) {\r\n if (file.write[0].type != \"none\") {\r\n desc = \"否\";\r\n return desc;\r\n }\r\n }\r\n return desc;\r\n },\r\n hideColumn: function(field) {\r\n if (this.checkIshide(field) == \"否\") {\r\n field.read = [{ type: \"none\" }];\r\n field.required = [{ type: \"none\" }];\r\n field.write = [{ type: \"none\" }];\r\n } else {\r\n field.read = [{ type: \"everyone\" }];\r\n field.required = [{ type: \"none\" }];\r\n field.write = [{ type: \"everyone\" }];\r\n }\r\n },\r\n fieldDialog: function(field, rightType) {\r\n this.curAuthieldObj[\"f\"] = field;\r\n this.curAuthieldObj[\"t\"] = rightType;\r\n let tmp = JSON.parse(JSON.stringify(field[rightType]));\r\n let conf = {\r\n right: tmp,\r\n permissionList: this._oldPermission.permissionList\r\n };\r\n this.$refs.flowFormFiledAuth.showDialog(conf);\r\n },\r\n filedAuthConfirm: function(conf) {\r\n this.curAuthieldObj[\"f\"][this.curAuthieldObj[\"t\"]] = conf;\r\n },\r\n rightToDesc: function(right) {\r\n let desc = \"\";\r\n right.forEach(element => {\r\n if (desc) {\r\n desc += \" 和 \";\r\n }\r\n let str = this.permissionList[element.type];\r\n if (element.name) {\r\n str += \":\" + element.name;\r\n } else if (element.id) {\r\n str += \":\" + element.id;\r\n }\r\n desc += str;\r\n });\r\n return desc;\r\n },\r\n indexOf: function(data, val) {\r\n if (data.indexOf(val) != -1) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n saveAuth: function() {\r\n let param = JSON.parse(JSON.stringify(this.pageParams));\r\n // 提交前拼装回json\r\n param.permission = {};\r\n param.permission.table = {};\r\n var tmp = JSON.parse(JSON.stringify(this.subTableList));\r\n for (const iterator of tmp) {\r\n let _fields = {};\r\n for (const f of iterator.fields) {\r\n _fields[f.fieldName] = f;\r\n }\r\n iterator.fields = _fields;\r\n param.permission.table[iterator.tableName] = iterator;\r\n }\r\n //如果为实例情况,清除读写权限。\r\n if (param.type == \"2\") {\r\n this.handPermissionData(param.permission);\r\n }else{\r\n param.permission.subRowAuth = this.subRowAuth;\r\n }\r\n param.permission = JSON.stringify(param.permission);\r\n let this_ = this;\r\n req\r\n .post(window.context.form + \"/form/rights/v1/save\", param)\r\n .then(response => {\r\n let data = response.data;\r\n if (data.state) {\r\n this_.$message.success(data.message);\r\n this_.handleClose();\r\n } else {\r\n this_.$message.fail(data.message);\r\n }\r\n });\r\n },\r\n handPermissionData: function(json) {\r\n //param.permission\r\n let tableJson = json.table;\r\n //遍历表\r\n for (let key in tableJson) {\r\n //获取字段\r\n let fields = tableJson[key].fields;\r\n //遍历字段\r\n for (let fieleName in fields) {\r\n //字段信息\r\n let field = fields[fieleName];\r\n delete field.write;\r\n delete field.required;\r\n }\r\n }\r\n let opinions = json.opinion;\r\n if (!opinions) return;\r\n\r\n for (var key in opinions) {\r\n let opinion = opinions[key];\r\n delete opinion.write;\r\n delete opinion.required;\r\n }\r\n },\r\n handleData: function(data) {\r\n let tableSn = data.tableSn;\r\n data = data.json;\r\n this.subRowAuth = data.subRowAuth || {};\r\n this.subTableList = [];\r\n tableSn.forEach(obj => {\r\n let temp = data.table[obj.name_];\r\n if (temp) {\r\n temp.tableName = obj.name_;\r\n temp.grade = obj.grade_;\r\n let tempArr = [];\r\n for (let fieldName in temp.fields) {\r\n let fieldTemp = temp.fields[fieldName];\r\n fieldTemp.fieldName = fieldName;\r\n tempArr.push(fieldTemp);\r\n }\r\n tempArr.sort(function(a, b) {\r\n return a.sn - b.sn;\r\n });\r\n temp.fields = tempArr;\r\n this.subTableList.push(temp);\r\n }\r\n });\r\n }\r\n }\r\n};\r\n",null]}