From 9ae3620b9e59482b26b6cf4cd8f32a0ebf594b9a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 14 二月 2025 11:33:28 +0800
Subject: [PATCH] 能力范围页面迁移
---
/dev/null | 13
src/api/structural/standardMethod.js | 9
src/api/structural/laboratoryScope.js | 9
src/views/structural/capabilityAndLaboratory/laboratory/index.vue | 0
src/views/structural/capabilityAndLaboratory/capability/index.vue | 805 +++++++++++++++++++++++++++++++++++++++++++++++++++++
src/api/structural/capability.js | 41 ++
6 files changed, 864 insertions(+), 13 deletions(-)
diff --git a/src/api/structural/capability.js b/src/api/structural/capability.js
new file mode 100644
index 0000000..f094d4c
--- /dev/null
+++ b/src/api/structural/capability.js
@@ -0,0 +1,41 @@
+import request from '@/utils/request'
+
+// 鑾峰彇妫�楠岄」鐩弬鏁�
+export function selectItemParameterList(query) {
+ return request({
+ url: '/capacityScope/selectItemParameterList',
+ method: 'post',
+ params: query
+ })
+}
+// 鏂板妫�楠岄」鐩弬鏁�
+export function addItemParameter(query) {
+ return request({
+ url: '/capacityScope/addItemParameter',
+ method: 'post',
+ params: query
+ })
+}
+// 鍒犻櫎妫�楠岄」鐩弬鏁�
+export function delItemParameter(query) {
+ return request({
+ url: '/capacityScope/delItemParameter',
+ method: 'post',
+ params: query
+ })
+}
+// 淇敼妫�楠岄」鐩弬鏁�
+export function upItemParameter(query) {
+ return request({
+ url: '/capacityScope/upItemParameter',
+ method: 'post',
+ params: query
+ })
+}
+// 鑾峰彇妫�楠屽璞℃爲
+export function getItemTree() {
+ return request({
+ url: '/capacityScope/getItemTree',
+ method: 'get'
+ })
+}
diff --git a/src/api/structural/laboratoryScope.js b/src/api/structural/laboratoryScope.js
new file mode 100644
index 0000000..d0b0c7c
--- /dev/null
+++ b/src/api/structural/laboratoryScope.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+// 鑾峰彇妫�楠岄」鐩弬鏁�
+export function obtainItemParameterList() {
+ return request({
+ url: '/laboratoryScope/obtainItemParameterList',
+ method: 'get'
+ })
+}
diff --git a/src/api/structural/standardMethod.js b/src/api/structural/standardMethod.js
new file mode 100644
index 0000000..a1412c8
--- /dev/null
+++ b/src/api/structural/standardMethod.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+// 鑾峰彇妫�楠岄」鐩弬鏁�
+export function selectStandardMethods() {
+ return request({
+ url: '/standardMethod/selectStandardMethods',
+ method: 'get'
+ })
+}
diff --git a/src/views/structural/capability/index.vue b/src/views/structural/capability/index.vue
deleted file mode 100644
index 2ebcd51..0000000
--- a/src/views/structural/capability/index.vue
+++ /dev/null
@@ -1,13 +0,0 @@
-<script>
-export default {
-name: "index"
-}
-</script>
-
-<template>
-
-</template>
-
-<style scoped lang="scss">
-
-</style>
diff --git a/src/views/structural/capabilityAndLaboratory/capability/index.vue b/src/views/structural/capabilityAndLaboratory/capability/index.vue
new file mode 100644
index 0000000..085b188
--- /dev/null
+++ b/src/views/structural/capabilityAndLaboratory/capability/index.vue
@@ -0,0 +1,805 @@
+<template>
+ <div class="capacity-scope">
+ <div>
+ <el-row class="title">
+ <el-col :span="12" style="text-align: left">
+ <el-radio-group v-model="radio" @input="selectorSwitch" size="medium" fill="#409EFF">
+ <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-button size="medium" @click="$refs.itemParameterTable.openUpload()" v-if="inPower">-->
+<!-- <i class="el-icon-upload2" style="color: #3A7BFA;"></i>-->
+<!-- <span style="color: #3A7BFA;">瀵煎叆</span></el-button>-->
+ <el-button size="medium" type="primary" v-if="radio == 1 && importExcel" @click="uploadDia = true">瀵煎叆</el-button>
+ <el-button size="medium" type="primary" @click="openAdd()" v-if="addPower">鏂板</el-button>
+ <!-- <el-button size="medium" icon="el-icon-delete">鍒犻櫎</el-button> -->
+ </el-col>
+ </el-row>
+ </div>
+ <div v-if="radio==0" class="bodys">
+ <div class="search">
+ <div class="search_thing">
+ <div class="search_label">妫�楠岄」锛�</div>
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="itemParameterForm.inspectionItem" @keyup.enter.native="refreshTable()"></el-input></div>
+ </div>
+ <div class="search_thing">
+ <div class="search_label">妫�楠屽瓙椤癸細</div>
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="itemParameterForm.inspectionItemSubclass" @keyup.enter.native="refreshTable()"></el-input>
+ </div>
+ </div>
+ <div class="search_thing">
+ <div class="search_label">妫�楠屽璞★細</div>
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="itemParameterForm.sample" @keyup.enter.native="refreshTable()"></el-input>
+ </div>
+ </div>
+ <div class="search_thing" style="padding-left: 30px;">
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ </div>
+ </div>
+ <div class="table">
+<!-- <ValueTable ref="itemParameterTable"-->
+<!-- :url="$api.capacityScope.selectItemParameterList" v-if="PROJECT === '妫�娴嬩腑蹇�'"-->
+<!-- :upUrl="$api.capacityScope.upItemParameter" :delUrl="$api.capacityScope.delItemParameter"-->
+<!-- :inputUrl="$api.capacityScope.importData" :componentData="itemParameterData" :key="upIndex" />-->
+<!-- <ValueTable ref="itemParameterTable" :url="$api.capacityScope.selectItemParameterList" v-if="PROJECT === '瑁呭鐢电紗'"-->
+<!-- :upUrl="$api.capacityScope.upItemParameter" :delUrl="$api.capacityScope.delItemParameter"-->
+<!-- :inputUrl="$api.capacityScope.importEquipData" :componentData="itemParameterData" :key="upIndex" />-->
+ </div>
+ </div>
+ <div class="bodys">
+ <div class="search" v-if="radio==1">
+ <div class="search_thing">
+ <div class="search_label">妫�楠屽璞★細</div>
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="testObjectData.entity.specimenName" @keyup.enter.native="refreshTable()"></el-input></div>
+ </div>
+ <div class="search_thing" style="padding-left: 30px;">
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ </div>
+ </div>
+ <div class="table" v-if="radio==1">
+<!-- <ValueTable ref="testObjectTable" :url="$api.capacityScope.selectTestObjectList"-->
+<!-- :upUrl="$api.capacityScope.upTestObject" :delUrl="$api.capacityScope.delTestObject"-->
+<!-- :componentData="testObjectData" :key="upIndex" />-->
+ </div>
+ </div>
+ <el-dialog title="浜у搧缁存姢" :visible.sync="diaProduct" width="600px">
+ <div class="body" v-if="diaProduct" style="height: 350px;overflow-y: auto;padding: 5px 0;">
+<!-- <ValueTable ref="productData" :url="$api.capacityScope.selectProductListByObjectId"-->
+<!-- :upUrl="$api.capacityScope.upProduct" :delUrl="$api.capacityScope.delProduct"-->
+<!-- :componentData="productData" :key="upIndex"/>-->
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="diaProduct = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="openAdd2" :loading="productLoad">鏂� 澧�</el-button>
+ </span>
+ </el-dialog>
+ <el-dialog title="鏁版嵁瀵煎叆" :visible.sync="uploadDia" width="500px">
+<!-- <div style="margin: 0 auto;">-->
+<!-- <el-upload ref="upload" drag :action="javaApi + $api.capacityScope.importExcel" :headers="token" :file-list="fileList" name="file"-->
+<!-- :auto-upload="false" accept=".xlsx" :limit="1" :on-change="beforeUpload" :on-success="onSuccess"-->
+<!-- :on-error="onError">-->
+<!-- <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 type="primary" @click="submitUpload()" :loading="uploading">涓� 浼�</el-button>
+ </span>
+ </el-dialog>
+
+ <!-- 缂栬緫 鏂板 -->
+ <el-dialog
+ :title="title"
+ :visible.sync="dialogVisible"
+ width="50%"
+ :before-close="handleClose">
+ <el-form :model="addOrupdateForm" label-width="120px" :rules="rules" inline ref="addOrupdateForm" size="mini">
+ <el-form-item label="妫�楠岄」" prop="inspectionItem">
+ <el-input v-model="addOrupdateForm.inspectionItem" placeholder="璇疯緭鍏ユ楠岄」" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="妫�楠岄」EN" >
+ <el-input v-model="addOrupdateForm.inspectionItemEn" placeholder="璇疯緭鍏ユ楠岄」EN" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="妫�楠岄」瀛愰」" >
+ <el-input v-model="addOrupdateForm.inspectionItemSubclass" placeholder="璇疯緭鍏ユ楠岄」瀛愰」" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="妫�楠屽瓙椤笶N" >
+ <el-input v-model="addOrupdateForm.inspectionItemSubclassEn" placeholder="璇疯緭鍏ユ楠屽瓙椤笶N" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="妫�楠屽璞�" >
+ <el-cascader
+ size="mini" style="width: 220px;"
+ filterable
+ v-model="addOrupdateForm.sample"
+ :options="tree"
+ :props="{value:'name',label: 'name', multiple: true, checkStrictly: true }"
+ clearable></el-cascader>
+ <!-- <el-input v-model="addOrupdateForm.sample" placeholder="璇疯緭鍏ユ楠屽璞�" size="mini" style="width: 220px;"></el-input> -->
+ </el-form-item>
+ <el-form-item label="鍗曚环(鍏�)" >
+ <el-input v-model="addOrupdateForm.price" placeholder="璇疯緭鍏ュ崟浠�" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="鍦烘墍" >
+ <el-select v-model="addOrupdateForm.laboratory" filterable size="small" style="width: 220px;">
+ <el-option
+ v-for="item in laboratory"
+ :key="item.value"
+ :label="item.label"
+ :value="item.label">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璇曢獙瀹�" prop="sonLaboratory">
+ <el-select v-model="addOrupdateForm.sonLaboratory" filterable size="small" style="width: 220px;">
+ <el-option
+ v-for="item in dicList.sonLaboratory"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="瑕佹眰鎻忚堪" >
+ <el-input v-model="addOrupdateForm.askTell" placeholder="璇疯緭鍏ヨ姹傛弿杩�" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="瑕佹眰鍊�" >
+ <el-input v-model="addOrupdateForm.ask" placeholder="璇疯緭鍏ヨ姹傚��" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="璁¢噺鍗曚綅" prop="unit">
+ <el-select v-model="addOrupdateForm.unit" filterable size="small" style="width: 220px;">
+ <el-option
+ v-for="item in dicList.unit"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ユ椂(H)" >
+ <el-input v-model="addOrupdateForm.manHour" placeholder="璇疯緭鍏ュ伐鏃�" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="棰勮鏃堕棿(H)" prop="manDay">
+ <el-input v-model="addOrupdateForm.manDay" placeholder="璇疯緭鍏ラ璁℃椂闂�" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="宸ユ椂鍒嗙粍" >
+ <el-input v-model="addOrupdateForm.manHourGroup" placeholder="璇疯緭鍏ュ伐鏃跺垎缁�" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="妫�楠岄」绫诲瀷" prop="inspectionItemType">
+ <el-select v-model="addOrupdateForm.inspectionItemType" filterable size="small" style="width: 220px;">
+ <el-option
+ v-for="item in dicList.inspectionItemType"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="妫�楠屽�肩被鍨�" prop="inspectionValueType">
+ <el-select v-model="addOrupdateForm.inspectionValueType" filterable size="small" style="width: 220px;">
+ <el-option
+ v-for="item in dicList.inspectionValueType"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="瀛楀吀绫诲瀷" >
+ <el-select v-model="addOrupdateForm.dic" clearable filterable size="small" style="width: 220px;">
+ <el-option
+ v-for="item in dicList.dic"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鐗规畩鏍囪瘑绗�">
+ <el-select v-model="addOrupdateForm.bsm" filterable size="small" style="width: 220px;">
+ <el-option
+ v-for="item in dicList.bsm"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍘熷璁板綍妯℃澘" prop="templateId">
+ <el-select v-model="addOrupdateForm.templateId" filterable size="small" style="width: 220px;">
+ <el-option
+ v-for="item in dicList.templateId"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="妫�楠岄」鍒嗙被" >
+ <el-input v-model="addOrupdateForm.inspectionItemClass" placeholder="璇疯緭鍏ユ楠岄」鍒嗙被" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="妫�楠岄」鍒嗙被EN" >
+ <el-input v-model="addOrupdateForm.inspectionItemClassEn" placeholder="璇疯緭鍏ユ楠岄」鍒嗙被EN" size="mini" style="width: 220px;"></el-input>
+ </el-form-item>
+ <el-form-item label="璇曢獙鏂规硶" prop="method">
+ <el-select v-model="addOrupdateForm.method" filterable multiple size="small" style="width: 220px;">
+ <el-option
+ v-for="(item,index) in dicList.method"
+ :key="index"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="handleClose">鍙� 娑�</el-button>
+ <el-button type="primary" @click="saveOrEnit">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+
+
+
+
+
+ </div>
+</template>
+
+<script>
+// import ValueTable from '../tool/value-table.vue'
+import {addItemParameter, getItemTree, upItemParameter} from "@/api/structural/capability";
+import {obtainItemParameterList} from "@/api/structural/laboratoryScope";
+import {selectStandardMethods} from "@/api/structural/standardMethod";
+
+export default {
+ data() {
+ return {
+ dicList: {
+ inspectionItemType: [],
+ inspectionValueType: [],
+ bsm: [],
+ sonLaboratory: [],
+ unit: [],
+ dic: [],
+ method: [],
+ },
+ addOrUpdate: '',
+ addOrupdateForm:{
+ inspectionItem: '',
+ inspectionItemEn: '',
+ inspectionItemSubclass: '',
+ inspectionItemSubclassEn: '',
+ sample: null,
+ price: '',
+ laboratory: '',
+ sonLaboratory: '',
+ askTell: '',
+ ask: '',
+ unit: '',
+ manHour: '',
+ manDay: '',
+ manHourGroup: '',
+ inspectionItemType: '',
+ inspectionValueType: '',
+ dic: '',
+ bsm: '',
+ templateId: '',
+ inspectionItemClass: '',
+ inspectionItemClassEn: '',
+ method: []
+ },
+ tree: null,
+ rules:{
+ inspectionItem: [
+ { required: true, message: '璇疯緭鍏ユ楠岄」', trigger: 'blur' }
+ ],
+ sonLaboratory: [
+ { required: true, message: '璇疯緭鍏ヨ瘯楠屽', trigger: 'change' }
+ ],
+ unit: [
+ { required: true, message: '璇疯緭鍏ヨ閲忓崟浣�', trigger: 'change' }
+ ],
+ manDay: [
+ { required: true, message: '璇疯緭鍏ラ璁℃椂闂�', trigger: 'blur' }
+ ],
+ inspectionItemType: [
+ { required: true, message: '璇疯緭鍏ユ楠岄」绫诲瀷', trigger: 'change' }
+ ],
+ inspectionValueType: [
+ { required: true, message: '璇疯緭鍏ユ楠屽�肩被鍨�', trigger: 'change' }
+ ],
+ method: [
+ { required: true, message: '璇烽�夋嫨璇曢獙鏂规硶', trigger: 'change' }
+ ],
+ templateId: [
+ { required: true, message: '璇疯緭鍏ュ師濮嬭褰曟ā鏉�', trigger: 'change' }
+ ],
+ },
+ dialogVisible: false,
+ loading: true,
+ itemParameterForm: {
+ inspectionItem: null,
+ inspectionItemSubclass: null,
+ sample: null
+ },
+ logining:false,
+ radio: 0,
+ showItemParameter: true,
+ showTestObject: false,
+ itemParameterData: {
+ entity: {
+ inspectionItem: null,
+ inspectionItemSubclass: null,
+ sample: null,
+ orderBy: {
+ field: 'id',
+ order: 'asc'
+ }
+ },
+ isIndex: true,
+ showSelect: false,
+ select: true,
+ row: 2,
+ do: [{
+ id: 'update',
+ font: '缂栬緫',
+ type: 'text',
+ method: 'openAdd',
+ field: []
+ }, {
+ id: 'delete',
+ font: '鍒犻櫎',
+ type: 'text',
+ method: 'doDiy'
+ }],
+ tagField: {
+ },
+ selectField: {
+ inspectionItemType: {
+ select: []
+ },
+ bsm: {
+ select: []
+ },
+ inspectionValueType: {
+ select: []
+ },
+ laboratory: {
+ select: []
+ },
+ templateId: {
+ select: []
+ },
+ method: {
+ select: [],
+ choose: true
+ },
+ sonLaboratory: {
+ select: []
+ },
+ unit: {
+ select: []
+ },
+ dic: {
+ select: []
+ },
+ },
+ cascaderField:{
+ sample:{
+ tree:[]
+ },
+ // 瀛楁閰嶇疆
+ props:{
+ value:'name',
+ label:'name',
+ checkStrictly: true,
+ multiple: true
+ }
+ },
+ requiredAdd: ['sonLaboratory', 'inspectionItem', 'inspectionItemType', 'inspectionValueType',
+ 'unit', 'method', 'manDay', 'templateId'
+ ],
+ requiredUp: ['sonLaboratory', 'inspectionItem', 'inspectionItemType', 'inspectionValueType',
+ 'unit', 'method', 'manDay', 'templateId'
+ ],
+ accept: '.xlsx',
+ inputType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+ needSort: ['createTime', 'updateTime', 'inspectionItem', 'inspectionItemSubclass', 'sample'],
+ },
+ testObjectData: {
+ entity: {
+ specimenName: null,
+ orderBy: {
+ field: 'id',
+ order: 'asc'
+ }
+ },
+ isIndex: true,
+ showSelect: false,
+ select: true,
+ do: [{
+ id: 'update',
+ font: '缂栬緫',
+ type: 'text',
+ method: 'doDiy',
+ field: ['createUserName', 'updateUserName', 'product']
+ }, {
+ id: 'delete',
+ font: '鍒犻櫎',
+ type: 'text',
+ method: 'doDiy'
+ }, {
+ font: '浜у搧缁存姢',
+ type: 'text',
+ method: 'upProduct'
+ }],
+ tagField: {
+ laboratoryId: {
+ select: []
+ }
+ },
+ selectField: {
+ laboratoryId: {
+ select: []
+ }
+ },
+ requiredAdd: ['specimenName', 'code', 'laboratoryId'],
+ requiredUp: ['specimenName', 'code', 'laboratoryId'],
+ needSort: ['createTime', 'updateTime', 'specimenName'],
+ },
+ itemParameterEntityCopy: {},
+ testObjectDataEntityCopy: {},
+ upIndex: 0,
+ addDia: false,
+ addPower: true,
+ select: 0,
+ laboratory: [],
+ productLoad: false,
+ diaProduct: false,
+ productData: {
+ entity: {
+ objectId: 0,
+ orderBy: {
+ field: 'id',
+ order: 'asc'
+ }
+ },
+ isPage: false,
+ isIndex: true,
+ showSelect: false,
+ select: true,
+ do: [{
+ id: 'update',
+ font: '缂栬緫',
+ type: 'text',
+ method: 'doDiy',
+ field: []
+ }, {
+ id: 'delete',
+ font: '鍒犻櫎',
+ type: 'text',
+ method: 'doDiy'
+ }],
+ tagField: {},
+ selectField: {},
+ requiredAdd: ['name','nameEn'],
+ requiredUp: ['name','nameEn'],
+ },
+ inPower: true,
+ importExcel: false,
+ uploadDia: false,
+ fileList: [],
+ token: null,
+ uploading: false,
+ }
+ },
+ created() {
+ if (this.PROJECT === '瑁呭鐢电紗') {
+ this.itemParameterData.requiredUp = ['sonLaboratory', 'inspectionItem', 'inspectionItemType', 'inspectionValueType',
+ 'unit', 'manDay', 'templateId'
+ ]
+ }
+ },
+ mounted() {
+ this.token = {
+ 'token': sessionStorage.getItem('token')
+ }
+ this.itemParameterEntityCopy = this.HaveJson(this.itemParameterData.entity)
+ this.testObjectDataEntityCopy = this.HaveJson(this.testObjectData.entity)
+ this.obtainItemParameterList() //鍦烘墍
+ this.selectStandardMethods() // 璇曢獙鏂规硶
+ this.selectTestObjectByName()
+ this.getStandardTemplate() // 鍘熷璁板綍妯℃澘
+ this.selectDocUnit()
+
+ this.selectAllNeedEnum()
+ },
+ computed: {
+ title() {
+ return this.addOrUpdate == 1 ? '鏂板' : '缂栬緫'
+ }
+ },
+ methods: {
+ //鏌ヨ闇�瑕佺殑鍏ㄩ儴鏋氫妇
+ selectAllNeedEnum(){
+ // this.$axios.post(this.$api.enums.selectEnumListByCategory,
+ // {categoryList:['妫�楠岄」绫诲瀷','鍙栧�肩被鍨�','鏄惁','妫�楠屽�肩被鍨�','瀛愬疄楠屽','鍗曚綅']},{
+ // headers: {
+ // 'Content-Type': 'application/json'
+ // }
+ // }).then(res => {
+ // res.data['妫�楠岄」绫诲瀷'].forEach(ele => {
+ // if(ele.label.indexOf('闈為噰闆�')==0)ele.type='info'
+ // });
+ // this.dicList.sonLaboratory = res.data['瀛愬疄楠屽']
+ // this.dicList.unit = res.data['鍗曚綅']
+ // this.dicList.inspectionItemType = res.data['妫�楠岄」绫诲瀷']
+ // this.dicList.inspectionValueType = res.data['妫�楠屽�肩被鍨�']
+ // this.dicList.bsm = res.data['鏄惁']
+ // })
+ },
+ saveOrEnit() {
+ console.log('this.addOrupdateForm', this.addOrupdateForm.sample);
+ let flag = true
+ this.$refs['addOrupdateForm'].validate((valid) => {
+ if (valid) {
+ flag = false
+ return false
+ }
+ });
+ if(flag) return
+ if(this.addOrupdateForm.sample != null && this.addOrupdateForm.sample != '' && this.addOrupdateForm.sample != undefined ) {
+ if(this.addOrupdateForm.sample.length > 0) {
+ this.addOrupdateForm.sample = JSON.stringify(this.addOrupdateForm.sample)
+ }else{
+ this.addOrupdateForm.sample = '[]'
+ }
+ }else{
+ this.addOrupdateForm.sample = '[]'
+ }
+
+ // 1鏄柊澧�
+ if(this.addOrUpdate == 1) {
+ this.addOrupdateForm.method = JSON.stringify(this.addOrupdateForm.method)
+ addItemParameter(this.addOrupdateForm).then(res => {
+ if(res.code == 200) {
+ this.$message.success('鏂板鎴愬姛')
+ this.refreshTable()
+ this.handleClose()
+ this.dialogVisible = false
+ } else {
+ // 鎶ラ敊 灏嗚浆鎹㈢殑method 浠ュ強 sample 杞崲鍥炴潵
+ this.addOrupdateForm.method = JSON.parse(this.addOrupdateForm.method)
+ this.addOrupdateForm.sample = JSON.parse(this.addOrupdateForm.sample)
+ this.$message.error(res.message)
+ }
+ })
+ }else{
+ this.addOrupdateForm.method = JSON.stringify(this.addOrupdateForm.method)
+ upItemParameter(this.addOrupdateForm).then(res => {
+ if(res.code == 200) {
+ this.$message.success('缂栬緫鎴愬姛')
+ this.refreshTable()
+ this.handleClose()
+ this.dialogVisible = false
+ } else {
+ // 鎶ラ敊 灏嗚浆鎹㈢殑method 浠ュ強 sample 杞崲鍥炴潵
+ this.addOrupdateForm.method = JSON.parse(this.addOrupdateForm.method)
+ this.addOrupdateForm.sample = JSON.parse(this.addOrupdateForm.sample)
+ this.$message.error(res.message)
+ }
+ })
+ }
+ },
+ handleClose() {
+ this.dialogVisible = false
+ this.addOrupdateForm = {
+ inspectionItem: '',
+ inspectionItemEn: '',
+ inspectionItemSubclass: '',
+ inspectionItemSubclassEn: '',
+ sample: null,
+ price: '',
+ laboratory: '',
+ sonLaboratory: '',
+ askTell: '',
+ ask: '',
+ unit: '',
+ manHour: '',
+ manDay: '',
+ manHourGroup: '',
+ inspectionItemType: '',
+ inspectionValueType: '',
+ dic: '',
+ bsm: '',
+ templateId: '',
+ inspectionItemClass: '',
+ inspectionItemClassEn: '',
+ method: null
+ }
+ this.$refs['addOrupdateForm'].resetFields();
+ this.addOrUpdate = ''
+ },
+ 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 == 201) {
+ this.$message.error(response.message)
+ return
+ }
+ this.$message.success('涓婁紶鎴愬姛')
+ this.standardList = []
+ this.productList = []
+ this.refreshTable()
+ },
+ onError(err, file, fileList) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload.clearFiles()
+ this.uploading = false
+ },
+ beforeUpload(file, fileList) {
+ if (file.raw.type != 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
+ this.$message.error('涓婁紶鏂囦欢鏍煎紡涓嶆纭�');
+ this.$refs.upload.clearFiles()
+ return false;
+ }
+ },
+ selectorSwitch(radio) {
+ if (this.radio === '0') {
+ this.showItemParameter = true;
+ this.showTestObject = false;
+ this.selectTestObjectByName()
+ /* this.$nextTick(() => {
+ this.$refs.itemParameterTable.selectList()
+ }) */
+ } else {
+ this.showTestObject = true;
+ this.showItemParameter = false;
+ }
+ },
+ refreshTable() {
+ this.itemParameterData.entity.inspectionItem = this.itemParameterForm.inspectionItem
+ this.itemParameterData.entity.inspectionItemSubclass = this.itemParameterForm.inspectionItemSubclass
+ this.itemParameterData.entity.sample = this.itemParameterForm.sample
+ if (this.radio === '0') {
+ // this.$refs['itemParameterTable'].selectList()
+ } else {
+ // this.$refs['testObjectTable'].selectList()
+ }
+ },
+ refresh() {
+ this.itemParameterData.entity = this.HaveJson(this.itemParameterEntityCopy)
+ this.testObjectData.entity = this.HaveJson(this.testObjectDataEntityCopy)
+ this.upIndex++
+ },
+ openAdd(row) {
+ //0浠h〃妫�楠屽弬鏁皌ab
+ if (this.radio === '0') {
+ // this.$refs.itemParameterTable.openAddDia(this.$api.capacityScope.addItemParameter);
+ if(!row) {
+ this.addOrUpdate = 1
+ }else{
+ if(typeof row.sample == 'string') {
+ row.sample = JSON.parse(row.sample)
+ }
+ this.addOrUpdate = ''
+ this.addOrupdateForm = JSON.parse(JSON.stringify(row))
+ }
+ this.dialogVisible = true
+ } else {
+ // this.$refs.testObjectTable.openAddDia(this.$api.capacityScope.addTestObject);
+ }
+ },
+ selectDocUnit() {
+ // this.$axios.post(this.$api.enums.getDic).then(res => {
+ // this.dicList.dic = res.data.map(m => {
+ // return {
+ // label: m,
+ // value: m
+ // }
+ // })
+ // })
+ },
+ obtainItemParameterList() {
+ obtainItemParameterList().then(res => {
+ let data = []
+ let data0 = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.laboratoryName,
+ value: a.id
+ })
+ data0.push({
+ label: a.laboratoryName,
+ value: a.laboratoryName
+ })
+ })
+ // this.itemParameterData.selectField.laboratory.select = data0
+ // this.itemParameterData.tagField.laboratory.select = data0
+ this.testObjectData.selectField.laboratoryId.select = data
+ this.testObjectData.tagField.laboratoryId.select = data
+ this.laboratory = data
+ })
+ },
+ selectStandardMethods() {
+ selectStandardMethods().then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.code,
+ value: a.code
+ })
+ })
+ this.dicList.method = data
+ })
+ },
+ selectTestObjectByName() {
+ getItemTree().then(res => {
+ res.data.forEach(a=>{
+ this.cascaderFieldData(a)
+ })
+ this.itemParameterData.cascaderField.sample.tree = res.data
+ this.tree = res.data
+ })
+ },
+ cascaderFieldData(val){
+ if(val.children === undefined) {
+ return
+ }else if(val.children.length==0){[
+ delete val.children
+ ]}else{
+ val.children.forEach(a=>{
+ this.cascaderFieldData(a)
+ })
+ }
+ },
+ getStandardTemplate() {
+ // this.$axios.get(this.$api.StandardTemplate.getStandardTemplate).then(res => {
+ // let data = []
+ // res.data.forEach(a => {
+ // data.push({
+ // label: a.name,
+ // value: a.id,
+ // type: 'success'
+ // })
+ // })
+ // // this.itemParameterData.selectField.templateId.select = data
+ // // this.itemParameterData.tagField.templateId.select = data
+ // this.dicList.templateId = data
+ // })
+ },
+ upProduct(row) {
+ this.productData.entity.objectId = row.id
+ this.diaProduct = true
+ },
+ openAdd2(){
+ // this.$refs.productData.openAddDia(this.$api.capacityScope.addProduct, {objectId: this.productData.entity.objectId});
+ },
+ }
+}
+</script>
+
+<style scoped>
+.title {
+ height: 40px;
+ line-height: 40px;
+ margin-bottom: 10px;
+}
+</style>
diff --git a/src/views/structural/laboratory/index.vue b/src/views/structural/capabilityAndLaboratory/laboratory/index.vue
similarity index 100%
rename from src/views/structural/laboratory/index.vue
rename to src/views/structural/capabilityAndLaboratory/laboratory/index.vue
--
Gitblit v1.9.3