From c4345710b23e8a00b3869e4926ce72786690e0a4 Mon Sep 17 00:00:00 2001
From: 李林 <z1292839451@163.com>
Date: 星期二, 22 八月 2023 18:03:50 +0800
Subject: [PATCH] 修改检验计划功能
---
src/api/util/requestUtil.js | 9 +
src/api/url.js | 6 +
src/views/experiment/planAssignments/plan.vue | 290 +++++++++++++++++++++++++++++-------------------
3 files changed, 191 insertions(+), 114 deletions(-)
diff --git a/src/api/url.js b/src/api/url.js
index 5f8f97d..8849e20 100644
--- a/src/api/url.js
+++ b/src/api/url.js
@@ -1,4 +1,10 @@
const url = {
+ "selectAllPlan": "/plan/selectAllPlan",//鏌ヨ鎵�鏈夋楠岃鍒�
+ "choosecheck": "/plan/choosecheck",//鍒嗛厤--閫夋嫨妫�楠屼汉
+ "chooseinstum": "/plan/chooseinstum",//鍒嗛厤--閫夋嫨璁惧
+ "reported": "/plan/reported",//涓婃姤
+ "distribution": "/plan/distribution",//鍒嗛厤
+ "check": "/plan/check",//妫�楠�
}
export default function(Vue) {
diff --git a/src/api/util/requestUtil.js b/src/api/util/requestUtil.js
index dee7d95..3055a2f 100644
--- a/src/api/util/requestUtil.js
+++ b/src/api/util/requestUtil.js
@@ -15,6 +15,15 @@
data
})
}
+
+export function wpost(path, params) {
+ return request({
+ url: path,
+ method: 'post',
+ params
+ })
+}
+
export function postFile(path, data) {
return request({
url: path,
diff --git a/src/views/experiment/planAssignments/plan.vue b/src/views/experiment/planAssignments/plan.vue
index ee84390..c616156 100644
--- a/src/views/experiment/planAssignments/plan.vue
+++ b/src/views/experiment/planAssignments/plan.vue
@@ -17,11 +17,11 @@
margin: 10px;
padding: 15px;
background-color: white;
- height: calc(100vh - 15vh);
+ height: calc(100vh - 18vh);
overflow-y: auto;
}
- .order_num{
+ .order_num {
border-radius: 1rem;
width: 35px;
height: 25px;
@@ -56,41 +56,77 @@
<el-button size="small">閲嶇疆</el-button>
</div>
<div class="thing">
- <el-table :data="tableData" style="width: 100%;" row-key="id" default-expand-all
+ <el-table :data="tableData" style="width: 100%;" row-key="code" default-expand-all
:tree-props="{children: 'children', hasChildren: 'hasChildren'}" :key="upIndex">
<el-table-column type="index" width="50" label="搴忓彿">
</el-table-column>
- <el-table-column prop="date" label="鐢宠鍗曞彿">
+ <el-table-column prop="code" label="鐢宠鍗曞彿" width="200px">
<template slot-scope="scope">
<div style="display: flex;">
- <div v-if="scope.row.code=='01'" style="color: #3caaff;background-color: #eff5ff;" class="order_num">01</div>
- <div v-else-if="scope.row.code=='02'" style="color: #57c981;background-color: #f1fbf4;" class="order_num">02</div>
- <div v-else-if="scope.row.code=='03'" style="color: #dfa8fb;background-color: #faf2ff;" class="order_num">03</div>
- <div>{{scope.row.date}}</div>
+ <div v-if="scope.row.orderNum=='01'" style="color: #3caaff;background-color: #eff5ff;" class="order_num">
+ 01
+ </div>
+ <div v-else-if="scope.row.orderNum=='02'" style="color: #57c981;background-color: #f1fbf4;"
+ class="order_num">
+ 02</div>
+ <div v-else-if="scope.row.orderNum=='03'" style="color: #dfa8fb;background-color: #faf2ff;"
+ class="order_num">
+ 03</div>
+ <div>{{scope.row.code}}</div>
</div>
</template>
</el-table-column>
- <el-table-column prop="name" label="妫�楠岀粨鏋�">
+ <el-table-column prop="name" label="鍚嶇О">
</el-table-column>
- <el-table-column prop="address" label="鍦板潃">
+ <el-table-column prop="unit" label="鍗曚綅">
</el-table-column>
- <el-table-column label="鎿嶄綔" width="80">
+ <el-table-column prop="required" label="瑕佹眰鍊�">
+ </el-table-column>
+ <el-table-column prop="internal" label="鍐呮帶鍊�">
+ </el-table-column>
+ <el-table-column prop="testValue" label="妫�楠屽��">
+ </el-table-column>
+ <el-table-column prop="checker" label="鎵ц浜�">
+ </el-table-column>
+ <el-table-column prop="instrumentname" label="妫�楠屾棩鏈�">
+ </el-table-column>
+ <el-table-column prop="testState" label="妫�楠岀姸鎬�">
<template slot-scope="scope">
- <el-button size="mini" type="primary" v-if="isIfReport(scope.row)">涓婃姤</el-button>
- <el-button size="mini" type="warning" @click="openUpDia(scope.row)"
- v-else-if="scope.row.code=='03'&&scope.row.insId==undefined&&scope.row.address==null">鍒嗛厤</el-button>
- <el-button size="mini" type="success" @click="openUpInsDia(scope.row)"
- v-else-if="scope.row.code=='03'&&scope.row.insId==undefined&&scope.row.name==null">妫�楠�</el-button>
+ <el-tag type="success" v-if="scope.row.testState==1">鍚堟牸</el-tag>
+ <el-tag type="danger" v-else-if="scope.row.testState==0">涓嶅悎鏍�</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column prop="startTime" label="妫�楠屽紑濮�" width="100px">
+ </el-table-column>
+ <el-table-column prop="endTime" label="妫�楠岀粨鏉�" width="100px">
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" width="150">
+ <template slot-scope="scope">
+ <el-button size="mini" type="primary" v-if="isIfReport(scope.row)"
+ @click="addReported(scope.row.id)">涓婃姤</el-button>
+ <el-button size="mini" type="text" @click="openUpDia(scope.row)"
+ v-if="scope.row.orderNum=='02'">鍒嗛厤</el-button>
+ <el-button size="mini" type="text" @click="openUpInsDia(scope.row)"
+ v-if="scope.row.orderNum=='02'">妫�楠�</el-button>
</template>
</el-table-column>
</el-table>
</div>
<el-dialog title="鍒嗛厤璁惧鍜屼汉鍛�" :visible.sync="upDia" width="500px" top="30vh">
<div class="body">
- <el-row style="line-height: 46px;">
+ <el-row style="line-height: 50px;">
<el-col :span="4" style="font-size: 14px;text-align: right;">浜哄憳:</el-col>
<el-col :span="16" :offset="1">
- <el-input v-model="upData.address" size="small" clearable></el-input>
+ <el-select v-model="upData.checker" size="medium" clearable style="width: 100%;">
+ <el-option v-for="(a, ai) in users" :key="ai" :label="a.name" :value="a.id"></el-option>
+ </el-select>
+ </el-col>
+ </el-row>
+ <el-row style="line-height: 50px;">
+ <el-col :span="4" style="font-size: 14px;text-align: right;">璁惧:</el-col>
+ <el-col :span="16" :offset="1">
+ <el-cascader v-model="upData.device" :options="devices" size="medium" style="width: 100%;" clearable
+ :props="{label: 'name',value: 'id',emitPath: false}" :show-all-levels="false"></el-cascader>
</el-col>
</el-row>
</div>
@@ -102,29 +138,37 @@
<el-dialog title="妫�楠�" :visible.sync="upInsDia" width="500px">
<div class="body" style="max-height: 50vh;overflow-y: auto;">
<el-row style="line-height: 46px;">
- <el-col :span="4" style="font-size: 14px;text-align: right;">鏍峰搧缂栫爜锛�</el-col>
- <el-col :span="8">{{upData.date}}</el-col>
- <el-col :span="4" style="font-size: 14px;text-align: right;">鏍峰搧鍚嶇О锛�</el-col>
- <el-col :span="8">{{upData.date}}</el-col>
+ <el-col :span="5" style="font-size: 14px;text-align: right;">鐢宠鍗曠紪鐮侊細</el-col>
+ <el-col :span="7">{{upData.insId}}</el-col>
+ <el-col :span="5" style="font-size: 14px;text-align: right;">鏍峰搧鍚嶇О锛�</el-col>
+ <el-col :span="7">{{upData.productName}}</el-col>
</el-row>
<el-row style="line-height: 46px;">
- <el-col :span="4" style="font-size: 14px;text-align: right;">妫�楠岄」鐩細</el-col>
- <el-col :span="8">{{upData.date}}</el-col>
- <el-col :span="4" style="font-size: 14px;text-align: right;">鍗曚綅锛�</el-col>
- <el-col :span="8">{{upData.date}}</el-col>
+ <el-col :span="5" style="font-size: 14px;text-align: right;">妫�楠岄」鐩細</el-col>
+ <el-col :span="7">{{upData.name}}</el-col>
+ <el-col :span="5" style="font-size: 14px;text-align: right;">鍗曚綅锛�</el-col>
+ <el-col :span="7">{{upData.unit}}</el-col>
</el-row>
<el-row style="line-height: 46px;">
- <el-col :span="4" style="font-size: 14px;text-align: right;">鏍囧噯鍊硷細</el-col>
- <el-col :span="8">{{upData.date}}</el-col>
- <el-col :span="4" style="font-size: 14px;text-align: right;">鍐呮帶鍊硷細</el-col>
- <el-col :span="8">{{upData.date}}</el-col>
+ <el-col :span="5" style="font-size: 14px;text-align: right;">鏍囧噯鍊硷細</el-col>
+ <el-col :span="7">{{upData.required}}</el-col>
+ <el-col :span="5" style="font-size: 14px;text-align: right;">鍐呮帶鍊硷細</el-col>
+ <el-col :span="7">{{upData.internal}}</el-col>
+ </el-row>
+ <el-row style="line-height: 46px;">
+ <el-col :span="5" style="font-size: 14px;text-align: right;">妫�楠岀姸鎬侊細</el-col>
+ <el-col :span="7">
+ <el-tag type="success" v-if="upData.testState==1">鍚堟牸</el-tag>
+ <el-tag type="danger" v-else-if="upData.testState==0">涓嶅悎鏍�</el-tag>
+ <el-tag type="info" v-else>鏃犵粨鏋�</el-tag>
+ </el-col>
</el-row>
<el-row style="line-height: 46px;">
<el-col style="text-align: right;"><el-button size="mini" @click="addRes">娣诲姞妫�楠屽��</el-button></el-col>
</el-row>
<el-row>
<el-col>
- <el-table :data="upData.res" border style="width: 99.9%;" :key="upIndex2">
+ <el-table :data="upData.testValue" border style="width: 99.9%;" :key="upIndex2">
<el-table-column type="index" width="100" label="搴忓彿">
</el-table-column>
<el-table-column label="妫�楠屽��">
@@ -137,7 +181,7 @@
<el-table-column label="鎿嶄綔" width="60">
<template slot-scope="scope">
<el-button size="mini" type="text"
- @click.native.prevent="deleteRow(scope.$index, upData.res)">鍒犻櫎</el-button>
+ @click.native.prevent="deleteRow(scope.$index, upData.testValue)">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
@@ -145,7 +189,7 @@
</el-row>
</div>
<span slot="footer" class="dialog-footer">
- <el-button type="primary" @click="submitUpData">鎻� 浜�</el-button>
+ <el-button type="primary" @click="submitUpData2">鎻� 浜�</el-button>
<el-button @click="upInsDia = false">鍙� 娑�</el-button>
</span>
</el-dialog>
@@ -153,6 +197,12 @@
</template>
<script>
+ import {
+ get,
+ post,
+ wpost,
+ postFile
+ } from "@/api/util/requestUtil.js"
export default {
data() {
return {
@@ -161,125 +211,137 @@
date: [],
userName: null,
},
- tableData: [{
- id: 1,
- insId: 123,
- date: '2016-05-02',
- name: null,
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
- children: [{
- id: 33,
- date: '2016-05-01',
- name: null,
- res: '[{"number": 1},{"number": 2}]',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�'
- }, {
- id: 34,
- date: '2016-05-01',
- name: null,
- res: '[{"number": 1,"res": "涓嶅悎鏍�"},{"number": 3,"res": "涓嶅悎鏍�"}]',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�',
- children: [{
- id: 35,
- date: 'hhh',
- name: null,
- res: '[{"number": 1},{"number": 2}]',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�'
- }]
- }]
- }, {
- id: 2,
- insId: 123,
- date: '2016-05-04',
- name: null,
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�',
- children: []
- }, {
- id: 3,
- insId: 123,
- date: '2016-05-01',
- children: [{
- id: 31,
- date: '2016-05-01',
- name: null,
- res: '[{"number": 1},{"number": 2}]',
- address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�'
- }, {
- id: 32,
- date: '2016-05-01',
- name: null,
- res: '[]',
- address: null
- }]
- }],
+ tableData: [],
upDia: false,
upData: {},
upIndex: 0,
upInsDia: false,
- upIndex2: 0
+ upIndex2: 0,
+ users: [],
+ devices: []
}
},
mounted() {
this.selectDataList()
+ this.getUsers()
+ this.getDevices()
},
methods: {
selectDataList() {
- this.tableData.forEach(a => {
- a.code = '01'
- if (a.children != undefined) {
- a.children.forEach(b => {
- b.code = '02'
- if (b.children != undefined) {
- b.children.forEach(c => {
- c.code = '03'
- c.res = JSON.parse(c.res)
- })
- }
- })
- }
+ get(this.$url.selectAllPlan).then(res => {
+ this.tableData = JSON.parse(JSON.stringify(res.data).replaceAll('pid', 'code').replaceAll('samplename',
+ 'name').replaceAll('inspectionStatus', 'testState'))
+ this.tableData.forEach(a => {
+ a.orderNum = '01'
+ if (a.children != undefined) {
+ a.children.forEach(b => {
+ b.orderNum = '02'
+ if (b.testValue == undefined) {
+ b.testValue = []
+ }
+ })
+ }
+ })
+ this.upIndex++
})
- this.upIndex++
},
isIfReport(row) {
var count = 0
if (row.children == undefined) return false
row.children.forEach(a => {
- if (a.name != null && a.name != undefined) count++
+ if (a.testState != null && a.testState != undefined) count++
})
- return row.insId != undefined && count == row.children.length
+ return row.testState == undefined && row.orderNum == '01' && count == row
+ .children.length
},
openUpDia(row) {
this.upDia = true
this.upData = {
- id: row.id,
- address: row.address
+ id: row.code,
+ checker: null,
+ device: null
}
},
submitUpData() {
- this.tableData.forEach(a => {
- a.children.forEach(b => {
- if (b.id == this.upData.id) {
- b.address = this.upData.address
- }
- })
+ if (this.upData.checker == null || this.upData.checker == '') {
+ this.$message.error('浜哄憳鏈垎閰�')
+ return
+ } else if (this.upData.device == null || this.upData.device == '') {
+ this.$message.error('璁惧鏈垎閰�')
+ return
+ }
+ wpost(this.$url.distribution, {
+ id: this.upData.id,
+ userId: this.upData.checker,
+ instrumentId: this.upData.device
+ }).then(res => {
+ this.$message.success('鍒嗛厤鎴愬姛')
+ this.upDia = false
+ this.selectDataList()
})
- this.$message.success('淇敼鎴愬姛')
- this.upIndex++
- this.upDia = false
},
openUpInsDia(row) {
this.upInsDia = true
this.upData = this.HaveJson(row)
+ var str = []
+ JSON.parse('[' + this.upData.testValue + ']').forEach(a => {
+ str.push({
+ number: a
+ })
+ })
+ this.upData.testValue = this.HaveJson(str)
+ this.tableData.forEach(a => {
+ a.children.forEach(b => {
+ if (b.code == this.upData.code) {
+ this.upData.insId = a.code
+ this.upData.productName = a.name
+ }
+ })
+ })
},
deleteRow(index, rows) {
rows.splice(index, 1);
},
addRes() {
- this.upData.res.push({
+ this.upData.testValue.push({
"number": null
})
this.upIndex2++
+ },
+ getUsers() {
+ get(this.$url.choosecheck).then(res => {
+ this.users = res.data
+ })
+ },
+ getDevices() {
+ get(this.$url.chooseinstum).then(res => {
+ this.devices = res.data
+ })
+ },
+ addReported(id) {
+ wpost(this.$url.reported, {
+ id: id
+ }).then(res => {
+ this.$message.success('涓婃姤鎴愬姛')
+ this.selectDataList()
+ }).catch(e => {
+ this.$message.error('涓婃姤澶辫触')
+ })
+ },
+ submitUpData2() {
+ var data = []
+ this.upData.testValue.forEach(a => {
+ data.push(a.number)
+ })
+ wpost(this.$url.check, {
+ id: this.upData.code,
+ value: data.toString()
+ }).then(res => {
+ this.$message.success('鎻愪氦鎴愬姛')
+ this.upInsDia = false
+ this.selectDataList()
+ })
}
}
}
-</script>
+</script>
\ No newline at end of file
--
Gitblit v1.9.3