zouyu
2023-12-29 617d2ad422a2ae5badc0572b06f33c2791cb95ad
src/views/quality/packageinspect/packageInspect-form.vue
@@ -64,11 +64,11 @@
      </div>
      <div class="packageInspect-detail">
        <el-row :gutter="10" style="width:100%;z-index: 10;height:50px;">
            <el-col :span="20">检验项目</el-col>
            <el-col :span="2">
              <el-button v-if="resultVal=='' || resultVal==null" style="width:100%" size="small" @click="clickAddLine()">添加检验项目</el-button>
            <el-col :sm="18" :lg="20">检验项目</el-col>
            <el-col :sm="3" :lg="2" >
              <el-button v-if="resultVal=='' || resultVal==null" size="small" @click="clickAddLine()">添加检验项目</el-button>
            </el-col>
            <el-col :span="2">
            <el-col :sm="3" :lg="2">
              <el-button v-if="resultVal=='' || resultVal==null" style="width:100%" type="primary"  size="small"
              @click="savePackIns()">保存</el-button>
            </el-col>
@@ -88,13 +88,13 @@
                :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">
                  <el-table-column prop="name" label="项目" width="160">
                    <template slot-scope="scope">
                        <el-input :readonly="resultVal!=null" v-if="scope.row.children" class="inline-input" style="width:90%;" v-model="scope.row.name"
                        <el-input :readonly="resultVal!=null" v-if="scope.row.children" class="inline-input" style="width:80%;" v-model="scope.row.name"
                          placeholder="请输入项目名称"></el-input>
                    </template>
                  </el-table-column>
                  <el-table-column prop="required" label="要求" width="260">
                  <el-table-column prop="required" label="要求" width="160" show-overflow-tooltip>
                    <template slot-scope="scope">
                      <div v-if="!scope.row.children">
                      <el-input :readonly="resultVal!=null" v-model="scope.row.required"
@@ -102,7 +102,7 @@
                      </div>
                    </template>
                  </el-table-column>
                  <el-table-column prop="note" label="检验描述" width="260" >
                  <el-table-column prop="note" label="检验描述" width="160" show-overflow-tooltip>
                    <template slot-scope="scope">
                      <div v-if="!scope.row.children">
                        <el-input :readonly="resultVal!=null" v-model="scope.row.note" placeholder="检验描述"></el-input>
@@ -140,8 +140,8 @@
            <el-table class="l-mes" 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="userName" label="检验员"></el-table-column>
                <el-table-column prop="packageNo" label="包装编号" width="200" show-overflow-tooltip></el-table-column>
                <el-table-column prop="userName" label="检验员" width="200" show-overflow-tooltip></el-table-column>
                <el-table-column prop="result" label="检验结论">
                  <template slot-scope="scope">
                    <el-select :disabled="resultVal!=null" style="width:100%" v-model="scope.row.result">
@@ -160,6 +160,20 @@
        </el-row>
      </div>
    </div>
    <el-dialog
      title="提示"
      :visible.sync="dialogVisible"
      width="30%">
      <el-form :model="submitData" ref="form" label-width="100px" >
        <el-form-item label="请输入行号" prop="lineNo" :rules="{required:true,message:'行号不能为空',trigger:'blur'}">
          <el-input v-model="submitData.lineNo" />
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="confirmSubmit(submitData,false)">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
@@ -176,6 +190,12 @@
    },
    data(){
        return{
            submitData: {
              id:null,
              result: null,
              lineNo: null,
            },
            dialogVisible: false,
            loading: false,
            resultVal: null,
            dataForm:{
@@ -223,23 +243,33 @@
      this.init()
    },
    watch:{
      dialogVisible(newVal){
        if(!newVal){
          this.$refs.form.resetFields();
        }
      }
    },
    methods:{
      changeResult(){
        let result = ''
        let data = this.list
        let passNum = 0
        let unPassNum = 0
        if(data){
          result='合格'
          data.forEach(item=>{
            if(item.children){
              item.children.forEach(ele=>{
                if(ele.result=='不合格'){
                  result='不合格'
                  unPassNum+=1
                }
                if(ele.result=='合格'){
                  passNum+=1
                }
              })
            }
          })
        }
        result = (passNum+unPassNum)>0 ? unPassNum>0 ? '不合格' :'合格' : ''
        this.conclusionTable[0].result = result
      },
      //上报
@@ -250,39 +280,40 @@
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.checkCustomer(_than.dataForm.id)
        }).catch(() => {})
      },
      checkCustomer(id){
        const _than = this
        if(id){
          getCustomer(id).then(res=>{
          _than.submitData.id = _than.dataForm.id,
          _than.submitData.result = _than.conclusionTable[0].result,
          getCustomer(_than.dataForm.id).then(res=>{
            if(res.status===200){
              console.log(res.data);
              _than.confirmSubmit(_than.submitData,true)
            }
          }).catch(error=>{
            this.$prompt('请输入行号', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              inputPattern: /\S/,
              inputErrorMessage: '行号不能为空'
            }).then(({ value }) => {
              let data = {
                id: _than.dataForm.id,
                result: _than.conclusionTable[0].result,
                lineNo: value
              }
              updatePackageInspectById(data).then(res => {
                if(res.data.code === 0){
                  _than.resultVal = res.data.data
                  sessionStorage.setItem("packIns-resultVal-"+_than.dataForm.id,res.data.data)
                  _than.$message.success("上报成功");
                }else{
                  _than.$message.error("上报失败",res.data.data);
                }
              })
            }).catch(() => {
            })
            _than.dialogVisible = true
          })
        }).catch(() => {})
      },
      confirmSubmit(data,isOtc){
        const _than = this
        let isSubmit = false
        if(isOtc){
          isSubmit = true
        }else{
          _than.$refs.form.validate(valid=>{
            if(valid){
              isSubmit = true
              _than.dialogVisible = false
            }
          })
        }
        if(isSubmit){
          updatePackageInspectById(data).then(res => {
            if(res.data.code === 0){
              _than.resultVal = res.data.data
              sessionStorage.setItem("packIns-resultVal-"+_than.dataForm.id,res.data.data)
              _than.$message.success("上报成功");
            }else{
              _than.$message.error("上报失败",res.data.data);
            }
          })
        }
      },
@@ -326,6 +357,7 @@
          })
          this.list[i].children.splice(childrenIndex,1)
        }
        this.changeResult()
      },
      //保存检查项
      savePackIns(){
@@ -352,6 +384,7 @@
          updatePackageInsProduct(dataList).then(res=>{
            if(res.status===200){
              this.$message.success("保存成功")
              this.init()
            }
          }).catch(error=>{
            console.log(error);