1
lzhe
2024-06-03 0bf020909308ba897c4cc20c73f9ac72cc8d9bf4
1
已添加2个文件
已修改3个文件
350 ■■■■■ 文件已修改
src/config/route.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/userbar.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/custom/planSettings.vue 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/custom/saveSelectDialog.vue 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/notification/notice/newsmail.vue 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/config/route.js
@@ -77,6 +77,17 @@
            type: 'menu',
            hidden: true
        }
    },
    {
        name: "消息中心",
        path: "/notification/notice/newsmail",
        component: "notification/notice/newsmail",
        meta: {
            icon: "el-icon-menu",
            title: "消息中心",
            type: 'menu',
            hidden: true
        }
    }
]
src/layout/components/userbar.vue
@@ -166,7 +166,8 @@
            },
            //显示短消息
            showMsg(){
                this.msg = true
                //this.msg = true
                this.$router.push({path: '/notification/notice/newsmail'});
            },
            //标记已读
            markRead(){
src/views/configuration/custom/planSettings.vue
@@ -8,7 +8,7 @@
-->
<template>
    <div class="aposcope-main">
        <div class="header">
        <div class="header" v-if="$route.query.type == 1">
            <div class="title">计划显示设置</div>
            <div class="type">
                <div class="item last" @click="openPlan">新建计划类型模版</div>
@@ -24,69 +24,119 @@
                </div>
            </div>
        </div>
        <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
        <el-tabs v-model="activeName" class="demo-tabs" @tab-change="handleClick">
            <el-tab-pane label="新建页设置" name="first">
                <div>
                    <div class="add-field">+ æ·»åŠ å­—æ®µ</div>
                    <div class="add-field" @click="openSelect">+ æ·»åŠ å­—æ®µ</div>
                    <div class="field-title">基础字段</div>
                    <el-table ref="multipleTableRef" :data="tableData0" border style="width: 100%" class="multipleTableRef">
                        <el-table-column prop="fieldName" label="字段名"></el-table-column>
                        <el-table-column prop="fieldDescription" label="提示文字"></el-table-column>
                        <el-table-column prop="defaultValue" label="默认值"></el-table-column>
                        <el-table-column prop="mustField" label="是否必填"></el-table-column>
                        <el-table-column prop="mustField" label="是否必填">
                            <template #default="scope">
                                <span>{{scope.row.mustField == '1'?"是": "否"}}</span>
                            </template>
                        </el-table-column>
                        <el-table-column fixed="right" label="操作">
                            <template #default="scope">
                                <el-button text type="primary" :disabled="scope.row.systemFieldLabel == '是'?true: false" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
                                <el-button text type="primary" :disabled="scope.row.mustField == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                    <div class="field-title">扩展字段</div>
                    <el-table ref="multipleTableRef" :data="tableData0extend" border style="width: 100%" class="multipleTableRef">
                        <el-table-column prop="fieldName" label="字段名"></el-table-column>
                        <el-table-column prop="fieldDescription" label="提示文字"></el-table-column>
                        <el-table-column prop="defaultValue" label="默认值"></el-table-column>
                        <el-table-column prop="mustField" label="是否必填">
                            <template #default="scope">
                                <span>{{scope.row.mustField == '1'?"是": "否"}}</span>
                            </template>
                        </el-table-column>
                        <el-table-column fixed="right" label="操作">
                            <template #default="scope">
                                <el-button text type="primary" :disabled="scope.row.mustField == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                </div>
            </el-tab-pane>
            <el-tab-pane label="编辑页设置" name="second">
                <div class="add-field">+ æ·»åŠ å­—æ®µ</div>
                <div class="add-field" @click="openSelect">+ æ·»åŠ å­—æ®µ</div>
                <div class="field-title">基础字段</div>
                <el-table ref="multipleTableRef" :data="tableData1" border style="width: 100%" class="multipleTableRef">
                    <el-table-column prop="fieldName" label="字段名"></el-table-column>
                    <el-table-column prop="fieldDescription" label="支持编辑"></el-table-column>
                    <el-table-column label="支持编辑" prop="supportUpdateLabel"></el-table-column>
                    <el-table-column fixed="right" label="操作">
                        <template #default="scope">
                            <el-button text type="primary" :disabled="scope.row.systemFieldLabel == '是'?true: false" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
                            <el-button text type="primary" :disabled="scope.row.mustField == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
                <div class="field-title">扩展字段</div>
                <el-table ref="multipleTableRef" :data="tableData1extend" border style="width: 100%" class="multipleTableRef">
                    <el-table-column prop="fieldName" label="字段名"></el-table-column>
                    <el-table-column prop="supportUpdateLabel" label="支持编辑"></el-table-column>
                    <el-table-column fixed="right" label="操作">
                        <template #default="scope">
                            <el-button text type="primary" :disabled="scope.row.mustField == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </el-tab-pane>
            <el-tab-pane label="查看页设置" name="third">
                <div class="add-field" @click="openSelect">+ æ·»åŠ å­—æ®µ</div>
                <div class="field-title">基础字段</div>
                <el-table ref="multipleTableRef" :data="tableData2" border style="width: 100%" class="multipleTableRef">
                    <el-table-column prop="fieldName" label="字段名"></el-table-column>
                    <el-table-column fixed="right" label="操作">
                        <template #default="scope">
                            <el-button text type="primary" :disabled="scope.row.systemFieldLabel == '是'?true: false" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
                            <el-button text type="primary" :disabled="scope.row.sysFieldMust == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
                <div class="field-title">扩展字段</div>
                <el-table ref="multipleTableRef" :data="tableData2extend" border style="width: 100%" class="multipleTableRef">
                    <el-table-column prop="fieldName" label="字段名"></el-table-column>
                    <el-table-column fixed="right" label="操作">
                        <template #default="scope">
                            <el-button text type="primary" :disabled="scope.row.sysFieldMust == '1'?true: false" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </el-tab-pane>
        </el-tabs>
    </div>
    <!-- æ–°å»ºè®¡åˆ’ -->
    <save-dialog v-if="dialog.save" ref="saveDialog" @success="addPlanSuccess" @closed="dialog.save=false"></save-dialog>
    <!-- æ·»åŠ å­—æ®µ -->
    <save-select-dialog v-if="dialog.saveSelect" ref="saveSelectDialog" @success="addSelectSuccess" @closed="dialog.saveSelect=false" @addExtend="addExtend"></save-select-dialog>
    <!-- æ·»åŠ æ‰©å±•å­—æ®µ -->
    <save-extend-dialog v-if="dialog.extendSave" ref="saveExtendDialog" @success="addExtendSuccess" @closed="dialog.save=false"></save-extend-dialog>
</template>
<script>
    import saveDialog from './addPlan'
    import saveSelectDialog from './saveSelectDialog'
    import saveExtendDialog from './addField'
    export default {
        name: "custom",
        data(){
            return {
                id: "",
                dialog: {
                    save: false
                    save: false,  //新增模版
                    saveSelect: false,  //添加字段
                    extendSave: false  //添加扩展字段
                },
                planData: [],
                activeName: "first",
                configType: 1,
                tableData0: [],
                tableData1: [],
                tableData2: []
                tableData2: [],
                tableData0extend: [],
                tableData1extend: []
            }
        },
        created(){
@@ -97,7 +147,7 @@
            this.gitProduct();
        },
        components: {
            saveDialog
            saveDialog,saveSelectDialog,saveExtendDialog
        },
        methods: {
            gitProduct() {
@@ -126,9 +176,19 @@
                this.getTableList();
            },
            getTableList() {
                this.$HTTP.get(`/api/blade-system/custom-template-field/listField?configType=1&templateId=${this.id}`).then(res=> {
                this.$HTTP.get(`/api/blade-system/custom-template-field/listField?configType=${this.configType}&templateId=${this.id}`).then(res=> {
                    if(res.code == 200) {
                        this.tableData0 = res.data.systemFieldList;
                        if(this.activeName == "first") {
                            this.tableData0 = res.data.systemFieldList;
                            this.tableData0extend = res.data.customFieldList || [];
                        }else if(this.activeName == "second") {
                            this.tableData1 = res.data.systemFieldList;
                            this.tableData1extend = res.data.customFieldList || [];
                        }else if(this.activeName == "third") {
                            this.tableData2 = res.data.systemFieldList;
                            this.tableData2extend = res.data.customFieldList || [];
                        }
                    }
                })
            },
@@ -152,14 +212,46 @@
                    this.$refs.saveDialog.open(this.productList,this.planData)
                })
            },
            openSelect() {
                this.dialog.saveSelect = true
                this.$HTTP.get(`/api/blade-system/custom-template-field/getSelectBox?configType=${this.configType}&templateId=${this.id}`).then(res=> {
                    if(res.code == 200) {
                        this.$refs.saveSelectDialog.open(res.data,this.id,this.configType);
                    }
                })
            },
            addPlanSuccess() {
                this.getBaseData();
            },
            table_del(row,index) {
            addSelectSuccess() {
                this.getTableList();
            },
            handleClick(text) {
            addExtendSuccess() {
                this.getTableList();
            },
            addExtend() {
                this.dialog.extendSave = true
                this.$nextTick(() => {
                    this.$refs.saveExtendDialog.open();
                })
            },
            table_del(row,index) {
                this.$HTTP.delete(`/api/blade-system/custom-template-field-relation/remove`,[row.id]).then(res=> {
                    if(res.code == 200) {
                        this.$message.success("操作成功");
                        this.getTableList();
                    }
                })
            },
            handleClick(TabPaneName) {
                if(TabPaneName == "first") {
                    this.configType = 1;
                }else if(TabPaneName == "second") {
                    this.configType = 2;
                }else if(TabPaneName == "third") {
                    this.configType = 3;
                }
                this.getTableList();
            }
        }
    }
src/views/configuration/custom/saveSelectDialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,130 @@
<template>
    <el-dialog :title="titleMap[mode]" v-model="visible" :width="700" destroy-on-close @closed="$emit('closed')">
        <div class="field-title">基础字段</div>
        <el-checkbox-group v-model="checkListData">
            <el-checkbox v-for="item in checkList" :label="item.fieldName" :disabled="item.sysFieldMust == 1?true:false" />
         </el-checkbox-group>
         <div class="field-title">
             æ‰©å±•字段
             <span class="add-field" @click="openSelect">+ æ·»åŠ å­—æ®µ</span>
         </div>
         <el-checkbox-group v-model="extendListData" v-if="extendCheckList.length > 0">
            <el-checkbox v-for="item in extendCheckList" :label="item.fieldName" :disabled="item.sysFieldMust == 1?true:false" />
         </el-checkbox-group>
        <template #footer>
            <el-button @click="visible=false">取消</el-button>
            <el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="selectSubmit">确定</el-button>
        </template>
    </el-dialog>
</template>
<script>
    export default {
        emits: ['success', 'closed'],
        data() {
            return {
                id: "",
                configType: "",
                checkListData: [],
                checkList: [],
                extendListData: [],
                extendCheckList: [],
                mode: "add",
                titleMap: {
                    add: '添加字段',
                    edit: '修改',
                    show: '查看'
                },
                visible: false,
                isSaveing: false,
            }
        },
        mounted() {
        },
        components: {
        },
        methods: {
            openSelect() {
                this.$emit('addExtend', true);
                this.visible = false;
            },
            //显示
            open(data,id,configType,mode='add'){
                this.mode = mode;
                this.visible = true;
                this.checkList = data.systemFieldList || [];
                this.extendCheckList = data.customFieldList || [];
                this.checkList.forEach(item=> {
                    if(item.sort !=null) {
                        this.checkListData.push(item.fieldName);
                    }
                })
                this.extendCheckList.forEach(item=> {
                    if(item.sort !=null) {
                        this.extendListData.push(item.fieldName);
                    }
                })
                this.id = id;
                this.configType = configType;
                return this
            },
            //表单提交方法
            selectSubmit(){
                var list = [];
                this.checkList.forEach(item=> {
                    this.checkListData.forEach(item1=> {
                        if(item.fieldName == item1) {
                            list.push(item.fieldId);
                        }
                    })
                })
                this.extendCheckList.forEach(item=> {
                    this.extendListData.forEach(item1=> {
                        if(item.fieldName == item1) {
                            list.push(item.fieldId);
                        }
                    })
                })
                var obj ={
                    businessType: this.$route.query.type,
                    configType: this.configType,
                    fieldList: list,
                    templateId: this.id
                };
                this.isSaveing = true;
                this.$HTTP.post("/api/blade-system/custom-template-field-relation/insert",obj).then(res=> {
                    this.isSaveing = false;
                    if(res.code == 200) {
                        this.$emit('success', this.checkListData, this.mode);
                        this.visible = false;
                        this.$message.success("操作成功");
                    }else {
                        this.$alert(res.message, "提示", {type: 'error'});
                    }
                })
            },
            //表单注入数据
            setData(data){
                //Object.assign(this.addPlanForm, data);
            }
        }
    }
</script>
<style scoped>
.add-field {
    color: #409eff;
    font-weight: 400;
    font-size: 14px;
    cursor: pointer;
    padding-left: 8px;
    margin: 0;
}
.field-title {
    font-size: 14px;
    color: #5f5f5f;
    margin: 14px 0;
}
</style>
src/views/notification/notice/newsmail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
<!--
 * @Author: lzhe lzhe@example.com
 * @Date: 2024-03-26 10:28:33
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-05-08 18:22:48
 * @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
-->
<template>
    <div class="newsmail-main">
        <el-tabs v-model="activeName" class="demo-tabs" @tab-change="handleClick">
            <el-tab-pane label="全部公告" name="A">
                <el-table ref="multipleTableRef" :data="tableData" border style="width: 100%" class="multipleTableRef">
                    <el-table-column prop="categoryName" label="title"></el-table-column>
                    <el-table-column prop="businessName" label="content"></el-table-column>
                    <el-table-column prop="notifyTime" label="date"></el-table-column>
                    <el-table-column fixed="right" label="操作">
                        <template #default="scope">
                            <el-button text type="primary" size="small" @click="table_view(scope.row, scope.$index)">查看更多&gt&gt</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </el-tab-pane>
            <el-tab-pane label="发布公告" name="B">Config</el-tab-pane>
            <el-tab-pane label="任免公告" name="C">Role</el-tab-pane>
            <el-tab-pane label="转发公告" name="D">Task</el-tab-pane>
            <el-tab-pane label="指示公告" name="E">Task</el-tab-pane>
            <el-tab-pane label="事务公告" name="F">Task</el-tab-pane>
        </el-tabs>
    </div>
</template>
<script>
    export default {
        name: "newmail",
        data(){
            return {
                tableData: [],
                activeName: "A"
            }
        },
        created(){
        },
        mounted(){
            this.getcategoryList();
        },
        components: {
        },
        methods: {
            table_view() {
            },
            handleClick(TabPaneName) {
            },
            getcategoryList() {
                this.$HTTP.get(`/api/blade-notify/notify-system/page?size=10&notifyType=2&current=1`).then(res=> {
                    if(res.code == 200) {
                        this.tableData = res.data.records;
                    }
                })
            }
        }
    }
</script>
<style scoped>
.newsmail-main {
    min-height: 100%;
    margin: 8px;
    padding:20px;
    background: #fff;
}
.multipleTableRef /deep/ .el-table__header-wrapper{
    display: none;
}
</style>