问题描述:约会时间 根据 航班动态中的数据进行初始化,当用户修改了约会时间后,再次加载订单信息时,约会时间又被初始化掉了;
解决方法:在组件中增加变量:input=”inputValue”,并在props 中定义这个变量;
在created() {
this.$watchAsObservable(‘change_key’) 方法中,判断这个变量 进而确定是否要 根据监控的数据初始化值;
组件代码如下:window.vapp_startTime = new Vue({
el: '#startTime',
template: ``<br />
type="datetime"
:class="isAdd ? 'inputbg' : 'c2'"
:input="inputValue"
v-model="value"></DatePicker>
,`<br />` data() {`<br />` return {`<br />` value: moment().format("YYYY-MM-DD HH:mm:ss"),`<br />` item: window.vapp_fltplan.item`<br />` }`<br />` },`<br />` props: {`<br />` inputValue: String,`<br />` },`<br />` computed: {`<br />` change_key() {`<br />` let time = this.item.TRIPTYPE == "1" ? this.item.ARRTIME : this.item.DEPTIME;`<br />` const mtime = moment(this.item.FLTDATE + " " + time, "YYYY-MM-DD HH:mm")`<br />` if (this.item.TRIPTYPE == "1") {`<br />` if (this.item.CHANNELTYPE == "1") {`<br />` return mtime.subtract(0.5, "hours");`<br />` } else {`<br />` return mtime.subtract(45, "minutes");`<br />` }`<br />` }`<br />` else {`<br />` if (this.item.CHANNELTYPE == "1") {`<br />` return mtime.subtract(1.5, "hours");`<br />` } else {`<br />` return mtime.subtract(2, "hours");`<br />` }`<br />` }`<br />` },`<br />` isAdd() {`<br />` let time = this.item.TRIPTYPE == "1" ? this.item.ARRTIME : this.item.DEPTIME;`<br />` const mtime = moment(this.item.FLTDATE + " " + time, "YYYY-MM-DD HH:mm").format('YYYY-MM-DD HH:mm:ss');`<br />` return moment(mtime).format('YYYY-MM-DD') != moment(this.value).format('YYYY-MM-DD');`<br />` }`<br />` },`<br />` created() {`<br />` this.$watchAsObservable('change_key')`<br />` //.debounceTime(1e3) //防抖动`<br />` .subscribe(({ newValue, oldValue }) => {`<br />` //if (this.value == null)`<br />` //console.log("传递过来的变量:this.inputValue =", this.inputValue);`<br />` if (!this.inputValue)
//根据变量值判断是否根据监控组件初始化数据<br />
this.value = newValue.format(‘YYYY-MM-DD HH:mm:ss’);<br />
});<br />
},<br />
//watch: {<br />
// value(newVal, oldVal) {<br />
// debugger;<br />
// console.log(newVal, oldVal);<br />
// }<br />
//}<br />
<br />
})`
调用处代码如下:
if (window.vapp_startTime != null) {
if (rsv[“STARTTIME”] != window.vapp_startTime.value) {
window.vapp_startTime.inputValue = “1”; //设置变量值
window.vapp_startTime.value = moment(rsv[“STARTTIME”]).format(“YYYY-MM-DD HH:mm:ss”);
}
}