From b4b4e716ae31f6082ac0f0c6d8667352d06b3383 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 31 十月 2023 10:05:01 +0800
Subject: [PATCH] new file: src/api/quality/finishedProduct.js modified: src/api/quality/rawMaterial.js modified: src/const/crud/quality/rawMaterial.js modified: src/views/plan/customerorder/index.vue new file: src/views/quality/finishedProductInspection/finishedProductInspectionAdd.vue new file: src/views/quality/finishedProductInspection/finishedProductInspectionLook.vue new file: src/views/quality/finishedProductInspection/finishedProductInspectionUp.vue new file: src/views/quality/finishedProductInspection/index.vue modified: src/views/quality/rawMaterial/rawMaterial-form.vue modified: src/views/technology/document/document-form.vue
---
src/views/quality/rawMaterial/rawMaterial-form.vue | 255 +++--
src/views/quality/finishedProductInspection/finishedProductInspectionAdd.vue | 684 ++++++++++++++
src/views/plan/customerorder/index.vue | 2
src/views/quality/finishedProductInspection/index.vue | 480 ++++++++++
src/views/technology/document/document-form.vue | 2
src/api/quality/finishedProduct.js | 17
src/views/quality/finishedProductInspection/finishedProductInspectionLook.vue | 605 ++++++++++++
src/api/quality/rawMaterial.js | 16
src/views/quality/finishedProductInspection/finishedProductInspectionUp.vue | 745 +++++++++++++++
src/const/crud/quality/rawMaterial.js | 4
10 files changed, 2,696 insertions(+), 114 deletions(-)
diff --git a/src/api/quality/finishedProduct.js b/src/api/quality/finishedProduct.js
new file mode 100644
index 0000000..6f3c763
--- /dev/null
+++ b/src/api/quality/finishedProduct.js
@@ -0,0 +1,17 @@
+import request from '@/router/axios'
+
+export function page(query) {
+ return request({
+ url: '/mes/qualityFinishedInspect/page',
+ method: 'get',
+ params: query
+ })
+}
+
+export function chooseMater(query) {
+ return request({
+ url: '/mes/qualityFinishedInspect/chooseMater',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/src/api/quality/rawMaterial.js b/src/api/quality/rawMaterial.js
index 340f0fd..63298c9 100644
--- a/src/api/quality/rawMaterial.js
+++ b/src/api/quality/rawMaterial.js
@@ -45,3 +45,19 @@
})
}
+export function updateRawInspectsById(data) {
+ return request({
+ url: '/mes/rawInspect/updateRawInspectsById/'+data.id,
+ method: 'post',
+ params: data
+ })
+}
+
+export function updateDeviceById(data) {
+ return request({
+ url: '/mes/rawInsProduct/updateDevByRpId',
+ method: 'post',
+ params: data
+ })
+}
+
diff --git a/src/const/crud/quality/rawMaterial.js b/src/const/crud/quality/rawMaterial.js
index 2299d9c..bea1ea4 100644
--- a/src/const/crud/quality/rawMaterial.js
+++ b/src/const/crud/quality/rawMaterial.js
@@ -110,7 +110,9 @@
span: 24,
}, {
label: '妫�楠岀粨璁�',
- prop: 'testState',
+ prop: 'judgeState',
type: 'text',
+ slot: true,
+ formSlot: true
}]
}
\ No newline at end of file
diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue
index 239db79..99c593c 100644
--- a/src/views/plan/customerorder/index.vue
+++ b/src/views/plan/customerorder/index.vue
@@ -1091,7 +1091,7 @@
let flag = true
const ids = []
this.multipleSelection.forEach((item) => {
- if (item.salesPartNo != null && item.salesPartNo !== '') {
+ if (item.partNo != null && item.partNo !== '') {
ids.push(item.id)
} else {
flag = false
diff --git a/src/views/quality/finishedProductInspection/finishedProductInspectionAdd.vue b/src/views/quality/finishedProductInspection/finishedProductInspectionAdd.vue
new file mode 100644
index 0000000..c45132a
--- /dev/null
+++ b/src/views/quality/finishedProductInspection/finishedProductInspectionAdd.vue
@@ -0,0 +1,684 @@
+<template>
+<!-- 鏂板椤甸潰 -->
+<div class="addInspection">
+ <div class="page-header">
+ <div class="header-left">
+ <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a>
+ <h2>缂栬緫-浜у搧妫�楠�</h2>
+ </div>
+ <div class="btn-group header-right">
+ <el-button @click="addTestProjevt">鐢熸垚妫�楠岄」鐩�</el-button>
+ </div>
+ </div>
+ <div class="page-main">
+ <div class="finishedProduct-basic">
+ <el-form :model="processInspectVo" ref="addInspectionform" class="l-mes"
+ label-position="right" label-width="120px" style="width: 100%" size="small">
+ <div class="formwrapper">
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="璁㈠崟鍙凤細">
+ <el-input @blur="selectInfoByOrderId" v-model="processInspectVo.orderNumber" placeholder="璇疯緭鍏ヨ鍗曞彿" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="瀹㈡埛鍚嶇О锛�">
+ <el-input disabled v-model="processInspectVo.prname"
+ placeholder="璇疯緭鍏ュ鎴峰悕绉�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="宸ョ▼鍚嶇О锛�">
+ <el-input disabled v-model="processInspectVo.sname"
+ placeholder="璇疯緭鍏ュ伐绋嬪悕绉�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="浜у搧鍚嶇О锛�">
+ <el-select style="width: 100%" @change="changeOptionsSamplename"
+ v-model="processInspectVo.material" size="small" placeholder="璇烽�夋嫨浜у搧鍚嶇О">
+ <el-option v-for="item in optionsSamplename" :key="item.id" :label="item.name"
+ :value="item.id + '-' + item.name">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="璐ㄩ噺杩芥函鍙凤細">
+ <el-input disabled v-model="processInspectVo.qualityTraceability"
+ placeholder="璇疯緭鍏ヨ拷婧彿" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="浜у搧缂栫爜锛�">
+ <el-input disabled v-model="processInspectVo.mcode"
+ placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="瑙勬牸鍨嬪彿锛�">
+ <el-input disabled v-model="processInspectVo.specificationsModel"
+ placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="鍗曚綅锛�">
+ <el-input disabled v-model="processInspectVo.unit"
+ placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="6">
+ <el-form-item label="鏁伴噺锛�">
+ <el-input v-model="processInspectVo.quantity" placeholder="璇疯緭鍏ユ暟閲�"
+ autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </div>
+ </el-form>
+ </div>
+ <div class="finishedProduct-detail">
+ <el-row style="width:100%;z-index: 10;height:50px;">
+ <el-col :span="12" class="inspectionProject_span">妫�楠岄」鐩�</el-col>
+ <el-col :span="12" class="inspectionProject_span" style="text-align: right;">
+ <el-button size="mini" @click="clickAddInspectionColumn()">娣诲姞妫�楠屽�煎垪</el-button>
+ <el-button size="mini" @click="clickDeleteInspectionColumn()">鍒犻櫎妫�楠屽�煎垪</el-button>
+ </el-col>
+ </el-row>
+ <el-row style="width:100%;">
+ <el-col :span="24">
+ <el-table border :data="inspectionItems" max-height="400" :span-method="handleSpanMethod" height="calc(100vh - 550px)"
+ style="width: 100%">
+ <el-table-column type="index" label="搴忓彿" width="60"></el-table-column>
+ <el-table-column label="椤圭洰" prop="father"></el-table-column>
+ <el-table-column prop="name" label="鎸囨爣"></el-table-column>
+ <el-table-column prop="unit" label="鍗曚綅"></el-table-column>
+ <el-table-column prop="required" label="鏍囧噯鍊�"></el-table-column>
+ <el-table-column prop="internal" label="鍐呮祴鍊�"></el-table-column>
+ <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��"
+ min-width="100" style="text-align: center;">
+ <template slot-scope="scope">
+ <el-tooltip :disabled="scope.row.dname != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�"
+ placement="top-start">
+ <el-input :disabled="scope.row.dname === null" v-model="scope.row.empiricalValueAddss[index]"
+ @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input>
+ </el-tooltip>
+ </template>
+ </el-table-column>
+ <el-table-column prop="dname" label="璇曢獙璁惧" min-width="100">
+ <template slot-scope="scope">
+ <el-button v-if="!scope.row.isSelectDevice" type="text" @click="clickTableSelect(scope)">{{
+ scope.row.dname == null ? "璇烽�夋嫨" : scope.row.dname
+ }}</el-button>
+ <el-select v-if="scope.row.isSelectDevice" style="width: 100%;" @change="clickNodeSure(scope.row)" v-model="filterText" placeholder="璇烽�夋嫨">
+ <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
+ </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column label="缁撹">
+ <template slot-scope="scope">
+ <span style="color: #34BD66;" v-if="scope.row.result === 1">鍚堟牸</span>
+ <span style="color: #E84738;" v-else-if="scope.row.result === 0">涓嶅悎鏍�</span>
+ <span v-show="scope.row.result === null">鏆傛湭缁撹</span>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-col>
+ </el-row>
+ </div>
+ <div class="finishedProduct-detail">
+ <el-row style="width:100%">
+ <el-col :span="24">妫�娴嬬粨鏋�</el-col>
+ </el-row>
+ <el-row style="width:100%;margin-top:-180px">
+ <el-col :span="24">
+ <el-table border max-height="400" :data="inspectionResultForm">
+ <el-table-column prop="id" label="鐗╂枡缂栧彿"></el-table-column>
+ <el-table-column prop="name" label="鐗╂枡鍚嶇О"></el-table-column>
+ <el-table-column prop="inspecter" label="妫�楠屽憳"></el-table-column>
+ <el-table-column prop="conclusion" label="妫�楠岀粨璁�"></el-table-column>
+ <el-table-column prop="operation" label="涓婃姤"></el-table-column>
+ </el-table>
+ </el-col>
+ </el-row>
+ </div>
+ </div>
+ <el-dialog title="璇烽�夋嫨璁惧" :visible.sync="centerDialogVisible" width="20%">
+ <div class="div_device_dialog">
+ <el-select style="width: 100%;" @change="clickNodeSure()" v-model="filterText" placeholder="璇烽�夋嫨">
+ <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
+ </el-option>
+ </el-select>
+ </div>
+ </el-dialog>
+</div>
+</template>
+
+<script>
+export default {
+ data() {
+ return {
+ showUp: false,
+ isAddProject: false,
+ showLook: false,
+ detailId: 0,
+ rowInfp: {},
+ search: {
+ countSize: 10,
+ pageSize: 1,
+ result: "", // 妫�娴嬬姸鎬�
+ name: "", // 浜у搧鍚嶇О
+ techfather: "" // 宸ュ簭
+ },
+ optionsSamplename: [],
+ inspectionTable: [],
+ tableColumn: [],
+ optionSoptionSprocesses: [],
+ optionTechnology: [],
+ inspectionTableTotal: 0,
+ pageSize: 10,
+ currentPage: 1,
+ treeProject: [],
+ // 娣诲姞鍒�
+ empiricalValueAdd: 1,
+ // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂�
+ empiricalValueAddMaxNumber: 0,
+ showAddPage: false,
+ processInspectVo: {
+ id: null,
+ material: null,
+ mcode: null,
+ prname: null,
+ sname: null,
+ orderNumber: "",
+ qualityTraceability: null,
+ quantity: null,
+ specificationsModel: null,
+ unit: null,
+ technologyId: null
+ },
+ InspectioniD: null,
+ addInspectionform: [
+ {
+ number: "",
+ username: "",
+ projectname: "",
+ tracenumber: "",
+ code: "",
+ class: "",
+ specificationmodel: "",
+ unit: "",
+ quantity: "",
+ group: "",
+ worker: "",
+ machine: ""
+ }]
+ ,
+ inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍�
+ inspectionResultForm: [
+ {
+ id: "",
+ name: "",
+ inspecter: "",
+ conclusion: "",
+ operation: ""
+ }
+ ],
+ options: [],
+ value: "",
+ rowList: [],
+ spanArr: [],
+ position: 0,
+ // 璁惧閫夋嫨鏍戞樉绀�
+ centerDialogVisible: false,
+ filterText: "",
+ materialOptions: [],
+ defaultProps: {
+ // 璁惧鏍戞暟鎹缃�
+ children: "children",
+ label: "name"
+ },
+ nodeData: {
+ id: 0,
+ name: null
+ }, // node鐐瑰嚮淇濆瓨褰撳墠鐐瑰嚮鏁版嵁
+ clickSelectDevice: {
+ index: null, // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岀储寮�
+ rpId: null // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岄」鐩甀d
+ }
+ };
+ },
+ watch: {
+ // filterText(val) {
+ // this.$refs.tree.filter(val);
+ // }
+ },
+ mounted() {
+ this.getTableData()
+ // this.getOptions();
+ },
+ methods: {
+ changeOptionsSamplename() {
+ let id = this.processInspectVo.material.split("-")[0]
+ let sample = this.optionsSamplename.filter(o => {
+ return o.id == id
+ })[0]
+ this.processInspectVo.qualityTraceability = sample.qualityTraceability
+ this.processInspectVo.mcode = sample.mcode
+ this.processInspectVo.specificationsModel = sample.specifications
+ this.processInspectVo.unit = sample.unit
+ },
+ comBack() {
+ this.$parent.comBackMain()
+ },
+ handleClick(row) {
+ this.rowInfp = row
+ this.showLook = true
+ },
+ updateInsInfo(row) {
+ this.rowInfp = row
+ this.showUp = true
+ },
+ combackMain() {
+ this.showUp = false
+ this.showLook = false
+ },
+ searchPro() {
+ this.search.countSize = this.pageSize
+ this.search.pageSize = this.currentPage
+ this.defaultInitializationTable()
+ },
+ // 鐐瑰嚮璁惧鏍戜繚瀛樼偣鍑昏褰�
+ nodeClick(data) {
+ if (data.id != undefined) this.nodeData = data;
+ },
+ // 璁惧鏍戣繃婊ゆ悳绱�
+ filterNode(value, data) {
+ if (!value) return true;
+ return data.name.indexOf(value) !== -1;
+ },
+ // 鑾峰彇璁惧鏍戝唴瀹�
+ getOptions(row) {
+ this.$axios.get(this.$api.url.inspectionItemChooseDev, {
+ params: {
+ father: row.father,
+ name: row.name,
+ technologyId: this.processInspectVo.technologyId
+ }
+ }).then(res => {
+ this.materialOptions = res.data;
+ this.filterText = row.did
+ if(this.materialOptions.length===1){
+ this.$message({
+ message: '璇ラ」鐩笅鍙湁涓�涓瘯楠岃澶囷紝鏃犻渶閫夋嫨锛�',
+ type: 'warning'
+ });
+ return
+ }
+ row.isSelectDevice = true
+ });
+ },
+ // 鐐瑰嚮琛ㄦ牸閫夋嫨瑙﹀彂
+ clickTableSelect(scope) {
+ if(this.clickSelectDevice.index!=null){
+ this.$set(this.inspectionItems[this.clickSelectDevice.index],'isSelectDevice',false)
+ }
+ this.clickSelectDevice.index = scope.$index;
+ this.clickSelectDevice.rpId = scope.row.id;
+ this.getOptions(scope.row);
+ },
+ // 鐐瑰嚮鏍戦噷闈㈢殑纭畾
+ clickNodeSure(row) {
+ let select = this.materialOptions.filter(item => {
+ return item.id === this.filterText
+ })[0]
+ this.nodeData.id = select.id
+ this.nodeData.name = select.device
+ if (this.detailId == null) {
+ this.inspectionItems[
+ this.clickSelectDevice.index
+ ].did = this.nodeData.id;
+ this.inspectionItems[
+ this.clickSelectDevice.index
+ ].dname = this.nodeData.name;
+ this.centerDialogVisible = false;
+ } else {
+ this.$axios
+ .post(this.$api.url.inspectionItemUpdateDevByInsId, {
+ id: this.clickSelectDevice.rpId,
+ type: 2,
+ devId: this.nodeData.id
+ })
+ .then(res => {
+ this.getTableData()
+ this.centerDialogVisible = false;
+ row.isSelectDevice=false
+ });
+ }
+ },
+ changeState(row, index) {
+ if (row.did != null && row.did != '') {
+ // let val = row.empiricalValueAddss.filter(item => {
+ // return item != '' && item != null
+ // })
+ // let eq = val.filter(item => {
+ // return /^[^><=]/.test(item)
+ // })
+ // if (eq.length > 0) {
+ // this.$message({
+ // message: "妫�娴嬪�糩" + eq + "]鏍煎紡棣栦綅搴斿寘鍚�>,<鎴栬��=",
+ // type: 'warning'
+ // });
+ // return
+ // }
+ let str = ""
+ row.empiricalValueAddss.forEach(e => {
+ str += e + ","
+ })
+ if (str.slice(0, -1) === '' || str.slice(0, -1) === null || str.slice(0, -1) === undefined) {
+ return
+ }
+ this.$axios.post(this.$api.url.inspectionItemlose_focus_update, {
+ deviceId: row.did,
+ inspectionItemId: row.id,
+ inspectionValue: str.slice(0, -1)
+ }, {
+ headers: { "Content-Type": "application/json" }
+ }).then(res => {
+ row.result = res.data.result
+ row.username = res.data.username
+ })
+ } else {
+ this.$message({
+ message: '璇烽�夋嫨鎷╄澶囷紒',
+ type: 'warning'
+ });
+ }
+ },
+ // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+ handleSizeChange(val) {
+ this.search.countSize = val;
+ this.defaultInitializationTable();
+ },
+ handleSpanMethod({ row, column, rowIndex, columnIndex }) {
+ if (columnIndex === 0) {
+ const _row = this.spanArr[rowIndex];
+ const _col = _row > 0 ? 1 : 0;
+ return {
+ rowspan: _row,
+ colspan: _col
+ }
+ }
+ if (columnIndex === 1) {
+ const _row = this.spanArr[rowIndex];
+ const _col = _row > 0 ? 1 : 0;
+ return {
+ rowspan: _row,
+ colspan: _col
+ }
+ }
+ },
+ // 鍚堝苟琛ㄦ牸
+ mergeTable() {
+ this.rowList = []
+ this.spanArr = []
+ this.position = 0
+ this.inspectionItems.forEach((item, index) => {
+ if (index === 0) {
+ this.spanArr.push(1);
+ this.position = 0;
+ } else {
+ if (this.inspectionItems[index].father === this.inspectionItems[index - 1].father) {
+ this.spanArr[this.position] += 1;
+ this.spanArr.push(0);
+ } else {
+ this.spanArr.push(1);
+ this.position = index;
+ }
+ }
+ })
+ },
+ changeOptionSoptionSprocesses() {
+ this.optionTechnology = []
+ let working = this.optionSoptionSprocesses.filter(item => {
+ return item.name === this.processInspectVo.techfather
+ })[0]
+ this.optionTechnology = working.children
+ },
+ addTestProjevt() {
+ // this.isAddProject = true
+ let val = JSON.parse(JSON.stringify(this.processInspectVo))
+ val.material = this.processInspectVo.material.split("-")[1]
+ val.id = this.processInspectVo.material.split("-")[0]
+ this.$axios.post(this.$api.url.finishedInspectAddFinish, val, {
+ headers: { "Content-Type": "application/json" }
+ }).then(res => {
+ if (res.code == 201) {
+ this.$message({
+ message: res.message,
+ type: 'warning'
+ });
+ return
+ }
+ this.detailId = res.data
+ this.inspectionResultForm[0].id = val.mcode
+ this.inspectionResultForm[0].name = val.material
+ this.getTableData()
+ })
+ },
+ getTableData() {
+ this.$axios.get(this.$api.url.finishedInspectSelectFinishInspectsListById, {
+ params: {
+ id: this.detailId
+ }
+ }).then(res => {
+ this.processInspectVo.technologyId = res.data[0].techId
+ })
+ this.$axios.get(this.$api.url.inspectionItemListUser, {
+ params: {
+ id: this.detailId,
+ type: 2
+ }
+ }).then(res => {
+ if (res.data.length < 1) {
+ return
+ }
+ this.inspectionItems = res.data
+ let arr = []
+ let val = JSON.parse(JSON.stringify(this.inspectionItems))
+ const uName = []
+ //杞垚涓�缁存暟缁�
+ val.forEach(l => {
+ let father = l.father
+ l.children.forEach(c => {
+ c.father = father
+ c.empiricalValueAddss = []
+ if (c.inspectionValue != '' && c.inspectionValue != null) {
+ c.empiricalValueAddss = c.inspectionValue.split(",");
+ } else {
+ c.empiricalValueAddss.push("")
+ }
+ uName.push(c['username'])
+ c.isSelectDevice = false
+ arr.push(c)
+ })
+ })
+ this.inspectionItems = arr
+ let arrSort = JSON.parse(JSON.stringify(arr))
+ //鏍规嵁闆嗗悎瀵硅薄鏁扮粍闀垮害鎺掑簭
+ arrSort.sort((a, b) => {
+ if (a.empiricalValueAddss.length < b.empiricalValueAddss.length) {
+ return -1; // a鎺掑湪b鍓嶉潰
+ } else if (a.empiricalValueAddss.length > b.empiricalValueAddss.length) {
+ return 1; // a鎺掑湪b鍚庨潰
+ } else {
+ return 0; // 淇濇寔鐩稿椤哄簭涓嶅彉
+ }
+ });
+ // console.log(arrSort);
+ console.log(uName);
+ let name = [...new Set(uName)].filter(item => item !== null);
+ let rname = ''
+ name.forEach(m => {
+ rname += m + ","
+ })
+ this.inspectionResultForm[0].inspecter = rname.slice(0, -1)
+ this.empiricalValueAdd = arrSort[arrSort.length - 1].empiricalValueAddss.length
+ this.mergeTable(arr)
+ })
+ },
+ selectSample() {
+ let sample = this.optionsSamplename.filter(item => {
+ return item.name === this.processInspectVo.material
+ })[0]
+ this.processInspectVo.techfather = null
+ this.processInspectVo.techname = null
+ this.processInspectVo.materialCode = sample.code
+ this.processInspectVo.specificationsModel = sample.specifications
+ this.processInspectVo.unit = sample.unit
+ this.optionSoptionSprocesses = []
+ this.optionSoptionSprocesses = sample.children
+ },
+ selectInfoByOrderId() {
+ this.$axios.get(this.$api.url.finishedInspectChooseMater, {
+ params: {
+ orderNumber: this.processInspectVo.orderNumber
+ }
+ }).then(res => {
+ if (res.data.length > 0) {
+ console.log(res.data);
+ this.processInspectVo.sname = res.data[0].sname
+ this.processInspectVo.prname = res.data[0].prname
+ this.optionsSamplename = res.data[0].children
+ } else {
+ this.$message({
+ message: '娌℃湁璇ヨ鍗曞彿锛�',
+ type: 'warning'
+ });
+ }
+ })
+ },
+ // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
+ handleCurrentChange(val) {
+ this.search.pageSize = val;
+ this.defaultInitializationTable();
+ },
+ // 鏄剧ず鏂板椤甸潰
+ handleAddNew() {
+ this.showAddPage = true;
+ // this.getTableData()
+ },
+ // 琛ㄦ牸鍒濆鍖栨帴鍙�
+ defaultInitializationTable() {
+ this.$axios
+ .post(this.$api.url.selectProcessInspectsList, this.search)
+ .then(res => {
+ this.inspectionTableTotal = res.data.total;
+ this.inspectionTable = res.data.row;
+ });
+ },
+ // 娣诲姞琛�
+ clickAddLine() {
+ let obj = {
+ material: "",
+ materialCode: "",
+ orderNumber: "",
+ quantity: 0,
+ specificationsModel: "",
+ techfather: "",
+ techname: "",
+ technologyId: 0,
+ unit: ""
+ };
+ this.inspectionItems.push(obj);
+ },
+ // 鍒犻櫎琛�
+ clickDeleteline(scope) {
+ this.inspectionItems.splice(scope.$index, 1);
+ },
+ // 鍒犻櫎妫�楠屽�煎垪
+ clickDeleteInspectionColumn() {
+ if (this.empiricalValueAdd - 1 === 0) {
+ } else {
+ if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
+ this.empiricalValueAdd = this.empiricalValueAdd - 1;
+ this.inspectionItems.forEach(i => {
+ i.testValueList.splice(this.empiricalValueAdd, 1);
+ });
+ }
+ }
+ },
+ // 娣诲姞妫�楠屽�煎垪
+ clickAddInspectionColumn() {
+ this.empiricalValueAdd = this.empiricalValueAdd + 1;
+ }
+ },
+ created() {
+ this.defaultInitializationTable(); // 鍒濆鍖栬〃鏍兼暟鎹�
+ }
+}
+</script>
+
+<style scoped>
+.finishedProduct-detail {
+ width: 100%;
+ height: 460px;
+ padding: 10px 20px;
+ display: flex;
+ border: 1px solid #ddd;
+ background-color: #fff;
+ margin-top: 10px;
+ box-sizing: border-box;
+ flex-wrap: wrap;
+}
+
+.finishedProduct-basic {
+ background-color: #fff;
+ height: 150px;
+ display: flex;
+ flex-wrap: wrap;
+ padding: 10px 20px;
+ border: 1px solid #ddd;
+ box-sizing: border-box;
+}
+/*鑷畾涔塪isabled鐘舵�佷笅checkbox鐨勬牱寮�*/
+.completeproductstructure-checkout
+ .el-checkbox__input.is-disabled.is-checked
+ .el-checkbox__inner {
+ background-color: #006eff;
+ border-color: #006eff;
+}
+
+.completeproductstructure-checkout
+ .el-checkbox__input.is-disabled.is-checked
+ + span.el-checkbox__label {
+ color: #006eff;
+ border-color: #006eff;
+}
+
+.completeproductstructure-checkout
+ .el-checkbox__input.is-disabled
+ .el-checkbox__inner {
+ background-color: #ffffff;
+ cursor: pointer;
+}
+
+.completeproductstructure-checkout
+ .el-checkbox__input.is-disabled
+ + span.el-checkbox__label {
+ color: #606266;
+ cursor: pointer;
+}
+
+.completeproductstructure-checkout .el-checkbox__inner::after {
+ border: 1px solid #fff !important;
+ border-left: 0 !important;
+ border-top: 0 !important;
+ cursor: pointer !important;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/quality/finishedProductInspection/finishedProductInspectionLook.vue b/src/views/quality/finishedProductInspection/finishedProductInspectionLook.vue
new file mode 100644
index 0000000..974801f
--- /dev/null
+++ b/src/views/quality/finishedProductInspection/finishedProductInspectionLook.vue
@@ -0,0 +1,605 @@
+<template>
+ <div>
+ <!-- 鏂板椤甸潰 -->
+ <div class="addInspection">
+ <el-row class="header">
+ <el-col :span="12">鏂板浜у搧妫�楠屽崟</el-col>
+ <el-col :span="12" style="text-align: right;">
+ <!-- 鐐瑰嚮杩斿洖锛屽綋鍓嶉〉闈㈠�间负false -->
+ <!-- <el-button type="primary" size="mini" style="background: #004EA2; "
+ icon="el-icon-circle-plus-outline">鏂板</el-button> -->
+ <el-button @click="comBack" type="primary" size="mini" icon="el-icon-back"
+ style="background: #004EA2; ">杩斿洖</el-button>
+ </el-col>
+ </el-row>
+ <el-form :model="processInspectVo" ref="addInspectionform" class="addInspectionform" label-position="right"
+ label-width="120px" size="small">
+ <div class="formwrapper">
+ <el-row>
+ <el-col :span="7">
+ <el-form-item label="璁㈠崟鍙凤細">
+ <el-input disabled @blur="selectInfoByOrderId" style="width: 180px;"
+ v-model="processInspectVo.orderNumber" placeholder="璇疯緭鍏ヨ鍗曞彿" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="瀹㈡埛鍚嶇О锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.prname"
+ placeholder="璇疯緭鍏ュ鎴峰悕绉�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="宸ョ▼鍚嶇О锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.sname"
+ placeholder="璇疯緭鍏ュ伐绋嬪悕绉�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="7">
+ <el-form-item label="浜у搧鍚嶇О锛�">
+ <el-select disabled @change="changeOptionsSamplename" style="width: 180px;" v-model="processInspectVo.material" size="small"
+ placeholder="璇烽�夋嫨浜у搧鍚嶇О">
+ <el-option v-for="item in optionsSamplename" :key="item.id" :label="item.name"
+ :value="item.id + '-' + item.name">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="璐ㄩ噺杩芥函鍙凤細">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.qualityTraceability"
+ placeholder="璇疯緭鍏ヨ拷婧彿" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="浜у搧缂栫爜锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.mcode"
+ placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="7">
+ <el-form-item label="瑙勬牸鍨嬪彿锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.specificationsModel"
+ placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="鍗曚綅锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.unit" placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�"
+ autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="鏁伴噺锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.quantity" placeholder="璇疯緭鍏ユ暟閲�"
+ autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="3" style="display: flex;justify-content: end;">
+ <!-- <el-button type="primary" :disabled="isAddProject" @click="addTestProjevt">鐢熸垚妫�楠岄」鐩�</el-button> -->
+ </el-col>
+ </el-row>
+ </div>
+ </el-form>
+ </div>
+ <div class="inspectionProject">
+ <el-row>
+ <el-col :span="12" class="inspectionProject_span">妫�楠岄」鐩�</el-col>
+ <el-col :span="12" class="inspectionProject_span" style="display: flex;justify-content: end;">
+ <!-- <el-button size="mini" @click="clickDeleteInspectionColumn()">鍒犻櫎妫�楠屽�煎垪</el-button>
+ <el-button style="margin-right: 30px;" size="mini"
+ @click="clickAddInspectionColumn()">娣诲姞妫�楠屽�煎垪</el-button> -->
+ <!-- <el-button
+ size="mini"
+ style="margin-right: 30px;"
+ @click="clickAddLine()"
+ >娣诲姞妫�楠岃</el-button
+ > -->
+ </el-col>
+ </el-row>
+ <el-table :data="inspectionItems" max-height="420" :span-method="handleSpanMethod" height="calc(100vh - 550px)"
+ style="width: 100%">
+ <el-table-column type="index" label="搴忓彿" width="60"></el-table-column>
+ <el-table-column label="椤圭洰" prop="father"></el-table-column>
+ <el-table-column prop="name" label="鎸囨爣"></el-table-column>
+ <el-table-column prop="unit" label="鍗曚綅"></el-table-column>
+ <el-table-column prop="required" label="鏍囧噯鍊�"></el-table-column>
+ <el-table-column prop="internal" label="鍐呮祴鍊�"></el-table-column>
+ <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��"
+ min-width="100" style="text-align: center;">
+ <template slot-scope="scope">
+ <el-input disabled v-model="scope.row.empiricalValueAddss[index]"
+ @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="dname" label="璇曢獙璁惧" min-width="100">
+ <template slot-scope="scope">
+ {{ scope.row.dname }}
+ <span v-if="scope.row.dname===null||scope.row.dname===''">/</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="缁撹">
+ <template slot-scope="scope">
+ <span style="color: #34BD66;" v-if="scope.row.result === 1">鍚堟牸</span>
+ <span style="color: #E84738;" v-else-if="scope.row.result === 0">涓嶅悎鏍�</span>
+ <span v-show="scope.row.result === null">鏆傛湭缁撹</span>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column v-if="detailId == null" label="鎿嶄綔" width="100">
+ <template slot-scope="scope">
+ <el-button type="text" @click="clickDeleteline(scope)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column> -->
+ </el-table>
+ </div>
+ <div class="inspectionResult">
+ <span>妫�娴嬬粨鏋�</span>
+ <el-table :data="inspectionResultForm">
+ <el-table-column prop="id" label="鐗╂枡缂栧彿"></el-table-column>
+ <el-table-column prop="name" label="鐗╂枡鍚嶇О"></el-table-column>
+ <el-table-column prop="inspecter" label="妫�楠屽憳"></el-table-column>
+ <el-table-column prop="conclusion" label="妫�楠岀粨璁�">
+ <template slot-scope="scope">
+ <span style="color: #34BD66;" v-if="scope.row.conclusion === 1">鍚堟牸</span>
+ <span style="color: #E84738;" v-else-if="scope.row.conclusion === 0">涓嶅悎鏍�</span>
+ <span v-else-if="scope.row.conclusion === null || scope.row.conclusion === undefined">鏆傛湭缁撹</span>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column prop="operation" label="涓婃姤"></el-table-column> -->
+ </el-table>
+ </div>
+ <el-dialog title="璇烽�夋嫨璁惧" :visible.sync="centerDialogVisible" width="20%">
+ <div class="div_device_dialog">
+ <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText" style="margin-bottom: 6px;">
+ </el-input>
+ <el-tree class="filter-tree" :data="materialOptions" :props="defaultProps" default-expand-all
+ highlight-current @node-click="nodeClick" :filter-node-method="filterNode" ref="tree">
+ <div class="custom-tree-node" slot-scope="{ data }">
+ <span><i :class="`node_i ${data.children ? 'el-icon-folder-opened' : 'el-icon-tickets'
+ }`
+ "></i>
+ {{ data.name }}</span>
+ </div>
+ </el-tree>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="centerDialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="clickNodeSure()">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+export default {
+ props: ['rowInfo'],
+ data() {
+ return {
+ showUp: false,
+ isAddProject: false,
+ showLook: false,
+ detailId: 0,
+ rowInfp: {},
+ search: {
+ countSize: 10,
+ pageSize: 1,
+ result: "", // 妫�娴嬬姸鎬�
+ name: "", // 浜у搧鍚嶇О
+ techfather: "" // 宸ュ簭
+ },
+ optionsSamplename: [],
+ inspectionTable: [],
+ tableColumn: [],
+ optionSoptionSprocesses: [],
+ optionTechnology: [],
+ inspectionTableTotal: 0,
+ pageSize: 10,
+ currentPage: 1,
+ treeProject: [],
+ // 娣诲姞鍒�
+ empiricalValueAdd: 1,
+ // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂�
+ empiricalValueAddMaxNumber: 0,
+ showAddPage: false,
+ processInspectVo: {
+ id: null,
+ material: null,
+ mcode: null,
+ prname: null,
+ sname: null,
+ orderNumber: "D-001",
+ qualityTraceability: null,
+ quantity: null,
+ specificationsModel: null,
+ unit: null
+ },
+ InspectioniD: null,
+ addInspectionform: [
+ {
+ number: "",
+ username: "",
+ projectname: "",
+ tracenumber: "",
+ code: "",
+ class: "",
+ specificationmodel: "",
+ unit: "",
+ quantity: "",
+ group: "",
+ worker: "",
+ machine: ""
+ }]
+ ,
+ inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍�
+ inspectionResultForm: [
+ {
+ id: "",
+ name: "",
+ inspecter: "",
+ conclusion: "",
+ operation: ""
+ }
+ ],
+ options: [],
+ value: "",
+ rowList: [],
+ spanArr: [],
+ position: 0,
+ // 璁惧閫夋嫨鏍戞樉绀�
+ centerDialogVisible: false,
+ filterText: "",
+ materialOptions: [],
+ defaultProps: {
+ // 璁惧鏍戞暟鎹缃�
+ children: "children",
+ label: "name"
+ },
+ nodeData: "", // node鐐瑰嚮淇濆瓨褰撳墠鐐瑰嚮鏁版嵁
+ clickSelectDevice: {
+ index: "", // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岀储寮�
+ rpId: "" // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岄」鐩甀d
+ }
+ };
+ },
+ watch: {
+ filterText(val) {
+ this.$refs.tree.filter(val);
+ }
+ },
+ mounted() {
+ console.log(this.rowInfo);
+ this.processInspectVo.material=this.rowInfo.material
+ this.processInspectVo.mcode=this.rowInfo.material_code
+ this.processInspectVo.orderNumber=this.rowInfo.order_number
+ this.processInspectVo.qualityTraceability=this.rowInfo.quality_traceability
+ this.processInspectVo.specificationsModel=this.rowInfo.specifications_model
+ this.processInspectVo.unit=this.rowInfo.unit
+ this.processInspectVo.quantity=this.rowInfo.quantity
+ this.processInspectVo.prname=this.rowInfo.customer_name
+ this.processInspectVo.sname=this.rowInfo.project_name
+ this.inspectionResultForm[0].id=this.rowInfo.material_code
+ this.inspectionResultForm[0].name=this.rowInfo.material
+ this.inspectionResultForm[0].conclusion=this.rowInfo.result
+ this.detailId=this.rowInfo.id
+ this.getTableData()
+ this.getOptions();
+ },
+ methods: {
+ changeOptionsSamplename(){
+ let id=this.processInspectVo.material.split("-")[0]
+ let sample=this.optionsSamplename.filter(o=>{
+ return o.id==id
+ })[0]
+ this.processInspectVo.qualityTraceability=sample.qualityTraceability
+ this.processInspectVo.mcode=sample.mcode
+ this.processInspectVo.specificationsModel=sample.specifications
+ this.processInspectVo.unit=sample.unit
+ },
+ comBack(){
+ this.$parent.comBackMain()
+ },
+ handleClick(row) {
+ this.rowInfp = row
+ this.showLook = true
+ },
+ updateInsInfo(row) {
+ this.rowInfp = row
+ this.showUp = true
+ },
+ combackMain() {
+ this.showUp = false
+ this.showLook = false
+ },
+ searchPro() {
+ this.search.countSize = this.pageSize
+ this.search.pageSize = this.currentPage
+ this.defaultInitializationTable()
+ },
+ // 鐐瑰嚮璁惧鏍戜繚瀛樼偣鍑昏褰�
+ nodeClick(data) {
+ if (data.id != undefined) this.nodeData = data;
+ },
+ // 璁惧鏍戣繃婊ゆ悳绱�
+ filterNode(value, data) {
+ if (!value) return true;
+ return data.name.indexOf(value) !== -1;
+ },
+ // 鑾峰彇璁惧鏍戝唴瀹�
+ getOptions() {
+ this.$axios.get(this.$api.url.rawSelectDevice).then(res => {
+ this.materialOptions = res.data;
+ });
+ },
+ // 鐐瑰嚮琛ㄦ牸閫夋嫨瑙﹀彂
+ clickTableSelect(scope) {
+ this.centerDialogVisible = true;
+ this.clickSelectDevice.index = scope.$index;
+ this.clickSelectDevice.rpId = scope.row.id;
+ },
+ // 鐐瑰嚮鏍戦噷闈㈢殑纭畾
+ clickNodeSure() {
+ if (this.detailId == null) {
+ this.inspectionItems[
+ this.clickSelectDevice.index
+ ].did = this.nodeData.id;
+ this.inspectionItems[
+ this.clickSelectDevice.index
+ ].dname = this.nodeData.name;
+ this.centerDialogVisible = false;
+ } else {
+ this.$axios
+ .post(this.$api.url.inspectionItemUpdateDevByInsId, {
+ id: this.clickSelectDevice.rpId,
+ type: 2,
+ devId: this.nodeData.id
+ })
+ .then(res => {
+ this.getTableData()
+ this.centerDialogVisible = false;
+ });
+ }
+ },
+ changeState(row, index) {
+ console.log(row);
+ if (row.did != null && row.did != '') {
+ let str = ""
+ row.empiricalValueAddss.forEach(e => {
+ str += e + ","
+ })
+ this.$axios.post(this.$api.url.inspectionItemlose_focus_update, {
+ deviceId: row.did,
+ inspectionItemId: row.id,
+ inspectionValue: str.slice(0, -1)
+ }, {
+ headers: { "Content-Type": "application/json" }
+ }).then(res => {
+ row.result = res.data.result
+ row.username = res.data.username
+ })
+ } else {
+ this.$message({
+ message: '璇烽�夋嫨鎷╄澶囷紒',
+ type: 'warning'
+ });
+ }
+ },
+ // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+ handleSizeChange(val) {
+ this.search.countSize = val;
+ this.defaultInitializationTable();
+ },
+ handleSpanMethod({ row, column, rowIndex, columnIndex }) {
+ if (columnIndex === 0) {
+ const _row = this.spanArr[rowIndex];
+ const _col = _row > 0 ? 1 : 0;
+ return {
+ rowspan: _row,
+ colspan: _col
+ }
+ }
+ if (columnIndex === 1) {
+ const _row = this.spanArr[rowIndex];
+ const _col = _row > 0 ? 1 : 0;
+ return {
+ rowspan: _row,
+ colspan: _col
+ }
+ }
+ },
+ // 鍚堝苟琛ㄦ牸
+ mergeTable() {
+ this.rowList = []
+ this.spanArr = []
+ this.position = 0
+ this.inspectionItems.forEach((item, index) => {
+ if (index === 0) {
+ this.spanArr.push(1);
+ this.position = 0;
+ } else {
+ if (this.inspectionItems[index].father === this.inspectionItems[index - 1].father) {
+ this.spanArr[this.position] += 1;
+ this.spanArr.push(0);
+ } else {
+ this.spanArr.push(1);
+ this.position = index;
+ }
+ }
+ })
+ },
+ changeOptionSoptionSprocesses() {
+ this.optionTechnology = []
+ let working = this.optionSoptionSprocesses.filter(item => {
+ return item.name === this.processInspectVo.techfather
+ })[0]
+ this.optionTechnology = working.children
+ },
+ addTestProjevt() {
+ // this.isAddProject = true
+ let val = JSON.parse(JSON.stringify(this.processInspectVo))
+ val.material = this.processInspectVo.material.split("-")[1]
+ val.id=this.processInspectVo.material.split("-")[0]
+ this.$axios.post(this.$api.url.finishedInspectAddFinish, val, {
+ headers: { "Content-Type": "application/json" }
+ }).then(res => {
+ if (res.code == 201) {
+ this.$message({
+ message: res.message,
+ type: 'warning'
+ });
+ return
+ }
+ this.detailId = res.data
+ this.inspectionResultForm[0].id = val.mcode
+ this.inspectionResultForm[0].name = val.material
+ this.getTableData()
+ })
+ },
+ getTableData() {
+ this.$axios.get(this.$api.url.inspectionItemListUser, {
+ params: {
+ id: this.detailId,
+ type: 2
+ }
+ }).then(res => {
+ if (res.data.length < 1) {
+ return
+ }
+ this.inspectionItems = res.data
+ let arr = []
+ let val = JSON.parse(JSON.stringify(this.inspectionItems))
+ const uName = []
+ //杞垚涓�缁存暟缁�
+ val.forEach(l => {
+ let father = l.father
+ l.children.forEach(c => {
+ c.father = father
+ c.empiricalValueAddss = []
+ if (c.inspectionValue != '' && c.inspectionValue != null) {
+ c.empiricalValueAddss = c.inspectionValue.split(",");
+ } else {
+ c.empiricalValueAddss.push("")
+ }
+ uName.push(c['username'])
+ arr.push(c)
+ })
+ })
+ this.inspectionItems = arr
+ let arrSort = JSON.parse(JSON.stringify(arr))
+ //鏍规嵁闆嗗悎瀵硅薄鏁扮粍闀垮害鎺掑簭
+ arrSort.sort((a, b) => {
+ if (a.empiricalValueAddss.length < b.empiricalValueAddss.length) {
+ return -1; // a鎺掑湪b鍓嶉潰
+ } else if (a.empiricalValueAddss.length > b.empiricalValueAddss.length) {
+ return 1; // a鎺掑湪b鍚庨潰
+ } else {
+ return 0; // 淇濇寔鐩稿椤哄簭涓嶅彉
+ }
+ });
+ // console.log(arrSort);
+ console.log(uName);
+ let name = [...new Set(uName)].filter(item => item !== null);
+ let rname = ''
+ name.forEach(m => {
+ rname += m + ","
+ })
+ this.inspectionResultForm[0].inspecter = rname.slice(0, -1)
+ this.empiricalValueAdd = arrSort[arrSort.length - 1].empiricalValueAddss.length
+ this.mergeTable(arr)
+ })
+ },
+ selectSample() {
+ let sample = this.optionsSamplename.filter(item => {
+ return item.name === this.processInspectVo.material
+ })[0]
+ this.processInspectVo.techfather = null
+ this.processInspectVo.techname = null
+ this.processInspectVo.materialCode = sample.code
+ this.processInspectVo.specificationsModel = sample.specifications
+ this.processInspectVo.unit = sample.unit
+ this.optionSoptionSprocesses = []
+ this.optionSoptionSprocesses = sample.children
+ },
+ selectInfoByOrderId() {
+ this.$axios.get(this.$api.url.finishedInspectChooseMater, {
+ params: {
+ orderNumber: this.processInspectVo.orderNumber
+ }
+ }).then(res => {
+ if (res.data.length > 0) {
+ console.log(res.data);
+ this.processInspectVo.sname = res.data[0].sname
+ this.processInspectVo.prname = res.data[0].prname
+ this.optionsSamplename = res.data[0].children
+ } else {
+ this.$message({
+ message: '娌℃湁璇ヨ鍗曞彿锛�',
+ type: 'warning'
+ });
+ }
+ })
+ },
+ // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
+ handleCurrentChange(val) {
+ this.search.pageSize = val;
+ this.defaultInitializationTable();
+ },
+ // 鏄剧ず鏂板椤甸潰
+ handleAddNew() {
+ this.showAddPage = true;
+ // this.getTableData()
+ },
+ // 琛ㄦ牸鍒濆鍖栨帴鍙�
+ defaultInitializationTable() {
+ this.$axios
+ .post(this.$api.url.selectProcessInspectsList, this.search)
+ .then(res => {
+ this.inspectionTableTotal = res.data.total;
+ this.inspectionTable = res.data.row;
+ });
+ },
+ // 娣诲姞琛�
+ clickAddLine() {
+ let obj = {
+ material: "",
+ materialCode: "",
+ orderNumber: "",
+ quantity: 0,
+ specificationsModel: "",
+ techfather: "",
+ techname: "",
+ technologyId: 0,
+ unit: ""
+ };
+ this.inspectionItems.push(obj);
+ },
+ // 鍒犻櫎琛�
+ clickDeleteline(scope) {
+ this.inspectionItems.splice(scope.$index, 1);
+ },
+ // 鍒犻櫎妫�楠屽�煎垪
+ clickDeleteInspectionColumn() {
+ if (this.empiricalValueAdd - 1 === 0) {
+ } else {
+ if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
+ this.empiricalValueAdd = this.empiricalValueAdd - 1;
+ this.inspectionItems.forEach(i => {
+ i.testValueList.splice(this.empiricalValueAdd, 1);
+ });
+ }
+ }
+ },
+ // 娣诲姞妫�楠屽�煎垪
+ clickAddInspectionColumn() {
+ this.empiricalValueAdd = this.empiricalValueAdd + 1;
+ }
+ },
+ created() {
+ this.defaultInitializationTable(); // 鍒濆鍖栬〃鏍兼暟鎹�
+ }
+}
+</script>
+
+<style></style>
\ No newline at end of file
diff --git a/src/views/quality/finishedProductInspection/finishedProductInspectionUp.vue b/src/views/quality/finishedProductInspection/finishedProductInspectionUp.vue
new file mode 100644
index 0000000..af64790
--- /dev/null
+++ b/src/views/quality/finishedProductInspection/finishedProductInspectionUp.vue
@@ -0,0 +1,745 @@
+<template>
+ <div>
+ <!-- 鏂板椤甸潰 -->
+ <div class="addInspection">
+ <el-row class="header">
+ <el-col :span="12">鏂板浜у搧妫�楠屽崟</el-col>
+ <el-col :span="12" style="text-align: right;">
+ <!-- 鐐瑰嚮杩斿洖锛屽綋鍓嶉〉闈㈠�间负false -->
+ <!-- <el-button type="primary" size="mini" style="background: #004EA2; "
+ icon="el-icon-circle-plus-outline">鏂板</el-button> -->
+ <el-button @click="comBack" type="primary" size="mini" icon="el-icon-back"
+ style="background: #004EA2; ">杩斿洖</el-button>
+ </el-col>
+ </el-row>
+ <el-form :model="processInspectVo" ref="addInspectionform" class="addInspectionform" label-position="right"
+ label-width="120px" size="small">
+ <div class="formwrapper">
+ <el-row>
+ <el-col :span="7">
+ <el-form-item label="璁㈠崟鍙凤細">
+ <el-input disabled @blur="selectInfoByOrderId" style="width: 180px;"
+ v-model="processInspectVo.orderNumber" placeholder="璇疯緭鍏ヨ鍗曞彿" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="瀹㈡埛鍚嶇О锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.prname"
+ placeholder="璇疯緭鍏ュ鎴峰悕绉�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="宸ョ▼鍚嶇О锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.sname"
+ placeholder="璇疯緭鍏ュ伐绋嬪悕绉�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="7">
+ <el-form-item label="浜у搧鍚嶇О锛�">
+ <el-select disabled @change="changeOptionsSamplename" style="width: 180px;"
+ v-model="processInspectVo.material" size="small" placeholder="璇烽�夋嫨浜у搧鍚嶇О">
+ <el-option v-for="item in optionsSamplename" :key="item.id" :label="item.name"
+ :value="item.id + '-' + item.name">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="璐ㄩ噺杩芥函鍙凤細">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.qualityTraceability"
+ placeholder="璇疯緭鍏ヨ拷婧彿" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="浜у搧缂栫爜锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.mcode"
+ placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="7">
+ <el-form-item label="瑙勬牸鍨嬪彿锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.specificationsModel"
+ placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="鍗曚綅锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.unit"
+ placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="7">
+ <el-form-item label="鏁伴噺锛�">
+ <el-input disabled style="width: 180px;" v-model="processInspectVo.quantity"
+ placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="3" style="display: flex;justify-content: end;">
+ <!-- <el-button type="primary" :disabled="isAddProject" @click="addTestProjevt">鐢熸垚妫�楠岄」鐩�</el-button> -->
+ </el-col>
+ </el-row>
+ </div>
+ </el-form>
+ </div>
+ <div class="inspectionProject">
+ <el-row>
+ <el-col :span="12" class="inspectionProject_span">妫�楠岄」鐩�</el-col>
+ <el-col v-if="!isUpBtn" :span="12" class="inspectionProject_span"
+ style="display: flex;justify-content: end;">
+ <el-button size="mini" @click="clickDeleteInspectionColumn()">鍒犻櫎妫�楠屽�煎垪</el-button>
+ <el-button style="margin-right: 30px;" size="mini"
+ @click="clickAddInspectionColumn()">娣诲姞妫�楠屽�煎垪</el-button>
+ <!-- <el-button
+ size="mini"
+ style="margin-right: 30px;"
+ @click="clickAddLine()"
+ >娣诲姞妫�楠岃</el-button
+ > -->
+ </el-col>
+ </el-row>
+ <el-table :data="inspectionItems" max-height="420" :span-method="handleSpanMethod" height="calc(100vh - 550px)"
+ style="width: 100%">
+ <el-table-column type="index" label="搴忓彿" width="60"></el-table-column>
+ <el-table-column label="椤圭洰" prop="father"></el-table-column>
+ <el-table-column prop="name" label="鎸囨爣"></el-table-column>
+ <el-table-column prop="unit" label="鍗曚綅"></el-table-column>
+ <el-table-column prop="required" label="鏍囧噯鍊�"></el-table-column>
+ <el-table-column prop="internal" label="鍐呮祴鍊�"></el-table-column>
+ <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��"
+ min-width="100" style="text-align: center;">
+ <template slot-scope="scope">
+ <el-tooltip :disabled="scope.row.dname != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�"
+ placement="top-start">
+ <el-input :disabled="scope.row.dname === null" v-model="scope.row.empiricalValueAddss[index]"
+ @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input>
+ </el-tooltip>
+ </template>
+ </el-table-column>
+ <el-table-column prop="dname" label="璇曢獙璁惧" min-width="100">
+ <template slot-scope="scope">
+ <el-button type="text" @click="clickTableSelect(scope)">{{
+ scope.row.dname == null ? "璇烽�夋嫨" : scope.row.dname
+ }}</el-button>
+ </template>
+ </el-table-column>
+ <el-table-column label="缁撹">
+ <template slot-scope="scope">
+ <span style="color: #34BD66;" v-if="scope.row.result === 1">鍚堟牸</span>
+ <span style="color: #E84738;" v-else-if="scope.row.result === 0">涓嶅悎鏍�</span>
+ <span v-show="scope.row.result === null">鏆傛湭缁撹</span>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column v-if="detailId == null" label="鎿嶄綔" width="100">
+ <template slot-scope="scope">
+ <el-button type="text" @click="clickDeleteline(scope)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column> -->
+ </el-table>
+ </div>
+ <div class="inspectionResult">
+ <span>妫�娴嬬粨鏋�</span>
+ <el-table :data="inspectionResultForm">
+ <el-table-column prop="id" label="鐗╂枡缂栧彿"></el-table-column>
+ <el-table-column prop="name" label="鐗╂枡鍚嶇О"></el-table-column>
+ <el-table-column prop="inspecter" label="妫�楠屽憳"></el-table-column>
+ <el-table-column prop="conclusion" label="妫�楠岀粨璁�">
+ <template slot-scope="scope">
+ <span style="color: #34BD66;" v-if="scope.row.conclusion === 1">鍚堟牸</span>
+ <span style="color: #E84738;" v-else-if="scope.row.conclusion === 0">涓嶅悎鏍�</span>
+ <span v-else-if="scope.row.conclusion === null || scope.row.conclusion === undefined">鏆傛湭缁撹</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="operation" label="涓婃姤">
+ <template slot-scope="scope">
+ <el-button v-if="scope.row.conclusion === null || scope.row.conclusion === undefined" type="primary"
+ @click="escalation" size="small">涓婃姤</el-button>
+ <el-button v-else type="success" size="small">宸蹭笂鎶�</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <el-dialog title="璇烽�夋嫨璁惧" :visible.sync="centerDialogVisible" width="20%">
+ <div class="div_device_dialog">
+ <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText" style="margin-bottom: 6px;">
+ </el-input>
+ <el-tree class="filter-tree" :data="materialOptions" :props="defaultProps" default-expand-all
+ highlight-current @node-click="nodeClick" :filter-node-method="filterNode" ref="tree">
+ <div class="custom-tree-node" slot-scope="{ data }">
+ <span><i :class="`node_i ${data.children ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>{{
+ data.name }}</span>
+ </div>
+ </el-tree>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="centerDialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="clickNodeSure()">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+export default {
+ props: ['rowInfo'],
+ data() {
+ return {
+ isUpBtn: false,
+ showUp: false,
+ isAddProject: false,
+ showLook: false,
+ detailId: 0,
+ rowInfp: {},
+ search: {
+ countSize: 10,
+ pageSize: 1,
+ result: "", // 妫�娴嬬姸鎬�
+ name: "", // 浜у搧鍚嶇О
+ techfather: "" // 宸ュ簭
+ },
+ optionsSamplename: [],
+ inspectionTable: [],
+ tableColumn: [],
+ optionSoptionSprocesses: [],
+ optionTechnology: [],
+ inspectionTableTotal: 0,
+ pageSize: 10,
+ currentPage: 1,
+ treeProject: [],
+ // 娣诲姞鍒�
+ empiricalValueAdd: 1,
+ // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂�
+ empiricalValueAddMaxNumber: 0,
+ showAddPage: false,
+ processInspectVo: {
+ id: null,
+ material: null,
+ mcode: null,
+ prname: null,
+ sname: null,
+ orderNumber: "D-001",
+ qualityTraceability: null,
+ quantity: null,
+ specificationsModel: null,
+ unit: null,
+ technologyId: null
+ },
+ InspectioniD: null,
+ addInspectionform: [{
+ number: "",
+ username: "",
+ projectname: "",
+ tracenumber: "",
+ code: "",
+ class: "",
+ specificationmodel: "",
+ unit: "",
+ quantity: "",
+ group: "",
+ worker: "",
+ machine: ""
+ }],
+ inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍�
+ inspectionResultForm: [{
+ id: "",
+ name: "",
+ inspecter: "",
+ conclusion: "",
+ operation: ""
+ }],
+ options: [],
+ value: "",
+ rowList: [],
+ spanArr: [],
+ position: 0,
+ // 璁惧閫夋嫨鏍戞樉绀�
+ centerDialogVisible: false,
+ filterText: "",
+ materialOptions: [],
+ defaultProps: {
+ // 璁惧鏍戞暟鎹缃�
+ children: "children",
+ label: "name"
+ },
+ nodeData: {
+ id: 0,
+ name: null
+ }, // node鐐瑰嚮淇濆瓨褰撳墠鐐瑰嚮鏁版嵁
+ clickSelectDevice: {
+ index: null, // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岀储寮�
+ rpId: null // 鐐瑰嚮閫夋嫨瀛樺偍褰撳墠琛岄」鐩甀d
+ }
+ };
+ },
+ watch: {
+ // filterText(val) {
+ // this.$refs.tree.filter(val);
+ // }
+ },
+ mounted() {
+ if (this.rowInfo.result != null && this.rowInfo.result != '') {
+ this.isUpBtn = true
+ }
+ this.processInspectVo.material = this.rowInfo.material
+ this.processInspectVo.mcode = this.rowInfo.material_code
+ this.processInspectVo.orderNumber = this.rowInfo.order_number
+ this.processInspectVo.qualityTraceability = this.rowInfo.quality_traceability
+ this.processInspectVo.specificationsModel = this.rowInfo.specifications_model
+ this.processInspectVo.unit = this.rowInfo.unit
+ this.processInspectVo.quantity = this.rowInfo.quantity
+ this.processInspectVo.prname = this.rowInfo.customer_name
+ this.processInspectVo.sname = this.rowInfo.project_name
+ this.inspectionResultForm[0].id = this.rowInfo.material_code
+ this.inspectionResultForm[0].name = this.rowInfo.material
+ this.inspectionResultForm[0].conclusion = this.rowInfo.result
+ this.detailId = this.rowInfo.id
+ this.getTableData()
+ // this.getOptions();
+ },
+ methods: {
+ // blurNode(row){
+ // console.log(11);
+ // row.isSelectDevice=false
+ // },
+ escalation() {
+ let arr = this.inspectionItems
+ let bl = false
+ for (let index = 0; index < arr.length; index++) {
+ const element = arr[index];
+ if (element.dname != null && element.empiricalValueAddss[0] != '') {
+ bl = true
+ break
+ } else {
+ bl = false
+ }
+ }
+ if (bl != true) {
+ this.$message({
+ message: '璇峰厛妫�娴嬩竴椤归」鐩紒',
+ type: 'warning'
+ });
+ return
+ }
+ let pro = this.inspectionItems.filter(item => {
+ return item.result === 0;
+ })
+ if (pro.length > 0) {
+ this.$prompt('璇疯緭鍏ヤ笉鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ inputPattern: /^\d+$/,
+ inputErrorMessage: '璇疯緭鍏ユ纭暟瀛楁牸寮�'
+ }).then(({ value }) => {
+ this.$axios.post(this.$api.url.finishedInspectUpdateFinishInspectsById, {
+ id: this.detailId,
+ number: value
+ }).then(res => {
+ if (res.code == 200) {
+ this.$message({
+ message: '涓婃姤鎴愬姛',
+ type: 'success'
+ });
+ this.$parent.comBackMain(true)
+ } else {
+ this.$message({
+ message: res.message,
+ type: 'warning'
+ });
+ }
+
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '鍙栨秷杈撳叆'
+ });
+ });
+ } else {
+ this.$axios.post(this.$api.url.finishedInspectUpdateFinishInspectsById, {
+ id: this.detailId
+ }).then(res => {
+ if (res.code == 200) {
+ if (res.message === '椤圭洰鏈楠屽畬!') {
+ this.$message({
+ message: res.message,
+ type: 'warning'
+ });
+ return
+ }
+ // this.$message({
+ // message: '涓婃姤鎴愬姛',
+ // type: 'success'
+ // });
+ this.$parent.comBackMain(true)
+ } else {
+ this.$message({
+ message: res.message,
+ type: 'warning'
+ });
+ }
+ })
+ }
+ },
+ changeOptionsSamplename() {
+ let id = this.processInspectVo.material.split("-")[0]
+ let sample = this.optionsSamplename.filter(o => {
+ return o.id == id
+ })[0]
+ this.processInspectVo.qualityTraceability = sample.qualityTraceability
+ this.processInspectVo.mcode = sample.mcode
+ this.processInspectVo.specificationsModel = sample.specifications
+ this.processInspectVo.unit = sample.unit
+ },
+ comBack() {
+ this.$parent.comBackMain()
+ },
+ handleClick(row) {
+ this.rowInfp = row
+ this.showLook = true
+ },
+ updateInsInfo(row) {
+ this.rowInfp = row
+ this.showUp = true
+ },
+ combackMain() {
+ this.showUp = false
+ this.showLook = false
+ },
+ searchPro() {
+ this.search.countSize = this.pageSize
+ this.search.pageSize = this.currentPage
+ this.defaultInitializationTable()
+ },
+ // 鐐瑰嚮璁惧鏍戜繚瀛樼偣鍑昏褰�
+ nodeClick(data) {
+ if (data.id != undefined) this.nodeData = data;
+ },
+ // 璁惧鏍戣繃婊ゆ悳绱�
+ filterNode(value, data) {
+ if (!value) return true;
+ return data.name.indexOf(value) !== -1;
+ },
+ // 鑾峰彇璁惧鏍戝唴瀹�
+ getOptions(row) {
+ this.$axios.get(this.$api.url.inspectionItemChooseDev, {
+ params: {
+ father: row.father,
+ name: row.name,
+ technologyId: this.processInspectVo.technologyId
+ }
+ }).then(res => {
+ this.materialOptions = res.data;
+ if (this.materialOptions.length === 1 && row.did != null) {
+ this.$message({
+ message: '璇ラ」鐩笅鍙湁涓�涓瘯楠岃澶囷紝鏃犻渶閫夋嫨锛�',
+ type: 'warning'
+ });
+ return
+ }
+ row.isSelectDevice = true
+ });
+ },
+ // 鐐瑰嚮琛ㄦ牸閫夋嫨瑙﹀彂
+ clickTableSelect(scope) {
+ this.centerDialogVisible = true;
+ this.clickSelectDevice.index = scope.$index;
+ this.clickSelectDevice.rpId = scope.row.id;
+ this.getOptions(scope.row);
+ },
+ // 鐐瑰嚮鏍戦噷闈㈢殑纭畾
+ clickNodeSure(row) {
+ if (this.detailId == null) {
+ this.projectTable[this.clickSelectDevice.index].deviceId = this.nodeData.id;
+ this.projectTable[this.clickSelectDevice.index].deviceName = this.nodeData.name;
+ this.centerDialogVisible = false;
+ } else {
+ this.$axios.post(this.$api.url.inspectionItemUpdateDevByInsId, {
+ id: this.clickSelectDevice.rpId,
+ devId: this.nodeData.id,
+ type: 2
+ }).then(res => {
+ this.centerDialogVisible = false;
+ this.inspectionItems.forEach(a => {
+ if (a.id == this.clickSelectDevice.rpId) {
+ a.dname = this.nodeData.name
+ }
+ })
+ });
+ }
+ },
+ changeState(row, index) {
+ if (row.did != null && row.did != '') {
+ // let val = row.empiricalValueAddss.filter(item => {
+ // return item != '' && item != null
+ // })
+ // let eq = val.filter(item => {
+ // return /^[^><=]/.test(item)
+ // })
+ // if (eq.length > 0) {
+ // this.$message({
+ // message: "妫�娴嬪�糩" + eq + "]鏍煎紡棣栦綅搴斿寘鍚�>,<鎴栬��=",
+ // type: 'warning'
+ // });
+ // return
+ // }
+ let str = ""
+ row.empiricalValueAddss.forEach(e => {
+ str += e + ","
+ })
+ if (str.slice(0, -1) === '' || str.slice(0, -1) === null || str.slice(0, -1) === undefined) {
+ return
+ }
+ this.$axios.post(this.$api.url.inspectionItemlose_focus_update, {
+ deviceId: row.did,
+ inspectionItemId: row.id,
+ inspectionValue: str.slice(0, -1)
+ }, {
+ headers: {
+ "Content-Type": "application/json"
+ }
+ }).then(res => {
+ row.result = res.data.result
+ row.username = res.data.username
+ })
+ } else {
+ this.$message({
+ message: '璇烽�夋嫨鎷╄澶囷紒',
+ type: 'warning'
+ });
+ }
+ },
+ // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+ handleSizeChange(val) {
+ this.search.countSize = val;
+ this.defaultInitializationTable();
+ },
+ handleSpanMethod({
+ row,
+ column,
+ rowIndex,
+ columnIndex
+ }) {
+ if (columnIndex === 0) {
+ const _row = this.spanArr[rowIndex];
+ const _col = _row > 0 ? 1 : 0;
+ return {
+ rowspan: _row,
+ colspan: _col
+ }
+ }
+ if (columnIndex === 1) {
+ const _row = this.spanArr[rowIndex];
+ const _col = _row > 0 ? 1 : 0;
+ return {
+ rowspan: _row,
+ colspan: _col
+ }
+ }
+ },
+ // 鍚堝苟琛ㄦ牸
+ mergeTable() {
+ this.rowList = []
+ this.spanArr = []
+ this.position = 0
+ this.inspectionItems.forEach((item, index) => {
+ if (index === 0) {
+ this.spanArr.push(1);
+ this.position = 0;
+ } else {
+ if (this.inspectionItems[index].father === this.inspectionItems[index - 1].father) {
+ this.spanArr[this.position] += 1;
+ this.spanArr.push(0);
+ } else {
+ this.spanArr.push(1);
+ this.position = index;
+ }
+ }
+ })
+ },
+ changeOptionSoptionSprocesses() {
+ this.optionTechnology = []
+ let working = this.optionSoptionSprocesses.filter(item => {
+ return item.name === this.processInspectVo.techfather
+ })[0]
+ this.optionTechnology = working.children
+ },
+ addTestProjevt() {
+ // this.isAddProject = true
+ let val = JSON.parse(JSON.stringify(this.processInspectVo))
+ val.material = this.processInspectVo.material.split("-")[1]
+ val.id = this.processInspectVo.material.split("-")[0]
+ this.$axios.post(this.$api.url.finishedInspectAddFinish, val, {
+ headers: {
+ "Content-Type": "application/json"
+ }
+ }).then(res => {
+ if (res.code == 201) {
+ this.$message({
+ message: res.message,
+ type: 'warning'
+ });
+ return
+ }
+ this.detailId = res.data
+ this.inspectionResultForm[0].id = val.mcode
+ this.inspectionResultForm[0].name = val.material
+ this.getTableData()
+ })
+ },
+ getTableData() {
+ console.log(this.rowInfo);
+ this.$axios.get(this.$api.url.finishedInspectSelectFinishInspectsListById, {
+ params: {
+ id: this.rowInfo.id
+ }
+ }).then(res => {
+ this.processInspectVo.technologyId = res.data[0].techId
+ })
+ this.$axios.get(this.$api.url.inspectionItemListUser, {
+ params: {
+ id: this.detailId,
+ type: 2
+ }
+ }).then(res => {
+ if (res.data.length < 1) {
+ return
+ }
+ this.inspectionItems = res.data
+ let arr = []
+ let val = JSON.parse(JSON.stringify(this.inspectionItems))
+ const uName = []
+ //杞垚涓�缁存暟缁�
+ val.forEach(l => {
+ let father = l.father
+ l.children.forEach(c => {
+ c.father = father
+ c.empiricalValueAddss = []
+ if (c.inspectionValue != '' && c.inspectionValue != null) {
+ c.empiricalValueAddss = c.inspectionValue.split(",");
+ } else {
+ c.empiricalValueAddss.push("")
+ }
+ uName.push(c['username'])
+ c.isSelectDevice = false
+ arr.push(c)
+ })
+ })
+ this.inspectionItems = arr
+ let arrSort = JSON.parse(JSON.stringify(arr))
+ //鏍规嵁闆嗗悎瀵硅薄鏁扮粍闀垮害鎺掑簭
+ arrSort.sort((a, b) => {
+ if (a.empiricalValueAddss.length < b.empiricalValueAddss.length) {
+ return -1; // a鎺掑湪b鍓嶉潰
+ } else if (a.empiricalValueAddss.length > b.empiricalValueAddss.length) {
+ return 1; // a鎺掑湪b鍚庨潰
+ } else {
+ return 0; // 淇濇寔鐩稿椤哄簭涓嶅彉
+ }
+ });
+ // console.log(arrSort);
+ console.log(uName);
+ let name = [...new Set(uName)].filter(item => item !== null);
+ let rname = ''
+ name.forEach(m => {
+ rname += m + ","
+ })
+ this.inspectionResultForm[0].inspecter = rname.slice(0, -1)
+ this.empiricalValueAdd = arrSort[arrSort.length - 1].empiricalValueAddss.length
+ this.mergeTable(arr)
+ })
+ },
+ selectSample() {
+ let sample = this.optionsSamplename.filter(item => {
+ return item.name === this.processInspectVo.material
+ })[0]
+ this.processInspectVo.techfather = null
+ this.processInspectVo.techname = null
+ this.processInspectVo.materialCode = sample.code
+ this.processInspectVo.specificationsModel = sample.specifications
+ this.processInspectVo.unit = sample.unit
+ this.optionSoptionSprocesses = []
+ this.optionSoptionSprocesses = sample.children
+ },
+ selectInfoByOrderId() {
+ this.$axios.get(this.$api.url.finishedInspectChooseMater, {
+ params: {
+ orderNumber: this.processInspectVo.orderNumber
+ }
+ }).then(res => {
+ if (res.data.length > 0) {
+ console.log(res.data);
+ this.processInspectVo.sname = res.data[0].sname
+ this.processInspectVo.prname = res.data[0].prname
+ this.optionsSamplename = res.data[0].children
+ } else {
+ this.$message({
+ message: '娌℃湁璇ヨ鍗曞彿锛�',
+ type: 'warning'
+ });
+ }
+ })
+ },
+ // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
+ handleCurrentChange(val) {
+ this.search.pageSize = val;
+ this.defaultInitializationTable();
+ },
+ // 鏄剧ず鏂板椤甸潰
+ handleAddNew() {
+ this.showAddPage = true;
+ // this.getTableData()
+ },
+ // 琛ㄦ牸鍒濆鍖栨帴鍙�
+ defaultInitializationTable() {
+ this.$axios
+ .post(this.$api.url.selectProcessInspectsList, this.search)
+ .then(res => {
+ this.inspectionTableTotal = res.data.total;
+ this.inspectionTable = res.data.row;
+ });
+ },
+ // 娣诲姞琛�
+ clickAddLine() {
+ let obj = {
+ material: "",
+ materialCode: "",
+ orderNumber: "",
+ quantity: 0,
+ specificationsModel: "",
+ techfather: "",
+ techname: "",
+ technologyId: 0,
+ unit: ""
+ };
+ this.inspectionItems.push(obj);
+ },
+ // 鍒犻櫎琛�
+ clickDeleteline(scope) {
+ this.inspectionItems.splice(scope.$index, 1);
+ },
+ // 鍒犻櫎妫�楠屽�煎垪
+ clickDeleteInspectionColumn() {
+ if (this.empiricalValueAdd - 1 === 0) { } else {
+ if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
+ this.empiricalValueAdd = this.empiricalValueAdd - 1;
+ this.inspectionItems.forEach(i => {
+ i.testValueList.splice(this.empiricalValueAdd, 1);
+ });
+ }
+ }
+ },
+ // 娣诲姞妫�楠屽�煎垪
+ clickAddInspectionColumn() {
+ this.empiricalValueAdd = this.empiricalValueAdd + 1;
+ }
+ },
+ created() {
+ this.defaultInitializationTable(); // 鍒濆鍖栬〃鏍兼暟鎹�
+ }
+}
+</script>
+
+<style></style>
\ No newline at end of file
diff --git a/src/views/quality/finishedProductInspection/index.vue b/src/views/quality/finishedProductInspection/index.vue
new file mode 100644
index 0000000..73c770a
--- /dev/null
+++ b/src/views/quality/finishedProductInspection/index.vue
@@ -0,0 +1,480 @@
+<template>
+ <div class="content-main">
+ <div v-if="!showAdd&&!showLook&&!showUp" class="rawPage">
+ <!-- <div class="nav"> -->
+ <!-- <div class="title">
+ <el-row>
+ <el-col :span="12">浜у搧妫�楠�</el-col>
+ <el-col :span="12">
+ <el-button @click="handleAddNew" type="primary" size="mini" icon="el-icon-plus"
+ style="background: #004EA2; ">鏂板</el-button>
+ <el-button icon="el-icon-delete" size="mini">鍒犻櫎</el-button>
+ <el-button icon="el-icon-download" size="mini">瀵煎嚭</el-button>
+ </el-col>
+ </el-row>
+ </div> -->
+ <!-- <span>妫�娴嬬粨鏋滐細</span>
+ <el-select v-model="searchData.result" size="small" placeholder="璇烽�夋嫨" style="width: 224px;margin-right: 52px;">
+ <el-option :value="''" label="鍏ㄩ儴"></el-option>
+ <el-option :value="1" label="鍚堟牸"></el-option>
+ <el-option :value="0" label="涓嶅悎鏍�"></el-option>
+ </el-select>
+ <span>浜у搧鍚嶇О锛�</span>
+ <el-input v-model="searchData.material" size="small" placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�"
+ style="width: 224px;margin-right: 52px;"></el-input>
+ <el-button size="mini" @click="()=>{searchData={};getInspectionTableData()}"><span>閲� 缃�</span></el-button>
+ <el-button size="mini" type="primary" @click="getInspectionTableData" style="background: #004EA2;"><span>鏌�
+ 璇�</span></el-button> -->
+ <!-- </div> -->
+ <basic-container>
+ <ttable
+ :table="table"
+ @handleSelectionChange="handleSelectionChange"
+ :prelang="prelang"
+ :options="options"
+ :ajaxFun="ajaxFun"
+ ref="finishedProduct">
+ <template #toolbar></template>
+ </ttable>
+ </basic-container>
+ <!-- <div class="content-body">
+ <div class="inspectionTable">
+ <el-table ref="inspectionTable" height="620" :cell-style="{textAlign: 'center'}"
+ :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
+ :data="inspectionTable" style="width: 100%">
+ <el-table-column type="selection" width="50">
+ </el-table-column>
+ <el-table-column prop="order_number" label="璁㈠崟鍙�" min-width="100" />
+ <el-table-column prop="customer_name" label="瀹㈡埛鍚嶇О" min-width="80" />
+ <el-table-column prop="project_name" label="宸ョ▼鍚嶇О" min-width="80" />
+ <el-table-column prop="quality_traceability" label="璐ㄩ噺杩芥函鍙�" min-width="108" />
+ <el-table-column prop="material_code" label="浜у搧缂栫爜" min-width="100" />
+ <el-table-column prop="material" label="浜у搧澶х被" min-width="72" />
+ <el-table-column prop="specifications_model" label="瑙勬牸鍨嬪彿" min-width="110" />
+ <el-table-column prop="unit" label="鍗曚綅" min-width="50" />
+ <el-table-column prop="quantity" label="鏁伴噺" min-width="50" />
+ <el-table-column prop="detectionPeriod" label="妫�楠屾棩鏈�" min-width="80" />
+ <el-table-column prop="result" label="妫�娴嬬粨鏋�" min-width="80">
+ <template slot-scope="scope">
+ <span style="color: #34BD66;" v-if="scope.row.result === 1">鍚堟牸</span>
+ <span style="color: #E84738;" v-else-if="scope.row.result === 0">涓嶅悎鏍�</span>
+ <span v-else-if="scope.row.result === null || scope.row.result === undefined">鏆傛湭缁撹</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" min-width="80">
+ <template slot-scope="scope">
+ <el-button type="text" size="small" @click="goToDetail(scope.row)">鏌ョ湅</el-button>
+ <el-button type="text" size="small">鎵撳嵃</el-button>
+ <el-button v-if="scope.row.result == null" type="text" size="small"
+ @click="goUp(scope.row)">缂栬緫</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div> -->
+ <!-- 鍒嗛〉鍣� -->
+ <!-- <div class="pagination">
+ <el-pagination :current-page="pageParams.pageSize" :page-sizes="[10, 50, 100, 200]"
+ :page-size="pageParams.countSize" layout="total, sizes, prev, pager, next, jumper" :total="pageParams.total"
+ @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+ </div> -->
+ <!-- </div> -->
+ </div>
+ <div class="newPage" v-if="showAdd">
+ <finishedProductInspectionAdd />
+ </div>
+ <div class="newPage" v-if="showLook">
+ <finishedProductInspectionLook :rowInfo="rowInfo" />
+ </div>
+ <div class="newPage" v-if="showUp">
+ <finishedProductInspectionUp :rowInfo="rowInfo" />
+ </div>
+ </div>
+</template>
+
+
+<script>
+ import ttable from '@/views/common/ztt-table.vue'
+ import * as fecha from 'element-ui/lib/utils/date'
+ import finishedProductInspectionAdd from './finishedProductInspectionAdd'
+ import finishedProductInspectionUp from './finishedProductInspectionUp'
+ import finishedProductInspectionLook from './finishedProductInspectionLook'
+ import { page } from '@/api/quality/finishedProduct'
+ export default {
+ components: {
+ finishedProductInspectionAdd,
+ finishedProductInspectionUp,
+ finishedProductInspectionLook,
+ ttable
+ },
+ data() {
+ return {
+ result:[{label:'鍏ㄩ儴',value: ''},{label:'鍚堟牸',value: '1'},{label:'涓嶅悎鏍�',value: '0'}],
+ type: [1],
+ prelang: 'finishedProduct',
+ ajaxFun: page,
+ options: {
+ height: 300, // 榛樿楂樺害-涓轰簡琛ㄥご鍥哄畾
+ stripe: true, // 鏄惁涓烘枒椹汗 table
+ highlightCurrentRow: false, // 鏄惁瑕侀珮浜綋鍓嶈
+ border: true, // 鏄惁鏈夌旱鍚戣竟妗�
+ lazy: false, // 鏄惁闇�瑕佹噿鍔犺浇
+ fit: true, // 鍒楃殑瀹藉害鏄惁鑷拺寮�
+ multiSelect: true, //
+ seqNo: true,
+ isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳
+ isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H
+ isSearch: true, // 楂樼骇鏌ヨ鎸夐挳
+ defaultOrderBy: { column: 'createTime', direction: 'desc' },
+ },
+ table: {
+ total: 0,
+ currentPage: 1,
+ pageSize: 20,
+ data: [],
+ // 鏍囬
+ column: [
+ {
+ minWidth: '120',
+ prop: 'orderNumber',
+ label: '璁㈠崟鍙�',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text',
+ render: { fun: this.addOrUpdateHandle }
+ },
+ {
+ minWidth: '120',
+ prop: 'customerName',
+ label: '瀹㈡埛鍚嶇О',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ {
+ minWidth: '130',
+ width: '150',
+ prop: 'projectName',
+ label: '宸ョ▼鍚嶇О',
+ sort: true,
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text',
+ },
+ {
+ minWidth: '120',
+ prop: 'materialCode',
+ label: '浜у搧缂栫爜',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ {
+ minWidth: '120',
+ prop: 'material',
+ label: '浜у搧澶х被',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ {
+ minWidth: '120',
+ prop: 'specs',
+ label: '瑙勬牸鍨嬪彿',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ {
+ minWidth: '120',
+ prop: 'unit',
+ label: '鍗曚綅',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ {
+ minWidth: '120',
+ prop: 'quantity',
+ label: '鏁伴噺',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'text'
+ },
+ {
+ minWidth: '120',
+ prop: 'createTime',
+ label: '妫�楠屾棩鏈�',
+ sort: true,
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'datetimerange',
+ formatter: this.formatDateTime,
+ },
+ {
+ minWidth: '120',
+ prop: 'result',
+ label: '妫�娴嬬粨鏋�',
+ isTrue: true,
+ isSearch: true,
+ searchInfoType: 'select',
+ formatter: this.formatResult,
+ optList: () => {
+ return this.result
+ }
+ },
+ ],
+ toolbar: [
+ {
+ text: '鏂板',
+ type: 'primary',
+ fun: ()=>this.showAdd=true
+ },
+ {
+ text: '鍒犻櫎',
+ },
+ {
+ text: '瀵煎嚭',
+ }
+ ],
+ operator: [{
+ text: '鎵撳嵃',
+ type: 'text',
+ size: 'small',
+ },{
+ text: '浣滃簾',
+ type: 'text',
+ size: 'small',
+ fun: this.deleteHandle
+ }],
+ operatorConfig: {
+ fixed: 'right',
+ label: '鎿嶄綔',
+ width: 100,
+ minWidth: 100
+ },
+ },
+
+
+
+
+
+
+ searchData: {
+ result: '',
+ material: '',
+ },
+ // 涓绘満宸ヤ笅鎷夋
+ usernameOptions: [],
+ inspectionTable: [],
+ rowInfo: {},
+ pageParams: {
+ countSize: 10, //姣忛〉鏁伴噺
+ pageSize: 1, // 褰撳墠椤电爜
+ total: 0
+ },
+ showAddPage: false,
+ showAdd: false,
+ showLook: false,
+ showUp: false,
+ showDetail: false,
+ addInspectionform: [{
+ number: '',
+ username: '',
+ projectname: '',
+ tracenumber: '',
+ code: '',
+ class: '',
+ specificationmodel: '',
+ unit: '',
+ quantity: '',
+ group: '',
+ worker: '',
+ machine: ''
+ }],
+ inspectionItems: [{
+ project: '甯冮殕杩�',
+ unit: '鍚�',
+ standardVal: '8219384314',
+ controlVal: '9823401',
+ detectionVal: '11111',
+ device: '',
+ conclusion: '鍚堟牸'
+ }],
+ inspectionResultForm: [{
+ id: '274024',
+ name: '111',
+ inspecter: '111',
+ conclusion: '',
+ operation: ''
+ }],
+ finishedInsInfo: {}
+ }
+ },
+ created() {
+ this.init()
+ // this.getInspectionTableData()
+ },
+ methods: {
+ formatResult(row, column, cellValue){
+ if(cellValue != undefined || cellValue != null){
+ if(cellValue == 0){
+ return "<span style='color:#E84738;'>涓嶅悎鏍�</span>"
+ }else if(cellValue == 1){
+ return "<span style='color:#34BD66;'>鍚堟牸</span>"
+ }
+ }
+ },
+ formatDateTime(row, column, cellValue) {
+ return cellValue ? fecha.format(new Date(cellValue), 'yyyy-MM-dd') : ''
+ },
+ addOrUpdateHandle(row) {
+ this.$router.push({
+ name: 'rawMaterialForm',
+ query: { id: row == null ? null : row.id }
+ })
+ },
+ handleSelectionChange(){
+
+ },
+ // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+ handleSizeChange(val) {
+ console.log(`姣忛〉 ${val} 鏉)
+ this.currentPage = 1
+ this.pageSize = val
+ },
+ // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
+ handleCurrentChange(val) {
+ console.log(`褰撳墠椤�: ${val}`)
+ this.currentPage = val
+ },
+ handleAddNew() {
+ this.showAdd = true
+ },
+ // async getInspectionTableData() {
+ // const {
+ // data: {
+ // row,
+ // total
+ // }
+ // } = await this.$axios.get(this.$api.url.finishedInsListPage, {
+ // params: {
+ // ...this.pageParams,
+ // ...this.searchData
+ // }
+ // })
+ // this.inspectionTable = row
+ // this.pageParams.total = total
+ // },
+ goToDetail(row) {
+ this.rowInfo = row
+ this.showLook = true
+ },
+ goUp(row) {
+ this.rowInfo = row
+ this.showUp = true
+ },
+ async init() {
+ // const {data} = await this.$axios.get(this.$api.url.finishedInspectUser)
+ // this.usernameOptions = data
+
+ },
+ comBackMain(val) {
+ this.showAdd = false
+ this.showLook = false
+ this.showUp = false
+ this.init()
+ // this.getInspectionTableData()
+ if (val) {
+ this.$parent.removeAllTab()
+ }
+ }
+ }
+
+ }
+</script>
+
+<style scope="scope">
+ .title {
+ padding: 12px;
+
+ }
+
+ .nav {
+ display: flex;
+ padding: 20px 20px;
+ align-items: center;
+ background-color: #fff;
+ }
+
+ .nav * {
+ font-size: 14px;
+ }
+
+ .content-body {
+ background-color: #fff;
+ overflow: hidden;
+ margin-top: 12px;
+ }
+
+ .inspectionTable {
+ padding: 20px 20px;
+ }
+
+ .pagination {
+ float: right;
+ margin-right: 20px;
+ }
+
+ .newPage {
+ overflow: hidden;
+ }
+
+ .header {
+ padding: 12px;
+ }
+
+ .addInspectionform {
+ background-color: #fff;
+ }
+
+ .addInspectionform .formwrapper {
+ padding: 20px 0px;
+ margin-left: 100px;
+ }
+
+ .inspectionProject span {
+ display: block;
+ padding: 5px 0px;
+ }
+
+ .inspectionProject .el-table {
+ background-color: #fff;
+ padding: 10px 12px;
+ }
+
+ .inspectionResult span {
+ display: block;
+ padding: 5px 0px;
+ }
+
+ .inspectionResult .el-table {
+ background-color: #fff;
+ padding: 10px 12px;
+ }
+
+ .rawPage {
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ overflow-y: scroll;
+ }
+
+ .rawPage .content-body {
+ flex: 1;
+ }
+
+ /* .inspectionTable{
+ flex: 1;
+ overflow-y: scroll;
+} */
+</style>
\ No newline at end of file
diff --git a/src/views/quality/rawMaterial/rawMaterial-form.vue b/src/views/quality/rawMaterial/rawMaterial-form.vue
index 46ad3e2..d877ccd 100644
--- a/src/views/quality/rawMaterial/rawMaterial-form.vue
+++ b/src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -6,7 +6,7 @@
<h2>缂栬緫-鍘熸潗鏂欐楠�</h2>
</div>
<div class="btn-group header-right">
- <el-button @click="save()">淇濆瓨</el-button>
+ <el-button @click="save()" v-if="this.dataForm.id==null">淇濆瓨</el-button>
</div>
</div>
<div class="page-main">
@@ -100,33 +100,59 @@
</div>
</el-col>
</el-row>
- <el-row style="width:100%;margin-top:-30px">
+ <el-row style="width:100%;">
<el-col :span="24">
- <avue-crud
- ref="crud"
- :option="tableOption"
- @current-row-change="changeEquipment"
- :data="list"
- v-model="form">
- <template slot="testValue" slot-scope="scope">
- <el-tooltip :disabled="scope.row.equipmentId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�"
- placement="top-start">
- <el-input :disabled="scope.row.equipmentId == null" v-model="scope.row.testValue"
- @blur="updateTestValue(scope.row)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input>
- </el-tooltip>
- </template>
- <template slot="deviceName" slot-scope="scope">
- <el-select v-model="scope.row.equipmentId" filterable>
- <el-option v-for="(item,index) in deviceList"
- :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option>
- </el-select>
- </template>
- <template slot="testState" slot-scope="scope">
- <span v-if="scope.row.testState == 0" style="color:#F56C6C">涓嶅悎鏍�</span>
- <span v-else-if="scope.row.testState == 1" style="color:#67C23A">鍚堟牸</span>
- <span v-else>鏆傛棤缁撹</span>
- </template>
- </avue-crud>
+ <el-table :data="list" border style="width: 100%;" height="320">
+ <el-table-column type="index" label="搴忓彿" width="60">
+ </el-table-column>
+ <el-table-column prop="name" label="椤圭洰" width="260">
+ <template slot-scope="scope">
+ <el-input :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name"
+ placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="unit" label="鍗曚綅" width="260">
+ <template slot-scope="scope">
+ <el-input :disabled="dataForm.id != null" v-model="scope.row.unit" placeholder="璇疯緭鍏ュ崟浣�"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="required" label="鏍囧噯鍊�" width="260">
+ <template slot-scope="scope">
+ <el-input :disabled="dataForm.id != null" v-model="scope.row.required"
+ placeholder="璇疯緭鍏ユ爣鍑嗗��"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="testValue" label="妫�娴嬪��" min-width="260" v-for="(item, index) in empiricalValueAdd"
+ :key="index">
+ <template slot-scope="scope">
+ <el-tooltip :disabled="scope.row.equipmentId != null" class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�"
+ placement="top-start">
+ <el-input :disabled="scope.row.equipmentId == null" v-model="scope.row.testValueList[index]"
+ @blur="updateTestValue(scope.row)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input>
+ </el-tooltip>
+ </template>
+ </el-table-column>
+ <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="260">
+ <template slot-scope="scope">
+ <el-select style="width:100%" v-model="scope.row.equipmentId" filterable @change="updateDevice(scope.row)">
+ <el-option v-for="(item,index) in deviceList"
+ :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column fixed="right" v-if="dataForm.id != null" prop="testState" label="缁撹" min-width="150">
+ <template slot-scope="scope">
+ <span v-if="scope.row.testState == 0" style="color:#F56C6C">涓嶅悎鏍�</span>
+ <span v-else-if="scope.row.testState == 1" style="color:#67C23A">鍚堟牸</span>
+ <span v-else>鏆傛棤缁撹</span>
+ </template>
+ </el-table-column>
+ <el-table-column fixed="right" style="background-color: white;" v-if="dataForm.id == null" label="鎿嶄綔" width="150">
+ <template slot-scope="scope">
+ <el-button type="text" @click="clickDeleteline(scope)">鍙栨秷</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
</el-col>
</el-row>
</div>
@@ -141,36 +167,57 @@
:option="option"
:data="conclusionTable"
v-model="conclusion">
+ <template slot="judgeState" slot-scope="scope">
+ <el-tag type="success" v-if="scope.row.judgeState == 1">鍚堟牸</el-tag>
+ <el-tag type="danger" v-else-if="scope.row.judgeState == 0">涓嶅悎鏍�</el-tag>
+ </template>
<template #menu>
- <el-button type="text" size="small">涓婃姤</el-button>
+ <el-button type="text" @click="submitSave()" size="small">涓婃姤</el-button>
</template>
</avue-crud>
</el-col>
</el-row>
</div>
-
</div>
</div>
</template>
<script>
import { object,conclusion } from '@/const/crud/quality/rawMaterial'
-import { selectDevice,addRawInspects,getObj,updateRawInsProduct } from '@/api/quality/rawMaterial'
+import {
+ selectDevice,
+ addRawInspects,
+ getObj,
+ updateRawInsProduct,
+ updateRawInspectsById,
+ updateDeviceById, } from '@/api/quality/rawMaterial'
export default {
data(){
return{
- columnIndex: 2,
+ // 娣诲姞鍒�
+ empiricalValueAdd: 1,
+ // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂�
+ empiricalValueAddMaxNumber: 0,
columnList: [],
dataForm:{
id: null,
+ judgeState: null,
formTime: '2023-10-28 00:00:00',
+ message: '-2050314,1,1,*,1002',
name: 'name',
code: 'code4',
specs: 'specs',
unit: 'mm',
number: '111',
supplier: 'supplier',
- rawInsProducts: null,
+ rawInsProducts: [{
+ equipmentId: 0,
+ name: '',
+ required: '',
+ testValue: '',
+ unit: '',
+ testValueList: []
+ }]
},
form: null,
list:[],
@@ -197,83 +244,59 @@
this.getDeviceList()
},
watch:{
- 'columnList.length':function(newVal){
- const column = [{
- label: '椤圭洰',
- width: 260,
- prop: 'name',
- span: 24,
- type: 'text',
- cell: true,
- }, {
- width: 260,
- label: '鍗曚綅',
- prop: 'unit',
- span: 24,
- type: 'text',
- cell: true,
- }, {
- width: 260,
- label: '鏍囧噯鍊�',
- prop: 'required',
- type: 'text',
- span: 24,
- cell: true,
- }, {
- label: '妫�娴嬪��',
- prop: 'testValue',
- type: 'text',
- width: 260,
- slot: true,
- formSlot: true,
- cell: true,
- }, {
- label: '璇曢獙璁惧',
- prop: 'deviceName',
- type: 'select',
- cell: true,
- slot: true,
- formSlot: true,
- width: 260
- },{
- label: '缁撹',
- prop: 'testState',
- type: 'text',
- slot: true,
- formSlot: true,
- hide: true,
- fixed: 'right'
- }]
- if(newVal > 0){
- if(this.columnList.length > 0){
- this.tableOption.column = column
- this.columnList.forEach(item=>{
- this.tableOption.column.splice(4,0,item)
- })
- }
- }else{
- this.tableOption.column = column
- }
- },
+
},
methods:{
- changeEquipment(current,old){
- console.log(current,old)
+ updateDevice(row){
+ if(this.dataForm.id != null){
+ updateDeviceById({equiomentId:row.equipmentId,rpId:row.rpId}).then(res=>{
+ }).catch(error=>{
+ console.log(error)
+ })
+ }
+ },
+ submitSave(){
+ let pro = this.list.filter(item => {
+ return item.testState == 0;
+ })
+ if (pro.length > 0) {
+ this.$prompt('璇疯緭鍏ヤ笉鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ inputPattern: /^\d+$/,
+ inputErrorMessage: '璇疯緭鍏ユ纭暟瀛楁牸寮�'
+ }).then(({ value }) => {
+ let data = {
+ id: this.dataForm.id,
+ number: value
+ }
+ updateRawInspectsById(data).then(res => {
+ this.$message.success("涓婃姤鎴愬姛");
+ });
+ }).catch(() => {});
+ }else{
+ updateRawInspectsById({id:this.dataForm.id,number:0}).then(res => {
+ this.$message.success("涓婃姤鎴愬姛");
+ });
+ }
+ this.init()
},
addTeatValueColumn(){
- let propName = 'testValue' + this.columnIndex
- this.columnList.push({
- label: '妫�娴嬪��',
- prop: propName,
- type: 'text',
- width: 260,
- $cellEdit: true,
- disabled: this.list[0].equiomentId == null
- })
- this.columnIndex+=1
+ this.empiricalValueAdd = this.empiricalValueAdd + 1;
+ },
+ // 鍒犻櫎琛�
+ clickDeleteline(scope) {
+ this.list.splice(scope.$index, 1);
},
delTeatValueColumn(){
- this.columnList.pop()
+ if (this.empiricalValueAdd - 1 === 0) { } else {
+ if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
+ this.empiricalValueAdd = this.empiricalValueAdd - 1;
+ this.list.forEach(i => {
+ i.testValueList.splice(this.empiricalValueAdd, 1);
+ });
+ }
+ }
},
updateTestValue(row){
if(row.rpId == null){
@@ -282,7 +305,7 @@
let obj = {
equiomentId: row.equipmentId,
rpId: row.rpId,
- testValue: row.testValue
+ testValue: row.testValueList.join(",")
}
updateRawInsProduct(obj).then(res=>{
if(res.data.code === 0){
@@ -308,10 +331,18 @@
this.dataForm.number = data.number
this.dataForm.createTime = data.creatTime
this.dataForm.createUser = data.createUser
+ // this.dataForm.judgeState = data.judgeState
let userNameList = []
this.list = []
data.children.forEach(item=>{
userNameList.push(item.userName)
+ let arr = []
+ if(item.testValue != undefined ){
+ arr = item.testValue.split(",")
+ this.empiricalValueAdd = arr.length
+ }else{
+ this.empiricalValueAdd = 1
+ }
this.list.push({
equipmentId: item.equiomentId,
name: item.rpName,
@@ -319,14 +350,15 @@
testValue: item.testValue,
unit: item.rpUnit,
testState: item.testState,
- rpId: item.rpId
+ rpId: item.rpId,
+ testValueList: arr
})
})
this.conclusionTable = [{
code: data.code,
name: data.name,
userName: Array.from(new Set(userNameList)).join(','),
- testState: ''
+ judgeState: data.judgeState
}]
}).catch(error=>{
this.$message.error("鑾峰彇澶辫触",error)
@@ -339,8 +371,10 @@
save(){
let data = this.dataForm
data.rawInsProducts = this.list
- console.log(this.list)
- return
+ data.rawInsProducts.forEach(item=>{
+ let val = item.testValueList.join(",")
+ item.testValue = val
+ })
addRawInspects(data).then(res=>{
this.$message.success("淇濆瓨鎴愬姛")
}).catch(error=>{
@@ -350,12 +384,13 @@
// 娣诲姞琛�
clickAddLine() {
let obj = {
- $cellEdit: true,
equipmentId: null,
name: "",
required: "",
testValue: "",
- unit: ""
+ unit: "",
+ testState: null,
+ testValueList: [],
};
this.list.push(obj);
},
diff --git a/src/views/technology/document/document-form.vue b/src/views/technology/document/document-form.vue
index 95d7185..6877f74 100644
--- a/src/views/technology/document/document-form.vue
+++ b/src/views/technology/document/document-form.vue
@@ -974,7 +974,6 @@
bomId: this.dataForm.bomId,
})
).then((response) => {
- console.log(response)
this.routingList = response.data.data
})
} else {
@@ -1850,7 +1849,6 @@
allKeyValues = allKeyValues.concat(keyValues)
i = i + keyValues.length
}
- console.log("aaa--",allKeyValues)
this.materialCostList = allKeyValues
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
--
Gitblit v1.9.3