1
lzhe
2024-05-09 86886bf8d6dcdfd92c1423a112538cca78aabe05
1
已添加1个文件
已修改1个文件
216 ■■■■■ 文件已修改
src/views/notification/business.vue 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notification/editbusiness.vue 147 ●●●●● 补丁 | 查看 | 原始文档 | 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-04-19 18:18:19
 * @LastEditTime: 2024-05-09 18:06:28
 * @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
-->
@@ -26,13 +26,13 @@
                    <el-icon><Setting /></el-icon>
                </div>
                <el-row class="template-content-box">
                    <el-col :span="8" v-for="item in contentData">
                        <el-checkbox v-model="checked1" label="选择" size="large" />
                    <el-col :span="8" v-for="(item,index) in contentData">
                        <el-checkbox v-model="item.checked" label="选择" size="large" />
                        <div class="box-top">
                            <div>{{item.notifyName}}</div>
                            <div>{{item.notifyTemplateName}}</div>
                            <div>
                                <span><el-icon><EditPen /></el-icon>编辑</span>
                            <div class="box-top-name">{{item.notifyName}}</div>
                            <div class="box-top-title">{{item.notifyTemplateName}}</div>
                            <div class="box-top-btn">
                                <span @click="table_edit(item, index)"><el-icon><EditPen /></el-icon>编辑</span>
                                <span><el-icon><Delete /></el-icon>删除</span>
                            </div>
                        </div>
@@ -53,7 +53,7 @@
            </div>
        </div>
    </div>
<!--     <save-dialog v-if="dialog.save" ref="saveDialog" :feedBackStatusList="feedBackStatusList" :workstationId="lastLevelId" @success="addfeedbackSuccess" @closed="dialog.save=false"></save-dialog> -->
    <save-dialog v-if="dialog.save" ref="saveDialog" @success="addbusinessSuccess" @closed="dialog.save=false"></save-dialog>
</template>
<script>
    import * as ElementPlusIconsVue from '@element-plus/icons-vue'
@@ -61,7 +61,7 @@
    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
        icons.push(key)
    }
    // import saveDialog from './add-feedback'
    import saveDialog from './editbusiness'
    export default {
        name: "business",
        data(){
@@ -92,14 +92,28 @@
            this.getbusiness();
        },
        components: {
            ...ElementPlusIconsVue
            //saveDialog
            ...ElementPlusIconsVue,saveDialog
        },
        methods: {
            table_edit(row){
                this.dialog.save = true
                this.$HTTP.get(`/api/blade-notify/notifier/template/dingTalk/dingTalkMessage/config/metadata`).then(res=> {
                    if(res.code == 200) {
                        this.dialog.save = true;
                        this.$nextTick(() => {
                            this.$refs.saveDialog.open('edit').setData(res.data);
                        })
                    }
                })
            },
            getbusiness() {
                this.$HTTP.get("/api/blade-notify/business-notify?businessKey=maintenance").then(res=> {
                    if(res.code == 200) {
                        res.data.businessNotifyDTOList.forEach(item=> {
                            item.checked = (item.status == '0'?false: true);
                        })
                        this.contentData = res.data.businessNotifyDTOList;
                        console.log(this.contentData)
                    }
                })
            },
@@ -117,7 +131,6 @@
                this.$HTTP.get("/api/blade-notify/business-notify/tree").then(res=> {
                    if(res.code == 200) {
                        this.tableData = res.data;
                        console.log(this.tableData,123)
                    }
                })
            },
@@ -136,7 +149,7 @@
            //     })
            // },
            addfeedbackSuccess() {
            addbusinessSuccess() {
                //this.getlist();
            }
        }
@@ -206,6 +219,7 @@
    background: #fff;
    margin-right: 20px;
    box-shadow: 0 1px 3px rgba(0,0,0,.16);
    position: relative;
}
.content {
    padding: 10px;
@@ -214,4 +228,33 @@
    height: 200px;
    overflow: auto;
}
.box-top-name {
    font-weight: 700;
    font-size: 18px;
    text-align: left;
    color: #333;
    display: block;
    margin-top: -30px;
    margin-left: 56px;
}
.box-top-title {
    font-size: 14px;
    text-align: left;
    color: #333;
    display: block;
    margin-top: -30px;
    margin-left: 56px;
    padding: 0 20px 0 33px;
    margin: 20px 0 10px 24px;
}
.box-top-btn {
    position: absolute;
    font-size: 14px;
    right: 12px;
    bottom: 12px;
    cursor: pointer;
}
.box-top-btn span:nth-child(1) {
    margin-right: 12px;
}
</style>
src/views/notification/editbusiness.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,147 @@
<template>
    <el-dialog :title="titleMap[mode]" v-model="visible" :width="800" destroy-on-close @closed="$emit('closed')">
        <el-form :model="addDictForm" :rules="addDictRules" :disabled="mode=='show'" ref="dialogForm" label-width="120px" label-position="center">
            <el-row>
                <el-col :span="24">
                    <el-form-item label="字典编号" prop="code">
                        <el-input v-model="addDictForm.code" placeholder="字典编号" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="字典名称" prop="dictValue">
                        <el-input v-model="addDictForm.dictValue" placeholder="字典名称" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="字典排序" prop="sort">
                        <el-input v-model="addDictForm.sort" placeholder="字典排序" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="封存">
                        <el-switch v-model="addDictForm.isSealed" />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="字典备注">
                        <el-input v-model="addDictForm.remark" placeholder="字典备注" clearable></el-input>
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <template #footer>
            <el-button @click="visible=false" >取 æ¶ˆ</el-button>
            <el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="dictSubmit()">保 å­˜</el-button>
        </template>
    </el-dialog>
</template>
<script>
    export default {
        emits: ['success', 'closed'],
        data() {
            return {
                value1: true,
                mode: "add",
                titleMap: {
                    add: '新增',
                    edit: '修改',
                    show: '查看'
                },
                visible: false,
                isSaveing: false,
                //表单数据
                addDictForm: {
                    code: "",
                    dictValue: "",
                    sort: "",
                    isSealed: false,
                    remark: "",
                    dictKey: "-1",
                    $isSealed: "否"
                },
                //验证规则
                addDictRules: {
                    code:[{required: true, message: '请输入字典编号'}],
                    dictValue:[{required: true, message: '请输入字典名称'}],
                    sort:[{required: true, message: '请输入字典排序'}]
                },
                //所需数据选项
                groups: [],
                groupsProps: {
                    value: "id",
                    multiple: true,
                    checkStrictly: true
                },
                depts: [],
                deptsProps: {
                    value: "id",
                    checkStrictly: true
                }
            }
        },
        mounted() {
            // this.getGroup()
            // this.getDept()
        },
        methods: {
            //显示
            open(mode='add'){
                this.mode = mode;
                this.visible = true;
                return this
            },
            //加载树数据
            async getGroup(){
                var res = await this.$API.system.role.list.get();
                this.groups = res.data.rows;
            },
            async getDept(){
                var res = await this.$API.system.dept.list.get();
                this.depts = res.data;
            },
            //表单提交方法
            dictSubmit(){
                var obj = Object.assign({},this.addDictForm);
                if(obj.isSealed === true) {
                    obj.$isSealed = "是";
                    obj.isSealed = "1";
                }else {
                    obj.$isSealed = "否";
                    obj.isSealed = "0";
                }
                this.$refs.dialogForm.validate(async (valid) => {
                    if (valid) {
                        this.isSaveing = true;
                        this.$HTTP.post("/api/blade-system/dict/submit",obj).then(res=> {
                            this.isSaveing = false;
                            if(res.code == 200) {
                                this.$emit('success', this.addDictForm, this.mode);
                                this.visible = false;
                                this.$message.success("操作成功");
                            }else {
                                this.$alert(res.message, "提示", {type: 'error'});
                            }
                        })
                    }else{
                        return false;
                    }
                })
            },
            //表单注入数据
            setData(data){
                console.log(data)
                //可以和上面一样单个注入,也可以像下面一样直接合并进去
                if(data.isSealed == "1") {
                    data.isSealed = true;
                }else {
                    data.isSealed = false;
                }
                Object.assign(this.addDictForm, data);
            }
        }
    }
</script>
<style>
</style>