|
|
@@ -128,6 +128,7 @@
|
|
|
placeholder="请选择开始时间"
|
|
|
style="width: 100%"
|
|
|
:disabled-date="disabledStartDate"
|
|
|
+ @change="handleStartTimeChange"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -158,11 +159,12 @@
|
|
|
placeholder="请选择结束时间"
|
|
|
style="width: 100%"
|
|
|
:disabled-date="disabledEndDate"
|
|
|
+ @change="handleEndTimeChange"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
- <el-col :span="12" v-if="resumeInfo">
|
|
|
+ <el-col :span="12" v-if="resumeInfo && resumeShow">
|
|
|
<el-form-item label="挂起结束时间" prop="resumeTime">
|
|
|
<el-date-picker
|
|
|
v-model="formData.resumeTime"
|
|
|
@@ -318,6 +320,7 @@ const inputUsers = ref([]) // 存储选中的用户
|
|
|
const flowList = ref([])
|
|
|
const suspendInfo = ref(null)
|
|
|
const resumeInfo = ref(null)
|
|
|
+const resumeShow = ref(false)
|
|
|
|
|
|
// 计算属性
|
|
|
const workPermitNumProxy = computed({
|
|
|
@@ -537,6 +540,36 @@ watch(visible, (val) => {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+watch(
|
|
|
+ () => props.data?.realStartTime, // 只监听 realStartTime
|
|
|
+ (newStartTime, oldStartTime) => {
|
|
|
+ // 判断是否真的变化了(避免 undefined === undefined 误判)
|
|
|
+ debugger
|
|
|
+ if (newStartTime && newStartTime !== oldStartTime) {
|
|
|
+ // 注意:此时对话框可能未打开,根据你的需求决定是否加 visible 判断
|
|
|
+ if (visible.value) {
|
|
|
+ handleStartTimeChange(newStartTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { immediate: true } // 如果需要初始化时也触发一次,可加;否则去掉
|
|
|
+);
|
|
|
+
|
|
|
+watch(
|
|
|
+ () => props.data?.realEndTime, // 只监听 realEndTime
|
|
|
+ (newEndTime, oldEndTime) => {
|
|
|
+ // 判断是否真的变化了(避免 undefined === undefined 误判)
|
|
|
+ debugger
|
|
|
+ if (newEndTime && oldEndTime !== oldEndTime) {
|
|
|
+ // 注意:此时对话框可能未打开,根据你的需求决定是否加 visible 判断
|
|
|
+ if (visible.value) {
|
|
|
+ handleEndTimeChange(newEndTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ { immediate: true } // 如果需要初始化时也触发一次,可加;否则去掉
|
|
|
+);
|
|
|
+
|
|
|
// 时间禁用函数
|
|
|
const disabledStartDate = (time) => {
|
|
|
const getYYYYMMDD = (date) => {
|
|
|
@@ -627,6 +660,69 @@ const handleInfoEntryChange = (val) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+// 开始时间变化处理
|
|
|
+const handleStartTimeChange = (value) => {
|
|
|
+ debugger
|
|
|
+ if (resumeInfo && value) {
|
|
|
+ const realStartTime = formData.value.realStartTime
|
|
|
+ const realEndTime = formData.value.realEndTime
|
|
|
+ const suspendTime = suspendInfo.value.actionTime
|
|
|
+ const resumeTime = formData.value.resumeTime
|
|
|
+ if (suspendTime && value && new Date(suspendTime) < new Date(value)) { // 开工前挂起
|
|
|
+ if (value && resumeTime > new Date(value)) {
|
|
|
+ resumeShow.value = true
|
|
|
+ } else if(realEndTime && resumeTime && new Date(resumeTime) > new Date(realEndTime)) {
|
|
|
+ resumeShow.value = true
|
|
|
+ } else {
|
|
|
+ resumeShow.value = false
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if(suspendTime && value && new Date(suspendTime) >= new Date(value)) { // 作业中挂起
|
|
|
+ if (value && new Date(resumeTime) < new Date(value)) {
|
|
|
+ resumeShow.value = true
|
|
|
+ } else if(realEndTime && resumeTime && new Date(resumeTime) > new Date(realEndTime)) {
|
|
|
+ resumeShow.value = true
|
|
|
+ } else {
|
|
|
+ resumeShow.value = false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ resumeShow.value = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 结束时间变化处理
|
|
|
+const handleEndTimeChange = (value) => {
|
|
|
+ debugger
|
|
|
+ if (resumeInfo && value) {
|
|
|
+ const realStartTime = formData.value.realStartTime
|
|
|
+ const realEndTime = formData.value.realEndTime
|
|
|
+ const suspendTime = suspendInfo.value.actionTime
|
|
|
+ const resumeTime = formData.value.resumeTime
|
|
|
+ if (suspendTime && realStartTime && new Date(suspendTime) < new Date(realStartTime)) { // 开工前挂起
|
|
|
+ if (value && resumeTime > new Date(realStartTime)) {
|
|
|
+ resumeShow.value = true
|
|
|
+ } else if(value && resumeTime && new Date(resumeTime) > new Date(value)) {
|
|
|
+ resumeShow.value = true
|
|
|
+ } else {
|
|
|
+ resumeShow.value = false
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if(suspendTime && realStartTime && new Date(suspendTime) >= new Date(realStartTime)) { // 作业中挂起
|
|
|
+ if (realStartTime && new Date(resumeTime) < new Date(realStartTime)) {
|
|
|
+ resumeShow.value = true
|
|
|
+ } else if(value && resumeTime && new Date(resumeTime) > new Date(value)) {
|
|
|
+ resumeShow.value = true
|
|
|
+ } else {
|
|
|
+ resumeShow.value = false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ resumeShow.value = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// MIS工单相关处理函数
|
|
|
const handleMisNoInputFocus = () => {
|
|
|
// showMisNoQuickSelect.value = true
|