zss
2023-12-20 c787513ce9b21ba4d9d0273fdcba8a5d560dd092
src/views/quality/processInspect/processInspect-form.vue
@@ -8,13 +8,13 @@
                <h2 v-else>编辑-过程检验单</h2>
            </div>
            <div class="btn-group header-right">
                <el-button @click="addTestProject" v-if="processInspectVo.id == null">生成检验项目</el-button>
                <el-button type="primary" @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">
                    label-width="120px" style="width: 100%" size="small" :rules="rules">
                    <div class="formwrapper">
                        <el-row>
                            <el-col :span="6">
@@ -24,13 +24,14 @@
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="订单号:">
                                <el-form-item label="订单号:" prop="orderNumber">
                                    <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-tooltip class="item" effect="dark" :content="processInspectVo.material">
                                    <el-select style="width: 100%" @change="changeOptionsSamplename"
                                        :disabled="processInspectVo.id != null" v-model="processInspectVo.material"
                                        size="small" placeholder="请选择产品名称">
@@ -38,11 +39,12 @@
                                            :label="item.material" :value="item.materialCode">
                                        </el-option>
                                    </el-select>
                                    </el-tooltip>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="产品编码:">
                                    <el-input disabled v-model="processInspectVo.materialCode" placeholder="请输入产品编码"
                                <el-form-item label="产品编号:">
                                    <el-input disabled v-model="processInspectVo.materialCode" placeholder="请输入产品编号"
                                        autocomplete="off" />
                                </el-form-item>
                            </el-col>
@@ -50,8 +52,10 @@
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="规格型号:">
                                    <el-input disabled v-model="processInspectVo.specs" placeholder="请输入规格型号"
                                    <el-tooltip class="item" effect="dark" :content="processInspectVo.specs">
                                    <el-input disabled v-model="processInspectVo.specs"
                                        autocomplete="off" />
                                    </el-tooltip>
                                </el-form-item>
                            </el-col>
                        
@@ -113,7 +117,7 @@
                                            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>
                                                @blur="changeState(scope.row,true)" placeholder="请输入检测值"></el-input>
                                            <span v-if="resultVal != null && processInspectVo.id != null"
                                                v-text="scope.row.empiricalValueAddss[index]"></span>
                                        </el-tooltip>
@@ -121,10 +125,7 @@
                                    <el-col v-else>
                                        <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> -->
                                            <el-select style="width: 100%;" @change="changeState(scope.row, index)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择">
                                            <el-select style="width: 100%;" @change="changeState(scope.row)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择">
                                                <el-option v-for="item in dataVal" :key="item.value" :label="item.label"
                                                    :value="item.value">
                                                </el-option>
@@ -140,42 +141,33 @@
                                    <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"
                                        <el-select style="width:80%" v-model="scope.row.eId" v-if="scope.row.iname != null"
                                            filterable @change="updateDevice(scope.row, scope.$index)">
                                            <el-option v-for="(item, index) in deviceList" :key="index" :value="item.id"
                                                :label="item.code + '-' + item.name"></el-option>
                                        </el-select>
                                        <el-button
                                    size="small"
                                    slot="append"
                                    icon="el-icon-full-screen"
                                    v-if="scope.row.iname != null"
                                    @click="codeDevice(scope.row,scope.$index)"></el-button>
                                    </div>
                                </template>
                            </el-table-column>
                            <el-table-column 
                                label="检验描述" width="240" style="text-align: center;">
                                <template slot-scope="scope">
                                    <el-col v-if="scope.row.itype === '1'">
                                    <el-col>
                                        <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.inote"
                                                @blur="changeState(scope.row, inote)" placeholder="请输入检验描述"></el-input>
                                                @blur="changeState(scope.row)" placeholder="请输入检验描述"></el-input>
                                            <span v-if="resultVal != null && processInspectVo.id != null"
                                                v-text="scope.row.inote"></span>
                                        </el-tooltip>
                                    </el-col>
                                <el-col v-else>
                                        <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.inote"
                                                @blur="changeState(scope.row, inote)" placeholder="请输入检测值"></el-input>
                                            <!-- <el-select style="width: 100%;" @change="changeState(scope.row, inote)" :disabled="scope.row.eId == null" v-model="scope.row.inote" placeholder="请选择">
                                                <el-option v-for="item in dataVal" :key="item.value" :label="item.label"
                                                    :value="item.value">
                                                </el-option>
                                            </el-select>  -->
                                         <span v-if="resultVal != null && processInspectVo.id != null"
                                                v-text="scope.row.inote"></span>
                                        </el-tooltip>
                                    </el-col>
                                </template>
                            </el-table-column>
                            <el-table-column label="结论" fixed="right" min-width="100">
@@ -220,6 +212,18 @@
                </el-row>
            </div>
        </div>
        <el-dialog
  title="设备扫描"
  :visible.sync="deviceCode"
  width="60%">
  <div style="height: 100vh;width: 100%;">
    <qr-code-app ref="codeDeviceCompont" @ok="getDeviceResultInfo" @cancelCodeDialog="cancelDeviceCodeDialog"></qr-code-app>
  </div>
  <span slot="footer" class="dialog-footer">
    <el-button @click="deviceCode = false">取 消</el-button>
    <el-button type="primary" @click="deviceCode = false">确 定</el-button>
  </span>
</el-dialog>
    </div>
</template>
    
@@ -233,9 +237,19 @@
    updateProcessInspectsById,
} from '@/api/quality/processInspect'
import { selectDevice } from '@/api/quality/processInspect'
import qrCodeApp from '@/views/common/qrCodeApp'
export default {
    components:{
        qrCodeApp
    },
    data() {
        return {
            row: null,
            proIndex: 0,
            deviceCode: false,
            rules: {
                orderNumber: [{required:true,message:'订单号不能为空',trigger:'blur'}]
            },
            dataVal: [{
                label: '是',
                value: '是'
@@ -257,7 +271,7 @@
                proInsNo: null,
                material: null,
                materialCode: null,
                orderNumber: "ZTTIC20230001",
                orderNumber: null,
                quantity: null,
                specs: null,
                unit: null,
@@ -279,17 +293,44 @@
    mounted() {
        this.getDeviceList()
        this.processInspectVo.id = this.$route.query.id
        this.resultVal = this.$route.query.resultVal
        this.resultVal = this.$route.params.resultVal
        if (this.resultVal == null) {
            let val = sessionStorage.getItem("process-resultVal-" + this.processInspectVo.id);
            val == undefined ? this.resultVal = null : this.resultVal = val
        }
        console.log(this.resultVal);
        this.init()
    },
    methods: {
        cancelDeviceCodeDialog(){
        this.deviceCode = false
      },
      getDeviceResultInfo(val){
        console.log("扫描后数据",val);
        let id=val.split("id@")[1]
        if(id!=undefined&&id!=''&&id!=null){
            let filterData=this.deviceList.filter(item=>{
          return item.id==id
        })[0]
        console.log(filterData);
        this.row.eId=Number(id)
        this.updateDevice(this.row)
        }else{
            this.$message({
          message: '未识别出二位码计量器具信息!',
          type: 'warning'
        });
        }
      },
      codeDevice(row,index){
        this.row=row
        console.log("row",row);
        this.deviceCode =true
        this.$refs.codeDeviceCompont.openCamera()
        this.proIndex=index
      },
        submitSave() {
            let pro = 0
        console.log(this.inspectionItems);
            this.inspectionItems.forEach(item => {
                if (item.children) {
                    let arr = item.children.filter(obj => {
@@ -298,6 +339,11 @@
                    pro += arr.length
                }
            })
            let obj = {
                id: this.processInspectVo.id,
                number: 0,
                result: this.inspectionResultForm[0].result
            }
            if (pro > 0) {
                this.$prompt('请输入不合格数量', '不合格数量', {
                    confirmButtonText: '确定',
@@ -305,11 +351,8 @@
                    inputPattern: /^\d+$/,
                    inputErrorMessage: '请输入正确数字格式'
                }).then(({ value }) => {
                    let data = {
                        id: this.processInspectVo.id,
                        number: value
                    }
                    updateProcessInspectsById(data).then(res => {
                    obj.number = value
                    updateProcessInspectsById(obj).then(res => {
                        let data = res.data.data
                        if (data) {
                            if (data.indexOf("成功") > 0) {
@@ -323,7 +366,7 @@
                    });
                }).catch(() => { });
            } else {
                updateProcessInspectsById({ id: this.processInspectVo.id, number: 0 }).then(res => {
                updateProcessInspectsById(obj).then(res => {
                    let data = res.data.data
                    if (data) {
                        if (data.indexOf("成功") > 0) {
@@ -379,9 +422,9 @@
                                    arr = obj.inspectionValue.split(",")
                                }
                                obj.empiricalValueAddss = arr
                                if(obj.note){
                                        snote=obj.inote
                                    }
                                if(!obj.inote){
                                    obj.inote = null
                                }
                                if (arr.length > this.empiricalValueAdd) {
                                    this.empiricalValueAdd = arr.length
                                }
@@ -389,12 +432,21 @@
                        }
                    })
                    this.inspectionItems = result.children
                    console.log(this.inspectionItems);
                    let rVal = '1'
                    this.inspectionItems.forEach(item => {
                        if (item.children) {
                            item.children.forEach(obj => {
                                if (obj.iresult == 0) {
                                    rVal = '0'
                                }
                            })
                        }
                    })
                    this.inspectionResultForm = [{
                        materialCode: result.materialCode,
                        material: result.material,
                        userName: Array.from(new Set(userList)).join(","),
                        result: this.resultVal == null ? '' : this.resultVal,
                        result: this.resultVal == null ? rVal : this.resultVal,
                    }]
                }).catch(error => {
                    console.log(error)
@@ -434,32 +486,37 @@
            this.processInspectVo.material = sample.material
            this.technologyList = sample.children
        },
        changeState(row, index) {
            console.log(row)
        changeState(row,isChecked) {
            const _than = this
            if(isChecked){
                let isNumber = true
                for(var i=0;i<row.empiricalValueAddss.length;i++){
                    let val = row.empiricalValueAddss[i]
                    if(!/^[0-9]*[1-9][0-9]*$/.test(val)){
                        row.empiricalValueAddss[i] = null
                        _than.$message.error("请输入数字")
                        isNumber = false
                    }
                }
                if(!isNumber){
                    return
                }
            }
            if (row.iid != null && row.iid != '') {
                let str = ""
                row.empiricalValueAddss.forEach(e => {
                    str += e + ","
                })
                // if (note === undefined || note === '' || note === null) {
                //     return
                // }
                console.log(str)
                str = str.slice(0, -1);
                if (str === undefined || str === '' || str === null) {
                    return
                }
                let obj = {
                    devideId: row.eId,
                    ppid: row.iid,
                    inspectionValue: str,
                    note : row.inote
                }
                console.log(obj)
                updateProcessInsProduct(obj).then(res => {
                    if (res.data.code == 0) {
                        this.$message.success("更新成功")
@@ -472,21 +529,23 @@
        },
        addTestProject() {
            let val = this.processInspectVo
            const _than = this
            addProcess(val).then(res => {
                let id = res.data.data
                if (id != null) {
                    _than.processInspectVo.id = id
                    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.inote = null
                                    obj.empiricalValueAddss = []
                                })
                            }
                        })
                        this.inspectionItems = proList
                        _than.inspectionItems = proList
                    }).catch(error => {
                        console.log(error);
                    })
@@ -496,32 +555,67 @@
            })
        },
        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
            this.$refs.addInspectionform.validate(valid=>{
                if(valid){
                    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
                        }
                    })
                }
            })
        },
        changeRowResult(){
            if(this.inspectionItems){
                this.inspectionItems.forEach(e=>{
                    if(e.children){
                        e.children.forEach(i=>{
                            if(i.empiricalValueAddss.length>1){
                                let arr = i.inspectionValue.split(",")
                                arr.splice((arr.length-1),1)
                                let obj = {
                                    devideId: i.eId,
                                    ppid: i.iid,
                                    inspectionValue: arr.join(","),
                                    note : i.inote
                                }
                                updateProcessInsProduct(obj).then(res => {
                                    if (res.data.code == 0) {
                                        this.init()
                                    }
                                })
                            }
                        })
                    }
                })
            }
        },
        // 删除检验值列
        clickDeleteInspectionColumn() {
            if (this.empiricalValueAdd - 1 === 0) {
            const _than = this
            if (_than.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);
                if (_than.empiricalValueAddMaxNumber != _than.empiricalValueAdd - 1) {
                    _than.empiricalValueAdd = _than.empiricalValueAdd - 1;
                    _than.changeRowResult()
                    _than.inspectionItems.forEach(i => {
                        if(i.children){
                            i.children.forEach(ele=>{
                                ele.empiricalValueAddss.splice(_than.empiricalValueAdd, 1);
                            })
                        }
                    });
                }
            }