From 15cbc2f370b61e4e0cd472c8030fb8cb6d89b82a Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期三, 08 五月 2024 16:33:08 +0800
Subject: [PATCH] 1.产品  设备管理静态页面递交

---
 pages/sbgl/dqby.vue  |  480 +++++++++++
 pages/sbgl/sbwx.vue  |  509 +++++++++++
 pages/sbgl/rcdj.vue  |  460 ++++++++++
 pages/sbgl/wxyz.vue  |  603 ++++++++++++++
 pages.json           |   38 
 pages/sbgl/wxsq.vue  |  419 +++++++++
 pages/xtsy/index.vue |   33 
 7 files changed, 2,531 insertions(+), 11 deletions(-)

diff --git a/pages.json b/pages.json
index 4899518..619c12b 100644
--- a/pages.json
+++ b/pages.json
@@ -312,6 +312,44 @@
 				"navigationStyle": "custom",
 				"enablePullDownRefresh": false
 			}
+		},
+		{
+			"path": "pages/sbgl/dqby",
+			"style": {
+				"navigationBarTitleText": "瀹氭湡淇濆吇",
+				"navigationStyle": "custom",
+				"enablePullDownRefresh": false
+			}
+		}, {
+			"path": "pages/sbgl/rcdj",
+			"style": {
+				"navigationBarTitleText": "鏃ュ父鐐规",
+				"navigationStyle": "custom",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/sbgl/wxsq",
+			"style": {
+				"navigationBarTitleText": "缁翠慨鐢宠",
+				"navigationStyle": "custom",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/sbgl/sbwx",
+			"style": {
+				"navigationBarTitleText": "璁惧缁翠慨",
+				"navigationStyle": "custom",
+				"enablePullDownRefresh": false
+			}
+		}, {
+			"path": "pages/sbgl/wxyz",
+			"style": {
+				"navigationBarTitleText": "缁翠慨楠岃瘉",
+				"navigationStyle": "custom",
+				"enablePullDownRefresh": false
+			}
 		}
 	],
 	"globalStyle": {
diff --git a/pages/sbgl/dqby.vue b/pages/sbgl/dqby.vue
new file mode 100644
index 0000000..65a18af
--- /dev/null
+++ b/pages/sbgl/dqby.vue
@@ -0,0 +1,480 @@
+<template>
+	<view>
+		<page-nav title="瀹氭湡淇濆吇"></page-nav>
+
+
+		<view v-show="topContent.length===0">
+			<div class="sacnBody">
+				<div class="scanImg" @click="topScanClick"></div>
+				<div class="scanText">鎵弿淇濆吇宸ヤ綅</div>
+			</div>
+		</view>
+
+
+		<view v-show="topContent.length!==0">
+			<view class="mainContent">
+				<view>
+					<u-gap height="10" bgColor="#eff0f1"></u-gap>
+					<view class="head">
+						<view class="head_block">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鎵弿淇濆吇宸ヤ綅
+								</view>
+							</view>
+
+							<view class="marginRight20">
+								<u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon>
+							</view>
+
+						</view>
+
+						<view class="marginLeft20 marginRight20" style="max-height: 180rpx;overflow:scroll;">
+							<u-radio-group v-model="radioValue" class="flex_column">
+								<view class="marginBottom20 flex_between" @click="groupChange(item.code)"
+									v-for="item in topContent" :key="item.code">
+									<view style="display: flex;">
+										<view class="flex_column titleFont">
+											<view>宸ヤ綅缂栫爜锛�</view>
+											<view>宸ヤ綅鍚嶇О锛�</view>
+											<view>鐢熶骇杞﹂棿锛�</view>
+										</view>
+										<view class="flex_column contentFont">
+											<view>{{item.code}}</view>
+											<view>{{item.name}}</view>
+											<view>{{item.wksp_name}}</view>
+										</view>
+									</view>
+									<u-radio size='40' :key="item.code" :name="item.code"
+										@change="groupChange(item.code)" activeColor="red"></u-radio>
+								</view>
+							</u-radio-group>
+						</view>
+
+					</view>
+					<u-gap height="12" bgColor="#eff0f1"></u-gap>
+					<view class="head" style="height:86rpx;">
+						<view class="head_block">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									淇濆吇鏍囧噯
+								</view>
+							</view>
+
+							<view class="marginRight20 marginTop10" style="width: 200rpx;">
+								<!-- <u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon> -->
+								<uni-data-select v-model="selectValueBZ" :clear="false" :localdata="selectRangeBZ"
+									@change="selectChangeBZ">
+								</uni-data-select>
+							</view>
+
+						</view>
+					</view>
+					<u-gap height="12" bgColor="#eff0f1"></u-gap>
+
+					<view class="head">
+
+						<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									淇濆吇椤圭洰鍐呭
+								</view>
+							</view>
+
+							<view class="marginRight20" style="width: 200rpx;">
+								<uni-data-select v-model="selectValue" :clear="false" :localdata="selectRange"
+									@change="selectChange">
+								</uni-data-select>
+							</view>
+
+						</view>
+						<view :style="{maxHeight:'1000rpx',overflow: 'scroll'}">
+							<view class="center_border flex_column" style="margin: 10rpx;" v-for="item in centerContent"
+								:key="item.code">
+
+								<view class="flex_between marginBottom10">
+									<view class="center_title">{{item.name}}</view>
+									<view class="marginRight20" v-if="item.isscan==='Y'">
+										<u-icon name="scan" @click="centerScanClick(item.code)" color="red" size="56">
+										</u-icon>
+									</view>
+								</view>
+								<view class="flex_between marginBottom10">
+									<view class='inputClass marginTop10'>
+										<u--input :disabled='item.isDisabled' placeholder="璇疯緭鍏�" border="surround"
+											v-model="item.inputValue"></u--input>
+									</view>
+
+
+									<view class="flex_center">
+										<u-button type="primary" :plain="item.isOK!=='OK'" :disabled="item.isDisabled"
+											text="姝e父" @click="bwClick(item,'OK')">
+										</u-button>
+										<u-button type="warning" :plain="item.isOK!=='NG'" :disabled="item.isDisabled"
+											text="寮傚父" @click="bwClick(item,'NG')">
+										</u-button>
+									</view>
+								</view>
+								<view class="titleFont">
+									{{item.chkdesc}}
+								</view>
+							</view>
+						</view>
+					</view>
+
+				</view>
+			</view>
+
+
+			<view class="footer">
+				<view class="head_block" style="align-items: center;padding: 0 23rpx;">
+					<view class="head_left">
+						<view class="head_bar"></view>
+						<view class="head_title">
+							鐐规缁撴灉
+						</view>
+					</view>
+					<view class="flex_center">
+						<u-button type="primary" :plain="resultValue!=='OK'"
+							:disabled="centerContent.some(item=>item.isDisabled===true)||centerContent.length===0"
+							text="姝e父" @click="resultClick('OK')"></u-button>
+						<u-button type="warning" :plain="resultValue!=='NG'"
+							:disabled="centerContent.some(item=>item.isDisabled===true)||centerContent.length===0"
+							text="寮傚父" @click="resultClick('NG')"></u-button>
+					</view>
+				</view>
+			</view>
+			<u-button size="large" :loading="isDisabledSubmitButton" loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary"
+				@click="submit" :disabled="resultValue===''" text="纭鎻愪氦">
+			</u-button>
+
+		</view>
+
+
+		<scan-code></scan-code>
+	</view>
+</template>
+
+<script>
+	import {
+		// RepairScanDeviceQrCodeData,
+		// RepairSelectScanDeviceQrCodeItem,
+		// RepairScanDeviceTemp,
+		// AppDeviceRepairSave
+	} from '../../config/api.js'
+	import scanCode from '@/components/scan-code/scan-code.vue'
+	export default {
+		components: {
+			scanCode
+		},
+		onLoad(option) {
+			const _this = this
+			uni.$off('scancodedate') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+			uni.$on('scancodedate', function(content) {
+				console.log("鎵弿鍒扮殑鍐呭涓�:", content)
+				_this.getRepairScanDeviceQrCodeData(content)
+			})
+		},
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.init(() => {
+					uni.stopPullDownRefresh();
+				})
+			}, 1000);
+		},
+		data() {
+			return {
+				isDisabledSubmitButton: false,
+
+				topContent: [], //鎵弿淇濆吇宸ヤ綅鎵�甯﹀嚭鏉ョ殑鍐呭
+				centerContent: [], //淇濆吇椤圭洰鍐呭
+				scanContent: '', //鎵弿鎵嚭鏉ョ殑鍊�
+				radioValue: '', //鍗曢�夋鐨勫��
+				resultValue: '', //淇濆吇缁撴灉鍊�
+
+				selectValueBZ: '', //鏍囧噯閫夋嫨鐨勫��
+				selectRangeBZ: [], //鏍囧噯閫夋嫨鐨勪笅鎷夐�夐」
+
+				selectValue: 'M',
+				selectRange: [{
+					value: 'Y',
+					text: '骞�'
+				}, {
+					value: 'S',
+					text: '瀛�'
+				}, {
+					value: 'M',
+					text: '鏈�'
+				}, {
+					value: 'W',
+					text: '鍛�'
+				}, ]
+			}
+		},
+		created() {
+
+		},
+		mounted() {
+			this.init()
+
+			// this.getRepairScanDeviceQrCodeData('SB001')
+			// this.getRepairScanDeviceQrCodeData('SB002')
+			// setTimeout(() => {
+			// this.getRepairScanDeviceQrCodeData('SB003')
+			// }, 100)
+		},
+		methods: {
+			init() {
+				uni.stopPullDownRefresh();
+			},
+			selectChange(val) {
+				console.log(val)
+			},
+			selectChangeBZ(val) {
+				console.log(val, 1)
+				this.selectValueBZ = val
+				this.getRepairSelectScanDeviceQrCodeItem(this.radioValue, this.selectValueBZ)
+			},
+			// 鎵爜宸ヤ綅  鐨勬壂鐮佹鐐瑰嚮
+			topScanClick() {
+				let that = this;
+
+				uni.scanCode({
+					onlyFromCamera: true,
+					// scanType: ['barCode', 'qrCode'],
+					scanType: ['qrCode'],
+					success: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+						that.scanContent = res.result;
+						let flag = false
+						that.topContent.forEach(item => {
+							if (item.code === res.result) {
+								flag = true
+							}
+						})
+						if (flag) {
+							that.$u.toast('姝ゆ潯鐮佸凡鎵弿锛屽凡鍦ㄥ垪琛ㄤ腑锛�')
+						} else {
+							//澶勭悊鎵爜浜嬩欢
+							that.getRepairScanDeviceQrCodeData(that.scanContent);
+						}
+					},
+					complete: function(res) {
+
+					},
+					fail: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+					}
+
+				});
+			},
+
+			// 淇濆吇椤圭洰鍐呭  鐨勬壂鐮佹鐐瑰嚮
+			centerScanClick(val) {
+				let that = this;
+				uni.scanCode({
+					onlyFromCamera: true,
+					// scanType: ['barCode', 'qrCode'],
+					scanType: ['qrCode'],
+					success: function(res) {
+						// console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+						// that.scanContent = res.result;
+
+
+						if (res.result === val) {
+							that.centerContent.find(item => item.code === val).isDisabled = false
+							that.centerContent.find(item => item.code === val).isOK = 'OK'
+
+							if (that.centerContent.every(r => r.isOK === 'OK')) {
+								that.resultValue = 'OK'
+							}
+							if (that.centerContent.some(r => r.isOK === 'NG')) {
+								that.resultValue = 'NG'
+							}
+							if (that.centerContent.some(r => r.isOK === '')) {
+								that.resultValue = ''
+							}
+
+							that.$forceUpdate()
+						} else {
+							uni.$u.toast('鎵�鎵潯鐮佷笌鐐规閮ㄤ綅涓嶇鍚堬紒')
+						}
+
+
+						//澶勭悊鎵爜浜嬩欢
+						// that.SearchBarcode();
+					},
+					complete: function(res) {},
+					fail: function(res) {}
+
+				});
+			},
+
+			// 鑾峰彇淇濆吇宸ヤ綅    
+			async getRepairScanDeviceQrCodeData(val) {
+				const data = {
+					eqpcode: val
+				}
+
+				const res = await RepairScanDeviceQrCodeData(data)
+
+				if (res.code === '200' && res.data[0].eapmai_code !== null) { //琛ㄧず缁戝畾浜嗘爣鍑�
+					this.topContent.unshift(res.data[0])
+					this.radioValue = res.data[0].code
+					// this.selectValue = res.data[0].main_cycle
+					// this.getRepairSelectScanDeviceQrCodeItem(res.data[0].code, res.data[0].eapmai_code)
+
+					this.getRepairScanDeviceTemp(res.data[0].code)
+				} else if (res.code === '200' && res.data[0].eapmai_code === null) {
+					uni.$u.toast('褰撳墠璁惧鏈缃偣妫�鏍囧噯缁戝畾鐐规椤圭洰锛�')
+					// this.selectValueBZ = ''
+					// this.centerContent = []
+					// this.$forceUpdate()
+				}
+				// else if (res.code === '200') {
+				// 	uni.$u.toast('褰撳墠璁惧鏈缃偣妫�鏍囧噯缁戝畾鐐规椤圭洰锛�')
+				// 	this.$forceUpdate()
+				// }
+			},
+			// 鑾峰彇淇濆吇鏍囧噯
+			async getRepairScanDeviceTemp(eqpcode) {
+				const res = await RepairScanDeviceTemp({
+					eqpcode
+				})
+
+				this.selectRangeBZ = res.data.map(({
+					code,
+					name
+				}) => ({
+					text: name,
+					value: code
+				}))
+
+				this.selectValueBZ = this.selectRangeBZ[0].value
+
+				this.getRepairSelectScanDeviceQrCodeItem(eqpcode, this.selectValueBZ)
+			},
+			// 鑾峰彇淇濆吇椤圭洰鍐呭
+			async getRepairSelectScanDeviceQrCodeItem(eqpcode, repartempcode) {
+
+				const data = {
+					eqpcode,
+					repartempcode
+				}
+
+				const res = await RepairSelectScanDeviceQrCodeItem(data)
+
+				if (res.code === '200') {
+					this.centerContent = res.data
+
+					this.centerContent.forEach(item => {
+						item.inputValue = ''
+						item.isDisabled = item.isscan === 'Y'
+						item.isOK = item.isscan !== 'Y' ? 'OK' : ''
+					})
+
+					if (this.centerContent.every(r => r.isOK === 'OK')) {
+						this.resultValue = 'OK'
+					}
+					if (this.centerContent.some(r => r.isOK === 'NG')) {
+						this.resultValue = 'NG'
+					}
+					if (this.centerContent.some(r => r.isOK === '')) {
+						this.resultValue = ''
+					}
+
+					this.radioValue = eqpcode
+					this.selectValue = this.centerContent[0].main_cycle
+					this.$forceUpdate()
+				} else if (res.code === '300') {
+					this.selectValueBZ = ''
+					this.centerContent = []
+					this.$forceUpdate()
+				}
+
+
+			},
+			// 鍗曢�夋寜閽偣鍑�
+			groupChange(val) {
+				this.radioValue = val
+				this.$forceUpdate()
+				// this.getRepairSelectScanDeviceQrCodeItem(val, this.topContent.find(i => i.code === val).eapmai_code)
+				this.getRepairScanDeviceTemp(val)
+			},
+
+			// 閮ㄤ綅姝e父 寮傚父鎸夐挳鐐瑰嚮
+			bwClick(item, val) {
+				item.isOK = val
+				if (this.centerContent.every(item => item.isOK !== '')) {
+					if (this.centerContent.every(item => item.isOK === 'OK')) {
+						this.resultValue = 'OK'
+					} else {
+						this.resultValue = 'NG'
+					}
+				}
+				this.$forceUpdate() //寮哄埗瑙嗗浘鏇存柊
+			},
+			// 鐐规缁撴灉鐐瑰嚮
+			resultClick(val) {
+				this.resultValue = val
+				this.$forceUpdate() //寮哄埗瑙嗗浘鏇存柊
+			},
+			// 纭鎻愪氦鎸夐挳
+			async submit() {
+				const children = []
+
+
+
+				this.centerContent.forEach(item => {
+					children.push({
+						seq: item.seq,
+						itemcode: item.code,
+						cycle: item.main_cycle,
+						value: item.inputValue,
+						result: item.isOK
+					})
+
+				})
+				const data = {
+					code: this.topContent.find(item => item.code === this.radioValue).code,
+					name: this.topContent.find(item => item.code === this.radioValue).name,
+					// standcode: this.topContent.find(item => item.code === this.radioValue).eapmai_code,
+					standcode: this.selectValueBZ,
+					result: this.resultValue,
+					children: children
+				}
+				// console.log(data)
+				this.isDisabledSubmitButton = true
+				const res = await AppDeviceRepairSave(data, uni.getStorageSync("username"), this.selectValue)
+				if (res.code === '200') {
+					uni.$u.toast('鎻愪氦鎴愬姛锛�')
+					this.isDisabledSubmitButton = false
+					this.topContent.forEach((item, index) => {
+						if (item.code === this.radioValue) {
+							this.topContent.splice(index, 1)
+						}
+					})
+					this.radioValue = this.topContent[0].code
+					if (this.radioValue.toString().length > 0) {
+						this.getRepairScanDeviceTemp(this.radioValue)
+					}
+
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import url('@/style/global.css');
+
+	::v-deep .uicon-arrow-left>span {
+		display: block;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/sbgl/rcdj.vue b/pages/sbgl/rcdj.vue
new file mode 100644
index 0000000..8825663
--- /dev/null
+++ b/pages/sbgl/rcdj.vue
@@ -0,0 +1,460 @@
+<template>
+	<view>
+		<page-nav title="鏃ュ父鐐规"></page-nav>
+
+		<!-- <u-notify ref="uNotify"></u-notify> -->
+
+		<view v-show="topContent.length===0">
+			<div class="sacnBody">
+				<div class="scanImg" @click="topScanClick"></div>
+				<div class="scanText">鎵弿鐐规宸ヤ綅</div>
+			</div>
+		</view>
+
+
+		<view v-show="topContent.length!==0">
+			<view class="mainContent">
+				<view>
+					<u-gap height="10" bgColor="#eff0f1"></u-gap>
+					<view class="head">
+						<view class="head_block">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鎵弿鐐规宸ヤ綅
+								</view>
+							</view>
+
+							<view class="marginRight20">
+								<u-icon name="scan" @click="topScanClick" color="red" size="28"></u-icon>
+							</view>
+
+						</view>
+
+						<view class="marginLeft20 marginRight20" style="max-height: 180rpx;overflow:auto;">
+							<u-radio-group v-model="radioValue" class="flex_column">
+								<view class="marginBottom20 flex_between" @click="groupChange(item.code)"
+									v-for="item in topContent" :key="item.code">
+									<view style="display: flex;">
+										<view class="flex_column titleFont">
+											<view>宸ヤ綅缂栫爜锛�</view>
+											<view>宸ヤ綅鍚嶇О锛�</view>
+											<view>鐢熶骇杞﹂棿锛�</view>
+										</view>
+										<view class="flex_column contentFont">
+											<view>{{item.code}}</view>
+											<view>{{item.name}}</view>
+											<view>{{item.wksp_name}}</view>
+										</view>
+									</view>
+									<u-radio style="line-height: 44rpx;" size='40' :key="item.code" :name="item.code"
+										@change="groupChange(item.code)" activeColor="red"></u-radio>
+								</view>
+							</u-radio-group>
+						</view>
+
+					</view>
+
+					<u-gap height="12" bgColor="#eff0f1"></u-gap>
+					<view class="head" style="height:82rpx;">
+						<view class="head_block">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鐐规鏍囧噯
+								</view>
+							</view>
+
+							<view class="marginRight20 marginTop10" style="width: 200rpx;">
+								<!-- <u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon> -->
+								<uni-data-select v-model="selectValueBZ" :clear="false" :localdata="selectRangeBZ"
+									@change="selectChangeBZ">
+								</uni-data-select>
+							</view>
+
+						</view>
+					</view>
+
+					<u-gap height="12" bgColor="#eff0f1"></u-gap>
+					<view class="head" style="">
+						<view class="head_block">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鐐规椤圭洰鍐呭
+								</view>
+							</view>
+						</view>
+
+						<!-- <view :style="{maxHeight:(($DeviceInformation.screenHeight-530)*3)+'rpx',overflow: 'scroll'}"> -->
+						<view :style="{maxHeight:'1000rpx',overflow: 'scroll'}">
+
+							<view class="center_border flex_column" style="margin: 10rpx;" v-for="item in centerContent"
+								:key="item.code">
+
+								<view class="flex_between marginBottom10">
+									<view class="center_title">{{item.name}}</view>
+									<view class="marginRight20" v-if="item.isscan==='Y'">
+										<u-icon name="scan" @click="centerScanClick(item.code)" color="red" size="56">
+										</u-icon>
+									</view>
+								</view>
+								<view class="flex_between marginBottom10">
+									<view class='inputClass marginTop10'>
+										<u--input :disabled='item.isDisabled' placeholder="璇疯緭鍏�" border="surround"
+											v-model="item.inputValue"></u--input>
+									</view>
+
+
+									<view class="flex_center">
+										<u-button type="primary" :plain="item.isOK!=='OK'" :disabled="item.isDisabled"
+											text="姝e父" @click="bwClick(item,'OK')">
+										</u-button>
+										<u-button type="warning" :plain="item.isOK!=='NG'" :disabled="item.isDisabled"
+											text="寮傚父" @click="bwClick(item,'NG')">
+										</u-button>
+									</view>
+								</view>
+								<view class="titleFont">
+									{{item.chkdesc}}
+								</view>
+							</view>
+						</view>
+
+
+					</view>
+				</view>
+			</view>
+
+
+			<view class="footer">
+				<view class="head_block" style="align-items: center;padding: 0 23rpx;">
+					<view class="head_left">
+						<view class="head_bar"></view>
+						<view class="head_title">
+							鐐规缁撴灉
+						</view>
+					</view>
+					<view class="flex_center">
+						<u-button type="primary" :plain="resultValue!=='OK'"
+							:disabled="centerContent.some(item=>item.isDisabled===true)||centerContent.length===0"
+							text="姝e父" @click="resultClick('OK')"></u-button>
+						<u-button type="warning" :plain="resultValue!=='NG'"
+							:disabled="centerContent.some(item=>item.isDisabled===true)||centerContent.length===0"
+							text="寮傚父" @click="resultClick('NG')"></u-button>
+					</view>
+				</view>
+			</view>
+			<u-button size="large" :loading="isDisabledSubmitButton" loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary"
+				@click="submit" :disabled="resultValue===''" text="纭鎻愪氦">
+			</u-button>
+
+		</view>
+
+		<scan-code></scan-code>
+
+	</view>
+</template>
+
+<script>
+	import {
+		// CheckScanDeviceQrCodeData,
+		// SelectScanDeviceQrCodeItem,
+		// CheckScanDeviceTemp,
+		// AppDeviceCheckSave
+	} from '../../config/api.js'
+	import scanCode from '@/components/scan-code/scan-code.vue'
+	export default {
+		components: {
+			scanCode
+		},
+		onLoad(option) {
+
+			const _this = this
+			uni.$off('scancodedate') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+			uni.$on('scancodedate', function(content) {
+				console.log("鎵弿鍒扮殑鍐呭涓�:", content)
+				_this.getCheckScanDeviceQrCodeData(content)
+			})
+		},
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.init(() => {
+					uni.stopPullDownRefresh();
+				})
+			}, 1000);
+		},
+		data() {
+			return {
+				isDisabledSubmitButton: false,
+
+				selectValueBZ: '',
+				selectRangeBZ: [],
+
+				topContent: [], //鎵弿鐐规宸ヤ綅鎵�甯﹀嚭鏉ョ殑鍐呭
+				centerContent: [], //鐐规椤圭洰鍐呭
+				scanContent: '', //鎵弿鎵嚭鏉ョ殑鍊�
+				radioValue: '', //鍗曢�夋鐨勫��
+				resultValue: '', //鐐规缁撴灉鍊�
+
+			}
+		},
+		created() {
+
+		},
+		mounted() {
+			this.init()
+
+			// this.getCheckScanDeviceQrCodeData('SB001')
+			// this.getCheckScanDeviceQrCodeData('SB002')
+			// this.getCheckScanDeviceQrCodeData('SB003')
+
+
+		},
+		methods: {
+			init() {
+				uni.stopPullDownRefresh();
+			},
+			// 鎵爜鐐规宸ヤ綅  鐨勬壂鐮佹鐐瑰嚮
+			topScanClick() {
+				let that = this;
+
+				uni.scanCode({
+					onlyFromCamera: true,
+					// scanType: ['barCode', 'qrCode'],
+					scanType: ['qrCode'],
+					success: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+						that.scanContent = res.result;
+						let flag = false
+						that.topContent.forEach(item => {
+							if (item.code === res.result) {
+								flag = true
+							}
+						})
+						if (flag) {
+							that.$u.toast('姝ゆ潯鐮佸凡鎵弿锛屽凡鍦ㄥ垪琛ㄤ腑锛�')
+						} else {
+							//澶勭悊鎵爜浜嬩欢
+							that.getCheckScanDeviceQrCodeData(that.scanContent);
+						}
+					},
+					complete: function(res) {
+
+					},
+					fail: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+					}
+
+				});
+			},
+
+			// 鐐规椤圭洰鍐呭  鐨勬壂鐮佹鐐瑰嚮
+			centerScanClick(val) {
+				let that = this;
+				uni.scanCode({
+					onlyFromCamera: true,
+					// scanType: ['barCode', 'qrCode'],
+					scanType: ['qrCode'],
+					success: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+						// that.scanContent = res.result;
+
+
+						if (res.result === val) {
+							that.centerContent.find(item => item.code === val).isDisabled = false
+							that.centerContent.find(item => item.code === val).isOK = 'OK'
+
+							if (that.centerContent.every(r => r.isOK === 'OK')) {
+								that.resultValue = 'OK'
+							}
+							if (that.centerContent.some(r => r.isOK === 'NG')) {
+								that.resultValue = 'NG'
+							}
+							if (that.centerContent.some(r => r.isOK === '')) {
+								that.resultValue = ''
+							}
+
+
+							that.$forceUpdate()
+						} else {
+							uni.$u.toast('鎵�鎵潯鐮佷笌鐐规閮ㄤ綅涓嶇鍚堬紒')
+						}
+
+
+						//澶勭悊鎵爜浜嬩欢
+						// that.SearchBarcode();
+					},
+					complete: function(res) {},
+					fail: function(res) {}
+
+				});
+			},
+
+			// 鑾峰彇鐐规宸ヤ綅
+			async getCheckScanDeviceQrCodeData(val) {
+				const data = {
+					eqpcode: val
+				}
+				const res = await CheckScanDeviceQrCodeData(data)
+
+				if (res.code === '200' && res.data[0].eqpchkmain_code !== null) { //琛ㄧず缁戝畾浜嗘爣鍑�
+					this.topContent.unshift(res.data[0])
+					// console.log(res.data[0],222);
+					this.getCheckScanDeviceTemp(res.data[0].code)
+				} else if (res.code === '200' && res.data[0].eqpchkmain_code === null) {
+					uni.$u.toast('褰撳墠璁惧鏈缃偣妫�鏍囧噯缁戝畾鐐规椤圭洰锛�')
+				}
+
+			},
+			// 鑾峰彇鐐规鏍囧噯
+			async getCheckScanDeviceTemp(eqpcode) {
+				const res = await CheckScanDeviceTemp({
+					eqpcode
+				})
+				this.selectRangeBZ = res.data.map(({
+					code,
+					name
+				}) => ({
+					text: name,
+					value: code
+				}))
+
+				this.selectValueBZ = this.selectRangeBZ[0].value
+
+				this.getSelectScanDeviceQrCodeItem(eqpcode, this.selectValueBZ)
+
+			},
+			//鐐规鏍囧噯涓嬫媺閫夋嫨鏀瑰彉
+			selectChangeBZ(val) {
+				this.selectValueBZ = val
+
+				this.getSelectScanDeviceQrCodeItem(this.radioValue, this.selectValueBZ)
+			},
+			// 鑾峰彇鐐规椤圭洰鍐呭
+			async getSelectScanDeviceQrCodeItem(eqpcode, checktempcode) {
+
+				const data = {
+					eqpcode,
+					checktempcode
+				}
+				const res = await SelectScanDeviceQrCodeItem(data)
+
+				if (res.code === '200') {
+					this.centerContent = res.data
+
+					this.centerContent.forEach(item => {
+						item.inputValue = ''
+						item.isDisabled = item.isscan === 'Y'
+						item.isOK = item.isscan !== 'Y' ? 'OK' : ''
+					})
+
+					if (this.centerContent.every(r => r.isOK === 'OK')) {
+						this.resultValue = 'OK'
+					}
+					if (this.centerContent.some(r => r.isOK === 'NG')) {
+						this.resultValue = 'NG'
+					}
+					if (this.centerContent.some(r => r.isOK === '')) {
+						this.resultValue = ''
+					}
+
+					this.radioValue = eqpcode
+					this.$forceUpdate()
+				}
+
+
+			},
+			// 鍗曢�夋寜閽偣鍑�
+			groupChange(val) {
+				this.radioValue = val
+				this.$forceUpdate()
+				this.getCheckScanDeviceTemp(val)
+			},
+
+			// 閮ㄤ綅姝e父 寮傚父鎸夐挳鐐瑰嚮
+			bwClick(item, val) {
+				item.isOK = val
+				if (this.centerContent.every(item => item.isOK !== '')) {
+					if (this.centerContent.every(item => item.isOK === 'OK')) {
+						this.resultValue = 'OK'
+					} else {
+						this.resultValue = 'NG'
+					}
+				}
+				this.$forceUpdate() //寮哄埗瑙嗗浘鏇存柊
+			},
+			// 鐐规缁撴灉鐐瑰嚮
+			resultClick(val) {
+				this.resultValue = val
+				this.$forceUpdate() //寮哄埗瑙嗗浘鏇存柊
+			},
+			// 纭鎻愪氦鎸夐挳
+			async submit() {
+				const children = []
+				this.centerContent.forEach(item => {
+					children.push({
+						seq: item.seq,
+						itemcode: item.code,
+						cycle: item.cycle,
+						value: item.inputValue,
+						result: item.isOK
+					})
+
+				})
+				const data = {
+					code: this.topContent.find(item => item.code === this.radioValue).code,
+					name: this.topContent.find(item => item.code === this.radioValue).name,
+					// standcode: this.topContent.find(item => item.code === this.radioValue).eqpchkmain_code,
+					standcode: this.selectValueBZ,
+					result: this.resultValue,
+					children: children
+				}
+
+				// console.log(data, 8);
+
+
+				this.isDisabledSubmitButton = true
+				const res = await AppDeviceCheckSave(uni.getStorageSync("username"), data)
+				if (res.code === '200') {
+
+					// this.$refs.uNotify.show({
+					// 	top: 160,
+					// 	type: 'primary',
+					// 	color: '#fff',
+					// 	bgColor: '#436df5',
+					// 	message: '鎻愪氦鎴愬姛!',
+					// 	duration: 1000 * 3,
+					// 	fontSize: 30,
+					// 	safeAreaInsetTop: false
+					// })
+					uni.$u.toast('鎻愪氦鎴愬姛锛�')
+					this.isDisabledSubmitButton = false
+					this.topContent.forEach((item, index) => {
+						if (item.code === this.radioValue) {
+							this.topContent.splice(index, 1)
+						}
+					})
+					this.radioValue = this.topContent[0].code
+					if (this.radioValue.toString().length > 0) {
+						// this.getSelectScanDeviceQrCodeItem(this.radioValue, this.topContent.find(i => i.code === this
+						// 	.radioValue).eqpchkmain_code)
+						this.getCheckScanDeviceTemp(val)
+					}
+
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import url('@/style/global.css');
+
+	::v-deep .uicon-arrow-left>span {
+		display: block;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/sbgl/sbwx.vue b/pages/sbgl/sbwx.vue
new file mode 100644
index 0000000..41b59b8
--- /dev/null
+++ b/pages/sbgl/sbwx.vue
@@ -0,0 +1,509 @@
+<template>
+	<view>
+		<page-nav title="璁惧缁翠慨"></page-nav>
+
+
+		<view v-show="topContent.length===0">
+			<div class="sacnBody">
+				<div class="boxImg"></div>
+				<div class="scanText">鏆傛棤璁惧鍙淮淇�</div>
+			</div>
+		</view>
+
+
+		<view v-show="topContent.length!==0">
+			<view class="mainContent" :style="{maxHeight:'1000rpx',overflow: 'scroll'}">
+
+				<view>
+					<u-gap height="10" bgColor="#eff0f1"></u-gap>
+					<view class="head">
+						<view class="head_block">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鎵弿缁翠慨宸ヤ綅
+								</view>
+							</view>
+
+							<view class="marginRight20">
+								<u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon>
+							</view>
+
+						</view>
+
+						<view class=" marginLeft20 marginRight20 flex_column"
+							style="max-height: 420rpx;overflow:scroll;">
+							<u-radio-group v-model="radioValue" class="flex_column">
+								<view class="marginBottom20" style="position: relative"
+									@click="groupChange(item.docu_code)" v-for="item in topContent"
+									:key="item.docu_code">
+									<view style="display: flex;float: left;">
+										<view class="titleFont">
+											<view>缁翠慨鐢宠鍗�:</view>
+											<view>宸ヤ綅缂栫爜:</view>
+											<view>宸ヤ綅鍚嶇О:</view>
+											<view>鐢熶骇杞﹂棿:</view>
+											<view>鐢宠浜哄憳:</view>
+											<view>鐢宠鏃堕棿:</view>
+											<view>鏁呴殰鏉ユ簮:</view>
+											<view>鏁呴殰鎻忚堪:</view>
+										</view>
+										<view class="contentFont">
+											<view>{{item.docu_code}}</view>
+											<view>{{item.eqpcode}}</view>
+											<view>{{item.eqpname}}</view>
+											<view>{{item.wksp_name}}</view>
+											<view>{{item.request_person}}</view>
+											<view>{{item.request_date}}</view>
+											<view>{{item.source}}</view>
+											<view style="width:400rpx;word-wrap:break-word">
+												{{item.failure_descript}}
+											</view>
+										</view>
+									</view>
+									<u-radio size='40' style='position: absolute;top: 45%;right: 0;'
+										:key="item.docu_code" :name="item.docu_code"
+										@change="groupChange(item.docu_code)" activeColor="red"></u-radio>
+
+								</view>
+							</u-radio-group>
+						</view>
+
+					</view>
+					<u-gap height="20" bgColor="#eff0f1"></u-gap>
+
+					<view class="head" style="padding-bottom: 10rpx;">
+						<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鏁呴殰鎻忚堪
+								</view>
+							</view>
+						</view>
+						<view class='inputClass contentFont' style="margin: 0 20rpx; width: 95%;">
+							<u--textarea placeholder="璇疯緭鍏�" confirm-type="send" border="surround" height='100'
+								v-model="descMessage">
+							</u--textarea>
+						</view>
+
+						<view style="display: flex;">
+							<view v-for="(pic,index) in fileList" :key="pic.name">
+								<view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
+									<u-icon name="close" color="#fff" size="26"
+										style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
+										@click="deletePic(pic)"></u-icon>
+
+									<image :src="pic.uri" @click="imgPreview(pic)" class="upLoadImg"></image>
+								</view>
+							</view>
+							<image v-if="fileList.length<3" src="../../static/img/uploadImg.png" style="width: 100rpx;height: 100rpx;border: 1rpx solid #eff0f1;border-radius: 20rpx;
+							margin: 20rpx;padding: 30rpx;
+							" @click="selectPics">
+						</view>
+					</view>
+
+
+					<u-gap height="20" bgColor="#eff0f1"></u-gap>
+
+					<view class="head" style="padding-bottom: 10rpx;">
+						<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鍋滄満缁翠慨
+								</view>
+							</view>
+
+							<view class="marginRight20" style="width: 200rpx;display: flex;">
+								<u-button type="primary" :plain="isStop!=='Y'" text="鏄�" @click="isStopClick('Y')">
+								</u-button>
+								<u-button type="warning" :plain="isStop!=='N'" text="鍚�" @click="isStopClick('N')">
+								</u-button>
+							</view>
+						</view>
+					</view>
+
+					<u-gap height="20" bgColor="#eff0f1"></u-gap>
+
+					<view v-show="isStop==='N'" class="head" style="padding-bottom: 10rpx;padding-bottom: 20rpx;">
+						<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									缁翠慨鍐呭
+								</view>
+							</view>
+						</view>
+						<view class='inputClass contentFont' style="margin: 0 20rpx; width: 95%;">
+							<u--textarea placeholder="璇疯緭鍏�" confirm-type="send" border="surround" height='100'
+								v-model="descMessage2">
+							</u--textarea>
+						</view>
+
+					</view>
+
+					<u-gap height="20" bgColor="#eff0f1"></u-gap>
+					<!-- margin-bottom: 110rpx; -->
+					<view v-show="isStop==='N'" class="head" style="padding-bottom: 10rpx;">
+						<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鏇存崲澶囦欢
+								</view>
+							</view>
+						</view>
+						<view class='inputClass contentFont' style="margin: 0 20rpx; width: 95%;">
+							<u--textarea placeholder="璇疯緭鍏�" confirm-type="send" border="surround" height='100'
+								v-model="descMessage3">
+							</u--textarea>
+						</view>
+
+						<view style="display: flex;">
+							<view v-for="(pic,index) in fileList2" :key="pic.name">
+								<view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
+									<u-icon name="close" color="#fff" size="26"
+										style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
+										@click="deletePic(pic)"></u-icon>
+
+									<image :src="pic.uri" @click="imgPreview2(pic)" class="upLoadImg"></image>
+								</view>
+							</view>
+							<image v-if="fileList2.length<3" src="../../static/img/uploadImg.png" style="width: 100rpx;height: 100rpx;border: 1rpx solid #eff0f1;border-radius: 20rpx;
+							margin: 20rpx;padding: 30rpx;
+							" @click="selectPics2">
+						</view>
+					</view>
+
+
+				</view>
+			</view>
+
+
+			<view class="footer" style="min-height:62rpx;">
+				<u-button size="large" :loading="isDisabledSubmitButton" loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary"
+					@click="submit"
+					:disabled="isStop==='Y'?descMessage.toString().length===0:descMessage.toString().length===0||descMessage2.toString().length===0"
+					text="纭鎻愪氦">
+				</u-button>
+			</view>
+
+
+		</view>
+
+		<scan-code></scan-code>
+	</view>
+</template>
+
+<script>
+	import {
+		RepairScanDeviceQrCodeDataList,
+	} from '../../config/api.js'
+	import {
+		data
+	} from '../../uni_modules/uview-ui/libs/mixin/mixin.js';
+	import scanCode from '@/components/scan-code/scan-code.vue'
+	export default {
+		components: {
+			scanCode
+		},
+		onLoad(option) {
+			const _this = this
+			uni.$off('scancodedate') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+			uni.$on('scancodedate', function(content) {
+				console.log("鎵弿鍒扮殑鍐呭涓�:", content)
+				// _this.getCheckScanDeviceQrCodeData(content)
+
+				let r = _this.topContent.find(i => i.docu_code === content)
+
+				if (r === undefined) {
+					uni.$u.toast('鎵�鎵殑浜岀淮鐮佷笉鍦ㄥ垪琛ㄤ腑锛�')
+				} else {
+					_this.topContent.forEach((item, index) => {
+						if (item.docu_code === content) {
+							_this.topContent.splice(index, 1)
+						}
+					})
+					_this.topContent.unshift(r)
+					_this.radioValue = content
+				}
+			})
+		},
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.init(() => {
+					uni.stopPullDownRefresh();
+				})
+			}, 1000);
+		},
+		data() {
+			return {
+				isDisabledSubmitButton: false,
+
+				topContent: [], //鎵弿淇濆吇宸ヤ綅鎵�甯﹀嚭鏉ョ殑鍐呭
+				centerContent: [], //
+				scanContent: '', //鎵弿鎵嚭鏉ョ殑鍊�
+				radioValue: '', //鍗曢�夋鐨勫��
+				descMessage: '', //鏁呴殰鎻忚堪
+				imgPreviewSrcs: [], //鍥剧墖棰勮src   鏁呴殰鎻忚堪
+				fileList: [], //鍥剧墖鏁扮粍         鏁呴殰鎻忚堪
+				isStop: 'Y',
+				descMessage2: '', //缁翠慨鍐呭
+				descMessage3: '', //鏇存崲澶囦欢
+				fileList2: [], //鏇存崲澶囦欢鍥剧墖
+				imgPreviewSrcs2: [],
+			}
+		},
+		created() {
+
+		},
+		mounted() {
+			this.init()
+			this.getRepairScanDeviceQrCodeDataList()
+		},
+		methods: {
+			// 閫夋嫨鍥剧墖
+			selectPics() {
+				var that = this;
+				uni.chooseImage({
+					count: 3,
+					success: (res) => {
+						const files = res.tempFiles;
+						for (let i = 0; i < files.length; i++) {
+							let obj = new Object();
+							obj.name = 'files1;' + i + new Date().getTime();
+							obj.uri = files[i].path;
+							that.fileList.push(obj);
+							if (obj.src == null || obj.src == '' || obj.src == undefined) {
+								that.imgPreviewSrcs.push(obj.uri)
+							} else {
+								that.imgPreviewSrcs.push(obj.src)
+							}
+
+						}
+					}
+				})
+			},
+
+			selectPics2() {
+				var that = this;
+				uni.chooseImage({
+					count: 3,
+					success: (res) => {
+						const files = res.tempFiles;
+						for (let i = 0; i < files.length; i++) {
+							let obj = new Object();
+							obj.name = 'files2;' + i + new Date().getTime();
+							obj.uri = files[i].path;
+							that.fileList2.push(obj);
+							if (obj.src == null || obj.src == '' || obj.src == undefined) {
+								that.imgPreviewSrcs2.push(obj.uri)
+							} else {
+								that.imgPreviewSrcs2.push(obj.src)
+							}
+
+						}
+					}
+				})
+			},
+
+			// 棰勮鍥剧墖
+			imgPreview(img) {
+				uni.previewImage({
+					current: this.fileList.findIndex(i => i.name === img.name),
+					indicator: "number",
+					loop: true,
+					urls: this.imgPreviewSrcs
+				})
+			},
+			imgPreview2(img) {
+				uni.previewImage({
+					current: this.fileList2.findIndex(i => i.name === img.name),
+					indicator: "number",
+					loop: true,
+					urls: this.imgPreviewSrcs2
+				})
+			},
+			// 鍒犻櫎鍥剧墖
+			deletePic(img) {
+				this.fileList = this.fileList.filter(i => i.name !== img.name)
+				this.fileList2 = this.fileList2.filter(i => i.name !== img.name)
+				this.imgPreviewSrcs = this.imgPreviewSrcs.filter(i => i !== img.uri)
+				this.imgPreviewSrcs2 = this.imgPreviewSrcs2.filter(i => i !== img.uri)
+			},
+			init() {
+				uni.stopPullDownRefresh();
+			},
+			// 鍗曢�夋寜閽�変腑鍊兼敼鍙�
+			groupChange(val) {
+				this.radioValue = val
+				this.descMessage = ''
+				this.imgPreviewSrcs = []
+				this.fileList = []
+				this.isStop = 'Y'
+				this.descMessage2 = ''
+				this.descMessage3 = ''
+				this.fileList2 = []
+				this.imgPreviewSrcs2 = []
+				this.$forceUpdate()
+			},
+			// 鍋滄満缁翠慨
+			isStopClick(val) {
+				this.isStop = val
+				if (val === 'Y') {
+					this.descMessage2 = ''
+					this.descMessage3 = ''
+					this.fileList2 = []
+					this.imgPreviewSrcs2 = []
+				}
+
+			},
+			// 鎵爜宸ヤ綅  鐨勬壂鐮佹鐐瑰嚮
+			topScanClick() {
+				let that = this;
+				uni.scanCode({
+					onlyFromCamera: true,
+					// scanType: ['barCode', 'qrCode'],
+					scanType: ['qrCode'],
+					success: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+						that.scanContent = res.result;
+
+
+
+						let r = that.topContent.find(i => i.docu_code === that.scanContent)
+
+						if (r === undefined) {
+							uni.$u.toast('鎵�鎵殑浜岀淮鐮佷笉鍦ㄥ垪琛ㄤ腑锛�')
+						} else {
+							that.topContent.forEach((item, index) => {
+								if (item.docu_code === that.scanContent) {
+									that.topContent.splice(index, 1)
+								}
+							})
+							that.topContent.unshift(r)
+							that.radioValue = that.scanContent
+						}
+
+					},
+					complete: function(res) {
+
+					},
+					fail: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+					}
+
+				});
+			},
+
+			// 鑾峰彇缁翠慨宸ヤ綅    
+			async getRepairScanDeviceQrCodeDataList(val) {
+				const res = await RepairScanDeviceQrCodeDataList()
+				if (res.code === '200') {
+					this.topContent = res.data
+					this.radioValue = this.topContent.length > 0 ? this.topContent[0].docu_code : ''
+				}
+			},
+
+			// 纭鎻愪氦鎸夐挳
+			async submit() {
+				const header = {
+					// 'Content-Type': 'multipart/form-data',
+					'Content-Type': 'application/x-www-form-urlencoded',
+					'rediskey': uni.getStorageSync('rediskey'),
+					'admin': uni.getStorageSync('usercode'),
+					'username': encodeURIComponent(uni.getStorageSync('username')),
+					'navTabId': uni.getStorageSync('usercode'),
+					'userid': uni.getStorageSync('userid'),
+					'guid': uni.getStorageSync('guid'),
+					'usertype': 'APP'
+				}
+
+				const result = this.topContent.find(item => item.docu_code === this.radioValue)
+				const formData = {
+					username: uni.getStorageSync('username'),
+					docu_code: result.docu_code,
+					eqpcode: result.eqpcode,
+					wkshpcode: result.wksp_code,
+					faultdescr: this.descMessage,
+					is_stoprepair: this.isStop,
+					// files1: this.fileList,
+					repaircontent: this.descMessage2,
+					replaceparts: this.descMessage3
+				}
+				// console.log(formData)
+				// console.log([...this.fileList, ...this.fileList2].length)
+				this.isDisabledSubmitButton = true
+				uni.uploadFile({
+					url: this.$baseUrl + '/AppDeviceManage/RepairScanDeviceSave',
+					files: [...this.fileList, ...this.fileList2].length === 0 ? [{
+						"uri": "/"
+					}] : [...this.fileList, ...this.fileList2],
+					header: header,
+					formData: formData,
+					success: (res) => {
+						console.log(res)
+						let result = JSON.parse(res.data)
+						if (res.statusCode == 200 && result.code == '200') {
+							uni.$u.toast('鎻愪氦鎴愬姛锛�')
+							this.topContent = this.topContent.filter(i => i.docu_code !== this.radioValue)
+							this.radioValue = this.topContent.length === 0 ? '' : this.topContent[0]
+								.docu_code
+							this.descMessage = ''
+							this.imgPreviewSrcs = []
+							this.fileList = []
+							this.isStop = 'Y'
+							this.descMessage2 = ''
+							this.descMessage3 = ''
+							this.fileList2 = []
+							this.imgPreviewSrcs2 = []
+						} else {
+							uni.$u.toast(result.Message)
+						}
+						this.isDisabledSubmitButton = false
+					},
+					fail(res) {
+						uni.$u.toast('鎻愪氦澶辫触锛�')
+						this.isDisabledSubmitButton = false
+					},
+				})
+
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import url('@/style/global.css');
+
+	.u-radio {
+		justify-content: flex-end;
+	}
+
+	::v-deep .uicon-arrow-left>span {
+		display: block;
+	}
+
+	::v-deep .uicon-camera-fill {
+		font-size: 60rpx !important;
+	}
+
+	.uploader {
+		/deep/.u-add-tips {
+			display: none;
+		}
+	}
+
+	::v-deep .uni-progress-bar {
+		background-color: transparent !important;
+	}
+
+	.upLoadImg {
+		width: 160rpx;
+		height: 160rpx;
+		border-radius: 20rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/sbgl/wxsq.vue b/pages/sbgl/wxsq.vue
new file mode 100644
index 0000000..d740d43
--- /dev/null
+++ b/pages/sbgl/wxsq.vue
@@ -0,0 +1,419 @@
+<template>
+	<view>
+		<page-nav title="璁惧缁翠慨鐢宠"></page-nav>
+
+
+		<view v-show="topContent.length===0">
+			<div class="sacnBody">
+				<div class="scanImg" @click="topScanClick"></div>
+				<div class="scanText">鎵弿缁翠慨宸ヤ綅</div>
+			</div>
+		</view>
+
+
+		<view v-show="topContent.length!==0">
+			<view class="mainContent">
+				<view>
+					<u-gap height="10" bgColor="#eff0f1"></u-gap>
+					<view class="head" style="max-height: 370rpx;overflow:scroll;">
+						<view class="head_block">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鎵弿缁翠慨宸ヤ綅
+								</view>
+							</view>
+
+							<view class="marginRight20">
+								<u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon>
+							</view>
+
+						</view>
+
+						<view class="marginTop20 marginLeft20 marginRight20 flex_column">
+							<!-- <u-radio-group class=""> -->
+							<view class="marginBottom20 flex_between" @click="groupChange(item.code)"
+								v-for="item in topContent" :key="item.code">
+								<view style="display: flex;">
+									<view class="flex_column titleFont">
+										<view>宸ヤ綅缂栫爜锛�</view>
+										<view>宸ヤ綅鍚嶇О锛�</view>
+										<view>鐢熶骇杞﹂棿锛�</view>
+									</view>
+									<view class="flex_column contentFont">
+										<view>{{item.code}}</view>
+										<view>{{item.name}}</view>
+										<view>{{item.wksp_name}}</view>
+									</view>
+								</view>
+								<!-- 	<u-radio size='40' :key="item.code" :name="item.code"
+										@change="groupChange(item.code)" activeColor="red"></u-radio> -->
+							</view>
+							<!-- </u-radio-group> -->
+						</view>
+
+					</view>
+					<u-gap height="20" bgColor="#eff0f1"></u-gap>
+
+					<view class="head" style="padding-bottom: 10rpx;">
+						<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鏁呴殰鏉ユ簮
+								</view>
+							</view>
+
+							<view class="marginRight20" style="width: 200rpx;">
+								<uni-data-select v-model="selectValue" :clear="false" :localdata="selectRange"
+									@change="selectChange">
+								</uni-data-select>
+							</view>
+						</view>
+					</view>
+					<u-gap height="20" bgColor="#eff0f1"></u-gap>
+
+					<view class="head" style="padding-bottom: 10rpx;">
+						<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鏁呴殰鎻忚堪
+								</view>
+							</view>
+						</view>
+						<view class='inputClass  contentFont' style="margin: 0 20rpx; width: 95%;">
+							<u--textarea placeholder="璇疯緭鍏�" confirm-type="send" border="surround" height='140'
+								v-model="descMessage">
+							</u--textarea>
+						</view>
+
+
+
+						<view style="display: flex;">
+							<view v-for="(pic,index) in fileList" :key="pic.name">
+								<view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
+									<u-icon name="close" color="#fff" size="26"
+										style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
+										@click="deletePic(pic)"></u-icon>
+
+									<image :src="pic.uri" @click="imgPreview(pic)" class="upLoadImg"></image>
+								</view>
+							</view>
+							<image v-if="fileList.length<3" src="../../static/img/uploadImg.png" style="width: 100rpx;height: 100rpx;border: 1rpx solid #eff0f1;border-radius: 20rpx;
+							margin: 20rpx;padding: 30rpx;
+							" @click="selectPics">
+						</view>
+
+					</view>
+
+				</view>
+			</view>
+
+
+
+			<u-button size="large" :loading="isDisabledSubmitButton" loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary"
+				@click="submit" :disabled="descMessage.toString().length===0" text="纭鎻愪氦">
+			</u-button>
+
+		</view>
+
+
+		<scan-code></scan-code>
+	</view>
+</template>
+
+<script>
+	import {
+		MaintainScanDeviceApplyQrCodeData,
+		MaintainScanDeviceApplySave
+	} from '../../config/api.js'
+	import {
+		data
+	} from '../../uni_modules/uview-ui/libs/mixin/mixin.js';
+	import scanCode from '@/components/scan-code/scan-code.vue'
+
+	export default {
+		components: {
+			scanCode
+		},
+		onLoad(option) {
+			const _this = this
+			uni.$off('scancodedate') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+			uni.$on('scancodedate', function(content) {
+				console.log("鎵弿鍒扮殑鍐呭涓�:", content)
+				_this.getMaintainScanDeviceApplyQrCodeData(content)
+			})
+		},
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.init(() => {
+					uni.stopPullDownRefresh();
+				})
+			}, 1000);
+		},
+		data() {
+			return {
+				isDisabledSubmitButton: false,
+
+				topContent: [], //鎵弿淇濆吇宸ヤ綅鎵�甯﹀嚭鏉ョ殑鍐呭
+				centerContent: [], //淇濆吇椤圭洰鍐呭
+				scanContent: '', //鎵弿鎵嚭鏉ョ殑鍊�
+				// radioValue: '', //鍗曢�夋鐨勫��
+
+				selectValue: 'A',
+				selectRange: [{
+					value: 'A',
+					text: '璁惧鐐规'
+				}, {
+					value: 'B',
+					text: '璁惧淇濆吇'
+				}, {
+					value: 'C',
+					text: '瀹夌伅鍛煎彨'
+				}, {
+					value: 'D',
+					text: '鎵嬪伐'
+				}],
+				descMessage: '', //鏁呴殰鎻忚堪
+
+				imgPreviewSrcs: [], //鍥剧墖棰勮src
+				fileList: [], //鍥剧墖鏁扮粍
+			}
+		},
+		created() {
+			// const a = [{
+			// 	name: 1
+			// }]
+			// const b = [{
+			// 	name: 1
+			// }]
+			// console.log([...a, ...b])
+		},
+		mounted() {
+			this.init()
+			this.getMaintainScanDeviceApplyQrCodeData('SB001')
+			// this.getMaintainScanDeviceApplyQrCodeData('SB002')
+			// this.getMaintainScanDeviceApplyQrCodeData('SB003')
+			// this.getMaintainScanDeviceApplyQrCodeData('SB005')
+		},
+		methods: {
+			// 閫夋嫨鍥剧墖
+			selectPics() {
+				var that = this;
+				uni.chooseImage({
+					count: 3,
+					success: (res) => {
+						const files = res.tempFiles;
+						for (let i = 0; i < files.length; i++) {
+							let obj = new Object();
+							obj.name = 'photo' + i + new Date().getTime();
+							obj.uri = files[i].path;
+							that.fileList.push(obj);
+							if (obj.src == null || obj.src == '' || obj.src == undefined) {
+								that.imgPreviewSrcs.push(obj.uri)
+							} else {
+								that.imgPreviewSrcs.push(obj.src)
+							}
+
+						}
+					}
+				})
+			},
+			// 棰勮鍥剧墖
+			imgPreview(img) {
+				uni.previewImage({
+					current: this.fileList.findIndex(i => i.name === img.name),
+					indicator: "number",
+					loop: true,
+					urls: this.imgPreviewSrcs
+
+				})
+			},
+			// 鍒犻櫎鍥剧墖
+			deletePic(img) {
+				console.log(img)
+				this.fileList = this.fileList.filter(i => i.name !== img.name)
+				this.imgPreviewSrcs = this.imgPreviewSrcs.filter(i => i !== img.uri)
+			},
+			init() {
+				uni.stopPullDownRefresh();
+			},
+
+			selectChange(val) {
+				console.log(val)
+			},
+			// 鎵爜宸ヤ綅  鐨勬壂鐮佹鐐瑰嚮
+			topScanClick() {
+				// if (this.topContent.length > 0) {
+				// 	return uni.$u.toast('璇峰厛鎻愪氦姝ょ淮淇敵璇凤紒')
+				// }
+
+				let that = this;
+				uni.scanCode({
+					onlyFromCamera: true,
+					// scanType: ['barCode', 'qrCode'],
+					scanType: ['qrCode'],
+					success: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+						that.scanContent = res.result;
+						let flag = false
+						that.topContent.forEach(item => {
+							if (item.code === res.result) {
+								flag = true
+							}
+						})
+						if (flag) {
+							that.$u.toast('姝ゆ潯鐮佸凡鎵弿锛屽凡鍦ㄥ垪琛ㄤ腑锛�')
+						} else {
+							//澶勭悊鎵爜浜嬩欢
+							that.getMaintainScanDeviceApplyQrCodeData(that.scanContent);
+						}
+					},
+					complete: function(res) {
+
+					},
+					fail: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+					}
+
+				});
+			},
+
+			// 鑾峰彇缁翠慨宸ヤ綅    
+			async getMaintainScanDeviceApplyQrCodeData(val) {
+				const data = {
+					eqpcode: val
+				}
+
+				const res = await MaintainScanDeviceApplyQrCodeData(data)
+				if (res.code === '200') {
+					this.topContent = []
+					this.topContent.unshift(res.data[0])
+				}
+			},
+
+			// 纭鎻愪氦鎸夐挳
+			async submit() {
+				const header = {
+					// 'Content-Type': 'multipart/form-data',
+					'Content-Type': 'application/x-www-form-urlencoded',
+					'rediskey': uni.getStorageSync('rediskey'),
+					'admin': uni.getStorageSync('usercode'),
+					'username': encodeURIComponent(uni.getStorageSync('username')),
+					'navTabId': uni.getStorageSync('usercode'),
+					'userid': uni.getStorageSync('userid'),
+					'guid': uni.getStorageSync('guid'),
+					'usertype': 'APP'
+				}
+
+
+
+
+				/*
+					鍦ㄧ數鑴戜笂璇锋眰鏄渶瑕丠5鐨勪唬鐮� 
+					鎵嬫満涓婅姹傛槸闇�瑕丄PP-PLUS鐨勪唬鐮�
+				*/
+				// #ifdef H5
+				// console.log('H5')
+				// let formData = new FormData()
+				// formData.append("username", uni.getStorageSync('username'))
+				// formData.append("eqpcode", this.topContent[0].code)
+				// formData.append("wkshpcode", this.topContent[0].wksp_code)
+				// formData.append("faultsourcecode", this.selectValue)
+				// formData.append("faultdescr", this.descMessage)
+				// this.fileList.forEach((item, index) => {
+				// 	formData.append('files1', item.file)
+				// })
+				// MaintainScanDeviceApplySave(formData).then(res => {
+				// 	console.log(res, 1)
+				// })
+				// #endif
+
+
+
+
+
+				// #ifdef APP-PLUS ||MP  
+				// const temp = [{
+				// 	name: 'files1'
+				// }]
+
+				let formData = {
+					username: uni.getStorageSync('username'),
+					eqpcode: this.topContent[0].code,
+					wkshpcode: this.topContent[0].wksp_code,
+					faultsourcecode: this.selectValue,
+					faultdescr: this.descMessage,
+				}
+
+
+				console.log(formData)
+
+
+				this.isDisabledSubmitButton = true
+				uni.uploadFile({
+					url: this.$baseUrl + '/AppDeviceManage/MaintainScanDeviceApplySave',
+					files: this.fileList.length === 0 ? [{
+						uri: '/'
+					}] : this.fileList,
+					// files: [{"uri": "/"	}],
+					header: header,
+					formData: formData,
+					success: (res) => {
+						let result = JSON.parse(res.data)
+						if (res.statusCode == 200 && result.code == '200') {
+							uni.$u.toast('鎻愪氦鎴愬姛锛�')
+							this.fileList = []
+							this.imgPreviewSrcs = []
+							this.descMessage = ''
+							this.topContent = []
+							this.centerContent = []
+						} else {
+							uni.$u.toast(result.Message)
+						}
+						this.isDisabledSubmitButton = false
+					},
+					fail(res) {
+						uni.$u.toast('鎻愪氦澶辫触锛�')
+						this.isDisabledSubmitButton = false
+					},
+				})
+
+				// #endif
+
+
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import url('@/style/global.css');
+
+	::v-deep .uicon-arrow-left>span {
+		display: block;
+	}
+
+	::v-deep .uicon-camera-fill {
+		font-size: 60rpx !important;
+	}
+
+	.uploader {
+		/deep/.u-add-tips {
+			display: none;
+		}
+	}
+
+	::v-deep .uni-progress-bar {
+		background-color: transparent !important;
+	}
+
+	.upLoadImg {
+		width: 160rpx;
+		height: 160rpx;
+		border-radius: 20rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/sbgl/wxyz.vue b/pages/sbgl/wxyz.vue
new file mode 100644
index 0000000..83f1b1b
--- /dev/null
+++ b/pages/sbgl/wxyz.vue
@@ -0,0 +1,603 @@
+<template>
+	<view>
+		<page-nav title="缁翠慨楠岃瘉"></page-nav>
+
+
+		<view v-show="topContent.length===0">
+			<div class="sacnBody">
+				<div class="boxImg"></div>
+				<div class="scanText">鏆傛棤缁翠慨鍙獙璇�</div>
+			</div>
+		</view>
+
+
+		<view v-show="topContent.length!==0">
+			<view class="mainContent">
+				<view>
+					<u-gap height="10" bgColor="#eff0f1"></u-gap>
+					<view class="head">
+						<view class="head_block">
+							<view class="head_left">
+								<view class="head_bar"></view>
+								<view class="head_title">
+									鎵弿缁翠慨宸ヤ綅
+								</view>
+							</view>
+
+							<view class="marginRight20">
+								<u-icon name="scan" @click="topScanClick" color="red" size="56"></u-icon>
+							</view>
+
+						</view>
+
+
+
+						<view :style="{maxHeight:'1000rpx',overflow: 'scroll'}">
+							<view class="marginTop20 marginLeft20 marginRight20 flex_column">
+
+								<u-radio-group v-model="radioValue" class="flex_column">
+									<view class="marginBottom20 flex_column" style="width: 100%;"
+										@click="groupChange(item.repair_code)" v-for="item in topContent"
+										:key="item.repair_code">
+										<view class="flex_between marginBottom20">
+											<view style="display: flex;">
+												<view class="flex_column titleFont">
+													<view>缁翠慨缁翠慨鍗曪細</view>
+													<view>宸ヤ綅缂栫爜锛�</view>
+													<view>宸ヤ綅鍚嶇О锛�</view>
+													<view>鐢熶骇杞﹂棿锛�</view>
+													<view>缁翠慨浜哄憳锛�</view>
+													<view>缁翠慨鏃堕棿锛�</view>
+													<view>鍋滄満缁翠慨锛�</view>
+													<view>鏁呴殰鎻忚堪锛�</view>
+												</view>
+												<view class="flex_column contentFont">
+													<view>{{item.repair_code}}</view>
+													<view>{{item.eqpcode}}</view>
+													<view>{{item.eqpname}}</view>
+													<view>{{item.wksp_name}}</view>
+													<view>{{item.repair_person}}</view>
+													<view>{{item.repair_date}}</view>
+													<view>{{item.is_shutdown==='Y'?'鏄�':'鍚�'}}</view>
+													<view style="width:400rpx;word-wrap:break-word">
+														{{item.failure_descript}}
+													</view>
+												</view>
+											</view>
+											<u-radio size='40' :key="item.repair_code" :name="item.repair_code"
+												@change="groupChange(item.repair_code)" activeColor="red"></u-radio>
+										</view>
+
+
+										<view v-show="!item.arrowType" class="repairDetail">
+											缁翠慨璇︽儏
+										</view>
+										<view class="head" v-show="!item.arrowType" style="padding-bottom: 10rpx;">
+											<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+												<view class="head_left">
+													<view class="head_bar"></view>
+													<view class="head_title">
+														鏁呴殰鎻忚堪
+													</view>
+												</view>
+											</view>
+											<view style="margin: 0 20rpx; width: 95%;" class="contentFont">
+												{{descMessage}}
+											</view>
+											<view style="display: flex;" v-show="fileList.length!==0">
+												<view v-for="(pic,index) in fileList" :key="index">
+													<view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
+														<!-- 										<u-icon name="close" color="#fff" size="26"
+														style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
+														@click="deletePic(pic)"></u-icon>
+ -->
+														<image :src="baseUrl+ pic.img1url" @click="imgPreview(pic)"
+															class="upLoadImg">
+														</image>
+													</view>
+												</view>
+
+											</view>
+										</view>
+
+
+										<u-gap height="5" v-show="!item.arrowType" bgColor="#eff0f1"
+											style='width: 106%;margin-left: -3%;'></u-gap>
+										<view class="head" v-show="!item.arrowType" style="padding-bottom: 10rpx;">
+											<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+												<view class="head_left">
+													<view class="head_bar"></view>
+													<view class="head_title">
+														鍋滄満缁翠慨
+													</view>
+												</view>
+
+												<view class="" style="width: 90rpx;display: flex;">
+													<u-button type="primary" disabled
+														:text="descMessage2.toString().length>0?'鍚�':'鏄�'">
+													</u-button>
+												</view>
+											</view>
+										</view>
+
+										<u-gap height="5" v-show="!item.arrowType&&descMessage2" bgColor="#eff0f1"
+											style='width: 106%;margin-left: -3%;'></u-gap>
+
+										<view class="head" v-show="!item.arrowType&&descMessage2"
+											style="padding-bottom: 10rpx;">
+											<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+												<view class="head_left">
+													<view class="head_bar"></view>
+													<view class="head_title">
+														缁翠慨鍐呭
+													</view>
+												</view>
+											</view>
+											<view style="margin: 0 20rpx; width: 95%;" class="contentFont">
+												{{descMessage2}}
+											</view>
+										</view>
+
+										<u-gap height="5" v-show="!item.arrowType&&descMessage3" bgColor="#eff0f1"
+											style='width: 106%;margin-left: -3%;'></u-gap>
+
+										<view class="head" v-show="!item.arrowType&&descMessage3"
+											style="padding-bottom: 10rpx;">
+											<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+												<view class="head_left">
+													<view class="head_bar"></view>
+													<view class="head_title">
+														鏇存崲澶囦欢
+													</view>
+												</view>
+											</view>
+
+
+											<view style="margin: 0 20rpx; width: 95%;" class="contentFont">
+												{{descMessage3}}
+											</view>
+											<view style="display: flex;" v-show="fileList2.length!==0">
+												<view v-for="(pic,index) in fileList2" :key="index">
+													<view style="margin: 20rpx 0rpx 20rpx 20rpx;position: relative;">
+														<!-- 								<u-icon name="close" color="#fff" size="26"
+														style="position: absolute;z-index: 10;right: 0;background-color: black;border-radius:50%;"
+														@click="deletePic(pic)"></u-icon>
+ -->
+														<image :src="baseUrl+ pic.img2url" @click="imgPreview2(pic)"
+															class="upLoadImg">
+														</image>
+													</view>
+												</view>
+
+											</view>
+										</view>
+
+
+										<u-gap height="5" v-show="!item.arrowType" bgColor="#eff0f1"
+											style='width: 106%;margin-left: -3%;'></u-gap>
+										<view class="head" v-show="!item.arrowType" style="padding-bottom: 10rpx;">
+											<view class="head_block" style="margin-bottom: 10rpx;margin-top:20rpx;">
+												<view class="head_left">
+													<view class="head_bar"></view>
+													<view class="head_title">
+														楠岃瘉缁撴灉
+													</view>
+												</view>
+
+
+												<view class=" " style="width: 190rpx;display: flex;"
+													:key="Math.random()+item.repair_code">
+													<u-button :plain="item.resultValue!=='OK'" text="姝e父"
+														@click="resultValueClick(item.repair_code,'OK')"
+														:key="Math.random()+item.repair_code+'OK'" type="primary">
+
+													</u-button>
+													<u-button type="warning" :plain="item.resultValue!=='NG'"
+														:key="Math.random()+item.repair_code+'NG'" text="寮傚父"
+														@click="resultValueClick(item.repair_code,'NG')">
+													</u-button>
+												</view>
+											</view>
+										</view>
+
+										<!-- <u-gap height="16" v-show="!item.arrowType" bgColor="#eff0f1"
+											style='width: 106%;margin-left: -3%;'></u-gap> -->
+
+										<view style="display: flex;justify-content: center;margin : 10rpx; 0">
+											<view class="arrowClass"
+												@click="item.arrowType?arrowDownClick(item):arrowUpClick(item)">
+												<u-icon :name="item.arrowType?'arrow-down':'arrow-up'" color="#c8c8c8"
+													size="50"></u-icon>
+											</view>
+										</view>
+
+
+										<u-gap height="16" bgColor="#eff0f1" style="width: 106%;margin-left: -3%;">
+										</u-gap>
+									</view>
+								</u-radio-group>
+							</view>
+						</view>
+					</view>
+
+				</view>
+			</view>
+
+			<view class="footer" style="min-height:62rpx;">
+				<u-button size="large" :loading="isDisabledSubmitButton" loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary"
+					@click="submit"
+					:disabled="topContent.length>0? topContent.find(i=>i.repair_code===radioValue).resultValue==='':true"
+					text="纭鎻愪氦">
+				</u-button>
+			</view>
+
+
+
+		</view>
+
+
+		<scan-code></scan-code>
+	</view>
+</template>
+
+<script>
+	import {
+		// RepairVerificationScanDeviceData,
+		// RepairVerificationScanDeviceDataSub
+	} from '../../config/api.js'
+	import {
+		data
+	} from '../../uni_modules/uview-ui/libs/mixin/mixin.js';
+	import scanCode from '@/components/scan-code/scan-code.vue'
+
+	export default {
+		components: {
+			scanCode
+		},
+		onLoad(option) {
+			const _this = this
+			uni.$off('scancodedate') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+			uni.$on('scancodedate', function(content) {
+				console.log("鎵弿鍒扮殑鍐呭涓�:", content)
+
+
+				let r = _this.topContent.find(i => i.repair_code === content)
+
+				if (r === undefined) {
+					uni.$u.toast('鎵�鎵殑浜岀淮鐮佷笉鍦ㄥ垪琛ㄤ腑锛�')
+					// return
+				} else {
+					_this.topContent.forEach((item, index) => {
+						if (item.repair_code === content) {
+							_this.topContent.splice(index, 1)
+						}
+					})
+					_this.topContent.unshift(r)
+					_this.radioValue = content
+				}
+			})
+		},
+		onPullDownRefresh() {
+			setTimeout(() => {
+				this.init(() => {
+					uni.stopPullDownRefresh();
+				})
+			}, 1000);
+		},
+		data() {
+			return {
+				isDisabledSubmitButton: false,
+				baseUrl: 'http://121.196.36.24:8001',
+				topContent: [], //鎵弿淇濆吇宸ヤ綅鎵�甯﹀嚭鏉ョ殑鍐呭
+				radioValue: '', //鍗曢�夋鐨勫��
+				scanContent: '', //鎵弿鎵嚭鏉ョ殑鍊�
+
+				detailContent: [], //鏄剧ず璇︽儏鍐呭
+
+				descMessage: '', // 
+				descMessage2: '', // 
+				descMessage3: '', // 
+				imgPreviewSrcs: [], //鍥剧墖棰勮src   鏁呴殰鎻忚堪
+				fileList: [], //鍥剧墖鏁扮粍         鏁呴殰鎻忚堪
+				fileList2: [], //鏇存崲澶囦欢鍥剧墖
+				imgPreviewSrcs2: [],
+
+
+
+			}
+		},
+		created() {
+
+
+		},
+		mounted() {
+			this.init()
+			this.getRepairVerificationScanDeviceData()
+		},
+		methods: {
+			// 棰勮鍥剧墖
+			imgPreview(img) {
+				console.log(img)
+				uni.previewImage({
+					current: this.fileList.findIndex(i => i.img1url === img.img1url),
+					indicator: "number",
+					loop: true,
+					urls: this.imgPreviewSrcs
+				})
+			},
+			imgPreview2(img) {
+				uni.previewImage({
+					current: this.fileList2.findIndex(i => i.img2url === img.img2url),
+					indicator: "number",
+					loop: true,
+					urls: this.imgPreviewSrcs2
+				})
+			},
+			init() {
+				uni.stopPullDownRefresh();
+			},
+			// 鍗曢�夋寜閽�変腑鍊兼敼鍙�
+			groupChange(repair_code) {
+				this.radioValue = repair_code
+				this.topContent.forEach(item => {
+					if (item.repair_code !== repair_code) {
+						item.resultValue = ''
+					}
+				})
+				this.$forceUpdate()
+
+			},
+
+			// 鎵爜妗嗙偣鍑�
+			topScanClick() {
+				let that = this;
+				uni.scanCode({
+					onlyFromCamera: true,
+					// scanType: ['barCode', 'qrCode'],
+					scanType: ['qrCode'],
+					success: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+						that.scanContent = res.result;
+
+
+
+						let r = that.topContent.find(i => i.repair_code === that.scanContent)
+
+						if (r === undefined) {
+							uni.$u.toast('鎵�鎵殑浜岀淮鐮佷笉鍦ㄥ垪琛ㄤ腑锛�')
+						} else {
+							that.topContent.forEach((item, index) => {
+								if (item.repair_code === that.scanContent) {
+									that.topContent.splice(index, 1)
+								}
+							})
+							that.topContent.unshift(r)
+							that.radioValue = that.scanContent
+						}
+
+					},
+					complete: function(res) {
+
+					},
+					fail: function(res) {
+						console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+						console.log('鏉$爜鍐呭锛�' + res.result);
+					}
+
+				});
+			},
+
+			// 鑾峰彇缁翠慨鍒楄〃    
+			async getRepairVerificationScanDeviceData(val) {
+				const res = await RepairVerificationScanDeviceData()
+				if (res.code === '200') {
+					this.topContent = res.data
+					this.topContent.forEach(i => {
+						i.arrowType = true
+						i.resultValue = ''
+					})
+					if (this.topContent.length > 0) {
+						this.getRepairVerificationScanDeviceDataSub(this.topContent[0].repair_code, this.topContent[0]
+							.eqpcode, this.topContent[0].wksp_code)
+					}
+					this.radioValue = this.topContent.length > 0 ? this.topContent[0].repair_code : ''
+					// console.log(this.topContent, 1)
+					this.$forceUpdate()
+
+				}
+			},
+			// 鑾峰彇缁翠慨鍒楄〃璇︽儏
+			async getRepairVerificationScanDeviceDataSub(repair_code, eqpcode, wkshpcode) {
+				const res = await RepairVerificationScanDeviceDataSub(repair_code, eqpcode, wkshpcode)
+				this.detailContent = res.data
+
+				this.descMessage = this.detailContent.failure_descript
+				this.fileList = this.detailContent.failure_descriptimg ? this.detailContent.failure_descriptimg.filter(
+					i => i.img1url !== '') : []
+
+				this.imgPreviewSrcs = []
+				this.fileList.forEach(i => {
+					this.imgPreviewSrcs.push(this.baseUrl + i.img1url)
+				})
+
+				this.descMessage2 = this.detailContent.repair_content ? this.detailContent.repair_content : ''
+				this.descMessage3 = this.detailContent.repair_part ? this.detailContent.repair_part : ''
+				this.fileList2 = this.detailContent.repair_partimage ? this.detailContent.repair_partimage.filter(i =>
+					i.img2url !== '') : []
+				this.imgPreviewSrcs2 = []
+				this.fileList2.forEach(i => {
+					this.imgPreviewSrcs2.push(this.baseUrl + i.img2url)
+				})
+
+				this.$forceUpdate()
+			},
+			// 鍚戜笅鐨勭澶寸偣鍑�
+			arrowDownClick(val) {
+				this.topContent.forEach(item => {
+					item.arrowType = true
+					if (item.repair_code === val.repair_code) {
+						item.arrowType = false
+						item.resultValue = item.resultValue ? item.resultValue : ''
+						this.descMessage = ''
+						this.descMessage2 = ''
+						this.descMessage3 = ''
+						this.fileList = []
+						this.fileList2 = []
+						this.imgPreviewSrcs = []
+						this.imgPreviewSrcs2 = []
+						this.getRepairVerificationScanDeviceDataSub(item.repair_code, item.eqpcode, item.wksp_code)
+					}
+				})
+				this.$forceUpdate()
+			},
+			//鍚戜笂浠庣澶寸偣鍑�
+			arrowUpClick(val) {
+				this.topContent.forEach(item => {
+					item.arrowType = true
+				})
+				this.$forceUpdate()
+			},
+			// 楠岃瘉缁撴灉鐐瑰嚮
+			resultValueClick(repair_code, val) {
+				console.log(repair_code, val)
+				this.topContent.forEach(item => {
+					if (item.repair_code === repair_code) {
+						item.resultValue = val
+					}
+				})
+				console.log(this.topContent, 8)
+				this.$forceUpdate()
+			},
+			// 纭鎻愪氦鎸夐挳
+			async submit() {
+				const header = {
+					// 'Content-Type': 'multipart/form-data',
+					'Content-Type': 'application/x-www-form-urlencoded',
+					'rediskey': uni.getStorageSync('rediskey'),
+					'admin': uni.getStorageSync('usercode'),
+					'username': encodeURIComponent(uni.getStorageSync('username')),
+					'navTabId': uni.getStorageSync('usercode'),
+					'userid': uni.getStorageSync('userid'),
+					'guid': uni.getStorageSync('guid'),
+					'usertype': 'APP'
+				}
+
+				const result = this.topContent.find(item => item.repair_code === this.radioValue)
+				let formData = {
+					username: uni.getStorageSync('username'),
+					repairwo: result.repair_code,
+					eqpcode: result.eqpcode,
+					wkshpcode: result.wksp_code,
+					result: result.resultValue,
+				}
+
+				// console.log(formData)
+
+				// this.isDisabledSubmitButton = true
+				// uni.request({
+				// 	url: this.$baseUrl + '/AppDeviceManage/RepairVerificationScanDeviceSave', //浠呬负绀轰緥锛屽苟闈炵湡瀹炴帴鍙e湴鍧�銆�
+				// 	data: formData,
+				// 	method: "POST",
+				// 	header: header,
+				// 	success: res => {
+				// 		if (res.statusCode == 200 && res.data.code == '200') {
+				// 			uni.$u.toast('鎻愪氦鎴愬姛锛�')
+				// 			// this.topContent = this.topContent.filter(i => i.repair_code !== this
+				// 			// 	.radioValue)
+				// 			// this.radioValue = this.topContent.length === 0 ? '' : this.topContent[0]
+				// 			// 	.repair_code
+				// 			// console.log(this.radioValue)
+				// 			// console.log(this.topContent, 9)
+				// 			// this.groupChange(this.radioValue)
+
+				// 			this.getRepairVerificationScanDeviceData()
+				// 			this.isDisabledSubmitButton = false
+				// 			this.$forceUpdate()
+				// 		}
+				// 	},
+				// 	fail: res => {
+				// 		uni.$u.toast('鎻愪氦澶辫触锛�')
+				// 		this.isDisabledSubmitButton = false
+				// 	}
+				// })
+
+
+				this.isDisabledSubmitButton = true
+				uni.uploadFile({
+					url: this.$baseUrl + '/AppDeviceManage/RepairVerificationScanDeviceSave',
+					files: [{
+						"uri": "/"
+					}],
+					header: header,
+					formData: formData,
+					success: (res) => {
+						let result = JSON.parse(res.data)
+						if (res.statusCode == 200 && result.code == '200') {
+							uni.$u.toast('鎻愪氦鎴愬姛锛�')
+							this.topContent = this.topContent.filter(i => i.repair_code !== this
+								.radioValue)
+							this.radioValue = this.topContent.length === 0 ? '' : this.topContent[0]
+								.repair_code
+						} else {
+							uni.$u.toast(result.Message)
+						}
+						this.isDisabledSubmitButton = false
+						this.$forceUpdate()
+					},
+					fail(res) {
+						uni.$u.toast('鎻愪氦澶辫触锛�')
+						this.isDisabledSubmitButton = false
+					},
+				})
+
+
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import url('@/style/global.css');
+
+	::v-deep .uicon-arrow-left>span {
+		display: block;
+	}
+
+	::v-deep .uicon-camera-fill {
+		font-size: 60rpx !important;
+	}
+
+
+	::v-deep .uni-progress-bar {
+		background-color: transparent !important;
+	}
+
+	.upLoadImg {
+		width: 160rpx;
+		height: 160rpx;
+		border-radius: 20rpx;
+	}
+
+	.repairDetail {
+		margin-top: 20rpx;
+		background-color: #eff0f1;
+		height: 80rpx;
+		font-size: 36rpx;
+		width: 106%;
+		margin-left: -3%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		border-radius: 10rpx;
+	}
+
+	.arrowClass {
+		display: flex;
+		justify-content: center;
+		// background-color: #efefef;
+		width: 100rpx;
+		// border-radius: 10rpx;
+		height: 56rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/xtsy/index.vue b/pages/xtsy/index.vue
index d1fb2dc..5483ed5 100644
--- a/pages/xtsy/index.vue
+++ b/pages/xtsy/index.vue
@@ -2,9 +2,9 @@
 	<view>
 		<!-- <u-notify ref="uNotify" message="鐧诲綍鎴愬姛!"></u-notify> -->
 
-		<page-nav title="宸ヤ綔鍙�" :topRightMessageCount="topRightMessageCount"></page-nav>
+		<page-nav title="宸ヤ綔鍙�"></page-nav>
 
-		<!-- :height="$DeviceInformation.screenHeight*6/9" -->
+
 		<u-swiper :list="list1" style="margin: 0 0rpx;" indicator height='250' indicatorActiveColor='#436df5'
 			indicatorMode='dot' interval='3000' :autoplay='true'></u-swiper>
 
@@ -214,6 +214,26 @@
 						break;
 
 
+						// 璁惧绠$悊
+					case '2400':
+						url = 'sbgl/rcdj' //鏃ュ父鐐规
+						break;
+					case '2401':
+						url = 'sbgl/dqby' //瀹氭湡淇濆吇
+						break;
+					case '2404':
+						url = 'sbgl/wxsq' //缁翠慨鐢宠
+						break;
+					case '2402':
+						url = 'sbgl/sbwx' //璁惧缁翠慨
+						break;
+					case '2403':
+						url = 'sbgl/wxyz' //缁翠慨楠岃瘉
+						break;
+
+
+
+
 
 					case '2032':
 						url = 'zlgl/jyfh' //妫�楠屽鏍�
@@ -250,15 +270,6 @@
 						break;
 
 
-					case '2042':
-						url = 'sbgl/wxsq' //缁翠慨鐢宠
-						break;
-					case '2043':
-						url = 'sbgl/sbwx' //璁惧缁翠慨
-						break;
-					case '2044':
-						url = 'sbgl/wxyz' //缁翠慨楠岃瘉
-						break;
 
 
 						// 妯″叿绠$悊

--
Gitblit v1.9.3