From 07a41ade45c962e93a9d449ce1be0eec52e66a6a Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 19 三月 2025 10:44:32 +0800 Subject: [PATCH] 内部单不能修改报告 --- src/components/view/a6-device-management.vue | 740 +++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 493 insertions(+), 247 deletions(-) diff --git a/src/components/view/a6-device-management.vue b/src/components/view/a6-device-management.vue index 9c54d17..478341e 100644 --- a/src/components/view/a6-device-management.vue +++ b/src/components/view/a6-device-management.vue @@ -51,17 +51,18 @@ <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.deviceStatus" placeholder="鍏ㄩ儴"> + <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> @@ -76,22 +77,12 @@ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.specificationModel" @keyup.enter.native="refreshTable()"></el-input></div> </div> - <div class="search_thing"> - <div class="search_label">璁惧澶х被锛�</div> - <el-select v-model="componentData.entity.largeCategory" placeholder="璇烽�夋嫨"> - <el-option v-for="item in equipmentList" :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> - <el-col :span="12" style="text-align: right;"> - <el-button size="medium" type="primary" @click="dialogVisible2 = true">鏂板</el-button> - </el-col> </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" @@ -116,126 +107,121 @@ </div> </el-image> <!-- 琛ㄥ崟 --> - <el-form :label-position="labelPosition" :model="formData" label-width="90px"> - <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 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-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> - <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> - </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-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="鍐呴儴缂栫爜:"> - <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> + <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="璐疆鏃ユ湡:"> - <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> - </el-form-item> - <el-form-item label="鍑嗙‘搴﹂噺鍊�:"> - <el-input :disabled="isUp" v-model="formData.accurateMeasurement" size="small"></el-input> - </el-form-item> - <el-form-item label="澶囨敞:"> - <el-input :disabled="isUp" v-model="formData.notes" size="small"></el-input> - </el-form-item> + </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="110px" ref="ruleForm"> - <el-form-item label="瑙勬牸鍨嬪彿:"> - <el-input :disabled="isUp" v-model="formData.specificationModel" size="small"></el-input> + <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-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="鏈�杩戞牎鍑嗘棩鏈�:" 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.deviceStatus" placeholder="璇烽�夋嫨" size="small" - style="width:100%"> + <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-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="瀛樻斁鐐�:"> - <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-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-date-picker> - </el-form-item> - <el-form-item label="缁翠慨璁板綍:"> - <el-input :disabled="isUp" v-model="formData.maintenanceRecords" 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-item label="閲囪喘璐圭敤:"> - <el-input :disabled="isUp" v-model="formData.procurementCosts" size="small"></el-input> - </el-form-item> - <el-form-item label="鏍″噯璇佷功:"> - <el-input :disabled="isUp" v-model="formData.calibrationCerticate" size="small"></el-input> - </el-form-item> - <el-form-item v-if="!isUp" label="鍥剧墖:"> + <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:" required> + <el-input :disabled="isUp" v-model="formData.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="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> @@ -272,113 +258,105 @@ </div> </el-image> <!-- 琛ㄥ崟 --> - <el-form :label-position="labelPosition" :model="formData2" label-width="90px"> - <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 :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="鍑哄巶鏃ユ湡:"> - <el-date-picker style="width:100%" v-model="formData2.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-item label="浠櫒鍚嶇ОEN:" required> + <el-input v-model="formData2.enDeviceName" 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 label="瑙勬牸鍨嬪彿:" required> + <el-input v-model="formData2.specificationModel" size="small"></el-input> </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 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="116px"> - <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.internalCode" size="small"></el-input> - </el-form-item> - <el-form-item label="璧勪骇缂栫爜:"> - <el-input v-model="formData2.assetCode" size="small"></el-input> - </el-form-item> - <el-form-item label="鏍″噯鏃ユ湡锛堟湀锛�:"> - <el-date-picker v-model="formData2.calibrationDate" type="month" size="small" format="yyyy-MM" - value-format="yyyy-MM" style="width:100%" placeholder="閫夋嫨鏈�"> + <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 v-model="formData2.factoryNo" size="small"></el-input> + </el-form-item> + <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="鎶ュ簾鏃堕棿:"> - <el-date-picker style="width:100%" v-model="formData2.scrapTime" type="datetime" - format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃堕棿"> + <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-input v-model="formData2.acceptanceRecords" size="small"></el-input> - </el-form-item> - <el-form-item label="鍑哄巶缂栧彿:"> - <el-input v-model="formData2.factoryNo" size="small"></el-input> - </el-form-item> - <el-form-item label="璐疆鏃ユ湡:"> - <el-date-picker style="width:100%" v-model="formData2.acquisitionDate" 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-item> - <el-form-item label="鍑嗙‘搴﹂噺鍊�:"> - <el-input v-model="formData2.accurateMeasurement" size="small"></el-input> - </el-form-item> - <el-form-item label="澶囨敞:"> - <el-input v-model="formData2.notes" 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-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="110px" ref="ruleForm"> - <el-form-item label="瑙勬牸鍨嬪彿:"> - <el-input v-model="formData2.specificationModel" size="small"></el-input> - </el-form-item> - <el-form-item label="璁惧鐘舵��:"> + <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.value" :label="item.label" :value="item.value"> + <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="瀛樻斁鐐�:"> - <el-input v-model="formData2.storagePoint" size="small"></el-input> - </el-form-item> - <el-form-item label="鏈�杩戣拷婧棩鏈�:"> - <el-date-picker style="width:100%" v-model="formData2.latestTraceability" format="yyyy-MM-dd HH:mm:ss" - value-format="yyyy-MM-dd HH:mm:ss" type="datetime" size="small" placeholder="閫夋嫨鏃ユ湡"> - </el-date-picker> - </el-form-item> - <el-form-item label="鍋滅敤鏃堕棿:"> - <el-date-picker style="width:100%" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" - v-model="formData2.downTime" type="datetime" size="small" placeholder="閫夋嫨鏃堕棿"> - </el-date-picker> - </el-form-item> - <el-form-item label="缁翠慨璁板綍:"> - <el-input v-model="formData2.maintenanceRecords" 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-item label="閲囪喘璐圭敤:"> - <el-input v-model="formData2.procurementCosts" size="small"></el-input> - </el-form-item> - <el-form-item label="鏍″噯璇佷功:"> - <el-input v-model="formData2.calibrationCerticate" size="small"></el-input> - </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;"> @@ -400,30 +378,90 @@ </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> + <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: { deviceStatus: null, @@ -448,29 +486,31 @@ font: '妗f淇', type: 'text', method: 'isUpdate' - }], + } + // , { + // id: 'handleConfig', + // font: '鏁伴噰閰嶇疆', + // type: 'text', + // method: 'handleConfig', + // disabFun: (row, index) => { + // return row.insProductItem === '' + // } + // } + ], + headNoShow:['enDeviceName'], tagField: { deviceStatus: { - select: [{ - value: 0, - type: 'success', - label: '姝e父' - }, { - value: 1, - type: 'warning', - label: '鎶ュ簾' - }, { - value: 2, - type: 'danger', - label: '淇濅慨' - }] + select: [] }, equipmentManager: { select: [] }, authorizedPerson: { select: [] - } + }, + insProductIds:{ + select:[] + } }, linkEvent: { deviceName: { @@ -484,10 +524,15 @@ }, equipmentManager: { select: [] - } + }, + insProductIds:{ + select:[], + choose: true + } }, requiredAdd: [], - requiredUp: [] + requiredUp: [], + needSort: ['deviceName', 'acquisitionDate', 'activationDate', 'lastCalibrationDate', 'nextCalibrationDate', 'deviceStatus'], }, entityCopy: {}, upIndex: 0, @@ -499,10 +544,15 @@ responsiblePersonList: [], // 鎺堟潈浜哄垪琛� authorizerList: [], - // 璁惧鐘舵�佸垪琛� + // 褰撳墠鐘舵�佸垪琛� deviceStatusList: [], + // 鎵�灞為儴闂� + subordinateDepartmentsList: [], upLoad: false, upLoad2: false, + dialogVisible3:false, + upLoad3:false, + configForm:{} } }, computed: { @@ -521,10 +571,24 @@ // 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) @@ -536,6 +600,7 @@ 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') { up = true @@ -546,21 +611,33 @@ if (power[i].menuMethod == 'addDeviceParameter') { add = true } + if (power[i].menuMethod == 'saveDataAcquisitionConfiguration') { + config = true + } } - if (!up) { - this.componentData.do.splice(1, 1) - } - if (!del) { - 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: "璁惧鍒嗙被" @@ -584,11 +661,55 @@ 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() { + this.formData = {} + this.formData2 = { + imageUpload: '', + imageName: '' + } this.dialogVisible = false; this.upLoad = false; }, handleClose2() { + this.formData = {} + this.formData2 = { + imageUpload: '', + imageName: '' + } this.dialogVisible2 = false; this.upLoad = false; }, @@ -599,7 +720,7 @@ //row = 鐐瑰嚮瀵瑰簲琛屽�� //澶嶅埗缁檉ormData this.formData = this.HaveJson(row); - this.formData.authorizedPerson = row.authorizedPerson ? row.authorizedPerson.split(',') : []; + this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : []; }, isUpdate(row) { //淇敼 isUp 涓烘。妗堜慨鏀� @@ -609,7 +730,10 @@ //row = 鐐瑰嚮瀵瑰簲琛屽�间竴琛屽�� //澶嶅埗缁檉ormData this.formData = this.HaveJson(row); - this.formData.authorizedPerson = row.authorizedPerson ? row.authorizedPerson.split(',') : []; + if(typeof(row.insProductIds)==='number'){ + row.insProductIds = row.insProductIds+'' + } + this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : []; }, beforeUpload(file) { if (file.size > 1024 * 1024 * 10) { @@ -631,22 +755,51 @@ this.formData.imageName = response.data.name; } }, - handleSuccessUpImg2(response, ) { + 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() { - this.upLoad = true; - let authorizedPerson = this.formData.authorizedPerson.length > 0 ? this.formData.authorizedPerson.join(',') : '' + 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.authorizedPerson = authorizedPerson + 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' @@ -658,7 +811,7 @@ } this.$message.success('淇敼鎴愬姛') this.upLoad = false - this.refreshTable() + this.refreshTable('page') this.dialogVisible = false }).catch(e => { this.$message.error('淇敼澶辫触') @@ -667,10 +820,36 @@ }) }, 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.formData2.deviceStatus===null){ + this.$message.error('鏈�夋嫨褰撳墠鐘舵��') + return + } + if(!this.formData2.calibrationDate){ + this.$message.error('杈撳叆鏍″噯鍛ㄦ湡锛堟湀锛�') + return + } this.upLoad2 = true; - let authorizedPerson = this.formData2.authorizedPerson.length > 0 ? this.formData2.authorizedPerson.join(',') : - '' - this.formData2.authorizedPerson = authorizedPerson + this.formData2.insProductIds = this.formData2.insProductIds?this.formData2.insProductIds.join():'' this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, { headers: { 'Content-Type': 'application/json' @@ -682,7 +861,7 @@ } this.$message.success('鎻愪氦鎴愬姛') this.upLoad2 = false - this.refreshTable() + this.refreshTable('page') this.dialogVisible2 = false this.formData2 = { imageUpload: '', @@ -693,7 +872,74 @@ 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 + }, + 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