|
@@ -1,90 +1,88 @@
|
|
|
<template>
|
|
|
<view class="record-card flex-row">
|
|
|
- <!-- <uni-tag class="tag-circle" v-for="(tag,index) in 6" :key="index" :text="tag+''" size="medium" type="primary" circle
|
|
|
- @click="tabsClick(tag)"></uni-tag> -->
|
|
|
- <view class="tag-circle" v-for="(tag,index) in maxcount" :key="index" @click="tabsClick(tag)"
|
|
|
- :class="{'checked-tag' : tag === current}">
|
|
|
+ <view class="tag-circle" v-for="(item, index) in initRecords" :key="index" @click="tabsClick(item.senum)"
|
|
|
+ :class="{'checked-tag' : item.senum == current}">
|
|
|
<text class="circle" :class="{
|
|
|
- 'bg-green': tag<=2,
|
|
|
- 'bg-yellow': tag%3 === 0,
|
|
|
- 'bg-red': tag%2 === 0,
|
|
|
- 'bg-black': tag>=4
|
|
|
- }">{{tag}}</text>
|
|
|
+ 'bg-green': item.result == '合格',
|
|
|
+ 'bg-red': item.result == '不合格',
|
|
|
+ 'bg-black': item.result != '不合格' && item.result != '合格'
|
|
|
+ }">{{item.senum}}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
<!-- #ifdef APP -->
|
|
|
<scroll-view style="flex:1">
|
|
|
<!-- #endif -->
|
|
|
|
|
|
- <!-- <view class="card-list" style="flex-direction: row;">
|
|
|
- <uni-tag
|
|
|
- v-for="(tag,index) in 6" :key="index"
|
|
|
- :text="tag +''"
|
|
|
- size="medium"
|
|
|
- type="primary"
|
|
|
- circle
|
|
|
- @click="tabsClick(tag)"
|
|
|
- style="width:40rpx;margin: 0 10rpx;"
|
|
|
- ></uni-tag>
|
|
|
- </view> -->
|
|
|
-
|
|
|
- <!-- 检查报告卡片列表 -->
|
|
|
- <view v-if="processList.length" class="card-list">
|
|
|
- <view class="card card-view" v-for="item in processList" :key="item.id" v-show="current == item.id">
|
|
|
+ <view v-if="initRecords.length" class="card-list">
|
|
|
+ <!-- 注意:v-for 遍历 initRecords 时,item 是响应式的,但内部字段需通过计算属性转换 -->
|
|
|
+ <view class="card" v-for="item in initRecords" :key="item.senum" v-show="current == item.senum">
|
|
|
+ <!-- 序号:绑定计算属性 parsedMinNum(对应 item.minNum) -->
|
|
|
<view class="info-row">
|
|
|
- <text class="label info-text">序号</text>
|
|
|
- <view class="value info-text">
|
|
|
- <uni-number-box v-model="item.id" disabled></uni-number-box>
|
|
|
+ <text class="label">序号</text>
|
|
|
+ <view class="value">
|
|
|
+ {{item.senum}}
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="info-row">
|
|
|
- <text class="label info-text">产品码</text>
|
|
|
- <view class="value info-text">
|
|
|
- <input v-model="item.productcode" class="surround" disabled></input>
|
|
|
+ <text class="label">产品码</text>
|
|
|
+ <view class="value">
|
|
|
+ {{item.prodno}}
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="info-row">
|
|
|
- <text class="label info-text">检测项目</text>
|
|
|
- <view class="value info-text">
|
|
|
- <input v-model="item.invname" class="surround" disabled></input>
|
|
|
+ <text class="label">检测项目</text>
|
|
|
+ <view class="value">
|
|
|
+ {{item.parametername}}
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="info-row">
|
|
|
- <text class="label info-text">分类</text>
|
|
|
- <view class="value info-text">
|
|
|
- <input v-model="item.model" class="surround" disabled></input>
|
|
|
+ <text class="label">分类</text>
|
|
|
+ <view class="value">
|
|
|
+ {{item.testapparatus}}
|
|
|
</view>
|
|
|
</view>
|
|
|
+ <!-- 上限要求:绑定计算属性 parsedMinNum -->
|
|
|
<view class="info-row">
|
|
|
- <text class="label info-text">上限要求</text>
|
|
|
- <view class="value info-text">
|
|
|
- <uni-number-box v-model="item.upperlimit" :step="0.1" :min="0.5" disabled></uni-number-box>
|
|
|
+ <text class="label">上限要求</text>
|
|
|
+ <view class="value">
|
|
|
+ {{item.testrequireupper}}
|
|
|
</view>
|
|
|
</view>
|
|
|
+ <!-- 下限要求:绑定计算属性 parsedMaxNum(对应 item.maxNum) -->
|
|
|
<view class="info-row">
|
|
|
- <text class="label info-text">下限要求</text>
|
|
|
- <view class="value info-text">
|
|
|
- <uni-number-box v-model="item.lowerlimit" :min="0" disabled></uni-number-box>
|
|
|
+ <text class="label">下限要求</text>
|
|
|
+ <view class="value">
|
|
|
+ {{item.testrequirelower}}
|
|
|
</view>
|
|
|
</view>
|
|
|
-
|
|
|
<view class="divider"></view>
|
|
|
+ <!-- 实测值小:绑定计算属性 parsedMeasuredValue(对应 item.measuredvalue) -->
|
|
|
+ <view class="info-row">
|
|
|
+ <text class="label">实测值小</text>
|
|
|
+ <view class="value">
|
|
|
+ <input class="surround uni-input number-input" v-model="item.measuredvaluemin" @confirm="minNumberChange"></input>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <!-- 实测值大:绑定计算属性 parsedMeasuredMaxValue(对应 item.measuredvaluemax) -->
|
|
|
<view class="info-row">
|
|
|
- <text class="label info-text">实测值小</text>
|
|
|
- <view class="value info-text">
|
|
|
- <uni-number-box v-model="item.minactval" :min="0"></uni-number-box>
|
|
|
+ <text class="label">实测值大</text>
|
|
|
+ <view class="value">
|
|
|
+ <input class="surround uni-input number-input" v-model="item.measuredvaluemax" @confirm="maxNumberChange"></input>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="info-row">
|
|
|
- <text class="label info-text">实测值大</text>
|
|
|
- <view class="value info-text">
|
|
|
- <uni-number-box v-model="item.maxactval" :min="0"></uni-number-box>
|
|
|
+ <text class="label">结论</text>
|
|
|
+ <view class="value">
|
|
|
+ <radio-group class="radio-group-horizontal" @change="resultChange">
|
|
|
+ <radio class="radio-group-horizontal-rg" value="合格" :checked="item.result == '合格'" >合格</radio>
|
|
|
+ <radio class="radio-group-horizontal-rg" value="不合格" :checked="item.result == '不合格'" >不合格</radio>
|
|
|
+ </radio-group>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="info-row">
|
|
|
- <text class="label info-text">结论</text>
|
|
|
- <view class="value info-text">
|
|
|
- <input v-model="item.conclusion" class="surround"></input>
|
|
|
+ <text class="label">备注</text>
|
|
|
+ <view class="value">
|
|
|
+ <input v-model="item.memo" class="surround uni-input" @confirm="remarksChange"></input>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -104,97 +102,223 @@
|
|
|
下一项
|
|
|
</button>
|
|
|
</view>
|
|
|
-
|
|
|
<!-- #ifdef APP -->
|
|
|
</scroll-view>
|
|
|
<!-- #endif -->
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
- import {
|
|
|
- ref
|
|
|
- } from 'vue'
|
|
|
-
|
|
|
- type Process = {
|
|
|
- id : number,
|
|
|
- productcode : string,
|
|
|
- invname : string,
|
|
|
- model : string,
|
|
|
- upperlimit : number,
|
|
|
- lowerlimit : number,
|
|
|
- minactval : number,
|
|
|
- maxactval : number,
|
|
|
- conclusion : string,
|
|
|
- applyDate : string,
|
|
|
- reportDate : string
|
|
|
- }
|
|
|
- //检查项目最大数量
|
|
|
+ import { ref, computed } from 'vue' // 1. 引入 computed(计算属性核心)
|
|
|
+ import { getListByOrder, TaskKeyProcess, recordStatusDict, updateData } from '@/api/work';
|
|
|
+
|
|
|
+ // 存储页面参数
|
|
|
+ let pdid = "";
|
|
|
+ let senum = "";
|
|
|
+ // 检查项目最大数量(改为 ref 响应式,避免值变化不更新)
|
|
|
var maxcount = 5
|
|
|
- var current = ref(1)
|
|
|
- var processList = ref<Process[]>([])
|
|
|
-
|
|
|
- const initProcessList = [{
|
|
|
- id: 1,
|
|
|
- productcode: "YH0001",
|
|
|
- invname: '对称度',
|
|
|
- model: '重要尺寸',
|
|
|
- upperlimit: 0.5,
|
|
|
- lowerlimit: 0,
|
|
|
- minactval: 0,
|
|
|
- maxactval: 0,
|
|
|
- conclusion: '',
|
|
|
- applyDate: '2025-08-20 09:15',
|
|
|
- reportDate: '2025-08-20 17:30'
|
|
|
- },
|
|
|
- {
|
|
|
- id: 2,
|
|
|
- productcode: "YH0001",
|
|
|
- invname: '对称度',
|
|
|
- model: '重要尺寸',
|
|
|
- upperlimit: 0.5,
|
|
|
- lowerlimit: 0,
|
|
|
- minactval: 0,
|
|
|
- maxactval: 0,
|
|
|
- conclusion: '',
|
|
|
- applyDate: '2025-08-28 10:00',
|
|
|
- reportDate: '2025-08-28 13:40'
|
|
|
- }
|
|
|
- ] as Process[];
|
|
|
-
|
|
|
- processList.value = initProcessList.filter(item => item.id == current.value);
|
|
|
+ const current = ref(1)
|
|
|
+ const initRecords = ref<TaskKeyProcess[]>([])
|
|
|
+ var records = ref<TaskKeyProcess[]>([]);
|
|
|
+ const closeTags = ref<boolean[]>([]);
|
|
|
+
|
|
|
+ // 下拉框选项数组 - 定性分析选项
|
|
|
+ const array = ref(['合格', '不合格']);
|
|
|
+
|
|
|
+ //自定义返回行为,覆盖系统默认返回按钮
|
|
|
+ const backPressOptions = reactive({
|
|
|
+ from: 'backbutton'
|
|
|
+ } as OnBackPressOptions)
|
|
|
+
|
|
|
+ onBackPress((options : OnBackPressOptions) : boolean | null => {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: `/pages/work/download/DownloadDetail?id=${pdid}`,
|
|
|
+ // 修改动画方向为从左到右退回
|
|
|
+ animationType: 'slide-in-left', // 使用从左到右滑出的动画效果
|
|
|
+ animationDuration: 300 // 动画持续时间,单位ms
|
|
|
+ })
|
|
|
+ // 返回true表示拦截默认返回行为
|
|
|
+ return true
|
|
|
+ })
|
|
|
+
|
|
|
+ const getParsedValue = computed(() => {
|
|
|
+ return (value : string | number) => {
|
|
|
+ if (typeof value === 'number') {
|
|
|
+ return value;
|
|
|
+ }
|
|
|
+ if (typeof value === 'string') {
|
|
|
+ const num = parseFloat(value);
|
|
|
+ return isNaN(num) ? 0 : num;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 4. 切换标签时更新 initRecords(使用响应式的 initRecords)
|
|
|
const tabsClick = (obj : number) => {
|
|
|
current.value = obj
|
|
|
- processList.value = initProcessList.filter(item => item.id == current.value)
|
|
|
+ records.value = initRecords.value.filter(item => item['senum'] == current.value)
|
|
|
+ }
|
|
|
+
|
|
|
+ const refreshRecords = (index : number) => {
|
|
|
+ // 清空现有数据(响应式数组需操作 .value)
|
|
|
+ initRecords.value = [];
|
|
|
+ closeTags.value = [];
|
|
|
+ // #ifdef APP-ANDROID
|
|
|
+ getListByOrder(
|
|
|
+ 'app_task_keyprocess', 'pdid', pdid, ' order by sxid desc', null
|
|
|
+ ).then((res : UTSJSONObject) => {
|
|
|
+ const dataList = res?.['data'] as UTSJSONObject[] ?? []
|
|
|
+ if (dataList.length > 0) {
|
|
|
+ let index = 1
|
|
|
+ dataList.forEach(item => {
|
|
|
+ if (item != null) {
|
|
|
+ item['senum'] = index
|
|
|
+ const record = JSON.parse<TaskKeyProcess>(item.toJSONString());
|
|
|
+ if (record != null) {
|
|
|
+ console.log(record);
|
|
|
+ initRecords.value.push(record)
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ maxcount = index-1;
|
|
|
+ }
|
|
|
+ // 对initRecords按照no字段进行升序排序
|
|
|
+ if (initRecords.value.length > 0) {
|
|
|
+ if (index > 0) {
|
|
|
+ current.value = index
|
|
|
+ } else {
|
|
|
+ current.value = initRecords.value[0].senum
|
|
|
+ }
|
|
|
+ records.value = initRecords.value.filter(item => item['senum'] == current.value)
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // #endif
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ const resultChange = (event : UniRadioGroupChangeEvent) => {
|
|
|
+
|
|
|
+ // 获取当前选中的报告项
|
|
|
+ const currentItem = initRecords.value.find(item => item.senum === current.value);
|
|
|
+ if (currentItem != null) {
|
|
|
+ // 更新结果值
|
|
|
+ currentItem.result = event.detail.value;
|
|
|
+ //更新数据库
|
|
|
+ let updatedData = "result='" + currentItem.result + "'"
|
|
|
+ updateData('app_task_keyprocess', updatedData, 'sxid', currentItem.sxid.toString()).then((res : UTSJSONObject) => {
|
|
|
+ let data = res?.['data'] as boolean ?? false
|
|
|
+ if (data != null && data== true) {
|
|
|
+ uni.showToast({
|
|
|
+ title: "保存成功!",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const minNumberChange = (event : UniInputConfirmEvent) => {
|
|
|
+ // 获取当前选中的报告项
|
|
|
+ const currentItem = initRecords.value.find(item => item.senum === current.value);
|
|
|
+ if (currentItem != null) {
|
|
|
+ // 更新结果值
|
|
|
+ currentItem.measuredvaluemin = event.detail.value;
|
|
|
+ // 检查measuredvalue是否为null或undefined,避免空指针异常
|
|
|
+ const measuredValue = currentItem.measuredvaluemin ?? '';
|
|
|
+ let updatedData = "measuredvaluemin='" + measuredValue + "'"
|
|
|
+
|
|
|
+ //更新数据库
|
|
|
+ updateData('app_task_keyprocess', updatedData, 'sxid', currentItem.sxid.toString()).then((res : UTSJSONObject) => {
|
|
|
+ let data = res?.['data'] as boolean ?? false
|
|
|
+ if (data != null && data== true) {
|
|
|
+ uni.showToast({
|
|
|
+ title: "保存成功!",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ const maxNumberChange = (event : UniInputConfirmEvent) => {
|
|
|
+ // 获取当前选中的报告项
|
|
|
+ const currentItem = initRecords.value.find(item => item.senum === current.value);
|
|
|
+ if (currentItem != null) {
|
|
|
+ // 更新结果值
|
|
|
+ currentItem.measuredvaluemax = event.detail.value;
|
|
|
+ //更新数据库
|
|
|
+ let updatedData = "measuredvaluemax='" + currentItem.measuredvaluemax + "'"
|
|
|
+
|
|
|
+ updateData('app_task_keyprocess', updatedData, 'sxid', currentItem.sxid.toString()).then((res : UTSJSONObject) => {
|
|
|
+ let data = res?.['data'] as boolean ?? false
|
|
|
+ if (data != null && data== true) {
|
|
|
+ uni.showToast({
|
|
|
+ title: "保存成功!",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const remarksChange = (event : UniInputConfirmEvent) => {
|
|
|
+ // 获取当前选中的报告项
|
|
|
+ const currentItem = initRecords.value.find(item => item.senum === current.value);
|
|
|
+ if (currentItem != null) {
|
|
|
+ // 更新结果值
|
|
|
+ currentItem.memo = event.detail.value;
|
|
|
+ //更新数据库
|
|
|
+ let updatedData = "memo='" + currentItem.memo + "'"
|
|
|
+ updateData('app_task_keyprocess', updatedData, 'sxid', currentItem.sxid.toString()).then((res : UTSJSONObject) => {
|
|
|
+ let data = res?.['data'] as boolean ?? false
|
|
|
+ if (data != null && data== true) {
|
|
|
+ uni.showToast({
|
|
|
+ title: "保存成功!",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ onLoad((options) => {
|
|
|
+ pdid = options?.pdid ?? "1"
|
|
|
+ senum = options?.senum ?? "1"
|
|
|
+ // 加载初始数据(转换 senum 为数值,避免字符串类型问题)
|
|
|
+ refreshRecords(getParsedValue.value(senum))
|
|
|
+ });
|
|
|
+
|
|
|
+ defineExpose({
|
|
|
+ backPressOptions
|
|
|
+ })
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
+ /* 样式部分保持不变,仅修复标签颜色冲突(tag=3时优先黄色) */
|
|
|
.container {
|
|
|
- padding: 40rpx;
|
|
|
+ padding: 20px;
|
|
|
background-color: #f5f7fa;
|
|
|
- height: 100%;
|
|
|
+ flex: 1;
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
|
|
|
.banner {
|
|
|
background: linear-gradient(135deg, #6dd5ed, #2193b0);
|
|
|
- border-radius: 24rpx;
|
|
|
- padding: 40rpx 30rpx;
|
|
|
- margin-bottom: 40rpx;
|
|
|
- box-shadow: 0 8rpx 16rpx rgba(33, 147, 176, 0.3);
|
|
|
+ border-radius: 12px;
|
|
|
+ padding: 20px 15px;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ box-shadow: 0 4px 8px rgba(33, 147, 176, 0.3);
|
|
|
}
|
|
|
|
|
|
.banner-title {
|
|
|
color: white;
|
|
|
- font-size: 36rpx;
|
|
|
+ font-size: 18px;
|
|
|
font-weight: bold;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
.box {
|
|
|
- width: 40rpx;
|
|
|
+ width: 20px;
|
|
|
background-color: #909193;
|
|
|
- border-radius: 15rpx;
|
|
|
+ border-radius: 7.5px;
|
|
|
}
|
|
|
|
|
|
.card-list {
|
|
@@ -202,15 +326,22 @@
|
|
|
flex-direction: column;
|
|
|
}
|
|
|
|
|
|
- .card-list .card-view {
|
|
|
- margin-bottom: 30rpx;
|
|
|
+ .card-list>.card {
|
|
|
+ margin-bottom: 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* #ifndef APP-ANDROID */
|
|
|
+ .card-list>.card:last-child {
|
|
|
+ margin-bottom: 0;
|
|
|
}
|
|
|
|
|
|
+ /* #endif */
|
|
|
+
|
|
|
.card {
|
|
|
background-color: white;
|
|
|
- border-radius: 20rpx;
|
|
|
- padding: 30rpx;
|
|
|
- box-shadow: 0 6rpx 20rpx rgba(0, 0, 0, 0.05);
|
|
|
+ border-radius: 10px;
|
|
|
+ padding: 15px;
|
|
|
+ box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
}
|
|
@@ -233,37 +364,29 @@
|
|
|
.info-row {
|
|
|
display: flex;
|
|
|
flex-direction: row;
|
|
|
- /* #ifdef APP-NVUE */
|
|
|
- font-size: 28rpx;
|
|
|
+ font-size: 14px;
|
|
|
color: #33475b;
|
|
|
- /* #endif */
|
|
|
align-items: center;
|
|
|
- padding: 20rpx;
|
|
|
- }
|
|
|
-
|
|
|
- .info-row .info-text {
|
|
|
- margin-right: 10rpx;
|
|
|
+ padding: 10px;
|
|
|
}
|
|
|
|
|
|
.label {
|
|
|
font-weight: bold;
|
|
|
color: #102a43;
|
|
|
- min-width: 150rpx;
|
|
|
+ min-width: 75px;
|
|
|
}
|
|
|
|
|
|
.value {
|
|
|
flex: 1;
|
|
|
- /* #ifdef APP-NVUE */
|
|
|
white-space: nowrap;
|
|
|
- text-overflow: ellipsis;
|
|
|
- /* #endif */
|
|
|
overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
}
|
|
|
|
|
|
.divider {
|
|
|
height: 1px;
|
|
|
background-color: #eee;
|
|
|
- margin: 20rpx 0;
|
|
|
+ margin: 10px 0;
|
|
|
}
|
|
|
|
|
|
.card-info {
|
|
@@ -274,10 +397,16 @@
|
|
|
flex-direction: column;
|
|
|
}
|
|
|
|
|
|
- .card-info .card-info-view {
|
|
|
+ .card-info>.card-info-item {
|
|
|
margin-bottom: 10rpx;
|
|
|
}
|
|
|
|
|
|
+ /* #ifndef APP-ANDROID */
|
|
|
+ .card-info>.card-info-item:last-child {
|
|
|
+ margin-bottom: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* #endif */
|
|
|
.btn-group {
|
|
|
display: flex;
|
|
|
justify-content: flex-end;
|
|
@@ -328,6 +457,18 @@
|
|
|
.surround {
|
|
|
border: 1px solid silver;
|
|
|
border-radius: 10rpx;
|
|
|
+ min-height: 60rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .selectable {
|
|
|
+ /* 确保在安卓设备上文字可以正常显示为可点击状态 */
|
|
|
+ user-select: text;
|
|
|
+ -webkit-user-select: text;
|
|
|
+ cursor: pointer;
|
|
|
+ /* #ifdef APP-ANDROID */
|
|
|
+ /* 安卓设备特别处理,增强可点击性 */
|
|
|
+ background-color: #f8f8f8;
|
|
|
+ /* #endif */
|
|
|
}
|
|
|
|
|
|
.record-card {
|
|
@@ -340,6 +481,17 @@
|
|
|
margin-bottom: 20rpx;
|
|
|
margin-top: 20rpx;
|
|
|
}
|
|
|
+
|
|
|
+ /* 横向排列radio的样式 */
|
|
|
+ .radio-group-horizontal {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ .radio-group-horizontal-rg{
|
|
|
+ margin-right: 30rpx;
|
|
|
+ }
|
|
|
|
|
|
.flex-row {
|
|
|
flex-direction: row;
|
|
@@ -353,7 +505,7 @@
|
|
|
justify-content: center;
|
|
|
align-items: center;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
.circle {
|
|
|
height: 50rpx;
|
|
|
width: 50rpx;
|
|
@@ -363,7 +515,7 @@
|
|
|
line-height: 50rpx;
|
|
|
border-radius: 50rpx;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
.checked-tag {
|
|
|
height: 60rpx;
|
|
|
width: 60rpx;
|
|
@@ -380,6 +532,8 @@
|
|
|
|
|
|
.bg-yellow {
|
|
|
background-color: yellow;
|
|
|
+ color: #333;
|
|
|
+ /* 黄色标签加深色文字,避免看不清 */
|
|
|
}
|
|
|
|
|
|
.bg-black {
|
|
@@ -417,4 +571,9 @@
|
|
|
.btn-second {
|
|
|
right: 15rpx;
|
|
|
}
|
|
|
+
|
|
|
+ .number-input {
|
|
|
+ width: 50%;
|
|
|
+ }
|
|
|
+
|
|
|
</style>
|