From 72ae3c97c344694addc7990b42ea0fc8ef513e7f Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 01 十二月 2023 15:24:53 +0800
Subject: [PATCH] 	new file:   src/api/quality/packageInspect.js 	modified:   src/router/views/index.js 	modified:   src/views/plan/productionschedul/index.vue 	modified:   src/views/quality/Packaging_ledger/index.vue 	modified:   src/views/quality/Packaging_ledger/pack-from.vue 	new file:   src/views/quality/packageinspect/index.vue 	new file:   src/views/quality/packageinspect/packageInspect-form.vue 	modified:   vue.config.js

---
 src/views/plan/productionschedul/index.vue               |    4 
 src/views/quality/packageinspect/index.vue               |  229 ++++++++++++++
 src/views/quality/Packaging_ledger/pack-from.vue         |    1 
 src/views/quality/packageinspect/packageInspect-form.vue |  610 ++++++++++++++++++++++++++++++++++++++
 vue.config.js                                            |    4 
 src/router/views/index.js                                |   17 +
 src/views/quality/Packaging_ledger/index.vue             |   10 
 src/api/quality/packageInspect.js                        |   32 ++
 8 files changed, 895 insertions(+), 12 deletions(-)

diff --git a/src/api/quality/packageInspect.js b/src/api/quality/packageInspect.js
new file mode 100644
index 0000000..08a312b
--- /dev/null
+++ b/src/api/quality/packageInspect.js
@@ -0,0 +1,32 @@
+import request from '@/router/axios'
+
+export function fetchList(query) {
+  return request({
+    url: '/mes/packageInspect/page',
+    method: 'get',
+    params: query
+  })
+}
+
+export function fetchListById(id) {
+  return request({
+    url: '/mes/packageInspect/'+id,
+    method: 'get',
+  })
+}
+
+export function deleteById(id) {
+  return request({
+    url: '/mes/packageInspect/'+id,
+    method: 'delete',
+  })
+}
+
+export function updatePackageInsProduct(data) {
+  return request({
+    url: '/mes/packageInsProduct/updatePackageInsProduct',
+    method: 'post',
+    data: data
+  })
+}
+
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 7269a62..20e8be7 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -145,6 +145,23 @@
     ]
   },
   {
+    path: '/quality/packageinspect',
+    component: Layout,
+    children: [
+      {
+        path: 'packageInspect-form',
+        name: 'packageInspectForm',
+        component: () =>
+          import(/* webpackChunkName: "views" */ '@/views/quality/packageinspect/packageInspect-form'),
+        meta: {
+          keepAlive: false,
+          isTab: false,
+          isAuth: false
+        }
+      }
+    ]
+  },
+  {
     path: '/quality/rawMaterial',
     component: Layout,
     children: [
diff --git a/src/views/plan/productionschedul/index.vue b/src/views/plan/productionschedul/index.vue
index fa6061d..0775072 100644
--- a/src/views/plan/productionschedul/index.vue
+++ b/src/views/plan/productionschedul/index.vue
@@ -23,7 +23,7 @@
                 <el-button style="float: right; padding: 3px 0" type="text">鎿嶄綔鎸夐挳</el-button>
               </div>
               <div style="height:70vh;overflow-y: scroll;">
-                <el-timeline reverse>
+                <el-timeline>
                     <el-timeline-item
                       placement="top"
                       v-for="(item, index) in scheduleList"
@@ -295,9 +295,9 @@
         this.tableData = res.data.data.records
         this.page.total = res.data.data.total
         this.page.currentPage = res.data.data.records.pages
+        this.scheduleList = []
       })
       this.loading = false
-
     },
     handleCurrentChange(val) {
       this.multipleSelection = val
diff --git a/src/views/quality/Packaging_ledger/index.vue b/src/views/quality/Packaging_ledger/index.vue
index 9a665e4..e740452 100644
--- a/src/views/quality/Packaging_ledger/index.vue
+++ b/src/views/quality/Packaging_ledger/index.vue
@@ -118,7 +118,7 @@
         <!-- 鏂板 -->
         <packfrom
         :currshowlist.sync="addOrUpdateVisible"
-        >
+        @refreshDataList="getData">
         </packfrom>
         <packfromadd
         :currshowlist.sync="increase"
@@ -265,13 +265,7 @@
         packfromadd
         },
         watch: {
-          // renovate() {
-          //   if (this.innerVisible = false) {
-          //     this.$nextTick(() => {
-          //       this.getData()
-          //     })
-          //   }
-          // }
+
       },
     methods: {
        // 鑾峰彇鏁版嵁鍒楄〃
diff --git a/src/views/quality/Packaging_ledger/pack-from.vue b/src/views/quality/Packaging_ledger/pack-from.vue
index 24e15cf..67598f3 100644
--- a/src/views/quality/Packaging_ledger/pack-from.vue
+++ b/src/views/quality/Packaging_ledger/pack-from.vue
@@ -160,6 +160,7 @@
             console.log(res);
             if (res.status === 200) {
                 this.$message.success('鏂板鎴愬姛')
+                this.$emit('refreshDataList')
             }else{
                 this.$message.error('鍒涘缓澶辫触')
             }
diff --git a/src/views/quality/packageinspect/index.vue b/src/views/quality/packageinspect/index.vue
new file mode 100644
index 0000000..9e58f4b
--- /dev/null
+++ b/src/views/quality/packageinspect/index.vue
@@ -0,0 +1,229 @@
+<!--
+  -    Copyright (c) 2018-2025, ztt All rights reserved.
+  -
+  - Redistribution and use in source and binary forms, with or without
+  - modification, are permitted provided that the following conditions are met:
+  -
+  - Redistributions of source code must retain the above copyright notice,
+  - this list of conditions and the following disclaimer.
+  - Redistributions in binary form must reproduce the above copyright
+  - notice, this list of conditions and the following disclaimer in the
+  - documentation and/or other materials provided with the distribution.
+  - Neither the name of the pig4cloud.com developer nor the names of its
+  - contributors may be used to endorse or promote products derived from
+  - this software without specific prior written permission.
+  - Author: ztt
+  -->
+  <template>
+    <div class="mod-config">
+        <basic-container>
+            <ttable 
+            :table="table"
+            :resultData="resultData"
+            @handleSelectionChange="handleSelectionChange"
+            :prelang="prelang"
+            :options="options"
+            :ajaxFun="ajaxFun"
+            ref="packageInspectTable">
+            <template #toolbar>
+            </template>
+            </ttable>
+        </basic-container>
+        <!-- 寮圭獥, 鏂板 / 淇敼 -->
+        <!-- <RawMaterialForm
+            v-if="addOrUpdateVisible"
+            ref="addOrUpdate"
+            @refreshDataList="getData"
+        ></RawMaterialForm> -->
+    </div>
+</template>
+<script>
+import ttable from '@/views/common/ztt-table.vue'
+import { fetchList,deleteById } from '@/api/quality/packageInspect'
+// import RawMaterialForm from './rawMaterial-form'
+import * as fecha from 'element-ui/lib/utils/date'
+import { mapGetters } from 'vuex'
+  export default {
+    data() {
+        return {
+            resultData:[],
+            addOrUpdateVisible: false,
+            type: [1],
+            multipleSelection: [],
+            prelang: 'packageInspect',
+            ajaxFun: fetchList,
+            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: '150',
+                        prop: 'packInsNo',
+                        label: '鍖呰妫�楠岀紪鍙�',
+                        isTrue: true,
+                        isSearch: true,
+                        searchInfoType: 'text',
+                        render: { fun: this.addOrUpdateHandle }
+                    },
+                    {
+                        minWidth: '150',
+                        prop: 'packageNo',
+                        label: '鍖呰缂栫爜',
+                        isTrue: true,
+                        isSearch: true,
+                        searchInfoType: 'text'
+                    },
+                    {
+                        minWidth: '150',
+                        prop: 'contractNo',
+                        label: '鍚堝悓鍙�',
+                        isTrue: true,
+                        isSearch: true,
+                        searchInfoType: 'text'
+                    },
+                    {
+                        minWidth: '150',
+                        prop: 'projectName',
+                        label: '椤圭洰鍚嶇О',
+                        isTrue: true,
+                        isSearch: true,
+                        searchInfoType: 'text'
+                    },
+                    {
+                        minWidth: '150',
+                        prop: 'customerName',
+                        label: '瀹㈡埛鍚嶇О',
+                        isTrue: true,
+                        isSearch: true,
+                        searchInfoType: 'text'
+                    },
+                    {
+                        minWidth: '150',
+                        prop: 'createTime',
+                        label: '鎶ユ鏃ユ湡',
+                        isTrue: true,
+                        sort: true,
+                        isSearch: true,
+                        searchInfoType: 'text',
+                        formatter: this.formatDateTime,
+                    },
+                    {
+                        minWidth: '150',
+                        prop: 'createUser',
+                        label: '鎶ユ浜�',
+                        isTrue: true,
+                        isSearch: true,
+                        searchInfoType: 'text'
+                    },
+                    {
+                        minWidth: '150',
+                        prop: 'result',
+                        label: '缁撹',
+                        isTrue: true,
+                        isSearch: true,
+                    },
+                ],
+                toolbar: [
+                    // {
+                    //     text: '鏂板',
+                    //     type: 'primary',
+                    //     fun: this.addOrUpdateHandle
+                    // },
+                ],
+                operator: [
+                {
+                    text: '浣滃簾',
+                    type: 'text',
+                    size: 'small',
+                    fun: this.deleteHandle
+                }],
+                operatorConfig: {
+                fixed: 'right',
+                label: '鎿嶄綔',
+                width: 120,
+                minWidth: 120
+                },
+            },
+        }
+    },
+    components: {
+        ttable,
+    },
+    created() { },
+    computed: {
+        ...mapGetters(['permissions'])
+    },
+    watch:{
+
+    },
+    methods:{
+        // 鍒犻櫎
+        deleteHandle(row) {
+            const _than = this
+            this.$confirm('鏄惁纭鍒犻櫎鍖呰缂栧彿銆�' + row.packInsNo+'銆戠殑鏁版嵁锛�' , '鎻愮ず', {
+                confirmButtonText: '纭畾',
+                cancelButtonText: '鍙栨秷',
+                closeOnClickModal: false,
+                type: 'warning'
+            }).then(function() {
+                deleteById(row.id).then((response)=>{
+                    var data = response.data
+                    if (data.code == 0) {
+                        _than.$message.success('鍒犻櫎鎴愬姛')
+                    } else {
+                        _than.$message.error('鍒犻櫎澶辫触')
+                    }
+                    _than.getData()
+                })
+            }).catch((error) => {
+                console.log(error);
+            })
+        },
+        // 鏂板 / 淇敼
+        addOrUpdateHandle(row) {
+            this.$router.push({
+                name: 'packageInspectForm',
+                query: { 
+                    id: row == null ? null : row.id,
+                 }
+            })
+        },
+        formatResult(row, column, cellValue){
+            if(cellValue != undefined || cellValue != null){
+                if(cellValue == '涓嶅悎鏍�'){
+                    return "<span style='color:#E84738;'>涓嶅悎鏍�</span>"
+                }
+                return "<span style='color:#34BD66;'>鍚堟牸</span>"
+            }
+        },
+        formatDateTime(row, column, cellValue) {
+            return cellValue ? fecha.format(new Date(cellValue), 'yyyy-MM-dd') : ''
+        },
+        getData() {
+            this.$refs.packageInspectTable.getDataList()
+        },
+        // table鑷甫浜嬩欢
+        handleSelectionChange(val) {
+            this.multipleSelection = val
+        },
+    }
+  }
+  </script>
+  
\ No newline at end of file
diff --git a/src/views/quality/packageinspect/packageInspect-form.vue b/src/views/quality/packageinspect/packageInspect-form.vue
new file mode 100644
index 0000000..5fbff88
--- /dev/null
+++ b/src/views/quality/packageinspect/packageInspect-form.vue
@@ -0,0 +1,610 @@
+<template>
+    <div style="height: 100%">
+    <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="save()" type="primary">淇濆瓨</el-button>
+      </div>
+    </div>
+    <div class="page-main">
+      <div class="packageInspect-basic">
+        <el-form
+        :model="dataForm"
+        :rules="dataRule"
+        ref="dataForm"
+        style="width: 100%"
+        class="l-mes"
+        label-width="110px">
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="鍖呰妫�楠岀紪鍙�" prop="packInsNo">
+                <el-input v-model="dataForm.packInsNo" disabled>
+                </el-input>
+                </el-form-item>
+            </el-col>
+              <el-col :span="6">
+                <el-form-item label="鍖呰缂栧彿" prop="packageNo">
+                <el-input v-model="dataForm.packageNo" disabled></el-input>
+                </el-form-item>
+            </el-col>
+            <el-col :span="6">
+                <el-form-item  prop="projectName" label="椤圭洰鍚嶇О" >
+                  <el-tooltip :disabled="dataForm.projectName==null" :content="dataForm.projectName">
+                    <el-input v-model="dataForm.projectName" disabled ></el-input>
+                  </el-tooltip>
+                </el-form-item>
+            </el-col>
+            <el-col :span="6">
+                <el-form-item label="瀹㈡埛鍚嶇О" prop="customerName">
+                    <el-input v-model="dataForm.customerName" disabled />
+                </el-form-item>
+            </el-col>
+            </el-row>
+            <el-row>
+              <el-col :span="6">
+                <el-form-item label="鍚堝悓鍙�" prop="contractNo">
+                <el-input v-model="dataForm.contractNo" disabled></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                  <el-form-item label="鎶ユ鏃ユ湡" prop="createTime">
+                      <el-input v-model="dataForm.createTime" disabled />
+                  </el-form-item>
+              </el-col>
+              <el-col :span="6">
+                <el-form-item label="鎶ユ浜�" prop="createUser">
+                      <el-input v-model="dataForm.createUser" disabled />
+                </el-form-item>
+              </el-col>
+            </el-row>
+        </el-form>
+      </div>
+      <div class="packageInspect-detail">
+        <el-row style="width:100%;z-index: 10;height:50px;">
+            <el-col :span="22">妫�楠岄」鐩�</el-col>
+            <el-col :span="2">
+              <el-button style="width:100%" size="small" @click="clickAddLine()">娣诲姞妫�楠岄」鐩�</el-button>
+            </el-col>
+        </el-row>
+        <el-row style="width:100%;">
+            <el-col :span="24">
+                <el-table
+                :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}"
+                :cell-style="{textAlign:'center'}"
+                ref="table"
+                :data="list"
+                border
+                style="width: 100%;"
+                height="400"
+                row-key="randomId" class="l-mes"
+                default-expand-all
+                :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
+                  <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 v-if="scope.row.children" class="inline-input" style="width:90%;" v-model="scope.row.name"
+                          placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="required" label="瑕佹眰" width="260">
+                    <template slot-scope="scope">
+                      <div>
+                      <el-input v-model="scope.row.required"
+                        placeholder="璇疯緭鍏ヨ姹�"></el-input>
+                      </div>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="note" label="妫�楠屾弿杩�" width="260" >
+                    <template slot-scope="scope">
+                      <div>
+                        <el-input v-model="scope.row.note" placeholder="妫�楠屾弿杩�"></el-input>
+                      </div>
+                    </template>
+                  </el-table-column>
+                  <el-table-column fixed="right" prop="testState" label="缁撹" min-width="150">
+                    <template slot-scope="scope">
+                        <el-select v-model="scope.row.result">
+                            <el-option label="鍚堟牸" value="鍚堟牸"></el-option>
+                            <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�"></el-option>
+                        </el-select>
+                    </template>
+                  </el-table-column>
+                  <el-table-column fixed="right" style="background-color: white;" label="鎿嶄綔" width="200">
+                    <template slot-scope="scope">
+                      <el-button icon="el-icon-circle-check" type="text" @click="savePackIns(scope.row,scope.$index)">淇濆瓨</el-button>
+                      <el-button v-if="scope.row.children" icon="el-icon-circle-plus-outline" type="text" @click="clickAddChildren(scope.row,scope.$index)">娣诲姞琛�</el-button>
+                      <el-button v-if="!scope.row.children || scope.row.children.length==0" 
+                      icon="el-icon-circle-close" type="text" 
+                      @click="clickDelLine(scope.row,scope.$index,scope.row.children!=null)">鍙栨秷</el-button>
+                    </template>
+                  </el-table-column>
+                </el-table>
+            </el-col>
+        </el-row>
+      </div>
+      <div class="packageInspect-result">
+        <el-row>
+          <el-col :span="24">妫�楠岀粨璁�</el-col>
+        </el-row>
+        <el-row style="width:100%">
+          <el-col :span="24">
+            <el-table border height="90" :data="conclusionTable" ref="conclusion" v-model="conclusion"
+            :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}"
+            :cell-style="{textAlign:'center'}">
+                <el-table-column prop="packageNo" label="鍖呰缂栧彿"></el-table-column>
+                <el-table-column prop="name" label="鐗╂枡鍚嶇О"></el-table-column>
+                <el-table-column prop="userName" label="妫�楠屽憳"></el-table-column>
+                <el-table-column prop="judgeState" label="妫�楠岀粨璁�">
+                  <template slot-scope="scope">
+                    <el-tag type="success" v-if="scope.row.testState == '1'">鍚堟牸</el-tag>
+                    <el-tag type="danger" v-else-if="scope.row.testState == '0'">涓嶅悎鏍�</el-tag>
+                  </template>
+                </el-table-column>
+                <el-table-column  label="鎿嶄綔">
+                    <template>
+                        <el-button type="text" :disabled="resultVal!=null && dataForm.id!=null" @click="showDialog()" size="small">涓婃姤</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+          </el-col>
+        </el-row>
+      </div>
+    </div>
+    <el-dialog
+      title="涓婃姤"
+      :visible.sync="dialogVisible"
+      width="30%" class="l-mes">
+      <el-row>
+        <el-col>
+          <span>涓嶅悎鏍兼暟閲�:</span>
+          <el-input type="number" v-model="unqualifiedNum" placeholder="璇疯緭鍏ヤ笉鍚堟牸鏁伴噺"/>
+        </el-col>
+      </el-row>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submitSave()">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  fetchListById,
+  updatePackageInsProduct,
+} from '@/api/quality/packageInspect'
+export default {
+    computed:{},
+    components:{
+    },
+    data(){
+        return{
+            loading: false,
+            unqualifiedNum: null,
+            dialogVisible:false,
+            resultVal: null,
+            projectList: [],
+            // 娣诲姞鍒�
+            empiricalValueAdd: 1,
+            // 缂栬緫鏃跺瓨鍌ㄦ渶闀跨殑鍒楁暟瀛楋紝鍋氬垹闄ゅ垽鏂�
+            empiricalValueAddMaxNumber: 0,
+            columnList: [],
+            dataForm:{
+                id: null,
+                packInsNo: null,
+                packageNo: '',
+                contractNo: '',
+                projectName: '',
+                customerName: '',
+                packageInsProductS: [{
+                  deviceId: 0,
+                  father:'',
+                  name: '',
+                  required: '',
+                  testValue: '',
+                  unit: '',
+                  testValueList: []
+                }]
+            },
+            form: null,
+            list:[],
+            conclusion: null,
+            conclusionTable: [{
+              packageNo: '',
+              name: '',
+              userName: '',
+              testState: ''
+            }],
+            dataRule: {},
+        }
+    },
+    beforeUpdate(){
+      this.$nextTick(()=>{
+        this.$refs.table.doLayout();
+      })
+    },
+    created(){
+      this.dataForm.id = this.$route.query.id
+      this.init()
+    },
+    watch:{
+      dialogVisible(newVal){
+        if(newVal){
+          this.unqualifiedNum = null
+        }
+      },
+    },
+    methods:{
+      checkTestState(){
+          let resultVal = '1'
+          this.list.forEach(item=>{
+              if(item.children){
+                item.children.forEach(ele=>{
+                  if(ele.testState == 0){
+                      resultVal = '0'
+                  }
+                })
+              }
+          })
+          this.resultVal = resultVal
+          this.conclusionTable[0].testState = resultVal
+          sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,resultVal)
+      },
+      showDialog(){
+        let size = 0 //涓嶅悎鏍奸」鐩暟閲�
+        this.list.forEach(item=>{
+          if(item.children){
+            let num = item.children.filter(e=>{
+              return e.testState == 0
+            }).length
+            size+=num
+          }
+        })
+        if (size > 0) {
+          this.dialogVisible = true
+        }else{
+          this.submitSave()
+        }
+      },
+      //涓婃姤
+      submitSave(){
+        let data = {
+          id: this.dataForm.id,
+          number: this.unqualifiedNum,
+        }
+        updateRawInspectsById(data).then(res => {
+          if(res.data.code == 0 && (res.data.data=='1'|| res.data.data=='0')){
+            sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,res.data.data)
+            this.$message.success("涓婃姤鎴愬姛");
+          }else{
+            this.$message.error("涓婃姤澶辫触锛�",res.data.data);
+          }
+          this.dialogVisible = false
+          this.checkTestState()
+        });
+      },
+      // 娣诲姞琛�
+      clickAddLine(row) {
+          this.list.push({
+            pId: '',
+            name: '',
+            note: '',
+            required: '',
+            result: '',
+            randomId: Math.random(),
+            children: []
+          })
+      },
+      //娣诲姞瀛愮骇
+      clickAddChildren(row,index){
+        console.log(row,index);
+        row.children.push({
+            note: '',
+            required: '',
+            result: '',
+            randomId: Math.random(),
+        })
+      },
+      // 鍒犻櫎琛�
+      clickDelLine(row,index,isParent) {
+        if(isParent){
+          let parentIndex = this.list.findIndex(el =>{
+            return el.randomId == row.randomId
+          })
+          this.list.splice(parentIndex,1)
+        }else{
+          let i = this.list.findIndex(el =>{
+            return el.children.find(ele => ele.randomId == row.randomId)
+          })
+          let childrenIndex = this.list[i].children.findIndex(el =>{
+            return el.randomId == row.randomId
+          })
+          this.list[i].children.splice(childrenIndex,1)
+        }
+      },
+      //淇濆瓨妫�鏌ラ」
+      savePackIns(row,index){
+        if(row){
+          let obj = {
+            name: row.anme,
+            note: row.note,
+            packageInspectId: row.packageInspectId,
+            required: row.required,
+            result: row.result,
+          }
+          updatePackageInsProduct(obj).then(res=>{
+            console.log(res);
+          }).catch(error=>{
+            console.log(error);
+          })
+        }
+      },
+      init(){
+        if(this.dataForm.id){
+          fetchListById(this.dataForm.id).then(res=>{
+            let data = res.data.data
+            this.dataForm.packInsNo = data.packInsNo
+            this.dataForm.packageNo = data.packageNo
+            this.dataForm.contractNo = data.contractNo
+            this.dataForm.customerName = data.customerName
+            this.dataForm.projectName = data.projectName
+            this.dataForm.createTime = data.createTime
+            this.dataForm.createUser = data.createUser
+            this.list = data.packageInsProductS
+
+          }).catch(error=>{
+            this.$message.error("鑾峰彇澶辫触",error)
+          })
+        }else{
+          this.conclusionTable = []
+        }
+      },
+      changeState(row, index) {
+          if (row.rpId != null && row.rpId != '') {
+            let val = row.testValueList.join(",")
+            if (val === undefined || val === '' || val === null) {
+                return
+            }
+            let obj = {
+              deviceId: row.deviceId,
+              rpId: row.rpId,
+              testValue: val,
+              note: row.note
+            }
+            updateRawInsProduct(obj).then(res => {
+                if (res.data.code == 0) {
+                    this.$message.success("鏇存柊鎴愬姛")
+                } else {
+                    this.$message.error("鏇存柊澶辫触")
+                }
+                this.init()
+            })
+          }
+      },
+      save(){
+        let data = this.dataForm
+        this.list.forEach(item=>{
+          item.children.forEach(c=>{
+            c.testValue=c.testValueList.join(",")
+          })
+        })
+        data.packageInsProductS = this.list
+        addRawInspects(data).then(res=>{
+            this.$message.success("淇濆瓨鎴愬姛")
+            this.$router.go(-1)
+        }).catch(error=>{
+          this.$message.error(error)
+        })
+      },
+    },
+}
+</script>
+
+<style>
+.packageInspect-detail {
+  width: 100%;
+  height: 490px;
+  padding: 10px 20px;
+  display: flex;
+  border: 1px solid #ddd;
+  background-color: #fff;
+  margin-top: 10px;
+  box-sizing: border-box;
+  flex-wrap: wrap;
+}
+
+.packageInspect-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;
+}
+
+.packageInspect-basic {
+  background-color: #fff;
+  height: 120px;
+  display: flex;
+  flex-wrap: wrap;
+  padding: 10px 20px;
+  border: 1px solid #ddd;
+  box-sizing: border-box;
+}
+
+.packageInspect-related-stock-part {
+  background-color: #fff;
+  width: 100%;
+  height: 220px;
+  border: 1px solid #ddd;
+  padding: 10px 20px 0px 20px;
+  box-sizing: border-box;
+}
+
+.packageInspect-bom {
+  background-color: #fff;
+  width: 100%;
+  height: 499px;
+  border: 1px solid #ddd;
+  padding: 10px 20px;
+  box-sizing: border-box;
+}
+
+.packageInspect-bom .el-card__header {
+  padding: 1px 20px;
+  border-bottom: 0px solid #ebeef5;
+}
+
+.packageInspect-bom .el-card__body {
+  height: calc(100% - 22px);
+}
+
+.packageInspect-bom .el-card__body .el-collapse {
+  height: 100%;
+  overflow: auto;
+}
+
+.packageInspect-technology-params {
+  background-color: #fff;
+  width: calc(52% - 20px);
+  float: left;
+  height: 719px;
+  border: 1px solid #ddd;
+  padding: 10px 20px;
+  margin-left: 20px;
+}
+
+.packageInspect-structure {
+  background-color: #fff;
+  width: 35%;
+  float: left;
+  height: 719px;
+  border: 1px solid #ddd;
+  padding: 10px 20px;
+  box-sizing: border-box;
+}
+
+.packageInspect-flow {
+  background-color: #fff;
+  width: calc(65% - 20px);
+  float: left;
+  height: 719px;
+  border: 1px solid #ddd;
+  padding: 10px 20px;
+  margin-left: 20px;
+  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;
+}
+
+.packageInspect-bom-div {
+  width: 100%;
+  margin-bottom: 5px;
+}
+
+.packageInspect-technology-div {
+  width: 100%;
+  margin-bottom: 5px;
+  margin-right: 10px;
+}
+
+.packageInspect-technology-div .el-collapse {
+  border-top: 0px;
+  border-bottom: 0px;
+}
+
+.structure-detail-table th.gutter {
+  display: table-cell !important;
+  width: 10px !important;
+}
+
+.structure-detail-table colgroup.gutter {
+  display: table-cell !important;
+  width: 10px !important;
+}
+
+.final-product-checkout .el-card__header {
+  padding: 0px 20px;
+  border-bottom: 0px;
+}
+
+.final-product-checkout .el-card__body {
+  padding: 0px 20px 20px;
+}
+
+.orimaterial-quantity .el-card__header {
+  padding: 0px 20px;
+  border-bottom: 0px;
+}
+
+.orimaterial-quantity .el-card__body {
+  padding: 0px 20px 20px;
+}
+
+.packageInspect-materialcost-table th.gutter {
+  display: table-cell !important;
+  width: 10px !important;
+}
+
+.packageInspect-materialcost-table colgroup.gutter {
+  display: table-cell !important;
+  width: 10px !important;
+}
+
+.GooFlow .ico .ico_start:before {
+  color: red;
+}
+.highlight-tab-class {
+  color: #006eff;
+  background: #e4e7ed;
+  border-top: 1px solid #006eff;
+}
+.unhighlight-tab-class {
+  border: 1px solid #e4e7ed;
+  border-bottom: none;
+}
+.avue-crud__menu{
+  min-height: 0px;
+}
+</style>
diff --git a/vue.config.js b/vue.config.js
index b450b4c..f9db903 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -3,11 +3,11 @@
  * https://cli.vuejs.org/zh/config/
  */
 // const url = 'http://192.168.2.7:9999'
-const url = 'http://192.168.2.7:9999'
+// const url = 'http://192.168.2.7:9999'
 //const url = 'http://192.168.32.45:9999'
 // const url = 'http://192.168.0.23:9999'
 
-//  const url = 'http://localhost:9999'
+ const url = 'http://localhost:9999'
 
 // const url = 'http://ztt-gateway:9999'
 const localUrl = 'http://localhost:8089'

--
Gitblit v1.9.3