<template>
|
<view class="register">
|
<view class="registerForm">
|
<u--form :rules="rules"
|
:model="registerFormModel"
|
ref="regesterFormRef">
|
<u-form-item prop="driver"
|
label="姓名"
|
labelWidth="20%"
|
borderBottom
|
required>
|
<u--input v-model="registerFormModel.driver"
|
placeholder="请输入内容"
|
clearable></u--input>
|
</u-form-item>
|
<u-form-item prop="idNumber"
|
label="身份证"
|
labelWidth="20%"
|
borderBottom
|
required>
|
<u--input v-model="registerFormModel.idNumber"
|
placeholder="请输入内容"
|
clearable></u--input>
|
</u-form-item>
|
<u-form-item prop="phone"
|
label="手机号"
|
labelWidth="20%"
|
borderBottom
|
required>
|
<u--input v-model="registerFormModel.phone"
|
placeholder="请输入内容"
|
clearable></u--input>
|
</u-form-item>
|
<u-form-item prop="carNo"
|
label="车牌号"
|
labelWidth="20%"
|
borderBottom
|
>
|
<u--input v-model="registerFormModel.carNo"
|
placeholder="请输入内容"
|
clearable></u--input>
|
</u-form-item>
|
<u-form-item prop="skin"
|
label="皮重"
|
labelWidth="20%"
|
borderBottom
|
required v-if="daydata.isWeighing==1">
|
<u--input v-model="skin"
|
border="surround"
|
placeholder="请输入皮重"
|
clearable></u--input>
|
</u-form-item>
|
<u-form-item prop="hair"
|
label="毛重"
|
labelWidth="20%"
|
borderBottom
|
required v-if="daydata.isWeighing==1">
|
<u--input v-model="hair"
|
border="surround"
|
placeholder="请输入毛重"
|
clearable></u--input>
|
</u-form-item>
|
<u-form-item prop="clean"
|
label="净重"
|
labelWidth="20%"
|
borderBottom
|
required v-if="daydata.isWeighing==1">
|
<u--input v-model="clean"
|
border="surround"
|
placeholder="请输入净重"
|
clearable></u--input>
|
</u-form-item>
|
<uni-table
|
border
|
id="table-box"
|
emptyText="暂无更多数据" v-if="daydata.isWeighing==0">
|
<uni-tr>
|
<uni-th align="center" >产品</uni-th>
|
<uni-th align="center">数量</uni-th>
|
</uni-tr>
|
<uni-tr v-for="(subItem, index) in tmTaskCoalList" :key="index">
|
<uni-td align="center">
|
<view class="name">{{ subItem.productName }}</view></uni-td>
|
<uni-td align="right">
|
<view>
|
<u--input
|
placeholder="请输入产品数量"
|
type='number'
|
v-model="subItem.productQuantity"
|
></u--input>
|
</view></uni-td>
|
</uni-tr>
|
</uni-table>
|
<u-form-item prop='contactPicture'>
|
<view class="label-text">
|
<text style="color: #f56c6c;">*</text>原发单据
|
</view>
|
<u-upload :fileList="fileList1"
|
@afterRead="afterRead"
|
@delete="deletePic"
|
name="1"
|
multiple
|
:maxCount="2"
|
width="250"
|
height="150"
|
:previewFullImage="true"
|
></u-upload>
|
</u-form-item>
|
<!-- <u-form-item labelWidth="20%"
|
label="空车出厂"
|
borderBottom
|
ref="roleRef"
|
required>
|
<u-radio-group v-model="registerFormModel.isEmptyCar"
|
placement="row"
|
size="30"
|
shape="circle"
|
iconSize="20">
|
<u-radio labelSize="14px"
|
size="20px"
|
v-for="(item, index) in radiolist1"
|
:key="index"
|
:label="item.name"
|
:name="item.value"
|
></u-radio>
|
</u-radio-group>
|
</u-form-item> -->
|
</u--form>
|
</view>
|
<!-- <view class="history-numbers">
|
<scroll-view :scroll-top="scrollTop"
|
scroll-y="true"
|
class="scroll-Y"
|
>
|
<view class="history-information"
|
>
|
<view class="first">
|
<view class="">{{ daydata.customerName || '' }}</view>
|
<view class=""><u-icon name="arrow-right"
|
color="#999999"
|
size="40"></u-icon></view>
|
</view>
|
<view class="second">
|
<view class="coal-name">{{ daydata.productName || '' }}</view>
|
<view class="order-type">{{ daydata.orderType || '' }}</view>
|
</view>
|
<view class="third">
|
<view class="third-line">
|
<view class="third-line_text">领取数:</view>
|
<view class="third-line_num">{{ daydata.cars2 }}</view>
|
</view>
|
<view class="third-line">
|
<view class="third-line_text">剩余数:</view>
|
<view class="third-line_num"
|
>{{ daydata.carNumSurplus1 }}</view>
|
</view>
|
</view>
|
<view class="fourth">
|
<view class="fourth-icon">
|
<view
|
style="width: 24rpx;height: 24rpx;line-height: 24rpx;background: url('https://wrzs.czjlchem.com:9090/appimg/image/banner/clock.png') no-repeat;background-size: cover">
|
</view>
|
</view>
|
<view class="senddate">{{ daydata.sendDate }}</view>
|
</view>
|
<view class="fourth">
|
<view class="fourth-icon">
|
<view
|
style="width: 26rpx;height: 26rpx;line-height: 26rpx;background: url('https://wrzs.czjlchem.com:9090/appimg/image/banner/carnNUm.png') no-repeat;background-size: cover;">
|
</view>
|
</view>
|
<view class="senddate">{{ daydata.orderCode }}</view>
|
</view>
|
</view>
|
</scroll-view>
|
</view> -->
|
<combined-title
|
:title="yuYueData.length != 0 ? yuYueData[0].filedName + '——' + yuYueData[0].sendDate : '暂无预约列表'"></combined-title>
|
<view class="appointment-table">
|
<uni-table border
|
stripe
|
emptyText="暂无更多数据">
|
<uni-tr>
|
<uni-th align="center">时间段</uni-th>
|
<uni-th align="center">可预约</uni-th>
|
<uni-th align="center">已预约</uni-th>
|
<uni-th align="center">操作</uni-th>
|
</uni-tr>
|
<uni-tr v-for="(item, index) in yuYueData"
|
:key="item.id">
|
<uni-td align="center">{{ (item.startTime || '') + '-' + (item.endTime || '') }}</uni-td>
|
<uni-td align="center">{{ item.carNum || '' }}</uni-td>
|
<uni-td align="center">{{ item.carNum1 || '' }}</uni-td>
|
<uni-td><u-button text="选择"
|
type="primary"
|
:disabled="item.carNum == item.carNum1&&!isRCSQ"
|
@click="yuYueBtnClick(item)"></u-button></uni-td>
|
</uni-tr>
|
</uni-table>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import { apiRegister } from '@/api/publicInterface.js';
|
import { mapMutations } from 'vuex';
|
import { BaseUrl } from '@/api/publicInterface.js';
|
export default {
|
// 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
|
onReady() {
|
this.$refs.regesterFormRef.setRules(this.rules);
|
},
|
onLoad(params) {
|
let that=this
|
if (params.id) {
|
this.id = params.id
|
}
|
this.fileList1 = []
|
this.GetMyDelivery()
|
uni.getStorage({
|
key: 'myDelivery',
|
success: function (res) {
|
Object.assign(that.registerFormModel, res.data)
|
}
|
});
|
},
|
data() {
|
return {
|
scrollTop: 0,
|
id:"",
|
value: 0,
|
daydata:{},
|
tmTaskCoalList:[],
|
range: [{"value": 0,"label": "否" },{"value": 1,"label": "是"}],
|
carNumShow: false,
|
yuYueData: [],
|
fileList1: [], //图片列表
|
contactPicture:"",
|
registerFormModel: {
|
phone: '',
|
driver: '',
|
idNumber: '',
|
carNo: '',
|
},
|
skin:"",
|
hair:"",
|
clean:"",
|
TableData:[],
|
radiolist1: [{
|
name: '否',
|
value:"0"
|
},
|
{
|
name: '是',
|
value:"1"
|
}
|
],
|
rules: {
|
driver: [{
|
type: 'string',
|
required: true,
|
message: '请填写姓名',
|
trigger: ['blur', 'change']
|
},
|
{
|
pattern: /^[\u4e00-\u9fa5\s]+$/,
|
message: '姓名只能是中文',
|
trigger: ['blur', 'change']
|
}],
|
idNumber: [{
|
type: 'string',
|
required: true,
|
message: '请输入身份证号',
|
trigger: ['blur', 'change']
|
},
|
{
|
pattern: /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
|
message: '身份证号格式不正确',
|
trigger: ['blur', 'change']
|
}
|
],
|
phone: [{
|
required: true,
|
message: '请输入手机号',
|
// blur和change事件触发检验
|
trigger: ['blur', 'change']
|
},
|
{
|
min: 11,
|
max: 11,
|
message: '请输入合法手机号'
|
},
|
{
|
validator: (rule, value, callback) => {
|
return uni.$u.test.mobile(value);
|
},
|
message: '手机号码格式不正确',
|
trigger: ['change', 'blur']
|
}
|
],
|
// carNo: [{
|
// type: 'string',
|
// required: true,
|
// message: '请输入车牌号',
|
// trigger: ['blur', 'change']
|
// },
|
// {
|
// transform(value) {
|
// return String(value);
|
// },
|
// validator: (rule, value, callback) => {
|
// return uni.$u.test.carNo(value);
|
// },
|
// message: '请输入正确的车牌号',
|
// trigger: ['change', 'blur']
|
// }
|
// ],
|
},
|
};
|
},
|
methods: {
|
...mapMutations(['changeisUploadimg']),
|
// input聚焦
|
inputFocus(v) {
|
if (v == 1) {
|
this.isfocus1 = true;
|
} else {
|
this.isfocus2 = true;
|
}
|
},
|
// input失焦
|
inputBlur() {
|
this.isfocus1 = false;
|
this.isfocus2 = false;
|
},
|
inputChange() {
|
if (Number(this.originInfoForm.coalContactHair) > 0 && Number(this.originInfoForm.coalContactSkin >
|
0)) {
|
this.isInputOrigin = true;
|
}
|
},
|
deletePic(event) {
|
this.changeisUploadimg(true);
|
this[`fileList${event.name}`].splice(event.index, 1);
|
},
|
async afterRead(event) {
|
// 当设置 mutiple 为 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, event.name);
|
let item = this[`fileList${event.name}`][fileListLen];
|
this[`fileList${event.name}`].splice(
|
fileListLen,
|
1,
|
Object.assign(item, {
|
status: 'success',
|
message: '上传成功',
|
url: result
|
})
|
);
|
fileListLen++;
|
}
|
},
|
uploadFilePromise(url, num) {
|
return new Promise((resolve, reject) => {
|
let a = uni.uploadFile({
|
url: BaseUrl + '/admin/sys-file/uploadUnToken',
|
filePath: url,
|
name: 'file',
|
success: res => {
|
if (num == 1) {
|
this.contactPicture = JSON.parse(res.data)
|
.data.url;
|
resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
|
}
|
}
|
});
|
});
|
},
|
yuYueBtnClick(item){
|
this.$refs.regesterFormRef.validate().then(res => {
|
if(this.daydata.orderType=='外购'){
|
if(this.daydata.isWeighing==1){
|
this.$reqPost('saveMyDelivery',{
|
productName:this.daydata.productName,
|
customerId:this.daydata.customerId,
|
deptId:this.daydata.deptId,
|
filedId:this.daydata.filedId,
|
orderPlanId:this.daydata.id,
|
orderTye:this.daydata.orderType,
|
sendDate:this.daydata.sendDate,
|
carNumSurplus:this.daydata.carNumSurplus,
|
yyId:item.id,
|
...this.registerFormModel,
|
tmTaskCoalContact:{
|
coalName:this.daydata.productName,
|
contactPicture:this.contactPicture,
|
skin:this.skin,
|
hair:this.hair,
|
clean:this.clean
|
}
|
}, 'json').then(res => {
|
uni.setStorage({
|
key: 'myDelivery',
|
data: this.registerFormModel,
|
});
|
if (res.code === 0) {
|
uni.$u.toast('预约成功')
|
this.GetMyDelivery()
|
} else {
|
uni.$u.toast(res.msg ? res.msg : '预约失败')
|
}
|
})
|
}else{
|
let numDtoList=this.tmTaskCoalList.map(item=>{
|
return {tmId:item.productId,num:item.productQuantity,coalName:item.coalName}
|
})
|
this.$reqPost('saveMyDelivery',{
|
productName:this.daydata.productName,
|
customerId:this.daydata.customerId,
|
deptId:this.daydata.deptId,
|
filedId:this.daydata.filedId,
|
orderPlanId:this.daydata.id,
|
orderTye:this.daydata.orderType,
|
sendDate:this.daydata.sendDate,
|
carNumSurplus:this.daydata.carNumSurplus,
|
yyId:item.id,
|
...this.registerFormModel,
|
tmTaskCoalContact:{
|
contactPicture:this.contactPicture,
|
numDtoList:numDtoList
|
}
|
}, 'json').then(res => {
|
uni.setStorage({
|
key: 'myDelivery',
|
data: this.registerFormModel,
|
});
|
if (res.code === 0) {
|
uni.$u.toast('预约成功')
|
this.GetMyDelivery()
|
} else {
|
uni.$u.toast(res.msg ? res.msg : '预约失败')
|
}
|
})
|
}
|
|
}else{
|
this.$reqPost('saveMyDelivery',{
|
productName:this.daydata.productName,
|
customerId:this.daydata.customerId,
|
deptId:this.daydata.deptId,
|
filedId:this.daydata.filedId,
|
orderPlanId:this.daydata.id,
|
orderTye:this.daydata.orderType,
|
sendDate:this.daydata.sendDate,
|
carNumSurplus:this.daydata.carNumSurplus,
|
yyId:item.id,
|
...this.registerFormModel
|
}, 'json').then(res => {
|
uni.setStorage({
|
key: 'myDelivery',
|
data: this.registerFormModel,
|
});
|
if (res.code === 0) {
|
uni.$u.toast('预约成功')
|
this.GetMyDelivery()
|
} else {
|
uni.$u.toast(res.msg ? res.msg : '预约失败')
|
}
|
})
|
}
|
})
|
},
|
GetMyDelivery() {
|
uni.showLoading({
|
title: '加载中...'
|
});
|
this.$reqGet('driverYuYueList', {orderPlanId:this.id}).then(res => {
|
uni.hideLoading();
|
if (res.code == 0) {
|
this.yuYueData = res.data;
|
} else {
|
this.$u.toast('加载失败');
|
}
|
});
|
this.$reqGetId('myDelivery',this.id).then(res => {
|
if (res.data) {
|
this.daydata=res.data
|
this.tmTaskCoalList=res.data.jhOrderPlanList
|
}
|
});
|
}
|
}
|
};
|
</script>
|
|
<style lang="scss"
|
scoped>
|
@mixin flex {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
}
|
.history-numbers {
|
width: 100%;
|
position: relative;
|
top: vww(10);
|
|
.history-information {
|
width: 690rpx;
|
height: 398rpx;
|
margin: vww(10) 0;
|
background: #ffffff;
|
box-shadow: 0rpx 0rpx 14rpx 0rpx rgba(73, 120, 240, 0.14), 0rpx 7rpx 45rpx 0rpx rgba(73, 120, 240, 0.12);
|
border-radius: 20rpx;
|
@include flex flex-direction: column;
|
align-items: flex-start;
|
justify-content: space-evenly;
|
overflow: hidden;
|
|
.first {
|
width: 96%;
|
height: 34rpx;
|
font-size: 32rpx;
|
font-weight: 300;
|
color: #303030;
|
@include flex;
|
margin: vww(10) vww(10) 0;
|
}
|
|
.second {
|
width: 100%;
|
height: 31rpx;
|
font-size: 30rpx;
|
font-weight: 300;
|
color: #515151;
|
margin: vww(10) vww(10) 0;
|
@include flex;
|
justify-content: flex-start;
|
|
.coal-name {
|
min-width: vww(30);
|
height: vww(20);
|
margin-right: vww(21);
|
}
|
|
.order-type {
|
color: #035cfb;
|
border: 2px solid #035cfb;
|
border-radius: 4rpx;
|
padding: vww(2) vww(4);
|
text-align: center;
|
}
|
}
|
|
.third {
|
width: 96%;
|
height: 31rpx;
|
font-size: 30rpx;
|
font-weight: 300;
|
color: #515151;
|
margin: vww(10) vww(10) 0;
|
@include flex;
|
|
.third-line {
|
@include flex;
|
|
&_text {
|
color: #919090;
|
}
|
|
&_num {
|
color: #035cfb;
|
}
|
}
|
}
|
|
.fourth {
|
width: 100%;
|
height: 31rpx;
|
font-size: 30rpx;
|
font-weight: 300;
|
color: #515151;
|
margin: vww(10) vww(10) 0;
|
@include flex;
|
|
.fourth-icon {
|
width: vww(13);
|
height: vww(13);
|
margin-right: vww(14);
|
}
|
|
.senddate {
|
flex: 1;
|
}
|
}
|
}
|
}
|
::v-deep.appointment-table{
|
width: 94%;
|
margin: 0 auto;
|
// 表格
|
.uni-table-scroll {
|
width: 100%;
|
overflow-x: hidden;
|
|
.uni-table {
|
min-width: 0 !important;
|
|
.uni-table-tr {
|
padding: 0;
|
font-size: vww(13);
|
|
.uni-table-th {
|
height: vww(32);
|
line-height: vww(20);
|
padding: vww(5) vww(10);
|
color: #111111;
|
font-weight: 550;
|
background: #f5f5f5;
|
}
|
|
.uni-table-td {
|
height: vww(32);
|
line-height: vww(20);
|
padding: vww(5) vww(10);
|
color: #111111;
|
|
.u-button {
|
height: vww(23);
|
}
|
}
|
}
|
}
|
}
|
}
|
|
::v-deep.register {
|
width: 94%;
|
padding: 0 0 vww(20) 0;
|
margin: 0 auto;
|
}
|
</style>
|