李林
2024-02-27 2ffb110afafd3374c458cea74e41bc1da9ccb739
Merge remote-tracking branch 'origin/master'
已修改2个文件
已添加1个文件
227 ■■■■■ 文件已修改
src/assets/api/controller.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/5capacity-scope.vue 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/js/menu.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js
@@ -4,7 +4,8 @@
        login,
        user,
        dataReporting,
        enums
        enums,
        capacityScope
    }
}
@@ -66,3 +67,14 @@
    upEnum: "/enum/upEnum", //修改枚举
    delEnum: "/enum/delEnum", //删除枚举
}
const capacityScope = {
    selectItemParameterList: "/capacityScope/selectItemParameterList", //获取检验项目参数
    addItemParameter: "/capacityScope/addItemParameter", //新增检验项目参数
    delItemParameter: "/capacityScope/delItemParameter", //删除检验项目参数
    upItemParameter: "/capacityScope/upItemParameter", //修改检验项目参数
    selectTestObjectList: "/capacityScope/selectTestObjectList", //获取检测对象
    addTestObject: "/capacityScope/addTestObject", //新增检测对象
    delTestObject: "/capacityScope/delTestObject", //删除检测对象
    upTestObject: "/capacityScope/upTestObject", //修改检测对象
}
src/components/view/5capacity-scope.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,211 @@
<style scoped>
    .title {
        height: 60px;
        line-height: 60px;
    }
    .search {
        background-color: #fff;
        height: 80px;
        display: flex;
        align-items: center;
    }
    .search_thing {
        width: 350px;
        display: flex;
        align-items: center;
    }
    .search_label {
        width: 110px;
        font-size: 14px;
        text-align: right;
    }
    .search_input {
        width: calc(100% - 110px);
    }
    .table {
        margin-top: 10px;
        background-color: #fff;
        width: calc(100% - 40px);
        height: calc(100% - 60px - 80px - 10px - 40px);
        padding: 20px;
    }
</style>
<template>
    <div class="role_manage">
        <div>
            <el-row class="title">
                <el-col :span="12" style="padding-left: 20px;">
                    <el-radio-group v-model="radio" @change="selectorSwitch">
                        <el-radio-button label="0">检验项目参数</el-radio-button>
                        <el-radio-button label="1">检验对象</el-radio-button>
                    </el-radio-group>
                </el-col>
                <el-col :span="12" style="text-align: right;">
                    <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">新增</el-button>
                    <el-button size="medium" icon="el-icon-delete" >删除</el-button>
                </el-col>
            </el-row>
        </div>
            <div class="search" v-if="showItemParameter">
            <div class="search_thing">
                <div class="search_label">检验项:</div>
                <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                        v-model="itemParameterData.entity.inspectionItem" @keyup.enter.native="refreshTable()"></el-input></div>
            </div>
            <div class="search_thing">
                <div class="search_label">实验室:</div>
                <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                        v-model="itemParameterData.entity.laboratory" @keyup.enter.native="refreshTable()"></el-input></div>
            </div>
            <div class="search_thing">
                <div class="search_label">设备组:</div>
                <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                        v-model="itemParameterData.entity.deviceGroup" @keyup.enter.native="refreshTable()"></el-input></div>
            </div>
            <div class="search_thing" style="padding-left: 30px;">
                <el-button size="small" @click="refresh()">重 ç½®</el-button>
                <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
            </div>
        </div>
        <div class="table" v-if="showItemParameter">
            <ValueTable ref="itemParameterTable" :url="$api.capacityScope.selectItemParameterList" :upUrl="$api.capacityScope.upItemParameter" :delUrl="$api.capacityScope.delItemParameter" :componentData="itemParameterData" :key="upIndex"/>
        </div>
        <div class="search testObject" v-if="showTestObject">
            <div class="search_thing">
                <div class="search_label">样品名称:</div>
                <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                        v-model="testObjectData.entity.specimenName" @keyup.enter.native="refreshTable()"></el-input></div>
            </div>
            <div class="search_thing" style="padding-left: 30px;">
                <el-button size="small" @click="refresh()">重 ç½®</el-button>
                <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
            </div>
        </div>
        <div class="table" v-if="showTestObject">
            <ValueTable ref="testObjectTable" :url="$api.capacityScope.selectTestObjectList" :upUrl="$api.capacityScope.upTestObject" :delUrl="$api.capacityScope.delTestObject" :componentData="testObjectData" :key="upIndex"/>
        </div>
    </div>
</template>
<script>
    import ValueTable from '../tool/value-table.vue'
    export default {
        components: {
            ValueTable
        },
        data() {
            return {
                radio: '0',
                showItemParameter: true,
                showTestObject: false,
                itemParameterData: {
                    entity: {
                        inspectionItem: null,
                        laboratory: null,
                        deviceGroup: null,
                        orderBy: {
                            field: 'id',
                            order: 'asc'
                        }
                    },
                    isIndex: false,
                    showSelect: true,
                    select: true,
                    do: [{
                        id: 'update',
                        font: '编辑',
                        type: 'text',
                        method: 'doDiy',
                        field:[]
                    },{
                        id: 'delete',
                        font: '删除',
                        type: 'text',
                        method: 'doDiy'
                    }],
                    tagField: {},
                    selectField: {},
                    requiredAdd:['inspectionItem', 'manHour', 'inspectionItemType', 'manHourGroup'],
                    requiredUp:['inspectionItem', 'manHour', 'inspectionItemType', 'manHourGroup']
                },
                testObjectData: {
                    entity: {
                        specimenName: null,
                        orderBy: {
                            field: 'id',
                            order: 'asc'
                        }
                    },
                    isIndex: false,
                    showSelect: true,
                    select: true,
                    do: [{
                        id: 'update',
                        font: '编辑',
                        type: 'text',
                        method: 'doDiy',
                        field:['createUserName', 'updateUserName']
                    },{
                        id: 'delete',
                        font: '删除',
                        type: 'text',
                        method: 'doDiy'
                    }],
                    tagField: {},
                    selectField: {},
                    requiredAdd:['specimenName'],
                    requiredUp:['specimenName']
                },
                itemParameterEntityCopy: {},
                testObjectDataEntityCopy: {},
                upIndex: 0,
                addDia: false,
                addPower: true
            }
        },
        mounted() {
            this.itemParameterEntityCopy = this.HaveJson(this.itemParameterData.entity)
            this.testObjectDataEntityCopy = this.HaveJson(this.testObjectData.entity)
        },
        methods: {
            selectorSwitch() {
                if(this.radio === '0') {
                    this.showItemParameter = true;
                    this.showTestObject = false;
                    this.$nextTick(() => {
                        this.$refs.itemParameterTable.selectList()
                    })
                } else {
                    this.showTestObject = true;
                    this.showItemParameter = false;
                }
            },
            refreshTable() {
                if(this.radio === '0') {
                    this.$refs['itemParameterTable'].selectList()
                } else {
                    this.$refs['testObjectTable'].selectList()
                }
            },
            refresh() {
                this.itemParameterData.entity = this.HaveJson(this.itemParameterEntityCopy)
                this.testObjectData.entity = this.HaveJson(this.testObjectDataEntityCopy)
                this.upIndex++
            },
            openAdd(){
                if(this.radio === '0') {
                    this.$refs.itemParameterTable.openAddDia(this.$api.capacityScope.addItemParameter);
                } else {
                    this.$refs.testObjectTable.openAddDia(this.$api.capacityScope.addTestObject);
                }
            }
        }
    }
</script>
static/js/menu.js
@@ -238,7 +238,7 @@
        }, {
            v: "能力范围",
            i: "font icon-24gl-clipboardList",
            u: "",
            u: "5capacity-scope",
            g: "C能力范围和资质",
            p: ""
        }, {