|
|
|
@ -4,21 +4,21 @@
|
|
|
|
|
<uni-nav-bar left-icon="left" left-text="返回" background-color="#537CF7" color="#ffffff" @clickLeft="goBack">
|
|
|
|
|
<text class="navbar-title">应急抢险工单</text>
|
|
|
|
|
</uni-nav-bar>
|
|
|
|
|
|
|
|
|
|
<!-- 顶部标签切换 -->
|
|
|
|
|
<view class="top-section">
|
|
|
|
|
<view class="tab" :class="{ active: activeTab === 'pending' }" @click="handleTabChange('pending')">待处理工单</view>
|
|
|
|
|
<view class="divider"></view>
|
|
|
|
|
<view class="tab" :class="{ active: activeTab === 'completed' }" @click="handleTabChange('completed')">已完成工单</view>
|
|
|
|
|
</view>
|
|
|
|
|
<!-- 页面内容 -->
|
|
|
|
|
<view class="content">
|
|
|
|
|
<!-- 顶部标签切换 -->
|
|
|
|
|
<view class="top-section">
|
|
|
|
|
<view class="tab" :class="{ active: activeTab === 'pending' }" @click="activeTab = 'pending'">待处理工单</view>
|
|
|
|
|
<view class="divider"></view>
|
|
|
|
|
<view class="tab" :class="{ active: activeTab === 'completed' }" @click="activeTab = 'completed'">已完成工单</view>
|
|
|
|
|
</view>
|
|
|
|
|
<!-- 内容区域 -->
|
|
|
|
|
<view class="content-main">
|
|
|
|
|
<!-- 时间选择器 -->
|
|
|
|
|
<view>
|
|
|
|
|
<uni-datetime-picker type="daterange" v-model="dateRange" start="2023-01-01" end="2023-12-31" @change="onDateChange" placeholder="请选择时间范围" />
|
|
|
|
|
<uni-datetime-picker v-model="range" type="daterange" />
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<!-- 工单类型选择器 -->
|
|
|
|
|
<view class="filter-section">
|
|
|
|
|
<uni-data-select v-model="value" :localdata="options" placeholder="请选择工单类型" />
|
|
|
|
@ -27,95 +27,100 @@
|
|
|
|
|
|
|
|
|
|
<!-- 待处理工单 -->
|
|
|
|
|
<view v-if="activeTab === 'pending'" style="overflow: auto; padding-bottom: 200rpx">
|
|
|
|
|
<view class="order-list">
|
|
|
|
|
<view v-if="pendingOrders.length > 0" class="order-list">
|
|
|
|
|
<view
|
|
|
|
|
class="order-item"
|
|
|
|
|
v-for="(item, index) in pendingOrders"
|
|
|
|
|
:key="index"
|
|
|
|
|
@click="navigateToDetail(item)"
|
|
|
|
|
:class="{
|
|
|
|
|
'to-handle': item.status === 'toHandle',
|
|
|
|
|
'to-dispatch': item.status === 'toDispatch'
|
|
|
|
|
'to-handle': item.status === 0,
|
|
|
|
|
'to-dispatch': item.status === 1
|
|
|
|
|
}"
|
|
|
|
|
>
|
|
|
|
|
<view class="status-tag" :class="item.status">
|
|
|
|
|
{{ item.status === 'toHandle' ? '待处理' : '待派发' }}
|
|
|
|
|
<view class="status-tag" :class="getLevelClass(item.gdLevel)">
|
|
|
|
|
{{ item.status === 0 ? '待处理' : '待派发' }}
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="form-group">
|
|
|
|
|
<view class="item-form">
|
|
|
|
|
<text>工单描述:</text>
|
|
|
|
|
<text class="item-description">{{ item.description }}</text>
|
|
|
|
|
<text>工单地址:</text>
|
|
|
|
|
<text class="item-description">{{ item.address }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="item-form">
|
|
|
|
|
<text>工单类型:</text>
|
|
|
|
|
<text class="item-description">{{ item.type }}</text>
|
|
|
|
|
<dictTag class="item-description" type="gdlx" :value="item.gdType" />
|
|
|
|
|
<text v-if="item.gdType === 0 && item.xdsqm !== null">-</text>
|
|
|
|
|
<dictTag class="item-description" type="xdsqm" :value="item.xdsqm" />
|
|
|
|
|
</view>
|
|
|
|
|
<view class="item-form">
|
|
|
|
|
<text>工单地址:</text>
|
|
|
|
|
<text class="item-description">{{ item.address }}</text>
|
|
|
|
|
<text>影响类型:</text>
|
|
|
|
|
<dict-tag class="item-description" type="yxlx" value="1,2,3" />
|
|
|
|
|
</view>
|
|
|
|
|
<view class="item-form">
|
|
|
|
|
<text>录入时间:</text>
|
|
|
|
|
<text class="item-description">{{ item.createTime }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<!-- 工单等级显示 -->
|
|
|
|
|
<view class="item-form">
|
|
|
|
|
<text>工单等级:</text>
|
|
|
|
|
<text class="level-tag" :class="getLevelClass(item.level)">
|
|
|
|
|
{{ item.level }}
|
|
|
|
|
</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="item-form" v-if="item.status === 'toHandle'">
|
|
|
|
|
<view class="item-form" v-if="item.status === 0">
|
|
|
|
|
<text>处理班组:</text>
|
|
|
|
|
<text class="item-description">{{ item.team || '暂无' }}</text>
|
|
|
|
|
<text class="item-description">{{ item.clbz || '暂无' }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<!-- 待处理的操作 -->
|
|
|
|
|
<view class="actionstwo" v-if="item.status === 'toHandle'">
|
|
|
|
|
<view class="actionstwo" v-if="item.status === 0">
|
|
|
|
|
<view class="action-text" @click="handleTransfer(item)">工单转派</view>
|
|
|
|
|
<view class="divider-vertical"></view>
|
|
|
|
|
<view class="action-text" @click="handleTransfer(item)">处理反馈</view>
|
|
|
|
|
<view class="action-text" @click="handleFeedback(item)">处理反馈</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<!-- 待派发的操作 -->
|
|
|
|
|
<view class="actionsone" v-if="item.status === 'toDispatch'">
|
|
|
|
|
<view class="actionsone" v-if="item.status === 1">
|
|
|
|
|
<view class="action-text-center" @click="dispatchOrder(item)">立即指派</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view v-else class="no-data">暂无数据</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<!-- 已完成工单 -->
|
|
|
|
|
<view v-if="activeTab === 'completed'">
|
|
|
|
|
<view class="order-list">
|
|
|
|
|
<view class="order-item to-completed" v-for="(item, index) in completedOrders" :key="index">
|
|
|
|
|
<view v-if="completedOrders.length > 0" class="order-list">
|
|
|
|
|
<view class="order-item to-completed" v-for="(item, index) in completedOrders" :key="index" @click="navigateToDetail(item)">
|
|
|
|
|
<view class="completed status-tag">已完成</view>
|
|
|
|
|
<view class="item-form">
|
|
|
|
|
<text>工单描述:</text>
|
|
|
|
|
{{ item.description }}
|
|
|
|
|
<text>工单地址:</text>
|
|
|
|
|
<text class="item-description">{{ item.address }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="item-form">
|
|
|
|
|
<text>工单类型:</text>
|
|
|
|
|
{{ item.type }}
|
|
|
|
|
<dictTag class="item-description" type="gdlx" :value="item.gdType" />
|
|
|
|
|
<text v-if="item.gdType === 0 && item.xdsqm !== 'null'">-</text>
|
|
|
|
|
<dictTag class="item-description" type="xdsqm" :value="item.xdsqm" />
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="item-form">
|
|
|
|
|
<text>工单地址:</text>
|
|
|
|
|
{{ item.address }}
|
|
|
|
|
<text>影响类型:</text>
|
|
|
|
|
<dict-tag class="item-description" type="yxlx" value="1,2,3" />
|
|
|
|
|
</view>
|
|
|
|
|
<view class="item-form">
|
|
|
|
|
<text>完成时间:</text>
|
|
|
|
|
{{ item.completeTime }}
|
|
|
|
|
<text>录入时间:</text>
|
|
|
|
|
<text class="item-description">{{ item.createTime }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="item-form">
|
|
|
|
|
<text>处理结果:</text>
|
|
|
|
|
{{ item.result }}
|
|
|
|
|
<text>处理班组:</text>
|
|
|
|
|
<text class="item-description">{{ item.deptName }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="item-form">
|
|
|
|
|
<text>完成时间:</text>
|
|
|
|
|
<text class="item-description">{{ item.completeTime || '' }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<!-- <view class="action-buttons">
|
|
|
|
|
<button class="action-btn view-detail" @click="viewDetail(item)">查看详情</button>
|
|
|
|
|
</view> -->
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view v-else class="no-data">暂无数据</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<!-- 底部按钮 -->
|
|
|
|
|
<view class="bottom-btn">
|
|
|
|
|
<button @click="navigateToPage">立即录入</button>
|
|
|
|
|
</view>
|
|
|
|
@ -124,126 +129,145 @@
|
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
.no-data {
|
|
|
|
|
text-align: center;
|
|
|
|
|
color: #999;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
margin-top: 50rpx;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<script setup>
|
|
|
|
|
import { ref, onMounted } from 'vue';
|
|
|
|
|
import { getDicts } from '@/api/system/dict/data';
|
|
|
|
|
import { getEmergencyOrderList, getEmergencyTime } from '@/api/emergency/api';
|
|
|
|
|
|
|
|
|
|
const activeTab = ref('pending');
|
|
|
|
|
const dateRange = ref([]);
|
|
|
|
|
import dictTag from '@/components/dictTag.vue'; // 字典翻译组件
|
|
|
|
|
|
|
|
|
|
// 定义响应式数据
|
|
|
|
|
const value = ref(1);
|
|
|
|
|
const activeTab = ref('pending');
|
|
|
|
|
const range = ref([]);
|
|
|
|
|
const value = ref(null);
|
|
|
|
|
const options = ref([]);
|
|
|
|
|
|
|
|
|
|
// 示例数据 - 待处理工单
|
|
|
|
|
const pendingOrders = ref([
|
|
|
|
|
{
|
|
|
|
|
orderNo: 'GD20230601001',
|
|
|
|
|
description: '行道树发生倒伏,影响车辆和行人正常通行',
|
|
|
|
|
type: '行道树倒伏',
|
|
|
|
|
address: '徐汇区xx街道xx路',
|
|
|
|
|
createTime: '2023-06-01 09:30',
|
|
|
|
|
level: '高危险',
|
|
|
|
|
team: '一分公司一组',
|
|
|
|
|
status: 'toHandle'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
orderNo: 'GD20230601002',
|
|
|
|
|
description: '行道树出现明显倾斜,可能存在安全隐患',
|
|
|
|
|
type: '行道树倾斜',
|
|
|
|
|
address: '徐汇区XX路与XX路交叉口',
|
|
|
|
|
createTime: '2023-06-01 10:15',
|
|
|
|
|
level: '中危险',
|
|
|
|
|
team: null,
|
|
|
|
|
status: 'toDispatch'
|
|
|
|
|
}
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
// 示例数据 - 已完成工单
|
|
|
|
|
const completedOrders = ref([
|
|
|
|
|
{
|
|
|
|
|
orderNo: 'GD20230531001',
|
|
|
|
|
description: '某小区停电故障处理',
|
|
|
|
|
type: '电力维修',
|
|
|
|
|
address: 'XX小区配电室',
|
|
|
|
|
createTime: '2023-05-31 08:20',
|
|
|
|
|
completeTime: '2023-05-31 10:45',
|
|
|
|
|
level: '紧急',
|
|
|
|
|
team: '电力维修组',
|
|
|
|
|
result: '已修复,恢复正常供电'
|
|
|
|
|
}
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
// 工单等级样式映射
|
|
|
|
|
const getLevelClass = (level) => {
|
|
|
|
|
const levelMap = {
|
|
|
|
|
高危险: 'high-risk',
|
|
|
|
|
中危险: 'medium-risk',
|
|
|
|
|
紧急: 'urgent'
|
|
|
|
|
};
|
|
|
|
|
return levelMap[level] || '';
|
|
|
|
|
const navigateToDetail = (item) => {
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
url: `/pages/homePage/emergencyDetails?orderId=${item.id}&status=${item.status}`,
|
|
|
|
|
success: () => {
|
|
|
|
|
console.log('跳转成功');
|
|
|
|
|
},
|
|
|
|
|
fail: (err) => {
|
|
|
|
|
console.error('跳转失败', err);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 返回
|
|
|
|
|
const goBack = () => {
|
|
|
|
|
uni.navigateBack();
|
|
|
|
|
};
|
|
|
|
|
// 立即录入
|
|
|
|
|
const navigateToPage = () => {
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
url: '/pages/homePage/emergencyEntry'
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
// 分页参数
|
|
|
|
|
const queryParams = ref({
|
|
|
|
|
address: '',
|
|
|
|
|
begainTime: '',
|
|
|
|
|
endTime: '',
|
|
|
|
|
gdLevel: null,
|
|
|
|
|
gdType: null,
|
|
|
|
|
parentId: null,
|
|
|
|
|
status: null,
|
|
|
|
|
yxlx: ''
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 获取数据字典的方法
|
|
|
|
|
// 数据容器
|
|
|
|
|
const pendingOrders = ref([]);
|
|
|
|
|
const completedOrders = ref([]);
|
|
|
|
|
|
|
|
|
|
// 获取工单类型字典
|
|
|
|
|
const fetchDicts = async () => {
|
|
|
|
|
const response = await getDicts('gdlx');
|
|
|
|
|
const response = await getDicts('gdlx', 'xdsqm', 'yxlx');
|
|
|
|
|
options.value = response.data.map((item) => ({
|
|
|
|
|
value: item.dictValue,
|
|
|
|
|
text: item.dictLabel
|
|
|
|
|
}));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 在组件挂载时加载数据
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
fetchDicts();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const onDateChange = (e) => {
|
|
|
|
|
console.log('时间范围变更:', e);
|
|
|
|
|
// 工单等级样式映射
|
|
|
|
|
const getLevelClass = (level) => {
|
|
|
|
|
const levelMap = {
|
|
|
|
|
1: 'high-risk',
|
|
|
|
|
2: 'medium-risk',
|
|
|
|
|
3: 'urgent'
|
|
|
|
|
};
|
|
|
|
|
return levelMap[level] || '';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 查询条件
|
|
|
|
|
const onSearch = () => {
|
|
|
|
|
console.log('查询条件:', {
|
|
|
|
|
activeTab: activeTab.value,
|
|
|
|
|
dateRange: dateRange.value
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
// 更新查询参数
|
|
|
|
|
if (range.value && range.value.length >= 2) {
|
|
|
|
|
queryParams.value.begainTime = range.value[0];
|
|
|
|
|
queryParams.value.endTime = range.value[1];
|
|
|
|
|
} else {
|
|
|
|
|
queryParams.value.begainTime = '';
|
|
|
|
|
queryParams.value.endTime = '';
|
|
|
|
|
}
|
|
|
|
|
queryParams.value.gdType = value.value;
|
|
|
|
|
|
|
|
|
|
// 工单操作
|
|
|
|
|
const dispatchOrder = (order) => {
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: `派发工单 ${order.orderNo}`,
|
|
|
|
|
icon: 'none'
|
|
|
|
|
});
|
|
|
|
|
// 重新加载数据
|
|
|
|
|
loadOrders();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleOrder = (order) => {
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: `开始处理 ${order.orderNo}`,
|
|
|
|
|
icon: 'none'
|
|
|
|
|
});
|
|
|
|
|
// 查询工单数据
|
|
|
|
|
const loadOrders = async () => {
|
|
|
|
|
if (activeTab.value === 'pending') {
|
|
|
|
|
queryParams.value.status = 0; // 待处理状态
|
|
|
|
|
const res = await getEmergencyOrderList(queryParams.value);
|
|
|
|
|
if (res.code === 200) {
|
|
|
|
|
pendingOrders.value = res.data?.records || [];
|
|
|
|
|
}
|
|
|
|
|
} else if (activeTab.value === 'completed') {
|
|
|
|
|
queryParams.value.status = 2; // 已完成状态
|
|
|
|
|
const res = await getEmergencyOrderList(queryParams.value);
|
|
|
|
|
if (res.code === 200) {
|
|
|
|
|
// 获取已完成工单列表后,为每个工单获取完成时间
|
|
|
|
|
completedOrders.value = await Promise.all(
|
|
|
|
|
(res.data?.records || []).map(async (order) => {
|
|
|
|
|
try {
|
|
|
|
|
const timeRes = await getEmergencyTime({ GdId: order.id });
|
|
|
|
|
return {
|
|
|
|
|
...order,
|
|
|
|
|
completeTime: timeRes.code === 200 ? timeRes.data[0]?.createTime || '暂无' : '暂无'
|
|
|
|
|
};
|
|
|
|
|
} catch (error) {
|
|
|
|
|
return {
|
|
|
|
|
...order
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const viewDetail = (order) => {
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: `查看详情 ${order.orderNo}`,
|
|
|
|
|
icon: 'none'
|
|
|
|
|
});
|
|
|
|
|
// 切换标签时重新加载数据
|
|
|
|
|
const handleTabChange = (tab) => {
|
|
|
|
|
activeTab.value = tab;
|
|
|
|
|
loadOrders();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//立即录入的操作
|
|
|
|
|
const navigateToPage = () => {
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
url: '/pages/homePage/emergencyEntry'
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
// 页面初始化加载数据
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
fetchDicts();
|
|
|
|
|
loadOrders();
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<!-- 样式 -->
|
|
|
|
|
<style scoped>
|
|
|
|
|
.container {
|
|
|
|
|
width: 100%;
|
|
|
|
@ -278,6 +302,7 @@ const navigateToPage = () => {
|
|
|
|
|
font-size: 32rpx;
|
|
|
|
|
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
|
|
|
|
|
font-family: 'MiSans-Regular';
|
|
|
|
|
/* position: absolute; */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 分割线 */
|
|
|
|
@ -331,11 +356,12 @@ const navigateToPage = () => {
|
|
|
|
|
gap: 35rpx;
|
|
|
|
|
width: 100%;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
padding-bottom: 60rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.order-item {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 550rpx;
|
|
|
|
|
height: auto;
|
|
|
|
|
border-radius: 25rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
@ -345,8 +371,8 @@ const navigateToPage = () => {
|
|
|
|
|
|
|
|
|
|
/* 状态标签样式 */
|
|
|
|
|
.status-tag {
|
|
|
|
|
width: 27%;
|
|
|
|
|
padding: 16rpx;
|
|
|
|
|
width: 28%;
|
|
|
|
|
padding: 10rpx;
|
|
|
|
|
border-top-left-radius: 25rpx;
|
|
|
|
|
border-bottom-right-radius: 120rpx;
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
@ -418,7 +444,7 @@ const navigateToPage = () => {
|
|
|
|
|
display: flex; /* 使用flex布局保持同行 */
|
|
|
|
|
align-items: center; /* 垂直居中 */
|
|
|
|
|
margin: 8rpx 0;
|
|
|
|
|
font-size: 32rpx;
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
padding-left: 30rpx;
|
|
|
|
|
font-family: 'MiSans-Regular';
|
|
|
|
@ -434,11 +460,10 @@ const navigateToPage = () => {
|
|
|
|
|
|
|
|
|
|
/* 内容部分 */
|
|
|
|
|
.item-description {
|
|
|
|
|
flex: 1; /* 占据剩余空间 */
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
padding-left: 10rpx; /* 和标签保持间距 */
|
|
|
|
|
padding-left: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 操作文字通用样式 */
|
|
|
|
@ -456,9 +481,9 @@ const navigateToPage = () => {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
|
|
|
|
margin: 30rpx;
|
|
|
|
|
margin: 20rpx;
|
|
|
|
|
gap: 20rpx;
|
|
|
|
|
margin-top: 50rpx;
|
|
|
|
|
margin-top: 40rpx;
|
|
|
|
|
font-family: 'MiSans-Regular';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -487,7 +512,12 @@ const navigateToPage = () => {
|
|
|
|
|
background-color: #52c41a;
|
|
|
|
|
}
|
|
|
|
|
.bottom-btn {
|
|
|
|
|
margin-top: 60rpx;
|
|
|
|
|
/* margin-top: 60rpx; */
|
|
|
|
|
position: absolute;
|
|
|
|
|
bottom: 0%;
|
|
|
|
|
padding-bottom: 10rpx;
|
|
|
|
|
width: 94%;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
}
|
|
|
|
|
.bottom-btn button {
|
|
|
|
|
color: #ffffff;
|
|
|
|
|