|
|
@ -31,13 +31,22 @@ |
|
|
|
label-width="150px" |
|
|
|
style="display: block" |
|
|
|
> |
|
|
|
<el-date-picker |
|
|
|
<!-- <el-date-picker |
|
|
|
v-model="dataForm.appointmentDate" |
|
|
|
placeholder="预约日期" |
|
|
|
value-format="yyyy-MM-dd" |
|
|
|
:picker-options="dateOptions" |
|
|
|
> |
|
|
|
</el-date-picker> |
|
|
|
</el-date-picker> --> |
|
|
|
<el-select v-model="dataForm.appointmentDate" placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
v-for="item in dateList" |
|
|
|
:key="item" |
|
|
|
:label="item" |
|
|
|
:value="item" |
|
|
|
> |
|
|
|
</el-option |
|
|
|
></el-select> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item |
|
|
@ -47,18 +56,19 @@ |
|
|
|
label-width="150px" |
|
|
|
style="display: block" |
|
|
|
> |
|
|
|
<el-checkbox-group |
|
|
|
style="margin-left: auto; width: 600px" |
|
|
|
v-model="dataForm.timeId" |
|
|
|
> |
|
|
|
<div style="margin-left: auto; width: 600px"> |
|
|
|
<el-checkbox |
|
|
|
:label="item.timeId" |
|
|
|
:key="item.timeId" |
|
|
|
:disabled="!item.isAppointment" |
|
|
|
v-for="item in timeList" |
|
|
|
v-for="(item, index) in timeList" |
|
|
|
:checked="item.selected" |
|
|
|
:value="item.selected" |
|
|
|
@change="selectTime(index)" |
|
|
|
@onChange="selectTime(index)" |
|
|
|
>{{ item.time }}</el-checkbox |
|
|
|
> |
|
|
|
</el-checkbox-group> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item |
|
|
@ -128,7 +138,15 @@ |
|
|
|
import { mapGetters } from "vuex"; |
|
|
|
import { Loading } from "element-ui"; // 引入Loading服务 |
|
|
|
import { requestPost } from "@/js/dai/request"; |
|
|
|
import dateFormat from "dai-js/tools/dateFormat"; |
|
|
|
|
|
|
|
const deepClone = function (arg) { |
|
|
|
if (typeof arg == "object" || typeof arg == "array") { |
|
|
|
return JSON.parse(JSON.stringify(arg)); |
|
|
|
} else { |
|
|
|
return arg; |
|
|
|
} |
|
|
|
}; |
|
|
|
var map; |
|
|
|
var search; |
|
|
|
var markers; |
|
|
@ -154,6 +172,7 @@ export default { |
|
|
|
); |
|
|
|
}, |
|
|
|
}, |
|
|
|
dateList: [], |
|
|
|
timeList: [], |
|
|
|
|
|
|
|
dataForm: { |
|
|
@ -202,6 +221,100 @@ export default { |
|
|
|
if (item) { |
|
|
|
this.dataForm.matterId = item.matterId; |
|
|
|
this.info.matterName = item.matterName; |
|
|
|
this.getDateList(); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
selectTime(index) { |
|
|
|
// return console.log(index); |
|
|
|
let list = deepClone(this.timeList); |
|
|
|
if (!list[index].isAppointment) return false; |
|
|
|
|
|
|
|
let startIndex = list.findIndex((item) => item.selected); |
|
|
|
let endIndex = list.findIndex((item, index) => { |
|
|
|
return ( |
|
|
|
item.selected && |
|
|
|
(index == list.length - 1 || !list[index + 1].selected) |
|
|
|
); |
|
|
|
}); |
|
|
|
// console.log(startIndex, endIndex); |
|
|
|
if (startIndex == -1) { |
|
|
|
list[index].selected = !list[index].selected; |
|
|
|
} else if (startIndex == endIndex) { |
|
|
|
let big = Math.max(startIndex, index); |
|
|
|
let little = Math.min(startIndex, index); |
|
|
|
if (big == little) { |
|
|
|
list[index].selected = !list[index].selected; |
|
|
|
} else { |
|
|
|
for (let i = little; i <= big; i++) { |
|
|
|
// console.log(i); |
|
|
|
if (!list[i].isAppointment) { |
|
|
|
this.$message({ |
|
|
|
type: "warning", |
|
|
|
message: "请选择连续的时间", |
|
|
|
}); |
|
|
|
return false; |
|
|
|
} |
|
|
|
list[i].selected = true; |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (index == startIndex || index == endIndex) { |
|
|
|
list[index].selected = !list[index].selected; |
|
|
|
} else if (list[index].selected) { |
|
|
|
let big = index; |
|
|
|
let little = index; |
|
|
|
if (startIndex - index < index - endIndex) { |
|
|
|
big = endIndex; |
|
|
|
} else { |
|
|
|
little = startIndex; |
|
|
|
} |
|
|
|
for (let i = little; i <= big; i++) { |
|
|
|
list[i].selected = false; |
|
|
|
} |
|
|
|
} else { |
|
|
|
let big = index; |
|
|
|
let little = index; |
|
|
|
if (index < startIndex) { |
|
|
|
big = startIndex; |
|
|
|
} else { |
|
|
|
little = endIndex; |
|
|
|
} |
|
|
|
for (let i = little; i <= big; i++) { |
|
|
|
// console.log(i); |
|
|
|
if (!list[i].isAppointment) { |
|
|
|
this.$message({ |
|
|
|
type: "warning", |
|
|
|
message: "请选择连续的时间", |
|
|
|
}); |
|
|
|
return false; |
|
|
|
} |
|
|
|
list[i].selected = true; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
console.log(list); |
|
|
|
this.timeList = list; |
|
|
|
return false; |
|
|
|
}, |
|
|
|
|
|
|
|
async getDateList() { |
|
|
|
let url = "/gov/org/icpartyservicecenter/appointmenttime"; |
|
|
|
|
|
|
|
const { |
|
|
|
dataForm: { matterId }, |
|
|
|
} = this; |
|
|
|
if (!matterId) return; |
|
|
|
|
|
|
|
const { data, code, msg } = await requestPost(url, { |
|
|
|
matterId, |
|
|
|
date: dateFormat(new Date(), "yyyy-MM-dd"), |
|
|
|
}); |
|
|
|
|
|
|
|
if (code === 0) { |
|
|
|
this.dateList = data.dateList || []; |
|
|
|
// this.dataForm.appointmentDate = data.dateList[0]; |
|
|
|
} else { |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
@ -219,8 +332,11 @@ export default { |
|
|
|
}); |
|
|
|
|
|
|
|
if (code === 0) { |
|
|
|
this.timeList = data.timeDetail || []; |
|
|
|
} else { |
|
|
|
let timeList = data.timeDetail || []; |
|
|
|
this.timeList = timeList.map((item) => { |
|
|
|
item.selected = false; |
|
|
|
return item; |
|
|
|
}); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|