loulijun2021
2024-05-08 15cbc2f370b61e4e0cd472c8030fb8cb6d89b82a
1.产品  设备管理静态页面递交
已添加5个文件
已修改2个文件
2542 ■■■■■ 文件已修改
pages.json 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sbgl/dqby.vue 480 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sbgl/rcdj.vue 460 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sbgl/sbwx.vue 509 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sbgl/wxsq.vue 419 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sbgl/wxyz.vue 603 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/xtsy/index.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json
@@ -312,6 +312,44 @@
                "navigationStyle": "custom",
                "enablePullDownRefresh": false
            }
        },
        {
            "path": "pages/sbgl/dqby",
            "style": {
                "navigationBarTitleText": "定期保养",
                "navigationStyle": "custom",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/sbgl/rcdj",
            "style": {
                "navigationBarTitleText": "日常点检",
                "navigationStyle": "custom",
                "enablePullDownRefresh": false
            }
        },
        {
            "path": "pages/sbgl/wxsq",
            "style": {
                "navigationBarTitleText": "维修申请",
                "navigationStyle": "custom",
                "enablePullDownRefresh": false
            }
        },
        {
            "path": "pages/sbgl/sbwx",
            "style": {
                "navigationBarTitleText": "设备维修",
                "navigationStyle": "custom",
                "enablePullDownRefresh": false
            }
        }, {
            "path": "pages/sbgl/wxyz",
            "style": {
                "navigationBarTitleText": "维修验证",
                "navigationStyle": "custom",
                "enablePullDownRefresh": false
            }
        }
    ],
    "globalStyle": {
pages/sbgl/dqby.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,480 @@
<template>
    <view>
        <page-nav title="定期保养"></page-nav>
        <view v-show="topContent.length===0">
            <div class="sacnBody">
                <div class="scanImg" @click="topScanClick"></div>
                <div class="scanText">扫描保养工位</div>
            </div>
        </view>
        <view v-show="topContent.length!==0">
            <view class="mainContent">
                <view>
                    <u-gap height="10" bgColor="#eff0f1"></u-gap>
                    <view class="head">
                        <view class="head_block">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    æ‰«æä¿å…»å·¥ä½
                                </view>
                            </view>
                            <view class="marginRight20">
                                <u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon>
                            </view>
                        </view>
                        <view class="marginLeft20 marginRight20" style="max-height: 180rpx;overflow:scroll;">
                            <u-radio-group v-model="radioValue" class="flex_column">
                                <view class="marginBottom20 flex_between" @click="groupChange(item.code)"
                                    v-for="item in topContent" :key="item.code">
                                    <view style="display: flex;">
                                        <view class="flex_column titleFont">
                                            <view>工位编码:</view>
                                            <view>工位名称:</view>
                                            <view>生产车间:</view>
                                        </view>
                                        <view class="flex_column contentFont">
                                            <view>{{item.code}}</view>
                                            <view>{{item.name}}</view>
                                            <view>{{item.wksp_name}}</view>
                                        </view>
                                    </view>
                                    <u-radio size='40' :key="item.code" :name="item.code"
                                        @change="groupChange(item.code)" activeColor="red"></u-radio>
                                </view>
                            </u-radio-group>
                        </view>
                    </view>
                    <u-gap height="12" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="height:86rpx;">
                        <view class="head_block">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    ä¿å…»æ ‡å‡†
                                </view>
                            </view>
                            <view class="marginRight20 marginTop10" style="width: 200rpx;">
                                <!-- <u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon> -->
                                <uni-data-select v-model="selectValueBZ" :clear="false" :localdata="selectRangeBZ"
                                    @change="selectChangeBZ">
                                </uni-data-select>
                            </view>
                        </view>
                    </view>
                    <u-gap height="12" bgColor="#eff0f1"></u-gap>
                    <view class="head">
                        <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    ä¿å…»é¡¹ç›®å†…容
                                </view>
                            </view>
                            <view class="marginRight20" style="width: 200rpx;">
                                <uni-data-select v-model="selectValue" :clear="false" :localdata="selectRange"
                                    @change="selectChange">
                                </uni-data-select>
                            </view>
                        </view>
                        <view :style="{maxHeight:'1000rpx',overflow: 'scroll'}">
                            <view class="center_border flex_column" style="margin: 10rpx;" v-for="item in centerContent"
                                :key="item.code">
                                <view class="flex_between marginBottom10">
                                    <view class="center_title">{{item.name}}</view>
                                    <view class="marginRight20" v-if="item.isscan==='Y'">
                                        <u-icon name="scan" @click="centerScanClick(item.code)" color="red" size="56">
                                        </u-icon>
                                    </view>
                                </view>
                                <view class="flex_between marginBottom10">
                                    <view class='inputClass marginTop10'>
                                        <u--input :disabled='item.isDisabled' placeholder="请输入" border="surround"
                                            v-model="item.inputValue"></u--input>
                                    </view>
                                    <view class="flex_center">
                                        <u-button type="primary" :plain="item.isOK!=='OK'" :disabled="item.isDisabled"
                                            text="正常" @click="bwClick(item,'OK')">
                                        </u-button>
                                        <u-button type="warning" :plain="item.isOK!=='NG'" :disabled="item.isDisabled"
                                            text="异常" @click="bwClick(item,'NG')">
                                        </u-button>
                                    </view>
                                </view>
                                <view class="titleFont">
                                    {{item.chkdesc}}
                                </view>
                            </view>
                        </view>
                    </view>
                </view>
            </view>
            <view class="footer">
                <view class="head_block" style="align-items: center;padding: 0 23rpx;">
                    <view class="head_left">
                        <view class="head_bar"></view>
                        <view class="head_title">
                            ç‚¹æ£€ç»“æžœ
                        </view>
                    </view>
                    <view class="flex_center">
                        <u-button type="primary" :plain="resultValue!=='OK'"
                            :disabled="centerContent.some(item=>item.isDisabled===true)||centerContent.length===0"
                            text="正常" @click="resultClick('OK')"></u-button>
                        <u-button type="warning" :plain="resultValue!=='NG'"
                            :disabled="centerContent.some(item=>item.isDisabled===true)||centerContent.length===0"
                            text="异常" @click="resultClick('NG')"></u-button>
                    </view>
                </view>
            </view>
            <u-button size="large" :loading="isDisabledSubmitButton" loadingText="正在提交,请稍等..." type="primary"
                @click="submit" :disabled="resultValue===''" text="确认提交">
            </u-button>
        </view>
        <scan-code></scan-code>
    </view>
</template>
<script>
    import {
        // RepairScanDeviceQrCodeData,
        // RepairSelectScanDeviceQrCodeItem,
        // RepairScanDeviceTemp,
        // AppDeviceRepairSave
    } from '../../config/api.js'
    import scanCode from '@/components/scan-code/scan-code.vue'
    export default {
        components: {
            scanCode
        },
        onLoad(option) {
            const _this = this
            uni.$off('scancodedate') // æ¯æ¬¡è¿›æ¥å…ˆ ç§»é™¤å…¨å±€è‡ªå®šä¹‰äº‹ä»¶ç›‘听器
            uni.$on('scancodedate', function(content) {
                console.log("扫描到的内容为:", content)
                _this.getRepairScanDeviceQrCodeData(content)
            })
        },
        onPullDownRefresh() {
            setTimeout(() => {
                this.init(() => {
                    uni.stopPullDownRefresh();
                })
            }, 1000);
        },
        data() {
            return {
                isDisabledSubmitButton: false,
                topContent: [], //扫描保养工位所带出来的内容
                centerContent: [], //保养项目内容
                scanContent: '', //扫描扫出来的值
                radioValue: '', //单选框的值
                resultValue: '', //保养结果值
                selectValueBZ: '', //标准选择的值
                selectRangeBZ: [], //标准选择的下拉选项
                selectValue: 'M',
                selectRange: [{
                    value: 'Y',
                    text: 'å¹´'
                }, {
                    value: 'S',
                    text: 'å­£'
                }, {
                    value: 'M',
                    text: '月'
                }, {
                    value: 'W',
                    text: '周'
                }, ]
            }
        },
        created() {
        },
        mounted() {
            this.init()
            // this.getRepairScanDeviceQrCodeData('SB001')
            // this.getRepairScanDeviceQrCodeData('SB002')
            // setTimeout(() => {
            // this.getRepairScanDeviceQrCodeData('SB003')
            // }, 100)
        },
        methods: {
            init() {
                uni.stopPullDownRefresh();
            },
            selectChange(val) {
                console.log(val)
            },
            selectChangeBZ(val) {
                console.log(val, 1)
                this.selectValueBZ = val
                this.getRepairSelectScanDeviceQrCodeItem(this.radioValue, this.selectValueBZ)
            },
            // æ‰«ç å·¥ä½  çš„æ‰«ç æ¡†ç‚¹å‡»
            topScanClick() {
                let that = this;
                uni.scanCode({
                    onlyFromCamera: true,
                    // scanType: ['barCode', 'qrCode'],
                    scanType: ['qrCode'],
                    success: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                        that.scanContent = res.result;
                        let flag = false
                        that.topContent.forEach(item => {
                            if (item.code === res.result) {
                                flag = true
                            }
                        })
                        if (flag) {
                            that.$u.toast('此条码已扫描,已在列表中!')
                        } else {
                            //处理扫码事件
                            that.getRepairScanDeviceQrCodeData(that.scanContent);
                        }
                    },
                    complete: function(res) {
                    },
                    fail: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                    }
                });
            },
            // ä¿å…»é¡¹ç›®å†…容  çš„æ‰«ç æ¡†ç‚¹å‡»
            centerScanClick(val) {
                let that = this;
                uni.scanCode({
                    onlyFromCamera: true,
                    // scanType: ['barCode', 'qrCode'],
                    scanType: ['qrCode'],
                    success: function(res) {
                        // console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                        // that.scanContent = res.result;
                        if (res.result === val) {
                            that.centerContent.find(item => item.code === val).isDisabled = false
                            that.centerContent.find(item => item.code === val).isOK = 'OK'
                            if (that.centerContent.every(r => r.isOK === 'OK')) {
                                that.resultValue = 'OK'
                            }
                            if (that.centerContent.some(r => r.isOK === 'NG')) {
                                that.resultValue = 'NG'
                            }
                            if (that.centerContent.some(r => r.isOK === '')) {
                                that.resultValue = ''
                            }
                            that.$forceUpdate()
                        } else {
                            uni.$u.toast('所扫条码与点检部位不符合!')
                        }
                        //处理扫码事件
                        // that.SearchBarcode();
                    },
                    complete: function(res) {},
                    fail: function(res) {}
                });
            },
            // èŽ·å–ä¿å…»å·¥ä½
            async getRepairScanDeviceQrCodeData(val) {
                const data = {
                    eqpcode: val
                }
                const res = await RepairScanDeviceQrCodeData(data)
                if (res.code === '200' && res.data[0].eapmai_code !== null) { //表示绑定了标准
                    this.topContent.unshift(res.data[0])
                    this.radioValue = res.data[0].code
                    // this.selectValue = res.data[0].main_cycle
                    // this.getRepairSelectScanDeviceQrCodeItem(res.data[0].code, res.data[0].eapmai_code)
                    this.getRepairScanDeviceTemp(res.data[0].code)
                } else if (res.code === '200' && res.data[0].eapmai_code === null) {
                    uni.$u.toast('当前设备未设置点检标准绑定点检项目!')
                    // this.selectValueBZ = ''
                    // this.centerContent = []
                    // this.$forceUpdate()
                }
                // else if (res.code === '200') {
                //     uni.$u.toast('当前设备未设置点检标准绑定点检项目!')
                //     this.$forceUpdate()
                // }
            },
            // èŽ·å–ä¿å…»æ ‡å‡†
            async getRepairScanDeviceTemp(eqpcode) {
                const res = await RepairScanDeviceTemp({
                    eqpcode
                })
                this.selectRangeBZ = res.data.map(({
                    code,
                    name
                }) => ({
                    text: name,
                    value: code
                }))
                this.selectValueBZ = this.selectRangeBZ[0].value
                this.getRepairSelectScanDeviceQrCodeItem(eqpcode, this.selectValueBZ)
            },
            // èŽ·å–ä¿å…»é¡¹ç›®å†…å®¹
            async getRepairSelectScanDeviceQrCodeItem(eqpcode, repartempcode) {
                const data = {
                    eqpcode,
                    repartempcode
                }
                const res = await RepairSelectScanDeviceQrCodeItem(data)
                if (res.code === '200') {
                    this.centerContent = res.data
                    this.centerContent.forEach(item => {
                        item.inputValue = ''
                        item.isDisabled = item.isscan === 'Y'
                        item.isOK = item.isscan !== 'Y' ? 'OK' : ''
                    })
                    if (this.centerContent.every(r => r.isOK === 'OK')) {
                        this.resultValue = 'OK'
                    }
                    if (this.centerContent.some(r => r.isOK === 'NG')) {
                        this.resultValue = 'NG'
                    }
                    if (this.centerContent.some(r => r.isOK === '')) {
                        this.resultValue = ''
                    }
                    this.radioValue = eqpcode
                    this.selectValue = this.centerContent[0].main_cycle
                    this.$forceUpdate()
                } else if (res.code === '300') {
                    this.selectValueBZ = ''
                    this.centerContent = []
                    this.$forceUpdate()
                }
            },
            // å•选按钮点击
            groupChange(val) {
                this.radioValue = val
                this.$forceUpdate()
                // this.getRepairSelectScanDeviceQrCodeItem(val, this.topContent.find(i => i.code === val).eapmai_code)
                this.getRepairScanDeviceTemp(val)
            },
            // éƒ¨ä½æ­£å¸¸ å¼‚常按钮点击
            bwClick(item, val) {
                item.isOK = val
                if (this.centerContent.every(item => item.isOK !== '')) {
                    if (this.centerContent.every(item => item.isOK === 'OK')) {
                        this.resultValue = 'OK'
                    } else {
                        this.resultValue = 'NG'
                    }
                }
                this.$forceUpdate() //强制视图更新
            },
            // ç‚¹æ£€ç»“果点击
            resultClick(val) {
                this.resultValue = val
                this.$forceUpdate() //强制视图更新
            },
            // ç¡®è®¤æäº¤æŒ‰é’®
            async submit() {
                const children = []
                this.centerContent.forEach(item => {
                    children.push({
                        seq: item.seq,
                        itemcode: item.code,
                        cycle: item.main_cycle,
                        value: item.inputValue,
                        result: item.isOK
                    })
                })
                const data = {
                    code: this.topContent.find(item => item.code === this.radioValue).code,
                    name: this.topContent.find(item => item.code === this.radioValue).name,
                    // standcode: this.topContent.find(item => item.code === this.radioValue).eapmai_code,
                    standcode: this.selectValueBZ,
                    result: this.resultValue,
                    children: children
                }
                // console.log(data)
                this.isDisabledSubmitButton = true
                const res = await AppDeviceRepairSave(data, uni.getStorageSync("username"), this.selectValue)
                if (res.code === '200') {
                    uni.$u.toast('提交成功!')
                    this.isDisabledSubmitButton = false
                    this.topContent.forEach((item, index) => {
                        if (item.code === this.radioValue) {
                            this.topContent.splice(index, 1)
                        }
                    })
                    this.radioValue = this.topContent[0].code
                    if (this.radioValue.toString().length > 0) {
                        this.getRepairScanDeviceTemp(this.radioValue)
                    }
                }
            },
        }
    }
</script>
<style lang="scss" scoped>
    @import url('@/style/global.css');
    ::v-deep .uicon-arrow-left>span {
        display: block;
    }
</style>
pages/sbgl/rcdj.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,460 @@
<template>
    <view>
        <page-nav title="日常点检"></page-nav>
        <!-- <u-notify ref="uNotify"></u-notify> -->
        <view v-show="topContent.length===0">
            <div class="sacnBody">
                <div class="scanImg" @click="topScanClick"></div>
                <div class="scanText">扫描点检工位</div>
            </div>
        </view>
        <view v-show="topContent.length!==0">
            <view class="mainContent">
                <view>
                    <u-gap height="10" bgColor="#eff0f1"></u-gap>
                    <view class="head">
                        <view class="head_block">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    æ‰«æç‚¹æ£€å·¥ä½
                                </view>
                            </view>
                            <view class="marginRight20">
                                <u-icon name="scan" @click="topScanClick" color="red" size="28"></u-icon>
                            </view>
                        </view>
                        <view class="marginLeft20 marginRight20" style="max-height: 180rpx;overflow:auto;">
                            <u-radio-group v-model="radioValue" class="flex_column">
                                <view class="marginBottom20 flex_between" @click="groupChange(item.code)"
                                    v-for="item in topContent" :key="item.code">
                                    <view style="display: flex;">
                                        <view class="flex_column titleFont">
                                            <view>工位编码:</view>
                                            <view>工位名称:</view>
                                            <view>生产车间:</view>
                                        </view>
                                        <view class="flex_column contentFont">
                                            <view>{{item.code}}</view>
                                            <view>{{item.name}}</view>
                                            <view>{{item.wksp_name}}</view>
                                        </view>
                                    </view>
                                    <u-radio style="line-height: 44rpx;" size='40' :key="item.code" :name="item.code"
                                        @change="groupChange(item.code)" activeColor="red"></u-radio>
                                </view>
                            </u-radio-group>
                        </view>
                    </view>
                    <u-gap height="12" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="height:82rpx;">
                        <view class="head_block">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    ç‚¹æ£€æ ‡å‡†
                                </view>
                            </view>
                            <view class="marginRight20 marginTop10" style="width: 200rpx;">
                                <!-- <u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon> -->
                                <uni-data-select v-model="selectValueBZ" :clear="false" :localdata="selectRangeBZ"
                                    @change="selectChangeBZ">
                                </uni-data-select>
                            </view>
                        </view>
                    </view>
                    <u-gap height="12" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="">
                        <view class="head_block">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    ç‚¹æ£€é¡¹ç›®å†…容
                                </view>
                            </view>
                        </view>
                        <!-- <view :style="{maxHeight:(($DeviceInformation.screenHeight-530)*3)+'rpx',overflow: 'scroll'}"> -->
                        <view :style="{maxHeight:'1000rpx',overflow: 'scroll'}">
                            <view class="center_border flex_column" style="margin: 10rpx;" v-for="item in centerContent"
                                :key="item.code">
                                <view class="flex_between marginBottom10">
                                    <view class="center_title">{{item.name}}</view>
                                    <view class="marginRight20" v-if="item.isscan==='Y'">
                                        <u-icon name="scan" @click="centerScanClick(item.code)" color="red" size="56">
                                        </u-icon>
                                    </view>
                                </view>
                                <view class="flex_between marginBottom10">
                                    <view class='inputClass marginTop10'>
                                        <u--input :disabled='item.isDisabled' placeholder="请输入" border="surround"
                                            v-model="item.inputValue"></u--input>
                                    </view>
                                    <view class="flex_center">
                                        <u-button type="primary" :plain="item.isOK!=='OK'" :disabled="item.isDisabled"
                                            text="正常" @click="bwClick(item,'OK')">
                                        </u-button>
                                        <u-button type="warning" :plain="item.isOK!=='NG'" :disabled="item.isDisabled"
                                            text="异常" @click="bwClick(item,'NG')">
                                        </u-button>
                                    </view>
                                </view>
                                <view class="titleFont">
                                    {{item.chkdesc}}
                                </view>
                            </view>
                        </view>
                    </view>
                </view>
            </view>
            <view class="footer">
                <view class="head_block" style="align-items: center;padding: 0 23rpx;">
                    <view class="head_left">
                        <view class="head_bar"></view>
                        <view class="head_title">
                            ç‚¹æ£€ç»“æžœ
                        </view>
                    </view>
                    <view class="flex_center">
                        <u-button type="primary" :plain="resultValue!=='OK'"
                            :disabled="centerContent.some(item=>item.isDisabled===true)||centerContent.length===0"
                            text="正常" @click="resultClick('OK')"></u-button>
                        <u-button type="warning" :plain="resultValue!=='NG'"
                            :disabled="centerContent.some(item=>item.isDisabled===true)||centerContent.length===0"
                            text="异常" @click="resultClick('NG')"></u-button>
                    </view>
                </view>
            </view>
            <u-button size="large" :loading="isDisabledSubmitButton" loadingText="正在提交,请稍等..." type="primary"
                @click="submit" :disabled="resultValue===''" text="确认提交">
            </u-button>
        </view>
        <scan-code></scan-code>
    </view>
</template>
<script>
    import {
        // CheckScanDeviceQrCodeData,
        // SelectScanDeviceQrCodeItem,
        // CheckScanDeviceTemp,
        // AppDeviceCheckSave
    } from '../../config/api.js'
    import scanCode from '@/components/scan-code/scan-code.vue'
    export default {
        components: {
            scanCode
        },
        onLoad(option) {
            const _this = this
            uni.$off('scancodedate') // æ¯æ¬¡è¿›æ¥å…ˆ ç§»é™¤å…¨å±€è‡ªå®šä¹‰äº‹ä»¶ç›‘听器
            uni.$on('scancodedate', function(content) {
                console.log("扫描到的内容为:", content)
                _this.getCheckScanDeviceQrCodeData(content)
            })
        },
        onPullDownRefresh() {
            setTimeout(() => {
                this.init(() => {
                    uni.stopPullDownRefresh();
                })
            }, 1000);
        },
        data() {
            return {
                isDisabledSubmitButton: false,
                selectValueBZ: '',
                selectRangeBZ: [],
                topContent: [], //扫描点检工位所带出来的内容
                centerContent: [], //点检项目内容
                scanContent: '', //扫描扫出来的值
                radioValue: '', //单选框的值
                resultValue: '', //点检结果值
            }
        },
        created() {
        },
        mounted() {
            this.init()
            // this.getCheckScanDeviceQrCodeData('SB001')
            // this.getCheckScanDeviceQrCodeData('SB002')
            // this.getCheckScanDeviceQrCodeData('SB003')
        },
        methods: {
            init() {
                uni.stopPullDownRefresh();
            },
            // æ‰«ç ç‚¹æ£€å·¥ä½  çš„æ‰«ç æ¡†ç‚¹å‡»
            topScanClick() {
                let that = this;
                uni.scanCode({
                    onlyFromCamera: true,
                    // scanType: ['barCode', 'qrCode'],
                    scanType: ['qrCode'],
                    success: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                        that.scanContent = res.result;
                        let flag = false
                        that.topContent.forEach(item => {
                            if (item.code === res.result) {
                                flag = true
                            }
                        })
                        if (flag) {
                            that.$u.toast('此条码已扫描,已在列表中!')
                        } else {
                            //处理扫码事件
                            that.getCheckScanDeviceQrCodeData(that.scanContent);
                        }
                    },
                    complete: function(res) {
                    },
                    fail: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                    }
                });
            },
            // ç‚¹æ£€é¡¹ç›®å†…容  çš„æ‰«ç æ¡†ç‚¹å‡»
            centerScanClick(val) {
                let that = this;
                uni.scanCode({
                    onlyFromCamera: true,
                    // scanType: ['barCode', 'qrCode'],
                    scanType: ['qrCode'],
                    success: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                        // that.scanContent = res.result;
                        if (res.result === val) {
                            that.centerContent.find(item => item.code === val).isDisabled = false
                            that.centerContent.find(item => item.code === val).isOK = 'OK'
                            if (that.centerContent.every(r => r.isOK === 'OK')) {
                                that.resultValue = 'OK'
                            }
                            if (that.centerContent.some(r => r.isOK === 'NG')) {
                                that.resultValue = 'NG'
                            }
                            if (that.centerContent.some(r => r.isOK === '')) {
                                that.resultValue = ''
                            }
                            that.$forceUpdate()
                        } else {
                            uni.$u.toast('所扫条码与点检部位不符合!')
                        }
                        //处理扫码事件
                        // that.SearchBarcode();
                    },
                    complete: function(res) {},
                    fail: function(res) {}
                });
            },
            // èŽ·å–ç‚¹æ£€å·¥ä½
            async getCheckScanDeviceQrCodeData(val) {
                const data = {
                    eqpcode: val
                }
                const res = await CheckScanDeviceQrCodeData(data)
                if (res.code === '200' && res.data[0].eqpchkmain_code !== null) { //表示绑定了标准
                    this.topContent.unshift(res.data[0])
                    // console.log(res.data[0],222);
                    this.getCheckScanDeviceTemp(res.data[0].code)
                } else if (res.code === '200' && res.data[0].eqpchkmain_code === null) {
                    uni.$u.toast('当前设备未设置点检标准绑定点检项目!')
                }
            },
            // èŽ·å–ç‚¹æ£€æ ‡å‡†
            async getCheckScanDeviceTemp(eqpcode) {
                const res = await CheckScanDeviceTemp({
                    eqpcode
                })
                this.selectRangeBZ = res.data.map(({
                    code,
                    name
                }) => ({
                    text: name,
                    value: code
                }))
                this.selectValueBZ = this.selectRangeBZ[0].value
                this.getSelectScanDeviceQrCodeItem(eqpcode, this.selectValueBZ)
            },
            //点检标准下拉选择改变
            selectChangeBZ(val) {
                this.selectValueBZ = val
                this.getSelectScanDeviceQrCodeItem(this.radioValue, this.selectValueBZ)
            },
            // èŽ·å–ç‚¹æ£€é¡¹ç›®å†…å®¹
            async getSelectScanDeviceQrCodeItem(eqpcode, checktempcode) {
                const data = {
                    eqpcode,
                    checktempcode
                }
                const res = await SelectScanDeviceQrCodeItem(data)
                if (res.code === '200') {
                    this.centerContent = res.data
                    this.centerContent.forEach(item => {
                        item.inputValue = ''
                        item.isDisabled = item.isscan === 'Y'
                        item.isOK = item.isscan !== 'Y' ? 'OK' : ''
                    })
                    if (this.centerContent.every(r => r.isOK === 'OK')) {
                        this.resultValue = 'OK'
                    }
                    if (this.centerContent.some(r => r.isOK === 'NG')) {
                        this.resultValue = 'NG'
                    }
                    if (this.centerContent.some(r => r.isOK === '')) {
                        this.resultValue = ''
                    }
                    this.radioValue = eqpcode
                    this.$forceUpdate()
                }
            },
            // å•选按钮点击
            groupChange(val) {
                this.radioValue = val
                this.$forceUpdate()
                this.getCheckScanDeviceTemp(val)
            },
            // éƒ¨ä½æ­£å¸¸ å¼‚常按钮点击
            bwClick(item, val) {
                item.isOK = val
                if (this.centerContent.every(item => item.isOK !== '')) {
                    if (this.centerContent.every(item => item.isOK === 'OK')) {
                        this.resultValue = 'OK'
                    } else {
                        this.resultValue = 'NG'
                    }
                }
                this.$forceUpdate() //强制视图更新
            },
            // ç‚¹æ£€ç»“果点击
            resultClick(val) {
                this.resultValue = val
                this.$forceUpdate() //强制视图更新
            },
            // ç¡®è®¤æäº¤æŒ‰é’®
            async submit() {
                const children = []
                this.centerContent.forEach(item => {
                    children.push({
                        seq: item.seq,
                        itemcode: item.code,
                        cycle: item.cycle,
                        value: item.inputValue,
                        result: item.isOK
                    })
                })
                const data = {
                    code: this.topContent.find(item => item.code === this.radioValue).code,
                    name: this.topContent.find(item => item.code === this.radioValue).name,
                    // standcode: this.topContent.find(item => item.code === this.radioValue).eqpchkmain_code,
                    standcode: this.selectValueBZ,
                    result: this.resultValue,
                    children: children
                }
                // console.log(data, 8);
                this.isDisabledSubmitButton = true
                const res = await AppDeviceCheckSave(uni.getStorageSync("username"), data)
                if (res.code === '200') {
                    // this.$refs.uNotify.show({
                    //     top: 160,
                    //     type: 'primary',
                    //     color: '#fff',
                    //     bgColor: '#436df5',
                    //     message: '提交成功!',
                    //     duration: 1000 * 3,
                    //     fontSize: 30,
                    //     safeAreaInsetTop: false
                    // })
                    uni.$u.toast('提交成功!')
                    this.isDisabledSubmitButton = false
                    this.topContent.forEach((item, index) => {
                        if (item.code === this.radioValue) {
                            this.topContent.splice(index, 1)
                        }
                    })
                    this.radioValue = this.topContent[0].code
                    if (this.radioValue.toString().length > 0) {
                        // this.getSelectScanDeviceQrCodeItem(this.radioValue, this.topContent.find(i => i.code === this
                        //     .radioValue).eqpchkmain_code)
                        this.getCheckScanDeviceTemp(val)
                    }
                }
            },
        }
    }
</script>
<style lang="scss" scoped>
    @import url('@/style/global.css');
    ::v-deep .uicon-arrow-left>span {
        display: block;
    }
</style>
pages/sbgl/sbwx.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,509 @@
<template>
    <view>
        <page-nav title="设备维修"></page-nav>
        <view v-show="topContent.length===0">
            <div class="sacnBody">
                <div class="boxImg"></div>
                <div class="scanText">暂无设备可维修</div>
            </div>
        </view>
        <view v-show="topContent.length!==0">
            <view class="mainContent" :style="{maxHeight:'1000rpx',overflow: 'scroll'}">
                <view>
                    <u-gap height="10" bgColor="#eff0f1"></u-gap>
                    <view class="head">
                        <view class="head_block">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    æ‰«æç»´ä¿®å·¥ä½
                                </view>
                            </view>
                            <view class="marginRight20">
                                <u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon>
                            </view>
                        </view>
                        <view class=" marginLeft20 marginRight20 flex_column"
                            style="max-height: 420rpx;overflow:scroll;">
                            <u-radio-group v-model="radioValue" class="flex_column">
                                <view class="marginBottom20" style="position: relative"
                                    @click="groupChange(item.docu_code)" v-for="item in topContent"
                                    :key="item.docu_code">
                                    <view style="display: flex;float: left;">
                                        <view class="titleFont">
                                            <view>维修申请单:</view>
                                            <view>工位编码:</view>
                                            <view>工位名称:</view>
                                            <view>生产车间:</view>
                                            <view>申请人员:</view>
                                            <view>申请时间:</view>
                                            <view>故障来源:</view>
                                            <view>故障描述:</view>
                                        </view>
                                        <view class="contentFont">
                                            <view>{{item.docu_code}}</view>
                                            <view>{{item.eqpcode}}</view>
                                            <view>{{item.eqpname}}</view>
                                            <view>{{item.wksp_name}}</view>
                                            <view>{{item.request_person}}</view>
                                            <view>{{item.request_date}}</view>
                                            <view>{{item.source}}</view>
                                            <view style="width:400rpx;word-wrap:break-word">
                                                {{item.failure_descript}}
                                            </view>
                                        </view>
                                    </view>
                                    <u-radio size='40' style='position: absolute;top: 45%;right: 0;'
                                        :key="item.docu_code" :name="item.docu_code"
                                        @change="groupChange(item.docu_code)" activeColor="red"></u-radio>
                                </view>
                            </u-radio-group>
                        </view>
                    </view>
                    <u-gap height="20" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="padding-bottom: 10rpx;">
                        <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    æ•…障描述
                                </view>
                            </view>
                        </view>
                        <view class='inputClass contentFont' style="margin: 0 20rpx; width: 95%;">
                            <u--textarea placeholder="请输入" confirm-type="send" border="surround" height='100'
                                v-model="descMessage">
                            </u--textarea>
                        </view>
                        <view style="display: flex;">
                            <view v-for="(pic,index) in fileList" :key="pic.name">
                                <view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
                                    <u-icon name="close" color="#fff" size="26"
                                        style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
                                        @click="deletePic(pic)"></u-icon>
                                    <image :src="pic.uri" @click="imgPreview(pic)" class="upLoadImg"></image>
                                </view>
                            </view>
                            <image v-if="fileList.length<3" src="../../static/img/uploadImg.png" style="width: 100rpx;height: 100rpx;border: 1rpx solid #eff0f1;border-radius: 20rpx;
                            margin: 20rpx;padding: 30rpx;
                            " @click="selectPics">
                        </view>
                    </view>
                    <u-gap height="20" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="padding-bottom: 10rpx;">
                        <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    åœæœºç»´ä¿®
                                </view>
                            </view>
                            <view class="marginRight20" style="width: 200rpx;display: flex;">
                                <u-button type="primary" :plain="isStop!=='Y'" text="是" @click="isStopClick('Y')">
                                </u-button>
                                <u-button type="warning" :plain="isStop!=='N'" text="否" @click="isStopClick('N')">
                                </u-button>
                            </view>
                        </view>
                    </view>
                    <u-gap height="20" bgColor="#eff0f1"></u-gap>
                    <view v-show="isStop==='N'" class="head" style="padding-bottom: 10rpx;padding-bottom: 20rpx;">
                        <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    ç»´ä¿®å†…容
                                </view>
                            </view>
                        </view>
                        <view class='inputClass contentFont' style="margin: 0 20rpx; width: 95%;">
                            <u--textarea placeholder="请输入" confirm-type="send" border="surround" height='100'
                                v-model="descMessage2">
                            </u--textarea>
                        </view>
                    </view>
                    <u-gap height="20" bgColor="#eff0f1"></u-gap>
                    <!-- margin-bottom: 110rpx; -->
                    <view v-show="isStop==='N'" class="head" style="padding-bottom: 10rpx;">
                        <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    æ›´æ¢å¤‡ä»¶
                                </view>
                            </view>
                        </view>
                        <view class='inputClass contentFont' style="margin: 0 20rpx; width: 95%;">
                            <u--textarea placeholder="请输入" confirm-type="send" border="surround" height='100'
                                v-model="descMessage3">
                            </u--textarea>
                        </view>
                        <view style="display: flex;">
                            <view v-for="(pic,index) in fileList2" :key="pic.name">
                                <view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
                                    <u-icon name="close" color="#fff" size="26"
                                        style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
                                        @click="deletePic(pic)"></u-icon>
                                    <image :src="pic.uri" @click="imgPreview2(pic)" class="upLoadImg"></image>
                                </view>
                            </view>
                            <image v-if="fileList2.length<3" src="../../static/img/uploadImg.png" style="width: 100rpx;height: 100rpx;border: 1rpx solid #eff0f1;border-radius: 20rpx;
                            margin: 20rpx;padding: 30rpx;
                            " @click="selectPics2">
                        </view>
                    </view>
                </view>
            </view>
            <view class="footer" style="min-height:62rpx;">
                <u-button size="large" :loading="isDisabledSubmitButton" loadingText="正在提交,请稍等..." type="primary"
                    @click="submit"
                    :disabled="isStop==='Y'?descMessage.toString().length===0:descMessage.toString().length===0||descMessage2.toString().length===0"
                    text="确认提交">
                </u-button>
            </view>
        </view>
        <scan-code></scan-code>
    </view>
</template>
<script>
    import {
        RepairScanDeviceQrCodeDataList,
    } from '../../config/api.js'
    import {
        data
    } from '../../uni_modules/uview-ui/libs/mixin/mixin.js';
    import scanCode from '@/components/scan-code/scan-code.vue'
    export default {
        components: {
            scanCode
        },
        onLoad(option) {
            const _this = this
            uni.$off('scancodedate') // æ¯æ¬¡è¿›æ¥å…ˆ ç§»é™¤å…¨å±€è‡ªå®šä¹‰äº‹ä»¶ç›‘听器
            uni.$on('scancodedate', function(content) {
                console.log("扫描到的内容为:", content)
                // _this.getCheckScanDeviceQrCodeData(content)
                let r = _this.topContent.find(i => i.docu_code === content)
                if (r === undefined) {
                    uni.$u.toast('所扫的二维码不在列表中!')
                } else {
                    _this.topContent.forEach((item, index) => {
                        if (item.docu_code === content) {
                            _this.topContent.splice(index, 1)
                        }
                    })
                    _this.topContent.unshift(r)
                    _this.radioValue = content
                }
            })
        },
        onPullDownRefresh() {
            setTimeout(() => {
                this.init(() => {
                    uni.stopPullDownRefresh();
                })
            }, 1000);
        },
        data() {
            return {
                isDisabledSubmitButton: false,
                topContent: [], //扫描保养工位所带出来的内容
                centerContent: [], //
                scanContent: '', //扫描扫出来的值
                radioValue: '', //单选框的值
                descMessage: '', //故障描述
                imgPreviewSrcs: [], //图片预览src   æ•…障描述
                fileList: [], //图片数组         æ•…障描述
                isStop: 'Y',
                descMessage2: '', //维修内容
                descMessage3: '', //更换备件
                fileList2: [], //更换备件图片
                imgPreviewSrcs2: [],
            }
        },
        created() {
        },
        mounted() {
            this.init()
            this.getRepairScanDeviceQrCodeDataList()
        },
        methods: {
            // é€‰æ‹©å›¾ç‰‡
            selectPics() {
                var that = this;
                uni.chooseImage({
                    count: 3,
                    success: (res) => {
                        const files = res.tempFiles;
                        for (let i = 0; i < files.length; i++) {
                            let obj = new Object();
                            obj.name = 'files1;' + i + new Date().getTime();
                            obj.uri = files[i].path;
                            that.fileList.push(obj);
                            if (obj.src == null || obj.src == '' || obj.src == undefined) {
                                that.imgPreviewSrcs.push(obj.uri)
                            } else {
                                that.imgPreviewSrcs.push(obj.src)
                            }
                        }
                    }
                })
            },
            selectPics2() {
                var that = this;
                uni.chooseImage({
                    count: 3,
                    success: (res) => {
                        const files = res.tempFiles;
                        for (let i = 0; i < files.length; i++) {
                            let obj = new Object();
                            obj.name = 'files2;' + i + new Date().getTime();
                            obj.uri = files[i].path;
                            that.fileList2.push(obj);
                            if (obj.src == null || obj.src == '' || obj.src == undefined) {
                                that.imgPreviewSrcs2.push(obj.uri)
                            } else {
                                that.imgPreviewSrcs2.push(obj.src)
                            }
                        }
                    }
                })
            },
            // é¢„览图片
            imgPreview(img) {
                uni.previewImage({
                    current: this.fileList.findIndex(i => i.name === img.name),
                    indicator: "number",
                    loop: true,
                    urls: this.imgPreviewSrcs
                })
            },
            imgPreview2(img) {
                uni.previewImage({
                    current: this.fileList2.findIndex(i => i.name === img.name),
                    indicator: "number",
                    loop: true,
                    urls: this.imgPreviewSrcs2
                })
            },
            // åˆ é™¤å›¾ç‰‡
            deletePic(img) {
                this.fileList = this.fileList.filter(i => i.name !== img.name)
                this.fileList2 = this.fileList2.filter(i => i.name !== img.name)
                this.imgPreviewSrcs = this.imgPreviewSrcs.filter(i => i !== img.uri)
                this.imgPreviewSrcs2 = this.imgPreviewSrcs2.filter(i => i !== img.uri)
            },
            init() {
                uni.stopPullDownRefresh();
            },
            // å•选按钮选中值改变
            groupChange(val) {
                this.radioValue = val
                this.descMessage = ''
                this.imgPreviewSrcs = []
                this.fileList = []
                this.isStop = 'Y'
                this.descMessage2 = ''
                this.descMessage3 = ''
                this.fileList2 = []
                this.imgPreviewSrcs2 = []
                this.$forceUpdate()
            },
            // åœæœºç»´ä¿®
            isStopClick(val) {
                this.isStop = val
                if (val === 'Y') {
                    this.descMessage2 = ''
                    this.descMessage3 = ''
                    this.fileList2 = []
                    this.imgPreviewSrcs2 = []
                }
            },
            // æ‰«ç å·¥ä½  çš„æ‰«ç æ¡†ç‚¹å‡»
            topScanClick() {
                let that = this;
                uni.scanCode({
                    onlyFromCamera: true,
                    // scanType: ['barCode', 'qrCode'],
                    scanType: ['qrCode'],
                    success: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                        that.scanContent = res.result;
                        let r = that.topContent.find(i => i.docu_code === that.scanContent)
                        if (r === undefined) {
                            uni.$u.toast('所扫的二维码不在列表中!')
                        } else {
                            that.topContent.forEach((item, index) => {
                                if (item.docu_code === that.scanContent) {
                                    that.topContent.splice(index, 1)
                                }
                            })
                            that.topContent.unshift(r)
                            that.radioValue = that.scanContent
                        }
                    },
                    complete: function(res) {
                    },
                    fail: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                    }
                });
            },
            // èŽ·å–ç»´ä¿®å·¥ä½
            async getRepairScanDeviceQrCodeDataList(val) {
                const res = await RepairScanDeviceQrCodeDataList()
                if (res.code === '200') {
                    this.topContent = res.data
                    this.radioValue = this.topContent.length > 0 ? this.topContent[0].docu_code : ''
                }
            },
            // ç¡®è®¤æäº¤æŒ‰é’®
            async submit() {
                const header = {
                    // 'Content-Type': 'multipart/form-data',
                    'Content-Type': 'application/x-www-form-urlencoded',
                    'rediskey': uni.getStorageSync('rediskey'),
                    'admin': uni.getStorageSync('usercode'),
                    'username': encodeURIComponent(uni.getStorageSync('username')),
                    'navTabId': uni.getStorageSync('usercode'),
                    'userid': uni.getStorageSync('userid'),
                    'guid': uni.getStorageSync('guid'),
                    'usertype': 'APP'
                }
                const result = this.topContent.find(item => item.docu_code === this.radioValue)
                const formData = {
                    username: uni.getStorageSync('username'),
                    docu_code: result.docu_code,
                    eqpcode: result.eqpcode,
                    wkshpcode: result.wksp_code,
                    faultdescr: this.descMessage,
                    is_stoprepair: this.isStop,
                    // files1: this.fileList,
                    repaircontent: this.descMessage2,
                    replaceparts: this.descMessage3
                }
                // console.log(formData)
                // console.log([...this.fileList, ...this.fileList2].length)
                this.isDisabledSubmitButton = true
                uni.uploadFile({
                    url: this.$baseUrl + '/AppDeviceManage/RepairScanDeviceSave',
                    files: [...this.fileList, ...this.fileList2].length === 0 ? [{
                        "uri": "/"
                    }] : [...this.fileList, ...this.fileList2],
                    header: header,
                    formData: formData,
                    success: (res) => {
                        console.log(res)
                        let result = JSON.parse(res.data)
                        if (res.statusCode == 200 && result.code == '200') {
                            uni.$u.toast('提交成功!')
                            this.topContent = this.topContent.filter(i => i.docu_code !== this.radioValue)
                            this.radioValue = this.topContent.length === 0 ? '' : this.topContent[0]
                                .docu_code
                            this.descMessage = ''
                            this.imgPreviewSrcs = []
                            this.fileList = []
                            this.isStop = 'Y'
                            this.descMessage2 = ''
                            this.descMessage3 = ''
                            this.fileList2 = []
                            this.imgPreviewSrcs2 = []
                        } else {
                            uni.$u.toast(result.Message)
                        }
                        this.isDisabledSubmitButton = false
                    },
                    fail(res) {
                        uni.$u.toast('提交失败!')
                        this.isDisabledSubmitButton = false
                    },
                })
            },
        }
    }
</script>
<style lang="scss" scoped>
    @import url('@/style/global.css');
    .u-radio {
        justify-content: flex-end;
    }
    ::v-deep .uicon-arrow-left>span {
        display: block;
    }
    ::v-deep .uicon-camera-fill {
        font-size: 60rpx !important;
    }
    .uploader {
        /deep/.u-add-tips {
            display: none;
        }
    }
    ::v-deep .uni-progress-bar {
        background-color: transparent !important;
    }
    .upLoadImg {
        width: 160rpx;
        height: 160rpx;
        border-radius: 20rpx;
    }
</style>
pages/sbgl/wxsq.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,419 @@
<template>
    <view>
        <page-nav title="设备维修申请"></page-nav>
        <view v-show="topContent.length===0">
            <div class="sacnBody">
                <div class="scanImg" @click="topScanClick"></div>
                <div class="scanText">扫描维修工位</div>
            </div>
        </view>
        <view v-show="topContent.length!==0">
            <view class="mainContent">
                <view>
                    <u-gap height="10" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="max-height: 370rpx;overflow:scroll;">
                        <view class="head_block">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    æ‰«æç»´ä¿®å·¥ä½
                                </view>
                            </view>
                            <view class="marginRight20">
                                <u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon>
                            </view>
                        </view>
                        <view class="marginTop20 marginLeft20 marginRight20 flex_column">
                            <!-- <u-radio-group class=""> -->
                            <view class="marginBottom20 flex_between" @click="groupChange(item.code)"
                                v-for="item in topContent" :key="item.code">
                                <view style="display: flex;">
                                    <view class="flex_column titleFont">
                                        <view>工位编码:</view>
                                        <view>工位名称:</view>
                                        <view>生产车间:</view>
                                    </view>
                                    <view class="flex_column contentFont">
                                        <view>{{item.code}}</view>
                                        <view>{{item.name}}</view>
                                        <view>{{item.wksp_name}}</view>
                                    </view>
                                </view>
                                <!--     <u-radio size='40' :key="item.code" :name="item.code"
                                        @change="groupChange(item.code)" activeColor="red"></u-radio> -->
                            </view>
                            <!-- </u-radio-group> -->
                        </view>
                    </view>
                    <u-gap height="20" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="padding-bottom: 10rpx;">
                        <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    æ•…障来源
                                </view>
                            </view>
                            <view class="marginRight20" style="width: 200rpx;">
                                <uni-data-select v-model="selectValue" :clear="false" :localdata="selectRange"
                                    @change="selectChange">
                                </uni-data-select>
                            </view>
                        </view>
                    </view>
                    <u-gap height="20" bgColor="#eff0f1"></u-gap>
                    <view class="head" style="padding-bottom: 10rpx;">
                        <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    æ•…障描述
                                </view>
                            </view>
                        </view>
                        <view class='inputClass  contentFont' style="margin: 0 20rpx; width: 95%;">
                            <u--textarea placeholder="请输入" confirm-type="send" border="surround" height='140'
                                v-model="descMessage">
                            </u--textarea>
                        </view>
                        <view style="display: flex;">
                            <view v-for="(pic,index) in fileList" :key="pic.name">
                                <view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
                                    <u-icon name="close" color="#fff" size="26"
                                        style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
                                        @click="deletePic(pic)"></u-icon>
                                    <image :src="pic.uri" @click="imgPreview(pic)" class="upLoadImg"></image>
                                </view>
                            </view>
                            <image v-if="fileList.length<3" src="../../static/img/uploadImg.png" style="width: 100rpx;height: 100rpx;border: 1rpx solid #eff0f1;border-radius: 20rpx;
                            margin: 20rpx;padding: 30rpx;
                            " @click="selectPics">
                        </view>
                    </view>
                </view>
            </view>
            <u-button size="large" :loading="isDisabledSubmitButton" loadingText="正在提交,请稍等..." type="primary"
                @click="submit" :disabled="descMessage.toString().length===0" text="确认提交">
            </u-button>
        </view>
        <scan-code></scan-code>
    </view>
</template>
<script>
    import {
        MaintainScanDeviceApplyQrCodeData,
        MaintainScanDeviceApplySave
    } from '../../config/api.js'
    import {
        data
    } from '../../uni_modules/uview-ui/libs/mixin/mixin.js';
    import scanCode from '@/components/scan-code/scan-code.vue'
    export default {
        components: {
            scanCode
        },
        onLoad(option) {
            const _this = this
            uni.$off('scancodedate') // æ¯æ¬¡è¿›æ¥å…ˆ ç§»é™¤å…¨å±€è‡ªå®šä¹‰äº‹ä»¶ç›‘听器
            uni.$on('scancodedate', function(content) {
                console.log("扫描到的内容为:", content)
                _this.getMaintainScanDeviceApplyQrCodeData(content)
            })
        },
        onPullDownRefresh() {
            setTimeout(() => {
                this.init(() => {
                    uni.stopPullDownRefresh();
                })
            }, 1000);
        },
        data() {
            return {
                isDisabledSubmitButton: false,
                topContent: [], //扫描保养工位所带出来的内容
                centerContent: [], //保养项目内容
                scanContent: '', //扫描扫出来的值
                // radioValue: '', //单选框的值
                selectValue: 'A',
                selectRange: [{
                    value: 'A',
                    text: '设备点检'
                }, {
                    value: 'B',
                    text: '设备保养'
                }, {
                    value: 'C',
                    text: '安灯呼叫'
                }, {
                    value: 'D',
                    text: '手工'
                }],
                descMessage: '', //故障描述
                imgPreviewSrcs: [], //图片预览src
                fileList: [], //图片数组
            }
        },
        created() {
            // const a = [{
            //     name: 1
            // }]
            // const b = [{
            //     name: 1
            // }]
            // console.log([...a, ...b])
        },
        mounted() {
            this.init()
            this.getMaintainScanDeviceApplyQrCodeData('SB001')
            // this.getMaintainScanDeviceApplyQrCodeData('SB002')
            // this.getMaintainScanDeviceApplyQrCodeData('SB003')
            // this.getMaintainScanDeviceApplyQrCodeData('SB005')
        },
        methods: {
            // é€‰æ‹©å›¾ç‰‡
            selectPics() {
                var that = this;
                uni.chooseImage({
                    count: 3,
                    success: (res) => {
                        const files = res.tempFiles;
                        for (let i = 0; i < files.length; i++) {
                            let obj = new Object();
                            obj.name = 'photo' + i + new Date().getTime();
                            obj.uri = files[i].path;
                            that.fileList.push(obj);
                            if (obj.src == null || obj.src == '' || obj.src == undefined) {
                                that.imgPreviewSrcs.push(obj.uri)
                            } else {
                                that.imgPreviewSrcs.push(obj.src)
                            }
                        }
                    }
                })
            },
            // é¢„览图片
            imgPreview(img) {
                uni.previewImage({
                    current: this.fileList.findIndex(i => i.name === img.name),
                    indicator: "number",
                    loop: true,
                    urls: this.imgPreviewSrcs
                })
            },
            // åˆ é™¤å›¾ç‰‡
            deletePic(img) {
                console.log(img)
                this.fileList = this.fileList.filter(i => i.name !== img.name)
                this.imgPreviewSrcs = this.imgPreviewSrcs.filter(i => i !== img.uri)
            },
            init() {
                uni.stopPullDownRefresh();
            },
            selectChange(val) {
                console.log(val)
            },
            // æ‰«ç å·¥ä½  çš„æ‰«ç æ¡†ç‚¹å‡»
            topScanClick() {
                // if (this.topContent.length > 0) {
                //     return uni.$u.toast('请先提交此维修申请!')
                // }
                let that = this;
                uni.scanCode({
                    onlyFromCamera: true,
                    // scanType: ['barCode', 'qrCode'],
                    scanType: ['qrCode'],
                    success: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                        that.scanContent = res.result;
                        let flag = false
                        that.topContent.forEach(item => {
                            if (item.code === res.result) {
                                flag = true
                            }
                        })
                        if (flag) {
                            that.$u.toast('此条码已扫描,已在列表中!')
                        } else {
                            //处理扫码事件
                            that.getMaintainScanDeviceApplyQrCodeData(that.scanContent);
                        }
                    },
                    complete: function(res) {
                    },
                    fail: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                    }
                });
            },
            // èŽ·å–ç»´ä¿®å·¥ä½
            async getMaintainScanDeviceApplyQrCodeData(val) {
                const data = {
                    eqpcode: val
                }
                const res = await MaintainScanDeviceApplyQrCodeData(data)
                if (res.code === '200') {
                    this.topContent = []
                    this.topContent.unshift(res.data[0])
                }
            },
            // ç¡®è®¤æäº¤æŒ‰é’®
            async submit() {
                const header = {
                    // 'Content-Type': 'multipart/form-data',
                    'Content-Type': 'application/x-www-form-urlencoded',
                    'rediskey': uni.getStorageSync('rediskey'),
                    'admin': uni.getStorageSync('usercode'),
                    'username': encodeURIComponent(uni.getStorageSync('username')),
                    'navTabId': uni.getStorageSync('usercode'),
                    'userid': uni.getStorageSync('userid'),
                    'guid': uni.getStorageSync('guid'),
                    'usertype': 'APP'
                }
                /*
                    åœ¨ç”µè„‘上请求是需要H5的代码
                    æ‰‹æœºä¸Šè¯·æ±‚是需要APP-PLUS的代码
                */
                // #ifdef H5
                // console.log('H5')
                // let formData = new FormData()
                // formData.append("username", uni.getStorageSync('username'))
                // formData.append("eqpcode", this.topContent[0].code)
                // formData.append("wkshpcode", this.topContent[0].wksp_code)
                // formData.append("faultsourcecode", this.selectValue)
                // formData.append("faultdescr", this.descMessage)
                // this.fileList.forEach((item, index) => {
                //     formData.append('files1', item.file)
                // })
                // MaintainScanDeviceApplySave(formData).then(res => {
                //     console.log(res, 1)
                // })
                // #endif
                // #ifdef APP-PLUS ||MP
                // const temp = [{
                //     name: 'files1'
                // }]
                let formData = {
                    username: uni.getStorageSync('username'),
                    eqpcode: this.topContent[0].code,
                    wkshpcode: this.topContent[0].wksp_code,
                    faultsourcecode: this.selectValue,
                    faultdescr: this.descMessage,
                }
                console.log(formData)
                this.isDisabledSubmitButton = true
                uni.uploadFile({
                    url: this.$baseUrl + '/AppDeviceManage/MaintainScanDeviceApplySave',
                    files: this.fileList.length === 0 ? [{
                        uri: '/'
                    }] : this.fileList,
                    // files: [{"uri": "/"    }],
                    header: header,
                    formData: formData,
                    success: (res) => {
                        let result = JSON.parse(res.data)
                        if (res.statusCode == 200 && result.code == '200') {
                            uni.$u.toast('提交成功!')
                            this.fileList = []
                            this.imgPreviewSrcs = []
                            this.descMessage = ''
                            this.topContent = []
                            this.centerContent = []
                        } else {
                            uni.$u.toast(result.Message)
                        }
                        this.isDisabledSubmitButton = false
                    },
                    fail(res) {
                        uni.$u.toast('提交失败!')
                        this.isDisabledSubmitButton = false
                    },
                })
                // #endif
            },
        }
    }
</script>
<style lang="scss" scoped>
    @import url('@/style/global.css');
    ::v-deep .uicon-arrow-left>span {
        display: block;
    }
    ::v-deep .uicon-camera-fill {
        font-size: 60rpx !important;
    }
    .uploader {
        /deep/.u-add-tips {
            display: none;
        }
    }
    ::v-deep .uni-progress-bar {
        background-color: transparent !important;
    }
    .upLoadImg {
        width: 160rpx;
        height: 160rpx;
        border-radius: 20rpx;
    }
</style>
pages/sbgl/wxyz.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,603 @@
<template>
    <view>
        <page-nav title="维修验证"></page-nav>
        <view v-show="topContent.length===0">
            <div class="sacnBody">
                <div class="boxImg"></div>
                <div class="scanText">暂无维修可验证</div>
            </div>
        </view>
        <view v-show="topContent.length!==0">
            <view class="mainContent">
                <view>
                    <u-gap height="10" bgColor="#eff0f1"></u-gap>
                    <view class="head">
                        <view class="head_block">
                            <view class="head_left">
                                <view class="head_bar"></view>
                                <view class="head_title">
                                    æ‰«æç»´ä¿®å·¥ä½
                                </view>
                            </view>
                            <view class="marginRight20">
                                <u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon>
                            </view>
                        </view>
                        <view :style="{maxHeight:'1000rpx',overflow: 'scroll'}">
                            <view class="marginTop20 marginLeft20 marginRight20 flex_column">
                                <u-radio-group v-model="radioValue" class="flex_column">
                                    <view class="marginBottom20 flex_column" style="width: 100%;"
                                        @click="groupChange(item.repair_code)" v-for="item in topContent"
                                        :key="item.repair_code">
                                        <view class="flex_between marginBottom20">
                                            <view style="display: flex;">
                                                <view class="flex_column titleFont">
                                                    <view>维修维修单:</view>
                                                    <view>工位编码:</view>
                                                    <view>工位名称:</view>
                                                    <view>生产车间:</view>
                                                    <view>维修人员:</view>
                                                    <view>维修时间:</view>
                                                    <view>停机维修:</view>
                                                    <view>故障描述:</view>
                                                </view>
                                                <view class="flex_column contentFont">
                                                    <view>{{item.repair_code}}</view>
                                                    <view>{{item.eqpcode}}</view>
                                                    <view>{{item.eqpname}}</view>
                                                    <view>{{item.wksp_name}}</view>
                                                    <view>{{item.repair_person}}</view>
                                                    <view>{{item.repair_date}}</view>
                                                    <view>{{item.is_shutdown==='Y'?'是':'否'}}</view>
                                                    <view style="width:400rpx;word-wrap:break-word">
                                                        {{item.failure_descript}}
                                                    </view>
                                                </view>
                                            </view>
                                            <u-radio size='40' :key="item.repair_code" :name="item.repair_code"
                                                @change="groupChange(item.repair_code)" activeColor="red"></u-radio>
                                        </view>
                                        <view v-show="!item.arrowType" class="repairDetail">
                                            ç»´ä¿®è¯¦æƒ…
                                        </view>
                                        <view class="head" v-show="!item.arrowType" style="padding-bottom: 10rpx;">
                                            <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                                                <view class="head_left">
                                                    <view class="head_bar"></view>
                                                    <view class="head_title">
                                                        æ•…障描述
                                                    </view>
                                                </view>
                                            </view>
                                            <view style="margin: 0 20rpx; width: 95%;" class="contentFont">
                                                {{descMessage}}
                                            </view>
                                            <view style="display: flex;" v-show="fileList.length!==0">
                                                <view v-for="(pic,index) in fileList" :key="index">
                                                    <view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
                                                        <!--                                         <u-icon name="close" color="#fff" size="26"
                                                        style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
                                                        @click="deletePic(pic)"></u-icon>
 -->
                                                        <image :src="baseUrl+ pic.img1url" @click="imgPreview(pic)"
                                                            class="upLoadImg">
                                                        </image>
                                                    </view>
                                                </view>
                                            </view>
                                        </view>
                                        <u-gap height="5" v-show="!item.arrowType" bgColor="#eff0f1"
                                            style='width: 106%;margin-left: -3%;'></u-gap>
                                        <view class="head" v-show="!item.arrowType" style="padding-bottom: 10rpx;">
                                            <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                                                <view class="head_left">
                                                    <view class="head_bar"></view>
                                                    <view class="head_title">
                                                        åœæœºç»´ä¿®
                                                    </view>
                                                </view>
                                                <view class="" style="width: 90rpx;display: flex;">
                                                    <u-button type="primary" disabled
                                                        :text="descMessage2.toString().length>0?'否':'是'">
                                                    </u-button>
                                                </view>
                                            </view>
                                        </view>
                                        <u-gap height="5" v-show="!item.arrowType&&descMessage2" bgColor="#eff0f1"
                                            style='width: 106%;margin-left: -3%;'></u-gap>
                                        <view class="head" v-show="!item.arrowType&&descMessage2"
                                            style="padding-bottom: 10rpx;">
                                            <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                                                <view class="head_left">
                                                    <view class="head_bar"></view>
                                                    <view class="head_title">
                                                        ç»´ä¿®å†…容
                                                    </view>
                                                </view>
                                            </view>
                                            <view style="margin: 0 20rpx; width: 95%;" class="contentFont">
                                                {{descMessage2}}
                                            </view>
                                        </view>
                                        <u-gap height="5" v-show="!item.arrowType&&descMessage3" bgColor="#eff0f1"
                                            style='width: 106%;margin-left: -3%;'></u-gap>
                                        <view class="head" v-show="!item.arrowType&&descMessage3"
                                            style="padding-bottom: 10rpx;">
                                            <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                                                <view class="head_left">
                                                    <view class="head_bar"></view>
                                                    <view class="head_title">
                                                        æ›´æ¢å¤‡ä»¶
                                                    </view>
                                                </view>
                                            </view>
                                            <view style="margin: 0 20rpx; width: 95%;" class="contentFont">
                                                {{descMessage3}}
                                            </view>
                                            <view style="display: flex;" v-show="fileList2.length!==0">
                                                <view v-for="(pic,index) in fileList2" :key="index">
                                                    <view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
                                                        <!--                                 <u-icon name="close" color="#fff" size="26"
                                                        style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
                                                        @click="deletePic(pic)"></u-icon>
 -->
                                                        <image :src="baseUrl+ pic.img2url" @click="imgPreview2(pic)"
                                                            class="upLoadImg">
                                                        </image>
                                                    </view>
                                                </view>
                                            </view>
                                        </view>
                                        <u-gap height="5" v-show="!item.arrowType" bgColor="#eff0f1"
                                            style='width: 106%;margin-left: -3%;'></u-gap>
                                        <view class="head" v-show="!item.arrowType" style="padding-bottom: 10rpx;">
                                            <view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
                                                <view class="head_left">
                                                    <view class="head_bar"></view>
                                                    <view class="head_title">
                                                        éªŒè¯ç»“æžœ
                                                    </view>
                                                </view>
                                                <view class=" " style="width: 190rpx;display: flex;"
                                                    :key="Math.random()+item.repair_code">
                                                    <u-button :plain="item.resultValue!=='OK'" text="正常"
                                                        @click="resultValueClick(item.repair_code,'OK')"
                                                        :key="Math.random()+item.repair_code+'OK'" type="primary">
                                                    </u-button>
                                                    <u-button type="warning" :plain="item.resultValue!=='NG'"
                                                        :key="Math.random()+item.repair_code+'NG'" text="异常"
                                                        @click="resultValueClick(item.repair_code,'NG')">
                                                    </u-button>
                                                </view>
                                            </view>
                                        </view>
                                        <!-- <u-gap height="16" v-show="!item.arrowType" bgColor="#eff0f1"
                                            style='width: 106%;margin-left: -3%;'></u-gap> -->
                                        <view style="display: flex;justify-content: center;margin : 10rpx; 0">
                                            <view class="arrowClass"
                                                @click="item.arrowType?arrowDownClick(item):arrowUpClick(item)">
                                                <u-icon :name="item.arrowType?'arrow-down':'arrow-up'" color="#c8c8c8"
                                                    size="50"></u-icon>
                                            </view>
                                        </view>
                                        <u-gap height="16" bgColor="#eff0f1" style="width: 106%;margin-left: -3%;">
                                        </u-gap>
                                    </view>
                                </u-radio-group>
                            </view>
                        </view>
                    </view>
                </view>
            </view>
            <view class="footer" style="min-height:62rpx;">
                <u-button size="large" :loading="isDisabledSubmitButton" loadingText="正在提交,请稍等..." type="primary"
                    @click="submit"
                    :disabled="topContent.length>0? topContent.find(i=>i.repair_code===radioValue).resultValue==='':true"
                    text="确认提交">
                </u-button>
            </view>
        </view>
        <scan-code></scan-code>
    </view>
</template>
<script>
    import {
        // RepairVerificationScanDeviceData,
        // RepairVerificationScanDeviceDataSub
    } from '../../config/api.js'
    import {
        data
    } from '../../uni_modules/uview-ui/libs/mixin/mixin.js';
    import scanCode from '@/components/scan-code/scan-code.vue'
    export default {
        components: {
            scanCode
        },
        onLoad(option) {
            const _this = this
            uni.$off('scancodedate') // æ¯æ¬¡è¿›æ¥å…ˆ ç§»é™¤å…¨å±€è‡ªå®šä¹‰äº‹ä»¶ç›‘听器
            uni.$on('scancodedate', function(content) {
                console.log("扫描到的内容为:", content)
                let r = _this.topContent.find(i => i.repair_code === content)
                if (r === undefined) {
                    uni.$u.toast('所扫的二维码不在列表中!')
                    // return
                } else {
                    _this.topContent.forEach((item, index) => {
                        if (item.repair_code === content) {
                            _this.topContent.splice(index, 1)
                        }
                    })
                    _this.topContent.unshift(r)
                    _this.radioValue = content
                }
            })
        },
        onPullDownRefresh() {
            setTimeout(() => {
                this.init(() => {
                    uni.stopPullDownRefresh();
                })
            }, 1000);
        },
        data() {
            return {
                isDisabledSubmitButton: false,
                baseUrl: 'http://121.196.36.24:8001',
                topContent: [], //扫描保养工位所带出来的内容
                radioValue: '', //单选框的值
                scanContent: '', //扫描扫出来的值
                detailContent: [], //显示详情内容
                descMessage: '', //
                descMessage2: '', //
                descMessage3: '', //
                imgPreviewSrcs: [], //图片预览src   æ•…障描述
                fileList: [], //图片数组         æ•…障描述
                fileList2: [], //更换备件图片
                imgPreviewSrcs2: [],
            }
        },
        created() {
        },
        mounted() {
            this.init()
            this.getRepairVerificationScanDeviceData()
        },
        methods: {
            // é¢„览图片
            imgPreview(img) {
                console.log(img)
                uni.previewImage({
                    current: this.fileList.findIndex(i => i.img1url === img.img1url),
                    indicator: "number",
                    loop: true,
                    urls: this.imgPreviewSrcs
                })
            },
            imgPreview2(img) {
                uni.previewImage({
                    current: this.fileList2.findIndex(i => i.img2url === img.img2url),
                    indicator: "number",
                    loop: true,
                    urls: this.imgPreviewSrcs2
                })
            },
            init() {
                uni.stopPullDownRefresh();
            },
            // å•选按钮选中值改变
            groupChange(repair_code) {
                this.radioValue = repair_code
                this.topContent.forEach(item => {
                    if (item.repair_code !== repair_code) {
                        item.resultValue = ''
                    }
                })
                this.$forceUpdate()
            },
            // æ‰«ç æ¡†ç‚¹å‡»
            topScanClick() {
                let that = this;
                uni.scanCode({
                    onlyFromCamera: true,
                    // scanType: ['barCode', 'qrCode'],
                    scanType: ['qrCode'],
                    success: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                        that.scanContent = res.result;
                        let r = that.topContent.find(i => i.repair_code === that.scanContent)
                        if (r === undefined) {
                            uni.$u.toast('所扫的二维码不在列表中!')
                        } else {
                            that.topContent.forEach((item, index) => {
                                if (item.repair_code === that.scanContent) {
                                    that.topContent.splice(index, 1)
                                }
                            })
                            that.topContent.unshift(r)
                            that.radioValue = that.scanContent
                        }
                    },
                    complete: function(res) {
                    },
                    fail: function(res) {
                        console.log('条码类型:' + res.scanType);
                        console.log('条码内容:' + res.result);
                    }
                });
            },
            // èŽ·å–ç»´ä¿®åˆ—è¡¨
            async getRepairVerificationScanDeviceData(val) {
                const res = await RepairVerificationScanDeviceData()
                if (res.code === '200') {
                    this.topContent = res.data
                    this.topContent.forEach(i => {
                        i.arrowType = true
                        i.resultValue = ''
                    })
                    if (this.topContent.length > 0) {
                        this.getRepairVerificationScanDeviceDataSub(this.topContent[0].repair_code, this.topContent[0]
                            .eqpcode, this.topContent[0].wksp_code)
                    }
                    this.radioValue = this.topContent.length > 0 ? this.topContent[0].repair_code : ''
                    // console.log(this.topContent, 1)
                    this.$forceUpdate()
                }
            },
            // èŽ·å–ç»´ä¿®åˆ—è¡¨è¯¦æƒ…
            async getRepairVerificationScanDeviceDataSub(repair_code, eqpcode, wkshpcode) {
                const res = await RepairVerificationScanDeviceDataSub(repair_code, eqpcode, wkshpcode)
                this.detailContent = res.data
                this.descMessage = this.detailContent.failure_descript
                this.fileList = this.detailContent.failure_descriptimg ? this.detailContent.failure_descriptimg.filter(
                    i => i.img1url !== '') : []
                this.imgPreviewSrcs = []
                this.fileList.forEach(i => {
                    this.imgPreviewSrcs.push(this.baseUrl + i.img1url)
                })
                this.descMessage2 = this.detailContent.repair_content ? this.detailContent.repair_content : ''
                this.descMessage3 = this.detailContent.repair_part ? this.detailContent.repair_part : ''
                this.fileList2 = this.detailContent.repair_partimage ? this.detailContent.repair_partimage.filter(i =>
                    i.img2url !== '') : []
                this.imgPreviewSrcs2 = []
                this.fileList2.forEach(i => {
                    this.imgPreviewSrcs2.push(this.baseUrl + i.img2url)
                })
                this.$forceUpdate()
            },
            // å‘下的箭头点击
            arrowDownClick(val) {
                this.topContent.forEach(item => {
                    item.arrowType = true
                    if (item.repair_code === val.repair_code) {
                        item.arrowType = false
                        item.resultValue = item.resultValue ? item.resultValue : ''
                        this.descMessage = ''
                        this.descMessage2 = ''
                        this.descMessage3 = ''
                        this.fileList = []
                        this.fileList2 = []
                        this.imgPreviewSrcs = []
                        this.imgPreviewSrcs2 = []
                        this.getRepairVerificationScanDeviceDataSub(item.repair_code, item.eqpcode, item.wksp_code)
                    }
                })
                this.$forceUpdate()
            },
            //向上从箭头点击
            arrowUpClick(val) {
                this.topContent.forEach(item => {
                    item.arrowType = true
                })
                this.$forceUpdate()
            },
            // éªŒè¯ç»“果点击
            resultValueClick(repair_code, val) {
                console.log(repair_code, val)
                this.topContent.forEach(item => {
                    if (item.repair_code === repair_code) {
                        item.resultValue = val
                    }
                })
                console.log(this.topContent, 8)
                this.$forceUpdate()
            },
            // ç¡®è®¤æäº¤æŒ‰é’®
            async submit() {
                const header = {
                    // 'Content-Type': 'multipart/form-data',
                    'Content-Type': 'application/x-www-form-urlencoded',
                    'rediskey': uni.getStorageSync('rediskey'),
                    'admin': uni.getStorageSync('usercode'),
                    'username': encodeURIComponent(uni.getStorageSync('username')),
                    'navTabId': uni.getStorageSync('usercode'),
                    'userid': uni.getStorageSync('userid'),
                    'guid': uni.getStorageSync('guid'),
                    'usertype': 'APP'
                }
                const result = this.topContent.find(item => item.repair_code === this.radioValue)
                let formData = {
                    username: uni.getStorageSync('username'),
                    repairwo: result.repair_code,
                    eqpcode: result.eqpcode,
                    wkshpcode: result.wksp_code,
                    result: result.resultValue,
                }
                // console.log(formData)
                // this.isDisabledSubmitButton = true
                // uni.request({
                //     url: this.$baseUrl + '/AppDeviceManage/RepairVerificationScanDeviceSave', //仅为示例,并非真实接口地址。
                //     data: formData,
                //     method: "POST",
                //     header: header,
                //     success: res => {
                //         if (res.statusCode == 200 && res.data.code == '200') {
                //             uni.$u.toast('提交成功!')
                //             // this.topContent = this.topContent.filter(i => i.repair_code !== this
                //             //     .radioValue)
                //             // this.radioValue = this.topContent.length === 0 ? '' : this.topContent[0]
                //             //     .repair_code
                //             // console.log(this.radioValue)
                //             // console.log(this.topContent, 9)
                //             // this.groupChange(this.radioValue)
                //             this.getRepairVerificationScanDeviceData()
                //             this.isDisabledSubmitButton = false
                //             this.$forceUpdate()
                //         }
                //     },
                //     fail: res => {
                //         uni.$u.toast('提交失败!')
                //         this.isDisabledSubmitButton = false
                //     }
                // })
                this.isDisabledSubmitButton = true
                uni.uploadFile({
                    url: this.$baseUrl + '/AppDeviceManage/RepairVerificationScanDeviceSave',
                    files: [{
                        "uri": "/"
                    }],
                    header: header,
                    formData: formData,
                    success: (res) => {
                        let result = JSON.parse(res.data)
                        if (res.statusCode == 200 && result.code == '200') {
                            uni.$u.toast('提交成功!')
                            this.topContent = this.topContent.filter(i => i.repair_code !== this
                                .radioValue)
                            this.radioValue = this.topContent.length === 0 ? '' : this.topContent[0]
                                .repair_code
                        } else {
                            uni.$u.toast(result.Message)
                        }
                        this.isDisabledSubmitButton = false
                        this.$forceUpdate()
                    },
                    fail(res) {
                        uni.$u.toast('提交失败!')
                        this.isDisabledSubmitButton = false
                    },
                })
            },
        }
    }
</script>
<style lang="scss" scoped>
    @import url('@/style/global.css');
    ::v-deep .uicon-arrow-left>span {
        display: block;
    }
    ::v-deep .uicon-camera-fill {
        font-size: 60rpx !important;
    }
    ::v-deep .uni-progress-bar {
        background-color: transparent !important;
    }
    .upLoadImg {
        width: 160rpx;
        height: 160rpx;
        border-radius: 20rpx;
    }
    .repairDetail {
        margin-top: 20rpx;
        background-color: #eff0f1;
        height: 80rpx;
        font-size: 36rpx;
        width: 106%;
        margin-left: -3%;
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 10rpx;
    }
    .arrowClass {
        display: flex;
        justify-content: center;
        // background-color: #efefef;
        width: 100rpx;
        // border-radius: 10rpx;
        height: 56rpx;
    }
</style>
pages/xtsy/index.vue
@@ -2,9 +2,9 @@
    <view>
        <!-- <u-notify ref="uNotify" message="登录成功!"></u-notify> -->
        <page-nav title="工作台" :topRightMessageCount="topRightMessageCount"></page-nav>
        <page-nav title="工作台"></page-nav>
        <!-- :height="$DeviceInformation.screenHeight*6/9" -->
        <u-swiper :list="list1" style="margin: 0 0rpx;" indicator height='250' indicatorActiveColor='#436df5'
            indicatorMode='dot' interval='3000' :autoplay='true'></u-swiper>
@@ -214,6 +214,26 @@
                        break;
                        // è®¾å¤‡ç®¡ç†
                    case '2400':
                        url = 'sbgl/rcdj' //日常点检
                        break;
                    case '2401':
                        url = 'sbgl/dqby' //定期保养
                        break;
                    case '2404':
                        url = 'sbgl/wxsq' //维修申请
                        break;
                    case '2402':
                        url = 'sbgl/sbwx' //设备维修
                        break;
                    case '2403':
                        url = 'sbgl/wxyz' //维修验证
                        break;
                    case '2032':
                        url = 'zlgl/jyfh' //检验复核
@@ -250,15 +270,6 @@
                        break;
                    case '2042':
                        url = 'sbgl/wxsq' //维修申请
                        break;
                    case '2043':
                        url = 'sbgl/sbwx' //设备维修
                        break;
                    case '2044':
                        url = 'sbgl/wxyz' //维修验证
                        break;
                        // æ¨¡å…·ç®¡ç†