383 lines
10 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="fullHeight">
<headers :showBack="true">
<view class="headerName">
样品录入
</view>
</headers>
<scroll-view scroll-y="true" class="pageContent bgWhite">
<view class="formBox">
<form @submit="formSubmit">
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>设备
</view>
<view class="uni-form-input">
<picker @change="bindPickerChange3" :value="devIndex" :range="devList"
range-key="laboratoryName">
<view class="uni-input uni-select" v-if="devList.length>0">
{{devList[devIndex].laboratoryName}}
<image class="icon-down" src="../../../../static/icon-down-black.png" mode="">
</image>
</view>
<view class="uni-input uni-select cl" v-else>
请选择 <image class="icon-down" src="../../../../static/icon-down-black.png" mode="">
</image>
</view>
</picker>
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>样品类型
</view>
<view class="uni-form-input">
<picker @change="bindPickerChange2" :value="sampleTypeIndex" :range="sampleTypeList"
range-key="sampleTypeName">
<view class="uni-input" v-if="sampleTypeIndex!=null">
{{sampleTypeList[sampleTypeIndex].sampleTypeName}}
<image class="icon-down" src="../../../../static/icon-down-black.png" mode="">
</image>
</view>
<view class="uni-input uni-select cl" v-else>
请选择 <image class="icon-down" src="../../../../static/icon-down-black.png" mode="">
</image>
</view>
</picker>
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>养护周期()
</view>
<view class="uni-form-input">
<input disabled class="uni-input disabled" placeholder-class="cl" name="curingPeriod"
v-model="form.curingPeriod" type="number" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>样品编号
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="sampleNo" v-model="form.sampleNo"
placeholder="请输入/扫描" />
<button type="default" class="floatBtn" @click="scanCodeFn()">扫描</button>
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>成型时间
</view>
<view class="uni-form-input">
<picker class="datePickerBox datePickerBox1" mode="date" :value="date" :start="startDate"
@change="bindDateChange">
<view class="uni-input cl" v-if="!date">选择日期</view>
<view class="uni-input " v-else>{{date}}</view>
</picker>
<picker class="datePickerBox datePickerBox2" mode="time" :value="time" start="00:00"
end="23:59" @change="bindTimeChange">
<view class="uni-input cl" v-if="!time">选择时间</view>
<view class="uni-input" v-else>{{time}}</view>
</picker>
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>样品数量()
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="sampleNum" v-model="form.sampleNum"
placeholder="请输入" type="number" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>存放位置
</view>
<view class="uni-form-input">
<picker @change="bindPickerChange" :value="locationIndex" :range="locationData"
range-key="locationName">
<view class="uni-input uni-select cl" v-if="locationIndex==null">
请选择 <image class="icon-down" src="../../../../static/icon-down-black.png" mode="">
</image>
</view>
<view class="uni-input uni-select" v-else>{{locationData[locationIndex].locationName}}
<image class="icon-down" src="../../../../static/icon-down-black.png" mode="">
</image>
</view>
</picker>
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
到期通知人
</view>
<view class="uni-form-input">
<button type="default" class="selectBtn" size="mini" @click="goSelectFn">选择人员
(已选{{selectPersonList.length}})</button>
</view>
</view>
<button form-type="submit" type="primary" class="btn submitBtn big">保存</button>
</form>
</view>
</scroll-view>
</view>
</template>
<script>
import headers from "../../../../components/headers/headers.vue"
import {
GetDateStr
} from "../../../../static/js/util.js"
export default {
components: {
headers
},
data() {
return {
form: {
curingPeriod: "",
devSn: "",
formingTime: "",
locationId: "",
sampleNo: "",
sampleNum: "",
sampleTypeId: "",
projectSn: '',
secondLocationId: ''
},
projectDetail: {},
date: '',
time: '',
locationData: [],
locationDataPicker: [],
locationIndex: null,
sampleTypeList: [],
sampleTypeIndex: null,
devList: [],
devIndex: 0,
selectPersonList: []
};
},
computed: {
startDate() {
return GetDateStr(0, '-');
}
},
mounted() {
this.projectDetail = JSON.parse(uni.getStorageSync('projectDetail'))
this.getTypeData()
this.loadDevList()
},
onShow() {
if (uni.getStorageSync('person')) {
var person = uni.getStorageSync('person')
if (person.indexOf(',') != -1) {
this.selectPersonList = person.split(',')
} else {
this.selectPersonList = [person]
}
}
},
methods: {
//获取类型列表
getTypeData() {
var that = this
this.sendRequest({
url: "xmgl/standardSampleType/list",
data: {
projectSn: this.projectDetail.projectSn
},
method: "POST",
success(res) {
that.sampleTypeList = res.result
}
})
},
// 获取存放位置数据
getLocationData() {
var that = this
this.sendRequest({
url: "xmgl/standardLocation/selectChildrenLocationList",
data: {
projectSn: this.projectDetail.projectSn,
devSn: this.devList[this.devIndex].devSn
},
method: "POST",
success(res) {
that.locationData = res.result
}
})
},
// 获取设备列表
loadDevList() {
var that = this
this.sendRequest({
url: "xmgl/standardDev/list",
data: {
projectSn: this.projectDetail.projectSn
},
method: "POST",
success(res) {
that.devList = res.result
if (that.devList.length > 0) {
that.getLocationData()
// that.isHasVideo()
}
}
})
},
bindPickerChange3: function(e) {
console.log('picker发送选择改变携带值为', e.target.value)
this.devIndex = e.target.value
this.getLocationData()
},
bindPickerChange2: function(e) {
console.log('picker发送选择改变携带值为', e.target.value)
this.sampleTypeIndex = e.target.value
this.form.curingPeriod = this.sampleTypeList[this.sampleTypeIndex].sampleCuringPeriod
},
bindPickerChange: function(e) {
console.log('picker发送选择改变携带值为', e.target.value)
this.locationIndex = e.target.value
},
bindDateChange: function(e) {
this.date = e.target.value
},
bindTimeChange: function(e) {
this.time = e.target.value
},
formSubmit(e) {
console.log(e)
var params = e.detail.value
if (this.devIndex == null) {
uni.showToast({
title: '请选择设备',
icon: 'none'
})
return false;
}
if (this.sampleTypeIndex == null) {
uni.showToast({
title: '请选择样品类型',
icon: 'none'
})
return false;
}
if (params.curingPeriod == '') {
uni.showToast({
title: '请填写养护周期',
icon: 'none'
})
return false;
}
if (params.sampleNo == '') {
uni.showToast({
title: '请填写样品编号',
icon: 'none'
})
return false;
}
if (this.date == '' || this.time == '') {
uni.showToast({
title: '请选择成型时间',
icon: 'none'
})
return false;
}
if (params.sampleNum == '') {
uni.showToast({
title: '请填写样品数量',
icon: 'none'
})
return false;
}
if (this.locationIndex.length == 0 || this.locationIndex == null) {
uni.showToast({
title: '请选择存放位置',
icon: 'none'
})
return false;
}
params.devSn = this.devList[this.devIndex].devSn
params.projectSn = this.projectDetail.projectSn
params.formingTime = this.date + ' ' + this.time
params.secondLocationId = this.locationData[this.locationIndex].parentId
params.locationId = this.locationData[this.locationIndex].id
params.sampleTypeId = this.sampleTypeList[this.sampleTypeIndex].id
params.expireNotice = this.selectPersonList.join(',')
this.sendRequest({
url: "xmgl/standardSampleRecord/add",
data: params,
method: "POST",
success(res) {
uni.showToast({
title: '保存成功!'
})
uni.removeStorageSync('person')
setTimeout(() => {
uni.navigateBack({
})
}, 800)
}
})
},
goSelectFn() {
uni.navigateTo({
url: '../../selectPerson/selectPerson'
})
},
scanCodeFn() {
// 允许从相机和相册扫码
var that = this
uni.scanCode({
// onlyFromCamera: true,
success: function(res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
that.form.sampleNo = res.result
}
});
}
}
}
</script>
<style lang="scss" scoped>
.datePickerBox {
float: left;
}
.datePickerBox1 {
width: calc(58% - 10rpx);
margin-right: 10rpx;
}
.datePickerBox2 {
width: 42%;
}
.selectBtn {
border-radius: 40rpx;
border: 1px solid #372D66;
color: #372D66;
height: 70rpx;
line-height: 70rpx;
font-size: 30rpx;
padding: 0 30rpx;
}
.submitBtn {
margin-top: 80rpx;
}
</style>