From f0855c4d618abe9e456e052ee15051408c458357 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期六, 09 九月 2023 11:53:54 +0800
Subject: [PATCH] modified: src/views/experiment/nonConformingFeedback/index.vue modified: src/views/experiment/reportAuditing/index.vue
---
src/views/laboratory/ledger/index.vue | 1110 +++++++++++++++++++++++++++-------------------------------
1 files changed, 517 insertions(+), 593 deletions(-)
diff --git a/src/views/laboratory/ledger/index.vue b/src/views/laboratory/ledger/index.vue
index 329e21b..7d96ba1 100644
--- a/src/views/laboratory/ledger/index.vue
+++ b/src/views/laboratory/ledger/index.vue
@@ -1,25 +1,9 @@
<template>
<div class="ledger-main">
<div class="page-header-search">
- <div class="search-bar">
- <el-form ref="form" :inline="true" :model="searchData">
- <el-form-item>
- <el-input
- v-model="searchData.keyword"
- placeholder="璇疯緭鍏ョ紪鍙�/璁惧鍚嶇О/鍨嬪彿瑙勬牸"
- >
- <i slot="prefix" class="el-input__icon el-icon-search" />
- </el-input>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="filterTableData">鏌ヨ</el-button>
- <el-button type="primary" plain @click="resetBtn">閲嶇疆</el-button>
- <!-- <el-button type="text">楂樼骇鎼滅储<i class="el-icon-arrow-down el-icon--right" /></el-button> -->
- </el-form-item>
- </el-form>
- </div>
<div class="serve-btn">
- <el-button type="primary" icon="el-icon-plus" @click="addDrawerVisible = true">鏂板浠櫒</el-button>
+ <el-button size="small" type="primary" icon="el-icon-plus"
+ @click="showAddDrawer()">鏂板浠櫒</el-button>
</div>
</div>
<div class="content-main">
@@ -27,102 +11,66 @@
<div class="bom-item-search">
<el-row>
<el-col :span="19">
- <el-input
- v-model="filterText"
- placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
- />
+ <el-input size="small" v-model="filterText" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" />
</el-col>
<el-col :span="5">
- <el-button type="primary" size="small" @click="addClassVisible = true"><i class="el-icon-plus" /></el-button>
+ <el-button type="primary" size="small" @click="addClassVisible = true"><i
+ class="el-icon-plus" /></el-button>
</el-col>
</el-row>
</div>
- <el-tree
- ref="classTree"
- :data="classTree"
- :props="defaultProps"
- :default-expand-all="true"
- :filter-node-method="filterNode"
- @node-click="nodeClickHandler"
- />
+ <el-tree :highlight-current="true" ref="classTree" :data="classTree" :props="defaultProps" :default-expand-all="true"
+ :filter-node-method="filterNode" @node-click="nodeClickHandler" />
</div>
<div class="library-table">
<div class="table-header">
<div class="search-bar">
- <el-radio-group v-model="radioValue" @change="getConditionTable">
- <!-- <el-radio-button label="0">鍏ㄩ儴</el-radio-button> -->
- <el-radio-button v-for="item in conditionsOptions" :key="item.value" :label="item.value">
- {{ item.label }}
- </el-radio-button>
- </el-radio-group>
- <el-checkbox v-model="isOut" @change="getExpireTable" :style="{'marginLeft':'12px'}">宸茶繃鏈�</el-checkbox>
- </div>
- <div class="serve-btn">
- <!-- <el-button type="primary" icon="el-icon-plus">鏂板浜哄憳</el-button> -->
+ <el-row :gutter="20">
+ <el-col :span="8">
+ <el-form ref="form" :inline="true" :model="searchData">
+ <el-form-item width="200">
+ <el-input size="small" v-model="searchData.keyword" placeholder="璇疯緭鍏ョ紪鍙�/璁惧鍚嶇О/鍨嬪彿瑙勬牸">
+ <i slot="prefix" class="el-input__icon el-icon-search" />
+ </el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-button size="small" type="primary" @click="filterTableData">鏌ヨ</el-button>
+ <el-button size="small" type="primary" plain @click="resetBtn">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ </el-col>
+ <el-col :span="16">
+ <el-radio-group v-model="radioValue" @change="getConditionTable">
+ <el-radio-button v-for="item in conditionsOptions" :key="item.value" :label="item.value">
+ {{ item.label }}
+ </el-radio-button>
+ </el-radio-group>
+ <el-checkbox v-model="isOut" @change="getExpireTable" :style="{ 'marginLeft': '12px' }">宸茶繃鏈�</el-checkbox>
+ </el-col>
+ </el-row>
</div>
</div>
<div class="table-box">
- <el-table
- ref="equipmentTable"
- node-key="father_name"
- :cell-style="{textAlign: 'center'}"
- :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
- :data="equipmentTable"
- style="width: 100%"
- >
- <el-table-column
- type="index"
- label="搴忓彿"
- min-width="90"
- />
- <el-table-column
- prop="equipment_code"
- label="浠櫒璁惧缂栧彿"
- min-width="200"
- />
- <el-table-column
- prop="equipment_name"
- label="浠櫒璁惧鍚嶇О"
- min-width="150"
- />
- <el-table-column
- prop="specifications_models"
- label="瑙勬牸鍨嬪彿"
- min-width="150"
- />
- <el-table-column
- prop="name"
- label="淇濈浜�"
- min-width="200"
- />
- <el-table-column
- prop="termValidity"
- label="璁¢噺鎴鏈夋晥鏈�"
- min-width="200"
- />
- <el-table-column
- prop="conditions"
- label="璁惧鐘舵��"
- min-width="120"
- >
+ <el-table ref="equipmentTable" node-key="father_name" :cell-style="{ textAlign: 'left' }"
+ :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'left' }"
+ :data="equipmentTable" style="width: 100%;height: 100vh">
+ <el-table-column type="index" label="搴忓彿" min-width="90" />
+ <el-table-column prop="equipment_code" label="浠櫒璁惧缂栧彿" min-width="200" />
+ <el-table-column prop="equipment_name" label="浠櫒璁惧鍚嶇О" min-width="150" />
+ <el-table-column prop="specifications_models" label="瑙勬牸鍨嬪彿" min-width="150" />
+ <el-table-column prop="name" label="淇濈浜�" min-width="200" />
+ <el-table-column prop="termValidity" label="璁¢噺鎴鏈夋晥鏈�" min-width="200" />
+ <el-table-column prop="conditions" label="璁惧鐘舵��" min-width="120">
<template slot-scope="scope">
- <el-tag
- :type="scope.row.conditions === 0 ? 'primary' : 'success'"
- disable-transitions
- >{{ scope.row.conditions | conditionsFilter }}</el-tag>
+ <el-tag v-if="scope.row.conditions === 1" type="success" disable-transitions>杩愯</el-tag>
+ <el-tag v-if="scope.row.conditions === 2" type="danger" disable-transitions>鏁呴殰</el-tag>
+ <el-tag v-if="scope.row.conditions === 3" type="warning" disable-transitions>鎶ヤ慨</el-tag>
+ <el-tag v-if="scope.row.conditions === 4" type="warning" disable-transitions>妫�淇�</el-tag>
+ <el-tag v-if="scope.row.conditions === 5" disable-transitions>寰呮満</el-tag>
</template>
</el-table-column>
- <el-table-column
- prop="storage_place"
- label="瀛樻斁鍦�"
- min-width="200"
- />
-
- <el-table-column
- label="鎿嶄綔"
- min-width="120"
- fixed="right"
- >
+ <el-table-column prop="storage_place" label="瀛樻斁鍦�" min-width="200" />
+ <el-table-column label="鎿嶄綔" min-width="120" fixed="right">
<template slot-scope="scope">
<el-button type="text" size="small" @click="openDetail(scope.row)">缂栬緫</el-button>
<el-button type="text" size="small" @click="clickDelete(scope.row)">鍒犻櫎</el-button>
@@ -133,45 +81,33 @@
<div>
<!-- 娣诲姞鍒嗙被 -->
<el-dialog title="娣诲姞鍒嗙被" :visible.sync="addClassVisible" width="33%">
- <el-form :model="addTreeForm">
- <el-form-item label="鍒嗙被鍚嶇О" label-width="100px">
- <el-input v-model="addTreeForm.name" autocomplete="off" />
+ <el-form :model="addTreeForm" ref="addTreeForm">
+ <el-form-item prop="name" label="鍒嗙被鍚嶇О" label-width="100px" :rules="[
+ { required: true, message: '鍒嗙被鍚嶇О涓嶈兘涓虹┖' }
+ ]">
+ <el-input placeholder="璇峰~鍐欏垎绫诲悕绉�" v-model="addTreeForm.name" />
</el-form-item>
<el-form-item label="鐖剁骇鍒嗙被" label-width="100px">
- <el-select v-model="addTreeForm.type" placeholder="璇烽�夋嫨">
- <el-option label="鍘熸潗鏂�" value="0" />
- <el-option label="鐢电嚎鐢电紗" value="1" />
- </el-select>
+ <el-cascader v-model="addTreeForm.type" :options="addTreeFormClassTree" style="width: 374.88px;"
+ :show-all-levels="false" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
- <el-button @click="addClassVisible = false">鍙� 娑�</el-button>
- <el-button type="primary">纭� 瀹�</el-button>
+ <el-button @click="resetTreeForm('addTreeForm')">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitTreeForm('addTreeForm')">纭� 瀹�</el-button>
</div>
</el-dialog>
</div>
<div>
- <el-pagination
- :current-page="currentPage"
- :page-sizes="[10, 15, 20, 25]"
- :page-size="pageSize"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total"
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- />
+ <el-pagination :current-page="currentPage" :page-sizes="[10, 15, 20, 25]" :page-size="pageSize"
+ layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange"
+ @current-change="handleCurrentChange" />
</div>
</div>
</div>
</div>
<!-- 浠櫒璇︽儏-->
- <el-drawer
- title="浠櫒璁惧璇︽儏"
- :visible.sync="detailDrawer"
- size="80%"
- class="detailDrawer"
- @close="closeDetailDrawer"
- >
+ <el-drawer title="浠櫒璁惧璇︽儏" :visible.sync="detailDrawer" size="80%" class="detailDrawer" @close="closeDetailDrawer">
<div>
<div class="detail-info">
<div class="tips-main">
@@ -186,8 +122,8 @@
<div class="message">
<div class="message-item"><span><i class="el-icon-edit" />鎵�灞炲垎绫伙細{{ equipmentDetail.classifyId }}</span></div>
<div class="message-item">
- <span><i class="el-icon-edit" />鍒涘缓浜猴細{{ equipmentDetail.createUserId }}</span>
- <el-tag type="primary"><i class="el-icon-info" :style="{marginRight:'4px', color:'#409EFF'}" /></el-tag>
+ <span><i class="el-icon-user" />鍒涘缓浜猴細{{ equipmentDetail.createUserId }}</span>
+ <!-- <el-tag type="primary"><i class="el-icon-info" :style="{ marginRight: '4px', color: '#409EFF' }" /></el-tag> -->
</div>
<div class="message-item">
<span><i class="el-icon-edit" />寤烘。鏃ユ湡锛歿{ equipmentDetail.acceptanceDate }}</span>
@@ -217,13 +153,14 @@
<span><i class="el-icon-edit" />楠屾敹鏃ユ湡锛歿{ equipmentDetail.acceptanceDate }}</span>
</div>
<div class="message-item">
- <span><i class="el-icon-edit" />淇濈浜猴細{{ equipmentDetail.userId }}</span>
+ <span><i class="el-icon-edit" />淇濈浜猴細{{ equipmentDetail.userName }}</span>
</div>
<div class="message-item">
- <span><i class="el-icon-edit" />鏄惁鏀寔鏁伴噰锛歿{ equipmentDetail.whetherDataAcquisition==1 ? '鏀寔': '涓嶆敮鎸�' }}</span>
+ <span><i class="el-icon-edit" />鏄惁鏀寔鏁伴噰锛歿{ equipmentDetail.whetherDataAcquisition == 1 ? '鏀寔' : '涓嶆敮鎸�'
+ }}</span>
</div>
<div class="message-item">
- <span><i class="el-icon-edit" />浠櫒璁惧璁¢噺锛歿{ equipmentDetail.equipmentMeasurement==1 ? '闇�瑕�': '涓嶉渶瑕�' }}</span>
+ <span><i class="el-icon-edit" />浠櫒璁惧璁¢噺锛歿{ equipmentDetail.equipmentMeasurement == 1 ? '闇�瑕�' : '涓嶉渶瑕�' }}</span>
</div>
<div class="message-item">
<span><i class="el-icon-edit" />璁¢噺鍛ㄦ湡锛歿{ equipmentDetail.termValidity }}</span>
@@ -235,128 +172,56 @@
</div>
<el-tabs v-model="activeTabsName">
<el-tab-pane label="璁惧鐮佺偣" name="codePoints">
- <el-button v-show="!codePointesTableStatus" :style="{marginBottom: '18px'}" @click="addCodePoints">鏂板璁惧鐮佺偣</el-button>
- <div v-show="codePointesTableStatus" :style="{marginBottom: '18px'}" class="btns">
+ <div :style="{ marginBottom: '18px' }" class="btns">
<el-button @click="addNewCodePoints">娣诲姞</el-button>
- <el-button @click="saveCodePoins">淇濆瓨</el-button>
+ <el-button v-show="codePointesTableStatus" @click="saveCodePoins">淇濆瓨</el-button>
<el-button @click="closeCodePoins">鍙栨秷</el-button>
</div>
- <el-table
- ref="codePointsTable"
- :cell-style="{textAlign: 'center'}"
- :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
- :data="codePointsTable"
- style="width: 100%"
- >
- <el-table-column
- type="index"
- label="搴忓彿"
- min-width="90"
- />
- <el-table-column
- prop="equipmentPoint"
- label="鐮佺偣缂栫爜"
- min-width="150"
- >
+ <el-table ref="codePointsTable" :cell-style="{ textAlign: 'center' }"
+ :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
+ :data="codePointsTable" style="width: 100%;overflow: scroll;height:314px;">
+ <el-table-column type="index" label="搴忓彿" min-width="90" />
+ <el-table-column prop="equipmentPoint" label="鐮佺偣缂栫爜" min-width="150">
<template slot-scope="scope">
- <span v-show="!codePointesTableStatus">{{ scope.row.equipmentPoint }}</span>
- <el-input v-show="codePointesTableStatus" v-model="scope.row.equipmentPoint" />
+ <el-input v-if="codePointesTableStatus && scope.row.isInput" v-model="scope.row.equipmentPoint" />
+ <span v-else>{{ scope.row.equipmentPoint }}</span>
</template>
</el-table-column>
-
- <el-table-column
- prop="equipmentPointName"
- label="鐮佺偣鍚嶇О"
- min-width="150"
- >
+ <el-table-column prop="equipmentPointName" label="鐮佺偣鍚嶇О" min-width="150">
<template slot-scope="scope">
- <span v-show="!codePointesTableStatus">{{ scope.row.equipmentPointName }}</span>
- <el-input v-show="codePointesTableStatus" v-model="scope.row.equipmentPointName" />
+ <el-input v-if="codePointesTableStatus && scope.row.isInput" v-model="scope.row.equipmentPointName" />
+ <span v-else>{{ scope.row.equipmentPointName }}</span>
</template>
</el-table-column>
- <el-table-column
- prop="unit"
- label="鍗曚綅"
- min-width="150"
- >
+ <el-table-column prop="unit" label="鍗曚綅" min-width="150">
<template slot-scope="scope">
- <span v-show="!codePointesTableStatus">{{ scope.row.unit }}</span>
- <el-input v-show="codePointesTableStatus" v-model="scope.row.unit" />
+ <el-input v-if="codePointesTableStatus && scope.row.isInput" v-model="scope.row.unit" />
+ <span v-else>{{ scope.row.unit }}</span>
</template>
</el-table-column>
- <el-table-column
- prop="name"
- label="鏇存柊浜�"
- min-width="100"
- />
- <el-table-column
- prop="updateTime"
- label="鏇存柊鏃ユ湡"
- min-width="120"
- />
- <el-table-column
- prop="descriptiveness"
- label="鎻忚堪"
- min-width="200"
- >
+ <el-table-column prop="descriptiveness" label="鎻忚堪" min-width="200">
<template slot-scope="scope">
- <span v-show="!codePointesTableStatus">{{ scope.row.descriptiveness }}</span>
- <el-input v-show="codePointesTableStatus" v-model="scope.row.descriptiveness" />
+ <el-input v-if="codePointesTableStatus && scope.row.isInput" v-model="scope.row.descriptiveness" />
+ <span v-else>{{ scope.row.descriptiveness }}</span>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane label="璁¢噺淇℃伅" name="measure">
- <el-button :style="{marginBottom: '18px'}" @click="measureFormVisible = true">鏂板璁¢噺淇℃伅</el-button>
- <el-table
- ref="measureTable"
- :cell-style="{textAlign: 'center'}"
- :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
- :data="measureTable"
- style="width: 100%"
- >
- <el-table-column
- type="index"
- label="搴忓彿"
- min-width="90"
- />
- <el-table-column
- prop="name"
- label="璐熻矗浜�"
- min-width="200"
- />
- <el-table-column
- prop="measurement_unit"
- label="璁¢噺鍗曚綅"
- min-width="150"
- />
- <el-table-column
- prop="beginDate"
- label="寮�濮嬫棩鏈�"
- min-width="150"
- />
- <el-table-column
- prop="endDate"
- label="缁撴潫鏃ユ湡"
- min-width="150"
- />
- <el-table-column
- prop="performance_index"
- label="鎬ц兘鎸囨爣"
- min-width="200"
- />
- <el-table-column
- prop="uncertainty"
- label="涓嶇‘瀹氬害"
- min-width="200"
- />
- <el-table-column
- prop="conditions"
- label="缁撴灉"
- min-width="120"
- >
+ <el-button :style="{ marginBottom: '18px' }" @click="measureFormVisible = true">鏂板璁¢噺淇℃伅</el-button>
+ <el-table ref="measureTable" :cell-style="{ textAlign: 'center' }"
+ :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
+ :data="measureTable" style="width: 100%">
+ <el-table-column type="index" label="搴忓彿" min-width="90" />
+ <el-table-column prop="name" label="璐熻矗浜�" min-width="200" />
+ <el-table-column prop="measurement_unit" label="璁¢噺鍗曚綅" min-width="150" />
+ <el-table-column prop="beginDate" label="寮�濮嬫棩鏈�" min-width="150" />
+ <el-table-column prop="endDate" label="缁撴潫鏃ユ湡" min-width="150" />
+ <el-table-column prop="performance_index" label="鎬ц兘鎸囨爣" min-width="200" />
+ <el-table-column prop="uncertainty" label="涓嶇‘瀹氬害" min-width="200" />
+ <el-table-column prop="conditions" label="缁撴灉" min-width="120">
<template slot-scope="scope">
{{ scope.row.result }}
<!-- <el-tag
@@ -365,134 +230,100 @@
>{{ scope.row.result === 0 ? '鏈悓鎰�' : '宸插悓鎰�' }}</el-tag> -->
</template>
</el-table-column>
- <el-table-column
- prop="remarks"
- label="澶囨敞"
- min-width="200"
- />
+ <el-table-column prop="remarks" label="澶囨敞" min-width="200" />
</el-table>
</el-tab-pane>
</el-tabs>
</div>
</el-drawer>
<!-- 娣诲姞浠櫒/淇敼浠櫒淇℃伅 -->
- <el-drawer
- ref="addDrawer"
- :title="equipmentDetail.id?'淇敼浠櫒璁惧淇℃伅':'鏂板浠櫒璁惧'"
- :append-to-body="true"
- :visible.sync="addDrawerVisible"
- class="addDrawer"
- size="40%"
- @close="closeAddOrChangeDrawer"
- >
+ <el-drawer ref="addDrawer" :title="equipmentDetail.id ? '淇敼浠櫒璁惧淇℃伅' : '鏂板浠櫒璁惧'" :append-to-body="true"
+ :visible.sync="addDrawerVisible" class="addDrawer" size="40%" @close="closeAddOrChangeDrawer">
<div class="demo-drawer__content">
- <el-form label-position="top" :model="equipmentform">
+ <el-form label-position="top" ref="addNewEquipment" :model="equipmentform">
<el-row :gutter="50">
<el-col :span="11">
- <el-form-item label="鎵�灞炲垎绫伙細" label-width="80">
- <el-cascader v-model="equipmentform.classifyId" :options="classTree" :show-all-levels="false" />
+ <el-form-item label="鎵�灞炲垎绫伙細" prop="classifyId" label-width="80" :rules="[
+ { required: true, message: '璇烽�夋嫨鎵�灞炲垎绫�', trigger: 'blur' }
+ ]">
+ <el-cascader style="width: 100%;" v-model="equipmentform.classifyId" :options="classTree" :show-all-levels="false" />
</el-form-item>
</el-col>
<el-col :span="11">
- <el-form-item label="璁惧缂栧彿锛�" label-width="80">
- <el-input v-model="equipmentform.equipmentCode" autocomplete="off" />
+ <el-form-item label="璁惧缂栧彿锛�" prop="equipmentCode"
+ :rules="[{ required: true, message: '璇峰~鍐欒澶囩紪鍙�', trigger: 'blur' }]" label-width="80">
+ <el-input v-model="equipmentform.equipmentCode" placeholder="璇峰~鍐欒澶囩紪鍙�" autocomplete="off" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="50">
<el-col :span="11">
- <el-form-item label="浠櫒璁惧鍚嶇О锛�" label-width="80">
- <el-input v-model="equipmentform.equipmentName" autocomplete="off" />
+ <el-form-item label="浠櫒璁惧鍚嶇О锛�" prop="equipmentName"
+ :rules="[{ required: true, message: '璇峰~鍐欎华鍣ㄨ澶囧悕绉�', trigger: 'blur' }]" label-width="80">
+ <el-input v-model="equipmentform.equipmentName" placeholder="璇峰~鍐欎华鍣ㄨ澶囧悕绉�" autocomplete="off" />
</el-form-item>
</el-col>
<el-col :span="11">
- <el-form-item label="鐘舵�侊細" label-width="80">
- <el-select
- v-model="equipmentform.conditions"
- clearable
- filterable
- :allow-create="true"
- placeholder="璇烽�夋嫨浠櫒璁惧鐘舵��"
- style="width:100%"
- >
- <el-option
- v-for="item in conditionsOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
+ <el-form-item label="鐘舵�侊細" prop="conditions"
+ :rules="[{ required: true, message: '璇烽�夋嫨浠櫒璁惧鐘舵��', trigger: 'blur' }]" label-width="80">
+ <el-select v-model="equipmentform.conditions" clearable :allow-create="true"
+ placeholder="璇烽�夋嫨浠櫒璁惧鐘舵��" style="width:100%">
+ <el-option v-for="item in conditionsOptions" :key="item.value" :label="item.label"
+ :value="item.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="50">
<el-col :span="11">
- <el-form-item label="鍨嬪彿瑙勬牸锛�" label-width="80">
- <el-input v-model="equipmentform.specificationsModels" autocomplete="off" />
+ <el-form-item label="鍨嬪彿瑙勬牸锛�" prop="specificationsModels"
+ :rules="[{ required: true, message: '璇峰~鍐欏瀷鍙疯鏍�', trigger: 'blur' }]" label-width="80">
+ <el-input v-model="equipmentform.specificationsModels" placeholder="璇峰~鍐欏瀷鍙疯鏍�" autocomplete="off" />
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="娴嬮噺鑼冨洿锛�" label-width="80">
- <el-input v-model="equipmentform.measuringRange" autocomplete="off" />
+ <el-input v-model="equipmentform.measuringRange" placeholder="璇峰~鍐欐祴閲忚寖鍥�" autocomplete="off" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="50">
<el-col :span="11">
<el-form-item label="涓嶇‘瀹氬害/鍑嗙‘搴�/鏈�澶у厑璁歌宸細" label-width="80">
- <el-input v-model="equipmentform.errorRate" autocomplete="off" />
+ <el-input v-model="equipmentform.errorRate" placeholder="璇峰~鍐欎笉纭畾搴�/鍑嗙‘搴�/鏈�澶у厑璁歌宸�" autocomplete="off" />
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="鐢熶骇鍘傚锛�" label-width="80">
- <el-input v-model="equipmentform.manufacturer" autocomplete="off" />
+ <el-input v-model="equipmentform.manufacturer" placeholder="璇峰~鍐欑敓浜у巶瀹�" autocomplete="off" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="50">
<el-col :span="11">
<el-form-item label="瀛樻斁鍦扮偣锛�" label-width="80">
- <el-input v-model="equipmentform.storagePlace" autocomplete="off" />
+ <el-input v-model="equipmentform.storagePlace" placeholder="璇峰~鍐欏瓨鏀惧湴鐐�" autocomplete="off" />
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="鍒拌揣鏃ユ湡锛�" label-width="80">
- <el-date-picker
- v-model="equipmentform.arrivalDate"
- type="date"
- placeholder="璇烽�夋嫨鍒拌揣鏃ユ湡"
- style="width:100%"
- />
+ <el-date-picker value-format="yyyy-MM-dd" v-model="equipmentform.arrivalDate" type="date" placeholder="璇烽�夋嫨鍒拌揣鏃ユ湡"
+ style="width:100%" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="50">
<el-col :span="11">
<el-form-item label="楠屾敹鏃ユ湡锛�" label-width="80">
- <el-date-picker
- v-model="equipmentform.acceptanceDate"
- type="date"
- placeholder="璇烽�夋嫨楠屾敹鏃ユ湡"
- style="width:100%"
- />
+ <el-date-picker value-format="yyyy-MM-dd" v-model="equipmentform.acceptanceDate" type="date" placeholder="璇烽�夋嫨楠屾敹鏃ユ湡"
+ style="width:100%" />
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="淇濈浜猴細" label-width="80">
- <el-select
- v-model="equipmentform.userId"
- clearable
- filterable
- :allow-create="true"
- placeholder="璇烽�夋嫨淇濈浜�"
- style="width:100%"
- >
- <el-option
- v-for="item in userOpetions"
- :key="item.id"
- :label="item.label"
- :value="item.value"
- />
+ <el-select v-model="equipmentform.userId" clearable :allow-create="true" placeholder="璇烽�夋嫨淇濈浜�"
+ style="width:100%">
+ <el-option v-for="item in userOpetions" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
@@ -511,97 +342,67 @@
</el-form-item>
</el-col>
</el-row>
- <el-row v-show="equipmentform.equipmentMeasurement===1" :gutter="50">
+ <el-row v-show="equipmentform.equipmentMeasurement === 1" :gutter="50">
<el-col :span="12">
- <el-form-item label="璁¢噺鎴鏈夋晥鏈燂細" label-width="80">
- <el-input v-model="equipmentform.termValidity" type="number" />
+ <el-form-item label="璁¢噺鍛ㄦ湡(鏈�)锛�" label-width="80">
+ <el-input min="0" v-model="equipmentform.termValidity" placeholder="璇峰~鍐欒閲忓懆鏈�" type="number" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="50">
<el-col :span="11">
<el-form-item label="鎻忚堪锛�" label-width="80">
- <el-input
- v-model="equipmentform.descriptiveness"
- type="textarea"
- :rows="2"
- placeholder="璇疯緭鍏ュ唴瀹�"
- style="width:217%"
- />
+ <el-input v-model="equipmentform.descriptiveness" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�"
+ style="width:217%" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="demo-drawer__footer">
- <el-button class="el-button--default" @click="addDrawerVisible = false">鍙� 娑�</el-button>
+ <el-button class="el-button--default" @click="cancelAddEq">鍙� 娑�</el-button>
<el-button type="primary" class="el-button--primary el-button--medium" @click="addNewEquipment">纭� 瀹�</el-button>
</div>
</div>
</el-drawer>
<!-- 鏂板璁¢噺淇℃伅寮圭獥 -->
<el-dialog class="measureForm" title="鏂板璁¢噺" :visible.sync="measureFormVisible">
- <el-form label-position="top" :model="measureForm">
+ <el-form label-position="top" ref="addmeasureForm" :model="measureForm">
<el-row :gutter="20">
<el-col :span="12">
- <el-form-item label="璐熻矗浜�">
- <el-select
- v-model="measureForm.userId"
- clearable
- filterable
- :allow-create="true"
- placeholder="璐熻矗浜�"
- style="width:100%"
- >
- <el-option
- v-for="item in userOpetions"
- :key="item.id"
- :label="item.label"
- :value="item.value"
- />
+ <el-form-item label="璐熻矗浜�" prop="userId" :rules="[{ required: true, message: '璇烽�夋嫨璐熻矗浜�', trigger: 'change' }]">
+ <el-select v-model="measureForm.userId" clearable filterable :allow-create="true" placeholder="璐熻矗浜�"
+ style="width:100%">
+ <el-option v-for="item in userOpetions" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="璁¢噺鍗曚綅">
- <el-input v-model="measureForm.measurementUnit" />
+ <el-form-item label="璁¢噺鍗曚綅" prop="measurementUnit"
+ :rules="[{ required: true, message: '璇峰~鍐欒閲忓崟浣�', trigger: 'blur' }]">
+ <el-input placeholder="璇峰~鍐欒閲忓崟浣�" v-model="measureForm.measurementUnit" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
- <el-form-item label="妫�瀹氭湁鏁堟湡">
- <el-date-picker
- v-model="measureForm.date"
- type="daterange"
- range-separator="鑷�"
- start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡"
- />
+ <el-form-item label="妫�瀹氭湁鏁堟湡" prop="date" :rules="[{ required: true, message: '璇烽�夋嫨妫�瀹氭湁鏁堟湡', trigger: 'blur' }]">
+ <el-date-picker v-model="measureForm.date" type="daterange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
- <el-form-item label="涓嶇‘瀹氬害">
- <el-input v-model="measureForm.uncertainty" />
+ <el-form-item label="涓嶇‘瀹氬害" prop="uncertainty"
+ :rules="[{ required: true, message: '璇峰~鍐欎笉纭畾搴�', trigger: 'blur' }]">
+ <el-input placeholder="璇峰~鍐欎笉纭畾搴�" v-model="measureForm.uncertainty" />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="缁撴灉">
- <el-select
- v-model="measureForm.result"
- clearable
- filterable
- :allow-create="true"
- placeholder="璐熻矗浜�"
- style="width:100%"
- >
- <el-option
- v-for="item in resultOptions"
- :key="item.id"
- :label="item.label"
- :value="item.value"
- />
+ <el-form-item label="缁撴灉" prop="result" :rules="[{ required: true, message: '璇烽�夋嫨缁撴灉', trigger: 'change' }]">
+ <el-select v-model="measureForm.result" clearable filterable :allow-create="true" placeholder="璇烽�夋嫨缁撴灉"
+ style="width:100%">
+ <el-option v-for="item in resultOptions" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
@@ -609,36 +410,21 @@
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="鎬ц兘鎸囨爣">
- <el-input
- v-model="measureForm.performanceIndex"
- type="textarea"
- :rows="2"
- placeholder="璇疯緭鍏ュ唴瀹�"
- />
+ <el-input v-model="measureForm.performanceIndex" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="澶囨敞">
- <el-input
- v-model="measureForm.remarks"
- type="textarea"
- :rows="2"
- placeholder="璇疯緭鍏ュ唴瀹�"
- />
+ <el-input v-model="measureForm.remarks" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
- <el-form-item label="">
- <el-upload
- class="upload-demo"
- action="#"
- :on-change="handleUpload"
- :auto-upload="false"
- >
+ <el-form-item label="" prop="file">
+ <el-upload ref="upload" class="upload-demo" action="#" :on-change="handleUpload" :auto-upload="false">
<el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
</el-upload>
</el-form-item>
@@ -648,14 +434,11 @@
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="addMeasure">纭� 瀹�</el-button>
- <el-button @click="measureFormVisible = false">鍙� 娑�</el-button>
+ <el-button @click="cancelAddMeasure">鍙� 娑�</el-button>
</span>
</el-dialog>
<!-- 鍒犻櫎浠櫒寮瑰嚭妗� -->
- <el-dialog
- title="鎻愮ず"
- :visible.sync="deletedialogVisible"
- width="30%">
+ <el-dialog title="鎻愮ず" :visible.sync="deletedialogVisible" width="30%">
<span>纭畾鍒犻櫎璇ヤ华鍣ㄥ悧锛�</span>
<span slot="footer" class="dialog-footer">
<el-button @click="deletedialogVisible = false">鍙� 娑�</el-button>
@@ -666,45 +449,21 @@
</template>
<script>
-import { getClassifyList, getInstrumentList,
+import {
+ getClassifyList, getInstrumentList,
addInstrumentUser, addInstrument, getInstrumentDetail,
getEquipmentPointList, addEquipmentPoint,
- getMetricalInformationList, changeInstrument, addMetricalInformation, deleteInstrument } from '@/api/laboratory/ledger'
+ getMetricalInformationList, changeInstrument, addMetricalInformation, deleteInstrument, addClassify
+} from '@/api/laboratory/ledger'
import { parseTime } from '@/utils/index'
export default {
- filters: {
- conditionsFilter(value) {
- let returnValue = null
- switch (+value) {
- case 1:
- returnValue = '杩愯'
- break
- case 2:
- returnValue = '鏁呴殰'
- break
- case 3:
- returnValue = '鎶ヤ慨'
- break
- case 4:
- returnValue = '妫�淇�'
- break
- case 5:
- returnValue = '寰呮満'
- break
- }
- return returnValue
- }
- },
+ filters: {},
data() {
return {
// 鐢ㄦ埛涓嬫媺妗嗛厤缃」
userOpetions: [],
// 浠櫒鐘舵�侀厤缃」
conditionsOptions: [
- {
- label: '鍏ㄩ儴',
- value: 0
- },
{
label: '杩愯',
value: 1
@@ -745,7 +504,10 @@
// 鍒嗙被tree鏁版嵁锛屽垎绫婚厤缃」
classTree: [],
// 娣诲姞鍒嗙被鍙傛暟
- addTreeForm: {},
+ addTreeForm: {
+ name: null,
+ type: null
+ },
// tree榛樿鍊�
defaultProps: {
children: 'children',
@@ -797,19 +559,29 @@
// 鐮佺偣琛ㄦ牸
codePointsTable: [
{
- 'unit': 'mm',
- 'descriptiveness': '鐤簡锛屽仛涓嶄簡',
- 'equipmentPoint': 'Area-1',
- 'name': '灏忓皬',
- 'updateTime': '2023-07-24',
+ 'isInput':false,
+ 'unit': '',
+ 'descriptiveness': '',
+ 'equipmentPoint': '',
+ 'name': '',
+ 'updateTime': '',
'id': 1,
- 'equipmentPointName': '瀵间綋灞忚斀锛堝鍘氶潰绉級'
+ 'equipmentPointName': ''
}
],
// 璁¢噺淇℃伅琛�
measureTable: [],
// 娣诲姞璁¢噺淇℃伅鍙傛暟瀵硅薄
- measureForm: {},
+ measureForm: {
+ userId: null,
+ measurementUnit: null,
+ date: null,
+ uncertainty: null,
+ result: null,
+ performanceIndex: null,
+ remarks: null,
+ file: ""
+ },
activeTabsName: 'codePoints',
// 鐮佺偣琛ㄦ牸鐨勭姸鎬侊細鏁版嵁灞曠ずfalse/鏂板杈撳叆true
codePointesTableStatus: false,
@@ -824,12 +596,18 @@
conditionTable: '',
nodeclicked: '',
expireData: '',
- instrumentId: ''
+ instrumentId: '',
+ addTreeFormClassTree: []
}
},
watch: {
filterText(val) {
this.$refs.classTree.filter(val)
+ },
+ measureFormVisible(newVal){
+ if(newVal === false){
+ this.cancelAddMeasure();
+ }
}
},
created() {
@@ -837,10 +615,30 @@
this.getUserOptions()
},
methods: {
+ //鏄剧ず鏂板浠櫒妯℃�佹
+ showAddDrawer(){
+ this.addDrawerVisible = true;
+ this.equipmentform = {
+ acceptanceDate: '', // 楠屾敹鏃ユ湡
+ arrivalDate: '', // 鍒拌揣鏃ユ湡
+ classifyId: '', // 鎵�灞炲垎绫�
+ conditions: '', // 鐘舵��
+ descriptiveness: '', // 鎻忚堪
+ equipmentCode: '', // 璁惧缂栧彿
+ equipmentMeasurement: 1, // 浠櫒璁惧璁¢噺
+ equipmentName: '', // 浠櫒璁惧鍚嶇О
+ errorRate: '', // 涓嶇‘瀹氬害/鍑嗙‘搴�/鏈�澶у厑璁歌宸�
+ userId: '', // 淇濈浜�
+ manufacturer: '', // 鐢熶骇鍘傚
+ measuringRange: '', // 娴嬮噺鑼冨洿
+ specificationsModels: '', // 鍨嬪彿瑙勬牸
+ storagePlace: '', // 瀛樻斁鍦扮偣
+ whetherDataAcquisition: 1 // 鏄惁鏀寔鏁伴噰
+ }
+ },
// 鑾峰彇鍒嗙被鏁版嵁
async getThreeData() {
const { data } = await getClassifyList()
- // console.log(data)
this.classTree = data.map(item => {
if (item.children) {
item.children = item.children.map(childrenItem => {
@@ -849,7 +647,18 @@
}
return { ...item, label: item.father_name, value: item.id ? item.id : item.father_name }
})
- // console.log(this.classTree)
+ this.addTreeFormClassTree = JSON.parse(JSON.stringify(this.classTree))
+ let father = {
+ children: null,
+ father_name: "鏃�",
+ id: 0,
+ label: "鏃�",
+ value: 0
+ }
+ this.addTreeFormClassTree.unshift(father)
+ this.addTreeFormClassTree.forEach(item => {
+ item.children = null
+ })
},
// 鑾峰彇鐢ㄦ埛淇℃伅閰嶇疆椤�
async getUserOptions() {
@@ -858,22 +667,18 @@
},
// 鏄剧ず浠櫒璇︽儏
async openDetail(row) {
- // console.log(row)
this.detailDrawer = true
const { data } = await getInstrumentDetail({ InstrumentId: row.id })
this.equipmentDetail = data
this.equipmentform = data
- console.log(this.equipmentform)
const { data: pointList } = await getEquipmentPointList({ InstrumentId: this.equipmentDetail.id })
this.codePointsTable = pointList
const { data: informationList } = await getMetricalInformationList({ InstrumentId: this.equipmentDetail.id })
this.measureTable = informationList
- console.log(informationList)
},
// 鑺傜偣鐐瑰嚮澶勭悊
nodeClickHandler(data, node, element) {
this.nodeclicked = data
- // console.log(data)
// 鍙湁鏁版嵁涓惡甯d鎵嶈兘鍙戦�佹煡璇㈣姹�
if (data.id) {
this.getEquipmentTable({ classifyId: data.id, pageSize: this.pageSize, pageNo: this.currentPage, whetherWhether: this.isOut })
@@ -881,9 +686,7 @@
},
// 鑾峰彇浠櫒鍒楄〃鏁版嵁
async getEquipmentTable(ages) {
- // console.log('鏉′欢瀵硅薄', ages)
const { data } = await getInstrumentList(ages)
- console.log(data)
this.equipmentTable = data.row
this.total = data.total
this.oldtableData = this.equipmentTable
@@ -901,45 +704,33 @@
handleCurrentChange() {
// 褰撳墠椤垫洿鏀�
},
- // 鏄剧ず璁惧鐮佺偣
- addCodePoints() {
- // 娣诲姞鏂扮爜鐐癸紝娓呯┖鍘熸暟缁�
- this.codePointesTableStatus = true
- this.codePointsTable = undefined
- },
// 鏂板璁惧鐮佺偣
addNewCodePoints() {
- //
- if (!this.codePointsTable) {
- this.codePointsTable = []
- }
+ this.codePointesTableStatus = true;
const newObj = {}
- newObj.name = '灏忓皬' // 褰撳墠鐢ㄦ埛鐨勫悕绉�
- newObj.updateTime = '2023-07-24' // 鑾峰彇褰撳墠鏃堕棿
- newObj.equipmentPoint = 'Area-1'
- newObj.equipmentPointName = '瀵间綋灞忚斀锛堝鍘氶潰绉級'
+ newObj.isInput = true,
+ newObj.name = '' // 褰撳墠鐢ㄦ埛鐨勫悕绉�
+ newObj.updateTime = '' // 鑾峰彇褰撳墠鏃堕棿
+ newObj.equipmentPoint = ''
+ newObj.equipmentPointName = ''
newObj.descriptiveness = ''
- newObj.unit = 'mm'
+ newObj.unit = ''
newObj.instrumentId = this.equipmentDetail.id
- this.codePointsTable.push(newObj)
+ this.codePointsTable.unshift(newObj)
},
// 淇濆瓨鎻愪氦鏂板璁惧鐮佺偣
async saveCodePoins() {
- console.log(this.codePointsTable)
- if (!this.codePointsTable) {
- this.codePointsTable = []
+ if (this.codePointsTable.length === 0) {
+ return this.$message.error('璇风偣鍑绘坊鍔犳寜閽坊鍔犳暟鎹�')
}
- if (this.codePointsTable.length === 0) return this.$message.error('璇风偣鍑绘坊鍔犳寜閽坊鍔犳暟鎹�')
- try {
- for (const item of this.codePointsTable) {
- const { code, data, message } = await addEquipmentPoint(item)
- console.log(data)
- if (code !== 200) throw new Error(message)
- this.$message.success('娣诲姞鎴愬姛')
- }
- } catch (error) {
- this.$message.error(error)
- }
+ let data = this.codePointsTable.filter(item => {
+ return item.instrumentId != null;
+ })
+ await addEquipmentPoint(data).then(()=>{
+ this.$message.success('娣诲姞鎴愬姛')
+ }).catch(error=>{
+ this.$message.error(error.message)
+ })
await this.closeCodePoins()
},
// 鍙栨秷鏂板璁惧鐮佺偣
@@ -949,73 +740,115 @@
const { data: pointList } = await getEquipmentPointList({ InstrumentId: this.equipmentDetail.id })
this.codePointsTable = pointList
},
+ async submitForm(formName) {
+ this.$refs[formName].validate((valid) => {
+ if (valid) {
+ return true
+ } else {
+ return false;
+ }
+ });
+ },
// 鐐瑰嚮鏂板浠櫒璁惧鎴栧綋瀛樺湪浠櫒璇︽儏鏃舵槸淇敼浠櫒璁惧淇℃伅
async addNewEquipment() {
- if (Array.isArray(this.equipmentform.classifyId)) {
- this.equipmentform.classifyId = this.equipmentform.classifyId.pop()
- }
- if (!this.equipmentDetail.id) {
- // 鏍煎紡鍖栨棩鏈�
- console.log('鏂板浠櫒')
- this.equipmentform.arrivalDate = parseTime(this.equipmentform.arrivalDate, '{y}-{m}-{d}')
- this.equipmentform.acceptanceDate = parseTime(this.equipmentform.acceptanceDate, '{y}-{m}-{d}')
- // this.equipmentform.termValidity = parseTime(this.equipmentform?.termValidity, '{y}-{m}-{d}')
- console.log('鏂板浠櫒璁惧鍙傛暟', this.equipmentform)
- try {
- const res = await addInstrument(this.equipmentform)
- console.log(res)
- } catch (error) {
- this.$message.error('娣诲姞澶辫触')
+ this.$refs["addNewEquipment"].validate(async(valid)=>{
+ if(valid){
+ if (Array.isArray(this.equipmentform.classifyId)) {
+ this.equipmentform.classifyId = this.equipmentform.classifyId.pop()
+ }
+ if (!this.equipmentDetail.id) {
+ // 鏍煎紡鍖栨棩鏈�
+ this.equipmentform.arrivalDate = parseTime(this.equipmentform.arrivalDate, '{y}-{m}-{d}')
+ this.equipmentform.acceptanceDate = parseTime(this.equipmentform.acceptanceDate, '{y}-{m}-{d}')
+ // this.equipmentform.termValidity = parseTime(this.equipmentform?.termValidity, '{y}-{m}-{d}')
+ await addInstrument(this.equipmentform).then(()=>{
+ this.$message.success('娣诲姞鎴愬姛')
+ }).catch(error=>{
+ this.$message.error(error.message);
+ })
+ let d = this.nodeclicked;
+ this.nodeClickHandler(d);
+ this.addDrawerVisible = false
+ this.equipmentform = {}
+ return
+ }
+ console.log('淇敼浠櫒鍙傛暟', this.equipmentform)
+ await changeInstrument(this.equipmentform).then(()=>{
+ this.$message.success('淇敼鎴愬姛')
+ let d = this.nodeclicked;
+ this.nodeClickHandler(d);
+ this.addDrawerVisible = false
+ this.detailDrawer = false
+ }).catch(error=>{
+ this.$message.error(error.message);
+ })
}
- this.$message.success('娣诲姞鎴愬姛')
- this.addDrawerVisible = false
- this.equipmentform = {}
- return
+ });
+ },
+ cancelAddEq() {
+ this.resetForm('addDrawer')
+ this.addDrawerVisible = false
+ },
+ resetForm(formName) {
+ this.measureForm = {
+ userId: null,
+ measurementUnit: null,
+ date: null,
+ uncertainty: null,
+ result: null,
+ performanceIndex: null,
+ remarks: null,
+ file: ""
}
- console.log('淇敼浠櫒鍙傛暟', this.equipmentform)
- try {
- const res = await changeInstrument(this.equipmentform)
- console.log(res)
- this.$message.success('淇敼鎴愬姛')
- this.addDrawerVisible = false
- this.detailDrawer = false
- } catch (error) {
- this.$message.error('娣诲姞澶辫触')
- }
+ this.$refs[formName].resetFields();
+ },
+ cancelAddMeasure() {
+ this.measureForm.file = null;
+ this.measureFormVisible = false
+ this.resetForm('addmeasureForm');
+ this.$refs['upload'].clearFiles();
},
// 娣诲姞璁¢噺淇℃伅
async addMeasure() {
- // 鏍煎紡鍖栨椂闂�
- this.measureForm.instrumentId = this.equipmentDetail.id
- if (Array.isArray(this.measureForm.date)) {
- this.measureForm.beginDate = parseTime(this.measureForm.date[0], '{y}-{m}-{d}')
- this.measureForm.endDate = parseTime(this.measureForm.date[1], '{y}-{m}-{d}')
- }
- console.log(this.measureForm)
- const formData = new FormData()
- formData.append('file', this.measureForm.file?.raw, this.measureForm.file?.name)
- console.log(this.measureForm)
- for (const key in this.measureForm) {
- console.log(key)
- // if (key === 'file') return
- formData.append(key, this.measureForm[key])
- }
- console.log(formData)
- try {
- const { data } = await addMetricalInformation(formData)
- console.log(data)
- this.$message.success('娣诲姞鎴愬姛')
- this.measureForm = {}
- this.measureFormVisible = false
- } catch (error) {
- this.$message.error('娣诲姞澶辫触')
- }
+ this.$refs['addmeasureForm'].validate(async(valid)=>{
+ if(valid){
+ // 鏍煎紡鍖栨椂闂�
+ this.measureForm.instrumentId = this.equipmentDetail.id
+ if (Array.isArray(this.measureForm.date)) {
+ this.measureForm.beginDate = parseTime(this.measureForm.date[0], '{y}-{m}-{d}')
+ this.measureForm.endDate = parseTime(this.measureForm.date[1], '{y}-{m}-{d}')
+ }
+ const formData = new FormData()
+ if(this.measureForm.file == null || this.measureForm.file == ""){
+ this.$message.warning("璇烽�夋嫨瑕佷笂浼犵殑鏂囦欢!");
+ return;
+ }else{
+ formData.append('file', this.measureForm.file?.raw, this.measureForm.file?.name)
+ }
+ for (const key in this.measureForm) {
+ formData.append(key, this.measureForm[key])
+ }
+ try {
+ await addMetricalInformation(formData)
+ this.$message.success('娣诲姞鎴愬姛')
+ const { data: informationList } = await getMetricalInformationList({ InstrumentId: this.equipmentDetail.id })
+ this.measureTable = informationList
+ this.measureForm = {}
+ this.measureFormVisible = false
+ } catch (error) {
+ this.$message.error('娣诲姞澶辫触')
+ }
+ this.measureForm.file = null;
+ this.$refs['upload'].clearFiles();
+ }
+ });
},
// 鍏抽棴璁惧璇︽儏鎶藉眽
closeDetailDrawer() {
this.equipmentDetail = {}
this.codePointsTable = []
this.measureTable = []
+ this.measureForm.file = null;
},
// 鍏抽棴娣诲姞淇敼璁惧鎶藉眽
closeAddOrChangeDrawer() {
@@ -1025,7 +858,6 @@
},
// 鏂囦欢涓婁紶
handleUpload(file, fileList) {
- // console.log(file, fileList)
this.measureForm.file = file
},
// 鏍规嵁杈撳叆鐨勮澶囩紪鍙凤紝璁惧鍚嶇О鎴栬�呭瀷鍙疯鏍煎叧閿瓧杩涜杩囨护鍒楄〃
@@ -1038,10 +870,11 @@
},
resetBtn() {
this.searchData.keyword = ''
+ this.radioValue = 0;
+ this.isOut = false;
this.equipmentTable = this.oldtableData
},
getConditionTable() {
- // console.log(this.radioValue)
let filteredTable = this.oldtableData.filter(item => {
return item.conditions === this.radioValue
})
@@ -1084,12 +917,10 @@
let expireItem
for (expireItem of this.expireData) {
this.equipmentTable = this.oldtableData.filter(item => {
- console.log(this.radioValue)
console.log('item', item)
console.log('expireItem', expireItem)
return item.conditions === this.radioValue && item.equipment_code === expireItem.equipment_code
})
- console.log(this.equipmentTable)
}
} else {
this.equipmentTable = this.expireData
@@ -1111,18 +942,76 @@
this.deletedialogVisible = true
},
async deleteInstrument() {
- // console.log(row.id)
- await deleteInstrument({ instrumentId: this.instrumentId })
+ await deleteInstrument({ instrumentId: this.instrumentId }).then(res=>{
+ this.$message.success('鍒犻櫎鎴愬姛锛�');
+ let d = this.nodeclicked
+ this.nodeClickHandler(d);
+ }).catch(()=>{
+ this.$message.error('鍒犻櫎澶辫触锛�');
+ });
this.deletedialogVisible = false
+ },
+ async submitTreeForm(formName) {
+ let _that = this
+ this.$refs[formName].validate((valid) => {
+ if (valid) {
+ _that.addClassifyInfo()
+ } else {
+ console.log('error submit!!');
+ return false;
+ }
+ });
+ },
+ async addClassifyInfo() {
+ let _that = this
+ let data = {
+ fatherName: null,
+ sonName: null
+ }
+
+ if (_that.addTreeForm.type != null && _that.addTreeForm.type[0] != 0) {
+ data.fatherName = _that.addTreeFormClassTree.filter(item => {
+ return item.value == _that.addTreeForm.type[0]
+ })[0].label
+ data.sonName = _that.addTreeForm.name
+ } else {
+ data.fatherName = _that.addTreeForm.name
+ } // return;
+ let add = await addClassify(data);
+ switch (add.message.split('-$')[0]) {
+ case '1':
+ this.$message({
+ message: '鎿嶄綔鎴愬姛锛�',
+ type: 'success'
+ });
+ _that.getThreeData()
+ _that.resetTreeForm('addTreeForm')
+ break;
+ case '2':
+ this.$message({
+ message: '宸插瓨鍦ㄨ鍒嗙被',
+ type: 'warning'
+ });
+ break;
+ case '0':
+ this.$message.error('娣诲姞澶辫触锛佽鑱旂郴绠$悊鍛�');
+ break;
+ }
+
+ },
+ resetTreeForm(formName) {
+ this.$refs[formName].resetFields();
+ this.addClassVisible = false
}
}
}
</script>
<style lang="scss" scoped>
-.demo-drawer__content{
+.demo-drawer__content {
margin-left: 50px;
}
+
.demo-drawer__footer {
display: flex;
justify-content: space-between;
@@ -1142,148 +1031,178 @@
margin-right: 60px;
margin-bottom: 24px;
}
-.ledger-main{
+
+.ledger-main {
width: 100%;
height: 100%;
- // 椤甸潰澶撮儴鏉′欢鎼滅储
- .page-header-search{
+
+ // 椤甸潰澶撮儴鏉′欢鎼滅储
+ .page-header-search {
background: #fff;
display: flex;
justify-content: space-between;
- padding: 0 24px 12px 24px;
- .search-bar{
- .el-radio-button.is-active{
+ padding: 15px 24px 12px 24px;
+ .serve-btn{
+ position: relative;
+ left: 92%;
+ }
+ .search-bar {
+ .el-radio-button.is-active {
color: #409EFF !important;
background: #ecf5ff !important;
border-color: #b3d8ff !important;
}
- .el-form{
- .el-form-item{
- margin-bottom: 0px !important;
- .el-input{
- width: 360px;
- }
+ .el-form {
+ .el-form-item {
+ margin-bottom: 0px !important;
+
+ .el-input {
+ width: 500px;
+ }
}
}
}
}
-// 椤甸潰涓績鍐呭鍖哄煙
- .content-main{
+ // 椤甸潰涓績鍐呭鍖哄煙
+ .content-main {
display: flex;
height: 100%;
min-height: calc(100vh - 88px);
padding: 15px;
- >div{
+
+ >div {
padding: 20px;
background: #fff;
}
- .library-bom{
+
+ .library-bom {
flex: 2;
margin-right: 12px;
- .bom-item-search{
+ height: 80vh;
+
+ .bom-item-search {
margin-bottom: 12px;
- ::v-deep .el-input{
- input{
+
+ ::v-deep .el-input {
+ input {
height: 33px;
line-height: 33px;
}
}
}
- .bom-item-search .el-row{
- // display: flex;
- .el-col{
- text-align: right;
- }
- }
+
+ .bom-item-search .el-row {
+
+ // display: flex;
+ .el-col {
+ text-align: right;
+ }
+ }
+
.el-tree {
margin-top: 12px;
}
}
- .library-table{
+
+ .library-table {
flex: 8;
max-width: 80%;
margin-left: 12px;
display: flex;
flex-direction: column;
- .table-box{
- margin-top: 30px;
+ height: 80vh;
+
+ .table-box {
+ margin-top: 30px;
+ flex: 1;
+ background: #fff;
+ display: flex;
+ flex-direction: column;
+
+ .el-table {
flex: 1;
- background: #fff;
+ }
+
+ >div:nth-child(2) {
display: flex;
- flex-direction: column;
- .el-table {
- flex: 1;
- }
- >div:nth-child(2){
- display: flex;
- justify-content: end;
- margin: 10px 0;
- }
+ justify-content: end;
+ margin: 10px 0;
+ }
}
}
}
}
-.addDrawer{
- ::v-deep .el-drawer__body{
- // padding: 24px !important;
- overflow-y: scroll;
- overflow-x: hidden;
- }
+
+.addDrawer {
+ ::v-deep .el-drawer__body {
+ // padding: 24px !important;
+ overflow-y: scroll;
+ overflow-x: hidden;
+ }
}
-.detailDrawer{
- ::v-deep .el-drawer__body{
- padding: 24px !important;
- overflow-y: scroll;
- }
- .detail-info{
+
+.detailDrawer {
+ ::v-deep .el-drawer__body {
+ padding: 24px !important;
+ overflow-y: scroll;
+ }
+
+ .detail-info {
background: #fff;
box-shadow: rgba(100, 100, 111, 0.2) 0px 5px 15px;
margin: 0;
margin-bottom: 12px;
border-radius: 6px;
overflow: hidden;
- .tips-main{
+
+ .tips-main {
padding: 10px 20px 0 20px;
display: flex;
justify-content: space-between;
align-items: center;
height: 50px;
- .tips-btn{
+
+ .tips-btn {
margin-bottom: 10px;
}
- .tips{
- height: 100%;
- display: flex;
- height: 24px;
- align-items: center;
- font-size: 16px;
- >span{
- display: inline-block;
- margin-right: 10px;
- width: 4px;
- height: 16px;
- background: #0077DB;
- }
- >div{
+
+ .tips {
height: 100%;
- line-height: 26px;
- }
- .el-button{
- padding: 0;
- }
+ display: flex;
+ height: 24px;
+ align-items: center;
+ font-size: 16px;
+
+ >span {
+ display: inline-block;
+ margin-right: 10px;
+ width: 4px;
+ height: 16px;
+ background: #0077DB;
+ }
+
+ >div {
+ height: 100%;
+ line-height: 26px;
+ }
+
+ .el-button {
+ padding: 0;
+ }
}
}
// 鍩烘湰淇℃伅鍜屼紒涓氫俊鎭殑姣忎竴涓俊鎭」鏍峰紡
- .message{
+ .message {
padding: 0px 20px 8px 20px;
display: flex;
flex-wrap: wrap;
border-top: 1px solid #F2F6FC;
- >div{
+
+ >div {
flex: 30%;
max-width: 30%;
padding: 8px;
@@ -1293,22 +1212,27 @@
height: 40px;
display: flex;
align-items: center;
- >span{
+
+ >span {
color: #303133;
font-size: 14px;
- >i{
+
+ >i {
margin-right: 8px;
}
}
}
}
}
- }
-.measureForm{
+}
+
+.measureForm {
+
//
- .el-form-item{
+ .el-form-item {
+
//
- .el-date-editor{
+ .el-date-editor {
width: 100%;
}
}
--
Gitblit v1.9.3