From 213df69780f7aa5c229d12174d8f9758f8cadd8d Mon Sep 17 00:00:00 2001
From: gaoluyang <gaoluyang@rengu.cc>
Date: 星期二, 23 七月 2024 16:30:44 +0800
Subject: [PATCH] 装备电缆-增加能力范围导入接口
---
src/components/view/a6-device-management.vue | 1054 ++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 772 insertions(+), 282 deletions(-)
diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue
index df5efb9..04f59c8 100644
--- a/src/components/view/a6-device-management.vue
+++ b/src/components/view/a6-device-management.vue
@@ -36,294 +36,438 @@
padding: 20px;
}
- .el-form-item{
- margin-bottom: 16px;
- }
+ .el-form-item {
+ margin-bottom: 16px;
+ }
+
+ .picName {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ word-break: break-all;
+ width: 120px;
+ }
</style>
<template>
<div class="role_manage">
- <div>
+ <div v-if="!showData">
<el-row class="title">
- <el-col :span="12" style="padding-left: 20px;">璁惧宸ュ叿鏄庣粏</el-col>
+ <el-col :span="12" style="padding-left: 20px;text-align: left;">璁惧宸ュ叿鏄庣粏</el-col>
<el-col :span="12" style="text-align: right;">
+ <el-button size="medium" type="primary" @click="dialogVisible2 = true">鏂板</el-button>
</el-col>
</el-row>
</div>
- <div class="search">
+ <div class="search" v-if="!showData">
<div class="search_thing">
<div class="search_label">鐘舵�侊細</div>
- <el-select v-model="componentData.entity.status" placeholder="鍏ㄩ儴">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
+ <el-select v-model="componentData.entity.deviceStatus" placeholder="鍏ㄩ儴" size="small">
+ <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
- </el-select>
+ </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.deviceName" @keyup.enter.native="refreshTable()"></el-input></div>
</div>
- <div class="search_thing">
+ <div class="search_thing">
<div class="search_label">瑙勬牸鍨嬪彿锛�</div>
<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
- v-model="componentData.entity.internalCode" @keyup.enter.native="refreshTable()"></el-input></div>
- </div>
- <div class="search_thing">
- <div class="search_label">璁惧绫诲瀷锛�</div>
- <el-select v-model="componentData.entity.type" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
+ v-model="componentData.entity.specificationModel" @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" @click="refresh()">閲� 缃�</el-button>
<el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
</div>
</div>
- <div class="table">
+ <div class="table" v-if="!showData">
<!-- 璇硶 瀛愮粍浠堕�氳繃 this.$emit +浼犲叆鏂规硶鍚� 璋冪敤鐖剁粍浠舵柟娉� 渚嬪 this.$emit锛坰electAllByOne锛� 灏遍渶鍦ㄧ埗缁勪欢澹版槑骞朵紶鍏� @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"/>
+ <ValueTable @selectAllByOne="selectAllByOne" @isUpdate="isUpdate" ref="ValueTable"
+ :url="$api.deviceScope.selectDeviceParameter" :upUrl="$api.deviceScope.upDeviceParameter"
+ :delUrl="$api.deviceScope.delDeviceParameter" :componentData="componentData" :key="upIndex" />
</div>
- <el-dialog
- :title="isUp?'璁惧璇︽儏':'妗f淇'"
- :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: 320px;marginBottom:16px">
- <!-- 琛ㄥ崟 -->
- <el-form :label-position="labelPosition" :model="formData" label-width="90px">
- <el-form-item label="璁惧鍒嗙被:" >
- <!-- <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input> -->
- <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-date-picker
- style="width:100%"
- :disabled="isUp"
- v-model="formData.dateProduction"
- type="datetime"
- size="small"
- placeholder="閫夋嫨鏃ユ湡">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="璁惧璐熻矗浜�:" >
- <!-- <el-input :disabled="isUp" v-model="formData.equipmentManager" size="small"></el-input> -->
- <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>
- <el-form-item label="琚巿鏉冧汉:" >
- <!-- <el-input :disabled="isUp" v-model="formData.authorizedPerson" size="small"></el-input> -->
- <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>
- </el-form>
- </el-col>
- </el-col>
- <!-- 涓棿甯冨眬 -->
- <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-dialog :title="isUp?'璁惧璇︽儏':'妗f淇'" :visible.sync="dialogVisible" width="70%" :before-close="handleClose">
+ <el-row style="display:flex;justify-content: space-around;">
+ <!-- 宸﹁竟甯冨眬 -->
+ <el-col :span="7">
+ <el-col>
+ <!-- 鍥剧墖 -->
+ <el-image class="img" style="width:100%;height: 320px;marginBottom:16px"
+ :src="javaApi+'/img/'+formData.imageUpload">
+ <div slot="error" class="image-error" style="width: calc(100% -2px);
+ height: 318px;
+ border-radius: 16px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid #EEEEEE;">
+ <i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
+ </div>
+ </el-image>
+ <!-- 琛ㄥ崟 -->
+ <el-form :label-position="labelPosition" :model="formData" label-width="120px">
+ <el-form-item label="浠櫒鍚嶇О:" required>
+ <el-input :disabled="isUp" v-model="formData.deviceName" size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="浠櫒鍚嶇ОEN:" required>
+ <el-input :disabled="isUp" v-model="formData.enDeviceName" size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿:" required>
+ <el-input :disabled="isUp" v-model="formData.specificationModel" size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="鐢熶骇鍘傚:">
+ <el-input :disabled="isUp" v-model="formData.manufacturer" size="small"></el-input>
+ </el-form-item>
+ </el-form>
+ </el-col>
+ </el-col>
+ <!-- 涓棿甯冨眬 -->
+ <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.calibrationServices" size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="鍑哄巶缂栧彿:">
+ <el-input :disabled="isUp" v-model="formData.factoryNo" size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="绠$悊缂栧彿:" required>
+ <el-input :disabled="isUp" v-model="formData.managementNumber" size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="璐疆鏃ユ湡:">
+ <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="鍚敤鏃ユ湡:" required>
+ <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-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-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="140px" 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-input :disabled="isUp" v-model="formData.internalCode" size="small"></el-input>
+ <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-input :disabled="isUp" v-model="formData.assetCode" size="small"></el-input>
+ <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�:" v-if="isUp">
+ <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="涓嬫鏍″噯鏃ユ湡:" v-if="isUp">
+ <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-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-date-picker
- :disabled="isUp"
- v-model="formData.calibrationDate"
- type="month"
- size="small"
- style="width:100%"
- placeholder="閫夋嫨鏈�">
- </el-date-picker>
- <!-- <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input> -->
- </el-form-item>
- <el-form-item label="鎶ュ簾鏃堕棿:" >
- <el-date-picker
- style="width:100%"
- :disabled="isUp"
- v-model="formData.calibrationDate"
- type="datetime"
- size="small"
- placeholder="閫夋嫨鏃堕棿">
- </el-date-picker>
- <!-- <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input> -->
- </el-form-item>
- <el-form-item label="楠屾敹璁板綍:" >
+ <el-form-item label="鍗曚环(涓囧厓):">
+ <el-input :disabled="isUp" v-model="formData.unitPrice" size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="褰撳墠鐘舵��:" required>
+ <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="鏍″噯鍛ㄦ湡锛堟湀锛�:" required>
<el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
- </el-form-item>
- <!-- 璺熸潕缁忕悊纭涓嶈杩欎釜瀛楁 -->
- <!-- <el-form-item label="缁嗙被:" >
- <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
- </el-form-item> -->
- <el-form-item label="鍑哄巶缂栧彿:" >
- <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
- </el-form-item>
- <el-form-item label="璐疆鏃ユ湡:" >
- <el-date-picker
- style="width:100%"
- :disabled="isUp"
- v-model="formData.calibrationDate"
- type="datetime"
- size="small"
- placeholder="閫夋嫨鏃ユ湡">
- </el-date-picker>
- <!-- <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input> -->
- </el-form-item>
- <el-form-item label="鍑嗙‘搴﹂噺鍊�:" >
- <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
- </el-form-item>
- <el-form-item label="澶囨敞:" >
- <el-input :disabled="isUp" v-model="formData.calibrationDate" 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.largeCategory" size="small"></el-input>
</el-form-item>
- <el-form-item label="璁惧鐘舵��:">
- <!-- <el-input :disabled="isUp" v-model="formData.latestTraceability" size="small"></el-input> -->
- <el-select :disabled="isUp" v-model="formData.latestTraceability" 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 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 :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;padding-top:8px">涓婁紶</el-button>
+ </el-upload>
+ </div>
+ </el-form-item>
+ </el-form>
+ </el-col>
+ </el-row>
+ <span slot="footer" class="dialog-footer">
+ <el-row v-if="!isUp">
+ <el-button @click="handleClose">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button>
+ </el-row>
+ </span>
+ </el-dialog>
+
+
+
+ <!-- 鏂板-->
+ <el-dialog title="鏂板璁惧" :visible.sync="dialogVisible2" width="70%" :before-close="handleClose2">
+ <el-row style="display:flex;justify-content: space-around;">
+ <!-- 宸﹁竟甯冨眬 -->
+ <el-col :span="7">
+ <el-col>
+ <!-- 鍥剧墖 -->
+ <el-image class="img" style="width:100%;height: 320px;margin-bottom:16px"
+ :src="javaApi+'/img/'+formData2.imageUpload">
+ <div slot="error" class="image-error" style="width: calc(100% -2px);
+ height: 318px;
+ border-radius: 16px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid #EEEEEE;">
+ <i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
+ </div>
+ </el-image>
+ <!-- 琛ㄥ崟 -->
+ <el-form :label-position="labelPosition" :model="formData2" label-width="120px">
+ <el-form-item label="浠櫒鍚嶇О:" required>
+ <el-input v-model="formData2.deviceName" size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="浠櫒鍚嶇ОEN:" required>
+ <el-input v-model="formData2.enDeviceName" size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿:" required>
+ <el-input v-model="formData2.specificationModel" size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="鐢熶骇鍘傚:">
+ <el-input v-model="formData2.manufacturer" size="small"></el-input>
+ </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.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 :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input>
+ <el-form-item label="鍑哄巶缂栧彿:">
+ <el-input v-model="formData2.factoryNo" size="small"></el-input>
</el-form-item>
- <el-form-item label="鏈�杩戣拷婧棩鏈�:" >
- <!-- <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input> -->
- <el-date-picker
- style="width:100%"
- :disabled="isUp"
- v-model="formData.largeCategory"
- type="datetime"
- size="small"
- placeholder="閫夋嫨鏃ユ湡">
- </el-date-picker>
- </el-form-item>
- <el-form-item label="鍋滅敤鏃堕棿:" >
- <el-date-picker
- style="width:100%"
- :disabled="isUp"
- v-model="formData.largeCategory"
- type="datetime"
- size="small"
- placeholder="閫夋嫨鏃堕棿">
- </el-date-picker>
- <!-- <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input> -->
- </el-form-item>
- <el-form-item label="缁翠慨璁板綍:" >
- <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input>
- </el-form-item>
- <el-form-item label="鐢熶骇鍘傚:" >
- <el-input :disabled="isUp" v-model="formData.largeCategory" size="small" ></el-input>
- </el-form-item>
- <!-- 璺熸潕缁忕悊纭涓嶈杩欎釜瀛楁 -->
- <!-- <el-form-item label="妫�娴嬬被鍨�:" >
- <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input>
- </el-form-item> -->
- <el-form-item label="閲囪喘璐圭敤:" >
- <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input>
- </el-form-item>
- <el-form-item label="鏍″噯璇佷功:" >
- <el-input :disabled="isUp" v-model="formData.largeCategory" size="small"></el-input>
- </el-form-item>
- <el-form-item v-if="!isUp" 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-if="formData.largeCategory">{{formData.largeCategory}}</div>
- <el-upload
- action="https://jsonplaceholder.typicode.com/posts/"
- :on-success="handleSuccessUpImg"
- :show-file-list="false"
- accept='image/jpg,image/jpeg,image/png'
- >
- <el-button type="text" style="height:30px;paddingTop:8px">涓婁紶</el-button>
- </el-upload>
- </div>
- </el-form-item>
- </el-form>
- </el-col>
- </el-row>
+ <el-form-item label="绠$悊缂栧彿:" required>
+ <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.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="鍚敤鏃ユ湡:" required>
+ <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="绠$悊浜�:">
+ <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-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>
+ <!-- 鍙宠竟甯冨眬 -->
+ <el-col :span="7">
+ <el-form :label-position="labelPosition" :model="formData2" label-width="120px" ref="ruleForm">
+ <!-- 瀹為獙瀹ゅ垪琛� -->
+ <el-form-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>
+ </el-form-item>
+ <el-form-item label="妫�娴嬮」鐩�:">
+ <el-cascader
+ v-model="formData2.insProductIds"
+ :options="options"
+ :show-all-levels="false"
+ :props="props"
+ placeholder="璇烽�夋嫨" size="small"
+ style="width:100%"
+ collapse-tags
+ separator=","
+ filterable
+ clearable></el-cascader>
+ </el-form-item>
+ <el-form-item label="璁惧绫诲瀷:">
+ <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.unitPrice" size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="褰撳墠鐘舵��:" required>
+ <el-select v-model="formData2.deviceStatus" placeholder="璇烽�夋嫨" size="small" style="width:100%">
+ <el-option v-for="item in deviceStatusList" :key="item.id" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:" required>
+ <el-input v-model="formData2.calibrationDate" size="small"></el-input>
+ </el-form-item>
+ <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="formData2.imageName" class="picName">{{formData2.imageName}}</div>
+ <el-upload :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;padding-top:8px">涓婁紶</el-button>
+ </el-upload>
+ </div>
+ </el-form-item>
+ </el-form>
+ </el-col>
+ </el-row>
+ <span slot="footer" class="dialog-footer">
+ <el-row>
+ <el-button @click="handleClose2">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitForm2" :loading="upLoad2">纭� 瀹�</el-button>
+ </el-row>
+ </span>
+ </el-dialog>
+ <el-dialog title="鏁伴噰閰嶇疆" :visible.sync="dialogVisible3" width="400px">
+ <div class="search_thing" style="margin-bottom: 14px;">
+ <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>IP锛�</div>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="configForm.ip"></el-input>
+ </div>
+ <div class="search_thing" style="margin-bottom: 14px;">
+ <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>閲囬泦鍦板潃锛�</div>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="configForm.collectUrl"></el-input>
+ </div>
+ <div class="search_thing" style="margin-bottom: 14px;">
+ <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鍌ㄥ瓨鍦板潃锛�</div>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="configForm.storageUrl"></el-input>
+ </div>
+ <div class="search_thing" style="margin-bottom: 14px;">
+ <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鍙傜収锛�</div>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="configForm.refer"></el-input>
+ </div>
+ <div class="search_thing" style="margin-bottom: 14px;">
+ <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>X锛�</div>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="configForm.x"></el-input>
+ </div>
+ <div class="search_thing" style="margin-bottom: 14px;">
+ <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>Y锛�</div>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="configForm.y"></el-input>
+ </div>
+ <div class="search_thing">
+ <div class="search_label">鍏紡锛�</div>
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="configForm.formula"></el-input>
+ </div>
<span slot="footer" class="dialog-footer">
- <el-row v-if="!isUp">
- <el-button @click="handleClose">鍙� 娑�</el-button>
- <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
- </el-row>
- </span>
+ <el-row>
+ <el-button @click="dialogVisible3=false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitForm3" :loading="upLoad3">纭� 瀹�</el-button>
+ </el-row>
+ </span>
</el-dialog>
+ <dataAcquisitionConfig v-if="showData" :deviceId="deviceId"/>
</div>
</template>
<script>
import ValueTable from '../tool/value-table.vue'
+ import dataAcquisitionConfig from '../do/b6-device-management/b6-data-acquisition-config.vue'
export default {
components: {
- ValueTable
+ ValueTable,
+ dataAcquisitionConfig
},
data() {
return {
+ deviceId: '',
+ fileTypeOptions: [
+ {label: 'csv', value: '.csv'},
+ {label: 'db', value: '.db'},
+ {label: 'mdb', value: '.mdb'},
+ {label: 'word', value: '.docx'},
+ {label: 'excel', value: '.xlsx'},
+ {label: 'txt', value: '.txt'},
+ {label: 'png', value: '.png'},
+ ],
//鏄惁鏄。妗堜慨璁� true涓嶆槸 false鏄�
isUp: true,
- formData: {},
+ formData: {
+ },
+ formData2: {
+ imageUpload: '',
+ imageName: ''
+ },
value: '',
+ props: { multiple: true,emitPath:false,value:'id',label:'name' },
options: [],
labelPosition: 'right',
dialogVisible: false,
+ dialogVisible2: false,
+ addPower: false,
+ showData: false, // 鏁伴噰閰嶇疆椤甸潰
+ tableList: [],
componentData: {
entity: {
- largeCategory: null,
- subclass: null,
+ deviceStatus: null,
deviceName: null,
- internalCode: null,
specificationModel: null,
- manufacturer: null,
+ largeCategory: null,
orderBy: {
field: 'id',
order: 'asc'
@@ -333,120 +477,466 @@
showSelect: false,
select: false,
do: [{
- id: 'details',
- font: '璇︽儏',
- type: 'text',
- method: 'selectAllByOne'
- }, {
id: 'delete',
font: '鍒犻櫎',
type: 'text',
method: 'doDiy'
- },{
+ }, {
id: 'archives',
font: '妗f淇',
type: 'text',
method: 'isUpdate'
+ }, {
+ id: 'handleConfig',
+ font: '鏁伴噰閰嶇疆',
+ type: 'text',
+ method: 'handleConfig',
+ disabFun: (row, index) => {
+ return row.insProductItem === ''
+ }
}],
- tagField: {},
- selectField: {},
- requiredAdd:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer'],
- requiredUp:['largeCategory','subclass','deviceName','internalCode','specificationModel','manufacturer']
+ headNoShow:['enDeviceName'],
+ tagField: {
+ deviceStatus: {
+ select: []
+ },
+ equipmentManager: {
+ select: []
+ },
+ authorizedPerson: {
+ select: []
+ },
+ insProductIds:{
+ select:[]
+ }
+ },
+ linkEvent: {
+ deviceName: {
+ method: 'selectAllByOne'
+ }
+ },
+ selectField: {
+ authorizedPerson: {
+ select: [],
+ choose: true
+ },
+ equipmentManager: {
+ select: []
+ },
+ insProductIds:{
+ select:[],
+ choose: true
+ }
+ },
+ requiredAdd: [],
+ requiredUp: []
},
entityCopy: {},
upIndex: 0,
addDia: true,
addPower: true,
- //璁惧鍒楄〃
- equipmentList:[],
- // 璐熻矗浜哄垪琛�
- responsiblePersonList:[],
- // 鎺堟潈浜哄垪琛�
- authorizerList:[],
- // 璁惧鐘舵�佸垪琛�
- deviceStatusList:[],
+ //璁惧绫诲瀷鍒楄〃
+ equipmentList: [],
+ // 璐熻矗浜哄垪琛�
+ responsiblePersonList: [],
+ // 鎺堟潈浜哄垪琛�
+ authorizerList: [],
+ // 褰撳墠鐘舵�佸垪琛�
+ deviceStatusList: [],
+ // 鎵�灞為儴闂�
+ subordinateDepartmentsList: [],
+ upLoad: false,
+ upLoad2: false,
+ dialogVisible3:false,
+ upLoad3:false,
+ configForm:{}
+ }
+ },
+ computed: {
+ headers() {
+ return {
+ 'token': sessionStorage.getItem('token')
+ }
+ },
+ action() {
+ return this.javaApi + this.$api.deviceScope.uploadFile
}
},
mounted() {
this.entityCopy = this.HaveJson(this.componentData.entity)
this.getPower()
- this.getAuthorizedPerson()
+ // this.getAuthorizedPerson()
+ this.selectEnumByCategory()
+ this.selectDevicePrincipal()
+ this.obtainItemParameterList()
+ this.getInsProductIds()
},
methods: {
- refreshTable() {
- this.$refs['ValueTable'].selectList()
+ 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(e) {
+ this.$refs['ValueTable'].selectList(e)
},
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
+ let config = false
for (var i = 0; i < power.length; i++) {
- if(power[i].menuMethod=='upDeviceParameter'){
+ if (power[i].menuMethod == 'upDeviceParameter') {
up = true
}
- if(power[i].menuMethod=='delDeviceParameter'){
+ if (power[i].menuMethod == 'delDeviceParameter') {
del = true
}
- if(power[i].menuMethod=='addDeviceParameter'){
+ if (power[i].menuMethod == 'addDeviceParameter') {
add = true
}
+ if (power[i].menuMethod == 'saveDataAcquisitionConfiguration') {
+ config = true
+ }
}
- if(!del){
- this.componentData.do.splice(1, 1)
- }
- if(!up){
- this.componentData.do.splice(0, 1)
- }
- this.addPower = add
+ if (!config) {
+ this.componentData.do.splice(2, 1)
+ }
+ if (!up) {
+ this.componentData.do.splice(1, 1)
+ }
+ if (!del) {
+ this.componentData.do.splice(0, 1)
+ }
+ this.addPower = add
+ },
+ // 鑾峰彇瀛楀吀
+ selectEnumByCategory() {
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "璁惧鐘舵��"
+ }).then(res => {
+ this.deviceStatusList = res.data
+ this.deviceStatusList.forEach(a=>{
+ if(!isNaN(a.value)){
+ a.value = parseInt(a.value)
+ }
+ })
+ this.componentData.tagField.deviceStatus.select = res.data
+ })
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "璁惧鍒嗙被"
+ }).then(res => {
+ this.equipmentList = res.data
+ })
},
- // 鑾峰彇鎺堟潈浜�
- getAuthorizedPerson(){
- this.$axios.get(this.$api.deviceScope.authorizedPerson).then(res => {
- console.log(11111,res)
+ // 鑾峰彇璐熻矗浜哄垪琛�
+ selectDevicePrincipal() {
+ this.$axios.get(this.$api.deviceScope.selectDevicePrincipal).then(res => {
let data = []
- res.data.forEach(a=>{
+ res.data.forEach(a => {
data.push({
- label: a.laboratoryName,
- value: a.laboratoryName
+ label: a.name,
+ value: a.id
})
})
+ this.responsiblePersonList = data
this.authorizerList = data
+ this.componentData.tagField.equipmentManager = data
+ this.componentData.tagField.authorizedPerson = data
+ })
+ },
+ getInsProductIds(){
+ this.$axios.post(this.$api.capacityScope.getInsProduction).then(res => {
+ this.componentData.tagField.insProductIds.select = []
+ this.componentData.selectField.insProductIds.select = []
+ this.options = res.data.map((m,i)=>{
+ m.id = m.name;
+ let children = m.children.map(n=>{
+ n.label = n.name;
+ n.value = n.id;
+ return n
+ })
+ this.componentData.tagField.insProductIds.select = [...this.componentData.tagField.insProductIds.select,...children]
+ this.componentData.selectField.insProductIds.select = [...this.componentData.selectField.insProductIds.select,...children]
+ return m
+ })
+ this.options.forEach(item=>{
+ if(item.children.length==0){
+ item.children = null;
+ }else{
+ item.children.forEach(m=>{
+ if(m.children.length==0){
+ m.children = null;
+ }else{
+ m.children.forEach(n=>{
+ if(n.children&&n.children.length==0){
+ n.children = null;
+ }
+ })
+ }
+ })
+ }
+ })
})
},
- handleClose(){
+ handleClose() {
+ this.formData = {}
+ this.formData2 = {
+ imageUpload: '',
+ imageName: ''
+ }
this.dialogVisible = false;
+ this.upLoad = false;
},
- selectAllByOne(row){
+ handleClose2() {
+ this.formData = {}
+ this.formData2 = {
+ imageUpload: '',
+ imageName: ''
+ }
+ this.dialogVisible2 = false;
+ this.upLoad = false;
+ },
+ selectAllByOne(row) {
this.isUp = true
//鎵撳紑寮规
this.dialogVisible = true;
//row = 鐐瑰嚮瀵瑰簲琛屽��
//澶嶅埗缁檉ormData
- this.formData=row;
+ this.formData = this.HaveJson(row);
+ this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
},
- isUpdate(row){
+ isUpdate(row) {
//淇敼 isUp 涓烘。妗堜慨鏀�
this.isUp = false
//鎵撳紑寮规
this.dialogVisible = true;
//row = 鐐瑰嚮瀵瑰簲琛屽�间竴琛屽��
//澶嶅埗缁檉ormData
- this.formData=row;
+ this.formData = this.HaveJson(row);
+ if(typeof(row.insProductIds)==='number'){
+ row.insProductIds = row.insProductIds+''
+ }
+ this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
},
- // 涓婁紶鍥剧墖鎴愬姛
- handleSuccessUpImg(response, file, fileList){
- console.log(response, file, fileList)
+ beforeUpload(file) {
+ if (file.size > 1024 * 1024 * 10) {
+ this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+ this.$refs.upload.clearFiles()
+ return false;
+ } else {
+ return true;
+ }
+ },
+ onError(err, file, fileList) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload.clearFiles()
+ },
+ // 涓婁紶鍥剧墖鎴愬姛
+ handleSuccessUpImg(response, ) {
+ if (response.code == 200) {
+ this.formData.imageUpload = response.data.url;
+ this.formData.imageName = response.data.name;
+ }
+ },
+ handleSuccessUpImg2(response) {
+ if (response.code == 200) {
+ this.$nextTick(() => {
+ this.formData.imageUpload = response.data.url;
+ this.formData.imageName = response.data.name;
+ this.formData2.imageUpload = response.data.url;
+ this.formData2.imageName = response.data.name;
+ })
+ }
+ },
+ submitForm() {
+ if(!this.formData.deviceName){
+ this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�')
+ return
+ }
+ if(!this.formData.enDeviceName){
+ this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉癊N')
+ return
+ }
+ if(!this.formData.specificationModel){
+ this.$message.error('鏈緭鍏ヨ鏍煎瀷鍙�')
+ return
+ }
+ if(!this.formData.managementNumber){
+ this.$message.error('鏈緭鍏ョ鐞嗙紪鍙�')
+ return
+ }
+ if(!this.formData.activationDate){
+ this.$message.error('鏈緭鍏ュ惎鐢ㄦ棩鏈�')
+ return
+ }
+ if(this.formData.deviceStatus==='' || this.formData.deviceStatus===null){
+ this.$message.error('鏈�夋嫨褰撳墠鐘舵��')
+ return
+ }
+ if(!this.formData.calibrationDate){
+ this.$message.error('鏈緭鍏ユ牎鍑嗗懆鏈燂紙鏈堬級')
+ return
+ }
+ delete this.formData.createTime
+ delete this.formData.updateTime
+ delete this.formData.createUser
+ delete this.formData.updateUser
+ this.formData.insProductIds = this.formData.insProductIds?this.formData.insProductIds.join():''
+ this.upLoad = true;
+ this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ if (res.code === 201) {
+ this.upLoad = false
+ return
+ }
+ this.$message.success('淇敼鎴愬姛')
+ this.upLoad = false
+ this.refreshTable('page')
+ this.dialogVisible = false
+ }).catch(e => {
+ this.$message.error('淇敼澶辫触')
+ this.dialogVisible = false
+ this.upLoad = false
+ })
+ },
+ submitForm2() {
+ if(!this.formData2.deviceName){
+ this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�')
+ return
+ }
+ if(!this.formData2.enDeviceName){
+ this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉癊N')
+ return
+ }
+ if(!this.formData2.specificationModel){
+ this.$message.error('鏈緭鍏ヨ鏍煎瀷鍙�')
+ return
+ }
+ if(!this.formData2.managementNumber){
+ this.$message.error('鏈緭鍏ョ鐞嗙紪鍙�')
+ return
+ }
+ if(!this.formData2.activationDate){
+ this.$message.error('鏈緭鍏ュ惎鐢ㄦ棩鏈�')
+ return
+ }
+ if(!this.formData2.deviceStatus){
+ this.$message.error('鏈�夋嫨褰撳墠鐘舵��')
+ return
+ }
+ if(!this.formData2.calibrationDate){
+ this.$message.error('杈撳叆鏍″噯鍛ㄦ湡锛堟湀锛�')
+ return
+ }
+ this.upLoad2 = true;
+ this.formData2.insProductIds = this.formData2.insProductIds.join()
+ this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ if (res.code === 201) {
+ this.upLoad2 = false
+ return
+ }
+ this.$message.success('鎻愪氦鎴愬姛')
+ this.upLoad2 = false
+ this.refreshTable('page')
+ this.dialogVisible2 = false
+ this.formData2 = {
+ imageUpload: '',
+ imageName: ''
+ }
+ }).catch(e => {
+ this.$message.error('鎻愪氦澶辫触')
+ this.dialogVisible2 = false
+ this.upLoad2 = false
+ })
+ },
+ handleConfig(row){
+ // this.configForm = {}
+ // this.dialogVisible3 = true
+ // this.$axios.post(this.$api.deviceScope.getNumberCollect+'?id='+row.id).then(res => {
+ // this.configForm = res.data
+ // })
+ this.showData = true
+ const list = row.insProductItem.split(';')
+ let list2 = []
+ list.map((item) => {
+ const obj = Object.assign({
+ deviceId: row.id,
+ insProductItem: item,
+ })
+ list2.push(obj)
+ })
+ this.tableList = list2
+ this.deviceId = row.id
},
- submitForm(){
- this.dialogVisible = false
+ closeDataVue () {
+ this.showData = false
+ },
+ submitForm3(){
+ if(!this.configForm.ip){
+ this.$message.error('璇峰~鍐橧P');
+ return
+ }
+ if(!this.configForm.collectUrl){
+ this.$message.error('璇峰~鍐欓噰闆嗗湴鍧�');
+ return
+ }
+ if(!this.configForm.storageUrl){
+ this.$message.error('璇峰~鍐欏偍瀛樺湴鍧�');
+ return
+ }
+ if(!this.configForm.refer){
+ this.$message.error('璇峰~鍐欏弬鐓�');
+ return
+ }
+ if(!this.configForm.x){
+ this.$message.error('璇峰~鍐橷');
+ return
+ }
+ if(!this.configForm.y){
+ this.$message.error('璇峰~鍐橸');
+ return
+ }
+
+ this.upLoad3 = true
+ this.$axios.post(this.$api.deviceScope.numberCollect, this.configForm, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ this.upLoad3 = false
+ if (res.code === 201) {
+ return
+ }
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.refreshTable('page')
+ this.dialogVisible3 = false
+ }).catch(e => {
+ this.$message.error('鎿嶄綔澶辫触')
+ this.dialogVisible3 = false
+ this.upLoad3 = false
+ })
}
- }
}
+ }
</script>
--
Gitblit v1.9.3