1
lzhe
2024-05-10 13f8c6f988f54cc442280a51c23d6c53c126d3e9
1
已修改1个文件
87 ■■■■ 文件已修改
src/views/notification/business.vue 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notification/business.vue
@@ -2,7 +2,7 @@
 * @Author: lzhe lzhe@example.com
 * @Date: 2024-03-26 10:28:33
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-05-09 18:06:28
 * @LastEditTime: 2024-05-10 12:08:41
 * @FilePath: /smart-web/src/views/master/person/main/index.vue
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -23,11 +23,11 @@
            <div class="right-content">
                <div class="content-title">
                    <span class="ct-span">通知方式</span>
                    <el-icon><Setting /></el-icon>
                    <el-icon @click="gojob"><Setting /></el-icon>
                </div>
                <el-row class="template-content-box">
                    <el-col :span="8" v-for="(item,index) in contentData">
                        <el-checkbox v-model="item.checked" label="选择" size="large" />
                        <el-checkbox v-model="item.checked" label="选择" size="large" @change="checkboxChange($event,index,item)"/>
                        <div class="box-top">
                            <div class="box-top-name">{{item.notifyName}}</div>
                            <div class="box-top-title">{{item.notifyTemplateName}}</div>
@@ -80,6 +80,7 @@
        name: "business",
        data(){
            return {
                businessKey: "",
                isSaveing: false,
                employeeLi: [],
                organizationLi: [],
@@ -111,7 +112,6 @@
        },
        mounted(){
            this.getTreeList();
            this.getbusiness();
            this.getgroupType();
            this.getEmployeeList();
        },
@@ -119,15 +119,49 @@
            ...ElementPlusIconsVue,saveDialog
        },
        methods: {
            gojob() {
                window.open('http://116.63.148.72:8080/xxl-job-admin');
            },
            checkboxChange(e,index,item) {
                var obj = {
                    businessKey: item.businessKey,
                    notifyType: item.notifyType,
                    status: e?"1":"0"
                }
                this.$HTTP.put("/api/blade-notify/business-notify/changeStatus",obj).then(res=> {
                    if(res.code == 200) {
                        this.getbusiness();  //刷新列表
                    }
                })
            },
            saveSubmit() {
                var empIds = [];
                var orgIds = [];
                this.employeeLi.forEach(item=> {
                    empIds.push(item.id);
                })
                this.organizationLi.forEach(item=> {
                    orgIds.push(item.id);
                })
                var obj = {
                    businessKey: this.businessKey,empIds,orgIds
                }
                this.$HTTP.post("/api/blade-notify/business-notify",obj).then(res=> {
                    if(res.code == 200) {
                        this.$message.success("保存成功");
                    }
                })
            },
            resetData() {
                this.employeeLi = [];
                this.organizationLi = [];
            },
            radio1Change(val) {
                this.getgroupType(val);
                if(val == 1) {
                    this.getgroupType();
                }else if(val == 2) {
                    this.getEmployeeList();
                }
            },
            addOrganization() {
                this.isaddOrganization = false;
@@ -194,29 +228,54 @@
                })
            },
            getbusiness() {
                this.$HTTP.get("/api/blade-notify/business-notify?businessKey=maintenance").then(res=> {
                this.$HTTP.get(`/api/blade-notify/business-notify?businessKey=${this.businessKey}`).then(res=> {
                    if(res.code == 200) {
                        res.data.businessNotifyDTOList.forEach(item=> {
                            item.checked = (item.status == '0'?false: true);
                        })
                        this.contentData = res.data.businessNotifyDTOList;
                        this.employeeLi = res.data.defaultObject.empList || []; //部门反显
                        this.organizationLi = res.data.defaultObject.orgList || []; //员工反显
                        if(this.organizationLi !=  null ) {
                            this.isaddOrganization = false;
                        }
                    }
                })
            },
            handleNodeClick(data) {
                if(data.code) {
                    this.lastLevelId = data.id;
                    // this.$HTTP.post("/api/blade-cps/workstation-wcs-feedback/page?current=1&size=15",obj).then(res=> {
                    //     if(res.code == 200) {
                    //         this.searchDataList = res.data.records;
                    //     }
                    // })
                if(data.businessKey) {
                    this.businessKey = data.businessKey;
                    this.getbusiness();
                }
            },
            getLastLevelIds(tree) {
                if (tree.length === 0) return ""; // 如果没有根节点,返回空
                const lastLevelIds = [];
                const lastLevelCodes = [];
                function traverseTree(node) {
                    if(!node.children) {
                        lastLevelCodes.push(node);
                    }
                    if (node.children) {
                        node.children.forEach(traverseTree); // 递归遍历子节点
                    } else {
                        lastLevelIds.push(node.id);
                    }
                }
                // 只遍历第一个根节点
                traverseTree(tree[0]);
                return {lastLevelCodes,lastLevelId:lastLevelIds[0]}; // 返回lastLevelCodes:没有code的数组。lastLevelId:有code的第一个id
            },
            getTreeList() {
                this.$HTTP.get("/api/blade-notify/business-notify/tree").then(res=> {
                    if(res.code == 200) {
                        this.tableData = res.data;
                        this.lastLevelId = this.getLastLevelIds(this.tableData).lastLevelId;
                        this.$nextTick(()=>{
                            this.$refs.treeRef.setCurrentKey(this.lastLevelId);  //第一个节点的第一个子节点最后一级默认选中
                        })
                        this.businessKey = this.getLastLevelIds(this.tableData).lastLevelCodes[0].businessKey;
                        this.getbusiness();
                    }
                })
            },