{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\system\\SysDict\\LowerDictModal.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\system\\SysDict\\LowerDictModal.vue","mtime":1675071993210},{"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\r\nimport portal from '@/api/portal'\r\nexport default {\r\n    name: 'LowerDictModal',\r\n    components: {},\r\n    props: {\r\n        lowerDictParams: {\r\n            type: Object,\r\n        },\r\n    },\r\n    data() {\r\n        return {\r\n            upperDictId: '', //设置级联的字典id\r\n            dictItemId: '', // 设置级联的字典项id\r\n            load: false,\r\n            visible: false,\r\n            type: '', // \"setting\" ,\"search\"\r\n            defaultQuerys: [\r\n                {\r\n                    property: 'id_',\r\n                    value: '',\r\n                    operation: 'NOT_EQUAL',\r\n                },\r\n                {\r\n                    property: 'flag_',\r\n                    value: 1,\r\n                    operation: 'EQUAL',\r\n                },\r\n            ],\r\n            querySearch: [\r\n                {\r\n                    label: '名称',\r\n                    prop: 'name_',\r\n                },\r\n                {\r\n                    label: '编码',\r\n                    prop: 'code_',\r\n                },\r\n            ],\r\n            dictData: [],\r\n            selectItemData: [],\r\n            pageResult: {\r\n                page: 1,\r\n                pageSize: 20,\r\n                total: 0,\r\n            },\r\n            selectItemTableHeight: 320,\r\n            currentDictId: '', // 左侧当前选中字典的id值\r\n            quickSearchPlaceholder: '请输入字典名称进行查询',\r\n            sectionObj: {\r\n                // key 是字典id 值是选中的字典项的id的数组\r\n            },\r\n        }\r\n    },\r\n    methods: {\r\n        loadData(param, cb) {\r\n            this.load = true\r\n            if (this.type == 'search') {\r\n                let param = this.qs.stringify({\r\n                    detailId: this.dictItemId,\r\n                })\r\n                portal\r\n                    .loadSetLowerDict(param)\r\n                    .then((resp) => {\r\n                        let response = resp\r\n                        this.dictData = response\r\n                        this.$nextTick(() => {\r\n                            this.selectItemTableHeight = this.$refs.htTable.$refs.htTable.maxHeight\r\n                        })\r\n                        this.load = false\r\n                    })\r\n                    .finally(() => cb())\r\n            } else {\r\n                portal\r\n                    .loadDictList(param)\r\n                    .then((resp) => {\r\n                        let response = resp\r\n                        this.dictData = response.rows\r\n                        this.$nextTick(() => {\r\n                            this.selectItemTableHeight = this.$refs.htTable.$refs.htTable.maxHeight\r\n                        })\r\n                        this.load = false\r\n                        this.pageResult = {\r\n                            page: response.page,\r\n                            pageSize: response.pageSize,\r\n                            total: response.total,\r\n                        }\r\n                    })\r\n                    .finally(() => cb())\r\n            }\r\n        },\r\n        rowClick(row, column, event) {\r\n            this.currentDictId = row.id\r\n            console.log(row, column)\r\n            this.$refs.htTable.$refs.htTable.toggleRowSelection(row)\r\n            this.qs.stringify({id: row.id})\r\n\r\n            if (this.type == 'search') {\r\n                this.loadSetLowerDictItem()\r\n            } else {\r\n                let data = {\r\n                    dictionaryId: row.id,\r\n                    flag: 1,\r\n                }\r\n                portal.queryDictDetail(data).then((res) => {\r\n                    console.log(res, 'res')\r\n                    this.selectItemData = res\r\n                    this.toggeRowSelection()\r\n                })\r\n            }\r\n        },\r\n        toggeRowSelection() {\r\n            let selected = this.sectionObj[this.currentDictId]\r\n            if (selected) {\r\n                this.$nextTick(() => {\r\n                    selected.forEach((row) => {\r\n                        this.$refs.selectTable.toggleRowSelection(\r\n                            this.selectItemData.find((item) => {\r\n                                return row.id == item.id // 注意这里寻找的字段要唯一\r\n                            }),\r\n                            true\r\n                        )\r\n                    })\r\n                })\r\n            }\r\n        },\r\n        selectionChange(selection) {\r\n            this.sectionObj[this.currentDictId] = selection\r\n            console.log(selection, 'selection')\r\n            console.log(this.sectionObj)\r\n        },\r\n        setCurrent(row) {\r\n            this.$refs.singleTable.setCurrentRow(row)\r\n        },\r\n        quickSearch() {},\r\n        open(row, type, upperDictId) {\r\n            this.type = type\r\n            this.defaultQuerys[0].value = upperDictId\r\n            this.upperDictId = upperDictId\r\n            this.dictItemId = row.id\r\n            this.visible = true\r\n            this.$nextTick(() => {\r\n                this.$refs.htTable.load()\r\n            })\r\n        },\r\n        close() {\r\n            this.beforeClose()\r\n            this.visible = false\r\n        },\r\n        handleClickRow(record) {\r\n            return {\r\n                on: {\r\n                    click: async () => {\r\n                        let keys = []\r\n                        keys.push(record.id)\r\n                        this.selectedRowKeys = keys\r\n                        if (this.fromUpperDict.type == 'add') {\r\n                            this.itemDataSource = await this.loadDictItem(\r\n                                this.selectedRowKeys\r\n                            )\r\n                        } else {\r\n                            this.itemDataSource = await this.loadAddedDictItem(\r\n                                this.selectedRowKeys[0]\r\n                            )\r\n                        }\r\n                    },\r\n                },\r\n            }\r\n        },\r\n        rowClassName() {\r\n            return 'row-class-name'\r\n        },\r\n        beforeClose() {\r\n            this.upperDictId = ''\r\n            this.defaultQuerys[0].value = ''\r\n            this.currentDictId = ''\r\n            this.type = ''\r\n            this.dictData = []\r\n            this.selectItemData = []\r\n            this.sectionObj = {}\r\n        },\r\n        // 保存下级字典\r\n        saveLowerDict() {\r\n            if (this.type == 'setting') {\r\n                let ids = []\r\n                Object.values(this.sectionObj).forEach((selections) => {\r\n                    selections.forEach((item) => {\r\n                        ids.push(item.id)\r\n                    })\r\n                })\r\n                if(!ids.length){\r\n                    this.$message.warning(\"请选择级联字典及对应字典项\");\r\n                    return\r\n                }\r\n                let params = this.qs.stringify({\r\n                    detailId: this.dictItemId,\r\n                    lowerDetailIds: ids.join(','),\r\n                    lowerDictId: this.currentDictId,\r\n                })\r\n                portal\r\n                    .saveDictLowerDetails(params)\r\n                    .then(() => {\r\n                        this.$message.success('字典级联设置成功')\r\n                        this.beforeClose()\r\n                        this.visible = false\r\n                    })\r\n                    .catch((err) => {\r\n                        this.$message.success('字典级联设置失败')\r\n                    })\r\n            } else {\r\n                this.close();\r\n            }\r\n        },\r\n        // 查看\r\n        loadSetLowerDictItem() {\r\n            let data = this.qs.stringify({\r\n                detailId: this.dictItemId,\r\n                dictLowerId: this.currentDictId,\r\n            })\r\n            // 查看已设置下级字典项\r\n            portal.loadSetLowerDictItem(data).then((res) => {\r\n                console.log(res, 'res')\r\n                this.selectItemData = res\r\n            })\r\n        },\r\n        // 删除已设置的级联字典\r\n        deleteDictItem(id) {\r\n            let data = this.qs.stringify({\r\n                detailId: this.dictItemId,\r\n                lowerDetailIds: id,\r\n            })\r\n            // 查看已设置下级字典\r\n            portal.delLowerDetails(data).then((res) => {\r\n                this.loadSetLowerDictItem()\r\n                this.$message.success('删除成功')\r\n            })\r\n        },\r\n    },\r\n}\r\n",null]}