zouyu
2023-12-12 a41cd450e4b6afe11f9d1c6f09f19f1fbf86edca
src/views/quality/packageinspect/packageInspect-form.vue
@@ -3,7 +3,8 @@
    <div class="page-header">
      <div class="header-left">
        <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a>
        <h2>编辑-包装检验</h2>
        <h2 v-if="resultVal=='' || resultVal==null">编辑-包装检验</h2>
        <h2 v-else>查看-包装检验</h2>
      </div>
      <div class="btn-group header-right">
      </div>
@@ -65,10 +66,10 @@
        <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==''" style="width:100%" size="small" @click="clickAddLine()">添加检验项目</el-button>
              <el-button v-if="resultVal=='' || resultVal==null" style="width:100%" size="small" @click="clickAddLine()">添加检验项目</el-button>
            </el-col>
            <el-col :span="2">
              <el-button v-if="resultVal==''" style="width:100%" type="primary"  size="small"
              <el-button v-if="resultVal=='' || resultVal==null" style="width:100%" type="primary"  size="small"
              @click="savePackIns()">保存</el-button>
            </el-col>
        </el-row>
@@ -89,14 +90,14 @@
                  </el-table-column>
                  <el-table-column prop="name" label="项目" width="260">
                    <template slot-scope="scope">
                        <el-input :readonly="resultVal!=''" 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: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 v-if="!scope.row.children">
                      <el-input :readonly="resultVal!=''" v-model="scope.row.required"
                      <el-input :readonly="resultVal!=null" v-model="scope.row.required"
                        placeholder="请输入要求"></el-input>
                      </div>
                    </template>
@@ -104,19 +105,19 @@
                  <el-table-column prop="note" label="检验描述" width="260" >
                    <template slot-scope="scope">
                      <div v-if="!scope.row.children">
                        <el-input :readonly="resultVal!=''" v-model="scope.row.note" placeholder="检验描述"></el-input>
                        <el-input :readonly="resultVal!=null" v-model="scope.row.note" placeholder="检验描述"></el-input>
                      </div>
                    </template>
                  </el-table-column>
                  <el-table-column prop="testState" label="结论" min-width="150">
                    <template slot-scope="scope">
                        <el-select :disabled="resultVal!=''" @change="changeResult" v-model="scope.row.result" v-if="!scope.row.children">
                        <el-select style="width:100%" :disabled="resultVal!=null" @change="changeResult" v-model="scope.row.result" v-if="!scope.row.children">
                            <el-option label="合格" value="合格"></el-option>
                            <el-option label="不合格" value="不合格"></el-option>
                        </el-select>
                    </template>
                  </el-table-column>
                  <el-table-column v-if="resultVal==''" fixed="right" style="background-color: white;" label="操作" width="200">
                  <el-table-column v-if="resultVal=='' || resultVal==null" fixed="right" style="background-color: white;" label="操作" width="200">
                    <template slot-scope="scope">
                      <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" icon="el-icon-circle-close" type="text" 
@@ -143,7 +144,7 @@
                <el-table-column prop="userName" label="检验员"></el-table-column>
                <el-table-column prop="result" label="检验结论">
                  <template slot-scope="scope">
                    <el-select :disabled="resultVal!=''" style="width:100%" v-model="scope.row.result">
                    <el-select :disabled="resultVal!=null" style="width:100%" v-model="scope.row.result">
                        <el-option label="合格" value="合格"></el-option>
                        <el-option label="不合格" value="不合格"></el-option>
                    </el-select>
@@ -151,7 +152,7 @@
                </el-table-column>
                <el-table-column  label="操作">
                    <template>
                        <el-button type="text" :disabled="resultVal!=''" @click="submitSave()" size="small">上报</el-button>
                        <el-button type="text" :disabled="resultVal!=null" @click="submitSave()" size="small">上报</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -167,6 +168,7 @@
  fetchListById,
  updatePackageInsProduct,
  updatePackageInspectById,
  getCustomer,
} from '@/api/quality/packageInspect'
export default {
    computed:{},
@@ -221,15 +223,13 @@
      this.init()
    },
    watch:{
      list(){
        this.changeResult()
      }
    },
    methods:{
      changeResult(){
        let result = '合格'
        let result = ''
        let data = this.list
        if(data){
          result='合格'
          data.forEach(item=>{
            if(item.children){
              item.children.forEach(ele=>{
@@ -244,26 +244,60 @@
      },
      //上报
      submitSave(){
        let data = {
          id: this.dataForm.id,
          result: this.conclusionTable[0].result,
        const _than = this
        this.$confirm('上报前,请确认检验项目是否已保存!', '提示', {
          confirmButtonText: '确认上报',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.checkCustomer(_than.dataForm.id)
        }).catch(() => {})
      },
      checkCustomer(id){
        const _than = this
        if(id){
          getCustomer(id).then(res=>{
            if(res.status===200){
              console.log(res.data);
            }
          }).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(() => {
            })
          })
        }
        updatePackageInspectById(data).then(res => {
          if(res.data.code === 0){
            this.resultVal = res.data.data
            sessionStorage.setItem("packIns-resultVal-"+this.dataForm.id,res.data.data)
            this.$message.success("上报成功");
          }else{
            this.$message.error("上报失败",res.data.data);
          }
        });
      },
      // 添加行
      clickAddLine(row) {
      clickAddLine() {
          this.list.push({
            name: '',
            randomId: Math.random(),
            children: []
            children: [{
              name: '',
              note: '',
              required: '',
              result: '',
              randomId: Math.random(),
            }]
          })
      },
      //添加子级
@@ -368,6 +402,11 @@
                userName: Array.from(new Set(userNameList)).join(','),
                result: null
              }]
              this.$nextTick(()=>{
                if(this.list.length>0){
                  this.changeResult()
                }
              })
          }).catch(error=>{
            this.$message.error("获取失败",error)
          })