1
lzhe
2024-05-13 2c841bc48f45eec08b41feebfa03de79666f940c
1
已修改1个文件
134 ■■■■ 文件已修改
src/views/console/system/meta-object-type/index.vue 134 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/console/system/meta-object-type/index.vue
@@ -15,47 +15,99 @@
        <div class="aposcope-right">
            <div class="right-content">
                <div class="content-title"><span>*</span>所在物理表</div>
                <el-select v-model="metaForm.tableName" style="width: 30%" :disabled="isDis">
                <el-select v-model="metaForm.tableName" :disabled="isDis">
                    <el-option v-for="item in tableNameList" :key="item.tableName" :label="item.tableName" :value="item.tableName"/>
                </el-select>
            </div>
            <div class="right-content">
                <div class="content-title"><span>*</span>字段1</div>
                <el-select v-model="metaForm.refCode" style="width: 30%">
                    <el-option v-for="item in testList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
                <el-select v-model="metaForm.refCode" :disabled="isDis">
                    <el-option v-for="item in refCodeList" :key="item.columnName" :label="item.columnName" :value="item.columnName"/>
                </el-select>
            </div>
            <div class="right-content">
                <div class="content-title"><span>*</span>字段2</div>
                <el-select v-model="metaForm.refName" style="width: 30%">
                    <el-option v-for="item in testList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
                <el-select v-model="metaForm.refName" :disabled="isDis">
                    <el-option v-for="item in refCodeList" :key="item.columnName" :label="item.columnName" :value="item.columnName"/>
                </el-select>
            </div>
            <div class="right-content">
                <div class="content-title">编码字段</div>
                <el-select v-model="metaForm.test" style="width: 30%">
                    <el-option v-for="item in testList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
                <el-select v-model="metaForm.test">
                    <el-option v-for="item in refCodeList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
                </el-select>
            </div>
            <div class="right-content">
                <div class="content-title">参数设置</div>
                <el-button type="primary">添加参数</el-button>
                <el-button type="primary" @click="addParameter" :disabled="isAdd">添加参数</el-button>
            </div>
            <el-table ref="searchDataListRef" :data="searchDataList" border style="width: 100%;margin-top: 20px;" class="multipleTableRef">
                <el-table-column prop="fcode" label="字段编码"></el-table-column>
                <el-table-column prop="fname" label="字段标题"></el-table-column>
                <el-table-column prop="field" label="实体属性"></el-table-column>
                <el-table-column prop="elementTypeName" label="元素类型"></el-table-column>
                <el-table-column prop="enumType" label="枚举类型"></el-table-column>
                <el-table-column prop="seq" label="字段顺序"></el-table-column>
                <el-table-column prop="refObjectTypeId" label="引用关系"></el-table-column>
                <el-table-column prop="fcode" label="字段编码">
                    <template #default="scope">
                        <el-select v-if="scope.row.isEdit" v-model="tableForm.fcode">
                            <el-option v-for="item in refCodeList" :key="item.columnName" :label="item.columnName" :value="item.columnName"/>
                        </el-select>
                        <div v-else>{{scope.row.fcode}}</div>
                    </template>
                </el-table-column>
                <el-table-column prop="fname" label="字段标题">
                    <template #default="scope">
                        <el-input v-if="scope.row.isEdit" v-model="tableForm.fname"></el-input>
                        <div v-else>{{scope.row.fname}}</div>
                    </template>
                </el-table-column>
                <el-table-column prop="field" label="实体属性">
                    <template #default="scope">
                        <el-input v-if="scope.row.isEdit" v-model="tableForm.field"></el-input>
                        <div v-else>{{scope.row.field}}</div>
                    </template>
                </el-table-column>
                <el-table-column prop="elementTypeName" label="元素类型">
                    <template #default="scope">
                        <el-select v-if="scope.row.isEdit" v-model="tableForm.elementTypeName">
                            <el-option v-for="item in dictionaryType" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
                        </el-select>
                        <div v-else>{{scope.row.elementTypeName}}</div>
                    </template>
                </el-table-column>
                <el-table-column prop="enumType" label="枚举类型">
                    <template #default="scope">
                        <el-select v-if="scope.row.isEdit" v-model="tableForm.enumType" disabled>
                            <el-option v-for="item in testList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
                        </el-select>
                        <div v-else>{{scope.row.enumType}}</div>
                    </template>
                </el-table-column>
                <el-table-column prop="seq" label="字段顺序">
                    <template #default="scope">
                        <el-input-number v-if="scope.row.isEdit" scope.row.isEdit v-model="tableForm.seq" :min="0" :max="99" style="width:100%;"/>
                        <div v-else>{{scope.row.seq}}</div>
                    </template>
                </el-table-column>
                <el-table-column prop="refObjectTypeId" label="引用关系">
                    <template #default="scope">
                        <el-select v-if="scope.row.isEdit" v-model="tableForm.refObjectTypeId" disabled>
                            <el-option v-for="item in testList" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
                        </el-select>
                        <div v-else>{{scope.row.refObjectTypeId}}</div>
                    </template>
                </el-table-column>
                <el-table-column label="操作">
                    <template #default="scope">
                        <el-icon><Edit /></el-icon>
                        <el-icon><Edit /></el-icon>
                        <div v-if="scope.row.isEdit">
                            <el-button size="small" type="primary" @click="comfirmTable">确定</el-button>
                            <el-button size="small" @click="cancelTable">取消</el-button>
                        </div>
                        <div v-else>
                            <el-icon class="operationIcon"><Edit /></el-icon>
                            <el-icon class="operationIcon"><Delete /></el-icon>
                        </div>
                    </template>
                </el-table-column>
            </el-table>
            <div class="saveBtn">
                <el-button type="primary" @click="saveBtn">保存</el-button>
            </div>
        </div>
    </div>
</template>
@@ -69,9 +121,21 @@
        name: "metaObject",
        data(){
            return {
                isDis: true,
                testList: [],
                tableForm: {
                    fcode: "",
                    fname: "",
                    field: "",
                    elementTypeName: "",
                    enumType: "",
                    seq: 0,
                    refObjectTypeId: ""
                },
                inputValue: "",
                isAdd: false,
                isDis: true,
                tableNameList: [],
                refCodeList: [],
                metaForm: {
                    tableName: "",
                    refCode: "",
@@ -109,6 +173,21 @@
            ...ElementPlusIconsVue
        },
        methods: {
            saveBtn() {
            },
            comfirmTable() {
                this.cancelTable();  //还原
                this.searchDataList.unshift(this.tableForm);
            },
            cancelTable() {
                this.searchDataList.splice(0,1);
                this.isAdd = false;
            },
            addParameter() {
                this.isAdd = true;
                this.searchDataList.unshift({isEdit: true});
            },
            getDictionary() {  //字典类型
                this.$HTTP.get("/api/blade-system/dict/dictionary?code=element_type").then(res=> {  //物理表
                    if(res.code == 200) {
@@ -138,6 +217,12 @@
            gettableName() {
                this.$HTTP.get(`/api/blade-system/meta-object-type/detail?fId=${this.dictKey}`).then(res=> {  //物理表数据
                    if(res.code == 200) {
                        this.tableNameList.forEach(item=> {
                            if(res.data.tableName == item.tableName) {
                                this.refCodeList = item.tableColumns;
                            }
                        })
                        console.log(this.refCodeList,111)
                        this.metaForm.tableName = res.data.tableName;
                        this.metaForm.refCode = res.data.refCode;
                        this.metaForm.refName = res.data.refName;
@@ -151,12 +236,10 @@
                        this.dictionaryType.forEach(item=> {
                            this.searchDataList.forEach(item1=> {
                                if(item1.elementType == item.dictKey) {
                                    console.log(item.code,99)
                                    item1.elementTypeName = item.dictValue;
                                }
                            })
                        })
                        console.log(this.searchDataList,12345)
                    }
                })
            },
@@ -190,9 +273,9 @@
            },
            handleNodeClick(data) {
                if(!this.firstChild.includes(data.id)) {
                    console.log(data,234);
                    this.dictKey = data.dictKey;
                    this.getList();  //所在物理表、是否可选
                    this.isAdd = false;
                }
                // this.drawerPath = data.name;
                // this.$HTTP.get("/api/blade-system/api-scope/list",this.searchData).then(res=> {
@@ -277,4 +360,13 @@
    margin-right: 4px;
    color: red;
}
.operationIcon {
    font-size: 16px;
    margin-right:4px;
    cursor: pointer;
}
.saveBtn {
    margin-top: 20px;
    text-align: right;
}
</style>