From 125b765551a31599e7e6f289ab722c28e98a8bfa Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 01 十一月 2023 20:25:47 +0800
Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before

---
 src/views/quality/processInspect/processInspect-form.vue |  510 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 510 insertions(+), 0 deletions(-)

diff --git a/src/views/quality/processInspect/processInspect-form.vue b/src/views/quality/processInspect/processInspect-form.vue
new file mode 100644
index 0000000..8cffa25
--- /dev/null
+++ b/src/views/quality/processInspect/processInspect-form.vue
@@ -0,0 +1,510 @@
+<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 v-if="resultVal != null && processInspectVo.id!=null">鏌ョ湅-杩囩▼妫�楠屽崟</h2>
+                <h2 v-else>缂栬緫-杩囩▼妫�楠屽崟</h2>
+            </div>
+            <div class="btn-group header-right">
+                <el-button @click="addTestProject" v-if="processInspectVo.id==null">鐢熸垚妫�楠岄」鐩�</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" :disabled="processInspectVo.id != null"
+                                    v-model="processInspectVo.orderNumber" placeholder="璇疯緭鍏ヨ鍗曞彿" autocomplete="off" />
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="6">
+                                <el-form-item label="浜у搧鍚嶇О锛�">
+                                    <el-select style="width: 100%" @change="changeOptionsSamplename" :disabled="processInspectVo.id != null"
+                                        v-model="processInspectVo.material" size="small" placeholder="璇烽�夋嫨浜у搧鍚嶇О">
+                                        <el-option v-for="(item,index) in optionsSamplename" :key="index" :label="item.material"
+                                            :value="item.materialCode">
+                                        </el-option>
+                                    </el-select>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="6">
+                                <el-form-item label="浜у搧缂栫爜锛�">
+                                    <el-input disabled v-model="processInspectVo.materialCode"
+                                        placeholder="璇疯緭鍏ヤ骇鍝佺紪鐮�" autocomplete="off" />
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="6">
+                                <el-form-item label="瑙勬牸鍨嬪彿锛�">
+                                    <el-input disabled v-model="processInspectVo.specs"
+                                        placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" autocomplete="off" />
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
+                        <el-row>
+                            <el-col :span="6">
+                                <el-form-item label="宸ュ簭鍚嶇О">
+                                    <el-select style="width: 100%" :disabled="processInspectVo.id != null"
+                                        v-model="processInspectVo.technologyOperationId" size="small" placeholder="璇烽�夋嫨宸ュ簭">
+                                        <el-option v-for="(item,index) in technologyList" :key="index" :label="item.name"
+                                            :value="item.technologyOperationId">
+                                        </el-option>
+                                    </el-select>
+                                </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" :disabled="processInspectVo.id != null" />
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
+                    </div>
+                </el-form>
+            </div>
+            <div class="finishedProduct-detail">
+                <el-row style="width:100%;z-index: 10;height:30px;">
+                    <el-col :span="12" class="inspectionProject_span">妫�楠岄」鐩�</el-col>
+                    <el-col v-if="resultVal == null" :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" height="400"
+                            :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" 
+                            :cell-style="{textAlign:'center'}" row-key="iid" default-expand-all
+                            style="width: 100%" ref="table" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
+                            <el-table-column type="index" label="搴忓彿" width="60"></el-table-column>
+                            <el-table-column label="椤圭洰" prop="father" width="240" ></el-table-column>
+                            <el-table-column prop="iname" label="鎸囨爣" width="240" ></el-table-column>
+                            <el-table-column prop="iunit" label="鍗曚綅" width="240" ></el-table-column>
+                            <el-table-column prop="required" label="鏍囧噯鍊�" width="240" ></el-table-column>
+                            <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="妫�娴嬪��"
+                                width="240" style="text-align: center;">
+                                <template slot-scope="scope">
+                                        <el-tooltip v-if="scope.row.iname!=null" :disabled="scope.row.eId != null" 
+                                        class="item" effect="dark" content="璇峰厛閫夋嫨璁惧锛�"
+                                            placement="top-start">
+                                            <el-input :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]"
+                                                @blur="changeState(scope.row, index)" placeholder="璇疯緭鍏ユ娴嬪��"></el-input>
+                                            <span v-if="resultVal != null && processInspectVo.id!=null" v-text="scope.row.empiricalValueAddss[index]"></span>
+                                        </el-tooltip>
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="deviceName" label="璇曢獙璁惧" min-width="250">
+                                <template slot-scope="scope">
+                                    <span v-if="resultVal != null && scope.row.iname != null" v-text="scope.row.ename"></span>
+                                    <div v-else>
+                                        <el-select style="width:100%" v-model="scope.row.eId" 
+                                        v-if="scope.row.iname != null" 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>
+                                    </div>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="缁撹" fixed="right" min-width="100">
+                                <template slot-scope="scope">
+                                    <div v-if="scope.row.iname!=null">
+                                        <span style="color: #34BD66;" v-if="scope.row.iresult == 1">鍚堟牸</span>
+                                        <span style="color: #E84738;" v-else-if="scope.row.iresult == 0">涓嶅悎鏍�</span>
+                                        <span v-else>鏆傛棤缁撹</span>
+                                    </div>
+                                </template>
+                            </el-table-column>
+                        </el-table>
+                    </el-col>
+                </el-row>
+            </div>
+            <div class="finishedProduct-result">
+                <el-row style="width:100%">
+                    <el-col :span="24">妫�娴嬬粨鏋�</el-col>
+                </el-row>
+                <el-row style="width:100%;">
+                    <el-col :span="24">
+                        <el-table border height="90" :data="inspectionResultForm"
+                        :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" 
+                        :cell-style="{textAlign:'center'}">
+                            <el-table-column prop="materialCode" label="鐗╂枡缂栧彿"></el-table-column>
+                            <el-table-column prop="material" label="鐗╂枡鍚嶇О"></el-table-column>
+                            <el-table-column prop="userName" label="妫�楠屽憳"></el-table-column>
+                            <el-table-column prop="result" label="妫�楠岀粨璁�">
+                                <template slot-scope="scope">
+                                    <el-tag type="success" v-if="scope.row.result == '1'">鍚堟牸</el-tag>
+                                    <el-tag type="danger" v-if="scope.row.result == '0'">涓嶅悎鏍�</el-tag>
+                                </template>
+                            </el-table-column>
+                            <el-table-column  label="鎿嶄綔">
+                                <template>
+                                    <el-button type="text" :disabled="resultVal != null && processInspectVo.id!=null"  @click="submitSave()" size="small">涓婃姤</el-button>
+                                </template>
+                            </el-table-column>
+                        </el-table>
+                    </el-col>
+                </el-row>
+            </div>
+        </div>
+    </div>
+    </template>
+    
+    <script>
+    import { 
+        chooseMater,
+        addProcess,
+        queryById,
+        updateDeviceBypppId,
+        updateProcessInsProduct,
+        updateProcessInspectsById,
+     } from '@/api/quality/processInspect'
+    import { selectDevice } from '@/api/quality/rawMaterial'
+    export default {
+        data() {
+            return {
+                resultVal: null,
+                technologyList: [],
+                deviceList: [],
+                hasChildren: true,
+                optionsSamplename: [],
+                // 娣诲姞鍒�
+                empiricalValueAdd: 1,
+                // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂�
+                empiricalValueAddMaxNumber: 0,
+                processInspectVo: {
+                    id: null,
+                    material: null,
+                    materialCode: null,
+                    orderNumber: "ZTTIC20230001",
+                    quantity: null,
+                    specs: null,
+                    unit: null,
+                    technologyOperationId: null
+                },
+                inspectionItems: [], // 鏂板妫�楠岄」鐩〃鏍�
+                inspectionResultForm: [],
+            }
+        },
+        watch: {
+        },
+        beforeUpdate(){
+          this.$nextTick(()=>{
+            this.$refs.table.doLayout();
+          })
+        },
+        created() {
+        },
+        mounted() {
+            this.getDeviceList()
+            this.processInspectVo.id = this.$route.query.id
+            this.resultVal = this.$route.query.resultVal
+            if(this.resultVal == null){
+                let val = sessionStorage.getItem("process-resultVal");
+                val == undefined ? this.resultVal=null : this.resultVal = val
+            }
+            this.init()
+        },
+        methods: {
+            submitSave(){
+                let pro = 0
+                console.log(this.inspectionItems);
+                this.inspectionItems.forEach(item => {
+                    if(item.children){
+                        let arr = item.children.filter(obj=>{
+                                return obj.iresult == 0;
+                        })
+                        pro+=arr.length
+                    }
+                })
+                if (pro > 0) {
+                    this.$prompt('璇疯緭鍏ヤ笉鍚堟牸鏁伴噺', '涓嶅悎鏍兼暟閲�', {
+                        confirmButtonText: '纭畾',
+                        cancelButtonText: '鍙栨秷',
+                        inputPattern: /^\d+$/,
+                        inputErrorMessage: '璇疯緭鍏ユ纭暟瀛楁牸寮�'
+                    }).then(({ value }) => {
+                        let data = {
+                            id: this.processInspectVo.id,
+                            number: value
+                        }
+                        updateProcessInspectsById(data).then(res => {
+                            let data = res.data.data
+                            if(data){
+                                if(data.indexOf("鎴愬姛")>0){
+                                    this.$message.success(data);
+                                    this.checkTestState()
+                                }else{
+                                    this.$message.warning(data);
+                                }
+                                return
+                            }
+                        });
+                    }).catch(() => {});
+                }else{
+                    updateProcessInspectsById({id:this.processInspectVo.id,number:0}).then(res => {
+                        let data = res.data.data
+                        if(data){
+                            if(data.indexOf("鎴愬姛") > 0){
+                                this.$message.success(data);
+                                this.checkTestState()
+                            }else{
+                                this.$message.warning(data);
+                            }
+                            return
+                        }
+                    });
+                }
+                this.init()
+            },
+            checkTestState(){
+                let resultVal = '1'
+                this.inspectionItems.forEach(item=>{
+                    if(item.children){
+                        item.children.forEach(obj=>{
+                            if(obj.iresult == 0){
+                                resultVal = '0'
+                            }
+                        })
+                    }
+                })
+                this.resultVal = resultVal
+                this.inspectionResultForm[0].result = resultVal
+                sessionStorage.setItem("process-resultVal",resultVal)
+            },
+            init(){
+                let id = this.processInspectVo.id
+                if(id != null){
+                    queryById(id).then(res=>{
+                        let result = res.data.data
+                        this.processInspectVo.orderNumber = result.orderNumber
+                        this.processInspectVo.materialCode = result.materialCode
+                        this.processInspectVo.material = result.material
+                        this.processInspectVo.technologyOperationId = result.technologyOperationName
+                        this.processInspectVo.specs = result.specs
+                        this.processInspectVo.unit = result.punit
+                        this.processInspectVo.quantity = result.quantity
+                        let userList = []
+                        result.children.forEach(item=>{
+                            item.iid = Math.random()
+                            if(item.children != undefined){
+                                item.children.forEach(obj=>{
+                                    let arr = []
+                                    if(obj.userName){
+                                        userList.push(obj.userName)
+                                    }
+                                    if(obj.inspectionValue){
+                                        arr = obj.inspectionValue.split(",")
+                                    }
+                                    obj.empiricalValueAddss = arr
+                                    if(arr.length > this.empiricalValueAdd){
+                                        this.empiricalValueAdd = arr.length
+                                    }
+                                })
+                            }
+                        })
+                        this.inspectionItems = result.children
+                        this.inspectionResultForm = [{
+                            materialCode: result.materialCode,
+                            material: result.material,
+                            userName: Array.from(new Set(userList)).join(","),
+                            result: this.resultVal == null ? '' : this.resultVal,
+                        }]
+                    }).catch(error=>{
+                        console.log(error)
+                    })
+                }
+            },
+            getDeviceList(){
+                selectDevice(null).then(res=>{
+                    this.deviceList = res.data.data
+                })
+            },
+            updateDevice(row){
+                updateDeviceBypppId({equiomentId:row.eId,ppid:row.iId}).then(res=>{
+                }).catch(error=>{
+                    console.log(error)
+                })
+            },
+            //浜у搧鍚嶇О锛岄�夋嫨
+            changeOptionsSamplename(val) {
+                let sample = this.optionsSamplename.filter(o=>{
+                    return o.materialCode == val
+                })[0]
+                this.processInspectVo.materialCode = sample.materialCode
+                this.processInspectVo.specs = sample.specs
+                this.processInspectVo.unit = sample.unit
+                this.processInspectVo.material = sample.material
+                this.technologyList = sample.children
+            },
+            changeState(row, index) {
+                if (row.iid != null && row.iid != '') {
+                    let str = ""
+                    row.empiricalValueAddss.forEach(e => {
+                        str += e + ","
+                    })
+                    str = str.slice(0,-1);
+                    if (str === undefined || str === '' || str === null ) {
+                        return
+                    }
+                    let obj = {
+                        equiomentId: row.eId,
+                        ppid: row.iid,
+                        inspectionValue: str
+                    }
+                    updateProcessInsProduct(obj).then(res=>{
+                        if(res.data.code == 0){
+                            this.$message.success("鏇存柊鎴愬姛")
+                        }else{
+                            this.$message.error("鏇存柊澶辫触")
+                        }
+                        this.init()
+                    })
+                }
+            },
+            addTestProject() {
+                let val = this.processInspectVo
+                addProcess(val).then(res=>{
+                    let id = res.data.data
+                    if(id != null){
+                        queryById(id).then(response=>{
+                            console.log(response.data.data.children)
+                            let proList = response.data.data.children
+                            proList.forEach(item=>{
+                                item.iid = Math.random();
+                                if(item.children != undefined){
+                                    item.children.forEach(obj=>{
+                                        obj.empiricalValueAddss = []
+                                    })
+                                }
+                            })
+                            this.inspectionItems = proList
+                        }).catch(error=>{
+                            console.log(error);
+                        })
+                    }
+                }).catch(error=>{
+                    console.log(error)
+                })
+            },
+            selectInfoByOrderId() {
+                chooseMater({
+                        orderNumber: this.processInspectVo.orderNumber
+                    }).then(res => {
+                    if (res.data.data != null) {
+                        this.optionsSamplename = res.data.data.children
+                    } else {
+                        this.$message({
+                            message: '娌℃湁璇ヨ鍗曞彿锛�',
+                            type: 'warning'
+                        });
+                        this.optionsSamplename = []
+                        this.processInspectVo.materialCode = null
+                        this.processInspectVo.material = null
+                        this.processInspectVo.specs = null
+                        this.processInspectVo.unit = null
+                    }
+                })
+            },
+            // 鍒犻櫎妫�楠屽�煎垪
+            clickDeleteInspectionColumn() {
+                if (this.empiricalValueAdd - 1 === 0) {
+                } else {
+                    if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
+                        this.empiricalValueAdd = this.empiricalValueAdd - 1;
+                        this.inspectionItems.forEach(i => {
+                            i.empiricalValueAddss.splice(this.empiricalValueAdd, 1);
+                        });
+                    }
+                }
+            },
+            // 娣诲姞妫�楠屽�煎垪
+            clickAddInspectionColumn() {
+                this.empiricalValueAdd = this.empiricalValueAdd + 1;
+            }
+        },
+    }
+    </script>
+    
+    <style scoped>
+    .finishedProduct-detail {
+      width: 100%;
+      height: 470px;
+      padding: 10px 20px;
+      display: flex;
+      border: 1px solid #ddd;
+      background-color: #fff;
+      margin-top: 10px;
+      box-sizing: border-box;
+      flex-wrap: wrap;
+    }
+    
+    .finishedProduct-result {
+      width: 100%;
+      height: 150px;
+      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: 155px;
+      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

--
Gitblit v1.9.3