From e07e6af94e8df05f4f5331c631e18e265d7174ca Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期二, 05 九月 2023 16:52:27 +0800 Subject: [PATCH] modified: src/router/index.js --- src/views/laboratory/ledger/index.vue | 259 ++++++++++++++++++++++++++++----------------------- 1 files changed, 143 insertions(+), 116 deletions(-) diff --git a/src/views/laboratory/ledger/index.vue b/src/views/laboratory/ledger/index.vue index 0308fd3..12f8143 100644 --- a/src/views/laboratory/ledger/index.vue +++ b/src/views/laboratory/ledger/index.vue @@ -1,23 +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; equipmentform.equipmentMeasurement = 1; equipmentform.whetherDataAcquisition = 1">鏂板浠櫒</el-button> + @click="showAddDrawer()">鏂板浠櫒</el-button> </div> </div> <div class="content-main"> @@ -25,7 +11,7 @@ <div class="bom-item-search"> <el-row> <el-col :span="19"> - <el-input v-model="filterText" placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" /> + <el-input v-model="filterText" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" /> </el-col> <el-col :span="5"> <el-button type="primary" size="small" @click="addClassVisible = true"><i @@ -33,27 +19,42 @@ </el-col> </el-row> </div> - <el-tree ref="classTree" :data="classTree" :props="defaultProps" :default-expand-all="true" + <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="15"> + <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> + </el-col> + <el-col :span="9"> + <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> + </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' }" + <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%;"> <el-table-column type="index" label="搴忓彿" min-width="90" /> <el-table-column prop="equipment_code" label="浠櫒璁惧缂栧彿" min-width="200" /> @@ -63,8 +64,11 @@ <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" /> @@ -151,7 +155,7 @@ <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 ? '鏀寔' : '涓嶆敮鎸�' @@ -247,9 +251,9 @@ <el-row :gutter="50"> <el-col :span="11"> <el-form-item label="鎵�灞炲垎绫伙細" prop="classifyId" label-width="80" :rules="[ - { required: true, message: '璇烽�夋嫨鎵�灞炲垎绫�', trigger: 'change' } + { required: true, message: '璇烽�夋嫨鎵�灞炲垎绫�', trigger: 'blur' } ]"> - <el-cascader v-model="equipmentform.classifyId" :options="classTree" :show-all-levels="false" /> + <el-cascader style="width: 100%;" v-model="equipmentform.classifyId" :options="classTree" :show-all-levels="false" /> </el-form-item> </el-col> <el-col :span="11"> @@ -268,7 +272,7 @@ </el-col> <el-col :span="11"> <el-form-item label="鐘舵�侊細" prop="conditions" - :rules="[{ required: true, message: '璇烽�夋嫨浠櫒璁惧鐘舵��', trigger: 'change' }]" label-width="80"> + :rules="[{ required: true, message: '璇烽�夋嫨浠櫒璁惧鐘舵��', trigger: 'blur' }]" 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" @@ -310,7 +314,7 @@ </el-col> <el-col :span="11"> <el-form-item label="鍒拌揣鏃ユ湡锛�" label-width="80"> - <el-date-picker v-model="equipmentform.arrivalDate" type="date" placeholder="璇烽�夋嫨鍒拌揣鏃ユ湡" + <el-date-picker value-format="yyyy-MM-dd" v-model="equipmentform.arrivalDate" type="date" placeholder="璇烽�夋嫨鍒拌揣鏃ユ湡" style="width:100%" /> </el-form-item> </el-col> @@ -318,7 +322,7 @@ <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="璇烽�夋嫨楠屾敹鏃ユ湡" + <el-date-picker value-format="yyyy-MM-dd" v-model="equipmentform.acceptanceDate" type="date" placeholder="璇烽�夋嫨楠屾敹鏃ユ湡" style="width:100%" /> </el-form-item> </el-col> @@ -347,8 +351,8 @@ </el-row> <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" placeholder="璇峰~鍐欒閲忔湁鏁堟湡" 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> @@ -388,7 +392,7 @@ </el-row> <el-row :gutter="20"> <el-col :span="24"> - <el-form-item label="妫�瀹氭湁鏁堟湡" prop="date" :rules="[{ required: true, message: '璇烽�夋嫨妫�瀹氭湁鏁堟湡', trigger: 'change' }]"> + <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> @@ -426,8 +430,8 @@ </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> @@ -460,39 +464,13 @@ } 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 @@ -608,7 +586,7 @@ result: null, performanceIndex: null, remarks: null, - file: null + file: "" }, activeTabsName: 'codePoints', // 鐮佺偣琛ㄦ牸鐨勭姸鎬侊細鏁版嵁灞曠ずfalse/鏂板杈撳叆true @@ -631,6 +609,11 @@ watch: { filterText(val) { this.$refs.classTree.filter(val) + }, + measureFormVisible(newVal){ + if(newVal === false){ + this.resetForm("addmeasureForm"); + } } }, created() { @@ -638,6 +621,27 @@ 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() @@ -685,7 +689,7 @@ // 鑺傜偣鐐瑰嚮澶勭悊 nodeClickHandler(data, node, element) { this.nodeclicked = data - // console.log(data) + console.log(data) // 鍙湁鏁版嵁涓惡甯d鎵嶈兘鍙戦�佹煡璇㈣姹� if (data.id) { this.getEquipmentTable({ classifyId: data.id, pageSize: this.pageSize, pageNo: this.currentPage, whetherWhether: this.isOut }) @@ -749,7 +753,7 @@ this.$message.success('娣诲姞鎴愬姛') } } catch (error) { - this.$message.error(error) + this.$message.error(error.message) } await this.closeCodePoins() }, @@ -790,6 +794,8 @@ this.$message.error('娣诲姞澶辫触') } this.$message.success('娣诲姞鎴愬姛') + let d = this.nodeclicked; + this.nodeClickHandler(d); this.addDrawerVisible = false this.equipmentform = {} return @@ -798,6 +804,8 @@ try { const res = await changeInstrument(this.equipmentform) this.$message.success('淇敼鎴愬姛') + let d = this.nodeclicked; + this.nodeClickHandler(d); this.addDrawerVisible = false this.detailDrawer = false } catch (error) { @@ -805,56 +813,78 @@ } }, cancelAddEq() { + this.resetForm('addDrawer') this.addDrawerVisible = false - // this.resetForm('addNewEquipment') }, resetForm(formName) { + this.measureForm = { + userId: null, + measurementUnit: null, + date: null, + uncertainty: null, + result: null, + performanceIndex: null, + remarks: null, + file: "" + } this.$refs[formName].resetFields(); }, cancelAddMeasure() { + this.$refs['upload'].clearFiles(); + this.measureForm.file = null; this.measureFormVisible = false - this.resetForm('addmeasureForm') + this.resetForm('addmeasureForm'); }, // 娣诲姞璁¢噺淇℃伅 async addMeasure() { - let v = this.submitForm('addmeasureForm') - console.log(v); - if (!v) { - return - } - // 鏍煎紡鍖栨椂闂� - 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('娣诲姞鎴愬姛') - const { data: informationList } = await getMetricalInformationList({ InstrumentId: this.equipmentDetail.id }) - this.measureTable = informationList - 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}') + } + console.log(this.measureForm) + 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) + } + 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('娣诲姞鎴愬姛') + 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(); + }else{ + console.log(32); + } + }); }, // 鍏抽棴璁惧璇︽儏鎶藉眽 closeDetailDrawer() { this.equipmentDetail = {} this.codePointsTable = [] this.measureTable = [] + this.measureForm.file = null; + this.$refs['upload'].clearFiles(); }, // 鍏抽棴娣诲姞淇敼璁惧鎶藉眽 closeAddOrChangeDrawer() { @@ -864,7 +894,7 @@ }, // 鏂囦欢涓婁紶 handleUpload(file, fileList) { - // console.log(file, fileList) + console.log(file, fileList) this.measureForm.file = file }, // 鏍规嵁杈撳叆鐨勮澶囩紪鍙凤紝璁惧鍚嶇О鎴栬�呭瀷鍙疯鏍煎叧閿瓧杩涜杩囨护鍒楄〃 @@ -950,15 +980,13 @@ this.deletedialogVisible = true }, async deleteInstrument() { - let up = await deleteInstrument({ instrumentId: this.instrumentId }) - if (up.data) { - this.$message({ - message: '鎿嶄綔鎴愬姛锛�', - type: 'success' - }); + 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) { @@ -1059,13 +1087,12 @@ background: #ecf5ff !important; border-color: #b3d8ff !important; } - .el-form { .el-form-item { margin-bottom: 0px !important; .el-input { - width: 360px; + width: 500px; } } } -- Gitblit v1.9.3