|
@@ -1,73 +1,97 @@
|
|
|
<template>
|
|
|
- <!-- 确认送达 -->
|
|
|
+ <!-- 出入库 -->
|
|
|
<view>
|
|
|
<u-navbar :title="navTitle" autoBack placeholder @leftClick="leftClick"></u-navbar>
|
|
|
<view class="card_order_details">
|
|
|
- <view style="display: flex;align-items: center;margin-bottom: 10rpx;">
|
|
|
- <view class="details_title">{{getTitle(navTitle)}} <span class="line_title">*</span></view>
|
|
|
- <uni-datetime-picker type="datetime" :start="start" :end="end" v-model="valueTime" />
|
|
|
+ <view class="card_search" v-if="selectiveType == 'enter'">
|
|
|
+ <view class="details_title">冷冻柜 <span class="line_title">*</span></view>
|
|
|
+ <view class="card_input">
|
|
|
+ <view class="card_search_gray frame" @click="focus(true)">
|
|
|
+ <span v-if="coldCupboard.name">{{coldCupboard.name}}</span>
|
|
|
+ <span class="title_gray" v-else>请选择冷冻柜</span>
|
|
|
+ <u-icon name="arrow-down" color="#c8c9cc" size="18"></u-icon>
|
|
|
+ </view>
|
|
|
+ <!-- <u-input placeholder="请选择" border="surround" v-model="coldCupboard.name" suffixIcon="arrow-down"
|
|
|
+ @focus="focus(true)"></u-input> -->
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="card_search" v-if="selectiveType == 'out'">
|
|
|
+ <view class="details_title">保温箱 <span class="line_title">*</span></view>
|
|
|
+ <view class="card_input">
|
|
|
+ <view class="card_search_gray frame" @click="focus(false)">
|
|
|
+ <span v-if="incubator.name">{{incubator.name}}</span>
|
|
|
+ <span class="title_gray" v-else>请选择保温箱</span>
|
|
|
+ <u-icon name="arrow-down" color="#c8c9cc" size="18"></u-icon>
|
|
|
+ </view>
|
|
|
+ <!-- <u-input placeholder="请选择" border="surround" v-model="incubator.name" suffixIcon="arrow-down"
|
|
|
+ @focus="focus(false)"></u-input> -->
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="card_search" v-if="selectiveType == 'enter'">
|
|
|
+ <view class="details_title">冷冻要求 <span class="line_title">*</span></view>
|
|
|
+ <view class="card_input">
|
|
|
+ <u-input placeholder="请输入" border="surround" v-model="freezingDuration"></u-input>
|
|
|
+ </view>
|
|
|
+ <view class="title_hour">小时</view>
|
|
|
</view>
|
|
|
<view class="card_search">
|
|
|
- <view class="details_title">运单号 <span class="line_title">*</span></view>
|
|
|
+ <view class="details_title">冰排编号 <span class="line_title">*</span></view>
|
|
|
<view class="card_input">
|
|
|
<u-input border="surround" v-model="frequencyCoding">
|
|
|
<template slot="suffix">
|
|
|
- <u-icon name="scan" size="26" @click="sweep"></u-icon>
|
|
|
+ <u-icon name="scan" size="24" @click="sweep"></u-icon>
|
|
|
</template>
|
|
|
</u-input>
|
|
|
</view>
|
|
|
- <view class="deleteCurrent" @click="removeWaybill(frequencyCoding)">
|
|
|
+ <view class="add_card center_in" @click="addIce">
|
|
|
+ <u-icon name="plus" size="18"></u-icon>
|
|
|
+ </view>
|
|
|
+ <!-- <view class="deleteCurrent" @click="removeWaybill(frequencyCoding)">
|
|
|
<u-icon class="icon_current" name="backspace" height="10" size="20"></u-icon>
|
|
|
<view class="title_nape">删除</view>
|
|
|
- </view>
|
|
|
+ </view> -->
|
|
|
</view>
|
|
|
- <view v-if="selectiveType != 'signfor'">
|
|
|
- <view class="card_frequency">
|
|
|
- <view class="card_high space_between">
|
|
|
- <view class="card_frequency_title">已录入运单号</view>
|
|
|
- <view class="card_bottle">已扫<span>{{list.length}}</span></view>
|
|
|
- </view>
|
|
|
- <view style="width: 100%;" v-if="list.length > 0">
|
|
|
- <view class="item_coding" v-for="(item,index) in list" :key="index">
|
|
|
- <view class="title_coding">{{item}}</view>
|
|
|
- <u-icon name="close-circle-fill" color="#c0c4cc" size="20"
|
|
|
- @click="removeWaybill(item)"></u-icon>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="card_empty" v-else>
|
|
|
- <u-empty mode="list"></u-empty>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view v-else>
|
|
|
- <view class="card_sign_in">
|
|
|
- <view class="details_title1">运单签收图片 <span class="line_title">*</span></view>
|
|
|
- <view>
|
|
|
- <u-upload :fileList="fileList1" name="1" :maxCount="1" @afterRead="afterRead"
|
|
|
- @delete="deletePic"></u-upload>
|
|
|
- </view>
|
|
|
+ <view class="card_frequency">
|
|
|
+ <view class="card_high space_between">
|
|
|
+ <view class="card_frequency_title">已录入冰排编号</view>
|
|
|
+ <view class="card_bottle">已扫<span>{{list.length}}</span></view>
|
|
|
</view>
|
|
|
- <view class="card_sign_in">
|
|
|
- <view class="details_title1">随货通行单图片 <span class="line_title">*</span></view>
|
|
|
- <view>
|
|
|
- <u-upload :fileList="fileList2" name="2" :maxCount="1" @afterRead="afterRead"
|
|
|
- @delete="deletePic"></u-upload>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="card_sign_in">
|
|
|
- <view class="details_title1">冷链交接单图片 <span class="line_title">*</span></view>
|
|
|
- <view>
|
|
|
- <u-upload :fileList="fileList3" name="3" :maxCount="1" @afterRead="afterRead"
|
|
|
- @delete="deletePic"></u-upload>
|
|
|
+ <view style="width: 100%;" v-if="list.length > 0">
|
|
|
+ <view class="item_coding" v-for="(item,index) in list" :key="index">
|
|
|
+ <view class="title_coding">{{item}}</view>
|
|
|
+ <u-icon name="close-circle-fill" color="#c0c4cc" size="20"
|
|
|
+ @click="removeWaybill(item)"></u-icon>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view style="width: 100%;height: 120rpx;"></view>
|
|
|
<view class="card_btn">
|
|
|
- <u-button style="margin-bottom: 20rpx;" type="primary" :disabled="jurisdiction"
|
|
|
- @click="submit">提交</u-button>
|
|
|
+ <u-button style="margin-bottom: 20rpx;" type="primary" @click="submit">提交</u-button>
|
|
|
</view>
|
|
|
</view>
|
|
|
+ <u-popup :show="courierShow" mode="bottom" closeable :round="10" :closeOnClickOverlay="false" @close="close">
|
|
|
+ <view class="card_courier">
|
|
|
+ <view class="headline">{{courierHeadline}}</view>
|
|
|
+ <view class="search_card">
|
|
|
+ <u-search :showAction="false" v-model="keyword" @change="searchChange"
|
|
|
+ placeholder="输入关键字快速查找"></u-search>
|
|
|
+ </view>
|
|
|
+ <scroll-view class="scroll-view" scroll-y="true" @scrolltolower="loadMore">
|
|
|
+ <view class="courier" v-if="courieList.length > 0">
|
|
|
+ <view class="courier_item space_between" v-for="(item,index) in courieList" :key="index"
|
|
|
+ @click="bindingDistributor(item)">
|
|
|
+ <view class="courier_name">
|
|
|
+ <view class="title_name">{{item.name}}</view>
|
|
|
+ </view>
|
|
|
+ <view class="xd_title center_in">选择</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view style="margin-top: 30rpx;" v-else>
|
|
|
+ <u-empty mode="list" :text="textEmpty"></u-empty>
|
|
|
+ </view>
|
|
|
+ </scroll-view>
|
|
|
+ </view>
|
|
|
+ </u-popup>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
@@ -82,28 +106,28 @@
|
|
|
cmpCode: '',
|
|
|
list: [],
|
|
|
orderId: '',
|
|
|
- valueTime: this.getDateTime(new Date()),
|
|
|
- start: Date.now() - 10 * 24 * 3600000,
|
|
|
- end: Date.now() + 10 * 24 * 3600000,
|
|
|
- fileList1: [],
|
|
|
- fileList2: [],
|
|
|
- fileList3: [],
|
|
|
- }
|
|
|
- },
|
|
|
- computed: {
|
|
|
- jurisdiction() {
|
|
|
- if (this.selectiveType == 'signfor') {
|
|
|
- if (this.fileList1.length > 0 && this.fileList2.length > 0 && this.fileList3.length > 0) {
|
|
|
- if (this.fileList1[0].message == '成功' && this.fileList2[0].message == '成功' && this.fileList3[0]
|
|
|
- .message == '成功') {
|
|
|
- return false
|
|
|
- } else {
|
|
|
- return true
|
|
|
- }
|
|
|
- } else {
|
|
|
- return true
|
|
|
- }
|
|
|
- }
|
|
|
+ freezingDuration: '',
|
|
|
+
|
|
|
+ keyword: '',
|
|
|
+ courierHeadline: '选择冷冻柜',
|
|
|
+ textEmpty: '暂无冷冻柜',
|
|
|
+ courieList: [],
|
|
|
+ courierShow: false,
|
|
|
+ iceLockerId: '',
|
|
|
+ freezeClaim: '',
|
|
|
+ typeFlag: true,
|
|
|
+
|
|
|
+ incubatorMore: true,
|
|
|
+ Pagination: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ coldCupboard: {
|
|
|
+ id: null,
|
|
|
+ name: '',
|
|
|
+ },
|
|
|
+ incubator: {
|
|
|
+ id: null,
|
|
|
+ name: '',
|
|
|
+ },
|
|
|
}
|
|
|
},
|
|
|
onLoad(receive) {
|
|
@@ -111,85 +135,162 @@
|
|
|
this.selectiveType = receive.id
|
|
|
},
|
|
|
methods: {
|
|
|
- leftClick() {
|
|
|
- uni.$emit('refresh');
|
|
|
- },
|
|
|
- submit() {
|
|
|
- this.getEntering()
|
|
|
- if (this.list.length > 0) {
|
|
|
- if (this.valueTime) {
|
|
|
- if (this.selectiveType == 'put') {
|
|
|
- // 扫码入库
|
|
|
- this.scanCodes('/api/waybill/warehouse-in')
|
|
|
- } else if (this.selectiveType == 'out') {
|
|
|
- // 扫码出库
|
|
|
- this.scanCodes('/api/waybill/warehouse-out')
|
|
|
- } else if (this.selectiveType == 'truck') {
|
|
|
- // 扫码装车
|
|
|
- this.scanCodes('/api/waybill/car-in')
|
|
|
- } else if (this.selectiveType == 'unload') {
|
|
|
- // 扫码下车
|
|
|
- this.scanCodes('/api/waybill/car-out')
|
|
|
- } else if (this.selectiveType == 'signfor') {
|
|
|
- if (this.fileList1.length > 0 && this.fileList2.length > 0 && this.fileList3.length > 0) {
|
|
|
- // 扫码签收
|
|
|
- this.scanCodesSignFor('/api/waybill/receipt')
|
|
|
- } else {
|
|
|
- uni.$u.toast('请完善表单')
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- const title = this.getTitle(this.navTitle)
|
|
|
- uni.$u.toast('请先选择' + title + '时间')
|
|
|
- }
|
|
|
+ focus(flag) {
|
|
|
+ this.typeFlag = flag
|
|
|
+ this.courieList = []
|
|
|
+ this.Pagination = 1
|
|
|
+ this.incubatorMore = true
|
|
|
+ if (flag) {
|
|
|
+ this.courierHeadline = '选择冷冻柜'
|
|
|
+ this.textEmpty = '暂无冷冻柜'
|
|
|
+ this.getFreezer()
|
|
|
} else {
|
|
|
- uni.$u.toast('请先录入运单号')
|
|
|
+ this.courierHeadline = '选择保温箱'
|
|
|
+ this.textEmpty = '暂无保温箱'
|
|
|
+ this.getIncubator()
|
|
|
}
|
|
|
+ this.courierShow = true
|
|
|
},
|
|
|
- getTitle(value) {
|
|
|
- const title = value.split('扫码')
|
|
|
- const headline = title[1] + '时间'
|
|
|
- return headline
|
|
|
+ // 关键字搜索
|
|
|
+ searchChange(value) {
|
|
|
+ this.Pagination = 1
|
|
|
+ this.incubatorMore = true
|
|
|
+ this.courieList = []
|
|
|
+ if (this.typeFlag) {
|
|
|
+ this.getFreezer()
|
|
|
+ } else {
|
|
|
+ this.getIncubator()
|
|
|
+ }
|
|
|
},
|
|
|
- // 提交扫码列表
|
|
|
- scanCodes(url) {
|
|
|
- uni.showLoading();
|
|
|
- this.$api.post(url, {
|
|
|
- startTime: this.valueTime,
|
|
|
- waybillNoList: this.list
|
|
|
+ // 获取冷冻柜
|
|
|
+ getFreezer() {
|
|
|
+ this.$api.get('/api/ice-locker', {
|
|
|
+ page: this.Pagination,
|
|
|
+ pageSize: this.pageSize,
|
|
|
+ name: this.keyword,
|
|
|
+ status: '2',
|
|
|
}).then(res => {
|
|
|
if (res.code == 200) {
|
|
|
- this.frequencyCoding = ''
|
|
|
- this.list = []
|
|
|
- uni.$u.toast(res.msg)
|
|
|
- } else {
|
|
|
- uni.$u.toast(res.data.msg)
|
|
|
+ const data = res.data.list
|
|
|
+ if (this.incubatorMore == true) {
|
|
|
+ this.courieList = this.courieList.concat(data);
|
|
|
+ }
|
|
|
+ if (data.length < this.pageSize) {
|
|
|
+ this.incubatorMore = false
|
|
|
+ } else {
|
|
|
+ this.incubatorMore = true
|
|
|
+ }
|
|
|
}
|
|
|
- uni.hideLoading();
|
|
|
- }).catch(() => {
|
|
|
- uni.hideLoading();
|
|
|
})
|
|
|
},
|
|
|
- // 提交扫码签收列表
|
|
|
- scanCodesSignFor(url) {
|
|
|
- const signUrl = this.fileList1[0].url + ',' + this.fileList2[0].url + ',' + this.fileList3[0].url
|
|
|
- this.$api.post(url, {
|
|
|
- startTime: this.valueTime,
|
|
|
- waybillNo: this.frequencyCoding,
|
|
|
- receiptImg: signUrl,
|
|
|
+ // 获取保温箱
|
|
|
+ getIncubator() {
|
|
|
+ this.$api.get('/api/cooler-box', {
|
|
|
+ page: this.Pagination,
|
|
|
+ pageSize: this.pageSize,
|
|
|
+ name: this.keyword,
|
|
|
+ status: '2',
|
|
|
}).then(res => {
|
|
|
if (res.code == 200) {
|
|
|
- this.frequencyCoding = ''
|
|
|
- this.fileList1 = []
|
|
|
- this.fileList2 = []
|
|
|
- this.fileList3 = []
|
|
|
- this.list = []
|
|
|
- uni.$u.toast(res.msg)
|
|
|
- } else {
|
|
|
- uni.$u.toast(res.data.msg)
|
|
|
+ const data = res.data.list
|
|
|
+ if (this.incubatorMore == true) {
|
|
|
+ this.courieList = this.courieList.concat(data);
|
|
|
+ }
|
|
|
+ if (data.length < this.pageSize) {
|
|
|
+ this.incubatorMore = false
|
|
|
+ } else {
|
|
|
+ this.incubatorMore = true
|
|
|
+ }
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ // 选择保温箱.冷冻柜
|
|
|
+ bindingDistributor(value) {
|
|
|
+ if (this.typeFlag) {
|
|
|
+ this.coldCupboard.id = value.id
|
|
|
+ this.coldCupboard.name = value.name
|
|
|
+ } else {
|
|
|
+ this.incubator.id = value.id
|
|
|
+ this.incubator.name = value.name
|
|
|
+ }
|
|
|
+ this.courierShow = false
|
|
|
+ },
|
|
|
+ // 滚动加载更多
|
|
|
+ loadMore() {
|
|
|
+ if (this.incubatorMore) {
|
|
|
+ this.Pagination++
|
|
|
+ if (this.typeFlag) {
|
|
|
+ this.getFreezer()
|
|
|
+ } else {
|
|
|
+ this.getIncubator()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ close() {
|
|
|
+ this.courierShow = false
|
|
|
+ },
|
|
|
+ leftClick() {
|
|
|
+ uni.$emit('refresh');
|
|
|
+ },
|
|
|
+ submit() {
|
|
|
+ this.getEntering()
|
|
|
+ if (this.list.length > 0) {
|
|
|
+ if (this.typeFlag) {
|
|
|
+ // 入库
|
|
|
+ this.$api.post('/api/ice-raft/in-storage', {
|
|
|
+ code: this.list,
|
|
|
+ iceLockerId: this.coldCupboard.id,
|
|
|
+ freezeClaim: Number(this.freezingDuration),
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.list = []
|
|
|
+ this.freezingDuration = ''
|
|
|
+ this.frequencyCoding = ''
|
|
|
+ this.coldCupboard.id = null
|
|
|
+ this.coldCupboard.name = ''
|
|
|
+ uni.showToast({
|
|
|
+ icon: 'none',
|
|
|
+ title: res.msg,
|
|
|
+ duration: 3000
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ icon: 'none',
|
|
|
+ title: res.msg,
|
|
|
+ duration: 3000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ // 出库
|
|
|
+ this.$api.post('/api/ice-raft/out-storage', {
|
|
|
+ code: this.list,
|
|
|
+ coolerBoxId: this.incubator.id,
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.list = []
|
|
|
+ this.freezingDuration = ''
|
|
|
+ this.frequencyCoding = ''
|
|
|
+ this.incubator.id = null
|
|
|
+ this.incubator.name = ''
|
|
|
+ uni.showToast({
|
|
|
+ icon: 'none',
|
|
|
+ title: res.msg,
|
|
|
+ duration: 3000
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ icon: 'none',
|
|
|
+ title: res.msg,
|
|
|
+ duration: 3000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ uni.$u.toast('请先录入冰排编号')
|
|
|
+ }
|
|
|
+ },
|
|
|
// 扫码录入
|
|
|
getEntering() {
|
|
|
if (this.frequencyCoding) {
|
|
@@ -229,6 +330,17 @@
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ // 添加冰排
|
|
|
+ addIce() {
|
|
|
+ if (this.frequencyCoding) {
|
|
|
+ this.list.push(this.frequencyCoding)
|
|
|
+ this.list = this.uniqueArray(this.list)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 去重
|
|
|
+ uniqueArray(arr) {
|
|
|
+ return [...new Set(arr)];
|
|
|
+ },
|
|
|
// 移除错误运单号
|
|
|
removeWaybill(value) {
|
|
|
if (this.frequencyCoding == value) {
|
|
@@ -241,97 +353,6 @@
|
|
|
return arr.filter((item) => item !== key);
|
|
|
}
|
|
|
},
|
|
|
- // 新增图片
|
|
|
- async afterRead(event) {
|
|
|
- // 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
|
|
|
- let lists = [].concat(event.file)
|
|
|
- let fileListLen = this[`fileList${event.name}`].length
|
|
|
- lists.map((item) => {
|
|
|
- this[`fileList${event.name}`].push({
|
|
|
- ...item,
|
|
|
- status: 'uploading',
|
|
|
- message: '上传中'
|
|
|
- })
|
|
|
- })
|
|
|
- for (let i = 0; i < lists.length; i++) {
|
|
|
- const result = await this.uploadFilePromise(lists[i].url)
|
|
|
- let item = this[`fileList${event.name}`][fileListLen]
|
|
|
- this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
|
|
|
- status: 'success',
|
|
|
- message: '成功',
|
|
|
- url: result
|
|
|
- }))
|
|
|
- fileListLen++
|
|
|
- }
|
|
|
- if (event.name == '1') {
|
|
|
- var arr = []
|
|
|
- this.fileList1.forEach(item1 => {
|
|
|
- arr.push(item1.url)
|
|
|
- })
|
|
|
- } else if (event.name == '2') {
|
|
|
- var arr1 = []
|
|
|
- this.fileList2.forEach(item2 => {
|
|
|
- arr1.push(item2.url)
|
|
|
- })
|
|
|
- } else if (event.name == '3') {
|
|
|
- var arr2 = []
|
|
|
- this.fileList3.forEach(item3 => {
|
|
|
- arr2.push(item3.url)
|
|
|
- })
|
|
|
- }
|
|
|
- },
|
|
|
- // 删除图片
|
|
|
- deletePic(event) {
|
|
|
- this[`fileList${event.name}`].splice(event.index, 1)
|
|
|
- },
|
|
|
- uploadFilePromise(url) {
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- let a = uni.uploadFile({
|
|
|
- url: ENV.APP_DEV_URL + '/api/upload', // 仅为示例,非真实的接口地址
|
|
|
- filePath: url,
|
|
|
- name: 'file',
|
|
|
- // formData: {
|
|
|
- // user: 'test'
|
|
|
- // },
|
|
|
- header: {
|
|
|
- 'Authorization': 'Bearer ' + uni.getStorageSync('access_token'),
|
|
|
- },
|
|
|
- success: (res) => {
|
|
|
- let state = JSON.parse(res.data)
|
|
|
- setTimeout(() => {
|
|
|
- if (state.code == 200) {
|
|
|
- resolve(state.data)
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- });
|
|
|
- })
|
|
|
- },
|
|
|
- getDateTime(date, addZero = true) {
|
|
|
- return `${this.getDate(date, addZero)} ${this.getTime(date, addZero)}`
|
|
|
- },
|
|
|
- getDate(date, addZero = true) {
|
|
|
- date = new Date(date)
|
|
|
- const year = date.getFullYear()
|
|
|
- const month = date.getMonth() + 1
|
|
|
- const day = date.getDate()
|
|
|
- return `${year}-${addZero ? this.addZero(month) : month}-${addZero ? this.addZero(day) : day}`
|
|
|
- },
|
|
|
- getTime(date, addZero = true) {
|
|
|
- date = new Date(date)
|
|
|
- const hour = date.getHours()
|
|
|
- const minute = date.getMinutes()
|
|
|
- const second = date.getSeconds()
|
|
|
- return this.hideSecond ?
|
|
|
- `${addZero ? this.addZero(hour) : hour}:${addZero ? this.addZero(minute) : minute}` :
|
|
|
- `${addZero ? this.addZero(hour) : hour}:${addZero ? this.addZero(minute) : minute}:${addZero ? this.addZero(second) : second}`
|
|
|
- },
|
|
|
- addZero(num) {
|
|
|
- if (num < 10) {
|
|
|
- num = `0${num}`
|
|
|
- }
|
|
|
- return num
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
@@ -346,23 +367,19 @@
|
|
|
}
|
|
|
|
|
|
.details_title {
|
|
|
+ width: 150rpx;
|
|
|
flex: none;
|
|
|
color: #333;
|
|
|
font-size: 32rpx;
|
|
|
font-weight: 500;
|
|
|
margin-bottom: 10rpx;
|
|
|
- margin-right: 15rpx;
|
|
|
+ // margin-right: 15rpx;
|
|
|
}
|
|
|
|
|
|
- .details_title1 {
|
|
|
- width: 140rpx;
|
|
|
- text-align: center;
|
|
|
+ .title_hour {
|
|
|
flex: none;
|
|
|
- color: #333;
|
|
|
- font-size: 32rpx;
|
|
|
- font-weight: 500;
|
|
|
- margin-bottom: 10rpx;
|
|
|
- margin-right: 15rpx;
|
|
|
+ font-size: 30rpx;
|
|
|
+ margin-left: 15rpx;
|
|
|
}
|
|
|
|
|
|
.card_time {
|
|
@@ -406,7 +423,7 @@
|
|
|
}
|
|
|
|
|
|
.card_high {
|
|
|
- margin-top: 30rpx;
|
|
|
+ margin-top: 20rpx;
|
|
|
}
|
|
|
|
|
|
.card_frequency {
|
|
@@ -484,9 +501,110 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ .add_card {
|
|
|
+ margin-left: 10rpx;
|
|
|
+ width: 50rpx;
|
|
|
+ height: 46rpx;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ padding: 6px 9px;
|
|
|
+ border: 1px solid #dadbde;
|
|
|
+ }
|
|
|
+
|
|
|
::v-deep .u-border {
|
|
|
border-width: 1px !important;
|
|
|
border-color: #e5e5e5 !important;
|
|
|
border-style: solid;
|
|
|
}
|
|
|
+
|
|
|
+ .card_courier {
|
|
|
+ min-height: 600rpx;
|
|
|
+ padding-bottom: 20rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .scroll-view {
|
|
|
+ max-height: 60vh;
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
+
|
|
|
+ .headline {
|
|
|
+ padding: 30rpx 30rpx 0rpx 30rpx;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ padding-bottom: 30rpx;
|
|
|
+ font-size: 32rpx;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+
|
|
|
+ .search_card {
|
|
|
+ padding: 0rpx 30rpx 10rpx 30rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .courier_item {
|
|
|
+ margin: 20rpx 20rpx;
|
|
|
+ width: calc(100% - 80rpx);
|
|
|
+ padding: 20rpx;
|
|
|
+ border-radius: 20rpx;
|
|
|
+ box-shadow: 0 2rpx 10rpx 0 rgba(0, 0, 0, .1);
|
|
|
+ }
|
|
|
+
|
|
|
+ .courier_name {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ }
|
|
|
+
|
|
|
+ .title_name {
|
|
|
+ font-weight: 600;
|
|
|
+ font-size: 32rpx;
|
|
|
+ margin-bottom: 10rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .title_phone {
|
|
|
+ font-size: 28rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .xd_title {
|
|
|
+ width: auto;
|
|
|
+ font-size: 28rpx;
|
|
|
+ font-weight: 500;
|
|
|
+ padding: 10rpx 20rpx;
|
|
|
+ border-radius: 35rpx;
|
|
|
+ border: 3rpx solid #82848a;
|
|
|
+ }
|
|
|
+
|
|
|
+ .card_search_gray {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ flex: 1;
|
|
|
+ padding: 12rpx 18rpx;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ line-height: 48rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .title_gray {
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #c8c9cc;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 伪元素1rpx边框
|
|
|
+ .frame {
|
|
|
+ position: relative; //重要
|
|
|
+ }
|
|
|
+
|
|
|
+ .frame::after {
|
|
|
+ position: absolute;
|
|
|
+ content: '';
|
|
|
+ border: 2rpx solid #e7e6e4;
|
|
|
+ border-radius: 16rpx;
|
|
|
+ width: 200%;
|
|
|
+ height: 200%;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ transform: scale(0.5);
|
|
|
+ transform-origin: 0 0;
|
|
|
+ pointer-events: none;
|
|
|
+ /* 使伪元素不会阻止鼠标事件 */
|
|
|
+ }
|
|
|
</style>
|