gaoaoy
2024-03-04 c3b8f3f950ca99b011ea8f43b2356ddf0508f3b9
6 设备工具明细
已修改4个文件
已添加1个文件
321 ■■■■■ 文件已修改
src/assets/api/controller.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tool/value-table.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/a5-laboratory-management.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/a6-device-management.vue 292 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/js/menu.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js
@@ -7,6 +7,7 @@
        enums,
        capacityScope,
        laboratoryScope,
        deviceScope,
        systemLog,
        standardTree
    }
@@ -92,6 +93,13 @@
    obtainItemParameterList: "/laboratoryScope/obtainItemParameterList", //获取实验室名称
}
const deviceScope = {
    selectDeviceParameter: "/deviceScope/selectDeviceParameter", //查询设备详情列表
    addDeviceParameter: "/deviceScope/addDeviceParameter", //添加设备详情参数
    delDeviceParameter: "/deviceScope/delDeviceParameter", //删除设备详情参数
    upDeviceParameter: "/deviceScope/upDeviceParameter", //修改设备详情参数
}
const systemLog = {
    selectSystemLogList: "/systemLog/selectSystemLogList", //获取日志
}
src/components/tool/value-table.vue
@@ -411,6 +411,7 @@
                return false
            },
            main(row, val) {
                console.log(val);
                if (val.method == undefined) return
                else if (val.method == 'doDiy') {
                    if (val.id == 'update') {
src/components/view/a5-laboratory-management.vue
@@ -40,28 +40,32 @@
    <div class="role_manage">
        <div>
            <el-row class="title">
                <el-col :span="12" style="padding-left: 20px;">场所或设施</el-col>
                <el-col :span="12" style="padding-left: 20px;">设备工具明细:</el-col>
                <el-col :span="12" style="text-align: right;">
                    <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">新增</el-button>
                </el-col>
            </el-row>
        </div>
        <div class="search">
            <div class="search_thing">
                <div class="search_label">实验室名称:</div>
                <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                <div class="search_label">状态:</div>
                <div class="search_input"><el-input size="small" placeholder="全部" clearable
                        v-model="componentData.entity.laboratoryName" @keyup.enter.native="refreshTable()"></el-input></div>
            </div>
            <div class="search_thing">
                <div class="search_label">实验室编码:</div>
                <div class="search_label">设备名称:</div>
                <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                        v-model="componentData.entity.laboratoryNumber" @keyup.enter.native="refreshTable()"></el-input></div>
            </div>
            <div class="search_thing">
                <div class="search_label">负责人:</div>
                <div class="search_label">规格型号:</div>
                <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                        v-model="componentData.entity.head" @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="componentData.entity.head" @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>
src/components/view/a6-device-management.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,292 @@
<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-col>
                <el-col :span="12" style="text-align: right;">
                </el-col>
            </el-row>
        </div>
        <div class="search">
            <div class="search_thing">
                <div class="search_label">状态:</div>
                <el-select v-model="value" placeholder="全部">
                    <el-option
                      v-for="item in options"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value">
                    </el-option>
                  </el-select>
            </div>
            <div class="search_thing">
                <div class="search_label">设备名称:</div>
                <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                        v-model="componentData.entity.laboratoryNumber" @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="componentData.entity.head" @keyup.enter.native="refreshTable()"></el-input></div>
            </div>
                        <div class="search_thing">
                            <div class="search_label">设备大类:</div>
                            <el-select v-model="value" placeholder="请选择">
                                <el-option
                                  v-for="item in options"
                                  :key="item.value"
                                  :label="item.label"
                                  :value="item.value">
                                </el-option>
                              </el-select>
            </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">
            <!-- è¯­æ³• å­ç»„件通过 this.$emit +传入方法名 è°ƒç”¨çˆ¶ç»„件方法 ä¾‹å¦‚  this.$emit(selectAllByOne) å°±éœ€åœ¨çˆ¶ç»„件声明并传入  @selectAllByOne="selectAllByOne"-->
            <ValueTable @selectAllByOne="selectAllByOne" @isUpdate="isUpdate" ref="ValueTable" :url="$api.deviceScope.selectDeviceParameter" :upUrl="$api.deviceScope.upDeviceParameter" :delUrl="$api.deviceScope.delDeviceParameter" :componentData="componentData" :key="upIndex"/>
        </div>
            <div>
            <el-dialog
                title="设备详情"
                :visible.sync="dialogVisible"
                width="70%"
                :before-close="handleClose">
                <el-row style="display:flex;justify-content: space-around;">
                    <!-- å·¦è¾¹å¸ƒå±€ -->
                    <el-col  :span="7" >
                        <el-col>
                            <!-- å›¾ç‰‡ -->
                            <img src="https://www.baidu.com/img/bd_logo1.png" alt="" style="width:100%;height: 30vh;">
                            <!-- è¡¨å• -->
                            <el-form :label-position="labelPosition" :model="formData">
                                <el-form-item label="大类:" >
                                  <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
                                </el-form-item>
                                <el-form-item label="出厂日期">
                                  <el-input style="width:75%" :disabled="isUp" v-model="formData.dateProduction"></el-input>
                                </el-form-item>
                                <el-form-item label="设备负责人" >
                                  <el-input style="width:75%" :disabled="isUp" v-model="formData.equipmentManager"></el-input>
                                </el-form-item>
                                <el-form-item label="被授权人" >
                                    <el-input style="width:75%" :disabled="isUp" v-model="formData.authorizedPerson"></el-input>
                                  </el-form-item>
                                  <el-form-item v-if="!isUp" label="图片" >
                                    <div style="width:75%;border: 1px solid #DCDFE6;border-radius:4px;margin-left: 22%;display:flex;justify-content: space-around;">
                                            <div>{{formData.largeCategory}}</div>
                                            <div style="width: 40%;"></div>
                                            <div><el-button type="text">预览</el-button></div>
                                    </div>
                                  </el-form-item>
                              </el-form>
                        </el-col>
                    </el-col>
                    <!-- ä¸­é—´å¸ƒå±€ -->
                    <el-col  :span="7">
                        <el-form :label-position="labelPosition" :model="formData">
                            <el-form-item label="设备名称" >
                              <el-input style="width:75%" :disabled="isUp" v-model="formData.deviceName"></el-input>
                            </el-form-item>
                            <el-form-item label="内部编码">
                              <el-input style="width:75%" :disabled="isUp" v-model="formData.internalCode"></el-input>
                            </el-form-item>
                            <el-form-item label="资产编码" >
                              <el-input style="width:75%" :disabled="isUp" v-model="formData.assetCode"></el-input>
                            </el-form-item>
                            <el-form-item label="校准日期(月)" >
                                <el-input style="width:75%" :disabled="isUp" v-model="formData.calibrationDate"></el-input>
                              </el-form-item>
                          </el-form>
                    </el-col>
                    <!-- å³è¾¹å¸ƒå±€ -->
                    <el-col  :span="7">
                        <el-form :label-position="labelPosition" :model="formData">
                            <el-form-item label="活动区域" >
                              <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
                            </el-form-item>
                            <el-form-item label="活动区域">
                              <el-input style="width:75%" :disabled="isUp" v-model="formData.latestTraceability"></el-input>
                            </el-form-item>
                            <el-form-item label="活动形式" >
                              <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
                            </el-form-item>
                            <el-form-item label="活动形式" >
                                <el-input style="width:75%" :disabled="isUp" v-model="formData.largeCategory"></el-input>
                              </el-form-item>
                          </el-form>
                    </el-col>
                </el-row>
                <span slot="footer" class="dialog-footer">
                    <el-row v-if="!isUp">
                        <el-button @click="dialogVisible = false">取 æ¶ˆ</el-button>
                    <el-button type="primary" @click="dialogVisible = false">ç¡® å®š</el-button>
                    </el-row>
                </span>
            </el-dialog>
        </div>
    </div>
</template>
<script>
    import ValueTable from '../tool/value-table.vue'
    export default {
        components: {
            ValueTable
        },
        data() {
            return {
                //是否是档案修订  true不是 false是
                isUp: true,
                formData: {},
                value: '',
                options: [],
                labelPosition: 'right',
                dialogVisible: false,
                componentData: {
                    entity: {
                        largeCategory: null,
                        subclass: null,
                        deviceName: null,
                        internalCode: null,
                        specificationModel: null,
                        manufacturer: null,
                        orderBy: {
                            field: 'id',
                            order: 'asc'
                        }
                    },
                    isIndex: true,
                    showSelect: false,
                    select: false,
                    do: [{
                        id: 'details',
                        font: '详情',
                        type: 'text',
                        method: 'selectAllByOne'
                    }, {
                        id: 'delete',
                        font: '删除',
                        type: 'text',
                        method: 'doDiy'
                    },{
                        id: 'archives',
                        font: '档案修订',
                        type: 'text',
                        method: 'isUpdate'
                    }],
                    tagField: {},
                    selectField: {},
                    requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'],
                    requiredUp:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer']
                },
                entityCopy: {},
                upIndex: 0,
                addDia: true,
                addPower: true
            }
        },
        mounted() {
            this.entityCopy = this.HaveJson(this.componentData.entity)
            this.getPower()
        },
        methods: {
            refreshTable() {
                this.$refs['ValueTable'].selectList()
            },
            refresh() {
                this.componentData.entity = this.HaveJson(this.entityCopy)
                this.upIndex++
            },
            // æƒé™åˆ†é…
            getPower(radio) {
                let power = JSON.parse(sessionStorage.getItem('power'))
                let up = false
                let del = false
                let add = false
                for (var i = 0; i < power.length; i++) {
                    if(power[i].menuMethod=='upDeviceParameter'){
                        up = true
                    }
                    if(power[i].menuMethod=='delDeviceParameter'){
                        del = true
                    }
                    if(power[i].menuMethod=='addDeviceParameter'){
                        add = true
                    }
                }
                if(!del){
                    this.componentData.do.splice(1, 1)
                }
                if(!up){
                    this.componentData.do.splice(0, 1)
                }
                this.addPower = add
            },
            handleClose(){
                this.dialogVisible = false;
            },
            selectAllByOne(row){
                this.isUp = true
                //打开弹框
                this.dialogVisible = true;
                //row = ç‚¹å‡»å¯¹åº”行值
                //复制给formData
                this.formData=row;
            },
            isUpdate(row){
                //修改  isUp ä¸ºæ¡£æ¡ˆä¿®æ”¹
                this.isUp = false
                //打开弹框
                this.dialogVisible = true;
                //row = ç‚¹å‡»å¯¹åº”行值一行值
                //复制给formData
                this.formData=row;
            }
            }
        }
</script>
static/js/menu.js
@@ -405,9 +405,9 @@
        }, {
            v: "设备工具明细",
            i: "font icon-24gl-clipboardList",
            u: "",
            u: "a6-device-management",
            g: "6.4 è®¾å¤‡",
            p: ""
            p: "selectDeviceParameter"
        }, {
            v: "资源预定",
            i: "font icon-24gl-clipboardList",