订单页面样式修改
Showing
1 changed file
with
469 additions
and
97 deletions
| 1 | <template> | 1 | <template> |
| 2 | <view :class="{ 'no-scroll': isPopupOpen }" class="order-page"> | 2 | <view :class="{ 'no-scroll': isPopupOpen }" class="order-page"> |
| 3 | <!-- 顶部标签栏 --> | 3 | <!-- 顶部标签栏 --> |
| 4 | |||
| 5 | <view class="search-bar"> | ||
| 6 | <uni-easyinput | ||
| 7 | v-model="queryParams.wfCode" | ||
| 8 | :input-border="false" | ||
| 9 | class="search-input" | ||
| 10 | placeholder="搜索缴费编号" | ||
| 11 | placeholderStyle="font-size:30rpx;color:#999" | ||
| 12 | prefixIcon="search" | ||
| 13 | @blur="handelSearch" | ||
| 14 | @clear="handelSearch"> | ||
| 15 | </uni-easyinput> | ||
| 16 | <view class="add-btn" @click="handelSearch"> | ||
| 17 | <text class="add-text">搜索</text> | ||
| 18 | </view> | ||
| 19 | </view> | ||
| 20 | |||
| 4 | <view class="tab-bar"> | 21 | <view class="tab-bar"> |
| 5 | <view | 22 | <view |
| 6 | v-for="(tab, index) in tabs" | 23 | v-for="(tab, index) in tabs" |
| ... | @@ -24,58 +41,187 @@ | ... | @@ -24,58 +41,187 @@ |
| 24 | > | 41 | > |
| 25 | <view class="order-list"> | 42 | <view class="order-list"> |
| 26 | <!-- 有数据才循环 --> | 43 | <!-- 有数据才循环 --> |
| 44 | <!-- <view v-if="list.length > 0">--> | ||
| 45 | <!-- <view--> | ||
| 46 | <!-- v-for="(item, index) in list"--> | ||
| 47 | <!-- :key="index"--> | ||
| 48 | <!-- class="order-card"--> | ||
| 49 | <!-- @click="goToDetail(item)"--> | ||
| 50 | <!-- >--> | ||
| 51 | <!-- <!– 订单头部:日期 + 状态 –>--> | ||
| 52 | <!-- <view class="card-header">--> | ||
| 53 | <!-- <view class="date">--> | ||
| 54 | <!-- <!– <image :src="config.baseUrl_api + '/fs/static/calendar@2x.png'" mode="widthFix" style="width:30rpx;height:30rpx;"/> –>--> | ||
| 55 | <!-- <!– –>--> | ||
| 56 | <!-- <text class="value text-primary">{{ item.wfCode || '——' }}</text>--> | ||
| 57 | <!-- </view>--> | ||
| 58 | <!-- <view class="status-tags">--> | ||
| 59 | <!-- <!– <view--> | ||
| 60 | <!-- class="status-tag"--> | ||
| 61 | <!-- :class="{--> | ||
| 62 | <!-- success: item.payStatus == 1,--> | ||
| 63 | <!-- danger: item.payStatus == 2,--> | ||
| 64 | <!-- pending: item.payStatus == 0--> | ||
| 65 | <!-- }"--> | ||
| 66 | <!-- >--> | ||
| 67 | <!-- {{ getStatusText(item.payStatus) }}--> | ||
| 68 | <!-- </view> –>--> | ||
| 69 | <!-- <view--> | ||
| 70 | <!-- :class="{--> | ||
| 71 | <!-- 'status-wait': item.auditStatus == 0,--> | ||
| 72 | <!-- 'status-pending': item.auditStatus == 1,--> | ||
| 73 | <!-- 'status-success': item.auditStatus == 2,--> | ||
| 74 | <!-- 'status-danger': item.auditStatus == 3--> | ||
| 75 | <!-- }"--> | ||
| 76 | <!-- class="status-tag ml-10"--> | ||
| 77 | <!-- >--> | ||
| 78 | <!-- {{ getAuditStatusText(item.auditStatus) }}--> | ||
| 79 | <!-- </view>--> | ||
| 80 | <!-- </view>--> | ||
| 81 | <!-- </view>--> | ||
| 82 | <!-- --> | ||
| 83 | <!-- <!– 订单编号、缴费编号 –>--> | ||
| 84 | <!-- <view class="info-row">--> | ||
| 85 | <!-- <text class="label">订单编号:</text>--> | ||
| 86 | <!-- <text class="value">{{ item.tradeNo || '——' }}</text>--> | ||
| 87 | <!-- </view>--> | ||
| 88 | <!-- <view v-if="item.orderName" class="info-row">--> | ||
| 89 | <!-- <text class="label">缴费名称:</text>--> | ||
| 90 | <!-- <text class="value">{{ item.orderName || '' }}</text>--> | ||
| 91 | <!-- </view>--> | ||
| 92 | <!-- <!– <view class="info-row">--> | ||
| 93 | <!-- <text class="label">缴费编号:</text>--> | ||
| 94 | <!-- --> | ||
| 95 | <!-- </view> –>--> | ||
| 96 | <!-- --> | ||
| 97 | <!-- <!– 核心:前2tab仅展示缴费年限,后2tab仅展示人数合计 –>--> | ||
| 98 | <!-- <view v-if="item.content" class="info-section flex f-j-s">--> | ||
| 99 | <!-- <!– 个人/单位会员(仅缴费年限) –>--> | ||
| 100 | <!-- <view v-if="currentTab === '0' || currentTab === '1'" class="single-info">--> | ||
| 101 | <!-- <view class="label">缴费年限:</view>--> | ||
| 102 | <!-- <view class="value">{{ item.content.yearCount || 0 }}</view>--> | ||
| 103 | <!-- </view>--> | ||
| 104 | <!-- <!– 级位/段位考试(仅人数合计) –>--> | ||
| 105 | <!-- <view v-if="currentTab === '2' || currentTab === '3' || currentTab === '4'" class="single-info">--> | ||
| 106 | <!-- <view class="label">人数合计</view>--> | ||
| 107 | <!-- <view class="value">{{ item.content.personCount || 0 }}</view>--> | ||
| 108 | <!-- </view>--> | ||
| 109 | <!-- <view class="line"></view>--> | ||
| 110 | <!-- <view class="single-info">--> | ||
| 111 | <!-- <view class="label">订单状态</view>--> | ||
| 112 | <!-- <view :class="item.effect == 1 ? 'text-success' : 'text-warning'" class="value">--> | ||
| 113 | <!-- {{ item.effect == 1 ? '已生效' : '未生效' }}--> | ||
| 114 | <!-- </view>--> | ||
| 115 | <!-- </view>--> | ||
| 116 | <!-- <view class="line"></view>--> | ||
| 117 | <!-- <view class="single-info">--> | ||
| 118 | <!-- <view class="label">缴费状态</view>--> | ||
| 119 | <!-- <view--> | ||
| 120 | <!-- :class="{--> | ||
| 121 | <!-- 'text-primary': item.payStatus == 0,--> | ||
| 122 | <!-- 'text-success': item.payStatus == 1,--> | ||
| 123 | <!-- 'text-danger': item.payStatus == 2--> | ||
| 124 | <!-- }"--> | ||
| 125 | <!-- class="value"--> | ||
| 126 | <!-- >--> | ||
| 127 | <!-- {{ item.payStatus == 0 ? '待缴费' : item.payStatus == 1 ? '缴费成功' : '订单取消' }}--> | ||
| 128 | <!-- </view>--> | ||
| 129 | <!-- </view>--> | ||
| 130 | <!-- </view>--> | ||
| 131 | <!-- --> | ||
| 132 | <!-- <!– 费用合计 + 缴费方式 –>--> | ||
| 133 | <!-- <view class="price-section">--> | ||
| 134 | <!-- <view class="price-row">--> | ||
| 135 | <!-- <text class="price-label">费用合计</text>--> | ||
| 136 | <!-- <text class="price-value">¥{{ (Number(item.price) || 0).toFixed(2) }}</text>--> | ||
| 137 | <!-- </view>--> | ||
| 138 | <!-- <view class="price-row">--> | ||
| 139 | <!-- <text class="price-label">缴费方式</text>--> | ||
| 140 | <!-- <text class="price-value">{{ item.ziZhangBu ? '对公转账' : '民生付' }}</text>--> | ||
| 141 | <!-- </view>--> | ||
| 142 | <!-- </view>--> | ||
| 143 | <!-- --> | ||
| 144 | <!-- <!– 按钮组:靠右紧凑展示 –>--> | ||
| 145 | <!-- <view class="btn-group">--> | ||
| 146 | <!-- <!– 已缴费:申请开票/已开票(需要审核通过才能开票) –>--> | ||
| 147 | <!-- <template v-if="item.payStatus == 1 && item.invoiceStatus != 1&& item.auditStatus == 2 &&item.price>0">--> | ||
| 148 | <!-- <button :disabled="item.invoiceStatus === 1" class="btn btn-view-invoice" @click="makeInvoiceFN(item)">--> | ||
| 149 | <!-- 开票--> | ||
| 150 | <!-- </button>--> | ||
| 151 | <!-- </template>--> | ||
| 152 | <!-- <!– 已开票:查看发票 –>--> | ||
| 153 | <!-- <template v-if="item.invoiceStatus == 1">--> | ||
| 154 | <!-- <button class="btn btn-invoice" @click.stop="viewInvoice(item)">查看发票</button>--> | ||
| 155 | <!-- </template>--> | ||
| 156 | <!-- <!– 未缴费:去缴费 + 取消订单 –>--> | ||
| 157 | <!-- <!– <template v-if="item.payStatus == 0">--> | ||
| 158 | <!-- <button class="btn btn-cancel" @click="handleCancel(item)">取消订单</button>--> | ||
| 159 | <!-- <button class="btn btn-pay" @click="handlePay(item)">去缴费</button>--> | ||
| 160 | <!-- </template> –>--> | ||
| 161 | <!-- </view>--> | ||
| 162 | <!-- </view>--> | ||
| 163 | <!-- </view>--> | ||
| 164 | |||
| 165 | <!-- 有数据才循环 --> | ||
| 27 | <view v-if="list.length > 0"> | 166 | <view v-if="list.length > 0"> |
| 28 | <view | 167 | <view |
| 29 | v-for="(item, index) in list" | 168 | v-for="(item, index) in list" |
| 30 | :key="index" | 169 | :key="index" |
| 31 | class="order-card" | 170 | class="order-card-new" |
| 32 | @click="goToDetail(item)" | 171 | @click="goToDetail(item)" |
| 33 | > | 172 | > |
| 34 | <!-- 订单头部:日期 + 状态 --> | 173 | <!-- 订单头部:日期 + 状态 --> |
| 35 | <view class="card-header"> | 174 | <view class="card-header"> |
| 36 | <view class="date"> | 175 | <view class="date"> |
| 37 | <!-- <image :src="config.baseUrl_api + '/fs/static/calendar@2x.png'" mode="widthFix" style="width:30rpx;height:30rpx;"/> --> | 176 | <view class="data-header"> |
| 38 | <!-- --> | 177 | <text class="member-label">{{ tabs[currentTab].label }}·</text> |
| 39 | <text class="value text-primary">{{ item.wfCode || '——' }}</text> | 178 | <text class="value ">{{ item.orderName || '——' }}</text> |
| 40 | </view> | 179 | </view> |
| 41 | <view class="status-tags"> | 180 | <text :class="{ |
| 42 | <!-- <view | ||
| 43 | class="status-tag" | ||
| 44 | :class="{ | ||
| 45 | success: item.payStatus == 1, | ||
| 46 | danger: item.payStatus == 2, | ||
| 47 | pending: item.payStatus == 0 | ||
| 48 | }" | ||
| 49 | > | ||
| 50 | {{ getStatusText(item.payStatus) }} | ||
| 51 | </view> --> | ||
| 52 | <view | ||
| 53 | :class="{ | ||
| 54 | 'status-wait': item.auditStatus == 0, | 181 | 'status-wait': item.auditStatus == 0, |
| 55 | 'status-pending': item.auditStatus == 1, | 182 | 'status-pending': item.auditStatus == 1, |
| 56 | 'status-success': item.auditStatus == 2, | 183 | 'status-success': item.auditStatus == 2, |
| 57 | 'status-danger': item.auditStatus == 3 | 184 | 'status-danger': item.auditStatus == 3 |
| 58 | }" | 185 | }" |
| 59 | class="status-tag ml-10" | 186 | class="status-tag ">{{ getAuditStatusText(item.auditStatus) }} |
| 60 | > | 187 | </text> |
| 61 | {{ getAuditStatusText(item.auditStatus) }} | ||
| 62 | </view> | 188 | </view> |
| 63 | </view> | 189 | </view> |
| 190 | <view class="card-header"> | ||
| 191 | <view class="date"> | ||
| 192 | <view class="data-header"> | ||
| 193 | <text class="value"> | ||
| 194 | <text class="tradeNo">订单编号:</text> | ||
| 195 | {{ item.tradeNo || '——' }} | ||
| 196 | </text> | ||
| 197 | </view> | ||
| 198 | </view> | ||
| 199 | </view> | ||
| 200 | <view class="card-header"> | ||
| 201 | <view class="date"> | ||
| 202 | <view class="data-header"> | ||
| 203 | <text class="value"> | ||
| 204 | <text class="tradeNo">缴费编号:</text> | ||
| 205 | {{ item.wfCode || '——' }} | ||
| 206 | </text> | ||
| 207 | </view> | ||
| 208 | </view> | ||
| 209 | </view> | ||
| 210 | <view class="member-time"> | ||
| 211 | <view class="label"> | ||
| 212 | <text class="star">★</text> | ||
| 213 | {{ `${filterTime(item.genTime)}${filterType(item.type)}` }} | ||
| 214 | </view> | ||
| 215 | <view class="price"> | ||
| 216 | <view>¥{{ item.price || '0.00' }}</view> | ||
| 217 | <view v-if="item.type==0" class="person">共{{ item.content?.allPersonCount || 0 }}人</view> | ||
| 218 | <view v-if="item.type==1" class="person">共{{ item.content?.yearCount || 0 }}年</view> | ||
| 219 | <view v-if="item.type==2||item.type==3||item.type==4" class="person">共{{ | ||
| 220 | item.content?.personCount || 0 | ||
| 221 | }}人 | ||
| 64 | </view> | 222 | </view> |
| 65 | |||
| 66 | <!-- 订单编号、缴费编号 --> | ||
| 67 | <view class="info-row"> | ||
| 68 | <text class="label">订单编号:</text> | ||
| 69 | <text class="value">{{ item.tradeNo || '——' }}</text> | ||
| 70 | </view> | 223 | </view> |
| 71 | <view v-if="item.orderName" class="info-row"> | ||
| 72 | <text class="label">缴费名称:</text> | ||
| 73 | <text class="value">{{ item.orderName || '' }}</text> | ||
| 74 | </view> | 224 | </view> |
| 75 | <!-- <view class="info-row"> | ||
| 76 | <text class="label">缴费编号:</text> | ||
| 77 | |||
| 78 | </view> --> | ||
| 79 | 225 | ||
| 80 | <!-- 核心:前2tab仅展示缴费年限,后2tab仅展示人数合计 --> | 226 | <!-- 核心:前2tab仅展示缴费年限,后2tab仅展示人数合计 --> |
| 81 | <view v-if="item.content" class="info-section flex f-j-s"> | 227 | <view v-if="item.content" class="info-section flex f-j-s"> |
| ... | @@ -112,23 +258,20 @@ | ... | @@ -112,23 +258,20 @@ |
| 112 | </view> | 258 | </view> |
| 113 | </view> | 259 | </view> |
| 114 | 260 | ||
| 115 | <!-- 费用合计 + 缴费方式 --> | ||
| 116 | <view class="price-section"> | ||
| 117 | <view class="price-row"> | ||
| 118 | <text class="price-label">费用合计</text> | ||
| 119 | <text class="price-value">¥{{ (Number(item.price) || 0).toFixed(2) }}</text> | ||
| 120 | </view> | ||
| 121 | <view class="price-row"> | ||
| 122 | <text class="price-label">缴费方式</text> | ||
| 123 | <text class="price-value">{{ item.ziZhangBu ? '对公转账' : '民生付' }}</text> | ||
| 124 | </view> | ||
| 125 | </view> | ||
| 126 | |||
| 127 | <!-- 按钮组:靠右紧凑展示 --> | 261 | <!-- 按钮组:靠右紧凑展示 --> |
| 128 | <view class="btn-group"> | 262 | <view class="btn-group"> |
| 263 | <view> | ||
| 264 | <text class="more" @click="goToDetail(item)">更多</text> | ||
| 265 | </view> | ||
| 266 | <view class="btn-flex"> | ||
| 267 | <!-- 已缴费:申请开票/已开票(需要审核通过才能开票) --> | ||
| 268 | <template> | ||
| 269 | <button class="btn btn-info" @click="goToDetail(item)">查看明细</button> | ||
| 270 | </template> | ||
| 129 | <!-- 已缴费:申请开票/已开票(需要审核通过才能开票) --> | 271 | <!-- 已缴费:申请开票/已开票(需要审核通过才能开票) --> |
| 130 | <template v-if="item.payStatus == 1 && item.invoiceStatus != 1&& item.auditStatus == 2 &&item.price>0"> | 272 | <template v-if="item.payStatus == 1 && item.invoiceStatus != 1&& item.auditStatus == 2 &&item.price>0"> |
| 131 | <button :disabled="item.invoiceStatus === 1" class="btn btn-view-invoice" @click="makeInvoiceFN(item)"> | 273 | <button :disabled="item.invoiceStatus === 1" class="btn btn-view-invoice" |
| 274 | @click="makeInvoiceFN(item)"> | ||
| 132 | 开票 | 275 | 开票 |
| 133 | </button> | 276 | </button> |
| 134 | </template> | 277 | </template> |
| ... | @@ -142,6 +285,8 @@ | ... | @@ -142,6 +285,8 @@ |
| 142 | <button class="btn btn-pay" @click="handlePay(item)">去缴费</button> | 285 | <button class="btn btn-pay" @click="handlePay(item)">去缴费</button> |
| 143 | </template> --> | 286 | </template> --> |
| 144 | </view> | 287 | </view> |
| 288 | |||
| 289 | </view> | ||
| 145 | </view> | 290 | </view> |
| 146 | </view> | 291 | </view> |
| 147 | 292 | ||
| ... | @@ -233,6 +378,7 @@ import { | ... | @@ -233,6 +378,7 @@ import { |
| 233 | } from '@dcloudio/uni-app' | 378 | } from '@dcloudio/uni-app' |
| 234 | import * as api from '@/common/api.js' | 379 | import * as api from '@/common/api.js' |
| 235 | import config from '@/config.js' | 380 | import config from '@/config.js' |
| 381 | import dayjs from 'dayjs' | ||
| 236 | // 获取deptType值(初始值为0,在onMounted中设置实际值) | 382 | // 获取deptType值(初始值为0,在onMounted中设置实际值) |
| 237 | const deptType = ref(0); | 383 | const deptType = ref(0); |
| 238 | 384 | ||
| ... | @@ -245,29 +391,29 @@ const tabs = computed(() => { | ... | @@ -245,29 +391,29 @@ const tabs = computed(() => { |
| 245 | if (dt === 6) { | 391 | if (dt === 6) { |
| 246 | console.log('返回3个tab: 个人会员、单位会员、级位考试'); | 392 | console.log('返回3个tab: 个人会员、单位会员、级位考试'); |
| 247 | return [ | 393 | return [ |
| 248 | {name: '个人会员', type: '0'}, | 394 | {name: '个人会员', type: '0', label: "会员"}, |
| 249 | {name: '单位会员', type: '1'}, | 395 | {name: '单位会员', type: '1', label: "单位"}, |
| 250 | {name: '级位考试', type: '2'} | 396 | {name: '级位考试', type: '2', label: "级位"} |
| 251 | ]; | 397 | ]; |
| 252 | } else if (dt === 2) { | 398 | } else if (dt === 2) { |
| 253 | console.log('返回3个tab: 单位会员、段位考试、越段考试'); | 399 | console.log('返回3个tab: 单位会员、段位考试、越段考试'); |
| 254 | return [ | 400 | return [ |
| 255 | // {name: '单位会员', type: '1'}, | 401 | // {name: '单位会员', type: '1'}, |
| 256 | {name: '段位考试', type: '3'}, | 402 | {name: '段位考试', type: '3', label: "段位"}, |
| 257 | {name: '越段考试', type: '4'} | 403 | {name: '越段考试', type: '4', label: "越段"} |
| 258 | ]; | 404 | ]; |
| 259 | } else if (dt === 1) { | 405 | } else if (dt === 1) { |
| 260 | console.log('返回默认5个tab, dt值为:', dt); | 406 | console.log('返回默认5个tab, dt值为:', dt); |
| 261 | return [ | 407 | return [ |
| 262 | {name: '个人会员', type: '0'}, | 408 | {name: '个人会员', type: '0', label: "会员"}, |
| 263 | {name: '单位会员', type: '1'}, | 409 | {name: '单位会员', type: '1', label: "单位"}, |
| 264 | {name: '级位考试', type: '2'}, | 410 | {name: '级位考试', type: '2', label: "级位"}, |
| 265 | {name: '段位考试', type: '3'}, | 411 | {name: '段位考试', type: '3', label: "段位"}, |
| 266 | {name: '越段考试', type: '4'} | 412 | {name: '越段考试', type: '4', label: "越段"} |
| 267 | ]; | 413 | ]; |
| 268 | } else { | 414 | } else { |
| 269 | return [ | 415 | return [ |
| 270 | {name: '单位会员', type: '1'}, | 416 | {name: '单位会员', type: '1', label: "单位"}, |
| 271 | ]; | 417 | ]; |
| 272 | } | 418 | } |
| 273 | }); | 419 | }); |
| ... | @@ -309,8 +455,10 @@ onLoad((option) => { | ... | @@ -309,8 +455,10 @@ onLoad((option) => { |
| 309 | const app = getApp(); | 455 | const app = getApp(); |
| 310 | deptType.value = Number(app.globalData?.deptType || 0); | 456 | deptType.value = Number(app.globalData?.deptType || 0); |
| 311 | const firstType = tabs.value[0]?.type ?? '0'; | 457 | const firstType = tabs.value[0]?.type ?? '0'; |
| 312 | currentTab.value = option.type || firstType; | 458 | // currentTab.value = option.type || firstType; |
| 313 | queryParams.type = option.type || firstType; | 459 | // queryParams.type = option.type || firstType; |
| 460 | currentTab.value = firstType; | ||
| 461 | queryParams.type = firstType; | ||
| 314 | initData(); | 462 | initData(); |
| 315 | }); | 463 | }); |
| 316 | 464 | ||
| ... | @@ -368,6 +516,20 @@ const getAuditStatusText = (status) => { | ... | @@ -368,6 +516,20 @@ const getAuditStatusText = (status) => { |
| 368 | return map[status] || ''; | 516 | return map[status] || ''; |
| 369 | }; | 517 | }; |
| 370 | 518 | ||
| 519 | const filterTime = (row) => { | ||
| 520 | if (!row) return '' | ||
| 521 | return dayjs(row).format('YYYY年MM月DD日') | ||
| 522 | } | ||
| 523 | |||
| 524 | const filterType = (row) => { | ||
| 525 | if (row == 0) return '个人会员缴费办理' | ||
| 526 | if (row == 1) return '单位会员缴费办理' | ||
| 527 | if (row == 2) return '级位考试办理' | ||
| 528 | if (row == 3) return '段位考试办理' | ||
| 529 | if (row == 4) return '越位考试办理' | ||
| 530 | } | ||
| 531 | |||
| 532 | |||
| 371 | // 数据请求核心方法 | 533 | // 数据请求核心方法 |
| 372 | const initData = async () => { | 534 | const initData = async () => { |
| 373 | loading.value = true; | 535 | loading.value = true; |
| ... | @@ -409,6 +571,12 @@ const initData = async () => { | ... | @@ -409,6 +571,12 @@ const initData = async () => { |
| 409 | } | 571 | } |
| 410 | }; | 572 | }; |
| 411 | 573 | ||
| 574 | const handelSearch = () => { | ||
| 575 | pageNum.value = 1 | ||
| 576 | list.value = [] | ||
| 577 | initData() | ||
| 578 | } | ||
| 579 | |||
| 412 | // 删除订单 | 580 | // 删除订单 |
| 413 | const handleDelete = (item) => { | 581 | const handleDelete = (item) => { |
| 414 | currentOrder.value = item; | 582 | currentOrder.value = item; |
| ... | @@ -425,7 +593,7 @@ const confirmDel = async () => { | ... | @@ -425,7 +593,7 @@ const confirmDel = async () => { |
| 425 | uni.showToast({title: '删除成功', icon: 'success'}); | 593 | uni.showToast({title: '删除成功', icon: 'success'}); |
| 426 | pageNum.value = 1; | 594 | pageNum.value = 1; |
| 427 | list.value = []; | 595 | list.value = []; |
| 428 | initData(); | 596 | await initData(); |
| 429 | closeDelPopup(); | 597 | closeDelPopup(); |
| 430 | } catch (e) { | 598 | } catch (e) { |
| 431 | uni.showToast({title: '删除失败', icon: 'error'}); | 599 | uni.showToast({title: '删除失败', icon: 'error'}); |
| ... | @@ -521,7 +689,7 @@ const confirmCancel = async () => { | ... | @@ -521,7 +689,7 @@ const confirmCancel = async () => { |
| 521 | uni.showToast({title: '取消成功', icon: 'success'}); | 689 | uni.showToast({title: '取消成功', icon: 'success'}); |
| 522 | pageNum.value = 1; | 690 | pageNum.value = 1; |
| 523 | list.value = []; | 691 | list.value = []; |
| 524 | initData(); | 692 | await initData(); |
| 525 | closeCancelPopup(); | 693 | closeCancelPopup(); |
| 526 | } catch (e) { | 694 | } catch (e) { |
| 527 | uni.showToast({title: '取消失败', icon: 'error'}); | 695 | uni.showToast({title: '取消失败', icon: 'error'}); |
| ... | @@ -549,24 +717,67 @@ const closeCancelPopup = () => { | ... | @@ -549,24 +717,67 @@ const closeCancelPopup = () => { |
| 549 | } | 717 | } |
| 550 | } | 718 | } |
| 551 | 719 | ||
| 720 | /* 搜索栏 */ | ||
| 721 | .search-bar { | ||
| 722 | display: flex; | ||
| 723 | align-items: center; | ||
| 724 | padding: 20rpx 30rpx; | ||
| 725 | background-color: #ffffff; | ||
| 726 | margin-bottom: 0; | ||
| 727 | |||
| 728 | .search-input { | ||
| 729 | flex: 1; | ||
| 730 | margin-right: 20rpx; | ||
| 731 | |||
| 732 | :deep(.uni-easyinput__content) { | ||
| 733 | border-radius: 40rpx; | ||
| 734 | background-color: #f5f7fa; | ||
| 735 | height: 76rpx; | ||
| 736 | padding: 0 24rpx; | ||
| 737 | } | ||
| 738 | |||
| 739 | :deep(.uni-easyinput__content-input) { | ||
| 740 | font-size: 28rpx; | ||
| 741 | color: #333; | ||
| 742 | } | ||
| 743 | } | ||
| 744 | |||
| 745 | .add-btn { | ||
| 746 | display: flex; | ||
| 747 | align-items: center; | ||
| 748 | padding: 10rpx 30rpx; | ||
| 749 | background-color: #AD181F; | ||
| 750 | border-radius: 40rpx; | ||
| 751 | font-size: 28rpx; | ||
| 752 | color: #ffffff; | ||
| 753 | } | ||
| 754 | |||
| 755 | .add-icon { | ||
| 756 | font-size: 36rpx; | ||
| 757 | margin-right: 10rpx; | ||
| 758 | font-weight: bold; | ||
| 759 | } | ||
| 760 | } | ||
| 761 | |||
| 552 | // 标签栏样式 | 762 | // 标签栏样式 |
| 553 | .tab-bar { | 763 | .tab-bar { |
| 554 | display: flex; | 764 | display: flex; |
| 555 | background: #fff; | 765 | //background: #fff; |
| 556 | border-bottom: 1rpx solid #eee; | 766 | //border-bottom: 1rpx solid #eee; |
| 557 | flex-shrink: 0; | 767 | flex-shrink: 0; |
| 558 | 768 | ||
| 559 | .tab-item { | 769 | .tab-item { |
| 560 | flex: 1; | 770 | flex: 1; |
| 561 | text-align: center; | 771 | text-align: center; |
| 562 | padding: 24rpx 0; | 772 | padding: 24rpx 0; |
| 563 | font-size: 28rpx; | 773 | font-size: 30rpx; |
| 564 | color: #666; | 774 | color: #666; |
| 565 | position: relative; | 775 | position: relative; |
| 776 | font-weight: bold; | ||
| 566 | 777 | ||
| 567 | &.active { | 778 | &.active { |
| 568 | color: #e4393c; | 779 | color: #c30d23; |
| 569 | font-weight: 500; | 780 | font-weight: bold; |
| 570 | 781 | ||
| 571 | &::after { | 782 | &::after { |
| 572 | content: ''; | 783 | content: ''; |
| ... | @@ -575,8 +786,9 @@ const closeCancelPopup = () => { | ... | @@ -575,8 +786,9 @@ const closeCancelPopup = () => { |
| 575 | left: 50%; | 786 | left: 50%; |
| 576 | transform: translateX(-50%); | 787 | transform: translateX(-50%); |
| 577 | width: 60rpx; | 788 | width: 60rpx; |
| 578 | height: 4rpx; | 789 | height: 6rpx; |
| 579 | background: linear-gradient(90deg, #FF755A, #F51722); | 790 | //background: linear-gradient(90deg, #FF755A, #F51722); |
| 791 | background: #c30d23; | ||
| 580 | border-radius: 2rpx; | 792 | border-radius: 2rpx; |
| 581 | } | 793 | } |
| 582 | } | 794 | } |
| ... | @@ -614,7 +826,7 @@ const closeCancelPopup = () => { | ... | @@ -614,7 +826,7 @@ const closeCancelPopup = () => { |
| 614 | display: flex; | 826 | display: flex; |
| 615 | justify-content: space-between; | 827 | justify-content: space-between; |
| 616 | align-items: center; | 828 | align-items: center; |
| 617 | padding-bottom: 20rpx; | 829 | padding-bottom: 10rpx; |
| 618 | // margin-bottom: 20rpx; | 830 | // margin-bottom: 20rpx; |
| 619 | // border-bottom: 1rpx dashed #eee; | 831 | // border-bottom: 1rpx dashed #eee; |
| 620 | 832 | ||
| ... | @@ -636,21 +848,21 @@ const closeCancelPopup = () => { | ... | @@ -636,21 +848,21 @@ const closeCancelPopup = () => { |
| 636 | 848 | ||
| 637 | .status-tag { | 849 | .status-tag { |
| 638 | font-size: 22rpx; | 850 | font-size: 22rpx; |
| 639 | padding: 6rpx 16rpx; | 851 | //padding: 6rpx 16rpx; |
| 640 | border-radius: 20rpx; | 852 | //border-radius: 20rpx; |
| 641 | 853 | ||
| 642 | &.success { | 854 | &.success { |
| 643 | background: #e6f7ef; | 855 | //background: #e6f7ef; |
| 644 | color: #52c41a; | 856 | color: #52c41a; |
| 645 | } | 857 | } |
| 646 | 858 | ||
| 647 | &.danger { | 859 | &.danger { |
| 648 | background: #fff1f0; | 860 | //background: #fff1f0; |
| 649 | color: #ff4d4f; | 861 | color: #ff4d4f; |
| 650 | } | 862 | } |
| 651 | 863 | ||
| 652 | &.pending { | 864 | &.pending { |
| 653 | background: #f5f5f5; | 865 | //background: #f5f5f5; |
| 654 | color: #999; | 866 | color: #999; |
| 655 | } | 867 | } |
| 656 | 868 | ||
| ... | @@ -659,27 +871,27 @@ const closeCancelPopup = () => { | ... | @@ -659,27 +871,27 @@ const closeCancelPopup = () => { |
| 659 | } | 871 | } |
| 660 | 872 | ||
| 661 | &.status-wait { | 873 | &.status-wait { |
| 662 | background: #f0f5ff; | 874 | //background: #f0f5ff; |
| 663 | color: #597ef7; | 875 | color: #597ef7; |
| 664 | border: 1rpx solid rgba(89, 126, 247, 0.3); | 876 | //border: 1rpx solid rgba(89, 126, 247, 0.3); |
| 665 | } | 877 | } |
| 666 | 878 | ||
| 667 | &.status-pending { | 879 | &.status-pending { |
| 668 | background: #fff7e6; | 880 | //background: #fff7e6; |
| 669 | color: #faad14; | 881 | color: #faad14; |
| 670 | border: 1rpx solid rgba(250, 173, 20, 0.3); | 882 | //border: 1rpx solid rgba(250, 173, 20, 0.3); |
| 671 | } | 883 | } |
| 672 | 884 | ||
| 673 | &.status-success { | 885 | &.status-success { |
| 674 | background: #e6f7ef; | 886 | //background: #e6f7ef; |
| 675 | color: #52c41a; | 887 | color: #52c41a; |
| 676 | border: 1rpx solid rgba(82, 196, 26, 0.3); | 888 | //border: 1rpx solid rgba(82, 196, 26, 0.3); |
| 677 | } | 889 | } |
| 678 | 890 | ||
| 679 | &.status-danger { | 891 | &.status-danger { |
| 680 | background: #fff1f0; | 892 | //background: #fff1f0; |
| 681 | color: #ff4d4f; | 893 | color: #ff4d4f; |
| 682 | border: 1rpx solid rgba(232, 52, 29, 0.3); | 894 | //border: 1rpx solid rgba(232, 52, 29, 0.3); |
| 683 | } | 895 | } |
| 684 | } | 896 | } |
| 685 | } | 897 | } |
| ... | @@ -708,9 +920,10 @@ const closeCancelPopup = () => { | ... | @@ -708,9 +920,10 @@ const closeCancelPopup = () => { |
| 708 | display: flex; | 920 | display: flex; |
| 709 | align-items: center; | 921 | align-items: center; |
| 710 | justify-content: space-between; | 922 | justify-content: space-between; |
| 711 | margin: 20rpx 0; | 923 | //margin: 20rpx 0; |
| 712 | padding: 0 20rpx; | 924 | padding: 0 20rpx; |
| 713 | min-height: 100rpx; | 925 | min-height: 100rpx; |
| 926 | border-radius: 20rpx; | ||
| 714 | } | 927 | } |
| 715 | 928 | ||
| 716 | .line { | 929 | .line { |
| ... | @@ -726,6 +939,7 @@ const closeCancelPopup = () => { | ... | @@ -726,6 +939,7 @@ const closeCancelPopup = () => { |
| 726 | border-radius: 8rpx; | 939 | border-radius: 8rpx; |
| 727 | font-size: 26rpx; | 940 | font-size: 26rpx; |
| 728 | text-align: center; | 941 | text-align: center; |
| 942 | |||
| 729 | .label { | 943 | .label { |
| 730 | color: #999; | 944 | color: #999; |
| 731 | text-align: center; | 945 | text-align: center; |
| ... | @@ -790,21 +1004,32 @@ const closeCancelPopup = () => { | ... | @@ -790,21 +1004,32 @@ const closeCancelPopup = () => { |
| 790 | // 按钮组 | 1004 | // 按钮组 |
| 791 | .btn-group { | 1005 | .btn-group { |
| 792 | display: flex; | 1006 | display: flex; |
| 793 | justify-content: flex-end; | 1007 | justify-content: space-between; |
| 794 | align-items: center; | 1008 | align-items: center; |
| 795 | gap: 16rpx; | 1009 | gap: 16rpx; |
| 796 | width: 100%; | 1010 | width: 100%; |
| 797 | margin-top: 20rpx; | 1011 | margin-top: 20rpx; |
| 798 | 1012 | ||
| 1013 | .more { | ||
| 1014 | color: #666; | ||
| 1015 | } | ||
| 1016 | |||
| 1017 | .btn-flex { | ||
| 1018 | display: flex; | ||
| 1019 | justify-content: flex-end; | ||
| 1020 | gap: 16rpx; | ||
| 1021 | } | ||
| 1022 | |||
| 799 | .btn { | 1023 | .btn { |
| 800 | // 固定宽度,所有按钮一样大 | 1024 | // 固定宽度,所有按钮一样大 |
| 801 | width: 160rpx; | 1025 | width: 160rpx; |
| 802 | height: 70rpx; | 1026 | height: 50rpx; |
| 803 | line-height: 70rpx; | 1027 | line-height: 50rpx; |
| 804 | padding: 0; | 1028 | padding: 0; |
| 805 | border-radius: 40rpx; | 1029 | border-radius: 20rpx; |
| 806 | font-size: 24rpx; | 1030 | font-size: 28rpx; |
| 807 | white-space: nowrap; | 1031 | white-space: nowrap; |
| 1032 | font-weight: bold; | ||
| 808 | border: none; | 1033 | border: none; |
| 809 | background: transparent; | 1034 | background: transparent; |
| 810 | text-align: center; | 1035 | text-align: center; |
| ... | @@ -817,20 +1042,27 @@ const closeCancelPopup = () => { | ... | @@ -817,20 +1042,27 @@ const closeCancelPopup = () => { |
| 817 | 1042 | ||
| 818 | &.btn-delete { | 1043 | &.btn-delete { |
| 819 | background: #fff; | 1044 | background: #fff; |
| 820 | color: #e4393c; | 1045 | //color: #e4393c; |
| 821 | border: 1rpx solid #e4393c; | 1046 | color: #c30d23; |
| 1047 | border: 1rpx solid #c30d23; | ||
| 822 | } | 1048 | } |
| 823 | 1049 | ||
| 824 | &.btn-invoice { | 1050 | &.btn-invoice { |
| 825 | background: #fff; | 1051 | background: #fff; |
| 826 | color: #e4393c; | 1052 | color: #c30d23; |
| 827 | border: 1rpx solid #e4393c; | 1053 | border: 1rpx solid #c30d23; |
| 828 | } | 1054 | } |
| 829 | 1055 | ||
| 830 | &.btn-view-invoice { | 1056 | &.btn-view-invoice { |
| 831 | background: linear-gradient(90deg, #FF755A, #F51722); | 1057 | //background: linear-gradient(90deg, #FF755A, #F51722); |
| 832 | color: #fff; | 1058 | color: #c30d23; |
| 833 | border: none; | 1059 | //border: none; |
| 1060 | border: 1rpx solid #c30d23; | ||
| 1061 | } | ||
| 1062 | |||
| 1063 | &.btn-info { | ||
| 1064 | color: #444; | ||
| 1065 | border: 1rpx solid #666; | ||
| 834 | } | 1066 | } |
| 835 | 1067 | ||
| 836 | &.btn-cancel { | 1068 | &.btn-cancel { |
| ... | @@ -840,9 +1072,10 @@ const closeCancelPopup = () => { | ... | @@ -840,9 +1072,10 @@ const closeCancelPopup = () => { |
| 840 | } | 1072 | } |
| 841 | 1073 | ||
| 842 | &.btn-pay { | 1074 | &.btn-pay { |
| 843 | background: linear-gradient(90deg, #FF755A, #F51722); | 1075 | //background: linear-gradient(90deg, #FF755A, #F51722); |
| 844 | color: #fff; | 1076 | color: #c30d23; |
| 845 | border: none; | 1077 | //border: none; |
| 1078 | border: 1rpx solid #c30d23; | ||
| 846 | } | 1079 | } |
| 847 | 1080 | ||
| 848 | &:disabled { | 1081 | &:disabled { |
| ... | @@ -1040,4 +1273,143 @@ const closeCancelPopup = () => { | ... | @@ -1040,4 +1273,143 @@ const closeCancelPopup = () => { |
| 1040 | } | 1273 | } |
| 1041 | } | 1274 | } |
| 1042 | } | 1275 | } |
| 1276 | |||
| 1277 | .order-card-new { | ||
| 1278 | background: #fff; | ||
| 1279 | margin-bottom: 20rpx; | ||
| 1280 | padding: 20rpx; | ||
| 1281 | box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04); | ||
| 1282 | border-radius: 12rpx; | ||
| 1283 | display: flex; | ||
| 1284 | flex-direction: column; | ||
| 1285 | |||
| 1286 | |||
| 1287 | // 卡片头部 | ||
| 1288 | .card-header { | ||
| 1289 | display: flex; | ||
| 1290 | justify-content: space-between; | ||
| 1291 | align-items: center; | ||
| 1292 | padding-bottom: 10rpx; | ||
| 1293 | // margin-bottom: 20rpx; | ||
| 1294 | // border-bottom: 1rpx dashed #eee; | ||
| 1295 | |||
| 1296 | .date { | ||
| 1297 | width: 100%; | ||
| 1298 | display: flex; | ||
| 1299 | align-items: center; | ||
| 1300 | justify-content: space-between; | ||
| 1301 | gap: 8rpx; | ||
| 1302 | font-size: 26rpx; | ||
| 1303 | |||
| 1304 | .data-header { | ||
| 1305 | display: flex; | ||
| 1306 | } | ||
| 1307 | |||
| 1308 | .member-label { | ||
| 1309 | color: #c30d23; | ||
| 1310 | font-size: 28rpx; | ||
| 1311 | font-weight: bold; | ||
| 1312 | } | ||
| 1313 | |||
| 1314 | .value { | ||
| 1315 | color: #000; | ||
| 1316 | font-size: 28rpx; | ||
| 1317 | font-weight: bold; | ||
| 1318 | |||
| 1319 | .tradeNo { | ||
| 1320 | color: #999; | ||
| 1321 | font-size: 26rpx; | ||
| 1322 | } | ||
| 1323 | } | ||
| 1324 | |||
| 1325 | .date-text { | ||
| 1326 | color: #666; | ||
| 1327 | } | ||
| 1328 | } | ||
| 1329 | |||
| 1330 | |||
| 1331 | .status-tags { | ||
| 1332 | display: flex; | ||
| 1333 | gap: 10rpx; | ||
| 1334 | } | ||
| 1335 | |||
| 1336 | .status-tag { | ||
| 1337 | font-size: 26rpx; | ||
| 1338 | //padding: 6rpx 16rpx; | ||
| 1339 | //border-radius: 20rpx; | ||
| 1340 | |||
| 1341 | &.success { | ||
| 1342 | //background: #e6f7ef; | ||
| 1343 | color: #52c41a; | ||
| 1344 | } | ||
| 1345 | |||
| 1346 | &.danger { | ||
| 1347 | //background: #fff1f0; | ||
| 1348 | color: #ff4d4f; | ||
| 1349 | } | ||
| 1350 | |||
| 1351 | &.pending { | ||
| 1352 | //background: #f5f5f5; | ||
| 1353 | color: #999; | ||
| 1354 | } | ||
| 1355 | |||
| 1356 | &.ml-10 { | ||
| 1357 | margin-left: 10rpx; | ||
| 1358 | } | ||
| 1359 | |||
| 1360 | &.status-wait { | ||
| 1361 | //background: #f0f5ff; | ||
| 1362 | color: #597ef7; | ||
| 1363 | //border: 1rpx solid rgba(89, 126, 247, 0.3); | ||
| 1364 | } | ||
| 1365 | |||
| 1366 | &.status-pending { | ||
| 1367 | //background: #fff7e6; | ||
| 1368 | color: #faad14; | ||
| 1369 | //border: 1rpx solid rgba(250, 173, 20, 0.3); | ||
| 1370 | } | ||
| 1371 | |||
| 1372 | &.status-success { | ||
| 1373 | //background: #e6f7ef; | ||
| 1374 | color: #52c41a; | ||
| 1375 | //border: 1rpx solid rgba(82, 196, 26, 0.3); | ||
| 1376 | } | ||
| 1377 | |||
| 1378 | &.status-danger { | ||
| 1379 | //background: #fff1f0; | ||
| 1380 | color: #ff4d4f; | ||
| 1381 | //border: 1rpx solid rgba(232, 52, 29, 0.3); | ||
| 1382 | } | ||
| 1383 | } | ||
| 1384 | } | ||
| 1385 | |||
| 1386 | .member-time { | ||
| 1387 | width: 100%; | ||
| 1388 | display: flex; | ||
| 1389 | justify-content: space-between; | ||
| 1390 | padding-bottom: 10rpx; | ||
| 1391 | |||
| 1392 | .label { | ||
| 1393 | font-size: 26rpx; | ||
| 1394 | color: #999; | ||
| 1395 | |||
| 1396 | .star { | ||
| 1397 | color: #000; | ||
| 1398 | font-size: 28rpx; | ||
| 1399 | } | ||
| 1400 | } | ||
| 1401 | |||
| 1402 | .price { | ||
| 1403 | font-size: 30rpx; | ||
| 1404 | color: #000; | ||
| 1405 | font-weight: bold; | ||
| 1406 | |||
| 1407 | .person { | ||
| 1408 | font-size: 24rpx; | ||
| 1409 | color: #999; | ||
| 1410 | text-align: right; | ||
| 1411 | } | ||
| 1412 | } | ||
| 1413 | } | ||
| 1414 | } | ||
| 1043 | </style> | 1415 | </style> | ... | ... |
-
Please register or sign in to post a comment