From 95fe284d1b3c11b573653f1564d0e084e7de5bb5 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期一, 21 八月 2023 09:02:07 +0800
Subject: [PATCH] modified: src/api/laboratory/measure.js modified: src/api/util/requestUtil.js modified: src/components/Breadcrumb/index.vue modified: src/layout/components/AppMain.vue modified: src/layout/index.vue new file: src/utils/dateUtil.js modified: src/utils/request.js modified: src/views/laboratory/measure/Add.vue modified: src/views/laboratory/measure/index.vue
---
src/views/laboratory/measure/index.vue | 268 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 222 insertions(+), 46 deletions(-)
diff --git a/src/views/laboratory/measure/index.vue b/src/views/laboratory/measure/index.vue
index 96ab797..eaa03d0 100644
--- a/src/views/laboratory/measure/index.vue
+++ b/src/views/laboratory/measure/index.vue
@@ -3,7 +3,7 @@
<div class="content-main">
<div class="top-bar">
<el-form :hidden="lookVisible" ref="form" :inline="true" :model="searchData">
- <el-form-item :label="this.radioValue === 0 ? '浠櫒璁惧缂栧彿:' : '璁″垝鍗曞彿:'" class="sermargin">
+ <el-form-item :label="this.radioValue === 0 ? '浠櫒璁惧缂栧彿:' : '璁″垝缂栧彿:'" class="sermargin">
<el-input v-model="searchData.code" @blur="blurSearch()" class="input-form" placeholder="璇疯緭鍏�">
</el-input>
</el-form-item>
@@ -82,7 +82,7 @@
:header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
:data="measurePlanTable" style="width: 100%">
<el-table-column type="index" min-width="10%" />
- <el-table-column prop="plannedOrderNumber" label="璁″垝鍗曞彿" min-width="10%" />
+ <el-table-column prop="plannedOrderNumber" label="璁″垝缂栧彿" min-width="10%" />
<el-table-column prop="palanDate" label="璁″垝鏃ユ湡" min-width="10%">
<template lot-scope="scope">
<!-- {{ scope.row.palanDate }} -->
@@ -117,11 +117,12 @@
</div>
</div>
</div>
- <el-drawer title="鎴戞槸鏍囬" :visible.sync="drawer" :direction="direction" :before-close="handleClose">
- <span>鎴戞潵鍟�!</span>
- </el-drawer>
+ <div
+ :style="`position: absolute;top:${addTop}px;left: 9px;transition: 1s;width: 99%;height: 82vh;background-color: #fff;z-index: 21;`">
+ <Add ref="add" />
+ </div>
<div id="myMOdel"
- :style="`position: absolute;transition: 1s;top:${mymodelTop}px; left: 9px; width: 100%; height: 60vh; background-color: #fff;z-index: 20;`">
+ :style="`position: absolute;transition: 1s;top:${mymodelTop}px; left: 9px; width: 99%; height: 85vh; background-color: #fff;z-index: 20;`">
<el-col :span="10">
<p style="font-size: 13px;padding-left: 40px;">璁″垝淇℃伅</p>
</el-col>
@@ -130,7 +131,7 @@
<el-form-item>
<el-col :span="8">璁″垝缂栧彿锛�<span style="color: black;">{{ planInfo.plannedOrderNumber }}</span></el-col>
<el-col :span="8">璐熻矗浜猴細<span style="color: black;">{{ planInfo.measurePerson }}</span></el-col>
- <el-col :span="8">璁″垝鏃堕棿锛�<span style="color: black;">{{ planInfo.palanDate }}</span></el-col>
+ <el-col :span="8">璁″垝鏃堕棿锛�<span style="color: black;">{{ planInfo.planDate }}</span></el-col>
</el-form-item>
<el-form-item>
<el-col :span="8">璁¢噺鍗曚綅锛�<span style="color: black;">{{ planInfo.unit }}</span></el-col>
@@ -148,39 +149,150 @@
:show-text="false"></el-progress>
</el-col>
</el-col>
- <el-col style="width:93%;height: 20vh;margin-top: 30px; margin-left: 40px;">
+ <el-col style="width:93%;height: 20vh;margin-top: 30px; margin-left: 40px;">
<el-table :data="measureData">
- <el-table-column type="inde" label="搴忓彿"/>
- <el-table-column type="inde" label="浠櫒璁惧缂栧彿"/>
- <el-table-column type="inde" label="浠櫒璁惧鍚嶇О"/>
- <el-table-column type="inde" label="娴嬮噺鑼冨洿"/>
- <el-table-column type="inde" label="璁$畻鍛ㄦ湡"/>
- <el-table-column type="inde" label="璁$畻缁撴灉"/>
- <el-table-column type="inde" label="璁$畻鏃ユ湡"/>
- <el-table-column type="inde" label="璁$畻鏈夋晥鏈�"/>
- <el-table-column type="inde" label="璐熻矗浜�"/>
- <el-table-column type="inde" label="鍒涘缓鏃ユ湡"/>
- <el-table-column type="inde" label="鍒涘缓浜�"/>
- <el-table-column type="inde" label="璁¢噺鍗曚綅"/>
- <el-table-column type="inde" label="璁¢噺缂栧彿"/>
+ <el-table-column type="index" label="搴忓彿" />
+ <el-table-column prop="equipmentCode" label="浠櫒璁惧缂栧彿" />
+ <el-table-column prop="equipmentName" label="浠櫒璁惧鍚嶇О" />
+ <el-table-column prop="measuringRange" label="娴嬮噺鑼冨洿" />
+ <el-table-column prop="termValidity" label="璁$畻鍛ㄦ湡">
+ <template slot-scope="scope">
+ {{ scope.row.termValidity }}鏈�
+ </template>
+ </el-table-column>
+ <el-table-column prop="result" label="璁$畻缁撴灉">
+ <template slot-scope="scopeResult">
+ <div v-if="scopeResult.row.result === 1">
+ <span style="color: rgb(78, 210, 16);">姝e父</span>
+ </div>
+ <div v-else-if="scopeResult.row.result === 2">
+ <span style="color: rgb(27, 202, 233);">鐭鍚庡彲鐢�</span>
+ </div>
+ <div v-else-if="scopeResult.row.result == '' || scopeResult.row.result == null">
+ <span style="color: #424744;">鏆傛湭璁¢噺</span>
+ </div>
+ <div v-else>
+ <span style="color: red;">澶卞噯</span>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="璁$畻鏃ユ湡">
+ <template slot-scope="scopeEndDate">
+ <span v-if="scopeEndDate.row.endDate != '' && scopeEndDate.row.endDate != null">{{
+ scopeEndDate.row.endDate
+ }}</span>
+ <span v-else>鏃�</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="validit" label="璁$畻鏈夋晥鏈�" />
+ <el-table-column prop="measurementName" label="璐熻矗浜�" />
+ <el-table-column prop="imCreateTime" label="鍒涘缓鏃ユ湡" />
+ <el-table-column prop="measurementName" label="鍒涘缓浜�" />
+ <el-table-column prop="measurementUnit" label="璁¢噺鍗曚綅" />
+ <el-table-column prop="code" label="璁¢噺缂栧彿" />
+ <el-table-column prop="equipmentCode" label="鎿嶄綔">
+ <template slot-scope="scope">
+ <a @click="measureUp(scope)" style="color: deepskyblue;">璁¢噺</a>
+ </template>
+ </el-table-column>
</el-table>
</el-col>
- <el-col style="width: 93%;margin-left: 40px; display: flex;justify-content: end;">
+ <el-col style="width: 93%;margin-left: 40px; margin-top: 250px;display: flex;justify-content: end;">
<el-pagination @size-change="handleSizeChangePlan" @current-change="handleCurrentChangePllan"
- :current-page="currentPagePlan" :page-sizes="[5, 10, 20]" :page-size="pageSizePlan"
- layout="total, sizes, prev, pager, next, jumper" :total="totalPlan">
- </el-pagination>
+ :current-page="currentPagePlan" :page-sizes="[5, 10]" :page-size="pageSizePlan"
+ layout="total, sizes, prev, pager, next, jumper" :total="totalPlan">
+ </el-pagination>
</el-col>
</div>
+ <el-dialog class="measureForm" title="璁¢噺" :visible.sync="dialogVisible">
+ <el-form label-position="top" ref="upmeasureForm" :model="measureUpInfo">
+ <el-row :gutter="20">
+ <el-col :span="24">
+ <el-form-item label="妫�瀹氭湁鏁堟湡" prop="date" :rules="[{ required: true, message: '璇烽�夋嫨妫�瀹氭湁鏁堟湡', trigger: 'change' }]">
+ <el-date-picker v-model="measureUpInfo.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="涓嶇‘瀹氬害" prop="uncertainty"
+ :rules="[{ required: true, message: '璇峰~鍐欎笉纭畾搴�', trigger: 'blur' }]">
+ <el-input placeholder="璇峰~鍐欎笉纭畾搴�" v-model="measureUpInfo.uncertainty" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="缁撴灉" prop="result" :rules="[{ required: true, message: '璇烽�夋嫨缁撴灉', trigger: 'change' }]">
+ <el-select v-model="measureUpInfo.result" clearable filterable :allow-create="true" placeholder="璇烽�夋嫨缁撴灉"
+ style="width:100%">
+ <el-option v-for="item in result" :key="item.id" :label="item.label" :value="item.value" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="20">
+ <el-col :span="24">
+ <el-form-item label="鎬ц兘鎸囨爣">
+ <el-input v-model="measureUpInfo.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="measureUpInfo.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-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+ </el-upload>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="addMeasure">纭� 瀹�</el-button>
+
+ <el-button @click="dialogVisible=false">鍙� 娑�</el-button>
+ </span>
+ </el-dialog>
</div>
</div>
</template>
<script>
-import { getPlanPageList, getStandingPageList } from '@/api/laboratory/measure'
+import { getPlanPageList, getStandingPageList, getPlanMeasureInstrument, limitGetPlanMeasureRequest } from '@/api/laboratory/measure'
+import { default as Add } from "./Add.vue";
export default {
+ components: {
+ Add: () => import('./Add.vue')
+ },
data() {
return {
+ dialogVisible: false,
+ tableIndex: null,
+ measureUpInfo:{
+ result: null,
+ date: null,
+ uncertainty: null,
+ performanceIndex: null,
+ remarks: null,
+ file: null
+ },
+ result: [{
+ label: '鍚堟牸',
+ value: 1
+ }, {
+ label: '鐭鍚庡彲鐢�',
+ value: 2
+ }, {
+ label: '涓嶅悎鏍�',
+ value: 3
+ }],
searchData: {
code: '',
name: '',
@@ -202,42 +314,100 @@
currentPagePlan: 1,
pageSizePlan: 5,
totalPlan: 0,
- drawer: false,
direction: 'rtl',
lookVisible: false,
measureData: [],
planInfo: {
plannedOrderNumber: 7897897987,
measurePerson: '鏌愭煇浜�',
- palanDate: "2021-09-08 ~ 2024-08-09",
+ planDate: "2021-09-08 ~ 2024-08-09",
unit: '鏌愭煇妫�娴嬪眬',
createPerson: '鏌愭煇璐熻矗浜�',
createTime: '2021-09-08'
},
- mymodelTop: -450//14
+ mymodelTop: -700,//14
+ addTop: -700,
+ planId: 0
}
},
created() {
this.getStandingPageList()
+ // this.getPlanPageList()
},
methods: {
- handleSizeChangePlan(){
-
+ upResult(){
+ this.measureData[this.tableIndex].result=this.resultUp
+
},
- handleCurrentChangePllan(){
-
+ measureUp(scope) {
+ console.log(scope);
+ this.dialogVisible = true
+ this.tableIndex=scope.$index
+ this.measureUpInfo.result=scope.row.result
+ },
+ measureAdd() {
+ let add = this.$refs.add.add()
+ if (add) {
+ this.addTop = -700
+ this.$message({
+ message: '鎿嶄綔鎴愬姛锛�',
+ type: 'success'
+ });
+ this.lookVisible = false
+ }
+ },
+ async handleSizeChangePlan(num) {
+ console.log(num);
+ this.pageSizePlan = num
+ await this.limitGetPlanMeasureInstrument()
+ },
+ async handleCurrentChangePllan(num) {
+ this.currentPagePlan = num
+ await this.limitGetPlanMeasureInstrument()
},
addPlan() {
- this.drawer = true
+ this.addTop = 14
+ this.lookVisible = true
+ this.$parent.mainShowAdd()
+ },
+ async limitGetPlanMeasureInstrument() {
+ let param = {
+ id: this.planId,
+ currentPage: this.currentPagePlan,
+ pageSize: this.pageSizePlan
+ }
+ console.log(param);
+ let res = await limitGetPlanMeasureRequest(param)
+ this.totalPlan = res.data.taotal
+ this.measureData = res.data.list
},
lookPalan(id) {
+ this.planId = id
+ this.getPlanAndInfoAndIns(id)
this.lookVisible = true
- this.mymodelTop=10
+ this.mymodelTop = 10
this.$parent.triggerMainBtnPlan()
},
- combackLookPlan(){
+ async getPlanAndInfoAndIns(id) {
+ let res = await getPlanMeasureInstrument({ "id": id, "currentPage": this.currentPagePlan, "pageSize": this.pageSize });
+ console.log(res);
+ for (const key in res.data.list) {
+ this.planInfo[key] = res.data.list[key]
+ }
+ this.planInfo.planDate = this.planInfo.beginTime + " ~ " + this.planInfo.endTime
+ this.planInfo.metricalInfoAndInsList.forEach(item => {
+ if (item.endDate != '' && item.endDate != null) {
+ item.validit = this.addMonths(item.endDate, item.termValidity)
+ } else {
+ item.validit = '鏃�'
+ }
+ })
+ this.measureData = this.planInfo.metricalInfoAndInsList
+ this.totalPlan = res.data.total
+ },
+ combackLookPlan() {
this.lookVisible = false
- this.mymodelTop=-450
+ this.mymodelTop = -700
},
blurSearch() {
if (this.radioValue === 1) {
@@ -247,17 +417,21 @@
handleClose() {
this.drawer = false
},
- handleCurrentChange() {
- this.getStandingPageList()
+ handleCurrentChange(num) {
+ this.currentPage = num
+ this.radioValue ? this.getPlanPageList() : this.getStandingPageList()
},
- handleSizeChange() {
- this.getStandingPageList()
+ handleSizeChange(num) {
+ this.pageSize = num
+ this.radioValue ? this.getPlanPageList() : this.getStandingPageList()
},
async getStandingPageList() {
- const res = await getStandingPageList({
+ let param = {
currentPage: this.currentPage, pageSize: this.pageSize,
code: this.searchData.code, name: this.searchData.name, unit: this.searchData.measureunit
- })
+ }
+ console.log(param);
+ const res = await getStandingPageList(param)
this.measureLedgerTable = res.data.records
this.total = res.data.total
this.measureLedgerTable.forEach(item => {
@@ -300,17 +474,19 @@
this.reset()
},
async getPlanPageList() {
- const res = await getPlanPageList({
+ let param = {
currentPage: this.currentPage, pageSize: this.pageSize,
code: this.searchData.code, name: this.searchData.name, unit: this.searchData.measureunit
- })
+ }
+ console.log(param);
+ const res = await getPlanPageList(param)
res.data.list.forEach(item => {
item.palanDate = item.beginTime + " ~ " + item.endTime
})
this.measurePlanTable = res.data.list
this.total = res.data.total
},
- lookMeasurement(code) {
+ async lookMeasurement(code) {
console.log(code);
},
}
--
Gitblit v1.9.3