From cb2a01ee7dea28a2661720060b03c41dc372acb5 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期五, 01 八月 2025 11:53:16 +0800
Subject: [PATCH] 完善串口处理数据,数据选择
---
src/views/CNAS/resourceDemand/standardMaterialAccept/component/AddRecord.vue | 336 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 247 insertions(+), 89 deletions(-)
diff --git a/src/views/CNAS/resourceDemand/standardMaterialAccept/component/AddRecord.vue b/src/views/CNAS/resourceDemand/standardMaterialAccept/component/AddRecord.vue
index 1e54f5e..dc48446 100644
--- a/src/views/CNAS/resourceDemand/standardMaterialAccept/component/AddRecord.vue
+++ b/src/views/CNAS/resourceDemand/standardMaterialAccept/component/AddRecord.vue
@@ -1,103 +1,261 @@
<template>
- <el-dialog :visible.sync="dialogVisible" title="鏍囧噯鐗╄川楠屾敹璁板綍" width="70%">
- <!-- <el-steps :active="currentStep" finish-status="success">
- <el-step class="cursor-pointer" v-for="(item, index) in steps" :key="index" :title="item">
- </el-step>
- </el-steps> -->
-<!-- <el-form :model="model" label-width="140px" size="small">-->
-<!-- <Step1 :model.sync="model"></Step1>-->
-<!-- </el-form>-->
- <span slot="footer" class="dialog-footer">
- <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="submit">淇� 瀛�</el-button>
- </span>
- </el-dialog>
+ <el-dialog :visible.sync="dialogVisible" title="鏍囧噯鐗╄川楠屾敹璁板綍" width="72%" v-loading="loading">
+ <el-form :model="acceptance" ref="acceptance" label-width="140px" size="small">
+ <el-col :span="12">
+ <el-form-item label="鍘傚浠h〃" prop="producer">
+ <el-input v-model="acceptance.producer"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鐩稿叧闄勪欢" prop="file">
+ <div class="table-between">
+ <el-input v-model="acceptance.file" style="width: 80%;" disabled></el-input>
+ <el-upload
+ ref="upload"
+ style="float: right;"
+ :headers="uploadHeader"
+ :action="action"
+ :show-file-list="false"
+ :on-success="onSuccess"
+ >
+ <el-button type="primary">
+ 闄勪欢涓婁紶
+ </el-button>
+ </el-upload>
+ </div>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鎺ユ敹浜�" prop="recipient">
+ <el-input v-model="acceptance.recipient"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鎺ュ彈绛惧瓧" prop="signature">
+ <el-input v-model="acceptance.signature"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="楠屾敹鎯呭喌" prop="situation">
+ <el-input v-model="acceptance.situation"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="瀹夎璋冭瘯鎯呭喌" prop="installation">
+ <el-input v-model="acceptance.installation"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="娓呭崟" prop="substanceId"
+ :rule="[{ required: true, message: '璇烽�夋嫨娓呭崟', trigger: 'change' }]">
+ <el-select v-model="acceptance.substanceId" placeholder="璇烽�夋嫨" style="width: 100%">
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍒拌揣鏃ユ湡" prop="arriveDate">
+ <el-date-picker
+ v-model="acceptance.arriveDate"
+ align="right"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ style="width: 100%"
+ value-format="yyyy-MM-dd"
+ >
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="缁翠慨鍗曚綅" prop="maintenanceUnit">
+ <el-input v-model="acceptance.maintenanceUnit"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="澶囦欢纭">
+ <el-button type="primary" style="float: right;" @click="addSpareTable">澧炲姞琛�</el-button>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <lims-table :tableData="list" :column="spareColumns" height="300">
+ <template slot="name" slot-scope="{ row, index }">
+ <el-input v-if="row.isEdit" size="small" v-model="row.name"></el-input>
+ <span v-else>{{ row.name }}</span>
+ </template>
+ <template slot="number" slot-scope="{ row, index }">
+ <el-input v-if="row.isEdit" size="small" v-model="row.number"></el-input>
+ <span v-else>{{ row.number }}</span>
+ </template>
+ <template slot="action" slot-scope="{ row, index }">
+ <div v-if="row.isEdit">
+ <el-button type="text" @click="save(index)">淇濆瓨</el-button>
+ <el-button type="text">鍙栨秷</el-button>
+ </div>
+ <div v-else>
+ <el-button type="text" @click="edit(index)">淇敼</el-button>
+ </div>
+ </template>
+ </lims-table>
+ </el-col>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDialog">鍙� 娑�</el-button>
+ <el-button type="primary" :loading="submitLoading" @click="submit">淇� 瀛�</el-button>
+ </span>
+ </el-dialog>
</template>
<script>
-// import Step1 from './Step/Step1.vue'
+import limsTable from "@/components/Table/lims-table.vue";
+import {
+ addAcceptance, getAcceptanceDetails,
+ getStandardSubstanceAll,
+ updateAcceptance
+} from "@/api/cnas/resourceDemand/standardMaterialAccept/standardMaterialAccept";
export default {
- components: {
- // Step1
- },
- data() {
- return {
- dialogVisible: false,
- currentStep: 0, // 姝ラ鏉℃樉绀虹鍑犳
- // steps: ['鎻愪氦', '寮�绠遍獙鏀跺鏍�', '瀹夎楠屾敹妫�鏌�', '瀹夎楠屾敹澶嶆牳', '楠屾敹鏍告煡', '楠屾敹鏍告煡瀹℃牳'],
- model: {
- acceptance: {
- id: undefined,
- producer: undefined, // 鍘傚浠h〃
- file: undefined, // 鐩稿叧闄勪欢
- recipient: undefined, // 鎺ユ敹浜�
- signature: undefined, // 鎺ュ彈绛惧瓧
- situation: undefined, // 楠屾敹鎯呭喌
- installation: undefined, // 瀹夎璋冭瘯鎯呭喌
- substanceId: undefined, // 娓呭崟
- arriveDate: undefined, // 鍒拌揣鏃ユ湡
- maintenanceUnit: undefined, // 缁翠慨鍗曚綅
- },
- list: []
- }
+ components: {
+ limsTable,
+ },
+ data() {
+ return {
+ dialogVisible: false,
+ loading: false,
+ submitLoading: false,
+ acceptance: {
+ id: undefined,
+ producer: undefined, // 鍘傚浠h〃
+ file: undefined, // 鐩稿叧闄勪欢
+ recipient: undefined, // 鎺ユ敹浜�
+ signature: undefined, // 鎺ュ彈绛惧瓧
+ situation: undefined, // 楠屾敹鎯呭喌
+ installation: undefined, // 瀹夎璋冭瘯鎯呭喌
+ substanceId: undefined, // 娓呭崟
+ arriveDate: undefined, // 鍒拌揣鏃ユ湡
+ maintenanceUnit: undefined, // 缁翠慨鍗曚綅
+ list: [],
+ },
+ list: [],
+ spareColumns: [
+ {
+ label: "鍚嶇О",
+ prop: "name",
+ align: "center",
+ dataType: "slot",
+ slot: "name",
+ }, {
+ label: "鏁伴噺",
+ prop: "number",
+ align: "center",
+ dataType: "slot",
+ slot: "number",
+ }, {
+ label: "鎿嶄綔",
+ align: "center",
+ dataType: "slot",
+ slot: "action",
+ width: 150
}
- },
- watch: {
- model(newVal) {
- this.model = newVal
- }
- },
- methods: {
- clearForm() {
- this.model.acceptance.id = undefined
- this.model.acceptance.producer = undefined
- this.model.acceptance.file = undefined
- this.model.acceptance.recipient = undefined
- this.model.acceptance.signature = undefined
- this.model.acceptance.situation = undefined
- this.model.acceptance.installation = undefined
- this.model.acceptance.substanceId = undefined
- this.model.acceptance.arriveDate = undefined
- this.model.acceptance.maintenanceUnit = undefined
- this.model.list = []
- },
- openDialog(form) {
- console.log(form)
- if(form) {
- this.model.acceptance.id = form.acceptance.id
- this.model.acceptance.producer = form.acceptance.producer
- this.model.acceptance.file = form.acceptance.file
- this.model.acceptance.recipient = form.acceptance.recipient
- this.model.acceptance.signature = form.acceptance.signature
- this.model.acceptance.situation = form.acceptance.situation
- this.model.acceptance.installation = form.acceptance.installation
- this.model.acceptance.substanceId = form.acceptance.substanceId
- this.model.acceptance.arriveDate = form.acceptance.arriveDate
- this.model.acceptance.maintenanceUnit = form.acceptance.maintenanceUnit
- this.model.list = form.list
- } else {
- this.clearForm()
- }
- this.dialogVisible = true
- },
- closeDialog() {
- this.dialogVisible = false
- },
- submit() {
- if (!this.model.acceptance.substanceId) {
- this.$message.warning('璇烽�夋嫨娓呭崟')
- return
- }
- this.$emit('submit', this.model)
- this.closeDialog()
- }
+ ],
+ options: []
}
+ },
+ mounted() {
+ this.getStand()
+ },
+ methods: {
+ openDialog(id) {
+ if(id) {
+ this.getDetail(id)
+ } else {
+ this.clearForm()
+ }
+ this.dialogVisible = true
+ },
+ getDetail(id) {
+ this.loading = true
+ getAcceptanceDetails({id: id}).then(res => {
+ this.acceptance = res.data.acceptance
+ this.list = res.data.list
+ this.loading = false
+ }).catch(err => {
+ this.loading = false
+ })
+ },
+ getStand() {
+ getStandardSubstanceAll().then(res => {
+ this.options = res.data
+ })
+ },
+ addSpareTable() {
+ this.list.push({
+ acceptanceId: this.acceptance.id,
+ name: '',
+ number: '',
+ isEdit: true
+ })
+ },
+ onSuccess(response) {
+ this.acceptance.file = response.data
+ },
+ save(index) {
+ this.$set(this.list[index], 'isEdit', false)
+ },
+ edit(index) {
+ this.$set(this.list[index], 'isEdit', true)
+ },
+ clearForm() {
+ this.list = []
+ this.resetForm('acceptance')
+ },
+ closeDialog() {
+ this.clearForm()
+ this.resetForm('acceptance')
+ this.dialogVisible = false
+ },
+ submit() {
+ if (!this.acceptance.substanceId) {
+ this.$message.warning('璇烽�夋嫨娓呭崟')
+ return
+ }
+ this.acceptance.list = this.HaveJson(this.list)
+ this.submitLoading = true
+ if(this.acceptance.id) {
+ updateAcceptance({acceptance: this.acceptance, list: this.list}).then(res => {
+ this.$message.success('缂栬緫鎴愬姛')
+ this.submitLoading = false
+ this.closeDialog()
+ this.$emit('submit')
+ }).catch((e) => {
+ this.submitLoading = false
+ })
+ } else {
+ addAcceptance({acceptance: this.acceptance, list: this.list}).then(res => {
+ this.$message.success('鏂板鎴愬姛')
+ this.closeDialog()
+ this.$emit('submit')
+ }).catch((e) => {
+ this.submitLoading = false
+ })
+ }
+ },
+ },
+ computed: {
+ action() {
+ return this.javaApi + '/personBasicInfo/saveCNASFile'
+ }
+ },
}
</script>
<style scoped>
-.cursor-pointer {
- cursor: pointer;
+>>>.el-dialog__body {
+ height: 580px;
+ overflow-y: auto;
}
</style>
--
Gitblit v1.9.3