| | |
| | | <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> |
| | |
| | | <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() { |
| | |
| | | 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); |
| | | }; |
| | | |
| | |
| | | //发送上线信息 |
| | | work.server.sendLogin(username); |
| | | |
| | | |
| | | |
| | | // const data = [{ |
| | | // const aaa = [{ |
| | | // "code": "Q", |
| | | // "name": "呼叫质量", |
| | | // "children": [{ |
| | |
| | | // }] |
| | | // }] |
| | | |
| | | // 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' |
| | | // }) |
| | | // } |
| | | // }) |
| | | }) |
| | | |
| | | |
| | | }); |
| | | |
| | | }); |
| | | |
| | | //重新加载用户列表 |
| | |
| | | // 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' |
| | | }) |
| | | } |
| | | |
| | | |
| | |
| | | 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' |
| | | }) |
| | |
| | | }) |
| | | } |
| | | |
| | | function centerContentClick(code, wksp_code) { |
| | | function topContentClick(code, wksp_code) { |
| | | radioValue = code |
| | | 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' |
| | | }) |
| | | |
| | | // vant.Notify({ |
| | | // type: 'danger', |
| | | // message: res.Message + centerContent.length |
| | | // }); |
| | | |
| | | falseArray.push({ |
| | | id: '1' |
| | | }) |
| | |
| | | </script> |
| | | |
| | | </head> |
| | | <body> |
| | | <body onload="scaned('SB001')"> |
| | | <!-- <body> --> |
| | | <div id="app"> |
| | | |
| | | <div class="body"> |
| | |
| | | </template> |
| | | </van-nav-bar> |
| | | </van-sticky> |
| | | |
| | | |
| | | <div v-if="topContent.length===0"> |
| | | <div class="sacnBody"> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | | |
| | |
| | | el: '#app', |
| | | data: function() { |
| | | return { |
| | | submitIsDisabled: false, |
| | | |
| | | overlayShow: false, |
| | | showPopover: false, |
| | | actions: [{ |
| | |
| | | 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() |
| | |
| | | |
| | | }, |
| | | 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() { |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | el: '#app', |
| | | data: function() { |
| | | return { |
| | | submitIsDisabled: false, |
| | | overlayShow: false, |
| | | showPopover: false, |
| | | actions: [{ |
| | |
| | | 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() |
| | | }, |
| | |
| | | </script> |
| | | <style type="text/css"> |
| | | @import url('../../css/global.css'); |
| | | |
| | | .van-hairline--top-bottom { |
| | | position: static; |
| | | } |
| | | </style> |
| | | </html> |
| | |
| | | </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> |
| | |
| | | el: '#app', |
| | | data: function() { |
| | | return { |
| | | submitIsDisabled: false, |
| | | username: '999', |
| | | password: '123', |
| | | isOpenEye: false, |
| | |
| | | password: this.password, |
| | | usertype: 'APP' |
| | | } |
| | | |
| | | this.submitIsDisabled = true |
| | | get('Login/LoginSave', data).then(res => { |
| | | if (res.code === '200') { |
| | | // window.location.reload() //页面重新 |
| | |
| | | localStorage.setItem('usertype', res.data.usertype) |
| | | } |
| | | window.location.href = '../xtsy/index.html' |
| | | } else { |
| | | this.submitIsDisabled = false |
| | | } |
| | | |
| | | if (res.code === '302') { |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | 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: [] |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | }, |
| | | 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() |
| | | }, |
| | |
| | | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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" /> |
| | | |
| | |
| | | el: '#app', |
| | | data: function() { |
| | | return { |
| | | isLoading: false, //下拉刷新 |
| | | images: [ |
| | | '../../static/images/swiper01.png', |
| | | '../../static/images/swiper02.png', |
| | |
| | | }, |
| | | 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 = { |
| | |
| | | https://ide.dcloud.net.cn/build/download/b2baf5d0-4f91-11ed-8725-993b1768ad7b |
| | | https://ide.dcloud.net.cn/build/download/98ecbf50-504e-11ed-9fdb-07a931acdbf6 |
| | |
| | | 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 |
| | |
| | | <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> |
| | |
| | | <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() { |
| | |
| | | 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); |
| | | }; |
| | | |
| | |
| | | //发送上线信息 |
| | | work.server.sendLogin(username); |
| | | |
| | | |
| | | |
| | | // const data = [{ |
| | | // const aaa = [{ |
| | | // "code": "Q", |
| | | // "name": "呼叫质量", |
| | | // "children": [{ |
| | |
| | | // }] |
| | | // }] |
| | | |
| | | // 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' |
| | | // }) |
| | | // } |
| | | // }) |
| | | }) |
| | | |
| | | |
| | | }); |
| | | |
| | | }); |
| | | |
| | | //重新加载用户列表 |
| | |
| | | // 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' |
| | | }) |
| | | } |
| | | |
| | | |
| | |
| | | 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' |
| | | }) |
| | |
| | | }) |
| | | } |
| | | |
| | | function centerContentClick(code, wksp_code) { |
| | | function topContentClick(code, wksp_code) { |
| | | radioValue = code |
| | | 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' |
| | | }) |
| | | |
| | | // vant.Notify({ |
| | | // type: 'danger', |
| | | // message: res.Message + centerContent.length |
| | | // }); |
| | | |
| | | falseArray.push({ |
| | | id: '1' |
| | | }) |
| | |
| | | </script> |
| | | |
| | | </head> |
| | | <body> |
| | | <body onload="scaned('SB001')"> |
| | | <!-- <body> --> |
| | | <div id="app"> |
| | | |
| | | <div class="body"> |
| | |
| | | </template> |
| | | </van-nav-bar> |
| | | </van-sticky> |
| | | |
| | | |
| | | <div v-if="topContent.length===0"> |
| | | <div class="sacnBody"> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | | |
| | |
| | | el: '#app', |
| | | data: function() { |
| | | return { |
| | | submitIsDisabled: false, |
| | | |
| | | overlayShow: false, |
| | | showPopover: false, |
| | | actions: [{ |
| | |
| | | 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() |
| | |
| | | |
| | | }, |
| | | 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() { |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | el: '#app', |
| | | data: function() { |
| | | return { |
| | | submitIsDisabled: false, |
| | | overlayShow: false, |
| | | showPopover: false, |
| | | actions: [{ |
| | |
| | | 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() |
| | | }, |
| | |
| | | </script> |
| | | <style type="text/css"> |
| | | @import url('../../css/global.css'); |
| | | |
| | | .van-hairline--top-bottom { |
| | | position: static; |
| | | } |
| | | </style> |
| | | </html> |
| | |
| | | </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> |
| | |
| | | el: '#app', |
| | | data: function() { |
| | | return { |
| | | submitIsDisabled: false, |
| | | username: '999', |
| | | password: '123', |
| | | isOpenEye: false, |
| | |
| | | password: this.password, |
| | | usertype: 'APP' |
| | | } |
| | | |
| | | this.submitIsDisabled = true |
| | | get('Login/LoginSave', data).then(res => { |
| | | if (res.code === '200') { |
| | | // window.location.reload() //页面重新 |
| | |
| | | localStorage.setItem('usertype', res.data.usertype) |
| | | } |
| | | window.location.href = '../xtsy/index.html' |
| | | } else { |
| | | this.submitIsDisabled = false |
| | | } |
| | | |
| | | if (res.code === '302') { |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | 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: [] |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | }, |
| | | 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() |
| | | }, |
| | |
| | | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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" /> |
| | | |
| | |
| | | el: '#app', |
| | | data: function() { |
| | | return { |
| | | isLoading: false, //下拉刷新 |
| | | images: [ |
| | | '../../static/images/swiper01.png', |
| | | '../../static/images/swiper02.png', |
| | |
| | | }, |
| | | 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 = { |
| | |
| | | |
| | | //后端SendLogin调用后,产生的loginUser回调 |
| | | work.client.loginUser = function(userlist) { |
| | | console.log(userlist) |
| | | reloadUser(userlist); |
| | | }; |
| | | |