gaoshp
2024-06-02 c41e6fff7f768923ee87fc136f348f2467576dd5
update
已修改4个文件
154 ■■■■ 文件已修改
src/components/scDialog/index.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/scForm/index.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dnc/setting/FTP.vue 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/vab/dialog/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/scDialog/index.vue
@@ -74,11 +74,43 @@
</script>
<style scoped>
    .sc-dialog__headerbtn {position: absolute;top: var(--el-dialog-padding-primary);right: var(--el-dialog-padding-primary);}
    .sc-dialog__headerbtn button {padding: 0;background: transparent;border: none;outline: none;cursor: pointer;font-size: var(--el-message-close-size,16px);margin-left: 15px;color: var(--el-color-info);}
    .sc-dialog__headerbtn button:hover .el-dialog__close {color: var(--el-color-primary);}
    .sc-dialog:deep(.el-dialog).is-fullscreen {display: flex;flex-direction: column;top:0px !important;left:0px !important;}
.sc-dialog__headerbtn {
    position: absolute;
    top: var(--el-dialog-padding-primary);
    right: var(--el-dialog-padding-primary);
}
.sc-dialog__headerbtn button {
    padding: 0;
    background: transparent;
    border: none;
    outline: none;
    cursor: pointer;
    font-size: var(--el-message-close-size, 16px);
    margin-left: 15px;
    color: var(--el-color-info);
}
.sc-dialog__headerbtn button:hover .el-dialog__close {
    color: var(--el-color-primary);
}
.sc-dialog:deep(.el-dialog).is-fullscreen {
    display: flex;
    flex-direction: column;
    top: 0px !important;
    left: 0px !important;
}
    .sc-dialog:deep(.el-dialog).is-fullscreen .el-dialog__header {}
    .sc-dialog:deep(.el-dialog).is-fullscreen .el-dialog__body {flex:1;overflow: auto;}
    .sc-dialog:deep(.el-dialog).is-fullscreen .el-dialog__footer {padding-bottom: 10px;border-top: 1px solid var(--el-border-color-base);}
.sc-dialog:deep(.el-dialog).is-fullscreen .el-dialog__body {
    flex: 1;
    overflow: auto;
}
.sc-dialog:deep(.el-dialog).is-fullscreen .el-dialog__footer {
    padding-bottom: 10px;
    border-top: 1px solid var(--el-border-color-base);
}
</style>
src/components/scForm/index.vue
@@ -3,14 +3,15 @@
 * @version: 1.0
 * @Author: sakuya
 * @Date: 2021年9月22日09:26:25
 * @LastEditors:
 * @LastEditTime:
 * @LastEditors: Sneed
 * @LastEditTime: 2024-06-02 15:06:45
-->
<template>
    <el-skeleton v-if="renderLoading || Object.keys(form).length==0" animated />
    <el-form v-else ref="form" :model="form" :label-width="config.labelWidth" :label-position="config.labelPosition" v-loading="loading" element-loading-text="Loading...">
    <el-form v-else ref="form" :model="form" :label-width="config.labelWidth" :label-position="config.labelPosition"
        v-loading="loading" element-loading-text="Loading...">
        <el-row :gutter="15">
            <template v-for="(item, index) in config.formItems" :key="index">
                <el-col :span="item.span || 24" v-if="!hideHandle(item)">
@@ -24,21 +25,25 @@
                        </template>
                        <!-- input -->
                        <template v-if="item.component=='input'" >
                            <el-input v-model="form[item.name]" :placeholder="item.options.placeholder" clearable :maxlength="item.options.maxlength" show-word-limit></el-input>
                            <el-input v-model="form[item.name]" :placeholder="item.options.placeholder" clearable
                                :maxlength="item.options.maxlength" show-word-limit></el-input>
                        </template>
                        <!-- checkbox -->
                        <template v-else-if="item.component=='checkbox'" >
                            <template v-if="item.name" >
                                <el-checkbox v-model="form[item.name][_item.name]" :label="_item.label"  v-for="(_item, _index) in item.options.items" :key="_index"></el-checkbox>
                                <el-checkbox v-model="form[item.name][_item.name]" :label="_item.label"
                                    v-for="(_item, _index) in item.options.items" :key="_index"></el-checkbox>
                            </template>
                            <template v-else >
                                <el-checkbox v-model="form[_item.name]" :label="_item.label"  v-for="(_item, _index) in item.options.items" :key="_index"></el-checkbox>
                                <el-checkbox v-model="form[_item.name]" :label="_item.label"
                                    v-for="(_item, _index) in item.options.items" :key="_index"></el-checkbox>
                            </template>
                        </template>
                        <!-- checkboxGroup -->
                        <template v-else-if="item.component=='checkboxGroup'" >
                            <el-checkbox-group v-model="form[item.name]">
                                <el-checkbox v-for="_item in item.options.items" :key="_item.value" :label="_item.value">{{_item.label}}</el-checkbox>
                                <el-checkbox v-for="_item in item.options.items" :key="_item.value"
                                    :label="_item.value">{{ _item.label }}</el-checkbox>
                            </el-checkbox-group>
                        </template>
                        <!-- upload -->
@@ -55,17 +60,23 @@
                        </template>
                        <!-- select -->
                        <template v-else-if="item.component=='select'" >
                            <el-select v-model="form[item.name]" :multiple="item.options.multiple" :placeholder="item.options.placeholder" clearable filterable style="width: 100%;">
                                <el-option v-for="option in item.options.items" :key="option.value" :label="option.label" :value="option.value"></el-option>
                            <el-select v-model="form[item.name]" :multiple="item.options.multiple"
                                :placeholder="item.options.placeholder" clearable filterable style="width: 100%;">
                                <el-option v-for="option in item.options.items" :key="option.value"
                                    :label="option.label" :value="option.value"></el-option>
                            </el-select>
                        </template>
                        <!-- cascader -->
                        <template v-else-if="item.component=='cascader'" >
                            <el-cascader v-model="form[item.name]" :options="item.options.items" clearable></el-cascader>
                            <el-cascader v-model="form[item.name]" :options="item.options.items"
                                clearable></el-cascader>
                        </template>
                        <!-- date -->
                        <template v-else-if="item.component=='date'" >
                            <el-date-picker v-model="form[item.name]" :type="item.options.type" :shortcuts="item.options.shortcuts" :default-time="item.options.defaultTime" :value-format="item.options.valueFormat" :placeholder="item.options.placeholder || '请选择'"></el-date-picker>
                            <el-date-picker v-model="form[item.name]" :type="item.options.type"
                                :shortcuts="item.options.shortcuts" :default-time="item.options.defaultTime"
                                :value-format="item.options.valueFormat"
                                :placeholder="item.options.placeholder || '请选择'"></el-date-picker>
                        </template>
                        <!-- number -->
                        <template v-else-if="item.component=='number'" >
@@ -74,7 +85,8 @@
                        <!-- radio -->
                        <template v-else-if="item.component=='radio'" >
                            <el-radio-group v-model="form[item.name]">
                                <el-radio v-for="_item in item.options.items" :key="_item.value" :label="_item.value">{{_item.label}}</el-radio>
                                <el-radio v-for="_item in item.options.items" :key="_item.value"
                                    :label="_item.value">{{ _item.label }}</el-radio>
                            </el-radio-group>
                        </template>
                        <!-- color -->
@@ -268,5 +280,4 @@
    }
</script>
<style>
</style>
<style></style>
src/views/dnc/setting/FTP.vue
@@ -1,21 +1,25 @@
<!--
 * @Date: 2024-05-26 22:26:35
 * @LastEditors: Sneed
 * @LastEditTime: 2024-05-26 22:40:36
 * @LastEditTime: 2024-06-02 15:16:59
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/dnc/setting/FTP.vue
-->
<template>
    <el-container>
        <el-header>
            <el-button type="primary">创建FTP目录</el-button>
            <el-button type="primary" @click="addFtp">创建FTP目录</el-button>
            <el-button type="primary" style="margin-right: auto;">关联工位</el-button>
        </el-header>
        <el-main>
            <el-row :gutter="20" style="width: 100%;">
                <el-col :span="12">
                    <el-table :data="tableData" style="width: 100%">
                        <el-table-column label="目录名称" prop="" width=""></el-table-column>
                        <el-table-column label="关联工位" prop="" width=""></el-table-column>
                        <el-table-column label="目录名称" prop="name" width=""></el-table-column>
                        <el-table-column label="关联工位" prop="" width="">
                            <template #default="scope">
                                <span class="">{{ scope.row.workstationDTOS.map(v => v.name).join(';') }}</span>
                            </template>
                        </el-table-column>
                        <el-table-column label="操作" prop="" width=""></el-table-column>
                    </el-table>
                </el-col>
@@ -24,14 +28,66 @@
                    <div>509</div>
                </el-col>
            </el-row>
        </el-main>
        <scDialog v-model="showAdd">
            <scForm :config="config" :rules="rules">
            </scForm>
        </scDialog>
    </el-container>
</template>
<script>
export default {
export default {
    data() {
        return {
            tableData: [],
            showAdd: false,
            rules: {
                name: [
                    { required: true, message: '请输入姓名' }
                ]
            },
            config: {
                labelWidth: 120,
                formItems: [
                    {
                        component: 'input',
                        label: '名称',
                        name: 'name',
                        options: {
                            placeholder: '',
                            maxlength: 100,
                        }
                    },
                    {
                        component: 'input',
                        label: '关联工位',
                        name: 'workstationIds',
                        options: {
                            placeholder: '',
                            maxlength: 100,
                        }
                    }
                ]
            }
        }
    },
    created() {
        this.getList()
    },
    methods: {
        getList() {
            this.$HTTP.post(`/api/blade-dnc/ftp-director/ftp-workstation-list`, { name: '', workstationIds: [] }).then(res => {
                this.tableData = res.data
            })
        },
        addFtp() {
            this.showAdd = true
        }
    },
}
</script>
src/views/vab/dialog/index.vue
@@ -97,5 +97,4 @@
    }
</script>
<style>
</style>
<style></style>