Crunchy
2024-04-25 91d4dbb579831da006e57643770e42d7dc184d05
2024-4-25 资源要求-设备管理前端调整
已修改1个文件
302 ■■■■ 文件已修改
src/components/view/a6-device-management.vue 302 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/a6-device-management.vue
@@ -116,38 +116,18 @@
                            </div>
                        </el-image>
                        <!-- 表单 -->
                        <el-form :label-position="labelPosition" :model="formData" label-width="90px">
                            <el-form-item label="出厂日期:">
                                <el-date-picker style="width:100%" :disabled="isUp" v-model="formData.dateProduction" type="datetime"
                                    size="small" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期">
                                </el-date-picker>
                        <el-form :label-position="labelPosition" :model="formData" label-width="100px">
                            <el-form-item label="仪器名称:">
                            <el-input :disabled="isUp" v-model="formData.deviceName" size="small"></el-input>
                            </el-form-item>
                            <el-form-item label="设备负责人:">
                                <el-select :disabled="isUp" v-model="formData.equipmentManager" placeholder="请选择" size="small"
                                    style="width:100%">
                                    <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
                                        :value="item.value">
                                    </el-option>
                                </el-select>
                            <el-form-item label="仪器名称EN:">
                                <el-input :disabled="isUp" v-model="formData.enDeviceName" size="small"></el-input>
                            </el-form-item>
                            <el-form-item label="被授权人:">
                                <el-select :disabled="isUp" v-model="formData.authorizedPerson" size="small" multiple placeholder="请选择"
                                    style="width:100%">
                                    <el-option v-for="item in authorizerList" :key="item.value" :label="item.label" :value="item.value">
                                    </el-option>
                                </el-select>
                            <el-form-item label="规格型号:">
                                <el-input :disabled="isUp" v-model="formData.specificationModel" size="small"></el-input>
                            </el-form-item>
              <el-form-item label="检验项目:">
                <el-cascader
                v-model="formData.insProductIds"
                :options="options"
                :show-all-levels="false"
                :props="props"
                placeholder="请选择" size="small"
                style="width:100%"
                collapse-tags
                separator=","
                clearable></el-cascader>
                            <el-form-item label="生产厂家:">
                                <el-input :disabled="isUp" v-model="formData.manufacturer" size="small"></el-input>
                            </el-form-item>
                        </el-form>
                    </el-col>
@@ -155,92 +135,102 @@
                <!-- 中间布局 -->
                <el-col :span="7">
                    <el-form :label-position="labelPosition" :model="formData" label-width="116px">
                        <el-form-item label="设备名称:">
                            <el-input :disabled="isUp" v-model="formData.deviceName" size="small"></el-input>
                                        <el-form-item label="校准服务机构:">
                            <el-input :disabled="isUp" v-model="formData.calibrationServices" size="small"></el-input>
                        </el-form-item>
                        <el-form-item label="内部编码:">
                            <el-input :disabled="isUp" v-model="formData.internalCode" size="small"></el-input>
                        </el-form-item>
                        <el-form-item label="资产编码:">
                            <el-input :disabled="isUp" v-model="formData.assetCode" size="small"></el-input>
                        </el-form-item>
                        <el-form-item label="校准日期(月):">
                            <el-date-picker :disabled="isUp" v-model="formData.calibrationDate" type="month" size="small"
                                format="yyyy-MM" value-format="yyyy-MM" style="width:100%" placeholder="选择月">
                            </el-date-picker>
                        </el-form-item>
                        <el-form-item label="报废时间:">
                            <el-date-picker style="width:100%" :disabled="isUp" v-model="formData.scrapTime" type="datetime"
                                format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="选择时间">
                            </el-date-picker>
                        </el-form-item>
                        <el-form-item label="验收记录:">
                            <el-input :disabled="isUp" v-model="formData.acceptanceRecords" size="small"></el-input>
                        </el-form-item>
                        <el-form-item label="设备编码:">
                            <el-form-item label="出厂编号:">
                            <el-input :disabled="isUp" v-model="formData.factoryNo" size="small"></el-input>
                        </el-form-item>
                            <el-form-item label="管理编号:">
                            <el-input :disabled="isUp" v-model="formData.managementNumber" size="small"></el-input>
                            </el-form-item>
                        <el-form-item label="购置日期:">
                            <el-date-picker style="width:100%" :disabled="isUp" v-model="formData.acquisitionDate" type="datetime"
                                size="small" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期">
                                            <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.acquisitionDate" type="date"
                                                format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
                        <el-form-item label="准确度量值:">
                            <el-input :disabled="isUp" v-model="formData.accurateMeasurement" size="small"></el-input>
                            <el-form-item label="启用日期:">
                                            <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.activationDate" type="date"
                                                format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="选择日期">
                                            </el-date-picker>
                        </el-form-item>
                        <el-form-item label="备注:">
                            <el-input :disabled="isUp" v-model="formData.notes" size="small"></el-input>
                        </el-form-item>
                    </el-form>
                </el-col>
                <!-- 右边布局 -->
                <el-col :span="7">
                    <el-form :label-position="labelPosition" :model="formData" label-width="110px" ref="ruleForm">
                        <el-form-item label="规格型号:">
                            <el-input :disabled="isUp" v-model="formData.specificationModel" size="small"></el-input>
                        </el-form-item>
                        <el-form-item label="当前状态:">
                            <el-select :disabled="isUp" v-model="formData.deviceStatus" placeholder="请选择" size="small"
                                style="width:100%">
                                <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
                            <el-form-item label="管理人:">
                            <el-select v-model="formData.equipmentManager" placeholder="请选择" size="small" style="width:100%">
                                <el-option :disabled="isUp" v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
                                :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <el-form-item label="存放点:">
                            <el-input :disabled="isUp" v-model="formData.storagePoint" size="small"></el-input>
                        </el-form-item>
                        <el-form-item label="最近追溯日期:">
                            <el-date-picker style="width:100%" :disabled="isUp" v-model="formData.latestTraceability"
                                format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" size="small"
                                placeholder="选择日期">
                            <el-form-item label="技术指标:">
                            <el-input :disabled="isUp" v-model="formData.technicalIndicators" :rows="7" type="textarea" size="small"></el-input>
                            </el-form-item>
                    </el-form>
                </el-col>
                <!-- 右边布局 -->
                <el-col :span="7">
                    <el-form :label-position="labelPosition" :model="formData" label-width="120px" ref="ruleForm">
            <!-- 实验室列表 -->
            <el-form-item label="所属部门:">
              <el-select :disabled="isUp" v-model="formData.subordinateDepartmentsId" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="检测项目:">
              <el-cascader
              :disabled="isUp"
              v-model="formData.insProductIds"
              :options="options"
              :show-all-levels="false"
              :props="props"
              placeholder="请选择" size="small"
              style="width:100%;"
              :collapse-tags="!isUp"
              separator=","
              filterable
              clearable></el-cascader>
            </el-form-item>
            <el-form-item label="最近校准日期:">
                            <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.latestTraceability" format="yyyy-MM-dd"
                                value-format="yyyy-MM-dd" type="date" size="small" placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
                        <el-form-item label="停用时间:">
                            <el-date-picker style="width:100%" :disabled="isUp" format="yyyy-MM-dd HH:mm:ss"
                                value-format="yyyy-MM-dd HH:mm:ss" v-model="formData.downTime" type="datetime" size="small"
                                placeholder="选择时间">
            <el-form-item label="下次校准日期:">
                            <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.latestTraceability" format="yyyy-MM-dd"
                                value-format="yyyy-MM-dd" type="date" size="small" placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
                        <el-form-item label="维修记录:">
                            <el-input :disabled="isUp" v-model="formData.maintenanceRecords" size="small"></el-input>
            <el-form-item label="设备类型:">
              <el-select :disabled="isUp" v-model="formData.largeCategory" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in equipmentList" :key="item.value" :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
                        </el-form-item>
                        <el-form-item label="生产厂家:">
                            <el-input :disabled="isUp" v-model="formData.manufacturer" size="small"></el-input>
            <el-form-item label="单价(万元):">
              <el-input :disabled="isUp" v-model="formData.unitPrice" size="small"></el-input>
                        </el-form-item>
                        <el-form-item label="采购费用:">
                            <el-input :disabled="isUp" v-model="formData.procurementCosts" size="small"></el-input>
            <el-form-item label="当前状态:">
                            <el-select :disabled="isUp" v-model="formData.deviceStatus" placeholder="请选择" size="small" style="width:100%">
                                <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
                                </el-option>
                            </el-select>
                        </el-form-item>
                        <el-form-item label="校准证书:">
                            <el-input :disabled="isUp" v-model="formData.calibrationCerticate" size="small"></el-input>
            <el-form-item label="校准周期(月):">
              <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
                        </el-form-item>
                        <el-form-item v-if="!isUp" label="图片:">
                        <el-form-item label="图片:">
                            <div
                                style="border: 1px solid #DCDFE6;border-radius:4px;height:32px;lineHeight:32px;display:flex;justify-content: space-around;font-size: 13px;">
                                <div v-show="formData.imageName" class="picName">{{formData.imageName}}</div>
                                <el-upload :action="action" :on-success="handleSuccessUpImg" :show-file-list="false"
                                <el-upload :disabled="isUp" :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false"
                                    accept='image/jpg,image/jpeg,image/png' :headers="headers" :on-change="beforeUpload"
                                    :on-error="onError" ref='upload'>
                                    <el-button type="text" style="height:30px;paddingTop:8px">上传</el-button>
                                    <el-button type="text" style="height:30px;padding-top:8px">上传</el-button>
                                </el-upload>
                            </div>
                        </el-form-item>
@@ -282,67 +272,40 @@
                <el-input v-model="formData2.deviceName" size="small"></el-input>
                            </el-form-item>
              <el-form-item label="仪器名称EN:">
                <el-input v-model="formData2.deviceName" size="small"></el-input>
                <el-input v-model="formData2.enDeviceName" size="small"></el-input>
                            </el-form-item>
              <el-form-item label="规格型号:">
                <el-input v-model="formData2.deviceName" size="small"></el-input>
                <el-input v-model="formData2.specificationModel" size="small"></el-input>
                            </el-form-item>
              <el-form-item label="生产厂家:">
                <el-input v-model="formData2.deviceName" size="small"></el-input>
                <el-input v-model="formData2.manufacturer" size="small"></el-input>
                            </el-form-item>
                            <!-- <el-form-item label="设备负责人:">
                                <el-select v-model="formData2.equipmentManager" placeholder="请选择" size="small" style="width:100%">
                                    <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
                                        :value="item.value">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                            <el-form-item label="被授权人:">
                                <el-select v-model="formData2.authorizedPerson" size="small" multiple placeholder="请选择"
                                    style="width:100%">
                                    <el-option v-for="item in authorizerList" :key="item.value" :label="item.label" :value="item.value">
                                    </el-option>
                                </el-select>
                            </el-form-item>
              <el-form-item label="检验项目:">
                <el-cascader
                v-model="formData.insProductIds"
                :options="options"
                :show-all-levels="false"
                :props="props"
                placeholder="请选择" size="small"
                style="width:100%"
                collapse-tags
                separator=","
                clearable></el-cascader>
                            </el-form-item>
              -->
                        </el-form>
                    </el-col>
                </el-col>
                <!-- 中间布局 -->
                <el-col :span="7">
                    <el-form :label-position="labelPosition" :model="formData2" label-width="110px">
            <el-form-item label="生产厂家EN:">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
            <!-- <el-form-item label="生产厂家EN:">
              <el-input v-model="formData2.factoryNo" size="small"></el-input>
            </el-form-item> -->
            <el-form-item label="校准服务机构:">
              <el-input v-model="formData2.calibrationServices" size="small"></el-input>
            </el-form-item>
            <el-form-item label="出厂编号:">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
              <el-input v-model="formData2.factoryNo" size="small"></el-input>
            </el-form-item>
            <el-form-item label="管理编号:">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
            </el-form-item>
            <el-form-item label="技术指标:">
              <el-input v-model="formData2.deviceName" :rows="7" type="textarea" size="small"></el-input>
              <el-input v-model="formData2.managementNumber" size="small"></el-input>
            </el-form-item>
            <el-form-item label="购置日期:">
                            <el-date-picker style="width:100%" v-model="formData2.scrapTime" type="date"
                                format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small" placeholder="选择日期">
                            <el-date-picker style="width:100%" v-model="formData2.acquisitionDate" type="date"
                                format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
            <el-form-item label="启用日期:">
                            <el-date-picker style="width:100%" v-model="formData2.scrapTime" type="date"
                                format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small" placeholder="选择日期">
                            <el-date-picker style="width:100%" v-model="formData2.activationDate" type="date"
                                format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
            <el-form-item label="管理人:">
@@ -352,8 +315,11 @@
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="地址:">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
            <el-form-item label="存放点:">
              <el-input v-model="formData2.storagePoint" size="small"></el-input>
            </el-form-item>
            <el-form-item label="技术指标:">
              <el-input v-model="formData2.technicalIndicators" :rows="7" type="textarea" size="small"></el-input>
            </el-form-item>
                    </el-form>
                </el-col>
@@ -362,8 +328,8 @@
                    <el-form :label-position="labelPosition" :model="formData2" label-width="120px" ref="ruleForm">
            <!-- 实验室列表 -->
            <el-form-item label="所属部门:">
              <el-select v-model="formData2.equipmentManager" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
              <el-select v-model="formData2.subordinateDepartmentsId" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
@@ -380,10 +346,7 @@
              separator=","
              clearable></el-cascader>
            </el-form-item>
            <el-form-item label="校准服务机构:">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
            </el-form-item>
            <el-form-item label="最近校准日期:">
            <!-- <el-form-item label="最近校准日期:">
                            <el-date-picker style="width:100%" v-model="formData2.latestTraceability" format="yyyy-MM-dd"
                                value-format="yyyy-MM-dd" type="date" size="small" placeholder="选择日期">
                            </el-date-picker>
@@ -392,16 +355,16 @@
                            <el-date-picker style="width:100%" v-model="formData2.latestTraceability" format="yyyy-MM-dd"
                                value-format="yyyy-MM-dd" type="date" size="small" placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
                        </el-form-item> -->
            <el-form-item label="设备类型:">
              <el-select v-model="formData2.equipmentManager" placeholder="请选择" size="small" style="width:100%">
              <el-select v-model="formData2.largeCategory" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in equipmentList" :key="item.value" :label="item.label"
                  :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="单价(万元):">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
              <el-input v-model="formData2.unitPrice" size="small"></el-input>
            </el-form-item>
            <el-form-item label="当前状态:">
                            <el-select v-model="formData2.deviceStatus" placeholder="请选择" size="small" style="width:100%">
@@ -410,7 +373,7 @@
                            </el-select>
                        </el-form-item>
            <el-form-item label="校准周期(月):">
              <el-input v-model="formData2.deviceName" size="small"></el-input>
              <el-input v-model="formData2.calibrationDate" size="small"></el-input>
            </el-form-item>
                        <el-form-item label="图片:">
                            <div
@@ -456,7 +419,7 @@
                options: [],
                labelPosition: 'right',
                dialogVisible: false,
                dialogVisible2: true,
                dialogVisible2: false,
                addPower: false,
                componentData: {
                    entity: {
@@ -466,7 +429,7 @@
                        largeCategory: null,
                        orderBy: {
                            field: 'id',
                            order: 'asc'
                            order: 'desc'
                        }
                    },
                    isIndex: true,
@@ -488,15 +451,19 @@
                            select: [{
                                value: 0,
                                type: 'success',
                                label: '正常'
                                label: '良好'
                            }, {
                                value: 1,
                                type: 'warning',
                                type: 'info',
                                label: '报废'
                            }, {
                                value: 2,
                                type: 'danger',
                                label: '保修'
                                label: '停用'
                            }, {
                                value: 3,
                                type: 'danger',
                                label: '存疑'
                            }]
                        },
                        equipmentManager: {
@@ -542,6 +509,8 @@
                authorizerList: [],
                // 当前状态列表
                deviceStatusList: [],
                // 所属部门
                subordinateDepartmentsList: [],
                upLoad: false,
                upLoad2: false,
            }
@@ -562,9 +531,22 @@
            // this.getAuthorizedPerson()
            this.selectEnumByCategory()
            this.selectDevicePrincipal()
            this.obtainItemParameterList()
      this.getInsProductIds()
        },
        methods: {
            obtainItemParameterList() {
                this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => {
                    let data = []
                    res.data.forEach(a=>{
                        data.push({
                            label: a.laboratoryName,
                            value: a.id
                        })
                    })
                    this.subordinateDepartmentsList = data
                })
            },
            refreshTable() {
                this.$refs['ValueTable'].selectList()
            },
@@ -658,7 +640,7 @@
                //row = 点击对应行值
                //复制给formData
                this.formData = this.HaveJson(row);
                this.formData.authorizedPerson = row.authorizedPerson ? row.authorizedPerson.split(',') : [];
                this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
            },
            isUpdate(row) {
                //修改  isUp 为档案修改
@@ -668,7 +650,7 @@
                //row = 点击对应行值一行值
                //复制给formData
                this.formData = this.HaveJson(row);
                this.formData.authorizedPerson = row.authorizedPerson ? row.authorizedPerson.split(',') : [];
                this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
            },
            beforeUpload(file) {
                if (file.size > 1024 * 1024 * 10) {
@@ -700,13 +682,13 @@
            },
            submitForm() {
                this.upLoad = true;
                let authorizedPerson = this.formData.authorizedPerson.length > 0 ? this.formData.authorizedPerson.join(',') : ''
                delete this.formData.createTime
                delete this.formData.updateTime
                delete this.formData.createUser
                delete this.formData.updateUser
                this.formData.authorizedPerson = authorizedPerson
        this.formData.insProductIds = JSON.stringify(this.formData.insProductIds)
                // let authorizedPerson = this.formData.authorizedPerson.length > 0 ? this.formData.authorizedPerson.join(',') : ''
                // delete this.formData.createTime
                // delete this.formData.updateTime
                // delete this.formData.createUser
                // delete this.formData.updateUser
                // this.formData.authorizedPerson = authorizedPerson
        this.formData.insProductIds = this.formData.insProductIds.join()
                this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
                    headers: {
                        'Content-Type': 'application/json'
@@ -728,10 +710,10 @@
            },
            submitForm2() {
                this.upLoad2 = true;
                let authorizedPerson = this.formData2.authorizedPerson.length > 0 ? this.formData2.authorizedPerson.join(',') :
                    ''
                this.formData2.authorizedPerson = authorizedPerson
        this.formData.insProductIds = JSON.stringify(this.formData.insProductIds)
        //         let authorizedPerson = this.formData2.authorizedPerson.length > 0 ? this.formData2.authorizedPerson.join(',') :
        //             ''
        //         this.formData2.authorizedPerson = authorizedPerson
        this.formData.insProductIds = this.formData.insProductIds.join()
                this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, {
                    headers: {
                        'Content-Type': 'application/json'