You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

193 lines
5.0 KiB

<template>
<view class="flex gap-16 info">
<view class="police-info-avatar">
<net-image :filepath="people.avatarUrl" v-if="people.avatarUrl" />
<image src="/static/police.png" v-else></image>
</view>
<view style="width: calc(100% - 168rpx)">
<view>
<view class="row">
<view class="col col-12">
<view class="label">姓名:</view>
<view class="content">{{ people.name }}</view>
</view>
<view class="col col-12">
<view class="label">警号:</view>
<view class="content">{{ people.empNo }}</view>
</view>
<view class="col col-12">
<view class="label">所属单位:</view>
<view class="content">{{ people.departName }}</view>
</view>
<view class="col col-12">
<view class="label">职位:</view>
<view class="content">{{ people.position }}</view>
</view>
<view class="col col-24">
<view class="label">联系电话:</view>
<view class="content">{{ people.mobile || '/' }}</view>
</view>
</view>
</view>
<view style="color: red">待检测</view>
</view>
</view>
<uni-forms ref="form" :modelValue="formData" :rules="rules" label-width="80px" style="margin: 12px">
<uni-forms-item label="检测时间" name="testingTime" required>
<uni-datetime-picker type="datetime" v-model="formData.testingTime" :border="false" placeholder="请选择检测时间" />
</uni-forms-item>
<uni-forms-item label="检测情况" name="testingResult" required>
<uni-data-checkbox v-model="formData.testingResult" :localdata="testingResult" />
</uni-forms-item>
<uni-forms-item label="测酒结果" name="drinkResult" required v-if="formData.testingResult === '已检测'">
<uni-data-checkbox v-model="formData.drinkResult" :localdata="drinkResult" />
</uni-forms-item>
<uni-forms-item label="酒精含量" name="alcoholContent" required v-if="formData.testingResult === '已检测' && formData.drinkResult === '饮酒'">
<uni-easyinput type="number" v-model="formData.alcoholContent" placeholder="请输入酒精含量" :inputBorder="false" />
</uni-forms-item>
<uni-forms-item label="测酒照片" name="testingFiles" label-position="top" required
v-if="formData.testingResult === '已检测'">
<upload v-model="formData.testingFiles" />
</uni-forms-item>
<uni-forms-item label="情况说明" name="unTestingDesc" required v-if="formData.testingResult === '未检测'">
<uni-easyinput type="textarea" v-model="formData.unTestingDesc" placeholder="请输入未检测现场情况说明"
:inputBorder="false" />
</uni-forms-item>
</uni-forms>
<view class="footer col-24 flex gap-8">
<button class="col-12" @tap="back">取消</button>
<button type="primary" @tap="submit" class="col-12">确定</button>
</view>
</template>
<script>
import store from '@/store'
import { now } from '@/common/util'
import {
updateTestingAlcoholPeople
} from '@/api/testingAlcohol'
let _this;
export default {
data() {
return {
BASE_PATH: store.state.fileRequestUrl,
people: JSON.parse(this.$page.options.people),
formData: {
testingTime: now('YYYY-MM-DD HH:mm:ss'),
testingFiles: []
},
rules: {
testingTime: {
rules: [
{
required: true,
errorMessage: '请选择检测时间',
}
]
},
testingResult: {
rules: [
{
required: true,
errorMessage: '请选择检测情况',
}
]
},
drinkResult: {
rules: [
{
required: true,
errorMessage: '请选择测酒结果',
}
]
},
alcoholContent: {
rules: [
{
required: true,
errorMessage: '请输入酒精含量',
}
]
},
unTestingDesc: {
rules: [
{
required: true,
errorMessage: '请输入未检测现场情况说明',
}
]
},
testingFiles: {
rules: [{
validateFunction: function(rule,value,data,callback){
if (!value || value.length === 0) {
callback('请上传测酒现场照片')
}
return true
}
}]
},
},
testingResult: [{
text: '已检测',
value: '已检测'
},
{
text: '未检测',
value: '未检测'
}
],
drinkResult: [{
text: '未饮酒',
value: '未饮酒'
},
{
text: '饮酒',
value: '饮酒'
},
]
}
},
onLoad() {
_this = this;
},
methods: {
submit() {
this.$refs.form.validate().then(res=>{
this.formData.empNo = this.people.empNo
updateTestingAlcoholPeople(this.people.taskId, this.formData).then(data => {
uni.navigateBack({
});
})
}).catch(err =>{
console.log('表单错误信息:', err);
})
},
back() {
uni.navigateBack({
});
}
}
}
</script>
<style lang="scss">
.info {
padding: 12px;
box-shadow: inset 0 -1px 0 0 #eee;
}
.police-info-avatar {
width: 136rpx;
height: 205rpx;
image {
width: 100%;
height: 100%;
}
}
</style>