From 81f42ac21b3cd7e0f6a54fb8ef27f65501bbc94c Mon Sep 17 00:00:00 2001 From: loulijun2021 <1694218219@qq.com> Date: 星期一, 10 十月 2022 16:50:52 +0800 Subject: [PATCH] 1.维修验证页面优化 --- pages/sbgl/rcdj.html | 516 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 472 insertions(+), 44 deletions(-) diff --git a/pages/sbgl/rcdj.html b/pages/sbgl/rcdj.html index c7aee17..9e4c59f 100644 --- a/pages/sbgl/rcdj.html +++ b/pages/sbgl/rcdj.html @@ -6,7 +6,7 @@ <meta name="HandheldFriendly" content="true" /> <meta name="MobileOptimized" content="320" /> <title>鏂板嚡杩埗閫犱簯骞冲彴</title> - + <!-- 寮曞叆鏍峰紡鏂囦欢 --> <link rel="stylesheet" href="../../css/vant.css" /> <!-- 寮曞叆 Vue 鍜� Vant 鐨� JS 鏂囦欢 --> @@ -17,28 +17,299 @@ <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> - <link rel="stylesheet" href="../css/global.css" type="text/css" charset="utf-8" /> + <script type="text/javascript" src="../../js/global.js"></script> + <!-- <link rel="stylesheet" href="../../css/global.css" type="text/css" charset="utf-8" /> --> + + <script type="text/javascript"> + var topContent = [ + // { + // code: 'SB003', + // name: '榻胯疆绠辩粍', + // wksp_code: "CJ002", + // wksp_name: '瑁呴厤杞﹂棿', + // eqpchkmain_code: "djbz002" + // }, + // { + // code: 'SB001', + // name: '榻胯疆绠辩粍', + // wksp_code: "CJ002", + // wksp_name: '瑁呴厤杞﹂棿', + // eqpchkmain_code: "djbz002" + // }, + ]; + + var centerContent = [ + // { + // checkdesc: '姘斿帇姝e父10甯曪紝鏈�楂樹笉瓒呰繃10.5甯曪紝鏈�浣庝笉浣庝簬9.7', + // code: 'BW003', + // name: '閮ㄤ綅3', + // seq: 2, + // cycle: 'D', + // isscan: 'N', + // isOK: 'OK', + // inputValue: '', + // isDisabled: false, + // }, + ] + + + let radioValue = '' //鍗曢�夋閫変腑鐨勯」 + + let resultValue = '' //鐐规缁撴灉 + + + let bwcode = '' //鐐瑰嚮閮ㄤ綅鐨勬壂鎻忔 鐐规椤圭洰code + + let falseArray = [] //鐐规椤圭洰鍐呭 鍋囨暟缁� 鍋氭壂鐮佸洖鏉ヨ鍥炬洿鏂扮敤 + + // 鎵弿鐐规宸ヤ綅杩斿洖鏃舵墽琛屾柟娉� + function scaned(r) { + let flag = false + topContent.forEach((item, index) => { + if (item.code === r) { + flag = true + } + }) + if (flag) { + vant.Notify({ + type: 'danger', + message: '姝ゆ潯鐮佸凡鎵弿锛屽凡鍦ㄥ垪琛ㄤ腑锛�' + }); + } else { + get('AppDeviceManage/CheckScanDeviceQrCodeData', { + eqpcode: r + }).then(res => { + if (res.code === '200' && res.data[0].eqpchkmain_code !== null) { + topContent.unshift(res.data[0]) + topContentClcik(topContent[0].code) + } + + if (res.code === '200' && res.data[0].eqpchkmain_code === null) { + vant.Notify({ + type: 'danger', + message: '褰撳墠璁惧鏈缃偣妫�鏍囧噯缁戝畾鐐规椤圭洰锛�' + }); + } + }) + } + + + + } + + // 鎵弿鐐规椤圭洰鍐呭杩斿洖鏃舵墽琛屾柟娉� + function scaned2(r) { + if (bwcode === r) { + centerContent.forEach(item => { + if (item.code === bwcode) { + item.isDisabled = false + item.isOK = 'OK' + + + if (centerContent.every(r => r.isOK === 'OK')) { + resultValue = 'OK' + } + if (centerContent.some(r => r.isOK === 'NG')) { + resultValue = 'NG' + } + if (centerContent.some(r => r.isOK === '')) { + resultValue = '' + } + + + falseArray.push({ + id: '1' + }) + } + }) + } else { + vant.Notify({ + type: 'danger', + message: '鎵弿鐨勪簩缁寸爜鏈笌姝ょ偣妫�椤圭洰鐩稿尮閰嶏紒' + }); + } + + } + + function topContentClcik(code) { + radioValue = code + get('AppDeviceManage/SelectScanDeviceQrCodeItem', { + eqpcode: code + }).then(res => { + if (res.code === '200') { + centerContent = res.data + // centerContent = JSON.parse(JSON.stringify(centerContent)) + centerContent.forEach(item => { + item.isDisabled = item.isscan === 'Y' + item.inputValue = '' + item.isOK = item.isscan !== 'Y' ? 'OK' : '' + }) + if (centerContent.every(r => r.isOK === 'OK')) { + resultValue = 'OK' + } + if (centerContent.some(r => r.isOK === 'NG')) { + resultValue = 'NG' + } + if (centerContent.some(r => r.isOK === '')) { + resultValue = '' + } + } + }) + } + </script> </head> + <!-- <body onload="loadNodes()"> --> <body> <div id="app"> <div class="body"> + <van-sticky> + <van-nav-bar title="鏃ュ父鐐规" @click-right="onClickRight" left-arrow @click-left="onClickleft"> + <template #right> + <van-popover style="" placement="bottom-end" :offset="[13,8]" v-model="showPopover" + trigger="click" :actions="actions" @select="onSelect"> + <template #reference> + <van-icon name="bars" size='20' color='#fff'/> + </template> + </van-popover> + </template> + </van-nav-bar> + </van-sticky> - <van-nav-bar title="鏃ュ父鐐规" @click-right="onClickRight" left-arrow @click-left="onClickleft"> - <template #right> - <van-popover style="" placement="bottom-end" :offset="[13,8]" v-model="showPopover" - trigger="click" :actions="actions" @select="onSelect"> - <template #reference> - <van-icon name="bars" size='20' color='#fff' /> - </template> - </van-popover> - </template> - </van-nav-bar> + <div 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"> + <div class="head_block"> + <div class="head_left"> + <div class="head_bar"></div> + <div class="head_title"> + 鎵弿鐐规宸ヤ綅 + </div> + </div> + + <div style="margin-right: 10px;"> + <van-icon name="scan" color='red' size='24' @click='topScanClick()' /> + </div> + + </div> + + <div class="flex_between" style=""> + <div id="contentLeft" style="width: 100%;margin-top: 10px;"> + <div id="topContentID" v-for="item in topContent" :key="item.code" + style="margin-bottom: 10px;margin-left: 20px;" @click="topContentClcik(item.code)"> + <div style="display: flex;align-items: center;"> + <div> + <div>宸ヤ綅缂栫爜锛�</div> + <div>宸ヤ綅鍚嶇О锛�</div> + <div>鐢熶骇杞﹂棿锛�</div> + </div> + <div> + <div>{{item.code}}</div> + <div>{{item.name}}</div> + <div>{{item.wksp_name}}</div> + </div> + </div> + + </div> + </div> + <div id="contentRight"> + <van-radio-group v-model="radioValue" style="padding-right: 12px;"> + <van-radio checked-color='red' icon-size="18px" + style="height: 63px;margin-bottom: 10px;" v-for="item in topContent" + :key="item.code" :name="item.code"></van-radio> + </van-radio-group> + </div> + </div> + </div> + + <div class="head" + :style="{marginTop:topContent.length===0?'100px':'0',minHeight:topContent.length===0?'0':'220px'}" + style="margin-bottom: 130px;padding-bottom: 10px;overflow-y: ;" + :style="{marginTop:topContent.length===0?'78px':'0'}"> + <div class="head_block" style="margin-bottom:10px;"> + <div class="head_left"> + <div class="head_bar"></div> + <div class="head_title"> + 鐐规椤圭洰鍐呭 + </div> + </div> + </div> + + + <div class="center_border flex_column" style="margin: 5px;" v-for="item in centerContent" + :key="item.code"> + <div class="flex_between"> + <div class="center_title">{{item.name}}</div> + <div style="margin-right: 10px;" v-if="item.isscan==='Y'"> + <van-icon name="scan" color='red' size='24' @click='centerScanClick(item.code)' /> + </div> + </div> + <div class="flex_between "> + <div class='flex_between' style="width: 90%;"> + <van-field class="vanFieldInput" @blur="vanFieldBlur()" :disabled="item.isDisabled" + v-model="item.inputValue" placeholder="璇疯緭鍏�" /> + </div> + + + <div class="" style="width: 40%;display: flex;justify-content: space-around;"> + <van-button class="buttonSmall" :disabled='item.isDisabled' size="small" + :plain="item.isOK!=='OK'" @click="bwClick(item,'OK')" type="primary">姝e父 + </van-button> + <van-button class="buttonSmall" size="small" :plain="item.isOK!=='NG'" + @click="bwClick(item,'NG')" :disabled='item.isDisabled' type="danger">寮傚父 + </van-button> + </div> + </div> + <div style="font-weight: lighter;font-size: 14px;padding-right: 5px"> + {{item.checkdesc}} + </div> + </div> + + </div> + + <div class="footer"> + <div class="head_block" style="margin-bottom: 20rpx;align-items: center;"> + <div class="head_left"> + <div class="head_bar"></div> + <div class="head_title"> + 鐐规缁撴灉 + </div> + </div> + <div class="flex_center" style="width: 30%;display: flex;justify-content: space-around;"> + + <van-button class="buttonSmall" + :disabled="centerContent.some(item=>item.isDisabled===true)||centerContent.length===0" + size="small" :plain="resultValue!=='OK'" @click="resultClick('OK')" type="primary"> + 姝e父</van-button> + <van-button class="buttonSmall" size="small" :plain="resultValue!=='NG'" + :disabled="centerContent.some(item=>item.isDisabled===true)||centerContent.length===0" + @click="resultClick('NG')" type="danger">寮傚父</van-button> + </div> + + </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="姝e湪鎻愪氦,璇风◢绛�..." class="vanButtonInfo" + :disabled="resultValue===''" @click="submit" type="info"> + 纭鎻愪氦</van-button> + </div> + + </div> + </div> + </div> - <van-overlay :show="overlayShow" @click="overlayShow=false" /> @@ -50,6 +321,7 @@ el: '#app', data: function() { return { + submitIsDisabled: false, //鎻愪氦鎸夐挳鏄惁鍙彁浜� overlayShow: false, showPopover: false, actions: [{ @@ -62,53 +334,209 @@ icon: 'revoke', text: '閫�鍑虹櫥褰�' }], - + topContent2: topContent, + centerContent2: centerContent, + falseArray2: falseArray } }, - created() { + watch: { + 'topContent2.length': { + handler(newValue, oldValue) { + if (newValue !== oldValue) { + // this.topContent2 = topContent + // this.$forceUpdate() + if (topContent[0] && topContent[0].code) { + this.$forceUpdate() + this.topContentClcik(topContent[0].code) + } + } + }, + deep: true, + immediate: true, + }, + + // 'topContent.length': { + // handler(newValue, oldValue) { + // if (newValue !== oldValue) { + // this.$forceUpdate() + // // if (topContent[0]&&topContent[0].code) { + // // this.$forceUpdate() + // // this.topContentClcik(topContent[0].code) + // // } + // } + // }, + // deep: true, + // immediate: true, + // }, + 'falseArray2.length': { + handler(newValue, oldValue) { + this.$forceUpdate() + }, + deep: true, + immediate: true, + }, + // 'falseArray.length': { + // handler(newValue, oldValue) { + // this.$forceUpdate() + // }, + // deep: true, + // immediate: true, + // }, }, - mounted() { - - }, + created() {}, + mounted() {}, methods: { - onClickleft(){ + submit() { + let children = [] + centerContent.forEach(item => { + children.push({ + seq: item.seq, + itemcode: item.code, + cycle: item.cycle, + value: item.inputValue, + result: item.isOK + }) + }) + const data = { + code: radioValue, + name: topContent.find(r => r.code === radioValue).name, + standcode: topContent.find(r => r.code === radioValue).eqpchkmain_code, + result: resultValue, + children: children + } + this.submitIsDisabled = true + post('AppDeviceManage/AppDeviceCheckSave?username=' + localStorage.getItem('username'), 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.topContentClcik(radioValue) + } else { + centerContent = [] + } + resultValue = '' + this.submitIsDisabled = false + this.$forceUpdate() + } else { + this.submitIsDisabled = false + } + }) + + }, + // 杈撳叆妗嗗け鐒﹁Е鍙戜簨浠� + vanFieldBlur() { + this.$forceUpdate() + }, + topContentClcik(code) { + radioValue = code + this.$forceUpdate() + get('AppDeviceManage/SelectScanDeviceQrCodeItem', { + eqpcode: code + }).then(res => { + if (res.code === '200') { + centerContent = res.data + centerContent.forEach(item => { + item.isDisabled = item.isscan === 'Y' + item.inputValue = '' + item.isOK = item.isscan !== 'Y' ? 'OK' : '' + }) + if (centerContent.every(r => r.isOK === 'OK')) { + resultValue = 'OK' + } + if (centerContent.some(r => r.isOK === 'NG')) { + resultValue = 'NG' + } + if (centerContent.some(r => r.isOK === '')) { + resultValue = '' + } + + this.$forceUpdate() + } + }) + }, + resultClick(val) { + resultValue = val + this.$forceUpdate() + }, + // 鎵弿鐐规宸ヤ綅鎵弿 + topScanClick() { + createWithoutTitle('../../components/barcode_scan.html', { + titleNView: { + type: 'float', + backgroundColor: 'rgba(215,75,40,0.3)', + titleText: '鎵竴鎵�', + titleColor: '#FFFFFF', + autoBackButton: true, + buttons: [{ + fontSrc: '_www/helloh5.ttf', + text: '\ue302', + fontSize: '18px', + onclick: 'javascript:scanPicture()' + }] + } + }); + }, + // 鐐规椤圭洰鍐呭鎵弿 + centerScanClick(code) { + bwcode = code + createWithoutTitle('../../components/barcode_scan2.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()' + }] + } + }); + }, + // 閮ㄤ綅姝e父 寮傚父鎸夐挳鐐瑰嚮 + bwClick(item, val) { + item.isOK = val + if (centerContent.every(item => item.isOK !== '')) { + if (centerContent.every(item => item.isOK === 'OK')) { + resultValue = 'OK' + } else { + resultValue = 'NG' + } + } + this.$forceUpdate() //寮哄埗瑙嗗浘鏇存柊 + }, + onClickleft() { history.back() }, onClickRight() { this.overlayShow = true }, onSelect(action) { - vant.Toast(action.text); + if (action.text === '鎿嶄綔鎸囧') { + topPopoverClick('鎿嶄綔鎸囧') + } else if (action.text === '鎴愬搧杩芥函') { + topPopoverClick('鎴愬搧杩芥函') + } else if (action.text === '閫�鍑虹櫥褰�') { + topPopoverClick('閫�鍑虹櫥褰�') + } this.overlayShow = false }, } }) </script> <style type="text/css"> - body { - background-color: #fff; - } - - .body { - height: 600px; - background-color: grey; - margin-top: 0px; - background-color: #fff; - position: relative; - } - - .van-nav-bar__content { - background-color: #2651d8; - height: 44px; - } - - .van-nav-bar__title { - color: #fff; - letter-spacing: 2px; - } - .van-nav-bar__arrow{ - color: #fff !important; - } + @import url('../../css/global.css'); </style> </html> -- Gitblit v1.9.3