From 34a7e21b3508ac0f5f011d958210fdb7176d726b Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期六, 09 九月 2023 11:54:05 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.0.22:9001/r/lims-before --- src/views/laboratory/ledger/index.vue | 187 +++++++++++++++++++--------------------------- 1 files changed, 76 insertions(+), 111 deletions(-) diff --git a/src/views/laboratory/ledger/index.vue b/src/views/laboratory/ledger/index.vue index 12f8143..7d96ba1 100644 --- a/src/views/laboratory/ledger/index.vue +++ b/src/views/laboratory/ledger/index.vue @@ -2,7 +2,7 @@ <div class="ledger-main"> <div class="page-header-search"> <div class="serve-btn"> - <el-button type="primary" icon="el-icon-plus" + <el-button size="small" type="primary" icon="el-icon-plus" @click="showAddDrawer()">鏂板浠櫒</el-button> </div> </div> @@ -11,7 +11,7 @@ <div class="bom-item-search"> <el-row> <el-col :span="19"> - <el-input v-model="filterText" clearable 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 @@ -26,23 +26,21 @@ <div class="table-header"> <div class="search-bar"> <el-row :gutter="20"> - <el-col :span="15"> + <el-col :span="8"> <el-form ref="form" :inline="true" :model="searchData"> - <el-form-item> - <el-input v-model="searchData.keyword" placeholder="璇疯緭鍏ョ紪鍙�/璁惧鍚嶇О/鍨嬪彿瑙勬牸"> + <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 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-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="9"> + <el-col :span="16"> <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> @@ -55,7 +53,7 @@ <div class="table-box"> <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%;"> + :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" /> @@ -174,43 +172,38 @@ </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%"> + :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"> <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"> <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"> <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> @@ -273,7 +266,7 @@ <el-col :span="11"> <el-form-item label="鐘舵�侊細" prop="conditions" :rules="[{ required: true, message: '璇烽�夋嫨浠櫒璁惧鐘舵��', trigger: 'blur' }]" label-width="80"> - <el-select v-model="equipmentform.conditions" clearable filterable :allow-create="true" + <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" /> @@ -328,7 +321,7 @@ </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="璇烽�夋嫨淇濈浜�" + <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> @@ -566,6 +559,7 @@ // 鐮佺偣琛ㄦ牸 codePointsTable: [ { + 'isInput':false, 'unit': '', 'descriptiveness': '', 'equipmentPoint': '', @@ -612,7 +606,7 @@ }, measureFormVisible(newVal){ if(newVal === false){ - this.resetForm("addmeasureForm"); + this.cancelAddMeasure(); } } }, @@ -645,7 +639,6 @@ // 鑾峰彇鍒嗙被鏁版嵁 async getThreeData() { const { data } = await getClassifyList() - // console.log(data) this.classTree = data.map(item => { if (item.children) { item.children = item.children.map(childrenItem => { @@ -674,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 }) @@ -697,7 +686,6 @@ }, // 鑾峰彇浠櫒鍒楄〃鏁版嵁 async getEquipmentTable(ages) { - // console.log('鏉′欢瀵硅薄', ages) const { data } = await getInstrumentList(ages) this.equipmentTable = data.row this.total = data.total @@ -716,19 +704,11 @@ handleCurrentChange() { // 褰撳墠椤垫洿鏀� }, - // 鏄剧ず璁惧鐮佺偣 - addCodePoints() { - // 娣诲姞鏂扮爜鐐癸紝娓呯┖鍘熸暟缁� - this.codePointesTableStatus = true - this.codePointsTable = undefined - }, // 鏂板璁惧鐮佺偣 addNewCodePoints() { - // - if (!this.codePointsTable) { - this.codePointsTable = [] - } + this.codePointesTableStatus = true; const newObj = {} + newObj.isInput = true, newObj.name = '' // 褰撳墠鐢ㄦ埛鐨勫悕绉� newObj.updateTime = '' // 鑾峰彇褰撳墠鏃堕棿 newObj.equipmentPoint = '' @@ -736,25 +716,21 @@ newObj.descriptiveness = '' 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) { + 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() }, // 鍙栨秷鏂板璁惧鐮佺偣 @@ -775,42 +751,39 @@ }, // 鐐瑰嚮鏂板浠櫒璁惧鎴栧綋瀛樺湪浠櫒璇︽儏鏃舵槸淇敼浠櫒璁惧淇℃伅 async addNewEquipment() { - let v = this.submitForm('addNewEquipment') - if (!v) { - return - } - 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}') - 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('娣诲姞鎴愬姛') - let d = this.nodeclicked; - this.nodeClickHandler(d); - this.addDrawerVisible = false - this.equipmentform = {} - return - } - console.log('淇敼浠櫒鍙傛暟', this.equipmentform) - 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) { - this.$message.error('娣诲姞澶辫触') - } + }); }, cancelAddEq() { this.resetForm('addDrawer') @@ -830,10 +803,10 @@ this.$refs[formName].resetFields(); }, cancelAddMeasure() { - this.$refs['upload'].clearFiles(); this.measureForm.file = null; this.measureFormVisible = false this.resetForm('addmeasureForm'); + this.$refs['upload'].clearFiles(); }, // 娣诲姞璁¢噺淇℃伅 async addMeasure() { @@ -845,7 +818,6 @@ 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("璇烽�夋嫨瑕佷笂浼犵殑鏂囦欢!"); @@ -853,16 +825,11 @@ }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) + await addMetricalInformation(formData) this.$message.success('娣诲姞鎴愬姛') const { data: informationList } = await getMetricalInformationList({ InstrumentId: this.equipmentDetail.id }) this.measureTable = informationList @@ -873,8 +840,6 @@ } this.measureForm.file = null; this.$refs['upload'].clearFiles(); - }else{ - console.log(32); } }); }, @@ -884,7 +849,6 @@ this.codePointsTable = [] this.measureTable = [] this.measureForm.file = null; - this.$refs['upload'].clearFiles(); }, // 鍏抽棴娣诲姞淇敼璁惧鎶藉眽 closeAddOrChangeDrawer() { @@ -894,7 +858,6 @@ }, // 鏂囦欢涓婁紶 handleUpload(file, fileList) { - console.log(file, fileList) this.measureForm.file = file }, // 鏍规嵁杈撳叆鐨勮澶囩紪鍙凤紝璁惧鍚嶇О鎴栬�呭瀷鍙疯鏍煎叧閿瓧杩涜杩囨护鍒楄〃 @@ -907,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 }) @@ -953,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 @@ -1080,7 +1042,10 @@ display: flex; justify-content: space-between; padding: 15px 24px 12px 24px; - + .serve-btn{ + position: relative; + left: 92%; + } .search-bar { .el-radio-button.is-active { color: #409EFF !important; -- Gitblit v1.9.3