1
lzhe
2024-05-20 51d86d1eab51b44ff5d61ba66465fa618338608f
1
已添加1个文件
已修改5个文件
365 ■■■■■ 文件已修改
src/config/route.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/custom/addField.vue 288 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/custom/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/custom/setField.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/station-live.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/config/route.js
@@ -25,7 +25,20 @@
//         }]
//     }
// ]
const routes = [
    {
        name: "字段设置",
        path: "/configuration/custom/setField",
        component: "configuration/custom/setField",
        meta: {
            icon: "el-icon-menu",
            title: "字段设置",
            type: 'menu',
            hidden: true
        }
    }
]
const routes = []
//const routes = []
export default routes;
src/layout/index.vue
@@ -286,7 +286,7 @@
            },
            handleSelect(key, keyPath) {
                var MENU = this.$TOOL.data.get("MENU");
                var foundRoute = this.findRouteByPath(MENU, key);
                var foundRoute = this.findRouteByPath(MENU, key);
                //http://116.63.148.72:8080/xxl-job-admin
                var TOKEN = this.$TOOL.cookie.get("TOKEN");
                if(key == '/i/任务调度') {
src/views/configuration/custom/addField.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,288 @@
<template>
    <el-dialog :title="titleMap[mode]" v-model="visible" :width="800" destroy-on-close @closed="$emit('closed')">
        <el-form :model="addFieldForm" :rules="addFieldRules" :disabled="mode=='show'" ref="dialogForm" label-width="100px" label-position="center">
            <el-row>
                <el-col :span="24">
                    <el-form-item label="字段名称" prop="code">
                        <el-input v-model="addFieldForm.code" placeholder="输入一个符合阅读习惯的简短名称,建议4个字符,最多不超过12字" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="提示文字" prop="dictValue">
                        <el-input v-model="addFieldForm.dictValue" placeholder="描述提示用户如何填写字段值(例如:请输入名字)" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="字段类型" prop="deptId">
                        <el-select v-model="addFieldForm.test" style="width: 100%" @change="deptIdChange" placeholder="选择符合业务的字段类型">
                            <el-option v-for="item in fieldTypeList" :key="item.id" :label="item.title" :value="item.id"/>
                        </el-select>
                    </el-form-item>
                </el-col>
                <!-- å˜é‡1 è¾“入框 -->
                <el-col :span="24">
                    <el-form-item label="默认值">
                        <el-input v-model="addFieldForm.dictValue" placeholder="系统默认提供的值,可不填,设置默认值会替换提示文字" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="文字长度">
                        <el-date-picker v-model="addFieldForm.num" style="width: 100%" type="date" placeholder="请输入文字最长限制字数"></el-date-picker>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="输入格式">
                        <el-select v-model="addFieldForm.test" style="width: 100%" @change="deptIdChange" placeholder="选择输入框不同的输入格式">
                            <el-option v-for="item in inputTypeList" :key="item.id" :label="item.title" :value="item.id"/>
                        </el-select>
                    </el-form-item>
                </el-col>
                <!-- å˜é‡2 æ•°å­—输入框-->
                <el-col :span="24">
                    <el-form-item label="默认值">
                        <el-input-number v-model="addFieldForm.num" @change="handleChange" :min="1" :max="10" label="系统默认提供的值,可不填,设置默认值会替换提示文字"></el-input-number>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="格式">
                        <el-radio v-model="addFieldForm.radio" label="1">数值</el-radio>
                        <el-radio v-model="addFieldForm.radio" label="2">百分比</el-radio>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="保留小数位">
                        <el-input-number v-model="addFieldForm.num" @change="handleChange" :min="1" :max="10" label="最多不超过4位小数"></el-input-number>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="显示千分符">
                        <el-checkbox v-model="addFieldForm.check"></el-checkbox>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="限定值范围">
                        <el-input-number v-model="addFieldForm.num" @change="handleChange" :min="1" :max="10"></el-input-number>
                        <span>-</span>
                        <el-input-number v-model="addFieldForm.num" @change="handleChange" :min="1" :max="10"></el-input-number>
                    </el-form-item>
                </el-col>
                <!-- å˜é‡3 å¤šè¡Œæ–‡æœ¬-->
                <el-col :span="24">
                    <el-form-item label="默认值">
                        <el-input v-model="addFieldForm.test" placeholder="系统默认提供的值,可不填,设置默认值会替换提示文字" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="文字长度">
                        <el-input-number v-model="addFieldForm.num" @change="handleChange" :min="1" :max="10" label="请输入文字最长限制字数"></el-input-number>
                    </el-form-item>
                </el-col>
                <!-- å˜é‡4 æ—¥æœŸé€‰æ‹©å™¨-->
                <el-col :span="24">
                    <el-form-item label="默认值">
                        <el-date-picker v-model="addFieldForm.test" style="width: 100%" type="date" placeholder="系统默认提供的值,可不填,设置默认值会替换提示文字"></el-date-picker>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="日期格式" prop="deptId">
                        <el-select v-model="addFieldForm.test" style="width: 100%" @change="deptIdChange" placeholder="请输入文字最长限制字数">
                            <el-option v-for="item in dateFormatList" :key="item.id" :label="item.title" :value="item.id"/>
                        </el-select>
                    </el-form-item>
                </el-col>
                <!-- å˜é‡5 å•选按钮-->
                <el-col :span="24">
                    <el-form-item label="选项">
                        <div>
                            <el-radio v-model="addFieldForm.radio" label="1"></el-radio>
                            <el-input v-model="addFieldForm.test" clearable></el-input>
                            <span class="remove-btn">删除</span>
                        </div>
                        <div class="add-btn">添加选项</div>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="排序方式">
                        <el-radio v-model="addFieldForm.radio" label="1">横向排列</el-radio>
                        <el-radio v-model="addFieldForm.radio" label="2">纵向排列</el-radio>
                    </el-form-item>
                </el-col>
                <!-- å˜é‡6 å¤šé€‰æŒ‰é’®-->
                <el-col :span="24">
                    <el-form-item label="选项">
                        <div>
                            <el-checkbox v-model="addFieldForm.check"></el-checkbox>
                            <el-input v-model="addFieldForm.test" clearable></el-input>
                            <span class="remove-btn">删除</span>
                        </div>
                        <div class="add-btn">添加选项</div>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="排序方式">
                        <el-radio v-model="addFieldForm.radio" label="1">横向排列</el-radio>
                        <el-radio v-model="addFieldForm.radio" label="2">纵向排列</el-radio>
                    </el-form-item>
                </el-col>
                <!-- å˜é‡7 ä¸‹æ‹‰é€‰æ‹©å™¨-->
                <el-col :span="24">
                    <el-form-item label="选项">
                        <div>
                            <el-input v-model="addFieldForm.test" clearable></el-input>
                            <span class="remove-btn">删除</span>
                        </div>
                        <div class="add-btn">添加选项</div>
                    </el-form-item>
                </el-col>
                <!-- å˜é‡8 ä¸šåŠ¡å­—æ®µ-人员-->
                <!-- æ²¡æœ‰ -->
                <el-col :span="24">
                    <el-form-item label="编辑页显示">
                        <el-checkbox v-model="addFieldForm.check">显示</el-checkbox>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="查看页显示">
                        <el-checkbox v-model="addFieldForm.check">显示</el-checkbox>
                    </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="fieldSubmit">保存</el-button>
            <el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="fieldSubmitAgain">保存并继续添加</el-button>
        </template>
    </el-dialog>
</template>
<script>
    export default {
        emits: ['success', 'closed'],
        data() {
            return {
                inputTypeList: [  //输入格式
                    {title: "无",id:1},
                    {title: "手机号码",id:1},
                    {title: "电话号码",id:1},
                    {title: "邮箱",id:1}
                ],
                fieldTypeList: [  //字段类型
                    {title: "输入框",id:1},
                    {title: "数字输入框",id:2},
                    {title: "多行文本",id:3},
                    {title: "日期选择器",id:4},
                    {title: "单选按钮",id:5},
                    {title: "多选按钮",id:6},
                    {title: "下拉选择器",id:7},
                    {title: "业务字段-人员",id:8},
                    {title: "默认",id:9}
                ],
                dateFormatList: [  //日期格式
                    {title: "å¹´-月",id:1},
                    {title: "å¹´-月-日",id:2},
                    {title: "å¹´-月-日 æ—¶ï¼šåˆ†",id:3},
                    {title: "å¹´-月-日 æ—¶ï¼šåˆ†ï¼šç§’",id:4}
                ],
                deptIdList: [],
                mode: "add",
                titleMap: {
                    add: '添加自定义字段',
                    edit: '修改',
                    show: '查看'
                },
                visible: false,
                isSaveing: false,
                //表单数据
                addFieldForm: {
                    radio: '1',
                    num: 0,
                    test: "",
                    check: false,
                    code: "",
                    dictValue: "",
                    sort: "",
                    isSealed: false,
                    remark: "",
                    dictKey: "-1",
                    $isSealed: "否"
                },
                //验证规则
                addFieldRules: {
                    code:[{required: true, message: '请输入字典编号'}],
                    dictValue:[{required: true, message: '请输入字典名称'}],
                    sort:[{required: true, message: '请输入字典排序'}]
                }
            }
        },
        mounted() {
        },
        methods: {
            deptIdChange() {
            },
            //显示
            open(mode='add'){
                this.mode = mode;
                this.visible = true;
                return this
            },
            //表单提交方法
            fieldSubmit(){
                var obj = Object.assign({},this.addFieldForm);
                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.addFieldForm, this.mode);
                                this.visible = false;
                                this.$message.success("操作成功");
                            }else {
                                this.$alert(res.message, "提示", {type: 'error'});
                            }
                        })
                    }else{
                        return false;
                    }
                })
            },
            fieldSubmitAgain() {
            },
            //表单注入数据
            setData(data){
                console.log(data)
                //可以和上面一样单个注入,也可以像下面一样直接合并进去
                if(data.isSealed == "1") {
                    data.isSealed = true;
                }else {
                    data.isSealed = false;
                }
                Object.assign(this.addFieldForm, data);
            }
        }
    }
</script>
<style scoped>
.remove-btn {
    margin-left: 10px;
    color: red;
    cursor: pointer;
}
.add-btn {
    margin-left: 30px;
    color: #3b8e8e;
    cursor: pointer;
}
</style>
src/views/configuration/custom/index.vue
@@ -55,8 +55,7 @@
        },
        methods: {
            goSetField() {
                console.log(this.$route,this.$router)
                //this.$router.push({path: "/setField"})
                this.$router.push({path: '/configuration/custom/setField'});
            }
        }
    }
src/views/configuration/custom/setField.vue
@@ -8,27 +8,69 @@
-->
<template>
    <div class="aposcope-main">
        123
        <div class="title">计划字段</div>
        <el-button type="primary" @click="addField" style="margin: 4px 0px 10px;">添加自定义字段</el-button>
        <div class="field-table">
            <el-table ref="multipleTableRef" :data="tableData" 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="fieldTypeLabel" label="字段类型"></el-table-column>
                <el-table-column prop="systemFieldLabel" label="基础字段"></el-table-column>
                <el-table-column fixed="right" label="操作">
                    <template #default="scope">
                        <el-button type="text" size="small" @click="table_edit(scope.row, scope.$index)">编辑</el-button>
                        <el-button text type="primary" size="small" @click="table_del(scope.row, scope.$index)">删除</el-button>
                    </template>
                </el-table-column>
            </el-table>
        </div>
    </div>
    <save-dialog v-if="dialog.save" ref="saveDialog" @success="addFieldSuccess" @closed="dialog.save=false"></save-dialog>
</template>
<script>
    import saveDialog from './addField'
    export default {
        name: "custom",
        data(){
            return {
                tableData: [],
                dialog: {
                    save: false
                }
            }
        },
        created(){
            
        },
        mounted(){
            //this.getMenuList();
            this.getTableData();
        },
        components: {
            saveDialog
        },
        methods: {
            addFieldSuccess() {
            },
            addField() {
                this.dialog.save = true
                this.$nextTick(() => {
                    this.$refs.saveDialog.open()
                })
            },
            table_edit() {
            },
            table_del() {
            },
            getTableData() {
                this.$HTTP.get(`/api/blade-system/custom-template-field/list?businessType=1`).then(res=> {
                    if(res.code == 200) {
                        this.tableData = res.data;
                    }
                })
            }
        }
    }
</script>
@@ -40,4 +82,10 @@
    padding:20px;
    background: #fff;
}
.title {
    font-size: 16px;
    font-weight: 700;
    margin: 0px 0px 14px;
    color: #000;
}
</style>
src/views/mdc/station-live.vue
@@ -505,7 +505,6 @@
                        interval: 1440/6,  //每隔多少分钟显示一个刻度
                        axisLabel: {
                            formatter: (value)=> {
                                //console.log(value,111)
                                if(value == 0) {
                                    return "00:00:00";
                                }else if(value == 240) {