App-Android(使用App+htnl5框架,解决消息推送兼容SignalR问题)
loulijun2021
2022-10-20 8050665efc07f2666d803b14f01dfe07dc54da26
1.安灯呼叫开发完成
已修改18个文件
已添加1个文件
2255 ■■■■ 文件已修改
pages/adgl/adhj.html 425 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/adgl/adxy.html 317 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/index.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/other/wdxx.html 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sbgl/dqby.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sbgl/rcdj.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/xtsy/index.html 259 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/cache/apk/H5EDA0853_cm.apk 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/cache/apk/apkurl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/cache/apk/cmManifestCache.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/cache/wgt/H5EDA0853/pages/adgl/adhj.html 425 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/cache/wgt/H5EDA0853/pages/adgl/adxy.html 317 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/cache/wgt/H5EDA0853/pages/login/index.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/cache/wgt/H5EDA0853/pages/other/wdxx.html 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/cache/wgt/H5EDA0853/pages/sbgl/dqby.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/cache/wgt/H5EDA0853/pages/sbgl/rcdj.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/cache/wgt/H5EDA0853/pages/xtsy/index.html 259 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/cache/wgt/H5EDA0853/plus/a1.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/release/apk/H5EDA0853__20221020132538.apk 补丁 | 查看 | 原始文档 | blame | 历史
pages/adgl/adhj.html
@@ -20,6 +20,7 @@
        <script type="text/javascript" src="../../js/common.js"></script>
        <script type="text/javascript" src="../../js/global.js"></script>
        <script src="http://121.196.36.24:8001/Scripts/jquery-3.4.1.min.js"></script>
        <script src="http://121.196.36.24:8001/Scripts/jquery.signalR-2.2.2.min.js"></script>
        <script src="http://121.196.36.24:8001/SignalR/Hubs"></script>
@@ -27,7 +28,50 @@
        <script type="text/javascript">
            var pushServer = "http://demo.dcloud.net.cn/push/?";
            var message = null;
            var message2 = null;
            let topContent = [
                // {
                //     code: 'SB001',
                //     name: '电池组一线',
                //     wksp_code: "CJ002",
                //     wksp_name: '电池车间',
                //     "eqpchkmain_code": "djbz002"
                // },
                // {
                //     code: 'SB003',
                //     name: '齿轮箱组一线',
                //     wksp_code: "CJ001",
                //     "wksp_name": "装配车间",
                //     "eqpchkmain_code": "djbz002"
                // },
                // {
                //     code: 'SB004',
                //     name: '齿轮箱组一线',
                //     wksp_code: "CJ001",
                //     "wksp_name": "装配车间",
                //     "eqpchkmain_code": "djbz002"
                // },
                // {
                //     code: 'SB005',
                //     name: '齿轮箱组一线',
                //     wksp_code: "CJ001",
                //     "wksp_name": "装配车间",
                //     "eqpchkmain_code": "djbz002"
                // },
            ];
            var submitIsDisabled = false; //提交按钮是否disabled
            let radioValue = '' //单选框选中的项
            let centerContent = [] //中间部分内容
            let falseArray = [] // 假数组   做扫码回来视图更新用
            var currentValue = []; //当前工位下调用呼叫类型接口   flag已是Y的值进行存储
            // 监听plusready事件  
            document.addEventListener("plusready", function() {
@@ -137,19 +181,23 @@
                outSet("清空所有推送消息成功!");
            }
            $(function() {
                //前端Hub的使用,注意的是,Hub的名字是ChatHub,这里使用时首字母小写
                var work = $.connection.chatHub;
                //对应后端的SendMessage函数,消息接收函数
                // console.log(work.client.sendMessage)
                work.client.sendMessage = function(msg) {
                    console.log(msg)
                    // createLocalPushMsg(msg)
                    console.log(msg, 1)
                    createLocalPushMsg(msg)
                };
                //后端SendLogin调用后,产生的loginUser回调
                work.client.loginUser = function(userlist) {
                    console.log(userlist, 9)
                    // console.log(userlist, 9)
                    // reloadUser(userlist);
                };
@@ -162,9 +210,7 @@
                    //发送上线信息
                    work.server.sendLogin(username);
                    // const data = [{
                    // const aaa = [{
                    //     "code": "Q",
                    //     "name": "呼叫质量",
                    //     "children": [{
@@ -173,59 +219,62 @@
                    //     }]
                    // }]
                    // work.server.sendByGroupList('楼先生', 'CJ002', 'SB001', data)
                    // work.server.sendByGroupList('楼先生', 'CJ002', 'SB001', aaa)
                    $('#submit').click(function() {
                        // const data = [{
                        //     "code": "Q",
                        //     "name": "呼叫质量",
                        //     "children": [{
                        //         "usercode": "999",
                        //         "username": "楼先生"
                        //     }]
                        // }]
                        // console.log(1)
                        const data = {
                            username: localStorage.getItem('username'),
                            eqpcode: topContent.find(i => i.code === radioValue).code,
                            wkshpcode: topContent.find(i => i.code === radioValue).wksp_code
                        }
                        // vant.Notify('点击了')
                        // const data = {
                        //     username: localStorage.getItem('username'),
                        //     eqpcode: topContent.find(i => i.code === radioValue).code,
                        //     wkshpcode: topContent.find(i => i.code === radioValue).wksp_code
                        // }
                        const DATA = []
                        centerContent.forEach(i => {
                            if (i.isTrue) {
                            if (i.isTrue && !currentValue.includes(i.code)) {
                                i.flag = i.isTrue ? 'Y' : 'N'
                                DATA.push(i)
                            }
                        })
                        work.server.sendByGroupList(
                            localStorage.getItem('username'),
                            topContent.find(i => i.code === radioValue).wksp_code,
                            topContent.find(i => i.code === radioValue).code,
                            DATA
                        )
                        // submitIsDisabled = true
                        // falseArray.push({
                        //     id: '1'
                        // })
                        // console.log(data, DATA)
                        // post('AppDeviceManage/AppDeviceAnDengCallSave' + formatParams(data), DATA).then(
                        //     res => {
                        //         if (res.code === '200') {
                        //             vant.Notify({
                        //                 type: 'primary',
                        //                 message: '提交成功!'
                        //             })
                        //             topContent.forEach((r, i) => {
                        //                 if (r.code === radioValue) {
                        //                     topContent.splice(i, 1)
                        //                 }
                        //             })
                        //             if (topContent.length >= 1) {
                        //                 radioValue = topContent[0].code
                        //                 topContentClick(radioValue, topContent.find(i => i.code ===
                        //                     radioValue).wksp_code)
                        //             }
                        work.server.sendByGroupList(localStorage.getItem('username'), topContent.find(i => i.code === radioValue).wksp_code,  topContent.find(i => i.code === radioValue).code, DATA)
                        post('AppDeviceManage/AppDeviceAnDengCallSave' + formatParams(data), DATA).then(res => {
                            if (res.code === '200') {
                                vant.Notify.primary('提交成功!')
                                topContent.forEach((r, i) => {
                                    if (r.code === radioValue) {
                                        topContent.splice(i, 1)
                                    }
                                })
                                if (topContent.length >= 1) {
                                    radioValue = topContent[0].code
                                    this.topContentClcik(radioValue)
                                }
                                this.submitIsDisabled = false
                                this.$forceUpdate()
                            }
                        })
                        //             // submitIsDisabled = false
                        //             falseArray.push({
                        //                 id: '1'
                        //             })
                        //         }
                        //     })
                    })
                });
            });
            //重新加载用户列表
@@ -234,76 +283,43 @@
            //     for (i = 0; i < 5; i++) {
            //         $("#username").append("<option value=" + i + ">" + i + "</option>");
            //     }
            // }
        </script>
            // }
        <script type="text/javascript">
            let topContent = [{
                    code: 'SB001',
                    name: '电池组一线',
                    wksp_code: "CJ002",
                    wksp_name: '电池车间',
                    "eqpchkmain_code": "djbz002"
                },
                {
                    code: 'SB003',
                    name: '齿轮箱组一线',
                    wksp_code: "CJ001",
                    "wksp_name": "装配车间",
                    "eqpchkmain_code": "djbz002"
                },
                {
                    code: 'SB004',
                    name: '齿轮箱组一线',
                    wksp_code: "CJ001",
                    "wksp_name": "装配车间",
                    "eqpchkmain_code": "djbz002"
                },
                // {
                //     code: 'SB005',
                //     name: '齿轮箱组一线',
                //     wksp_code: "CJ001",
                //     "wksp_name": "装配车间",
                //     "eqpchkmain_code": "djbz002"
                // },
            ];
            let radioValue = 'SB001' //单选框选中的项
            let centerContent = [] //中间部分内容
            let falseArray = [] // 假数组   做扫码回来视图更新用
            // 扫描保养工位返回时执行方法
            // 扫描工位返回时执行方法
            function scaned(r) {
                radioValue = r
                let temp = {}
                let flag = false
                var temp = {}
                var flag = 0
                if (topContent.find(i => i.code === radioValue)) {
                if (topContent.find(i => i.code === r)) {
                    topContent.forEach((item, index) => {
                        if (item.code === radioValue) {
                        if (item.code === r) {
                            temp = item
                            topContent.splice(index, 1)
                            flag = true
                            flag = 1
                        }
                    })
                }
                if (flag) { //对已在列表的数据   排序到第一个去
                if (flag === 1) { //对已在列表的数据   排序到第一个去
                    topContent.unshift(temp)
                    topScanClick(radioValue)
                    centerContentClick(radioValue, topContent.find(i => i.code === radioValue).wksp_code)
                    topContentClick(r, topContent.find(i => i.code === r).wksp_code)
                    falseArray.push({
                        id: '1'
                    })
                } else { //未在列表的数据  进行新增操作
                    topScanClick(radioValue)
                    centerContentClick(radioValue, topContent.find(i => i.code === radioValue).wksp_code)
                    topScanClick(r)
                    falseArray.push({
                        id: '1'
                    })
                }
                falseArray.push({
                    id: '1'
                })
            }
@@ -311,6 +327,7 @@
                post('AppDeviceManage/AppDeviceAnDengCallScanSearch?eqpcode=' + code).then(res => {
                    if (res.code === '200') {
                        topContent.unshift(res.data[0])
                        topContentClick(code, topContent.find(i => i.code === code).wksp_code)
                        falseArray.push({
                            id: '1'
                        })
@@ -319,7 +336,8 @@
                })
            }
            function centerContentClick(code, wksp_code) {
            function topContentClick(code, wksp_code) {
                radioValue = code
                const data = {
                    eqpcode: code,
                    wkshpcode: wksp_code
@@ -327,6 +345,22 @@
                post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                    if (res.code === '200') {
                        centerContent = res.data
                        currentValue = centerContent.map(r => {
                            if (r.flag === 'Y') {
                                return r.code
                            }
                        })
                        centerContent.forEach(i => {
                            i.isTrue = i.flag === 'Y'
                        })
                        // vant.Notify({
                        //     type: 'danger',
                        //     message: res.Message + centerContent.length
                        // });
                        falseArray.push({
                            id: '1'
                        })
@@ -336,7 +370,8 @@
        </script>
    </head>
    <body>
    <body onload="scaned('SB001')">
        <!-- <body> -->
        <div id="app">
            <div class="body">
@@ -353,7 +388,6 @@
                        </template>
                    </van-nav-bar>
                </van-sticky>
                <div v-if="topContent.length===0">
                    <div class="sacnBody">
@@ -384,7 +418,7 @@
                        <van-radio-group v-model="radioValue">
                            <van-cell-group>
                                <div style="margin: 10px 0;" v-for="(item,index) in topContent" :key="item.eqpcode"
                                    @click="topContentClcik(item.code,item.wksp_code)">
                                    @click="topContentClick(item.code,item.wksp_code)">
                                    <div class="cellDiv">工位编码:{{item.code}}</div>
                                    <van-cell :title="'工位名称:'+item.name">
                                        <template #right-icon>
@@ -400,7 +434,7 @@
                    </div>
                    <div class="head" style="min-height: 100px;max-height: 260px; overflow: scroll;">
                    <div class="head" style="min-height: 100px; ">
                        <div class="head_block">
                            <div class="head_left">
                                <div class="head_bar"></div>
@@ -418,8 +452,9 @@
                            <div style="display: flex;justify-content: space-between;align-items: center;">
                                <div style="margin-left: 10px;">{{item.name}}</div>
                                <div style="margin-right: 10px;">
                                    <van-switch size="24" v-model="item.isTrue" @change='val=>switchChange(val,item)'
                                        active-color="#ee0a24" inactive-color="#dcdee0" />
                                    <van-switch :disabled="item.flag==='Y'" size="24" v-model="item.isTrue"
                                        @change='val=>switchChange(val,item)' active-color="#ee0a24"
                                        inactive-color="#dcdee0" />
                                </div>
                            </div>
                        </div>
@@ -429,8 +464,8 @@
                    <div
                        style="position:fixed;bottom: 0;width: 96%;margin-left:2%; flex;justify-content: center;flex-direction: column;align-items: center">
                        <van-button id='submit' :load='submitIsDisabled' load-text="正在提交,请稍等..." class="vanButtonInfo"
                            @click="submit" type="info">
                        <van-button id="submit" :loading='submitIsDisabled' loading-text="正在提交,请稍等..."
                            class="vanButtonInfo" @click='submit' type="info">
                            确认提交</van-button>
                    </div>
@@ -455,7 +490,7 @@
            el: '#app',
            data: function() {
                return {
                    submitIsDisabled: false,
                    overlayShow: false,
                    showPopover: false,
                    actions: [{
@@ -468,12 +503,20 @@
                        icon: 'revoke',
                        text: '退出登录'
                    }],
                    topContent2: topContent,
                    falseArray2: falseArray, //假数组
                }
            },
            watch: {
                'topContent2.length': {
                    handler(newValue, oldValue) {
                        if (newValue !== oldValue) {
                            this.$forceUpdate()
                        }
                    },
                    deep: true,
                    immediate: true,
                },
                'falseArray2.length': {
                    handler(newValue, oldValue) {
                        this.$forceUpdate()
@@ -486,85 +529,103 @@
            },
            mounted() {
                const data = {
                    eqpcode: 'SB001',
                    wkshpcode: 'CJ002'
                }
                post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                    if (res.code === '200') {
                        centerContent = res.data
                // const data = {
                //     eqpcode: 'SB001',
                //     wkshpcode: 'CJ002'
                // }
                // post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                //     if (res.code === '200') {
                //         centerContent = res.data
                        centerContent.forEach(i => {
                            i.isTrue = i.flag === 'Y'
                        })
                        falseArray.push({
                            id: '1'
                        })
                //         currentValue = centerContent.map(r => {
                //             if (r.flag === 'Y') {
                //                 return r.code
                //             }
                //         })
                //         centerContent.forEach(i => {
                //             i.isTrue = i.flag === 'Y'
                //         })
                //         this.$forceUpdate()
                    }
                })
                //     }
                // })
            },
            methods: {
                submit() {
                    // const data = {
                    //     username: localStorage.getItem('username'),
                    //     eqpcode: topContent.find(i => i.code === radioValue).code,
                    //     wkshpcode: topContent.find(i => i.code === radioValue).wksp_code
                    // }
                    // const DATA = []
                    // centerContent.forEach(i => {
                    //     if (i.isTrue) {
                    //         i.flag = i.isTrue ? 'Y' : 'N'
                    //         DATA.push(i)
                    //     }
                    // })
                    // console.log(data, DATA)
                    // post('AppDeviceManage/AppDeviceAnDengCallSave' + formatParams(data), DATA).then(res => {
                    //     if (res.code === '200') {
                    //         vant.Notify.primary('提交成功!')
                    //         topContent.forEach((r, i) => {
                    //             if (r.code === radioValue) {
                    //                 topContent.splice(i, 1)
                    //             }
                    //         })
                    //         if (topContent.length >= 1) {
                    //             radioValue = topContent[0].code
                    //             this.topContentClcik(radioValue)
                    //         }
                    //         this.submitIsDisabled = false
                    //         this.$forceUpdate()
                    //     }
                    // })
                },
                switchChange(val, item) {
                    console.log(val, item)
                    this.$forceUpdate()
                },
                topContentClcik(code, wksp_code) {
                    radioValue = code
                    this.$forceUpdate()
                    const data = {
                        eqpcode: code,
                        wkshpcode: wksp_code
                    }
                    post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                        if (res.code === '200') {
                            centerContent = res.data
                            falseArray.push({
                                id: '1'
                            })
                submit() {
                    setTimeout(() => {
                        const data = {
                            username: localStorage.getItem('username'),
                            eqpcode: topContent.find(i => i.code === radioValue).code,
                            wkshpcode: topContent.find(i => i.code === radioValue).wksp_code
                        }
                    })
                        const DATA = []
                        centerContent.forEach(i => {
                            if (i.isTrue && !currentValue.includes(i.code)) {
                                i.flag = i.isTrue ? 'Y' : 'N'
                                DATA.push(i)
                            }
                        })
                        submitIsDisabled = true
                        // falseArray.push({
                        //     id: '1'
                        // })
                        this.$forceUpdate()
                        post('AppDeviceManage/AppDeviceAnDengCallSave' + formatParams(data), DATA).then(
                            res => {
                                if (res.code === '200') {
                                    vant.Notify({
                                        type: 'primary',
                                        message: '提交成功!'
                                    })
                                    topContent.forEach((r, i) => {
                                        if (r.code === radioValue) {
                                            topContent.splice(i, 1)
                                        }
                                    })
                                    if (topContent.length >= 1) {
                                        radioValue = topContent[0].code
                                        topContentClick(radioValue, topContent.find(i => i.code ===
                                            radioValue).wksp_code)
                                    }
                                    submitIsDisabled = false
                                    this.$forceUpdate()
                                }
                            })
                    }, 100)
                },
                // topContentClick(code, wksp_code) {
                //     radioValue = code
                //     this.$forceUpdate()
                //     const data = {
                //         eqpcode: code,
                //         wkshpcode: wksp_code
                //     }
                //     post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                //         if (res.code === '200') {
                //             centerContent = res.data
                //             currentValue = centerContent.map(r => {
                //                 if (r.flag === 'Y') {
                //                     return r.code
                //                 }
                //             })
                //             centerContent.forEach(i => {
                //                 i.isTrue = i.flag === 'Y'
                //             })
                //             this.$forceUpdate()
                //         }
                //     })
                // },
                topScanClick() {
pages/adgl/adxy.html
@@ -17,18 +17,117 @@
        <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 src="http://121.196.36.24:8001/Scripts/jquery-3.4.1.min.js"></script>
        <script src="http://121.196.36.24:8001/Scripts/jquery.signalR-2.2.2.min.js"></script>
        <script src="http://121.196.36.24:8001/SignalR/Hubs"></script>
 -->
        <script type="text/javascript">
            let topContent = [{
                    code: 'SB001',
                    name: '电池组一线',
                    wksp_code: "CJ002",
                    wksp_name: '电池车间',
                    "eqpchkmain_code": "djbz002"
                },
                {
                    code: 'SB003',
                    name: '齿轮箱组一线',
                    wksp_code: "CJ001",
                    "wksp_name": "装配车间",
                    "eqpchkmain_code": "djbz002"
                },
                {
                    code: 'SB004',
                    name: '齿轮箱组一线',
                    wksp_code: "CJ001",
                    "wksp_name": "装配车间",
                    "eqpchkmain_code": "djbz002"
                },
                // {
                //     code: 'SB005',
                //     name: '齿轮箱组一线',
                //     wksp_code: "CJ001",
                //     "wksp_name": "装配车间",
                //     "eqpchkmain_code": "djbz002"
                // },
            ];
            let radioValue = 'SB001' //单选框选中的项
            let centerContent = [] //中间部分内容
            let falseArray = [] // 假数组   做扫码回来视图更新用
            // 扫描保养工位返回时执行方法
            function scaned(r) {
                radioValue = r
                let temp = {}
                let flag = false
                if (topContent.find(i => i.code === radioValue)) {
                    topContent.forEach((item, index) => {
                        if (item.code === radioValue) {
                            temp = item
                            topContent.splice(index, 1)
                            flag = true
                        }
                    })
                }
                if (flag) { //对已在列表的数据   排序到第一个去
                    topContent.unshift(temp)
                    topScanClick(radioValue)
                    topContentClick(radioValue, topContent.find(i => i.code === radioValue).wksp_code)
                } else { //未在列表的数据  进行新增操作
                    topScanClick(radioValue)
                    topContentClick(radioValue, topContent.find(i => i.code === radioValue).wksp_code)
                }
                falseArray.push({
                    id: '1'
                })
            }
            function topScanClick(code) {
                post('AppDeviceManage/AppDeviceAnDengLampResponseScanSearch?eqpcode=' + code).then(res => {
                    if (res.code === '200') {
                        topContent.unshift(res.data[0])
                        falseArray.push({
                            id: '1'
                        })
                    }
                })
            }
            function topContentClick(code, wksp_code) {
                const data = {
                    eqpcode: code,
                    wkshpcode: wksp_code
                }
                post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                    if (res.code === '200') {
                        centerContent = res.data
                        falseArray.push({
                            id: '1'
                        })
                    }
                })
            }
        </script>
    </head>
    <body>
        <div id="app">
            <div class="body">
                <van-sticky>
                    <van-nav-bar title="安灯响应" @click-right="onClickRight" left-arrow @click-left="onClickleft">
                        <template #right>
@@ -42,10 +141,98 @@
                    </van-nav-bar>
                </van-sticky>
                <div v-if="topContent.length===0">
                    <div class="sacnBody">
                        <div class="scanImg" @click="topScanClick()"></div>
                        <div class="scanText">扫描工位</div>
                    </div>
                </div>
                <div v-else>
                    <div class="head" style="min-height: 100px;max-height: 260px; overflow: scroll;">
                        <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>
                        <van-radio-group v-model="radioValue" id="topContent">
                            <van-cell-group>
                                <div style="margin: 10px 0;" v-for="(item,index) in topContent" :key="item.eqpcode"
                                    @click="topContentClick(item.code,item.wksp_code)">
                                    <div class="cellDiv">工位编码:{{item.code}}</div>
                                    <van-cell :title="'工位名称:'+item.name">
                                        <template #right-icon>
                                            <van-radio style="margin-right: 10px;" checked-color='red'
                                                :name="item.code" />
                                        </template>
                                    </van-cell>
                                    <div class="cellDiv">生产车间:{{item.wksp_name}}</div>
                                </div>
                            </van-cell-group>
                        </van-radio-group>
                    </div>
                    <div class="head" style="min-height: 100px;max-height: 260px; overflow: scroll;">
                        <div class="head_block">
                            <div class="head_left">
                                <div class="head_bar"></div>
                                <div class="head_title">
                                    选择响应类型
                                </div>
                            </div>
                        </div>
                        <div style="padding: 10px;display: flex;flex-direction: column"
                            v-for="(item,index) in centerContent">
                            <div style="display: flex;justify-content: space-between;align-items: center;">
                                <div style="margin-left: 10px;">{{item.name}}</div>
                                <div style="margin-right: 10px;">
                                    <van-switch size="24" v-model="item.isTrue" @change='val=>switchChange(val,item)'
                                        active-color="#ee0a24" inactive-color="#dcdee0" />
                                </div>
                            </div>
                        </div>
                    </div>
                    <div
                        style="position:fixed;bottom: 0;width: 96%;margin-left:2%; flex;justify-content: center;flex-direction: column;align-items: center">
                        <van-button id='submit' :loading='submitIsDisabled' loading-text="正在提交,请稍等..."
                            class="vanButtonInfo" @click="submit" type="info">
                            确认提交</van-button>
                    </div>
                </div>
            </div>
            <van-overlay :show="overlayShow" @click="overlayShow=false" />
        </div>
        <van-overlay :show="overlayShow" @click="overlayShow=false" />
        </div>
@@ -55,6 +242,7 @@
            el: '#app',
            data: function() {
                return {
                    submitIsDisabled: false,
                    overlayShow: false,
                    showPopover: false,
                    actions: [{
@@ -67,16 +255,133 @@
                        icon: 'revoke',
                        text: '退出登录'
                    }],
                    falseArray2: falseArray, //假数组
                }
            },
            watch: {
                'falseArray2.length': {
                    handler(newValue, oldValue) {
                        this.$forceUpdate()
                    },
                    deep: true,
                    immediate: true,
                },
            },
            created() {
            },
            mounted() {
                const data = {
                    eqpcode: 'SB001',
                    wkshpcode: 'CJ002'
                }
                post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                    if (res.code === '200') {
                        centerContent = res.data
                        centerContent.forEach(i => {
                            i.isTrue = i.flag === 'Y'
                        })
                        falseArray.push({
                            id: '1'
                        })
                    }
                })
            },
            methods: {
                submit() {
                    const data = {
                        username: localStorage.getItem('username'),
                        eqpcode: topContent.find(i => i.code === radioValue).code,
                        wkshpcode: topContent.find(i => i.code === radioValue).wksp_code
                    }
                    const DATA = []
                    centerContent.forEach(i => {
                        if (i.isTrue) {
                            i.flag = i.isTrue ? 'Y' : 'N'
                            DATA.push(i)
                        }
                    })
                    console.log(data, DATA)
                    this.submitIsDisabled = true
                    post('AppDeviceManage/AppDeviceAnDengLampResponseSave' + formatParams(data), DATA).then(
                        res => {
                            if (res.code === '200') {
                                vant.Notify({
                                    type: 'primary',
                                    message: '提交成功!'
                                })
                                topContent.forEach((r, i) => {
                                    if (r.code === radioValue) {
                                        topContent.splice(i, 1)
                                    }
                                })
                                if (topContent.length >= 1) {
                                    radioValue = topContent[0].code
                                    this.topContentClick(radioValue)
                                }
                                this.submitIsDisabled = false
                                this.$forceUpdate()
                            }
                        })
                },
                switchChange(val, item) {
                    console.log(val, item)
                    this.$forceUpdate()
                },
                topContentClick(code, wksp_code) {
                    // radioValue = code
                    // this.$forceUpdate()
                    // const data = {
                    //     eqpcode: code,
                    //     wkshpcode: wksp_code
                    // }
                    // post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                    //     if (res.code === '200') {
                    //         centerContent = res.data
                    //         falseArray.push({
                    //             id: '1'
                    //         })
                    //     }
                    // })
                },
                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()
                },
@@ -98,5 +403,9 @@
    </script>
    <style type="text/css">
        @import url('../../css/global.css');
        .van-hairline--top-bottom {
            position: static;
        }
    </style>
</html>
pages/login/index.html
@@ -51,7 +51,7 @@
                    </div>
                    <div style="margin-top:30px;">
                        <van-button type="info" style="border-radius: 10px;" :disabled="username===''||password===''"
                            @click='loginClick' size="large">立即登录
                            @click='loginClick' :loading='submitIsDisabled' loading-text="正在登录,请稍等..." size="large">立即登录
                        </van-button>
                    </div>
                </div>
@@ -65,6 +65,7 @@
            el: '#app',
            data: function() {
                return {
                    submitIsDisabled: false,
                    username: '999',
                    password: '123',
                    isOpenEye: false,
@@ -83,7 +84,7 @@
                        password: this.password,
                        usertype: 'APP'
                    }
                    this.submitIsDisabled = true
                    get('Login/LoginSave', data).then(res => {
                        if (res.code === '200') {
                            // window.location.reload()   //页面重新
@@ -97,6 +98,8 @@
                                localStorage.setItem('usertype', res.data.usertype)
                            }
                            window.location.href = '../xtsy/index.html'
                        } else {
                            this.submitIsDisabled = false
                        }
                        if (res.code === '302') {
pages/other/wdxx.html
@@ -39,7 +39,17 @@
                    </van-nav-bar>
                </van-sticky>
                <div class="head">
                <div v-if="messageArr.length===0">
                    <div class="sacnBody">
                        <div class="box">
                            <div class="boxImg"></div>
                        </div>
                        <div class="scanText">暂无消息</div>
                    </div>
                </div>
                <div v-else class="head">
                    <div class="head_block">
                        <div class="head_left">
                            <div class="head_bar"></div>
@@ -55,11 +65,11 @@
                            <div slot="finish-icon">
                                <div class="messageIndex">{{index+1}}</div>
                            </div>
                            <div style="margin-left: 5px;">工位名称:{{item.gwmc}}</div>
                            <div style="margin-left: 5px;">生产车间:{{item.sccj}}</div>
                            <div style="margin-left: 5px;">呼叫类型:{{item.hjlx}}</div>
                            <div style="margin-left: 5px;">发起人员:{{item.fqry}}</div>
                            <div style="margin-left: 5px;">发起时间:{{item.fqsj}}</div>
                            <div style="margin-left: 5px;">工位名称:{{item.eqp_name}}</div>
                            <div style="margin-left: 5px;">生产车间:{{item.wkshp_name}}</div>
                            <div style="margin-left: 5px;">呼叫类型:{{item.typename}}</div>
                            <div style="margin-left: 5px;">发起人员:{{item.start_user}}</div>
                            <div style="margin-left: 5px;">发起时间:{{item.start_date}}</div>
                        </van-step>
                    </van-steps>
                </div>
@@ -93,83 +103,7 @@
                            text: '退出登录'
                        },
                    ],
                    messageArr: [{
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                    {
                        gwmc: '机加01工位',
                        sccj: '机加车间',
                        hjlx: '呼叫设备',
                        fqry: '张三',
                        fqsj: '2022-10-10 11:12:12'
                    },    {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },    {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                    ]
                    messageArr: []
                }
@@ -178,9 +112,20 @@
            },
            mounted() {
                this.getLoginAppAnDonMessage()
            },
            methods: {
            async    getLoginAppAnDonMessage() {
                    const data = {
                        userid: localStorage.getItem('userid'),
                        usercode: localStorage.getItem('usercode'),
                        username: localStorage.getItem('username'),
                        usertype: localStorage.getItem('usertype'),
                    }
                    const res = await post('Login/LoginAppAnDonMessage' + formatParams(data))
                    this.messageArr = res.data
                },
                onClickleft() {
                    history.back()
                },
pages/sbgl/dqby.html
@@ -321,7 +321,7 @@
                        <div
                            style="position:fixed;bottom: 0;width: 96%;display: flex;justify-content: center;flex-direction: column;align-items: center">
                            <van-button :load='submitIsDisabled' load-text="正在提交,请稍等..." class="vanButtonInfo"
                            <van-button  :loading='submitIsDisabled' loading-text="正在提交,请稍等..." class="vanButtonInfo"
                                :disabled="resultValue===''" @click="submit" type="info">
                                确认提交</van-button>
                        </div>
pages/sbgl/rcdj.html
@@ -300,7 +300,7 @@
                        <div
                            style="position:fixed;bottom: 0;width: 96%;display: flex;justify-content: center;flex-direction: column;align-items: center">
                            <van-button :load='submitIsDisabled' load-text="正在提交,请稍等..." class="vanButtonInfo"
                            <van-button :loading='submitIsDisabled' loading-text="正在提交,请稍等..." class="vanButtonInfo"
                                :disabled="resultValue===''" @click="submit" type="info">
                                确认提交</van-button>
                        </div>
pages/xtsy/index.html
@@ -20,8 +20,180 @@
        <script type="text/javascript" src="../../js/http.js"></script>
        <script type="text/javascript" src="../../js/global.js"></script>
         <script src="http://121.196.36.24:8001/Scripts/jquery-3.4.1.min.js"></script>
         <script src="http://121.196.36.24:8001/Scripts/jquery.signalR-2.2.2.min.js"></script>
         <script src="http://121.196.36.24:8001/SignalR/Hubs"></script>
        <script type="text/javascript" src="../../js/global.css"></script>
        <script type="text/javascript">
            var pushServer = "http://demo.dcloud.net.cn/push/?";
            var message = null;
            // 监听plusready事件
            document.addEventListener("plusready", function() {
                message = document.getElementById("message");
                // 监听点击消息事件
                plus.push.addEventListener("click", function(msg) {
                    // 判断是从本地创建还是离线推送的消息
                    switch (msg.payload) {
                        case "LocalMSG":
                            outSet("点击本地创建消息启动:");
                            break;
                        default:
                            outSet("点击离线推送消息启动:");
                            break;
                    }
                    // 提示点击的内容
                    plus.nativeUI.alert(msg.content);
                    // 处理其它数据
                    logoutPushMsg(msg);
                }, false);
                // 监听在线消息事件
                plus.push.addEventListener("receive", function(msg) {
                    if (msg.aps) { // Apple APNS message
                        outSet("接收到在线APNS消息:");
                    } else {
                        outSet("接收到在线透传消息:");
                    }
                    logoutPushMsg(msg);
                }, false);
            }, false);
            /**
             * 日志输入推送消息内容
             */
            function logoutPushMsg(msg) {
                outLine("title: " + msg.title);
                outLine("content: " + msg.content);
                if (msg.payload) {
                    if (typeof(msg.payload) == "string") {
                        outLine("payload(String): " + msg.payload);
                    } else {
                        outLine("payload(JSON): " + JSON.stringify(msg.payload));
                    }
                } else {
                    outLine("payload: undefined");
                }
                if (msg.aps) {
                    outLine("aps: " + JSON.stringify(msg.aps));
                }
            }
            /**
             * 获取本地推送标识信息
             */
            function getPushInfo() {
                outSet("获取客户端推送标识信息:");
                plus.push.getClientInfoAsync(function(info) {
                    outLine('Success');
                    outLine(JSON.stringify(info));
                }, function(e) {
                    outLine('Failed');
                    outLine(JSON.stringify(e));
                });
            }
            /**
             * 本地创建一条推动消息
             */
            function createLocalPushMsg(msg) {
                var cont = $('#cont').val();
                var options = {
                    cover: false
                };
                plus.push.createMessage(msg, "LocalMSG", options);
                outSet("创建本地消息成功!");
                outLine("请到系统消息中心查看!");
                if (plus.os.name == "iOS") {
                    outLine('*如果无法创建消息,请到"设置"->"通知"中配置应用在通知中心显示!');
                }
            }
            /**
             * 读取所有推送消息
             */
            function listAllPush() {
                var msgs = null;
                switch (plus.os.name) {
                    case "Android":
                        msgs = plus.push.getAllMessage();
                        break;
                    default:
                        break;
                }
                if (!msgs) {
                    outSet("此平台不支持枚举推送消息列表!");
                    return;
                }
                outSet("枚举消息列表(" + msgs.length + "):");
                for (var i in msgs) {
                    var msg = msgs[i];
                    outLine(i + ": " + msg.title + " - " + msg.content);
                }
            }
            /**
             * 清空所有推动消息
             */
            function clearAllPush() {
                plus.push.clear();
                outSet("清空所有推送消息成功!");
            }
            $(function() {
                //前端Hub的使用,注意的是,Hub的名字是ChatHub,这里使用时首字母小写
                // var work = $.connection.chatHub;
                var work = $.connection.chatHub;
                //对应后端的SendMessage函数,消息接收函数
                work.client.sendMessage = function(msg) {
                    console.log(msg,1)
                    createLocalPushMsg(msg)
                };
                //后端SendLogin调用后,产生的loginUser回调
                work.client.loginUser = function(userlist) {
                    // console.log(userlist, 9)
                    // reloadUser(userlist);
                };
                $.connection.hub.url = 'http://121.196.36.24:8001/signalr'
                //hub连接开启
                $.connection.hub.start().done(function() {
                    var username = localStorage.getItem('username');
                    //发送上线信息
                    work.server.sendLogin(username);
                    // const aaa = [{
                    //     "code": "Q",
                    //     "name": "呼叫质量",
                    //     "children": [{
                    //         "usercode": "999",
                    //         "username": "楼先生"
                    //     }]
                    // }]
                    // work.server.sendByGroupList('楼先生', 'CJ002', 'SB001', aaa)
                });
            });
            //重新加载用户列表
            // var reloadUser = function() {
            //     $("#username").empty();
            //     for (i = 0; i < 5; i++) {
            //         $("#username").append("<option value=" + i + ">" + i + "</option>");
            //     }
            // }
        </script>
    </head>
    <body>
@@ -77,34 +249,36 @@
                </van-nav-bar>
                <van-pull-refresh v-model="isLoading" @refresh="onRefresh">
                    <van-swipe :autoplay="3000">
                        <van-swipe-item v-for="(image, index) in images" :key="index">
                            <img v-lazy="image" :src='image' style="background-size: 100% 100%;width: 100%;" />
                        </van-swipe-item>
                    </van-swipe>
                <van-swipe :autoplay="3000">
                    <van-swipe-item v-for="(image, index) in images" :key="index">
                        <img v-lazy="image" :src='image' style="background-size: 100% 100%;width: 100%;" />
                    </van-swipe-item>
                </van-swipe>
                <van-grid :gutter="20" :border='false' square :column-num="3" style="margin: 30px auto 0; width: 90%;">
                    <van-grid-item v-for="item in firstMenu" @click='vanGridItem(item)' :key="item" :text="item.name">
                        <img :src="item.imgurl" alt=""
                            style="width: 56px;height:56px;margin-top: 10px;border-radius: 10px;">
                        <div style="margin-top: 5px;font-size: 14px;color: #929399;">{{item.name}}</div>
                    </van-grid-item>
                </van-grid>
                <van-action-sheet lazy-render :closeable='false' close-on-click-action close-on-click-overlay
                    safe-area-inset-bottom v-model="sheetShow" :title="firstMenuName">
                    <van-grid :border='false' :gutter="5" square :column-num="3" style="width: 80%; margin: auto;">
                        <van-grid-item v-for="item in secondMenu" @click='vanGridSecondItem(item)' :key="item"
                            icon="photo-o">
                    <van-grid :gutter="20" :border='false' square :column-num="3"
                        style="margin: 30px auto 0; width: 90%;">
                        <van-grid-item v-for="item in firstMenu" @click='vanGridItem(item)' :key="item"
                            :text="item.name">
                            <img :src="item.imgurl" alt=""
                                style="width: 48px;height:48px;margin-top: 10px;border-radius: 10px;">
                            <div style="margin-top: 5px;font-size: 12px;color: #929399;">{{item.name}}</div>
                                style="width: 56px;height:56px;margin-top: 10px;border-radius: 10px;">
                            <div style="margin-top: 5px;font-size: 14px;color: #929399;">{{item.name}}</div>
                        </van-grid-item>
                    </van-grid>
                </van-action-sheet>
            </div>
                    <van-action-sheet lazy-render :closeable='false' close-on-click-action close-on-click-overlay
                        safe-area-inset-bottom v-model="sheetShow" :title="firstMenuName">
                        <van-grid :border='false' :gutter="5" square :column-num="3" style="width: 80%; margin: auto;">
                            <van-grid-item v-for="item in secondMenu" @click='vanGridSecondItem(item)' :key="item"
                                icon="photo-o">
                                <img :src="item.imgurl" alt=""
                                    style="width: 48px;height:48px;margin-top: 10px;border-radius: 10px;">
                                <div style="margin-top: 5px;font-size: 12px;color: #929399;">{{item.name}}</div>
                            </van-grid-item>
                        </van-grid>
                    </van-action-sheet>
            </div>
            </van-pull-refresh>
            <van-overlay :show="overlayShow" @click="overlayShow=false" />
@@ -116,6 +290,7 @@
            el: '#app',
            data: function() {
                return {
                    isLoading: false, //下拉刷新
                    images: [
                        '../../static/images/swiper01.png',
                        '../../static/images/swiper02.png',
@@ -149,23 +324,39 @@
            },
            mounted() {
                this.getfirstMenu()
                this.getLoginAppAnDonMessage()
                setInterval(()=>{
                    this.getLoginAppAnDonMessage()
                },1000*10)
            },
            methods: {
                onRefresh() {
                    setTimeout(() => {
                        vant.Toast('刷新成功');
                        this.getfirstMenu()
                        this.getLoginAppAnDonMessage()
                        // vant.Notify('刷新成功');
                        this.isLoading = false;
                    }, 1000);
                },
                // 获取消息接口
            async    getLoginAppAnDonMessage(){
                    const data={
                        userid:localStorage.getItem('userid'),
                        usercode:localStorage.getItem('usercode'),
                        username:localStorage.getItem('username'),
                        usertype:localStorage.getItem('usertype'),
                async getLoginAppAnDonMessage() {
                    const data = {
                        userid: localStorage.getItem('userid'),
                        usercode: localStorage.getItem('usercode'),
                        username: localStorage.getItem('username'),
                        usertype: localStorage.getItem('usertype'),
                    }
                    const res=await post('Login/LoginAppAnDonMessage'+formatParams(data))
                    this.messageNumber=res.data.length
                    const res = await post('Login/LoginAppAnDonMessage' + formatParams(data))
                    this.messageNumber = res.data.length
                    // this.messageNumber=9
                },
                // 获取一级菜单
                async getfirstMenu() {
                    const data = {
unpackage/cache/apk/H5EDA0853_cm.apk
Binary files differ
unpackage/cache/apk/apkurl
@@ -1 +1 @@
https://ide.dcloud.net.cn/build/download/b2baf5d0-4f91-11ed-8725-993b1768ad7b
https://ide.dcloud.net.cn/build/download/98ecbf50-504e-11ed-9fdb-07a931acdbf6
unpackage/cache/apk/cmManifestCache.json
@@ -1 +1 @@
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
unpackage/cache/wgt/H5EDA0853/pages/adgl/adhj.html
@@ -20,6 +20,7 @@
        <script type="text/javascript" src="../../js/common.js"></script>
        <script type="text/javascript" src="../../js/global.js"></script>
        <script src="http://121.196.36.24:8001/Scripts/jquery-3.4.1.min.js"></script>
        <script src="http://121.196.36.24:8001/Scripts/jquery.signalR-2.2.2.min.js"></script>
        <script src="http://121.196.36.24:8001/SignalR/Hubs"></script>
@@ -27,7 +28,50 @@
        <script type="text/javascript">
            var pushServer = "http://demo.dcloud.net.cn/push/?";
            var message = null;
            var message2 = null;
            let topContent = [
                // {
                //     code: 'SB001',
                //     name: '电池组一线',
                //     wksp_code: "CJ002",
                //     wksp_name: '电池车间',
                //     "eqpchkmain_code": "djbz002"
                // },
                // {
                //     code: 'SB003',
                //     name: '齿轮箱组一线',
                //     wksp_code: "CJ001",
                //     "wksp_name": "装配车间",
                //     "eqpchkmain_code": "djbz002"
                // },
                // {
                //     code: 'SB004',
                //     name: '齿轮箱组一线',
                //     wksp_code: "CJ001",
                //     "wksp_name": "装配车间",
                //     "eqpchkmain_code": "djbz002"
                // },
                // {
                //     code: 'SB005',
                //     name: '齿轮箱组一线',
                //     wksp_code: "CJ001",
                //     "wksp_name": "装配车间",
                //     "eqpchkmain_code": "djbz002"
                // },
            ];
            var submitIsDisabled = false; //提交按钮是否disabled
            let radioValue = '' //单选框选中的项
            let centerContent = [] //中间部分内容
            let falseArray = [] // 假数组   做扫码回来视图更新用
            var currentValue = []; //当前工位下调用呼叫类型接口   flag已是Y的值进行存储
            // 监听plusready事件  
            document.addEventListener("plusready", function() {
@@ -137,19 +181,23 @@
                outSet("清空所有推送消息成功!");
            }
            $(function() {
                //前端Hub的使用,注意的是,Hub的名字是ChatHub,这里使用时首字母小写
                var work = $.connection.chatHub;
                //对应后端的SendMessage函数,消息接收函数
                // console.log(work.client.sendMessage)
                work.client.sendMessage = function(msg) {
                    console.log(msg)
                    // createLocalPushMsg(msg)
                    console.log(msg, 1)
                    createLocalPushMsg(msg)
                };
                //后端SendLogin调用后,产生的loginUser回调
                work.client.loginUser = function(userlist) {
                    console.log(userlist, 9)
                    // console.log(userlist, 9)
                    // reloadUser(userlist);
                };
@@ -162,9 +210,7 @@
                    //发送上线信息
                    work.server.sendLogin(username);
                    // const data = [{
                    // const aaa = [{
                    //     "code": "Q",
                    //     "name": "呼叫质量",
                    //     "children": [{
@@ -173,59 +219,62 @@
                    //     }]
                    // }]
                    // work.server.sendByGroupList('楼先生', 'CJ002', 'SB001', data)
                    // work.server.sendByGroupList('楼先生', 'CJ002', 'SB001', aaa)
                    $('#submit').click(function() {
                        // const data = [{
                        //     "code": "Q",
                        //     "name": "呼叫质量",
                        //     "children": [{
                        //         "usercode": "999",
                        //         "username": "楼先生"
                        //     }]
                        // }]
                        // console.log(1)
                        const data = {
                            username: localStorage.getItem('username'),
                            eqpcode: topContent.find(i => i.code === radioValue).code,
                            wkshpcode: topContent.find(i => i.code === radioValue).wksp_code
                        }
                        // vant.Notify('点击了')
                        // const data = {
                        //     username: localStorage.getItem('username'),
                        //     eqpcode: topContent.find(i => i.code === radioValue).code,
                        //     wkshpcode: topContent.find(i => i.code === radioValue).wksp_code
                        // }
                        const DATA = []
                        centerContent.forEach(i => {
                            if (i.isTrue) {
                            if (i.isTrue && !currentValue.includes(i.code)) {
                                i.flag = i.isTrue ? 'Y' : 'N'
                                DATA.push(i)
                            }
                        })
                        work.server.sendByGroupList(
                            localStorage.getItem('username'),
                            topContent.find(i => i.code === radioValue).wksp_code,
                            topContent.find(i => i.code === radioValue).code,
                            DATA
                        )
                        // submitIsDisabled = true
                        // falseArray.push({
                        //     id: '1'
                        // })
                        // console.log(data, DATA)
                        // post('AppDeviceManage/AppDeviceAnDengCallSave' + formatParams(data), DATA).then(
                        //     res => {
                        //         if (res.code === '200') {
                        //             vant.Notify({
                        //                 type: 'primary',
                        //                 message: '提交成功!'
                        //             })
                        //             topContent.forEach((r, i) => {
                        //                 if (r.code === radioValue) {
                        //                     topContent.splice(i, 1)
                        //                 }
                        //             })
                        //             if (topContent.length >= 1) {
                        //                 radioValue = topContent[0].code
                        //                 topContentClick(radioValue, topContent.find(i => i.code ===
                        //                     radioValue).wksp_code)
                        //             }
                        work.server.sendByGroupList(localStorage.getItem('username'), topContent.find(i => i.code === radioValue).wksp_code,  topContent.find(i => i.code === radioValue).code, DATA)
                        post('AppDeviceManage/AppDeviceAnDengCallSave' + formatParams(data), DATA).then(res => {
                            if (res.code === '200') {
                                vant.Notify.primary('提交成功!')
                                topContent.forEach((r, i) => {
                                    if (r.code === radioValue) {
                                        topContent.splice(i, 1)
                                    }
                                })
                                if (topContent.length >= 1) {
                                    radioValue = topContent[0].code
                                    this.topContentClcik(radioValue)
                                }
                                this.submitIsDisabled = false
                                this.$forceUpdate()
                            }
                        })
                        //             // submitIsDisabled = false
                        //             falseArray.push({
                        //                 id: '1'
                        //             })
                        //         }
                        //     })
                    })
                });
            });
            //重新加载用户列表
@@ -234,76 +283,43 @@
            //     for (i = 0; i < 5; i++) {
            //         $("#username").append("<option value=" + i + ">" + i + "</option>");
            //     }
            // }
        </script>
            // }
        <script type="text/javascript">
            let topContent = [{
                    code: 'SB001',
                    name: '电池组一线',
                    wksp_code: "CJ002",
                    wksp_name: '电池车间',
                    "eqpchkmain_code": "djbz002"
                },
                {
                    code: 'SB003',
                    name: '齿轮箱组一线',
                    wksp_code: "CJ001",
                    "wksp_name": "装配车间",
                    "eqpchkmain_code": "djbz002"
                },
                {
                    code: 'SB004',
                    name: '齿轮箱组一线',
                    wksp_code: "CJ001",
                    "wksp_name": "装配车间",
                    "eqpchkmain_code": "djbz002"
                },
                // {
                //     code: 'SB005',
                //     name: '齿轮箱组一线',
                //     wksp_code: "CJ001",
                //     "wksp_name": "装配车间",
                //     "eqpchkmain_code": "djbz002"
                // },
            ];
            let radioValue = 'SB001' //单选框选中的项
            let centerContent = [] //中间部分内容
            let falseArray = [] // 假数组   做扫码回来视图更新用
            // 扫描保养工位返回时执行方法
            // 扫描工位返回时执行方法
            function scaned(r) {
                radioValue = r
                let temp = {}
                let flag = false
                var temp = {}
                var flag = 0
                if (topContent.find(i => i.code === radioValue)) {
                if (topContent.find(i => i.code === r)) {
                    topContent.forEach((item, index) => {
                        if (item.code === radioValue) {
                        if (item.code === r) {
                            temp = item
                            topContent.splice(index, 1)
                            flag = true
                            flag = 1
                        }
                    })
                }
                if (flag) { //对已在列表的数据   排序到第一个去
                if (flag === 1) { //对已在列表的数据   排序到第一个去
                    topContent.unshift(temp)
                    topScanClick(radioValue)
                    centerContentClick(radioValue, topContent.find(i => i.code === radioValue).wksp_code)
                    topContentClick(r, topContent.find(i => i.code === r).wksp_code)
                    falseArray.push({
                        id: '1'
                    })
                } else { //未在列表的数据  进行新增操作
                    topScanClick(radioValue)
                    centerContentClick(radioValue, topContent.find(i => i.code === radioValue).wksp_code)
                    topScanClick(r)
                    falseArray.push({
                        id: '1'
                    })
                }
                falseArray.push({
                    id: '1'
                })
            }
@@ -311,6 +327,7 @@
                post('AppDeviceManage/AppDeviceAnDengCallScanSearch?eqpcode=' + code).then(res => {
                    if (res.code === '200') {
                        topContent.unshift(res.data[0])
                        topContentClick(code, topContent.find(i => i.code === code).wksp_code)
                        falseArray.push({
                            id: '1'
                        })
@@ -319,7 +336,8 @@
                })
            }
            function centerContentClick(code, wksp_code) {
            function topContentClick(code, wksp_code) {
                radioValue = code
                const data = {
                    eqpcode: code,
                    wkshpcode: wksp_code
@@ -327,6 +345,22 @@
                post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                    if (res.code === '200') {
                        centerContent = res.data
                        currentValue = centerContent.map(r => {
                            if (r.flag === 'Y') {
                                return r.code
                            }
                        })
                        centerContent.forEach(i => {
                            i.isTrue = i.flag === 'Y'
                        })
                        // vant.Notify({
                        //     type: 'danger',
                        //     message: res.Message + centerContent.length
                        // });
                        falseArray.push({
                            id: '1'
                        })
@@ -336,7 +370,8 @@
        </script>
    </head>
    <body>
    <body onload="scaned('SB001')">
        <!-- <body> -->
        <div id="app">
            <div class="body">
@@ -353,7 +388,6 @@
                        </template>
                    </van-nav-bar>
                </van-sticky>
                <div v-if="topContent.length===0">
                    <div class="sacnBody">
@@ -384,7 +418,7 @@
                        <van-radio-group v-model="radioValue">
                            <van-cell-group>
                                <div style="margin: 10px 0;" v-for="(item,index) in topContent" :key="item.eqpcode"
                                    @click="topContentClcik(item.code,item.wksp_code)">
                                    @click="topContentClick(item.code,item.wksp_code)">
                                    <div class="cellDiv">工位编码:{{item.code}}</div>
                                    <van-cell :title="'工位名称:'+item.name">
                                        <template #right-icon>
@@ -400,7 +434,7 @@
                    </div>
                    <div class="head" style="min-height: 100px;max-height: 260px; overflow: scroll;">
                    <div class="head" style="min-height: 100px; ">
                        <div class="head_block">
                            <div class="head_left">
                                <div class="head_bar"></div>
@@ -418,8 +452,9 @@
                            <div style="display: flex;justify-content: space-between;align-items: center;">
                                <div style="margin-left: 10px;">{{item.name}}</div>
                                <div style="margin-right: 10px;">
                                    <van-switch size="24" v-model="item.isTrue" @change='val=>switchChange(val,item)'
                                        active-color="#ee0a24" inactive-color="#dcdee0" />
                                    <van-switch :disabled="item.flag==='Y'" size="24" v-model="item.isTrue"
                                        @change='val=>switchChange(val,item)' active-color="#ee0a24"
                                        inactive-color="#dcdee0" />
                                </div>
                            </div>
                        </div>
@@ -429,8 +464,8 @@
                    <div
                        style="position:fixed;bottom: 0;width: 96%;margin-left:2%; flex;justify-content: center;flex-direction: column;align-items: center">
                        <van-button id='submit' :load='submitIsDisabled' load-text="正在提交,请稍等..." class="vanButtonInfo"
                            @click="submit" type="info">
                        <van-button id="submit" :loading='submitIsDisabled' loading-text="正在提交,请稍等..."
                            class="vanButtonInfo" @click='submit' type="info">
                            确认提交</van-button>
                    </div>
@@ -455,7 +490,7 @@
            el: '#app',
            data: function() {
                return {
                    submitIsDisabled: false,
                    overlayShow: false,
                    showPopover: false,
                    actions: [{
@@ -468,12 +503,20 @@
                        icon: 'revoke',
                        text: '退出登录'
                    }],
                    topContent2: topContent,
                    falseArray2: falseArray, //假数组
                }
            },
            watch: {
                'topContent2.length': {
                    handler(newValue, oldValue) {
                        if (newValue !== oldValue) {
                            this.$forceUpdate()
                        }
                    },
                    deep: true,
                    immediate: true,
                },
                'falseArray2.length': {
                    handler(newValue, oldValue) {
                        this.$forceUpdate()
@@ -486,85 +529,103 @@
            },
            mounted() {
                const data = {
                    eqpcode: 'SB001',
                    wkshpcode: 'CJ002'
                }
                post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                    if (res.code === '200') {
                        centerContent = res.data
                // const data = {
                //     eqpcode: 'SB001',
                //     wkshpcode: 'CJ002'
                // }
                // post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                //     if (res.code === '200') {
                //         centerContent = res.data
                        centerContent.forEach(i => {
                            i.isTrue = i.flag === 'Y'
                        })
                        falseArray.push({
                            id: '1'
                        })
                //         currentValue = centerContent.map(r => {
                //             if (r.flag === 'Y') {
                //                 return r.code
                //             }
                //         })
                //         centerContent.forEach(i => {
                //             i.isTrue = i.flag === 'Y'
                //         })
                //         this.$forceUpdate()
                    }
                })
                //     }
                // })
            },
            methods: {
                submit() {
                    // const data = {
                    //     username: localStorage.getItem('username'),
                    //     eqpcode: topContent.find(i => i.code === radioValue).code,
                    //     wkshpcode: topContent.find(i => i.code === radioValue).wksp_code
                    // }
                    // const DATA = []
                    // centerContent.forEach(i => {
                    //     if (i.isTrue) {
                    //         i.flag = i.isTrue ? 'Y' : 'N'
                    //         DATA.push(i)
                    //     }
                    // })
                    // console.log(data, DATA)
                    // post('AppDeviceManage/AppDeviceAnDengCallSave' + formatParams(data), DATA).then(res => {
                    //     if (res.code === '200') {
                    //         vant.Notify.primary('提交成功!')
                    //         topContent.forEach((r, i) => {
                    //             if (r.code === radioValue) {
                    //                 topContent.splice(i, 1)
                    //             }
                    //         })
                    //         if (topContent.length >= 1) {
                    //             radioValue = topContent[0].code
                    //             this.topContentClcik(radioValue)
                    //         }
                    //         this.submitIsDisabled = false
                    //         this.$forceUpdate()
                    //     }
                    // })
                },
                switchChange(val, item) {
                    console.log(val, item)
                    this.$forceUpdate()
                },
                topContentClcik(code, wksp_code) {
                    radioValue = code
                    this.$forceUpdate()
                    const data = {
                        eqpcode: code,
                        wkshpcode: wksp_code
                    }
                    post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                        if (res.code === '200') {
                            centerContent = res.data
                            falseArray.push({
                                id: '1'
                            })
                submit() {
                    setTimeout(() => {
                        const data = {
                            username: localStorage.getItem('username'),
                            eqpcode: topContent.find(i => i.code === radioValue).code,
                            wkshpcode: topContent.find(i => i.code === radioValue).wksp_code
                        }
                    })
                        const DATA = []
                        centerContent.forEach(i => {
                            if (i.isTrue && !currentValue.includes(i.code)) {
                                i.flag = i.isTrue ? 'Y' : 'N'
                                DATA.push(i)
                            }
                        })
                        submitIsDisabled = true
                        // falseArray.push({
                        //     id: '1'
                        // })
                        this.$forceUpdate()
                        post('AppDeviceManage/AppDeviceAnDengCallSave' + formatParams(data), DATA).then(
                            res => {
                                if (res.code === '200') {
                                    vant.Notify({
                                        type: 'primary',
                                        message: '提交成功!'
                                    })
                                    topContent.forEach((r, i) => {
                                        if (r.code === radioValue) {
                                            topContent.splice(i, 1)
                                        }
                                    })
                                    if (topContent.length >= 1) {
                                        radioValue = topContent[0].code
                                        topContentClick(radioValue, topContent.find(i => i.code ===
                                            radioValue).wksp_code)
                                    }
                                    submitIsDisabled = false
                                    this.$forceUpdate()
                                }
                            })
                    }, 100)
                },
                // topContentClick(code, wksp_code) {
                //     radioValue = code
                //     this.$forceUpdate()
                //     const data = {
                //         eqpcode: code,
                //         wkshpcode: wksp_code
                //     }
                //     post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                //         if (res.code === '200') {
                //             centerContent = res.data
                //             currentValue = centerContent.map(r => {
                //                 if (r.flag === 'Y') {
                //                     return r.code
                //                 }
                //             })
                //             centerContent.forEach(i => {
                //                 i.isTrue = i.flag === 'Y'
                //             })
                //             this.$forceUpdate()
                //         }
                //     })
                // },
                topScanClick() {
unpackage/cache/wgt/H5EDA0853/pages/adgl/adxy.html
@@ -17,18 +17,117 @@
        <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 src="http://121.196.36.24:8001/Scripts/jquery-3.4.1.min.js"></script>
        <script src="http://121.196.36.24:8001/Scripts/jquery.signalR-2.2.2.min.js"></script>
        <script src="http://121.196.36.24:8001/SignalR/Hubs"></script>
 -->
        <script type="text/javascript">
            let topContent = [{
                    code: 'SB001',
                    name: '电池组一线',
                    wksp_code: "CJ002",
                    wksp_name: '电池车间',
                    "eqpchkmain_code": "djbz002"
                },
                {
                    code: 'SB003',
                    name: '齿轮箱组一线',
                    wksp_code: "CJ001",
                    "wksp_name": "装配车间",
                    "eqpchkmain_code": "djbz002"
                },
                {
                    code: 'SB004',
                    name: '齿轮箱组一线',
                    wksp_code: "CJ001",
                    "wksp_name": "装配车间",
                    "eqpchkmain_code": "djbz002"
                },
                // {
                //     code: 'SB005',
                //     name: '齿轮箱组一线',
                //     wksp_code: "CJ001",
                //     "wksp_name": "装配车间",
                //     "eqpchkmain_code": "djbz002"
                // },
            ];
            let radioValue = 'SB001' //单选框选中的项
            let centerContent = [] //中间部分内容
            let falseArray = [] // 假数组   做扫码回来视图更新用
            // 扫描保养工位返回时执行方法
            function scaned(r) {
                radioValue = r
                let temp = {}
                let flag = false
                if (topContent.find(i => i.code === radioValue)) {
                    topContent.forEach((item, index) => {
                        if (item.code === radioValue) {
                            temp = item
                            topContent.splice(index, 1)
                            flag = true
                        }
                    })
                }
                if (flag) { //对已在列表的数据   排序到第一个去
                    topContent.unshift(temp)
                    topScanClick(radioValue)
                    topContentClick(radioValue, topContent.find(i => i.code === radioValue).wksp_code)
                } else { //未在列表的数据  进行新增操作
                    topScanClick(radioValue)
                    topContentClick(radioValue, topContent.find(i => i.code === radioValue).wksp_code)
                }
                falseArray.push({
                    id: '1'
                })
            }
            function topScanClick(code) {
                post('AppDeviceManage/AppDeviceAnDengLampResponseScanSearch?eqpcode=' + code).then(res => {
                    if (res.code === '200') {
                        topContent.unshift(res.data[0])
                        falseArray.push({
                            id: '1'
                        })
                    }
                })
            }
            function topContentClick(code, wksp_code) {
                const data = {
                    eqpcode: code,
                    wkshpcode: wksp_code
                }
                post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                    if (res.code === '200') {
                        centerContent = res.data
                        falseArray.push({
                            id: '1'
                        })
                    }
                })
            }
        </script>
    </head>
    <body>
        <div id="app">
            <div class="body">
                <van-sticky>
                    <van-nav-bar title="安灯响应" @click-right="onClickRight" left-arrow @click-left="onClickleft">
                        <template #right>
@@ -42,10 +141,98 @@
                    </van-nav-bar>
                </van-sticky>
                <div v-if="topContent.length===0">
                    <div class="sacnBody">
                        <div class="scanImg" @click="topScanClick()"></div>
                        <div class="scanText">扫描工位</div>
                    </div>
                </div>
                <div v-else>
                    <div class="head" style="min-height: 100px;max-height: 260px; overflow: scroll;">
                        <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>
                        <van-radio-group v-model="radioValue" id="topContent">
                            <van-cell-group>
                                <div style="margin: 10px 0;" v-for="(item,index) in topContent" :key="item.eqpcode"
                                    @click="topContentClick(item.code,item.wksp_code)">
                                    <div class="cellDiv">工位编码:{{item.code}}</div>
                                    <van-cell :title="'工位名称:'+item.name">
                                        <template #right-icon>
                                            <van-radio style="margin-right: 10px;" checked-color='red'
                                                :name="item.code" />
                                        </template>
                                    </van-cell>
                                    <div class="cellDiv">生产车间:{{item.wksp_name}}</div>
                                </div>
                            </van-cell-group>
                        </van-radio-group>
                    </div>
                    <div class="head" style="min-height: 100px;max-height: 260px; overflow: scroll;">
                        <div class="head_block">
                            <div class="head_left">
                                <div class="head_bar"></div>
                                <div class="head_title">
                                    选择响应类型
                                </div>
                            </div>
                        </div>
                        <div style="padding: 10px;display: flex;flex-direction: column"
                            v-for="(item,index) in centerContent">
                            <div style="display: flex;justify-content: space-between;align-items: center;">
                                <div style="margin-left: 10px;">{{item.name}}</div>
                                <div style="margin-right: 10px;">
                                    <van-switch size="24" v-model="item.isTrue" @change='val=>switchChange(val,item)'
                                        active-color="#ee0a24" inactive-color="#dcdee0" />
                                </div>
                            </div>
                        </div>
                    </div>
                    <div
                        style="position:fixed;bottom: 0;width: 96%;margin-left:2%; flex;justify-content: center;flex-direction: column;align-items: center">
                        <van-button id='submit' :loading='submitIsDisabled' loading-text="正在提交,请稍等..."
                            class="vanButtonInfo" @click="submit" type="info">
                            确认提交</van-button>
                    </div>
                </div>
            </div>
            <van-overlay :show="overlayShow" @click="overlayShow=false" />
        </div>
        <van-overlay :show="overlayShow" @click="overlayShow=false" />
        </div>
@@ -55,6 +242,7 @@
            el: '#app',
            data: function() {
                return {
                    submitIsDisabled: false,
                    overlayShow: false,
                    showPopover: false,
                    actions: [{
@@ -67,16 +255,133 @@
                        icon: 'revoke',
                        text: '退出登录'
                    }],
                    falseArray2: falseArray, //假数组
                }
            },
            watch: {
                'falseArray2.length': {
                    handler(newValue, oldValue) {
                        this.$forceUpdate()
                    },
                    deep: true,
                    immediate: true,
                },
            },
            created() {
            },
            mounted() {
                const data = {
                    eqpcode: 'SB001',
                    wkshpcode: 'CJ002'
                }
                post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                    if (res.code === '200') {
                        centerContent = res.data
                        centerContent.forEach(i => {
                            i.isTrue = i.flag === 'Y'
                        })
                        falseArray.push({
                            id: '1'
                        })
                    }
                })
            },
            methods: {
                submit() {
                    const data = {
                        username: localStorage.getItem('username'),
                        eqpcode: topContent.find(i => i.code === radioValue).code,
                        wkshpcode: topContent.find(i => i.code === radioValue).wksp_code
                    }
                    const DATA = []
                    centerContent.forEach(i => {
                        if (i.isTrue) {
                            i.flag = i.isTrue ? 'Y' : 'N'
                            DATA.push(i)
                        }
                    })
                    console.log(data, DATA)
                    this.submitIsDisabled = true
                    post('AppDeviceManage/AppDeviceAnDengLampResponseSave' + formatParams(data), DATA).then(
                        res => {
                            if (res.code === '200') {
                                vant.Notify({
                                    type: 'primary',
                                    message: '提交成功!'
                                })
                                topContent.forEach((r, i) => {
                                    if (r.code === radioValue) {
                                        topContent.splice(i, 1)
                                    }
                                })
                                if (topContent.length >= 1) {
                                    radioValue = topContent[0].code
                                    this.topContentClick(radioValue)
                                }
                                this.submitIsDisabled = false
                                this.$forceUpdate()
                            }
                        })
                },
                switchChange(val, item) {
                    console.log(val, item)
                    this.$forceUpdate()
                },
                topContentClick(code, wksp_code) {
                    // radioValue = code
                    // this.$forceUpdate()
                    // const data = {
                    //     eqpcode: code,
                    //     wkshpcode: wksp_code
                    // }
                    // post('AppDeviceManage/AppDeviceAnDengCallItemSearch' + formatParams(data)).then(res => {
                    //     if (res.code === '200') {
                    //         centerContent = res.data
                    //         falseArray.push({
                    //             id: '1'
                    //         })
                    //     }
                    // })
                },
                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()
                },
@@ -98,5 +403,9 @@
    </script>
    <style type="text/css">
        @import url('../../css/global.css');
        .van-hairline--top-bottom {
            position: static;
        }
    </style>
</html>
unpackage/cache/wgt/H5EDA0853/pages/login/index.html
@@ -51,7 +51,7 @@
                    </div>
                    <div style="margin-top:30px;">
                        <van-button type="info" style="border-radius: 10px;" :disabled="username===''||password===''"
                            @click='loginClick' size="large">立即登录
                            @click='loginClick' :loading='submitIsDisabled' loading-text="正在登录,请稍等..." size="large">立即登录
                        </van-button>
                    </div>
                </div>
@@ -65,6 +65,7 @@
            el: '#app',
            data: function() {
                return {
                    submitIsDisabled: false,
                    username: '999',
                    password: '123',
                    isOpenEye: false,
@@ -83,7 +84,7 @@
                        password: this.password,
                        usertype: 'APP'
                    }
                    this.submitIsDisabled = true
                    get('Login/LoginSave', data).then(res => {
                        if (res.code === '200') {
                            // window.location.reload()   //页面重新
@@ -97,6 +98,8 @@
                                localStorage.setItem('usertype', res.data.usertype)
                            }
                            window.location.href = '../xtsy/index.html'
                        } else {
                            this.submitIsDisabled = false
                        }
                        if (res.code === '302') {
unpackage/cache/wgt/H5EDA0853/pages/other/wdxx.html
@@ -39,7 +39,17 @@
                    </van-nav-bar>
                </van-sticky>
                <div class="head">
                <div v-if="messageArr.length===0">
                    <div class="sacnBody">
                        <div class="box">
                            <div class="boxImg"></div>
                        </div>
                        <div class="scanText">暂无消息</div>
                    </div>
                </div>
                <div v-else class="head">
                    <div class="head_block">
                        <div class="head_left">
                            <div class="head_bar"></div>
@@ -55,11 +65,11 @@
                            <div slot="finish-icon">
                                <div class="messageIndex">{{index+1}}</div>
                            </div>
                            <div style="margin-left: 5px;">工位名称:{{item.gwmc}}</div>
                            <div style="margin-left: 5px;">生产车间:{{item.sccj}}</div>
                            <div style="margin-left: 5px;">呼叫类型:{{item.hjlx}}</div>
                            <div style="margin-left: 5px;">发起人员:{{item.fqry}}</div>
                            <div style="margin-left: 5px;">发起时间:{{item.fqsj}}</div>
                            <div style="margin-left: 5px;">工位名称:{{item.eqp_name}}</div>
                            <div style="margin-left: 5px;">生产车间:{{item.wkshp_name}}</div>
                            <div style="margin-left: 5px;">呼叫类型:{{item.typename}}</div>
                            <div style="margin-left: 5px;">发起人员:{{item.start_user}}</div>
                            <div style="margin-left: 5px;">发起时间:{{item.start_date}}</div>
                        </van-step>
                    </van-steps>
                </div>
@@ -93,83 +103,7 @@
                            text: '退出登录'
                        },
                    ],
                    messageArr: [{
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                        {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                    {
                        gwmc: '机加01工位',
                        sccj: '机加车间',
                        hjlx: '呼叫设备',
                        fqry: '张三',
                        fqsj: '2022-10-10 11:12:12'
                    },    {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },    {
                            gwmc: '机加01工位',
                            sccj: '机加车间',
                            hjlx: '呼叫设备',
                            fqry: '张三',
                            fqsj: '2022-10-10 11:12:12'
                        },
                    ]
                    messageArr: []
                }
@@ -178,9 +112,20 @@
            },
            mounted() {
                this.getLoginAppAnDonMessage()
            },
            methods: {
            async    getLoginAppAnDonMessage() {
                    const data = {
                        userid: localStorage.getItem('userid'),
                        usercode: localStorage.getItem('usercode'),
                        username: localStorage.getItem('username'),
                        usertype: localStorage.getItem('usertype'),
                    }
                    const res = await post('Login/LoginAppAnDonMessage' + formatParams(data))
                    this.messageArr = res.data
                },
                onClickleft() {
                    history.back()
                },
unpackage/cache/wgt/H5EDA0853/pages/sbgl/dqby.html
@@ -321,7 +321,7 @@
                        <div
                            style="position:fixed;bottom: 0;width: 96%;display: flex;justify-content: center;flex-direction: column;align-items: center">
                            <van-button :load='submitIsDisabled' load-text="正在提交,请稍等..." class="vanButtonInfo"
                            <van-button  :loading='submitIsDisabled' loading-text="正在提交,请稍等..." class="vanButtonInfo"
                                :disabled="resultValue===''" @click="submit" type="info">
                                确认提交</van-button>
                        </div>
unpackage/cache/wgt/H5EDA0853/pages/sbgl/rcdj.html
@@ -300,7 +300,7 @@
                        <div
                            style="position:fixed;bottom: 0;width: 96%;display: flex;justify-content: center;flex-direction: column;align-items: center">
                            <van-button :load='submitIsDisabled' load-text="正在提交,请稍等..." class="vanButtonInfo"
                            <van-button :loading='submitIsDisabled' loading-text="正在提交,请稍等..." class="vanButtonInfo"
                                :disabled="resultValue===''" @click="submit" type="info">
                                确认提交</van-button>
                        </div>
unpackage/cache/wgt/H5EDA0853/pages/xtsy/index.html
@@ -20,8 +20,180 @@
        <script type="text/javascript" src="../../js/http.js"></script>
        <script type="text/javascript" src="../../js/global.js"></script>
         <script src="http://121.196.36.24:8001/Scripts/jquery-3.4.1.min.js"></script>
         <script src="http://121.196.36.24:8001/Scripts/jquery.signalR-2.2.2.min.js"></script>
         <script src="http://121.196.36.24:8001/SignalR/Hubs"></script>
        <script type="text/javascript" src="../../js/global.css"></script>
        <script type="text/javascript">
            var pushServer = "http://demo.dcloud.net.cn/push/?";
            var message = null;
            // 监听plusready事件
            document.addEventListener("plusready", function() {
                message = document.getElementById("message");
                // 监听点击消息事件
                plus.push.addEventListener("click", function(msg) {
                    // 判断是从本地创建还是离线推送的消息
                    switch (msg.payload) {
                        case "LocalMSG":
                            outSet("点击本地创建消息启动:");
                            break;
                        default:
                            outSet("点击离线推送消息启动:");
                            break;
                    }
                    // 提示点击的内容
                    plus.nativeUI.alert(msg.content);
                    // 处理其它数据
                    logoutPushMsg(msg);
                }, false);
                // 监听在线消息事件
                plus.push.addEventListener("receive", function(msg) {
                    if (msg.aps) { // Apple APNS message
                        outSet("接收到在线APNS消息:");
                    } else {
                        outSet("接收到在线透传消息:");
                    }
                    logoutPushMsg(msg);
                }, false);
            }, false);
            /**
             * 日志输入推送消息内容
             */
            function logoutPushMsg(msg) {
                outLine("title: " + msg.title);
                outLine("content: " + msg.content);
                if (msg.payload) {
                    if (typeof(msg.payload) == "string") {
                        outLine("payload(String): " + msg.payload);
                    } else {
                        outLine("payload(JSON): " + JSON.stringify(msg.payload));
                    }
                } else {
                    outLine("payload: undefined");
                }
                if (msg.aps) {
                    outLine("aps: " + JSON.stringify(msg.aps));
                }
            }
            /**
             * 获取本地推送标识信息
             */
            function getPushInfo() {
                outSet("获取客户端推送标识信息:");
                plus.push.getClientInfoAsync(function(info) {
                    outLine('Success');
                    outLine(JSON.stringify(info));
                }, function(e) {
                    outLine('Failed');
                    outLine(JSON.stringify(e));
                });
            }
            /**
             * 本地创建一条推动消息
             */
            function createLocalPushMsg(msg) {
                var cont = $('#cont').val();
                var options = {
                    cover: false
                };
                plus.push.createMessage(msg, "LocalMSG", options);
                outSet("创建本地消息成功!");
                outLine("请到系统消息中心查看!");
                if (plus.os.name == "iOS") {
                    outLine('*如果无法创建消息,请到"设置"->"通知"中配置应用在通知中心显示!');
                }
            }
            /**
             * 读取所有推送消息
             */
            function listAllPush() {
                var msgs = null;
                switch (plus.os.name) {
                    case "Android":
                        msgs = plus.push.getAllMessage();
                        break;
                    default:
                        break;
                }
                if (!msgs) {
                    outSet("此平台不支持枚举推送消息列表!");
                    return;
                }
                outSet("枚举消息列表(" + msgs.length + "):");
                for (var i in msgs) {
                    var msg = msgs[i];
                    outLine(i + ": " + msg.title + " - " + msg.content);
                }
            }
            /**
             * 清空所有推动消息
             */
            function clearAllPush() {
                plus.push.clear();
                outSet("清空所有推送消息成功!");
            }
            $(function() {
                //前端Hub的使用,注意的是,Hub的名字是ChatHub,这里使用时首字母小写
                // var work = $.connection.chatHub;
                var work = $.connection.chatHub;
                //对应后端的SendMessage函数,消息接收函数
                work.client.sendMessage = function(msg) {
                    console.log(msg,1)
                    createLocalPushMsg(msg)
                };
                //后端SendLogin调用后,产生的loginUser回调
                work.client.loginUser = function(userlist) {
                    // console.log(userlist, 9)
                    // reloadUser(userlist);
                };
                $.connection.hub.url = 'http://121.196.36.24:8001/signalr'
                //hub连接开启
                $.connection.hub.start().done(function() {
                    var username = localStorage.getItem('username');
                    //发送上线信息
                    work.server.sendLogin(username);
                    // const aaa = [{
                    //     "code": "Q",
                    //     "name": "呼叫质量",
                    //     "children": [{
                    //         "usercode": "999",
                    //         "username": "楼先生"
                    //     }]
                    // }]
                    // work.server.sendByGroupList('楼先生', 'CJ002', 'SB001', aaa)
                });
            });
            //重新加载用户列表
            // var reloadUser = function() {
            //     $("#username").empty();
            //     for (i = 0; i < 5; i++) {
            //         $("#username").append("<option value=" + i + ">" + i + "</option>");
            //     }
            // }
        </script>
    </head>
    <body>
@@ -77,34 +249,36 @@
                </van-nav-bar>
                <van-pull-refresh v-model="isLoading" @refresh="onRefresh">
                    <van-swipe :autoplay="3000">
                        <van-swipe-item v-for="(image, index) in images" :key="index">
                            <img v-lazy="image" :src='image' style="background-size: 100% 100%;width: 100%;" />
                        </van-swipe-item>
                    </van-swipe>
                <van-swipe :autoplay="3000">
                    <van-swipe-item v-for="(image, index) in images" :key="index">
                        <img v-lazy="image" :src='image' style="background-size: 100% 100%;width: 100%;" />
                    </van-swipe-item>
                </van-swipe>
                <van-grid :gutter="20" :border='false' square :column-num="3" style="margin: 30px auto 0; width: 90%;">
                    <van-grid-item v-for="item in firstMenu" @click='vanGridItem(item)' :key="item" :text="item.name">
                        <img :src="item.imgurl" alt=""
                            style="width: 56px;height:56px;margin-top: 10px;border-radius: 10px;">
                        <div style="margin-top: 5px;font-size: 14px;color: #929399;">{{item.name}}</div>
                    </van-grid-item>
                </van-grid>
                <van-action-sheet lazy-render :closeable='false' close-on-click-action close-on-click-overlay
                    safe-area-inset-bottom v-model="sheetShow" :title="firstMenuName">
                    <van-grid :border='false' :gutter="5" square :column-num="3" style="width: 80%; margin: auto;">
                        <van-grid-item v-for="item in secondMenu" @click='vanGridSecondItem(item)' :key="item"
                            icon="photo-o">
                    <van-grid :gutter="20" :border='false' square :column-num="3"
                        style="margin: 30px auto 0; width: 90%;">
                        <van-grid-item v-for="item in firstMenu" @click='vanGridItem(item)' :key="item"
                            :text="item.name">
                            <img :src="item.imgurl" alt=""
                                style="width: 48px;height:48px;margin-top: 10px;border-radius: 10px;">
                            <div style="margin-top: 5px;font-size: 12px;color: #929399;">{{item.name}}</div>
                                style="width: 56px;height:56px;margin-top: 10px;border-radius: 10px;">
                            <div style="margin-top: 5px;font-size: 14px;color: #929399;">{{item.name}}</div>
                        </van-grid-item>
                    </van-grid>
                </van-action-sheet>
            </div>
                    <van-action-sheet lazy-render :closeable='false' close-on-click-action close-on-click-overlay
                        safe-area-inset-bottom v-model="sheetShow" :title="firstMenuName">
                        <van-grid :border='false' :gutter="5" square :column-num="3" style="width: 80%; margin: auto;">
                            <van-grid-item v-for="item in secondMenu" @click='vanGridSecondItem(item)' :key="item"
                                icon="photo-o">
                                <img :src="item.imgurl" alt=""
                                    style="width: 48px;height:48px;margin-top: 10px;border-radius: 10px;">
                                <div style="margin-top: 5px;font-size: 12px;color: #929399;">{{item.name}}</div>
                            </van-grid-item>
                        </van-grid>
                    </van-action-sheet>
            </div>
            </van-pull-refresh>
            <van-overlay :show="overlayShow" @click="overlayShow=false" />
@@ -116,6 +290,7 @@
            el: '#app',
            data: function() {
                return {
                    isLoading: false, //下拉刷新
                    images: [
                        '../../static/images/swiper01.png',
                        '../../static/images/swiper02.png',
@@ -149,23 +324,39 @@
            },
            mounted() {
                this.getfirstMenu()
                this.getLoginAppAnDonMessage()
                setInterval(()=>{
                    this.getLoginAppAnDonMessage()
                },1000*10)
            },
            methods: {
                onRefresh() {
                    setTimeout(() => {
                        vant.Toast('刷新成功');
                        this.getfirstMenu()
                        this.getLoginAppAnDonMessage()
                        // vant.Notify('刷新成功');
                        this.isLoading = false;
                    }, 1000);
                },
                // 获取消息接口
            async    getLoginAppAnDonMessage(){
                    const data={
                        userid:localStorage.getItem('userid'),
                        usercode:localStorage.getItem('usercode'),
                        username:localStorage.getItem('username'),
                        usertype:localStorage.getItem('usertype'),
                async getLoginAppAnDonMessage() {
                    const data = {
                        userid: localStorage.getItem('userid'),
                        usercode: localStorage.getItem('usercode'),
                        username: localStorage.getItem('username'),
                        usertype: localStorage.getItem('usertype'),
                    }
                    const res=await post('Login/LoginAppAnDonMessage'+formatParams(data))
                    this.messageNumber=res.data.length
                    const res = await post('Login/LoginAppAnDonMessage' + formatParams(data))
                    this.messageNumber = res.data.length
                    // this.messageNumber=9
                },
                // 获取一级菜单
                async getfirstMenu() {
                    const data = {
unpackage/cache/wgt/H5EDA0853/plus/a1.html
@@ -166,7 +166,6 @@
            
                //后端SendLogin调用后,产生的loginUser回调
                work.client.loginUser = function(userlist) {
                    console.log(userlist)
                    reloadUser(userlist);
                };
            
unpackage/release/apk/H5EDA0853__20221020132538.apk
Binary files differ