<!-- 发起订单 --> <template> <view class="content"> <view class="c-top"> <view class="" @click="getback()"> <uni-icons type="left" size="18"></uni-icons> </view> <view class="c-title" v-if="type == 'add'">新增设备</view> <view class="c-title" v-if="type == 'edit'">编辑设备</view> <view class=""></view> </view> <view class="dil"> <view class="tinput"> <view class="text1"> <text class="hong1">*</text> 设备名称 </view> <view class="you"> <input type="text" placeholder="请输入设备名称" v-model="box.equName"> </view> </view> <view class="tinput"> <view class="text1"> <text class="hong1">*</text> 设备型号 </view> <view class="you"> <input type="text" placeholder="请输入设备型号" v-model="box.equModel"> </view> </view> <view class="tinput"> <view class="text1"> <text class="hong1">*</text> 设备编号 </view> <view class="you"> <input type="text" placeholder="请输入设备编号" v-model="box.equNumber"> </view> </view> <view class="tinput" @click="typeShow = true"> <view class="text1"> 设备类别 </view> <view class="you"> <input type="text" disabled placeholder="请选择设备类别" v-model="typeName"> </view> </view> <view class="tinput"> <view class="text1"> <text class="hong1">*</text> 设备检定周期 </view> <view class="you"> <input type="text" placeholder="请输入设备检定周期" v-model="box.equZq"> </view> </view> <view class="tinput"> <view class="text1"> <text class="hong1">*</text> 上次检定单位 </view> <view class="you"> <input type="text" placeholder="请输入上次检定单位" v-model="box.lastUnit"> </view> </view> <view class="tinput"> <view class="text1"> <text class="hong1">*</text> 有效期 </view> <!-- validTime --> <view class="you" @click="show = true "> <text>{{ time || '' }}</text> </view> </view> <view class="tinput"> <view class="text1"> <text class="hong1">*</text> 下次检定时间 </view> <!-- nextCheckTime --> <view class="you" @click="show1 = true "> <text>{{ time1 || '' }}</text> </view> </view> <u-datetime-picker :show="show" v-model="box.validTime" @cancel="cancels" @confirm="confirms" mode="date" return-type='string' ></u-datetime-picker> <u-datetime-picker :show="show1" v-model="box.nextCheckTime" @cancel="cancels1" @confirm="confirms1" mode="date" return-type='string' ></u-datetime-picker> <u-picker :show="typeShow" :columns="columns" @confirm="confirmsType" @cancel="typeShow = false" keyName="label"></u-picker> <view class="anniu" @click="getnewsadd()"> <text>保存</text> </view> <view style="width: 100%; height: 60px;"></view> </view> </view> </template> <script> import request from '../../utils/request' import config from '@/config' import {getToken} from '@/utils/auth' import upload from '@/utils/upload.js' import {getDictDataByType} from "../../utils/utils"; var wvCurrent; export default { data() { return { time: '请选择有效期', time1: '请选择下次检定时间', value1: '2023-10-10', baseUrl: this.$baseUrl, show: false, show1: false, fileId: null, id: '', type: 'add', box: {}, typeShow: false, columns: [], typeName: null, } }, onLoad(option) { this.type = option.type if (option.type == 'edit') { this.box.id = option.id } this.getInsType() }, onShow() { if (this.type == 'edit') this.getDetail(); }, methods: { confirmsType(e){ console.log(e) this.box.type = e.value[0].value this.typeName = e.value[0].label this.typeShow = false }, async getInsType(){ if (!this.columns || this.columns.length === 0){ this.columns = [await getDictDataByType("ins_equ_type")] } console.log(this.columns) }, async getDetail() { let res = await request({ url: '/system/equInfo/' + this.box.id, method: 'get' }) if (res.code == 200) { this.box = res.data // this.maneizhi = this.box.type this.time = this.box.validTime this.time1 = this.box.nextCheckTime } if (this.box.type){ const data = this.columns[0] const index = data.findIndex(item => item.value === this.box.type) if (index !== -1){ this.typeName = data[index].label } } }, cancels() { this.show = false }, cancels1() { this.show1 = false }, confirms(e) { var timestamp = e.value; var date = new Date(timestamp); var year = date.getFullYear(); var month = ("0" + (date.getMonth() + 1)).slice(-2); var day = ("0" + date.getDate()).slice(-2); var formattedDate = year + "-" + month + "-" + day; this.box.validTime = formattedDate this.time = formattedDate this.show = false }, confirms1(e) { var timestamp = e.value; var date = new Date(timestamp); var year = date.getFullYear(); var month = ("0" + (date.getMonth() + 1)).slice(-2); var day = ("0" + date.getDate()).slice(-2); var formattedDate = year + "-" + month + "-" + day; this.box.nextCheckTime = formattedDate this.time1 = formattedDate this.show1 = false }, //发布按钮 async getnewsadd() { // if(this.box.filePath==''||this.box.fileName==''||this.box.warnTime==''){ // uni.showToast({ // title:'必填项不能有空!', // icon:'none' // }) if (this.type == 'add') { let res = await request({ url: '/system/equInfo/add', method: 'post', data: this.box }) if (res.code == 200) { uni.showToast({ title: '发布成功' }) setTimeout(() => { uni.navigateBack({ delta: 1 }); }, 1000); } } if (this.type == 'edit') { let res = await request({ url: '/system/equInfo/edit', method: 'post', data: this.box }) if (res.code == 200) { uni.showToast({ title: '发布成功' }) setTimeout(() => { uni.navigateBack({ delta: 1 }); }, 1000); } } }, getback() { uni.navigateBack({ delta: 1, }) }, } } </script> <style scoped lang="scss"> .content { width: 100%; height: calc(100vh); background-color: #F6F6F6; box-sizing: border-box; // padding-top: 45px; } .dil { box-sizing: border-box; background-color: #F6F6F6; padding: 0px 12px; } .top-icon { margin-bottom: 45px; } .c-top { width: 100%; box-sizing: border-box; padding: 15px; display: flex; justify-content: space-between; align-items: center; background-color: white; padding-top: 40px; } .c-title { font-size: 18px; font-weight: bold } .top { box-sizing: border-box; padding: 0px 15px; width: 100%; background-color: white; } .top-box { display: flex; justify-content: space-between; align-items: center; box-sizing: border-box; padding: 20px 0px; } .tb-left { height: 100%; width: 80%; display: flex; align-items: center; } .uicon { width: 18px; height: 18px; border-radius: 4px; color: white; background: orangered; display: flex; justify-content: center; align-items: center; font-size: 12px; font-weight: bold; margin-right: 6px; } .tb-right { width: 20px; height: 26px; image { width: 100%; height: 100%; } } .text1 { font-size: 16px; font-weight: bold; color: #363636; } .hong1 { margin-top: 5px; font-size: 12px; font-weight: 400; color: #FF5453; } .hong2 { margin-top: 5px; font-size: 12px; font-weight: 400; } .tinput { width: 100%; display: flex; background: white; align-items: center; justify-content: space-between; box-sizing: border-box; padding: 16px; margin-top: 14px; margin-bottom: 14px; } .xinput { width: 100%; background: white; box-sizing: border-box; padding: 16px; margin-top: 14px; } .you { text-align: right; } .xz { margin-top: 10px; display: flex; align-items: center; } .kuang { width: 80px; height: 23px; background: #ECECEC; border-radius: 5px; display: flex; justify-content: center; align-items: center; color: #666666; font-size: 14px; margin-right: 15px; } .xlan { background: #CDE7FF !important; color: #1D62FF !important; border: 1px solid #2A96FE; } .anniu { width: 100%; background: linear-gradient(180deg, #3F61C0 0%, #0D2E8D 100%); border-radius: 50px; height: 40px; display: flex; justify-content: center; align-items: center; color: #542F0E; margin-top: 20px; color: white; } button::after { border: none; } </style>