chenhaozhe
2025-11-05 f3b6e9ba2e4274b3821551bd1bdfafb40f0e0e26
components/ZLGL/InspectValueTemplate.vue
@@ -66,37 +66,43 @@
            <view class="form-item">
                <view class="left">检验值</view>
                <view class="right">
                    <input type="text" v-model="checkData.HInSpectVal" />
                    <input type="number" v-model="checkData.HInSpectVal" />
                </view>
            </view>
            <view class="form-item">
                <view class="left">目标值</view>
                <view class="right ">
                    <input type="text" v-model="checkData.HTargetVal" />
                    <input type="number" v-model="checkData.HTargetVal" @blur="CalculateLimitOffset(1)" />
                </view>
            </view>
            <view class="form-item">
                <view class="left">上限值</view>
                <view class="right disabled">
                    <input type="text" v-model="checkData.HUpLimit" disabled />
                <view class="right" :class="[AnalysisMethodStatus == 1?'disabled':'']">
                    <input type="number" v-model="checkData.HUpLimit" :disabled="AnalysisMethodStatus == 1"  @blur="CalculateLimitOffset(2)" />
                </view>
            </view>
            <view class="form-item">
                <view class="left">下限值</view>
                <view class="right disabled">
                    <input type="text" v-model="checkData.HDownLimit" disabled />
                <view class="right" :class="[AnalysisMethodStatus == 1?'disabled':'']">
                    <input type="number" v-model="checkData.HDownLimit" :disabled="AnalysisMethodStatus == 1"  @blur="CalculateLimitOffset(3)" />
                </view>
            </view>
            <view class="form-item">
                <view class="left">上偏差</view>
                <view class="right disabled">
                    <input type="text" v-model="checkData.HUpOffset" disabled />
                <view class="right" :class="[
                   (AnalysisMethodStatus == 1 || AnalysisMethodStatus == 3)?'disabled':''
                ]">
                    <input type="number" v-model="checkData.HUpOffset"
                        :disabled="AnalysisMethodStatus == 1 || AnalysisMethodStatus == 3"  @blur="CalculateLimitOffset(4)" />
                </view>
            </view>
            <view class="form-item">
                <view class="left">下偏差</view>
                <view class="right disabled">
                    <input type="text" v-model="checkData.HDownOffset" disabled />
                <view class="right" :class="[
                   (AnalysisMethodStatus == 1 || AnalysisMethodStatus == 3)?'disabled':''
                ]">
                    <input type="number" v-model="checkData.HDownOffset"
                        :disabled="AnalysisMethodStatus == 1 || AnalysisMethodStatus == 3"  @blur="CalculateLimitOffset(5)" />
                </view>
            </view>
            <view style="width: 100%;border-bottom: 1px solid #e3e3e3;"></view>
@@ -120,8 +126,7 @@
                            {{ item.HInSpectResult == 1?"合格":"不合格" }}
                        </view>
                        <view>
                            <switch style="width: 3em; transform:scale(0.7);"
                                :checked="item.HInSpectResult == 1"
                            <switch style="width: 3em; transform:scale(0.7);" :checked="item.HInSpectResult == 1"
                                @change="HInSpectResultChange(index, $event)" />
                        </view>
                    </view>
@@ -130,9 +135,9 @@
                            v-model="item.HInSpectValueB_Text"
                            @update:modelValue="HInSpectValueBChange(index, $event)"></uni-combox>
                        <input v-else-if="checkData.HAnalysisMethod == 2" type="number" v-model="item.HInSpectValue"
                            @blur="InSpectValueChange(item,index)" @confirm="InSpectValueChange(item,index)" />
                            @blur="InSpectValueChange(item,index)" @confirm="InSpectValueChange(item,index)" @focus="item.HInSpectValue = ''" />
                        <input v-else type="number" v-model="item.HInSpectValueT"
                            @blue="InSpectValueTChange(item, index)" @confirm="InSpectValueTChange(item, index)" />
                            @blue="InSpectValueTChange(item, index)" @confirm="InSpectValueTChange(item, index)" @focus="item.HInSpectValueT = ''"/>
                    </view>
                </view>
            </view>
@@ -157,7 +162,14 @@
                    HResult2: '',
                    HStatus: true,
                    HCompareSymbol: "=", // 默认为=号
                    HUnitName: ''
                    HUnitName: '',
                    HAnalysisMethod: 0,
                    HTargetVal: 0,
                    HUpOffset: 0,
                    HDownOffset: 0,
                    HUpLimit: 0,
                    HDownLimit: 0,
                    HSampleUnRightQty: 0
                },
                InSpectValues: [],
                InitInSpectValNameList: [],
@@ -188,6 +200,7 @@
            } = this.bindData
            Object.assign(this.checkData, data, JSON.parse(JSON.stringify(this.bindData)))
            this.checkData.HStatus = this.checkData.HStatus ? true : false
            this.checkData.HResult2 = this.checkData.HResult == 1 ? '合格' : '不合格'
            // 判断是否有缓存数据或者缓存数据是否与样本数一致
            if (!list || list.length != this.checkData.HSampleQty) {
                for (let index = 0; index < this.checkData.HSampleQty; index++) {
@@ -221,12 +234,52 @@
                }
            }
        },
        computed: {
            AnalysisMethodStatus: {
                get() {
                    console.log('this.checkData.HAnalysisMethod: ', this.checkData.HAnalysisMethod);
                    if (this.checkData.HAnalysisMethod == 1) {
                        return 1
                    } else if (this.checkData.HAnalysisMethod == 2) {
                        return 2
                    }
                    return 3
                }
            }
        },
        beforeDestroy() {
            // 注销前,提交数据的检验值
            this.set_SaveValue()
            this.$emit("syncCheckData", this.checkData)
        },
        methods: {
            CalculateLimitOffset(mode) { // 重新计算上限值的偏差值
                switch (mode) {
                    // 目标值变更
                    case 1:
                        this.checkData.HUpOffset = 0
                        this.checkData.HUpLimit = this.checkData.HTargetVal
                        this.checkData.HDownOffset = 0
                        this.checkData.HDownLimit = this.checkData.HTargetVal
                        break;
                        // 上限值变更
                    case 2:
                        this.checkData.HUpOffset = eval(`${this.checkData.HUpLimit}-${this.checkData.HTargetVal}`)
                        break;
                        // 下限值变更
                    case 3:
                        this.checkData.HDownOffset = eval(`${this.checkData.HDownLimit}-${this.checkData.HTargetVal}`)
                        break;
                        // 上偏差值变更
                    case 4:
                        this.checkData.HUpLimit = eval(`${this.checkData.HUpOffset}-${this.checkData.HTargetVal}`)
                        break;
                        // 下偏差值变更
                    case 5:
                        this.checkData.HDownLimit = eval(`${this.checkData.HDownOffset}-${this.checkData.HTargetVal}`)
                        break;
                }
            },
            // 其他分析 检验值变化时判断
            InSpectValueTChange(item, index) {
                console.log('item,: ', item);
@@ -371,6 +424,7 @@
                        count
                    } = res.data
                    if (count == 1) {
                        console.log('InspectValuesData: ', data);
                        // 当前 检验值页签中 保存的数据个数和数据库中的个数大 或者相等,取数据库中的数据,多的补空
                        if (this.InSpectValues.length >= data.length) {
                            let InSpectValuesNew = this.InSpectValues.slice(data.length, this.InSpectValues.length)
@@ -464,6 +518,7 @@
                if (this.checkData.HStatus) { // true 为 检验合格, false为检验 不合格
                    if (unPassNum > unRightQty) {
                        this.checkData.HResult2 = '不合格'
                    } else {
                        this.checkData.HResult2 = '合格'
                    }