|
|
@@ -0,0 +1,203 @@
|
|
|
+<template>
|
|
|
+ <view class="reservoir-create-page">
|
|
|
+ <view class="create-form-box">
|
|
|
+ <uni-forms ref="valiFormRef" :rules="rules" :label-width="100" :model="valiFormData" label-position="left"
|
|
|
+ :border="true">
|
|
|
+ <uni-forms-item label="水库名称" required name="reservoirName">
|
|
|
+ <!-- <uni-easyinput class="custom-input" :inputBorder="false" v-model="valiFormData.reservoirName"
|
|
|
+ placeholder="请输入水库名称" disabled/> -->
|
|
|
+ <view style="text-align: right;">{{valiFormData.reservoirName}}</view>
|
|
|
+ </uni-forms-item>
|
|
|
+ <uni-forms-item label="坝址位置" required name="reservoirAddress">
|
|
|
+ <!-- <uni-easyinput class="custom-input" :inputBorder="false" v-model="valiFormData.reservoirAddress"
|
|
|
+ placeholder="请输入坝址位置" disabled/> -->
|
|
|
+ <view style="text-align: right;">{{valiFormData.reservoirAddress}}</view>
|
|
|
+ </uni-forms-item>
|
|
|
+ <uni-forms-item label="坝址坐标" required name="reservoirLonLat">
|
|
|
+ <!-- <uni-easyinput class="custom-input" :inputBorder="false" v-model="valiFormData.reservoirLonLat"
|
|
|
+ placeholder="请输入坝址坐标" disabled /> -->
|
|
|
+ <view style="text-align: right;">{{valiFormData.reservoirLonLat}}</view>
|
|
|
+ </uni-forms-item>
|
|
|
+ <!-- <uni-forms-item class="custom-uni-form-item" label="自我介绍" name="introduction">
|
|
|
+ <uni-easyinput type="textarea" v-model="valiFormData.introduction" placeholder="请输入自我介绍" />
|
|
|
+ </uni-forms-item> -->
|
|
|
+ <uni-forms-item label="观测日期" required name="createDate">
|
|
|
+ <uni-datetime-picker type="date" v-model="valiFormData.createDate" :clear-icon="false">
|
|
|
+ <uni-easyinput suffixIcon="calendar" :clearable="false" class="custom-input"
|
|
|
+ :inputBorder="false" :value="valiFormData.createDate" placeholder="请选择日期" />
|
|
|
+ </uni-datetime-picker>
|
|
|
+ </uni-forms-item>
|
|
|
+ <uni-forms-item label="观测时间" required name="createTime">
|
|
|
+ <picker mode="time" :value="valiFormData.createTime" @change="onTimeChange">
|
|
|
+ <uni-easyinput :clearable="false" class="custom-input" :inputBorder="false"
|
|
|
+ :value="valiFormData.createTime" placeholder="请选择时间" />
|
|
|
+ </picker>
|
|
|
+ </uni-forms-item>
|
|
|
+ <uni-forms-item label="水位" required name="waterLevel">
|
|
|
+ <uni-easyinput type="number" class="custom-input" :inputBorder="false"
|
|
|
+ v-model="valiFormData.waterLevel" placeholder="请输入水位" />
|
|
|
+ </uni-forms-item>
|
|
|
+ <uni-forms-item label="库容" required name="waterCapacity">
|
|
|
+ <view style="text-align: right;">{{valiFormData.waterCapacity}}</view>
|
|
|
+ </uni-forms-item>
|
|
|
+ <uni-forms-item class="custom-uni-form-item" label="水尺图片" required name="pictures">
|
|
|
+ <uni-file-picker ref="uploadRef" :auto-upload="false" limit="1" :sourceType="fileSourceType"
|
|
|
+ v-model="fileList" @select="seleceFile" @delete="removeFile"></uni-file-picker>
|
|
|
+ </uni-forms-item>
|
|
|
+ <uni-forms-item label="备注" name="remark">
|
|
|
+ <uni-easyinput class="custom-input" :inputBorder="false" v-model="valiFormData.remark"
|
|
|
+ placeholder="请输入备注" />
|
|
|
+ </uni-forms-item>
|
|
|
+ </uni-forms>
|
|
|
+ <button type="primary" style="border-radius: 19998rpx;" @tap="handleSubmit">提交</button>
|
|
|
+ </view>
|
|
|
+ <view class="submit-btn">
|
|
|
+ <!-- <button type="primary" @tap="handleSubmit">提交</button> -->
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup>
|
|
|
+ import {
|
|
|
+ reactive,
|
|
|
+ ref,
|
|
|
+ watch
|
|
|
+ } from 'vue';
|
|
|
+ import moment from 'moment';
|
|
|
+
|
|
|
+ const rules = {
|
|
|
+ createDate: {
|
|
|
+ rules: [{
|
|
|
+ required: true,
|
|
|
+ errorMessage: '观测日期不能为空'
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ createTime: {
|
|
|
+ rules: [{
|
|
|
+ required: true,
|
|
|
+ errorMessage: '观测时间不能为空'
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ waterLevel: {
|
|
|
+ rules: [{
|
|
|
+ required: true,
|
|
|
+ errorMessage: '水位不能为空'
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ waterCapacity: {
|
|
|
+ rules: [{
|
|
|
+ required: true,
|
|
|
+ errorMessage: '库容不能为空'
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ pictures:{
|
|
|
+ rules: [{
|
|
|
+ required: true,
|
|
|
+ type: Array,
|
|
|
+ errorMessage: '水尺图片不能为空'
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ // age: {
|
|
|
+ // rules: [{
|
|
|
+ // required: true,
|
|
|
+ // errorMessage: '年龄不能为空'
|
|
|
+ // }, {
|
|
|
+ // format: 'number',
|
|
|
+ // errorMessage: '年龄只能输入数字'
|
|
|
+ // }]
|
|
|
+ // }
|
|
|
+ }
|
|
|
+
|
|
|
+ const onTimeChange = (e) => {
|
|
|
+ valiFormData.createTime = e.detail.value
|
|
|
+ }
|
|
|
+
|
|
|
+ const valiFormData = reactive({
|
|
|
+ reservoirName: "黑龙滩水库",
|
|
|
+ reservoirAddress: "四川省仁寿县黑龙滩镇大坝社区",
|
|
|
+ reservoirLonLat: "东经104º03ˊ 北纬30º03ˊ",
|
|
|
+ createDate: moment().format('YYYY-MM-DD'),
|
|
|
+ createTime: moment().format('HH:mm'),
|
|
|
+ waterLevel: "",
|
|
|
+ waterCapacity: "根据水位计算",
|
|
|
+ pictures: [],
|
|
|
+ remark: ""
|
|
|
+ })
|
|
|
+ watch(
|
|
|
+ () => valiFormData.waterLevel,
|
|
|
+ (newVal) => {
|
|
|
+ if(newVal){
|
|
|
+ valiFormData.waterCapacity = parseFloat(newVal) + 544
|
|
|
+ }else{
|
|
|
+ valiFormData.waterCapacity = "根据水位计算"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ deep: true
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
+ const fileSourceType = ['album', 'camera']
|
|
|
+ const fileList = ref([])
|
|
|
+ const seleceFile = (fileList) => {
|
|
|
+ // uploadImg(
|
|
|
+ // fileList.tempFilePaths,
|
|
|
+ // (res) => {
|
|
|
+ // console.log('成功', res)
|
|
|
+ // },
|
|
|
+ // (res) => {
|
|
|
+ // console.log('失败', res)
|
|
|
+ // }
|
|
|
+ // )
|
|
|
+ }
|
|
|
+ const removeFile = (file) => {
|
|
|
+ fileList.value = []
|
|
|
+ }
|
|
|
+
|
|
|
+ const valiFormRef = ref(null)
|
|
|
+
|
|
|
+ const handleSubmit = () => {
|
|
|
+ valiFormRef.value.validate().then((res) => {
|
|
|
+ console.log(res)
|
|
|
+ }).catch(e => {
|
|
|
+ console.log('err', e)
|
|
|
+ })
|
|
|
+ }
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+ .reservoir-create-page {
|
|
|
+ min-height: calc(100vh - var(--window-top) - 40rpx);
|
|
|
+ background-color: $uni-user-page-bgc;
|
|
|
+ padding: 20rpx;
|
|
|
+
|
|
|
+ .create-form-box {
|
|
|
+ border-radius: 12rpx;
|
|
|
+ background: #FFFFFF;
|
|
|
+ padding: 30rpx;
|
|
|
+
|
|
|
+ ::v-deep .custom-input {
|
|
|
+
|
|
|
+ input {
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+
|
|
|
+ .uni-input-placeholder {
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+
|
|
|
+ .uni-date__x-input {
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ ::v-deep .uni-forms-item {
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ ::v-deep .custom-uni-form-item {
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|