Selaa lähdekoodia

入厂检验单

chris 3 vuotta sitten
vanhempi
commit
83953a9487

+ 172 - 65
src/views/modules/check/ibc-add-or-update.vue

@@ -1,113 +1,196 @@
 <template>
   <div>
     <el-dialog
-      :title="!id ? '新增': display ? '详情' : '修改'"
+      :title="!id ? '新增': '处理'"
       width="70%"
       :close-on-click-modal="false"
       :visible.sync="visible">
       <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
         <el-row class="my-row">
           <el-col :span="8">
-            <el-form-item label="编码" prop="inspectionCode">
-              <el-input v-model="dataForm.inspectionCode" :disabled="display || !id" placeholder="系统自动生成,无需填写"></el-input>
+            <el-form-item label="检验单编码" prop="inspectionCode">
+              <el-input v-model="dataForm.inspectionCode" :disabled="true"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8" style="padding-left: 10px">
-            <el-form-item label="名称" prop="materialName">
-              <el-input v-model="dataForm.materialName" :disabled="display" placeholder="名称"></el-input>
+            <el-form-item label="物品名称" prop="materialName">
+              <el-input v-model="dataForm.materialName" :disabled="true"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8" style="padding-left: 10px">
+            <el-form-item label="批次号" prop="batchNumber">
+              <el-input v-model="dataForm.batchNumber" :disabled="true"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row class="my-row">
+          <el-col :span="8">
+            <el-form-item label="规格/图号" prop="specifications">
+              <el-input v-model="dataForm.specifications" :disabled="true"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8" style="padding-left: 10px">
             <el-form-item label="类别" prop="materialTypeName">
-              <el-input v-model="dataForm.materialTypeName" :disabled="display" placeholder="类别"></el-input>
+              <el-input v-model="dataForm.materialTypeName" :disabled="true"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8" style="padding-left: 10px">
+            <el-form-item label="来源" prop="source">
+              <el-input v-model="dataForm.source" :disabled="true"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
-<!--        <el-row class="my-row">-->
-<!--          <el-col :span="8">-->
-<!--            <el-form-item label="制造商" prop="manufacturers">-->
-<!--              <el-input v-model="dataForm.manufacturers" :disabled="display" placeholder="制造商"></el-input>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
-<!--          <el-col :span="8" style="padding-left: 10px">-->
-<!--            <el-form-item label="检定日期" prop="verificationDate">-->
-<!--              <el-date-picker-->
-<!--                :disabled="display"-->
-<!--                v-model="dataForm.verificationDate"-->
-<!--                value-format="yyyy-MM-dd"-->
-<!--                type="date">-->
-<!--              </el-date-picker>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
-<!--          <el-col :span="8" style="padding-left: 10px">-->
-<!--            <el-form-item label="检定有效期" prop="validityDate">-->
-<!--              <el-date-picker-->
-<!--                :disabled="display"-->
-<!--                v-model="dataForm.validityDate"-->
-<!--                value-format="yyyy-MM-dd"-->
-<!--                type="date">-->
-<!--              </el-date-picker>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
-<!--        </el-row>-->
-<!--        <el-row class="my-row">-->
-<!--          <el-col :span="8">-->
-<!--            <el-form-item label="设备责任人" prop="responsibilityUser">-->
-<!--              <el-input v-if="display" v-model="dataForm.responsibilityUserName" disabled></el-input>-->
-<!--              <user-component v-else v-model="dataForm.responsibilityUser"/>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
-<!--          <el-col :span="8" style="padding-left: 20px">-->
-<!--            <el-form-item label="操作人" prop="userOf">-->
-<!--              <el-input v-if="display" v-model="dataForm.userOfName" disabled></el-input>-->
-<!--              <user-component v-else v-model="dataForm.userOf"/>-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
-<!--        </el-row>-->
-<!--        <el-row class="my-row">-->
-<!--          <upload-component :display="display" :title="'使用说明书'" :accept="'*'" :file-obj-list="fileList" @uploadSuccess="uploadSuccess"/>-->
-<!--        </el-row>-->
-<!--        <el-row class="my-row" style="margin-top: 20px">-->
-<!--          <el-form-item label="备注" prop="notes">-->
-<!--            <el-input type="textarea" v-model="dataForm.notes" :disabled="display" placeholder="备注"></el-input>-->
-<!--          </el-form-item>-->
-<!--        </el-row>-->
+        <el-row class="my-row">
+          <el-col :span="8">
+            <el-form-item label="来料类型" prop="inspectionType">
+              <el-select v-model="dataForm.inspectionType" placeholder="请选择">
+                <el-option
+                  v-for="item in optionsTypes"
+                  :key="item.code"
+                  :label="item.value"
+                  :value="item.code">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8" style="padding-left: 10px">
+            <el-form-item label="检验依据" prop="inspectionBasis">
+              <el-input v-model="dataForm.inspectionBasis"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8" style="padding-left: 10px">
+            <el-form-item label="合格证编码" prop="qualifiedCertificateCode">
+              <el-input v-model="dataForm.qualifiedCertificateCode"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-form-item label="检测设备" prop="detectionEquipment">
+            <el-input type="textarea" v-model="dataForm.detectionEquipment"></el-input>
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-form-item label="检验结论" prop="conclusion">
+            <el-input type="textarea" v-model="dataForm.conclusion"></el-input>
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-form-item label="备注说明" prop="notes">
+            <el-input type="textarea" v-model="dataForm.notes"></el-input>
+          </el-form-item>
+        </el-row>
+        <div class="title"><span style="color: red">*</span> 检验项目</div>
+        <el-row>
+          <el-table
+            :data="checkItems"
+            border
+            style="width: 100%">
+            <el-table-column
+              label="序号"
+              type="index"
+              width="50"
+              align="center">
+            </el-table-column>
+            <el-table-column
+              prop="inspectionProject"
+              header-align="center"
+              align="center"
+              min-width="140"
+              label="检验项目">
+            </el-table-column>
+            <el-table-column
+              prop="technicalIndicators"
+              header-align="center"
+              align="center"
+              min-width="120"
+              label="技术指标">
+            </el-table-column>
+            <el-table-column
+              prop="measuredRecords"
+              header-align="center"
+              align="center"
+              min-width="160"
+              label="实测记录">
+            </el-table-column>
+            <el-table-column
+              prop="notes"
+              header-align="center"
+              align="center"
+              width="180"
+              :show-tooltip-when-overflow="true"
+              label="备注/说明">
+            </el-table-column>
+            <el-table-column
+              fixed="right"
+              header-align="center"
+              align="center"
+              width="150"
+              label="操作">
+              <template slot-scope="scope">
+                <el-button type="text" size="small" @click="addItemHandle(scope.row)">编辑</el-button>
+                <el-button style="color: red" type="text" size="small" @click="deleteItemHandle(scope.row.id)">删除</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-row>
+        <el-row style="text-align: center; margin-top: 10px;">
+          <el-button type="primary" icon="el-icon-plus" @click="addItemHandle()"></el-button>
+        </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
-      <el-button @click="visible = false">取消</el-button>
-      <el-button v-if="!display" type="primary" @click="dataFormSubmit()">确定</el-button>
-    </span>
+        <el-button @click="visible = false">取消</el-button>
+        <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
+      </span>
     </el-dialog>
+    <add-item v-if="addItemVisible" ref="addItem" @addItem="addItem"/>
   </div>
 </template>
 
 <script>
+  import AddItem from './ibc-check-chose'
   import { getIncomingInspectionDetail } from '@/api/check'
   export default {
     name: 'ibc-add-or-update',
+    components: {AddItem},
     data () {
       return {
         visible: false,
-        display: false,
-        dataList: [],
+        addItemVisible: false,
         id: 0,
         dataForm: {},
+        checkItems: [],
+        optionsTypes: [
+          {
+            code: '1', value: '原、辅材料'
+          },
+          {
+            code: '2', value: '外协件'
+          },
+          {
+            code: '3', value: '其他'
+          }
+        ],
         dataRule: {
-          // name: [{ required: true, message: '名称不能为空', trigger: 'blur' }]
+          inspectionType: [{ required: true, message: '来料类型不能为空', trigger: 'change' }],
+          inspectionBasis: [{ required: true, message: '检验依据不能为空', trigger: 'blur' }],
+          qualifiedCertificateCode: [{ required: true, message: '合格证编码不能为空', trigger: 'blur' }],
+          detectionEquipment: [{ required: true, message: '检测设备不能为空', trigger: 'blur' }],
+          conclusion: [{ required: true, message: '检验结论不能为空', trigger: 'blur' }]
         }
       }
     },
     methods: {
-      async init (id, display) {
+      async init (id) {
         this.dataForm = {}
         this.visible = true
         this.id = id || 0
-        this.display = display
         if (!id) return
         await getIncomingInspectionDetail(this.id).then(({data}) => {
           if (data && data.code === '200') {
             this.dataForm = data.data
-            console.log('data = ' + JSON.stringify(data.data))
+            if (data.data.qualityInspectionItemsList) {
+              this.checkItems = data.data.qualityInspectionItemsList
+            }
           }
         })
       },
@@ -118,8 +201,13 @@
       dataFormSubmit () {
         this.$refs['dataForm'].validate((valid) => {
           if (valid) {
+            if (this.checkItems.length === 0) {
+              this.$message.warning('请选择检验项目')
+              return
+            }
+            this.dataForm.qualityInspectionItemsList = this.checkItems
             this.$http({
-              url: !this.id ? this.$http.adornUrl(`/biz-service/equipment/save`) : this.$http.adornUrl(`/biz-service/equipment/update`),
+              url: !this.id ? this.$http.adornUrl(`/biz-service/incomingInspection/save`) : this.$http.adornUrl(`/biz-service/incomingInspection/update`),
               method: 'post',
               data: this.$http.adornData(this.dataForm)
             }).then(({data}) => {
@@ -139,6 +227,25 @@
             })
           }
         })
+      },
+      addItemHandle (row) {
+        this.addItemVisible = true
+        this.$nextTick(() => {
+          this.$refs.addItem.init(row)
+        })
+      },
+      deleteItemHandle (id) {
+        this.checkItems.splice(this.checkItems.findIndex((item) => item.id === id))
+        console.log('items = ' + JSON.stringify(this.checkItems))
+      },
+      addItem (item) {
+        if (!item) return
+        this.addItemVisible = false
+        let i = this.checkItems.findIndex((item) => item.id === item.id)
+        if (i > -1) {
+          this.checkItems.splice(i)
+        }
+        this.checkItems.push(item)
       }
     }
   }

+ 80 - 0
src/views/modules/check/ibc-check-chose.vue

@@ -0,0 +1,80 @@
+<template>
+  <el-dialog
+    title="选择检验项目"
+    width="50%"
+    :close-on-click-modal="false"
+    :visible.sync="visible">
+    <div class="check">
+      <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="auto">
+        <el-row class="my-row">
+          <el-col :span="12">
+            <el-form-item label="检验项目" prop="inspectionProject">
+              <el-input v-model="dataForm.inspectionProject" placeholder="检验项目"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12" style="padding-left: 20px">
+            <el-form-item label="技术指标" prop="technicalIndicators">
+              <el-input v-model="dataForm.technicalIndicators" placeholder="技术指标"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-form-item label="实测记录" prop="measuredRecords">
+            <el-input v-model="dataForm.measuredRecords" placeholder="实测记录"></el-input>
+          </el-form-item>
+        </el-row>
+        <el-row>
+          <el-form-item label="备注/说明" prop="notes">
+            <el-input type="textarea" v-model="dataForm.notes" placeholder="备注/说明"></el-input>
+          </el-form-item>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="visible = false">取消</el-button>
+        <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
+      </span>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+    data () {
+      return {
+        visible: false,
+        dataForm: {},
+        id: 0,
+        dataRule: {
+          inspectionProject: [{ required: true, message: '检验项目不能为空', trigger: 'blur' }],
+          technicalIndicators: [{ required: true, message: '技术指标不能为空', trigger: 'blur' }],
+          measuredRecords: [{ required: true, message: '实测记录不能为空', trigger: 'blur' }]
+        }
+      }
+    },
+    methods: {
+      async init (row) {
+        this.visible = true
+        this.id = row ? row.id : Math.round(Math.random() * 1000000)
+        if (!row) return
+        this.dataForm = row
+      },
+      validateField (type) {
+        this.$refs.dataForm.validateField(type)
+      },
+      // 表单提交
+      dataFormSubmit () {
+        this.$refs['dataForm'].validate((valid) => {
+          if (valid) {
+            this.visible = false
+            this.dataForm.id = this.id
+            this.$emit('addItem', this.dataForm)
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>

+ 5 - 5
src/views/modules/check/ibc-detail.vue

@@ -14,7 +14,7 @@
           <e-desc-item label="来源">{{dataForm.source}}</e-desc-item>
           <e-desc-item label="来料类型">{{dataForm.inspectionType}}</e-desc-item>
           <e-desc-item label="检验依据">{{dataForm.inspectionBasis}}</e-desc-item>
-          <e-desc-item label="合格证编码"></e-desc-item>
+          <e-desc-item label="合格证编码">{{dataForm.qualifiedCertificateCode}}</e-desc-item>
           <e-desc-item label="检测设备" span="3" style="min-height: 80px">{{dataForm.detectionEquipment}}</e-desc-item>
           <e-desc-item label="检验结论" span="3" style="min-height: 80px">{{dataForm.conclusion}}</e-desc-item>
           <e-desc-item label="备注说明" span="3" style="min-height: 80px">{{dataForm.notes}}</e-desc-item>
@@ -30,25 +30,25 @@
             >
             </el-table-column>
             <el-table-column
-              prop="-"
+              prop="inspectionProject"
               header-align="center"
               align="center"
               label="检验项目">
             </el-table-column>
             <el-table-column
-              prop="-"
+              prop="technicalIndicators"
               header-align="center"
               align="center"
               label="技术指标">
             </el-table-column>
             <el-table-column
-              prop="-"
+              prop="measuredRecords"
               header-align="center"
               align="center"
               label="实测记录">
             </el-table-column>
             <el-table-column
-              prop="-"
+              prop="notes"
               header-align="center"
               align="center"
               label="备注">

+ 11 - 12
src/views/modules/check/ibc-export.vue

@@ -28,16 +28,18 @@
             <th style="width: 100px">来料类型</th>
             <td align="left" style="width: 750px">
               <el-checkbox-group v-model="idsMaterial">
-                <el-checkbox class="my-cb" :style="item.id === 1?'margin-left: 30px':''" v-for="(item,i) in optionsMaterial" :label="item.id" :key="item.id">{{item.name}}</el-checkbox>
+                <!-- :style="item.id === 1?'margin-left: 30px':''" -->
+                <el-checkbox class="my-cb"  v-for="(item,i) in optionsMaterial" :label="item.id" :key="item.id">{{item.name}}</el-checkbox>
               </el-checkbox-group>
             </td>
           </el-row>
           <el-row>
             <th style="width: 100px">检验设备(勾选)</th>
             <td align="left" style="width: 750px">
-              <el-checkbox-group v-model="idsDevice">
-                <el-checkbox class="my-cb" :style="item.id === 1?'margin-left: 30px':''" v-for="(item,i) in optionsDevice" :label="item.id" :key="item.id">{{item.name}}</el-checkbox>
-              </el-checkbox-group>
+<!--              <el-checkbox-group v-model="idsDevice">-->
+<!--                <el-checkbox class="my-cb" :style="item.id === 1?'margin-left: 30px':''" v-for="(item,i) in optionsDevice" :label="item.id" :key="item.id">{{item.name}}</el-checkbox>-->
+<!--              </el-checkbox-group>-->
+              {{dataForm.detectionEquipment}}
             </td>
           </el-row>
           <el-table
@@ -49,19 +51,19 @@
               align="center">
             </el-table-column>
             <el-table-column
-              prop="-"
+              prop="inspectionProject"
               header-align="center"
               align="center"
               label="检验项目">
             </el-table-column>
             <el-table-column
-              prop="-"
+              prop="technicalIndicators"
               header-align="center"
               align="center"
               label="技术指标">
             </el-table-column>
             <el-table-column
-              prop="-"
+              prop="measuredRecords"
               header-align="center"
               align="center"
               label="实测记录">
@@ -79,7 +81,7 @@
               label="合格数">
             </el-table-column>
             <el-table-column
-              prop="-"
+              prop="notes"
               header-align="center"
               align="center"
               label="备注">
@@ -92,7 +94,7 @@
               <th style="width: 850px; text-align: left">检验结论:</th>
             </el-row>
             <el-row style="height: 200px">
-              {{dataForm.conclusion}}
+              <td>{{dataForm.conclusion}}</td>
             </el-row>
             <el-row>
               <th style="width: 100px">检验员:</th>
@@ -225,9 +227,6 @@
             if (data.data.inspectionType) {
               this.idsMaterial.push(data.data.inspectionType)
             }
-            if (data.data.detectionEquipment) {
-              this.idsDevice = data.data.detectionEquipment
-            }
             if (data.data.qualityInspectionItemsList) {
               this.checkList = data.data.qualityInspectionItemsList
             }

+ 3 - 3
src/views/modules/check/in-bound-check.vue

@@ -107,7 +107,7 @@
         label="操作">
         <template slot-scope="scope">
           <el-button v-if="isAuth('quality:inspection:info')" type="text" size="small" @click="details(scope.row.inspectionId)">查看</el-button>
-          <el-button v-if="isAuth('quality:inspection:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.inspectionId, false)">处理</el-button>
+          <el-button v-if="isAuth('quality:inspection:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.inspectionId)">处理</el-button>
           <el-button v-if="isAuth('quality:inspection:info:report')" type="text" size="small" @click="exportPdf(scope.row.inspectionId)">导出</el-button>
         </template>
       </el-table-column>
@@ -194,10 +194,10 @@
         this.dataListSelections = val
       },
       // 新增 / 修改
-      addOrUpdateHandle (id, disable) {
+      addOrUpdateHandle (id) {
         this.addOrUpdateVisible = true
         this.$nextTick(() => {
-          this.$refs.addOrUpdate.init(id, disable)
+          this.$refs.addOrUpdate.init(id)
         })
       },
       exportPdf (id) {