update address extra fields

This commit is contained in:
edmondlang
2024-07-18 00:14:19 +08:00
parent b4c6e721fd
commit bcfeb49275
3 changed files with 55 additions and 79 deletions
@@ -112,14 +112,14 @@ class UpdateAddressLogic extends AbstractControllerLogic
}
$addressExtraFields = [
'property_type' => $request->input('property_type'),
'tools_required_unload' => $request->input('tools_required_unload'),
'pickup_time_from' => $request->input('pickup_time_from'),
'pickup_time_to' => $request->input('pickup_time_to'),
'receive_goods_after_hours' => $request->input('receive_goods_after_hours'),
'receive_goods_on_weekend' => $request->input('receive_goods_on_weekend'),
'property_type' => $request->input('property_type'),
'additional_request' => $request->input('additional_request'),
'receive_goods_working_hours' => $request->input('receive_goods_working_hours'),
'receive_goods_after_hours' => $request->input('receive_goods_after_hours'),
'receive_goods_on_saturday' => $request->input('receive_goods_on_saturday'),
];
$address->addressExtraFields()->delete();
$addressExtraFieldsObject = new RemarkObject(json_encode($addressExtraFields), Auth()->user()->id, RemarkTypes::ADDRESS_EXTRA_COLUMNS);
$this->createRemarkProcessor->execute($address, $addressExtraFieldsObject);
@@ -128,50 +128,51 @@
</div>
</div>
<div class="row m-b-15">
<div class="col-12 col-md pr-md-1 pb-3 pb-md-0">
<small class="text-center d-block">Please choose a value between 9:00 AM and 4:00 PM only.</small>
<validation-wrapper-component :validator="$v.parameters.pickup_time_from">
<label>收货时间从 Available Hours From</label>
<input type="time" class="form-control" name="pickup_time" v-model="parameters.pickup_time_from">
</validation-wrapper-component>
</div>
<div class="col-12 col-md pl-md-1">
<small class="text-center d-block">Please choose a value between 3:00 PM and 8:00 PM only.</small>
<validation-wrapper-component :validator="$v.parameters.pickup_time_to">
<label>最晚收货时间 Available Hours To</label>
<input type="time" class="form-control" name="latest_pickup_time" v-model="parameters.pickup_time_to">
</validation-wrapper-component>
</div>
</div>
<div class="row m-b-15">
<div class="col-12 col-md pr-md-1 pb-3 pb-md-0">
<div class="row justify-content-center m-t-10 m-b-10" @click="parameters.receive_goods_after_hours = !parameters.receive_goods_after_hours">
<div class="col pointer d-flex justtify-content-center align-items-center">
<i class="fa fs-20 fa-fw m-r-5" :class="{'fa-square-o': !parameters.receive_goods_after_hours, 'fa-check-square': parameters.receive_goods_after_hours, 'text-primary':parameters.receive_goods_after_hours}" ></i>
<p class="m-b-0">Available to receive after working hours</p>
</div>
</div>
</div>
<div class="col-12 col-md pl-md-1">
<div class="row justify-content-center m-t-10 m-b-10" @click="parameters.receive_goods_on_weekend = !parameters.receive_goods_on_weekend">
<div class="col pointer d-flex justtify-content-center align-items-center">
<i class="fa fs-20 fa-fw m-r-5" :class="{'fa-square-o': !parameters.receive_goods_on_weekend, 'fa-check-square': parameters.receive_goods_on_weekend, 'text-primary':parameters.receive_goods_on_weekend}" ></i>
<p class="m-b-0">Available to receive goods on weekend</p>
</div>
</div>
</div>
</div>
<div class="row m-b-15">
<div class="col-12 col-md pr-md-1 pb-3 pb-md-0">
<div class="col">
<validation-wrapper-component selectable :validator="$v.parameters.property_type">
<label>房型 Receiver's property type</label>
<select-component :options="['住家Landed house', '公寓Condominium (Drop on lobby only)', '工厂Factory', '店面Shop', '商场Shopping Mall (Drop on loading bay only)', 'Others']" v-model="parameters.property_type"></select-component>
</validation-wrapper-component>
</div>
<div class="col-12 col-md pl-md-1 pb-3 pb-md-0">
<validation-wrapper-component :validator="$v.parameters.tools_required_unload">
<label>卸货工具 Tools require to unload goods</label>
<multi-select-component :options="['Manpower', 'Forklift', 'Crane', 'None of above']" v-model="parameters.tools_required_unload"></multi-select-component>
</div>
<div class="row m-b-15">
<div class="col">
<div class="form-group no-margin form-group-default p-b-5">
<label>Available to receive goods on: </label>
<div class="row">
<div class="col-12 col-md pb-3 pb-md-0">
<div class="row justify-content-center m-t-10 m-b-10" @click="parameters.receive_goods_working_hours = !parameters.receive_goods_working_hours">
<div class="col pointer d-flex justtify-content-center align-items-center">
<i class="fa fs-20 fa-fw m-r-5" :class="{'fa-square-o': !parameters.receive_goods_working_hours, 'fa-check-square': parameters.receive_goods_working_hours, 'text-primary':parameters.receive_goods_working_hours}" ></i>
<p class="m-b-0">Working Hours (9am-6pm)</p>
</div>
</div>
</div>
<div class="col-12 col-md pb-3 pb-md-0">
<div class="row justify-content-center m-t-10 m-b-10" @click="parameters.receive_goods_after_hours = !parameters.receive_goods_after_hours">
<div class="col pointer d-flex justtify-content-center align-items-center">
<i class="fa fs-20 fa-fw m-r-5" :class="{'fa-square-o': !parameters.receive_goods_after_hours, 'fa-check-square': parameters.receive_goods_after_hours, 'text-primary':parameters.receive_goods_after_hours}" ></i>
<p class="m-b-0">After Working Hours</p>
</div>
</div>
</div>
<div class="col-12 col-md pb-3 pb-md-0">
<div class="row justify-content-center m-t-10 m-b-10" @click="parameters.receive_goods_on_saturday = !parameters.receive_goods_on_saturday">
<div class="col pointer d-flex justtify-content-center align-items-center">
<i class="fa fs-20 fa-fw m-r-5" :class="{'fa-square-o': !parameters.receive_goods_on_saturday, 'fa-check-square': parameters.receive_goods_on_saturday, 'text-primary':parameters.receive_goods_on_saturday}" ></i>
<p class="m-b-0">On Saturday</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row m-b-15">
<div class="col">
<validation-wrapper-component :validator="$v.parameters.additional_request">
<label>Additional Request</label>
<input class="form-control" name="additional_request" v-model="parameters.additional_request">
</validation-wrapper-component>
</div>
</div>
@@ -220,11 +221,10 @@
phone: '',
person_in_charge: '',
property_type: '',
tools_required_unload: [],
pickup_time_from: '',
pickup_time_to: '',
additional_request: '',
receive_goods_working_hours: false,
receive_goods_after_hours: false,
receive_goods_on_weekend: false,
receive_goods_on_saturday: false,
}
}
@@ -241,11 +241,10 @@
this.parameters.person_in_charge = this.data.contact ? this.data.contact.reference : '';
this.parameters.remark = this.data.remark ? this.data.remark.content : '';
this.parameters.property_type = this.data.property_type ? this.data.property_type : '';
this.parameters.tools_required_unload = this.data.tools_required_unload ? this.data.tools_required_unload : [];
this.parameters.pickup_time_from = this.data.pickup_time_from ? this.data.pickup_time_from : '';
this.parameters.pickup_time_to = this.data.pickup_time_to ? this.data.pickup_time_to : '';
this.parameters.additional_request = this.data.additional_request ? this.data.additional_request : '';
this.parameters.receive_goods_working_hours = this.data.receive_goods_working_hours ? this.data.receive_goods_working_hours : false;
this.parameters.receive_goods_after_hours = this.data.receive_goods_after_hours ? this.data.receive_goods_after_hours : false;
this.parameters.receive_goods_on_weekend = this.data.receive_goods_on_weekend ? this.data.receive_goods_on_weekend : false;
this.parameters.receive_goods_on_saturday = this.data.receive_goods_on_saturday ? this.data.receive_goods_on_saturday : false;
}
},
watch: {
@@ -1,18 +1,5 @@
import { required, requiredIf, numeric, helpers } from "vuelidate/lib/validators";
import addressFormHandler from '../addressFormHandler';
const timeValidator = (time, type) =>
helpers.withParams({ type, time }, value => {
if (!value) return true; // if there's no value, consider it valid
const [valHours, valMinutes] = value.split(':').map(Number);
const [timeHours, timeMinutes] = time.split(':').map(Number);
return type === 'minTime'
? valHours > timeHours || (valHours === timeHours && valMinutes >= timeMinutes)
: valHours < timeHours || (valHours === timeHours && valMinutes <= timeMinutes);
});
import { required, requiredIf, numeric } from "vuelidate/lib/validators";
import addressFormHandler from '../addressFormHandler'
export default {
validations: {
parameters: {
@@ -34,17 +21,7 @@ export default {
phone: {required, numeric},
person_in_charge: { required },
property_type: { required },
tools_required_unload: { required },
pickup_time_from: {
required,
minTime: timeValidator('09:00', 'minTime'),
maxTime: timeValidator('16:00', 'maxTime')
},
pickup_time_to: {
required,
minTime: timeValidator('15:00', 'minTime'),
maxTime: timeValidator('20:00', 'maxTime')
}
additional_request: { },
}
},
mixins: [addressFormHandler]