This commit is contained in:
2025-09-25 15:18:34 +08:00
parent c6bd763485
commit 71490b1fac
14 changed files with 759 additions and 63 deletions

View File

@@ -252,7 +252,7 @@
<div class="mb-3">
<label class="form-label">狀態</label>
<select class="form-control" v-model="room_bed.newBedForm.statuscode">
<select class="form-control" v-model="room_bed.newBedForm.statuscode" disabled>
<option v-for="status in room_bed.bed_status" :value="status.code">
{{status.name}}
</option>
@@ -349,6 +349,23 @@
</v-card-actions>
</v-card>
</v-dialog>
<!-- 停用區域如果有床位正在掛單提示彈出視窗 -->
<div v-if="bed_is_used_modal" style="position:fixed; top:0; left:0; width:100%; height:100%;
background:rgba(0,0,0,0.5); display:flex; align-items:center; justify-content:center; z-index:9999;">
<div style="background:#fff; padding:20px; border-radius:8px; width:300px; text-align:center;">
<p style="margin-bottom:15px;">{{bed_is_used_modal_message}}</p>
<div style="display:flex; justify-content:flex-end; gap:10px;">
<button @click="closeBedInUsedModal"
class="btn btn-danger"
type="button" style="padding:6px 12px; border:none; border-radius:4px; cursor:pointer;">关闭</button>
<a :href="bed_is_used_modal_link" target="_blank" class="btn btn-primary">
前往处理
</a>
</div>
</div>
</div>
<!-- 更新修改確認彈出視窗 -->
<message-modal ref="messageModal"></message-modal>
<!-- 刪除確認彈出視窗 -->
@@ -477,13 +494,14 @@
</div>
`
});
new Vue({
el: '#app',
vuetify: new Vuetify(vuetify_options),
data() {
return {
bed_is_used_modal: false,
bed_is_used_modal_message: null,
bed_is_used_modal_link: "handle_bed_in_used.aspx", // 默认链接
selectedId: null, // 被選中項目ID
selectedType: null, // 'region' 或 'room'
expandAllFlag: false, // 控制全部展開
@@ -546,6 +564,11 @@
};
},
methods: {
closeBedInUsedModal() {
this.bed_is_used_modal = false;
this.bed_is_used_modal_message = null;
this.bed_is_used_modal_link = "handle_bed_in_used.aspx"; // 默认链接
},
expandAll() {
this.expandAllFlag = true;
this.collapseAllFlag = false;
@@ -634,7 +657,10 @@
});
return;
}
const url = this.form.uuid ? '/api/region/update' : '/api/region/create';
const url = this.form.uuid
? HTTP_HOST + '/api/region/update'
: HTTP_HOST + '/api/region/create';
axios.post(url, this.form)
.then((res) => {
//alert('儲存成功');
@@ -649,10 +675,20 @@
});
})
.catch((error) => {
this.$refs.messageModal.open({
title: '更新提示',
message: error.response?.data?.message || "儲存失敗,請稍後再試。",
});
console.error('更新失敗', error);
const code = error.response?.data?.code;
const message = error.response?.data?.message || error.message ||
"未知錯誤,請稍後再試";
if (code === "BED_IS_USED") {
this.bed_is_used_modal = true;
this.bed_is_used_modal_message = message
this.bed_is_used_modal_link = this.bed_is_used_modal_link + '?region=' + this.form.uuid
} else {
this.$refs.messageModal.open({
message: (message)
});
}
});
},
deleteRegion() {
@@ -665,7 +701,7 @@
});
},
confirmDeleteRegion() {
axios.post('/api/region/delete', { Uuid: this.form.uuid })
axios.post(HTTP_HOST + 'api/region/delete', { Uuid: this.form.uuid })
.then(() => {
this.showDeleteModal = false;
this.$refs.messageModal.open({
@@ -717,7 +753,7 @@
uuid: null,
RoomUuid: this.currentSelectRoom.uuid,
Name: '',
statuscode: null,
statuscode: "101",
IsActive: true,
Gender: this.currentSelectRoom.gender, // 不設預設值,強制選擇
};
@@ -732,7 +768,7 @@
return;
}
try {
var res = await axios.post('/api/region/bed/create', this.room_bed.newBedForm);
var res = await axios.post(HTTP_HOST + 'api/region/bed/create', this.room_bed.newBedForm);
this.room_bed.showBedModal = false;
this.$refs.messageModal.open({
title: '成功',
@@ -825,12 +861,20 @@
await this.loadRegions();
this.room_bed.bed_items = this.currentSelectRoom.beds;
//this.selectRegion(this.findRegionById(this.regions, this.form.id));
} catch (err) {
console.log(err)
this.$refs.messageModal.open({
title: '錯誤',
message: err.response?.data?.message || '更新失敗'
});
} catch (error) {
console.error('更新失敗', error);
const code = error.response?.data?.code;
const message = error.response?.data?.message || error.message ||
"未知錯誤,請稍後再試";
if (code === "BED_IS_USED") {
this.bed_is_used_modal = true;
this.bed_is_used_modal_message = message;
this.bed_is_used_modal_link = this.bed_is_used_modal_link + '?bed=' + this.room_bed.newBedForm.uuid
} else {
this.$refs.messageModal.open({
message: (message)
});
}
}
},
getBedStatus() {
@@ -887,9 +931,18 @@
};
} catch (error) {
console.error('更新失敗', error);
this.$refs.messageModal.open({
message: (error.response?.data?.message || error.message)
});
const code = error.response?.data?.code;
const message = error.response?.data?.message || error.message ||
"未知錯誤,請稍後再試";
if (code === "BED_IS_USED") {
this.bed_is_used_modal = true;
this.bed_is_used_modal_message = message;
this.bed_is_used_modal_link = this.bed_is_used_modal_link + '?room=' + this.room.room_form.uuid
} else {
this.$refs.messageModal.open({
message: (message)
});
}
}
},