工作端小程序
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.

951 lines
27 KiB

1 month ago
<template>
<view class="page-content sfReport">
<view class="bg-box">
4 weeks ago
<view class="bg-text">
1 month ago
<view>填写信息</view>
<view>请您填写相关问题</view>
</view>
4 weeks ago
<image
class="bg-img"
src="/static/img/bsorbxBac.png"
mode="aspectFill"
></image>
</view>
<view class="info-card">
<view class="meter-row">
<view class="meter-label">
4 weeks ago
<view style="color: #f93838; margin-right: 4rpx; font-size: 24rpx"
>*</view
>
<text>乐业社区</text>
</view>
<view class="picker-label">
4 weeks ago
<picker
mode="selector"
:range="deptNames"
@change="onPickerChange($event, '乐业社区')"
>
<view
:style="{ color: !blockForm.apartmentName ? '#cbcbcb' : '' }"
>{{ blockForm.apartmentName || pickerPlaceholder }}</view
>
</picker>
4 weeks ago
<image
class="arrow-r"
src="/static/img/arrow-right.png"
mode="aspectFill"
></image>
</view>
1 month ago
</view>
<view class="meter-row">
<view class="meter-label">
4 weeks ago
<view style="color: #f93838; margin-right: 4rpx; font-size: 24rpx"
>*</view
>
<text>房屋</text>
</view>
<view class="picker-label">
<view class="uni-list-cell-db" v-if="multiArray[0].length">
1 month ago
<picker
mode="multiSelector"
@columnchange="bindMultiPickerColumnChange"
:value="multiIndex"
:range="multiArray"
>
<view class="uni-input">{{
4 weeks ago
multiArray[0][multiIndex[0]] +
multiArray[1][multiIndex[1]] +
multiArray[2][multiIndex[2]]
1 month ago
}}</view>
</picker>
</view>
4 weeks ago
<view v-else @click="handleShowToast" style="color: #cbcbcb"
>请选择社区</view
>
<image
class="arrow-r"
src="/static/img/arrow-right.png"
mode="aspectFill"
></image>
1 month ago
</view>
</view>
1 month ago
</view>
<scroll-view class="house-view" scroll-y="true">
4 weeks ago
<view class="section-card" v-for="(item, index) in form" :key="index">
4 weeks ago
<view class="section-title">{{ item.roomTypeName }}</view>
<view class="meter-row">
4 weeks ago
<view class="meter-label">
<view style="color: #f93838; margin-right: 4rpx; font-size: 24rpx"
>*</view
>
<text>水表号</text>
</view>
1 month ago
<u-input
4 weeks ago
v-model="item.waterMeterNumber"
1 month ago
type="digit"
placeholder="请输入水表号"
border="none"
:disabled="item.isSystemWaterMeterNumber"
4 weeks ago
:custom-style="
item.isSystemWaterMeterNumber ? 'background:#fff;color:#666;' : ''
4 weeks ago
"
1 month ago
/>
</view>
<!-- <view class="meter-row">
4 weeks ago
<view class="meter-label">
<view style="color: #f93838; margin-right: 4rpx; font-size: 24rpx"
4 weeks ago
>*</view
>
4 weeks ago
<text>上次表数</text>
</view>
1 month ago
<u-input
4 weeks ago
v-model="form[index].lastMeterReading"
1 month ago
type="digit"
4 weeks ago
:placeholder="`上次表数${item.lastMeterReading || ''}`"
1 month ago
border="none"
4 weeks ago
:custom-style="
form[index].electricMeterNumber
? 'background:#fff;color:#bbb;'
: ''
"
1 month ago
/>
</view> -->
<view class="meter-row">
4 weeks ago
<view class="meter-label">
<view style="color: #f93838; margin-right: 4rpx; font-size: 24rpx"
>*</view
>
<text>本次表数</text>
</view>
1 month ago
<u-input
4 weeks ago
v-model="form[index].thisMeterReading"
1 month ago
type="digit"
placeholder="请输入本次表数"
border="none"
/>
</view>
<view class="imeter-row">
4 weeks ago
<view class="meter-label">
<view style="color: #f93838; margin-right: 4rpx; font-size: 24rpx"
>*</view
>
<text>上传图片</text>
4 weeks ago
</view>
<u-upload
:max-count="10"
:multiple="true"
:preview-full-image="true"
:deletable="true"
:show-upload-list="true"
4 weeks ago
:fileList="form[index].fileList || []"
1 month ago
:auto-upload="false"
accept="all"
1 month ago
:maxSize="10 * 1024 * 1024"
@oversize="oversize"
@delete="(e) => onDelete(e, index)"
>
1 month ago
<view
class="custom-upload-btn"
@click.stop="() => chooseMedia(index)"
>
<view class="icon-box">
4 weeks ago
<image
class="camera-icon"
src="/static/img/camera-icon.png"
mode="aspectFill"
></image>
</view>
<view class="upload-tips">点击上传</view>
</view>
</u-upload>
</view>
</view>
</scroll-view>
<!-- 提交按钮 -->
4 weeks ago
<view class="btn" @click="onSubmit">提交</view>
1 month ago
</view>
</template>
<script>
4 weeks ago
import { queryDeptDropdownList } from "@/common/rec";
import { getdeptList } from "@/common/api";
1 month ago
import {
uploadImage,
queryLastMeterReading,
4 weeks ago
submitWaterAndElectricity,
getRoomByHouseId,
getHouseInfo,
} from "@/pages/api";
1 month ago
export default {
data() {
return {
4 weeks ago
pickerPlaceholder: "请选择", // 初始显示的文字
1 month ago
waterMeter: 3245.1,
electricMeter: 2672.6,
4 weeks ago
remark: "",
1 month ago
fileList: [],
deptNames: [],
deptOptions: [],
4 weeks ago
blockForm: {},
buildingOptions: [],
unitOptions: [],
houseOptions: [],
1 month ago
multiArray: [[], [], []],
4 weeks ago
multiIndex: [0, 0, 0],
4 weeks ago
form: [
{
meterNumber: "",
meterType: 2, // 1:电表 2:水表
houseId: "", // 初始化时可为空,选择房屋后赋值
roomId: "",
lastMeterReading: "",
thisMeterReading: "",
fileList: [],
remark: "",
waterMeterNumber: "",
isSystemWaterMeterNumber: false, // 是否为系统预设的水表号
4 weeks ago
},
], //
waterMeterConfig: "",
};
1 month ago
},
watch: {
4 weeks ago
"blockForm.apartmentId": {
handler(newVal, oldVal) {
console.log("newVal", newVal);
4 weeks ago
this.blockForm.buildingId = null;
this.blockForm.unitId = null;
this.blockForm.houseId = null;
this.buildingOptions = [];
this.unitOptions = [];
this.houseOptions = [];
},
deep: true,
immediate: true,
},
},
4 weeks ago
onLoad() {
this.getTree();
},
1 month ago
methods: {
4 weeks ago
getTree() {
getdeptList().then(async (res) => {
this.deptOptions = this.handleTree(
res.data,
"deptId",
"parentId",
"children",
2
);
1 month ago
// const deptInfo = this.deptOptions[0].children.filter(
// (item) => item.deptName == "城阳区"
// )[0];
const newArr = this.deptOptions.map((item) => ({
name: item.deptName,
}));
// this.deptOptions = newArr
// this.deptOptions = await this.getListByParentId("1", deptInfo.deptId);
// const array = JSON.parse(JSON.stringify(this.deptOptions));
this.deptNames = newArr.map((item) => item.name);
});
},
// 三级联动通用接口
async getListByParentId(type, id) {
return new Promise((resolve, reject) => {
queryDeptDropdownList({ type, id }).then((res) => {
resolve(res.data);
});
});
},
1 month ago
async onPickerChange(e, type) {
if (type == "乐业社区") {
console.log("e", e);
const apartmentInfo = this.deptOptions[e.detail.value];
console.log("社区信息", apartmentInfo);
console.log("社区信息11", this.deptOptions);
// 添加数据验证
if (!apartmentInfo) {
console.warn("未获取到社区信息");
return;
}
4 weeks ago
this.blockForm.apartmentName = apartmentInfo.deptName;
this.blockForm.apartmentId = apartmentInfo.deptId;
// 楼
1 month ago
const buildingArray = await this.getListByParentId(
"2",
apartmentInfo.deptId
);
// 验证楼数据
if (!buildingArray || buildingArray.length === 0) {
console.warn("未获取到楼信息");
return;
}
1 month ago
this.buildingOptions = buildingArray;
console.log("楼信息", buildingArray);
const buildingNames = buildingArray.map((item) => item.name);
console.log("buildingNames:", buildingNames);
4 weeks ago
this.blockForm.buildingId = buildingArray[0].id;
// 单元
1 month ago
const unitArray = await this.getListByParentId(
"3",
buildingArray[0].id
);
// 验证单元数据
if (!unitArray || unitArray.length === 0) {
console.warn("未获取到单元信息");
return;
}
1 month ago
this.unitOptions = unitArray;
console.log("unitArray:", unitArray);
const unitNames = unitArray.map((item) => item.name);
4 weeks ago
this.blockForm.unitId = unitArray[0].id;
// 户
const houseArray = await this.getListByParentId("4", unitArray[0].id);
// 验证户数据
if (!houseArray || houseArray.length === 0) {
console.warn("未获取到户信息");
return;
}
1 month ago
this.houseOptions = houseArray;
const houseNames = houseArray.map((item) => item.name);
4 weeks ago
this.blockForm.houseId = houseArray[0].id;
this.energyMeterConfig = houseArray[0].energyMeterConfig;
this.waterMeterConfig = houseArray[0].waterMeterConfig;
4 weeks ago
4 weeks ago
this.blockForm.roomId = houseArray[0].roomId;
1 month ago
let house = houseArray[0];
// for (let index = 0; index < house.type; index++) {
// this.form.waterMeters.push({
// meterNumber: "",
// lastMeterReading: "",
// thisMeterReading: "",
// imageList: [],
// fileList: [],
// });
// }
this.multiArray = [buildingNames, unitNames, houseNames];
4 weeks ago
if (this.energyMeterConfig == 1) {
this.getHouseInfoBy(this.blockForm.houseId);
} else if (this.energyMeterConfig == 2) {
this.getRoomByHouseId(this.blockForm.houseId);
}
1 month ago
}
},
4 weeks ago
handleShowToast() {
uni.showToast({ title: "请选择乐业社区", icon: "none" });
1 month ago
},
4 weeks ago
async bindMultiPickerColumnChange(e) {
if (!this.multiArray[0].length) return;
this.multiIndex[e.detail.column] = e.detail.value;
switch (e.detail.column) {
4 weeks ago
case 0:
{
const unitArray = await this.getListByParentId(
"3",
this.buildingOptions[e.detail.value].id
);
// 验证单元数据
if (!unitArray || unitArray.length === 0) {
console.warn("未获取到单元信息");
return;
}
4 weeks ago
this.unitOptions = unitArray;
const unitNames = unitArray.map((item) => item.name);
this.blockForm.unitId = unitArray[0].id;
4 weeks ago
const houseArray = await this.getListByParentId(
"4",
unitArray[0].id
);
// 验证户数据
if (!houseArray || houseArray.length === 0) {
console.warn("未获取到户信息");
return;
}
4 weeks ago
this.houseOptions = houseArray;
const houseNames = houseArray.map((item) => item.name);
this.blockForm.houseId = houseArray[0].id;
this.blockForm.roomId = houseArray[0].roomId;
this.multiArray[1] = unitNames;
this.multiArray[2] = houseNames;
}
this.multiIndex.splice(1, 1, 0);
this.multiIndex.splice(2, 1, 0);
break;
case 1:
{
const houseArray = await this.getListByParentId(
"4",
this.unitOptions[e.detail.value].id
);
// 验证户数据
if (!houseArray || houseArray.length === 0) {
console.warn("未获取到户信息");
return;
}
4 weeks ago
this.houseOptions = houseArray;
const houseNames = houseArray.map((item) => item.name);
this.blockForm.houseId = houseArray[0].id;
this.blockForm.roomId = houseArray[0].roomId;
this.multiArray[2] = houseNames;
}
this.multiIndex.splice(2, 1, 0);
break;
case 2: {
this.blockForm.houseId = this.houseOptions[e.detail.value].id;
this.blockForm.roomId = this.houseOptions[e.detail.value].roomId;
this.waterMeterConfig =
this.houseOptions[e.detail.value].waterMeterConfig;
}
}
// 确保在调用方法之前有有效的配置
if (this.waterMeterConfig && this.blockForm.houseId) {
if (this.waterMeterConfig == 1) {
this.getHouseInfoBy(this.blockForm.houseId);
} else if (this.waterMeterConfig == 2) {
this.getRoomByHouseId(this.blockForm.houseId);
}
4 weeks ago
}
4 weeks ago
4 weeks ago
this.$forceUpdate();
},
1 month ago
//图片超过大小时取消上传
oversize(e) {
this.$u.toast("请传10MB以内大小的图片/视频!");
return false;
},
chooseMedia(index) {
4 weeks ago
if (!this.form[index].fileList) {
this.$set(this.form[index], "fileList", []);
}
1 month ago
uni.chooseMedia({
4 weeks ago
count: 10 - this.form[index].fileList.length,
1 month ago
mediaType: ["image", "video"],
sourceType: ["album", "camera"],
maxDuration: 60,
camera: "back",
success: async (res) => {
uni.showLoading({ title: "上传中...", mask: true });
try {
const files = res.tempFiles;
for (let i = 0; i < files.length; i++) {
const file = files[i];
const filePath = file.tempFilePath;
const type =
file.fileType ||
(filePath.match(/\.(mp4|mov|avi|wmv|flv|mkv)$/i)
? "video"
: "image");
// 上传
const uploadRes = await uploadImage(filePath);
4 weeks ago
this.form[index].fileList.push({
1 month ago
url: uploadRes.data?.url || uploadRes.url || uploadRes.path,
name: uploadRes.data?.name || uploadRes.name || "",
type: type,
status: "success",
});
}
// 更新 imageList
4 weeks ago
this.form[index].imageList = this.form[index].fileList.map(
(v) => v.url
);
1 month ago
} catch (e) {
uni.showToast({ title: "上传失败", icon: "none" });
} finally {
uni.hideLoading();
}
},
fail: () => {
uni.hideLoading();
},
});
},
4 weeks ago
async getHouseInfoBy(id) {
const res = await getHouseInfo(id);
if (res.code == 200) {
// 添加安全检查
if (!res.data) {
console.warn("未获取到房屋信息");
return;
}
4 weeks ago
if (this.waterMeterConfig == 1) {
this.getRoomByHouseId(id);
4 weeks ago
this.form = [
{
waterMeterNumber: res.data.waterMeterNumber || "",
isSystemWaterMeterNumber: !!(res.data.waterMeterNumber && res.data.waterMeterNumber.trim() !== ''),
4 weeks ago
},
];
} else if (this.waterMeterConfig == 2) {
this.form = this.form.map((item) => ({
...item,
waterMeterNumber: res.data.waterMeterNumber || "",
isSystemWaterMeterNumber: !!(res.data.waterMeterNumber && res.data.waterMeterNumber.trim() !== ''),
4 weeks ago
}));
}
this.getLastMeter(res.data.waterMeterNumber);
4 weeks ago
}
},
4 weeks ago
async getLastMeter(waterMeterNumber) {
console.log(this.form, "this.formgetHouseInfoBy");
let roomId = ''
if (this.waterMeterConfig == 1) {
roomId = this.form[0].id
}else {
roomId = this.blockForm.roomId
}
1 month ago
const params = {
4 weeks ago
houseId: this.blockForm.houseId,
roomId: roomId,
4 weeks ago
meterType: 2, // 2水表
4 weeks ago
meterNumber: waterMeterNumber,
1 month ago
};
const res = await queryLastMeterReading(params);
4 weeks ago
console.log(res.data, "res.data");
// 添加安全检查,确保res.data存在且不为空
if (!res.data || !Array.isArray(res.data) || res.data.length === 0) {
console.warn("未获取到水表读数数据");
return;
}
4 weeks ago
if (this.waterMeterConfig == 1) {
this.form = this.form.map((item) => ({
...item,
lastMeterReading: res.data[0].thisMeterReading || 0,
waterMeterNumber: res.data[0].meterNumber || "",
isSystemWaterMeterNumber: !!(res.data[0].meterNumber && res.data[0].meterNumber.trim() !== ''),
}));
console.log(this.form, "this.formgetLastMeter");
4 weeks ago
} else if (this.waterMeterConfig == 2) {
this.form = this.form.map((item) => {
const meter = res.data.find(
(m) => String(m.roomId) === String(item.id)
);
if (meter) {
return {
...item,
lastMeterReading: meter.thisMeterReading || 0,
waterMeterNumber: meter.meterNumber || "",
isSystemWaterMeterNumber: !!(meter.meterNumber && meter.meterNumber.trim() !== ''),
4 weeks ago
};
}
return item;
});
}
4 weeks ago
},
async getRoomByHouseId(id) {
const res = await getRoomByHouseId({ houseId: id });
if (res.code == 200) {
// 添加安全检查
if (!res.data || !Array.isArray(res.data) || res.data.length === 0) {
console.warn("未获取到房间数据");
return;
}
4 weeks ago
if (this.waterMeterConfig == 1) {
console.log(this.form,"this.formgetRoomByHouseId11");
console.log(res.data,"res.data[0].id");
this.form = this.form.map((item) => ({
...item,
id: res.data[0].id || ""
}));
4 weeks ago
} else if (this.waterMeterConfig == 2) {
this.form = res.data;
this.getLastMeter();
4 weeks ago
}
1 month ago
}
},
onDelete(event, index) {
4 weeks ago
if (this.form[index] && Array.isArray(this.form[index].fileList)) {
this.form[index].fileList.splice(event.index, 1);
// this.form.waterMeters[index].imageList = this.form.waterMeters[
// index
// ].fileList.map((v) => v.url);
1 month ago
}
1 month ago
},
onSubmit() {
4 weeks ago
let { buildingId, unitId, houseId } = this.blockForm;
if (!this.blockForm.apartmentName) {
uni.showToast({ title: "请选择乐业社区", icon: "none" });
return;
} else if (!buildingId && !unitId && !houseId) {
uni.showToast({ title: "请选择房屋", icon: "none" });
return;
}
// 必填校验:水表号、上次表数、本次表数、图片/视频
4 weeks ago
for (let i = 0; i < this.form.length; i++) {
4 weeks ago
const item = this.form[i];
if (this.waterMeterConfig == 2) {
4 weeks ago
// if (!item.electricMeterNumber) {
// uni.showToast({
// title: `第${i + 1}个房间请填写水表号`,
// icon: "none",
// });
// return;
// }
4 weeks ago
// if (!item.lastMeterReading && item.lastMeterReading !== 0) {
// uni.showToast({
// title: `第${i + 1}个房间请填写上次表数`,
// icon: "none",
// });
// return;
// }
if (!item.thisMeterReading && item.thisMeterReading !== 0) {
uni.showToast({
title: `${i + 1}个房间请填写本次表数`,
icon: "none",
});
return;
}
if (!item.fileList || item.fileList.length === 0) {
uni.showToast({
title: `${i + 1}个房间请上传图片/视频`,
icon: "none",
});
return;
}
} else {
// if (!item.electricMeterNumber) {
// uni.showToast({
// title: `请填写水表号`,
// icon: "none",
// });
// return;
// }
// if (!item.lastMeterReading && item.lastMeterReading !== 0) {
// uni.showToast({
// title: `请填写上次表数`,
// icon: "none",
// });
// return;
// }
4 weeks ago
if (!item.thisMeterReading && item.thisMeterReading !== 0) {
uni.showToast({
title: `请填写本次表数`,
icon: "none",
});
return;
}
if (!item.fileList || item.fileList.length === 0) {
uni.showToast({
title: `请上传图片/视频`,
icon: "none",
});
return;
}
}
1 month ago
}
1 month ago
this.submitAdd();
},
async submitAdd() {
console.log(this.form,"this.form");
// 验证form数据
if (!this.form || !Array.isArray(this.form) || this.form.length === 0) {
1 month ago
uni.showToast({
title: "表单数据无效",
icon: "none",
});
return;
}
// 验证blockForm数据
if (!this.blockForm.houseId) {
uni.showToast({
title: "房屋信息无效",
icon: "none",
1 month ago
});
return;
}
let params = this.form.map((item) => {
// 验证每个表单项
if (!item) {
console.warn("表单项数据无效:", item);
return null;
}
return {
meterNumber: item.waterMeterNumber || "",
meterType: 2,
houseId: this.blockForm.houseId,
roomId: item.id || "",
// lastMeterReading: isNaN(parseFloat(item.lastMeterReading)) ? '' : parseFloat(item.lastMeterReading).toFixed(4),
lastMeterReading: item.lastMeterReading ? item.lastMeterReading : item.thisMeterReading,
thisMeterReading: parseFloat(item.thisMeterReading || 0).toFixed(4),
images: (item.fileList || []).map((f) => ({
url: f.url || "",
name: f.name || "",
type: f.type || "",
format: f.format || (f.url ? f.url.split(".").pop() : ""),
})),
remark: item.remark || "",
};
}).filter(item => item !== null); // 过滤掉无效的项
// 验证处理后的参数
if (params.length === 0) {
uni.showToast({
title: "没有有效的表单数据",
icon: "none",
});
return;
}
try {
const res = await submitWaterAndElectricity(params);
if (res.code == 200) {
uni.showToast({
icon: "success",
title: "提交成功!",
success: () => {
setTimeout(() => {
uni.switchTab({
url: "/pages/tabBar/work/index",
success: () => {
this.fileList = [];
},
});
}, 1500);
},
});
} else {
uni.showToast({
title: res.msg || "提交失败",
icon: "none",
});
}
} catch (error) {
console.error("提交失败:", error);
1 month ago
uni.showToast({
title: "提交失败,请重试",
1 month ago
icon: "none",
});
}
4 weeks ago
},
},
};
1 month ago
</script>
<style scoped>
4 weeks ago
.page-content {
1 month ago
background: #f7f7f7;
min-height: 100vh;
padding-bottom: 40rpx;
}
.bg-box {
width: 100vw;
height: 280rpx;
object-fit: cover;
display: block;
position: relative;
display: flex;
}
4 weeks ago
.bg-img {
1 month ago
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
4 weeks ago
.bg-text {
1 month ago
margin: 50rpx 0 0 28rpx;
z-index: 1;
font-size: 44rpx;
4 weeks ago
color: #101010;
1 month ago
font-weight: bold;
1 month ago
}
4 weeks ago
.bg-text view:nth-child(2) {
1 month ago
font-size: 28rpx;
4 weeks ago
color: #666666;
1 month ago
margin-top: 10rpx;
font-weight: 400;
1 month ago
}
.info-card {
background: #fff;
border-radius: 20rpx;
1 month ago
margin: -100rpx 24rpx 16rpx 24rpx;
1 month ago
padding: 24rpx 24rpx 12rpx 24rpx;
4 weeks ago
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04);
1 month ago
position: relative;
z-index: 2;
}
4 weeks ago
.house-view {
height: calc(100vh - 600rpx);
}
1 month ago
.room-title {
font-weight: bold;
font-size: 32rpx;
margin-bottom: 16rpx;
}
.info-row {
font-size: 28rpx;
color: #222;
margin-bottom: 8rpx;
}
.label {
color: #888;
margin-right: 24rpx;
}
.section-card {
background: #fff;
border-radius: 20rpx;
margin: 0 24rpx 16rpx 24rpx;
padding: 24rpx;
z-index: 2;
}
.section-title {
font-weight: bold;
font-size: 28rpx;
margin-bottom: 18rpx;
}
.device-row {
4 weeks ago
display: flex;
1 month ago
align-items: center;
padding: 0 24rpx;
min-height: 64rpx;
border-bottom: 1px solid #f2f2f2;
}
.device-label {
width: 160rpx;
color: #222;
font-size: 28rpx;
margin-right: 24rpx;
}
.meter-row {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 12rpx;
/* padding-bottom: 14rpx; */
padding: 16rpx 0 26rpx;
border-bottom: 2rpx solid #bbbbbb43;
}
.meter-label {
display: flex;
flex-direction: row;
align-items: center;
width: 140rpx;
color: #68758b;
font-size: 28rpx;
}
4 weeks ago
.picker-label {
1 month ago
display: flex;
align-items: center;
font-size: 28rpx;
}
4 weeks ago
.arrow-r {
1 month ago
width: 30rpx;
height: 30rpx;
1 month ago
margin-left: 8rpx;
1 month ago
}
.u-input .u-input__content uni-input {
text-align: right !important;
}
.u-radio {
margin-right: 36rpx;
}
.meter-value {
color: #222;
font-size: 28rpx;
}
.custom-upload-btn {
width: 160rpx;
height: 160rpx;
background: #fafafa;
border: 2rpx solid #f0f0f0;
border-radius: 16rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin: 20rpx 16rpx 0 0;
}
4 weeks ago
.icon-box {
width: 60rpx;
height: 60rpx;
background: #ceeced;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
4 weeks ago
.camera-icon {
width: 36rpx;
height: 36rpx;
}
1 month ago
.upload-tips {
color: #bbb;
font-size: 24rpx;
margin-top: 8rpx;
}
.u-upload__wrap {
display: flex;
flex-wrap: wrap;
align-items: center;
margin-top: 20rpx;
}
.u-upload__preview {
border-radius: 16rpx;
overflow: hidden;
margin-right: 16rpx;
margin-bottom: 16rpx;
}
.submit-btn-wrap {
width: 100%;
display: flex;
1 month ago
align-items: center;
1 month ago
justify-content: center;
margin: 40rpx 0 0 0;
}
.btn {
width: 414rpx;
height: 70rpx;
line-height: 70rpx;
border-radius: 600rpx;
background: linear-gradient(
86.25deg,
rgba(13, 198, 198, 1) 3.03%,
rgba(19, 194, 194, 1) 3.03%,
rgba(70, 219, 213, 1) 96.43%
);
color: rgba(255, 255, 255, 1);
font-size: 34rpx;
text-align: center;
margin: auto;
margin-top: 40rpx;
1 month ago
}
</style>
<style>
4 weeks ago
.sfReport .u-input__content__field-wrapper__field {
1 month ago
text-align: right !important;
}
</style>