From a8fa33e79abe005353d7f152ef3ece820433f4f6 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 06 三月 2025 13:43:06 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev
---
src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue | 437 +++++++++++++++++++
src/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue | 142 ++++++
src/views/structural/capabilityAndLaboratory/capability/index.vue | 609 ++++++++++++++++++++++++++
src/api/structural/capability.js | 151 ++++++
4 files changed, 1,339 insertions(+), 0 deletions(-)
diff --git a/src/api/structural/capability.js b/src/api/structural/capability.js
new file mode 100644
index 0000000..7dc11ab
--- /dev/null
+++ b/src/api/structural/capability.js
@@ -0,0 +1,151 @@
+import request from '@/utils/request'
+
+// 鑾峰彇妫�楠岄」鐩弬鏁�
+export function selectItemParameterList(query) {
+ return request({
+ url: '/capacityScope/selectItemParameterList',
+ method: 'get',
+ params: query
+ })
+}
+// 鑾峰彇妫�娴嬪璞�
+export function selectTestObjectList(query) {
+ return request({
+ url: '/capacityScope/selectTestObjectList',
+ method: 'get',
+ params: query
+ })
+}
+// 鏂板妫�楠岄」鐩弬鏁�
+export function addItemParameter(query) {
+ return request({
+ url: '/capacityScope/addItemParameter',
+ method: 'post',
+ data: query
+ })
+}
+// 鍒犻櫎妫�楠岄」鐩弬鏁�
+export function delItemParameter(query) {
+ return request({
+ url: '/capacityScope/delItemParameter',
+ method: 'delete',
+ params: query
+ })
+}
+// 淇敼妫�楠岄」鐩弬鏁�
+export function upItemParameter(query) {
+ return request({
+ url: '/capacityScope/upItemParameter',
+ method: 'post',
+ data: query
+ })
+}
+// 鑾峰彇妫�楠屽璞℃爲
+export function getItemTree() {
+ return request({
+ url: '/capacityScope/getItemTree',
+ method: 'get'
+ })
+}
+// 鏂板妫�娴嬪璞�
+export function addTestObject(query) {
+ return request({
+ url: '/capacityScope/addTestObject',
+ method: 'post',
+ data: query
+ })
+}
+// 鍒犻櫎妫�娴嬪璞�
+export function delTestObject(query) {
+ return request({
+ url: '/capacityScope/delTestObject',
+ method: 'delete',
+ params: query
+ })
+}
+// 淇敼妫�娴嬪璞�
+export function upTestObject(query) {
+ return request({
+ url: '/capacityScope/upTestObject',
+ method: 'post',
+ data: query
+ })
+}
+// 鏌ヨ妫�楠屽璞$殑浜у搧缁存姢鍒楄〃
+export function selectProductListByObjectId(query) {
+ return request({
+ url: '/capacityScope/selectProductListByObjectId',
+ method: 'get',
+ params: query
+ })
+}
+// 鏂板浜у搧
+export function addProduct(query) {
+ return request({
+ url: '/capacityScope/addProduct',
+ method: 'post',
+ data: query
+ })
+}
+// 鍒犻櫎浜у搧
+export function delProduct(query) {
+ return request({
+ url: '/capacityScope/delProduct',
+ method: 'delete',
+ params: query
+ })
+}
+// 淇敼浜у搧
+export function upProduct(query) {
+ return request({
+ url: '/capacityScope/upProduct',
+ method: 'post',
+ data: query
+ })
+}
+// 鑾峰彇瀹為獙瀹ゅ悕绉�
+export function obtainItemParameterList() {
+ return request({
+ url: '/laboratoryScope/obtainItemParameterList',
+ method: 'get',
+ })
+}
+// 鏌ヨ鍘熷璁板綍妯℃澘鏋氫妇
+export function getStandardTemplate() {
+ return request({
+ url: '/StandardTemplate/getStandardTemplate',
+ method: 'get',
+ })
+}
+// 鏍规嵁浜у搧id鏌ヨ鍘傚瀵嗗害缁戝畾
+export function selectSupplierDensityByProductId(query) {
+ return request({
+ url: '/productSupplierDensity/selectSupplierDensityByProductId',
+ method: 'get',
+ params: query
+ })
+}
+// 鏂板浜у搧鍘傚瀵嗗害缁戝畾
+export function addProductSupplierDensity(query) {
+ return request({
+ url: '/productSupplierDensity/addProductSupplierDensity',
+ method: 'post',
+ data: query
+ })
+}
+// 淇敼浜у搧鍘傚瀵嗗害缁戝畾
+export function updateProductSupplierDensity(query) {
+ return request({
+ url: '/productSupplierDensity/updateProductSupplierDensity',
+ method: 'post',
+ data: query
+ })
+}
+// 鍒犻櫎浜у搧鍘傚瀵嗗害缁戝畾
+export function deleteProductSupplierDensity(query) {
+ return request({
+ url: '/productSupplierDensity/deleteProductSupplierDensity',
+ method: 'delete',
+ params: query
+ })
+}
diff --git a/src/views/structural/capabilityAndLaboratory/capability/index.vue b/src/views/structural/capabilityAndLaboratory/capability/index.vue
new file mode 100644
index 0000000..5394e0b
--- /dev/null
+++ b/src/views/structural/capabilityAndLaboratory/capability/index.vue
@@ -0,0 +1,609 @@
+<template>
+ <div class="capacity-scope">
+ <div>
+ <el-row class="title">
+ <el-col :span="12" style="text-align: left">
+ <el-radio-group v-model="radio" size="medium" fill="#409EFF" @change="refreshTable">
+ <el-radio-button :label="0">妫�楠岄」鐩弬鏁�</el-radio-button>
+ <el-radio-button :label="1">妫�楠屽璞�</el-radio-button>
+ </el-radio-group>
+ </el-col>
+ <el-col :span="12" style="text-align: right;">
+ <el-upload v-if="radio === 0" ref='upload1'
+ style="display: inline;margin-right: 8px"
+ :action="uploadAction1"
+ :before-upload="beforeUpload1" :headers="token" :on-error="onError1"
+ :on-success="handleSuccessUp1" :show-file-list="false" accept='.doc,.docx,.xls,.xlsx'>
+ <el-button size="small" type="primary">瀵煎叆</el-button>
+ </el-upload>
+ <el-button size="small" type="primary" v-if="radio === 1" @click="uploadDia = true">瀵煎叆</el-button>
+ <el-button size="small" type="primary" @click="openAdd()">鏂板</el-button>
+ </el-col>
+ </el-row>
+ </div>
+ <div>
+ <el-form :model="itemParameterForm" ref="itemParameterForm" size="small" :inline="true">
+ <el-form-item label="妫�楠岄」" prop="inspectionItem" v-if="radio===0">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="itemParameterForm.inspectionItem" @keyup.enter.native="refreshTable()">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="妫�楠屽瓙椤�" prop="inspectionItemSubclass" v-if="radio===0">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="itemParameterForm.inspectionItemSubclass" @keyup.enter.native="refreshTable()">
+ </el-input>
+ </el-form-item>
+ <el-form-item label="妫�楠屽璞�" prop="specimenName">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="itemParameterForm.specimenName" @keyup.enter.native="refreshTable()">
+ </el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">鏌� 璇�</el-button>
+ <el-button icon="el-icon-refresh" size="mini" @click="refresh">閲� 缃�</el-button>
+ </el-form-item>
+ </el-form>
+<!-- 妫�楠岄」鐩弬鏁拌〃鏍�-->
+ <div class="table" v-if="radio===0">
+ <lims-table :tableData="tableData" :column="column" key="tableData"
+ @pagination="pagination" :height="'calc(100vh - 290px)'"
+ :page="page" :tableLoading="tableLoading"></lims-table>
+ </div>
+<!-- 妫�楠屽璞¤〃鏍�-->
+ <div class="table" v-if="radio===1">
+ <lims-table :tableData="testObjectTableData" :column="testObjectColumn" key="testObjectTableData"
+ @pagination="pagination" :height="'calc(100vh - 290px)'"
+ :page="testObjectPage" :tableLoading="tableLoading"></lims-table>
+ </div>
+ </div>
+ <!--浜у搧缁存姢寮规-->
+ <el-dialog title="浜у搧缁存姢" :visible.sync="diaProduct" width="900px">
+ <lims-table :tableData="productData" :column="productColumn" height="460"
+ :page="productPage" :tableLoading="productableLoading"></lims-table>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="diaProduct = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="editProduct('add')" :loading="productLoad">鏂� 澧�</el-button>
+ </span>
+ </el-dialog>
+ <!--浜у搧缁存姢缂栬緫-->
+ <el-dialog title="鎿嶄綔浜у搧缁存姢" :visible.sync="productEditDia" width="400px">
+ <el-form :model="productEditForm" ref="productEditForm" :rules="productRules" label-position="right" label-width="100px">
+ <el-form-item label="浜у搧鍚嶇О" prop="name">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="productEditForm.name"></el-input>
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇ОEN" prop="nameEn">
+ <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="productEditForm.nameEn">
+ </el-input>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeProduct">鍙� 娑�</el-button>
+ <el-button :loading="uploading" type="primary" @click="submitProduct">纭� 璁�</el-button>
+ </span>
+ </el-dialog>
+ <el-dialog :visible.sync="uploadDia" title="鏁版嵁瀵煎叆" width="500px">
+ <div style="margin: 0 auto;">
+ <el-upload ref="upload" :action="uploadAction"
+ :auto-upload="false" :file-list="fileList"
+ :headers="token" :limit="1"
+ :on-change="beforeUpload" :on-error="onError" :on-success="onSuccess" accept=".xlsx" drag
+ name="file">
+ <i class="el-icon-upload"></i>
+ <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+ </el-upload>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="uploadDia = false">鍙� 娑�</el-button>
+ <el-button :loading="uploading" type="primary" @click="submitUpload()">涓� 浼�</el-button>
+ </span>
+ </el-dialog>
+ <!--妫�楠岄」鐩弬鏁�-缂栬緫寮规-->
+ <EditForm ref="editForm" @refreshList="refreshList1"></EditForm>
+ <testObjectEditForm ref="testObjectEditForm" @refreshList="refreshList"></testObjectEditForm>
+ </div>
+</template>
+
+<script>
+import {
+ addProduct,
+ delItemParameter, delProduct, delTestObject, selectItemParameterList, selectProductListByObjectId,
+ selectTestObjectList, upProduct,
+} from "@/api/structural/capability";
+import limsTable from "@/components/Table/lims-table.vue";
+import EditForm from "@/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue";
+import testObjectEditForm from "@/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue";
+import {getToken} from "@/utils/auth";
+import { obtainItemParameterList } from '@/api/structural/laboratoryScope'
+
+export default {
+ components: {limsTable, EditForm, testObjectEditForm},
+ data() {
+ return {
+ uploadAction: process.env.VUE_APP_BASE_API + '/capacityScope/importExcel',
+ uploadAction1: process.env.VUE_APP_BASE_API + '/capacityScope/importEquipData',
+ tableData: [],
+ tableLoading: false,
+ column: [
+ {label: '妫�楠岄」', prop: 'inspectionItem'},
+ {label: '妫�楠岄」EN', prop: 'inspectionItemEn'},
+ {label: '妫�楠屽瓙椤�', prop: 'inspectionItemSubclass'},
+ {label: '妫�楠屽瓙椤笶N', prop: 'inspectionItemSubclassEn'},
+ {label: '妫�楠岄」鍒嗙被', prop: 'inspectionItemClass'},
+ {label: '妫�楠岄」鍒嗙被EN', prop: 'inspectionItemClassEn'},
+ {label: '妫�楠屽璞�', prop: 'sample'},
+ {label: '鍗曚环(鍏�)', prop: 'price'},
+ {label: '璇曢獙瀹�', prop: 'sonLaboratory'},
+ {label: '瑕佹眰鎻忚堪', prop: 'askTell'},
+ {label: '瑕佹眰鍊�', prop: 'ask'},
+ {label: '璁¢噺鍗曚綅', prop: 'unit'},
+ {label: '宸ユ椂(H)', prop: 'manHour'},
+ {label: '棰勮鏃堕棿(H)', prop: 'manDay'},
+ {label: '宸ユ椂鍒嗙粍', prop: 'manHourGroup'},
+ {label: '鍒涘缓鏃堕棿', prop: 'createTime'},
+ {label: '淇敼鏃堕棿', prop: 'updateTime'},
+ {label: '鏉′欢', prop: 'radiusList'},
+ {
+ dataType: 'action',
+ fixed: 'right',
+ label: '鎿嶄綔',
+ width: '140px',
+ operation: [
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.editForm(row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ clickFun: (row) => {
+ this.delete(row);
+ },
+ },
+ ]
+ }
+ ],
+ page: {
+ total:0,
+ size:10,
+ current:1
+ },
+ testObjectTableData: [],
+ testObjectColumn: [
+ {
+ dataType: 'tag',
+ label: '鍦烘墍',
+ prop: 'laboratoryId',
+ minWidth: '130',
+ formatData: (params) => {
+ let index = this.laboratoryList.findIndex(item => item.value == params)
+ if(index > -1) {
+ return this.laboratoryList[index].label
+ }else {
+ return null
+ }
+ // if (params == 1) {
+ // return '瑁呭鐢电紗璇曢獙瀹�'
+ // } else if (params == 5) {
+ // return '閫氫俊浜у搧瀹為獙瀹�'
+ // } else if (params == 6) {
+ // return '鐢靛姏浜у搧瀹為獙瀹�'
+ // } else if (params == 8) {
+ // return '鍌ㄨ兘浜у搧瀹為獙瀹�'
+ // } else {
+ // return '灏勯绾跨紗瀹為獙瀹�'
+ // }
+ },
+ formatType: (params) => {
+ if (params == 1) {
+ return 'success'
+ } else if (params == 5) {
+ return 'info'
+ } else if (params == 6) {
+ return 'warning'
+ } else if (params == 8) {
+ return 'danger'
+ } else {
+ return null
+ }
+ }
+ },
+ {label: '妫�楠屽璞�', prop: 'specimenName'},
+ {label: '妫�楠屽璞N', prop: 'specimenNameEn'},
+ {label: '浜у搧', prop: 'product'},
+ {label: '瀵硅薄浠e彿', prop: 'code'},
+ {label: '瀵硅薄绫诲瀷', prop: 'objectType',
+ dataType: 'tag',
+ formatData: (params) => {
+ if (params == 1) {
+ return '鍘熸潗鏂�'
+ } else if (params == 2) {
+ return '鎴愬搧'
+ } else {
+ return '杈呮潗'
+ }
+ },
+ formatType: (params) => {
+ if (params == 1) {
+ return 'success'
+ } else if (params == 2) {
+ return 'info'
+ } else {
+ return 'warning'
+ }
+ }},
+ {label: '鍒涘缓浜�', prop: 'createUserName'},
+ {label: '鏇存柊浜�', prop: 'updateUserName'},
+ {label: '鍒涘缓鏃堕棿', prop: 'createTime'},
+ {label: '鏇存柊鏃堕棿', prop: 'updateTime'},
+ {
+ dataType: 'action',
+ fixed: 'right',
+ label: '鎿嶄綔',
+ width: '240px',
+ operation: [
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.editTestObjectForm(row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ clickFun: (row) => {
+ this.deleteTest(row);
+ },
+ },
+ {
+ name: '浜у搧缁存姢',
+ type: 'text',
+ clickFun: (row) => {
+ this.upProduct(row);
+ },
+ },
+ ]
+ }
+ ],
+ testObjectPage: {
+ total:0,
+ size:10,
+ current:0
+ },
+ addOrUpdate: '',
+ tree: null,
+ loading: true,
+ itemParameterForm: {
+ inspectionItem: null,
+ inspectionItemSubclass: null,
+ specimenName: null
+ },
+ radio: 0,
+ productLoad: false,
+ diaProduct: false,
+ productColumn: [
+ {label: '浜у搧鍚嶇О', prop: 'name'},
+ {label: '浜у搧鍚嶇ОEN', prop: 'nameEn'},
+ {
+ dataType: 'action',
+ label: '鎿嶄綔',
+ operation: [
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.editProduct('edit', row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ clickFun: (row) => {
+ this.deleteProduct(row);
+ },
+ },
+ ]
+ }
+ ],
+ productData: [],
+ productPage: {
+ total:0,
+ size:10,
+ current:0,
+ layout: 'total, prev, pager, next'
+ },
+ productableLoading: false,
+ productEditDia: false,
+ operationType: '',
+ productEditForm: {
+ objectId: '',
+ id: '',
+ name: '',
+ nameEn: ''
+ },
+ objectId: '',
+ productRules: {
+ name: [{ required: true, message: '璇峰~鍐欎骇鍝佸悕绉�', trigger: 'blur' }],
+ nameEn: [{ required: true, message: '璇峰~鍐欎骇鍝佸悕绉癊N', trigger: 'blur' }]
+ },
+ uploadDia: false,
+ fileList: [],
+ token: {Authorization: "Bearer " + getToken()},
+ uploading: false,
+ laboratoryList:[]
+ }
+ },
+ created() {
+ this.getItemParameterList()
+ this.refreshTable()
+ },
+ computed: {
+ title() {
+ return this.addOrUpdate === 1 ? '鏂板' : '缂栬緫'
+ }
+ },
+ methods: {
+ submitUpload() {
+ if (this.$refs.upload.uploadFiles.length === 0) {
+ this.$message.error('鏈�夋嫨鏂囦欢')
+ return
+ }
+ this.uploading = true
+ this.$refs.upload.submit();
+ },
+ onSuccess(response, file, fileList) {
+ this.$refs.upload.clearFiles()
+ this.uploadDia = false
+ this.uploading = false
+ if (response.code !== 200) {
+ this.$message.error(response.msg)
+ return
+ }
+ this.$message.success('涓婁紶鎴愬姛')
+ this.productList = []
+ this.refreshTable()
+ },
+ onError(err, file, fileList) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload.clearFiles()
+ this.uploading = false
+ },
+ beforeUpload(file, fileList) {
+ if (file.size > 1024 * 1024 * 10) {
+ this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+ this.$refs.upload.clearFiles()
+ return false;
+ } else {
+ return true;
+ }
+ },
+ onError1(err, file, fileList) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload1.clearFiles()
+ this.uploading = false
+ },
+ beforeUpload1(file, fileList) {
+ if (file.size > 1024 * 1024 * 10) {
+ this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+ this.$refs.upload1.clearFiles()
+ return false;
+ } else {
+ return true;
+ }
+ },
+ handleSuccessUp1 (response, file, fileList) {
+ this.$refs.upload1.clearFiles()
+ if (response.code !== 200) {
+ this.$message.error(response.msg)
+ return
+ }
+ this.$message.success('涓婁紶鎴愬姛')
+ this.refreshTable()
+ },
+ refreshList () {
+ this.refreshTable()
+ },
+ refreshList1 () {
+ this.refreshTable()
+ },
+ refreshTable() {
+ this.tableLoading = true
+ if (this.radio === 0) {
+ selectItemParameterList({...this.page, ...this.itemParameterForm}).then(res => {
+ this.tableLoading = false
+ if (res.code === 200) {
+ this.tableData = res.data.records
+ this.page.total = res.data.total
+ }
+ }).catch(err => {
+ this.tableLoading = false
+ })
+ } else {
+ selectTestObjectList({...this.testObjectPage, ...this.itemParameterForm}).then(res => {
+ this.tableLoading = false
+ if (res.code === 200) {
+ this.testObjectTableData = res.data.records
+ this.testObjectPage.total = res.data.total
+ }
+ }).catch(err => {
+ this.tableLoading = false
+ })
+ }
+ },
+ refresh() {
+ this.resetForm('itemParameterForm')
+ this.page.current = 1
+ this.refreshTable()
+ },
+ pagination (page) {
+ this.page.size = page.limit
+ this.refreshTable()
+ },
+ // 妫�楠岄」鐩弬鏁版柊澧�
+ openAdd() {
+ if (this.radio === 0) {
+ this.$refs.editForm.openDia('add')
+ } else {
+ this.$refs.testObjectEditForm.openDia('add')
+ }
+ },
+ // 妫�楠岄」鐩弬鏁�-鎵撳紑淇敼寮规
+ editForm (row) {
+ this.$refs.editForm.openDia('edit', row)
+ },
+ // 妫�楠岄」鐩弬鏁�-鍒犻櫎
+ delete (row) {
+ this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ delItemParameter({id:row.id}).then(res => {
+ if (res.code === 200) {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.refreshTable();
+ }
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ })
+ },
+ // 妫�楠屽璞�-鎵撳紑淇敼寮规
+ editTestObjectForm (row) {
+ this.$refs.testObjectEditForm.openDia('edit', row)
+ },
+ // 妫�楠岄」鐩弬鏁�-鍒犻櫎
+ deleteTest (row) {
+ this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ delTestObject({id:row.id}).then(res => {
+ if (res.code === 200) {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.refreshTable();
+ }
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ })
+ },
+ // 浜у搧缁存姢
+ upProduct(row) {
+ this.diaProduct = true
+ this.objectId = row.id
+ this.getProductList(row)
+ },
+ getProductList () {
+ const params = {
+ objectId: this.objectId,
+ }
+ this.productableLoading = true
+ selectProductListByObjectId({...params, ...this.productPage}).then(res => {
+ this.productableLoading = false
+ this.productData = res.data.records
+ this.productPage.total = res.data.total
+ }).catch(err => {
+ this.productableLoading = false
+ })
+ },
+ // 浜у搧缁存姢-鏂板-缂栬緫
+ editProduct (type, row) {
+ this.productEditDia = true
+ this.operationType = type
+ if (type === 'edit') {
+ this.productEditForm = this.HaveJson(row)
+ }
+ },
+ // 鎻愪氦浜у搧缁存姢淇敼
+ submitProduct () {
+ this.$refs['productEditForm'].validate((valid) => {
+ if (valid) {
+ this.uploading = true
+ this.productEditForm.objectId = this.objectId
+ if (this.operationType === 'add') {
+ addProduct(this.productEditForm).then(res => {
+ this.uploading = false
+ if (res.code === 200) {
+ this.$message.success('鏂板鎴愬姛')
+ this.closeProduct()
+ this.getProductList();
+ }
+ }).catch(err => {
+ this.uploading = false
+ })
+ } else {
+ upProduct(this.productEditForm).then(res => {
+ this.uploading = false
+ if (res.code === 200) {
+ this.$message.success('鏂板鎴愬姛')
+ this.closeProduct()
+ this.getProductList();
+ }
+ }).catch(err => {
+ this.uploading = false
+ })
+ }
+ }
+ })
+ },
+ closeProduct() {
+ this.resetForm('productEditForm')
+ this.productEditDia = false
+ },
+ // 浜у搧缁存姢-鍒犻櫎
+ deleteProduct (row) {
+ this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ delProduct({id:row.id}).then(res => {
+ if (res.code === 200) {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.getProductList();
+ }
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ })
+ },
+ getItemParameterList(){
+ obtainItemParameterList().then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.laboratoryName,
+ value: a.id
+ })
+ })
+ this.laboratoryList = data
+ })
+ }
+ }
+}
+</script>
+
+<style scoped>
+.capacity-scope {
+ padding: 20px;
+}
+.title {
+ height: 40px;
+ line-height: 40px;
+ margin-bottom: 10px;
+}
+</style>
diff --git a/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue b/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue
new file mode 100644
index 0000000..d902911
--- /dev/null
+++ b/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue
@@ -0,0 +1,437 @@
+<template>
+ <div>
+ <el-dialog :title="operationType === 'add' ? '鏂板' : '缂栬緫'" :visible.sync="editFormDia" width="60%" @close="closeDia">
+ <el-form ref="editForm" :model="editForm" :rules="editFormRules" label-width="140px">
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="妫�楠岄」锛�" prop="inspectionItem">
+ <el-input v-model="editForm.inspectionItem" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�楠岄」EN锛�" prop="inspectionItemEn">
+ <el-input v-model="editForm.inspectionItemEn" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="妫�楠屽瓙椤癸細" prop="inspectionItemSubclass">
+ <el-input v-model="editForm.inspectionItemSubclass" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�楠屽瓙椤笶N锛�" prop="inspectionItemSubclassEn">
+ <el-input v-model="editForm.inspectionItemSubclassEn" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="妫�楠屽璞★細" prop="sample">
+ <el-cascader v-model="editForm.sample" :options="itemParameterData.cascaderField.sample.tree"
+ :props="{value:'name',label:'name',checkStrictly: true, multiple: true}"
+ :show-all-levels="false" clearable
+ filterable placeholder="璇烽�夋嫨" size="small" style="width: 100%;"></el-cascader>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍗曚环(鍏�)锛�" prop="price">
+ <el-input v-model="editForm.price" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="鍦烘墍锛�" prop="laboratory">
+ <el-select v-model="editForm.laboratory" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in laboratoryList" :key="item.label" :label="item.label" :value="item.label"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="璇曢獙瀹わ細" prop="sonLaboratory">
+ <el-select v-model="editForm.sonLaboratory" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in dict.type.sys_sub_lab" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="瑕佹眰鎻忚堪锛�" prop="askTell">
+ <el-input v-model="editForm.askTell" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="瑕佹眰鍊硷細" prop="ask">
+ <el-input v-model="editForm.ask" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="璁¢噺鍗曚綅锛�" prop="unit">
+ <el-select v-model="editForm.unit" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in dict.type.sys_unit" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="宸ユ椂(H)锛�" prop="manHour">
+ <el-input v-model="editForm.manHour" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="棰勮鏃堕棿(H)锛�" prop="manDay">
+ <el-input v-model="editForm.manDay" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="宸ユ椂鍒嗙粍锛�" prop="manHourGroup">
+ <el-input v-model="editForm.manHourGroup" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="妫�楠岄」绫诲瀷锛�" prop="inspectionItemType">
+ <el-select v-model="editForm.inspectionItemType" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in dict.type.inspection_item_type" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�楠屽�肩被鍨嬶細" prop="inspectionValueType">
+ <el-select v-model="editForm.inspectionValueType" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in dict.type.inspection_value_type" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="鐗规畩鏍囪瘑锛�" prop="bsm">
+ <el-select v-model="editForm.bsm" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in dict.type.inspection_bsm" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍘熷璁板綍妯℃澘锛�" prop="templateId">
+ <el-select v-model="editForm.templateId" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in templateIdList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="妫�楠岄」鍒嗙被锛�" prop="inspectionItemClass">
+ <el-input v-model="editForm.inspectionItemClass" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�楠岄」鍒嗙被EN锛�" prop="inspectionItemClassEn">
+ <el-input v-model="editForm.inspectionItemClassEn" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="璇曢獙鏂规硶锛�" prop="method">
+ <el-select v-model="editForm.method" clearable multiple placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in methodList" :key="item.value" :label="item.label" :value="item.label"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏉′欢锛�" prop="radiusList">
+ <el-select v-model="editForm.radiusList" allow-create default-first-option filterable multiple
+ placeholder="璇烽�夋嫨"
+ size="small"
+ style="width: 100%">
+ <el-option v-for="item in radiusListList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="鏀惰垂鏍囧噯(鍏�/娆�)锛�" prop="rates">
+ <el-input v-model="editForm.rates" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+<!-- <el-col :span="12">-->
+<!-- <el-form-item label="瀛楀吀绫诲瀷锛�" prop="dic">-->
+<!-- <el-select v-model="editForm.dic" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">-->
+<!-- <el-option v-for="item in dicList" :key="item.value" :label="item.label" :value="item.value"></el-option>-->
+<!-- </el-select>-->
+<!-- </el-form-item>-->
+<!-- </el-col>-->
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDia">鍙� 娑�</el-button>
+ <el-button :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+
+import {
+ addItemParameter,
+ getItemTree,
+ getStandardTemplate,
+ obtainItemParameterList,
+ upItemParameter
+} from "@/api/structural/capability";
+import {selectStandardMethods} from "@/api/standard/standardLibrary";
+
+export default {
+ name: "EditForm",
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ dicts: ['sys_sub_lab', 'inspection_item_type', 'sys_unit', 'inspection_value_type', 'inspection_bsm'],
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ editFormDia: false,
+ editLoad: false,
+ editForm: {
+ inspectionItem: '', // 妫�楠岄」
+ inspectionItemEn: '', // 妫�楠岄」EN
+ inspectionItemSubclass: '', // 妫�楠屽瓙椤�
+ inspectionItemSubclassEn: '', // 妫�楠屽瓙椤笶N
+ sample: [], // 妫�楠屽璞�
+ price: '', // 鍗曚环
+ laboratory: '', // 鍦烘墍
+ sonLaboratory: '', // 璇曢獙瀹�
+ askTell: '', // 瑕佹眰鎻忚堪
+ ask: '', // 瑕佹眰鍊�
+ unit: '', // 璁¢噺鍗曚綅
+ manHour: '', // 宸ユ椂
+ manDay: '', // 棰勮鏃堕棿
+ manHourGroup: '', // 宸ユ椂鍒嗙粍
+ inspectionItemType: '', // 妫�楠岄」绫诲瀷
+ inspectionValueType: '', // 妫�楠屽�肩被鍨�
+ dic: '', // 瀛楀吀绫诲瀷
+ bsm: '', // 鐗规畩鏍囪瘑
+ templateId: '', // 鍘熷璁板綍妯℃澘
+ inspectionItemClass: '', // 妫�楠岄」鍒嗙被
+ inspectionItemClassEn: '', // 妫�楠岄」鍒嗙被EN
+ method: '', // 璇曢獙鏂规硶
+ radiusList: [], // 鏉′欢
+ rates: '', // 鏉′欢
+ },
+ sampleList: [], // 妫�楠屽璞′笅鎷夋
+ laboratoryList: [], // 鍦烘墍涓嬫媺妗�
+ inspectionItemTypeList: [], // 妫�楠岄」绫诲瀷涓嬫媺妗�
+ dicList: [], // 瀛楀吀绫诲瀷涓嬫媺妗�
+ templateIdList: [], // 鍘熷璁板綍妯℃澘涓嬫媺妗�
+ methodList: [], // 璇曢獙鏂规硶涓嬫媺妗�
+ radiusListList: [], // 鏉′欢涓嬫媺妗�
+ itemParameterData: {
+ cascaderField: {
+ sample: {
+ tree: []
+ },
+ }
+ },
+ editFormRules: {
+ inspectionItem: [
+ { required: true, message: '璇烽�夋嫨妫�楠岄」', trigger: 'change' }
+ ],
+ sonLaboratory: [
+ { required: true, message: '璇烽�夋嫨璇曢獙瀹�', trigger: 'change' }
+ ],
+ unit: [
+ { required: true, message: '璇烽�夋嫨璁¢噺鍗曚綅', trigger: 'change' }
+ ],
+ inspectionItemType: [
+ { required: true, message: '璇烽�夋嫨妫�楠岄」绫诲瀷', trigger: 'change' }
+ ],
+ inspectionValueType: [
+ { required: true, message: '璇烽�夋嫨妫�楠屽�肩被鍨�', trigger: 'change' }
+ ],
+ templateId: [
+ { required: true, message: '璇烽�夋嫨鍘熷璁板綍妯℃澘', trigger: 'change' }
+ ]
+ },
+ operationType: ''
+ }
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia (type, row) {
+ this.operationType = type
+ this.editFormDia = true
+ this.obtainItemParameterList() // 鍦烘墍绫诲瀷
+ this.getStandardTemplate() // 鍘熷璁板綍妯℃澘涓嬫媺妗�
+ this.getSelectStandardMethods() // 璇曢獙鏂规硶
+ this.selectTestObjectByName() // 妫�楠屽璞�
+ if (type === 'add') {
+ this.editForm = {
+ inspectionItem: '', // 妫�楠岄」
+ inspectionItemEn: '', // 妫�楠岄」EN
+ inspectionItemSubclass: '', // 妫�楠屽瓙椤�
+ inspectionItemSubclassEn: '', // 妫�楠屽瓙椤笶N
+ sample: [], // 妫�楠屽璞�
+ price: '', // 鍗曚环
+ laboratory: '', // 鍦烘墍
+ sonLaboratory: '', // 璇曢獙瀹�
+ askTell: '', // 瑕佹眰鎻忚堪
+ ask: '', // 瑕佹眰鍊�
+ unit: '', // 璁¢噺鍗曚綅
+ manHour: '', // 宸ユ椂
+ manDay: '', // 棰勮鏃堕棿
+ manHourGroup: '', // 宸ユ椂鍒嗙粍
+ inspectionItemType: '', // 妫�楠岄」绫诲瀷
+ inspectionValueType: '', // 妫�楠屽�肩被鍨�
+ dic: '', // 瀛楀吀绫诲瀷
+ bsm: '', // 鐗规畩鏍囪瘑
+ templateId: '', // 鍘熷璁板綍妯℃澘
+ inspectionItemClass: '', // 妫�楠岄」鍒嗙被
+ inspectionItemClassEn: '', // 妫�楠岄」鍒嗙被EN
+ method: '', // 璇曢獙鏂规硶
+ radiusList: [], // 鏉′欢
+ rates: '', // 鏉′欢
+ }
+ this.resetForm('editForm')
+ } else {
+ this.editForm = this.HaveJson(row)
+ this.editForm.sample = JSON.parse(this.editForm.sample)
+ this.editForm.radiusList = JSON.parse(this.editForm.radiusList)
+ this.editForm.method = JSON.parse(this.editForm.method)
+ }
+ },
+ // 鎻愪氦缂栬緫
+ handleEdit () {
+ this.$refs.editForm.validate(valid => {
+ if (valid) {
+ this.editLoad = true
+ let obj = this.HaveJson(this.editForm)
+ obj.method = JSON.stringify(obj.method)
+ obj.sample = JSON.stringify(obj.sample)
+ if (obj.radiusList?.length > 0) {
+ obj.radiusList = JSON.stringify(obj.radiusList)
+ } else {
+ obj.radiusList = null
+ }
+ if(obj.id){
+ // 淇敼
+ upItemParameter(obj).then(res => {
+ this.editLoad = false
+ if (res.code === 500) {
+ return
+ }
+ this.$message.success('淇敼鎴愬姛')
+ this.editFormDia = false
+ this.$emit('refreshList')
+ }).catch(e => {
+ this.editLoad = false
+ })
+ }else{
+ // 鏂板
+ addItemParameter(obj).then(res => {
+ this.editLoad = false
+ if (res.code === 500) {
+ return
+ }
+ this.$message.success('娣诲姞鎴愬姛')
+ this.editFormDia = false
+ this.$emit('refreshList')
+ }).catch(e => {
+ this.editLoad = false
+ })
+ }
+ }
+ })
+ },
+ // 鍏抽棴寮规
+ closeDia () {
+ this.editFormDia = false
+ this.resetForm("editForm");
+ },
+ selectTestObjectByName() {
+ getItemTree().then(res => {
+ if (res.data.length > 0) {
+ res.data.forEach(a=>{
+ this.cascaderFieldData(a)
+ })
+ this.itemParameterData.cascaderField.sample.tree = res.data
+ }
+ })
+ },
+ cascaderFieldData(val){
+ if(val.children === undefined) {
+ return
+ }else if(val.children.length==0){
+ val.label = val.name
+ val.value = val.id
+ delete val.children
+ }else{
+ val.label = val.name
+ val.value = val.id
+ val.children.forEach(a=>{
+ a.label = a.name
+ a.value = a.id
+ this.cascaderFieldData(a)
+ })
+ }
+ },
+ getSelectStandardMethods() {
+ selectStandardMethods().then(res => {
+ let data = []
+ if (res.data.length > 0) {
+ res.data.forEach(a => {
+ data.push({
+ label: a.code,
+ value: a.id,
+ })
+ })
+ this.methodList = data
+ }
+ })
+ },
+ obtainItemParameterList() {
+ obtainItemParameterList().then(res => {
+ let data = []
+ if (res.data.length > 0) {
+ res.data.forEach(a => {
+ data.push({
+ label: a.laboratoryName,
+ value: a.id
+ })
+ })
+ }
+ this.laboratoryList = data
+ })
+ },
+ getStandardTemplate() {
+ getStandardTemplate().then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.name,
+ value: a.id,
+ type: 'success'
+ })
+ })
+ this.templateIdList = data
+ })
+ },
+ },
+}
+</script>
+
+<style scoped>
+::v-deep .el-dialog__body {
+ height: 620px;
+ overflow-y: auto;
+}
+</style>
diff --git a/src/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue b/src/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue
new file mode 100644
index 0000000..e92119c
--- /dev/null
+++ b/src/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue
@@ -0,0 +1,142 @@
+<template>
+ <div>
+ <el-dialog :title="operationType === 'add' ? '鏂板' : '缂栬緫'" :visible.sync="editFormDia" width="500px" @close="closeDia">
+ <el-form ref="editForm" :model="editForm" :rules="editFormRules" label-width="120px" label-position="right">
+ <el-form-item label="鍦烘墍锛�" prop="laboratoryId">
+ <el-select v-model="editForm.laboratoryId" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in laboratoryList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="妫�楠屽璞★細" prop="specimenName">
+ <el-input v-model="editForm.specimenName" clearable size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="妫�楠屽璞N锛�" prop="specimenNameEn">
+ <el-input v-model="editForm.specimenNameEn" clearable size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="瀵硅薄浠e彿锛�" prop="code">
+ <el-input v-model="editForm.code" clearable size="small"></el-input>
+ </el-form-item>
+ <el-form-item label="瀵硅薄绫诲瀷锛�" prop="objectType">
+ <el-select v-model="editForm.objectType" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in dict.type.object_type" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDia">鍙� 娑�</el-button>
+ <el-button :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+
+import {obtainItemParameterList} from "@/api/structural/laboratoryScope";
+import {addTestObject, upTestObject} from "@/api/structural/capability";
+
+export default {
+ name: "EditForm",
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ dicts: ['object_type'],
+ components: {},
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ editFormDia: false,
+ editLoad: false,
+ editForm: {
+ id: '',
+ laboratoryId: '', // 鍦烘墍
+ specimenName: '', // 妫�楠屽璞�
+ specimenNameEn: '', // 妫�楠屽璞N
+ code: '', // 瀵硅薄浠e彿
+ objectType: '', // 瀵硅薄绫诲瀷
+ },
+ laboratoryList: [],
+ editFormRules: {
+ laboratoryId: [
+ { required: true, message: '璇烽�夋嫨鍦烘墍', trigger: 'change' }
+ ],
+ specimenName: [
+ { required: true, message: '璇疯緭鍏ユ楠屽璞�', trigger: 'blur' }
+ ],
+ code: [
+ { required: true, message: '璇疯緭鍏ュ璞′唬鍙�', trigger: 'blur' }
+ ],
+ },
+ operationType: ''
+ }
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia (type, row) {
+ this.operationType = type
+ this.obtainItemParameterList()
+ this.editFormDia = true
+ if (type === 'add') {
+ this.resetForm("editForm");
+ } else {
+ this.editForm = {...row}
+ }
+ },
+ // 鎻愪氦缂栬緫
+ handleEdit () {
+ this.$refs.editForm.validate(valid => {
+ if (valid) {
+ this.editLoad = true
+ if(this.editForm.id){
+ // 淇敼
+ upTestObject(this.editForm).then(res => {
+ this.editLoad = false
+ if (res.code === 500) {
+ return
+ }
+ this.$message.success('淇敼鎴愬姛')
+ this.closeDia()
+ this.$emit('refreshList')
+ }).catch(e => {
+ this.editLoad = false
+ })
+ }else{
+ // 鏂板
+ addTestObject(this.editForm).then(res => {
+ this.editLoad = false
+ if (res.code === 500) {
+ return
+ }
+ this.$message.success('娣诲姞鎴愬姛')
+ this.closeDia()
+ this.$emit('refreshList')
+ }).catch(e => {
+ this.editLoad = false
+ })
+ }
+ }
+ })
+ },
+ // 鍏抽棴寮规
+ closeDia () {
+ this.editFormDia = false
+ this.resetForm("editForm");
+ },
+ // 鑾峰彇鍦烘墍涓嬫媺妗嗙殑鍊�
+ obtainItemParameterList() {
+ obtainItemParameterList().then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.laboratoryName,
+ value: a.id
+ })
+ })
+ this.laboratoryList = data
+ })
+ },
+ },
+}
+</script>
+
+<style scoped>
+
+</style>
--
Gitblit v1.9.3