App-Android(使用App+htnl5框架,解决消息推送兼容SignalR问题)
loulijun2021
2022-09-28 0e5cc5f682866e32be324024a72f54d117eb6423
1.设备维修申请静态页面开发完成
已修改4个文件
已添加1个文件
443 ■■■■■ 文件已修改
pages/sbgl/dqby.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sbgl/rcdj.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sbgl/sbwx.html 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sbgl/wxsq.html 352 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/xtsy/index.html 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sbgl/dqby.html
@@ -154,7 +154,7 @@
                        dropdownValue = topContent.find(r => r.code === topContent[0].code).main_cycle
                        centerContent = res.data
                        centerContent = JSON.parse(JSON.stringify(centerContent))
                        // centerContent = JSON.parse(JSON.stringify(centerContent))
                        centerContent.forEach(item => {
                            item.isDisabled = item.isscan === 'Y'
                            item.inputValue = ''
@@ -411,7 +411,7 @@
            methods: {
                // æœˆ å¹´é€‰æ‹©
                onSelectSheet(val) {
                    dropdownValue = val
                    dropdownValue = val.code
                    this.$forceUpdate()
                    this.sheetFlag = false
                },
pages/sbgl/rcdj.html
@@ -142,7 +142,7 @@
                }).then(res => {
                    if (res.code === '200') {
                        centerContent = res.data
                        centerContent = JSON.parse(JSON.stringify(centerContent))
                        // centerContent = JSON.parse(JSON.stringify(centerContent))
                        centerContent.forEach(item => {
                            item.isDisabled = item.isscan === 'Y'
                            item.inputValue = ''
pages/sbgl/sbwx.html
@@ -166,7 +166,8 @@
                        <van-field v-model="messageDescr" rows="2" autosize type="textarea" placeholder="请输入" />
                    </div>
                    <div style="width: 96%;margin: auto;margin-top: 10px;">
                        <van-uploader v-model="fileList" :after-read="afterRead" multiple :max-count="3" />
                        <van-uploader @oversize="onOversize" :before-read="beforeRead" v-model="fileList"
                            :after-read="afterRead" multiple :max-count="3" />
                    </div>
                </div>
@@ -227,22 +228,23 @@
                        <van-field v-model="messageDescr2" rows="2" autosize type="textarea" placeholder="请输入" />
                    </div>
                    <div style="width: 96%;margin: auto;margin-top: 10px;">
                        <van-uploader v-model="fileList2" :after-read="afterRead2" multiple :max-count="3" />
                        <van-uploader :before-read="beforeRead" v-model="fileList2" :after-read="afterRead2" multiple
                            :max-count="3" />
                    </div>
                </div>
                <div style="">
                    <div class="footer" style="min-height:50px;">
                        <div
                            style="position:fixed;bottom: 0;width: 96%;display: flex;justify-content: center;flex-direction: column;align-items: center">
                            <van-button class="vanButtonInfo" @click="submit" type="info">
                                ç¡®è®¤æäº¤</van-button>
                        </div>
                <div class="footer" style="min-height:50px;">
                    <div
                        style="position:fixed;bottom: 0;width: 96%;display: flex;justify-content: center;flex-direction: column;align-items: center">
                        <van-button class="vanButtonInfo" @click="submit" type="info">
                            ç¡®è®¤æäº¤</van-button>
                    </div>
                </div>
            </div>
@@ -315,28 +317,66 @@
                    this.isStop = val
                    this.$forceUpdate()
                },
                onOversize(file) {
                    console.log(file, 1);
                    this.$toast("文件大小不能超过5MB");
                },
                //校验图片的格式
                beforeRead(file) {
                    if (!/(jpg|jpeg|png|JPG|PNG)/i.test(file.type)) {
                        this.$toast("请上传正确格式的图片");
                        return false;
                    }
                    if (file.size > 100 * 1024 * 1024) {
                        this.$toast('图片大小不能超过 100MB');
                        return false;
                    }
                    return true;
                },
                afterRead(file) {
                    // æ­¤æ—¶å¯ä»¥è‡ªè¡Œå°†æ–‡ä»¶ä¸Šä¼ è‡³æœåС噍
                    console.log(file);
                    //创建FormData对象。上传图片需要转换二进制,这里要用到FormData
                    let forms = new FormData();
                    console.log(file.file);
                    //"file"表示给后台传的属性名字
                    forms.append("file", file.file); //获取上传图片信息
                    console.log(forms, 1);
                    this.photoList = forms
                },
                submit() {
                    console.log(this.photoList, 1)
                    // å¼€å‘时对FormData对象append数据后打印出来为空对象,开始以为是没有append进去,实际上是FormData对象不能直接用console.log(formData)进行打印。
                    // å¦‚果要打印,可以用下面的方式:
                    // for (var key of this.photoList.entries()) {
                    //     console.log(key[0] + ', ' + key[1] );
                    // }
                    for (let [a, b] of this.photoList.entries()) {
                        console.log(a, ', ', b);
                    }
                },
                topScanClick() {
                    createWithoutTitle('../../components/barcode_scan.html', {
                        titleNView: {
                            type: 'float',
                            backgroundColor: 'rgba(215,75,40,0.3)',
                            titleText: '扫一扫',
                            titleColor: '#FFFFFF',
                            autoBackButton: true,
                            buttons: [{
                                fontSrc: '_www/helloh5.ttf',
                                text: '\ue302',
                                fontSize: '18px',
                                onclick: 'javascript:scanPicture()'
                            }]
                        }
                    });
                },
                // è¾“入框失焦触发事件
                vanFieldBlur() {
                    this.$forceUpdate()
                },
                topContentClcik(code) {
                },
                onClickleft() {
                    history.back()
pages/sbgl/wxsq.html
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,352 @@
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <meta name="HandheldFriendly" content="true" />
        <meta name="MobileOptimized" content="320" />
        <title>新凯迪制造云平台</title>
        <!-- å¼•入样式文件 -->
        <link rel="stylesheet" href="../../css/vant.css" />
        <!-- å¼•å…¥ Vue å’Œ Vant çš„ JS æ–‡ä»¶ -->
        <script src="../../js/vue.min.js"></script>
        <script src="../../js/vant.min.js"></script>
        <script type="text/javascript" src="../../js/jquery-1.6.4.min.js"></script>
        <script type="text/javascript" src="../../js/axios.min.js"></script>
        <script type="text/javascript" src="../../js/http.js"></script>
        <script type="text/javascript" src="../../js/common.js"></script>
        <script type="text/javascript" src="../../js/global.js"></script>
        <!-- <link rel="stylesheet" href="../../css/global.css" type="text/css" charset="utf-8" /> -->
        <script type="text/javascript">
            var topContent = [
                //     {
                //     code: 'SB001',
                //     name: '电池组一线',
                //     wksp_code: "CJ002",
                //     wksp_name: '电池车间',
                //     eapmai_code: "bybz004",
                //     eapmai_name: "标准4",
                //     main_cycle: "M",
                // },
            ];
            let number = []; // åšæ‰«ç å›žæ¥è§†å›¾æ›´æ–°ç”¨
            let dropdownValue = 'V1'; //下拉默认选中的值
            // æ‰«æç»´ä¿®å·¥ä½è¿”回时执行方法
            function scaned(r) {
                get('AppDeviceManage/MaintainScanDeviceApplyQrCodeData', {
                    eqpcode: r
                }).then(res => {
                    topContent = res.data
                    number.push({
                        id: '1'
                    })
                })
            }
        </script>
    </head>
    <!-- <body onload="loadNodes()"> -->
    <body>
        <div id="app">
            <div class="body">
                <van-nav-bar title="设备维修申请" @click-right="onClickRight" left-arrow @click-left="onClickleft">
                    <template #right>
                        <van-popover style="" placement="bottom-end" :offset="[13,8]" v-model="showPopover"
                            trigger="click" :actions="actions" @select="onSelect">
                            <template #reference>
                                <van-icon name="bars" size='20' color='#fff' />
                            </template>
                        </van-popover>
                    </template>
                </van-nav-bar>
                <div class="head">
                    <div class="head_block">
                        <div class="head_left">
                            <div class="head_bar"></div>
                            <div class="head_title">
                                æ‰«æç»´ä¿®å·¥ä½
                            </div>
                        </div>
                        <div style="margin-right: 10px;">
                            <van-icon name="scan" color='red' size='24' @click='topScanClick()' />
                        </div>
                    </div>
                    <div class="flex_between" style="">
                        <div id="contentLeft" style="width: 100%;margin-top: 10px;">
                            <div id="topContentID" v-for="item in topContent" :key="item.code"
                                style="margin-bottom: 10px;margin-left: 20px;">
                                <div style="display: flex;align-items: center;">
                                    <div>
                                        <div>工位编码:</div>
                                        <div>工位名称:</div>
                                        <div>生产车间:</div>
                                    </div>
                                    <div>
                                        <div>{{item.code}}</div>
                                        <div>{{item.name}}</div>
                                        <div>{{item.wksp_name}}</div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="head" :style="{marginTop:topContent.length===0?'100px':'0'}"
                    style="margin-bottom: 10px;padding-bottom: 10px;">
                    <div class="head_block">
                        <div class="head_left">
                            <div class="head_bar"></div>
                            <div class="head_title">
                                æ•…障来源
                            </div>
                        </div>
                        <div style="margin-right: 10px;">
                            <van-button @click="sheetFlag=true" type="info" style="width:100px;height: 30px;">
                                {{dropdownValue==='V1'?'设备点检':'设备点检2'}}
                            </van-button>
                            <van-action-sheet v-model="sheetFlag" :actions="actionsSheet" @select="onSelectSheet" />
                        </div>
                    </div>
                </div>
                <div class="head" style="margin-bottom: 10px;padding-bottom: 10px;">
                    <div class="head_block" style="margin-bottom:10px;">
                        <div class="head_left">
                            <div class="head_bar"></div>
                            <div class="head_title">
                                æ•…障描述
                            </div>
                        </div>
                    </div>
                    <div style="display:flex;flex-direction: column;width: 96%;margin: auto;">
                        <van-field v-model="messageDescr" rows="2" autosize type="textarea" placeholder="请输入" />
                    </div>
                    <div style="width: 96%;margin: auto;margin-top: 10px;">
                        <van-uploader @oversize="onOversize" :before-read="beforeRead" v-model="fileList"
                            :after-read="afterRead" multiple :max-count="3" />
                    </div>
                </div>
                <div class="footer" style="min-height:50px;">
                    <div
                        style="position:fixed;bottom: 0;width: 96%;display: flex;justify-content: center;flex-direction: column;align-items: center">
                        <van-button class="vanButtonInfo" :disabled="messageDescr.trim().toString().length===0"
                            @click="submit" type="info">
                            ç¡®è®¤æäº¤</van-button>
                    </div>
                </div>
            </div>
            <van-overlay :show="overlayShow" @click="overlayShow=false" />
        </div>
    </body>
    <script>
        var app = new Vue({
            el: '#app',
            data: function() {
                return {
                    overlayShow: false,
                    showPopover: false,
                    actions: [{
                        icon: 'description',
                        text: '操作指导'
                    }, {
                        icon: 'award-o',
                        text: '成品追溯'
                    }, {
                        icon: 'revoke',
                        text: '退出登录'
                    }],
                    actionsSheet: [{
                        code: 'V1',
                        name: '设备点检'
                    }, {
                        code: 'V2',
                        name: '设备点检2'
                    }],
                    number2: number,
                    messageDescr: '',
                    fileList: [],
                    sheetFlag: false,
                }
            },
            watch: {
                'number2.length': {
                    handler(newValue, oldValue) {
                        console.log(111)
                        this.$forceUpdate()
                    },
                    deep: true,
                    immediate: true,
                },
            },
            created() {},
            mounted() {},
            methods: {
                onOversize(file) {
                    this.$toast("文件大小不能超过5MB");
                },
                afterRead(file) {
                },
                //校验图片的格式
                beforeRead(file) {
                    if (!/(jpg|jpeg|png|JPG|PNG)/i.test(file.type)) {
                        this.$toast("请上传正确格式的图片");
                        return false;
                    }
                    if (file.size > 100 * 1024 * 1024) {
                        this.$toast('图片大小不能超过 100MB');
                        return false;
                    }
                    return true;
                },
                onSelectSheet(val) {
                    dropdownValue = val.code
                    this.sheetFlag = false
                    this.$forceUpdate()
                },
                //提交
                submit() {
                },
                // è¾“入框失焦触发事件
                vanFieldBlur() {
                    this.$forceUpdate()
                },
                // æ‰«æä¿å…»å·¥ä½æ‰«æ
                topScanClick() {
                    createWithoutTitle('../../components/barcode_scan.html', {
                        titleNView: {
                            type: 'float',
                            backgroundColor: 'rgba(215,75,40,0.3)',
                            titleText: '扫一扫',
                            titleColor: '#FFFFFF',
                            autoBackButton: true,
                            buttons: [{
                                fontSrc: '_www/helloh5.ttf',
                                text: '\ue302',
                                fontSize: '18px',
                                onclick: 'javascript:scanPicture()'
                            }]
                        }
                    });
                },
                onClickleft() {
                    history.back()
                },
                onClickRight() {
                    this.overlayShow = true
                },
                onSelect(action) {
                    if (action.text === '操作指导') {
                        topPopoverClick('操作指导')
                    } else if (action.text === '成品追溯') {
                        topPopoverClick('成品追溯')
                    } else if (action.text === '退出登录') {
                        topPopoverClick('退出登录')
                    }
                    this.overlayShow = false
                },
            }
        })
    </script>
    <style type="text/css">
        @import url('../../css/global.css');
        body {
            background-color: #fff;
        }
        .body {
            min-height: 600px;
            background-color: grey;
            margin-top: 0px;
            background-color: #fff;
            position: relative;
        }
        .van-nav-bar__content {
            background-color: #2651d8;
            height: 44px;
        }
        .van-nav-bar__title {
            color: #fff;
            letter-spacing: 2px;
        }
        .van-nav-bar__arrow {
            color: #fff !important;
        }
        .createElementDiv {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 10px;
            margin-left: 20px;
        }
        .vanFieldInput {
            height: 36px;
            line-height: 36px;
            align-items: center;
            /* width: 200px; */
            padding: 0;
            padding-left: 10px;
            /* border-radius: 5px; */
            margin: 5px 0;
            /* background-color: #fff; */
        }
        .buttonSmall {
            /* border-radius: 5px; */
        }
        .vanButtonInfo {
            width: 100%;
            letter-spacing: 2px;
            height: 50px;
            font-size: 18px;
            /* margin-left: 0; */
        }
    </style>
</html>
pages/xtsy/index.html
@@ -31,8 +31,8 @@
                <van-nav-bar title="工作台" @click-right="onClickRight">
                    <template #right>
                        <van-popover  placement="bottom-end" :offset="[13,8]" v-model="showPopover"
                            trigger="click" :actions="actions" @select="onSelect">
                        <van-popover placement="bottom-end" :offset="[13,8]" v-model="showPopover" trigger="click"
                            :actions="actions" @select="onSelect">
                            <template #reference>
                                <van-icon name="bars" size='20' color='#fff' />
                            </template>
@@ -137,9 +137,12 @@
                            url = '../sbgl/dqby.html'
                            break;
                        case '2042':
                            url = '../sbgl/sbwx.html'
                            url = '../sbgl/wxsq.html'
                            break;
                        case '2043':
                            url = '../sbgl/sbwx.html'
                            break;
                        case '2044':
                            url = '../sbgl/wxyz.html'
                            break;
                    }
@@ -151,12 +154,12 @@
                },
                // é¡¶éƒ¨å³å›¾æ ‡ä¸‹æ‹‰é€‰æ‹©
                onSelect(action) {
                    if(action.text==='操作指导'){
                    if (action.text === '操作指导') {
                        topPopoverClick('操作指导')
                    }else if(action.text==='成品追溯'){
                    } else if (action.text === '成品追溯') {
                        topPopoverClick('成品追溯')
                    }else if(action.text==='退出登录'){
                        topPopoverClick('退出登录')
                    } else if (action.text === '退出登录') {
                        topPopoverClick('退出登录')
                    }
                    this.overlayShow = false
                },