Compare commits
2 Commits
775bfbeb41
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 46cbcbde4c | |||
| 6fdce11152 |
2
web/App_Code/Model/Model.Designer.cs
generated
2
web/App_Code/Model/Model.Designer.cs
generated
@@ -1,4 +1,4 @@
|
|||||||
// 已啟用模型 'D:\dev\ez\17168erp\git_17888\web\App_Code\Model\Model.edmx' 的 T4 程式碼產生。
|
// 已啟用模型 'D:\17168ERP\web\App_Code\Model\Model.edmx' 的 T4 程式碼產生。
|
||||||
// 若要啟用舊版程式碼產生,請將 [程式碼產生策略] 設計工具屬性的值
|
// 若要啟用舊版程式碼產生,請將 [程式碼產生策略] 設計工具屬性的值
|
||||||
//變更為 [舊版 ObjectContext]。當模型在設計工具中開啟時,這個屬性便可
|
//變更為 [舊版 ObjectContext]。當模型在設計工具中開啟時,這個屬性便可
|
||||||
//以在 [屬性] 視窗中使用。
|
//以在 [屬性] 視窗中使用。
|
||||||
|
|||||||
@@ -750,7 +750,7 @@ public class activityController : ApiController
|
|||||||
|
|
||||||
//已有值
|
//已有值
|
||||||
var count = qry.Count(); //pageSize = count;//一次取回??
|
var count = qry.Count(); //pageSize = count;//一次取回??
|
||||||
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
var qryList = (pageSize > 0) ? qry.OrderBy(a=>a.num).ToPagedList(page, pageSize).ToList() : qry.ToList();
|
||||||
var ret = new
|
var ret = new
|
||||||
{
|
{
|
||||||
list = qryList.Select(x => new
|
list = qryList.Select(x => new
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
el: '#app',
|
el: '#app',
|
||||||
vuetify: new Vuetify(vuetify_options),
|
vuetify: new Vuetify(vuetify_options),
|
||||||
data() {
|
data() {
|
||||||
|
console.log("yes",<%= _this_id %>);
|
||||||
return {
|
return {
|
||||||
this_id: '<%= _this_id %>',
|
this_id: '<%= _this_id %>',
|
||||||
options: {},
|
options: {},
|
||||||
@@ -124,6 +125,9 @@
|
|||||||
deep: true,
|
deep: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
|
//this.initialize();
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
search_show(curr) {
|
search_show(curr) {
|
||||||
//console.log("btn_click:", curr, curr.api_url);
|
//console.log("btn_click:", curr, curr.api_url);
|
||||||
|
|||||||
@@ -160,7 +160,7 @@
|
|||||||
style="border-bottom: 1px solid #eee;"
|
style="border-bottom: 1px solid #eee;"
|
||||||
>
|
>
|
||||||
<div class="d-flex align-center">
|
<div class="d-flex align-center">
|
||||||
<span class="font-weight-bold">续住</span>
|
<span class="font-weight-bold">續住</span>
|
||||||
</div>
|
</div>
|
||||||
<v-btn icon @click="closeXuzhuGuestModalMethod">
|
<v-btn icon @click="closeXuzhuGuestModalMethod">
|
||||||
<v-icon>mdi-close</v-icon>
|
<v-icon>mdi-close</v-icon>
|
||||||
@@ -170,11 +170,11 @@
|
|||||||
<!-- 弹窗内容 -->
|
<!-- 弹窗内容 -->
|
||||||
<v-card-text class="flex-grow-1 py-6" style="overflow-y: auto;">
|
<v-card-text class="flex-grow-1 py-6" style="overflow-y: auto;">
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<span class="font-weight-medium">当前退房时间:</span>
|
<span class="font-weight-medium">當前退房時間:</span>
|
||||||
<span class="text-primary">{{ guadanguest.xuzhu.currentCheckoutDate }}</span>
|
<span class="text-primary">{{ guadanguest.xuzhu.currentCheckoutDate }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-flex align-center">
|
<div class="d-flex align-center">
|
||||||
<span class="font-weight-medium mr-2">续住后退房时间:</span>
|
<span class="font-weight-medium mr-2">續住後退房時間:</span>
|
||||||
<input
|
<input
|
||||||
type="date"
|
type="date"
|
||||||
id="newCheckoutDate"
|
id="newCheckoutDate"
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
|
|
||||||
<!-- 弹窗操作按钮 -->
|
<!-- 弹窗操作按钮 -->
|
||||||
<v-card-actions class="justify-end pt-4" style="border-top: 1px solid #eee;">
|
<v-card-actions class="justify-end pt-4" style="border-top: 1px solid #eee;">
|
||||||
<v-btn color="primary" class="px-6" @click="xuzhuPost">续住</v-btn>
|
<v-btn color="primary" class="px-6" @click="xuzhuPost">續住</v-btn>
|
||||||
<v-btn text class="ml-2" @click="closeXuzhuGuestModalMethod">取消</v-btn>
|
<v-btn text class="ml-2" @click="closeXuzhuGuestModalMethod">取消</v-btn>
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
</v-card>
|
</v-card>
|
||||||
@@ -1069,11 +1069,11 @@
|
|||||||
xuzhuPost() {
|
xuzhuPost() {
|
||||||
// 校验必填
|
// 校验必填
|
||||||
if (!this.guadanguest.xuzhu.guestUuid || !this.guadanguest.xuzhu.guestBedUuid) {
|
if (!this.guadanguest.xuzhu.guestUuid || !this.guadanguest.xuzhu.guestBedUuid) {
|
||||||
alert("GuestUuid 和 GuestBedUuid 不能为空");
|
alert("GuestUuid 和 GuestBedUuid 不能為空");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!this.guadanguest.xuzhu.newCheckoutDate || !this.guadanguest.xuzhu.currentCheckoutDate) {
|
if (!this.guadanguest.xuzhu.newCheckoutDate || !this.guadanguest.xuzhu.currentCheckoutDate) {
|
||||||
alert("续住时间不能为空");
|
alert("續住時間不能為空");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1087,8 +1087,8 @@
|
|||||||
axios.post(HTTP_HOST + 'api/guadanorderguest/xuzhu', payload)
|
axios.post(HTTP_HOST + 'api/guadanorderguest/xuzhu', payload)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.$refs.messageModal.open({
|
this.$refs.messageModal.open({
|
||||||
title: '续住成功',
|
title: '續住成功',
|
||||||
message: '客人续住已处理',
|
message: '續住以處理',
|
||||||
status: 'success',
|
status: 'success',
|
||||||
callback: () => {
|
callback: () => {
|
||||||
// 弹窗关闭后的回调
|
// 弹窗关闭后的回调
|
||||||
@@ -1096,7 +1096,7 @@
|
|||||||
this.getGuadanOrderGuestByOrderNo();
|
this.getGuadanOrderGuestByOrderNo();
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
console.error("发生错误:", error.message);
|
console.error("發生錯誤:", error.message);
|
||||||
} finally {
|
} finally {
|
||||||
this.closeXuzhuGuestModalMethod();
|
this.closeXuzhuGuestModalMethod();
|
||||||
}
|
}
|
||||||
@@ -1105,8 +1105,8 @@
|
|||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
this.$refs.messageModal.open({
|
this.$refs.messageModal.open({
|
||||||
title: '续住失败',
|
title: '續住失敗',
|
||||||
message: error.response?.data?.message || '系统异常,请稍后重试',
|
message: error.response?.data?.message || '系統異常,請稍後重試',
|
||||||
status: 'error'
|
status: 'error'
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="p-3 bg-light text-center rounded shadow" style="min-height: 180px;">
|
<div class="p-3 bg-light text-center rounded shadow" style="min-height: 180px;">
|
||||||
<div class="fs-2">📝</div>
|
<div class="fs-2">📝</div>
|
||||||
<div class="text-muted small mt-1">总挂单次数</div>
|
<div class="text-muted small mt-1">總掛單次數</div>
|
||||||
<div class="fw-bold fs-5 mt-1">{{ guadanStatistics.guadanTotalCount }}</div>
|
<div class="fw-bold fs-5 mt-1">{{ guadanStatistics.guadanTotalCount }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="p-3 bg-light text-center rounded shadow" style="min-height: 180px;">
|
<div class="p-3 bg-light text-center rounded shadow" style="min-height: 180px;">
|
||||||
<div class="fs-2">📋</div>
|
<div class="fs-2">📋</div>
|
||||||
<div class="text-muted small mt-1">当前挂单数量</div>
|
<div class="text-muted small mt-1">當前掛單數</div>
|
||||||
<div class="fw-bold fs-5 mt-1">{{ guadanStatistics.guadanCurrentCount }}</div>
|
<div class="fw-bold fs-5 mt-1">{{ guadanStatistics.guadanCurrentCount }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="p-3 bg-light text-center rounded shadow" style="min-height: 180px;">
|
<div class="p-3 bg-light text-center rounded shadow" style="min-height: 180px;">
|
||||||
<div class="fs-2">👥</div>
|
<div class="fs-2">👥</div>
|
||||||
<div class="text-muted small mt-1">总挂单人数</div>
|
<div class="text-muted small mt-1">總掛單人數</div>
|
||||||
<div class="fw-bold fs-5 mt-1">
|
<div class="fw-bold fs-5 mt-1">
|
||||||
{{ guadanStatistics.guadanPeopleTotal }} (男:{{ guadanStatistics.guadanPeopleMale }},女:{{ guadanStatistics.guadanPeopleFemale }})
|
{{ guadanStatistics.guadanPeopleTotal }} (男:{{ guadanStatistics.guadanPeopleMale }},女:{{ guadanStatistics.guadanPeopleFemale }})
|
||||||
</div>
|
</div>
|
||||||
@@ -215,7 +215,7 @@
|
|||||||
{ text: '房间数量', value: 'roomcount' },
|
{ text: '房间数量', value: 'roomcount' },
|
||||||
{ text: '床位数量', value: 'bedcount' },
|
{ text: '床位数量', value: 'bedcount' },
|
||||||
{ text: '预约人数', value: 'todaytotalbookers' },
|
{ text: '预约人数', value: 'todaytotalbookers' },
|
||||||
{ text: '已入住人数', value: 'checkin'},
|
{ text: '已入住人數', value: 'checkin'},
|
||||||
{ text: '可用床位', value: 'availableBeds' },
|
{ text: '可用床位', value: 'availableBeds' },
|
||||||
{ text: '床位利用率', value: 'bedusagerate' }
|
{ text: '床位利用率', value: 'bedusagerate' }
|
||||||
],
|
],
|
||||||
@@ -303,7 +303,7 @@
|
|||||||
},
|
},
|
||||||
exportStatisticsToExcel() {
|
exportStatisticsToExcel() {
|
||||||
if (!this.items || !this.items.length) {
|
if (!this.items || !this.items.length) {
|
||||||
console.warn("没有数据可导出");
|
console.warn("沒有數據可匯出");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -319,7 +319,7 @@
|
|||||||
|
|
||||||
// 3. 创建 Workbook 并添加 Sheet
|
// 3. 创建 Workbook 并添加 Sheet
|
||||||
const wb = XLSX.utils.book_new();
|
const wb = XLSX.utils.book_new();
|
||||||
XLSX.utils.book_append_sheet(wb, ws, "统计数据");
|
XLSX.utils.book_append_sheet(wb, ws, "統計數據");
|
||||||
|
|
||||||
// 4. 写入 Excel 并下载
|
// 4. 写入 Excel 并下载
|
||||||
const wbout = XLSX.write(wb, { bookType: "xlsx", type: "array" });
|
const wbout = XLSX.write(wb, { bookType: "xlsx", type: "array" });
|
||||||
|
|||||||
@@ -76,12 +76,12 @@
|
|||||||
<div class="col-sm-4 col-lg-6" v-if="!currentSelectRoom">
|
<div class="col-sm-4 col-lg-6" v-if="!currentSelectRoom">
|
||||||
<div class="card shadow-sm my-2"style="position: sticky; top: 20px;">
|
<div class="card shadow-sm my-2"style="position: sticky; top: 20px;">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<span>区域</span>
|
<span>區域</span>
|
||||||
<span class="fw-bold" v-if="currentSelectRegion">
|
<span class="fw-bold" v-if="currentSelectRegion">
|
||||||
{{ ' ' + currentSelectRegion.name + ' ' }}
|
{{ ' ' + currentSelectRegion.name + ' ' }}
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
资料
|
資料
|
||||||
</span>
|
</span>
|
||||||
以下 * 欄位為必填欄位
|
以下 * 欄位為必填欄位
|
||||||
</div>
|
</div>
|
||||||
@@ -147,7 +147,7 @@
|
|||||||
<span class="fw-bold" v-if="currentSelectRoom">
|
<span class="fw-bold" v-if="currentSelectRoom">
|
||||||
{{ ' ' + currentSelectRoom.name + ' ' }}
|
{{ ' ' + currentSelectRoom.name + ' ' }}
|
||||||
</span>
|
</span>
|
||||||
<span>资料</span>
|
<span>資料</span>
|
||||||
以下 * 欄位為必填欄位
|
以下 * 欄位為必填欄位
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body shadow">
|
<div class="card-body shadow">
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
|
|
||||||
<div class="row mt-5">
|
<div class="row mt-5">
|
||||||
<div class="form-group col-5">
|
<div class="form-group col-5">
|
||||||
<label>客房所属区域</label>
|
<label>客房所屬區域</label>
|
||||||
<select class="form-control" v-model="room.room_form.regionUuid">
|
<select class="form-control" v-model="room.room_form.regionUuid">
|
||||||
<option v-for="r in flatRegions"
|
<option v-for="r in flatRegions"
|
||||||
:value="r.uuid"
|
:value="r.uuid"
|
||||||
@@ -357,9 +357,9 @@
|
|||||||
<div style="display:flex; justify-content:flex-end; gap:10px;">
|
<div style="display:flex; justify-content:flex-end; gap:10px;">
|
||||||
<button @click="closeBedInUsedModal"
|
<button @click="closeBedInUsedModal"
|
||||||
class="btn btn-danger"
|
class="btn btn-danger"
|
||||||
type="button" style="padding:6px 12px; border:none; border-radius:4px; cursor:pointer;">关闭</button>
|
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 :href="bed_is_used_modal_link" target="_blank" class="btn btn-primary">
|
||||||
前往处理
|
前往處理
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -64,7 +64,14 @@
|
|||||||
<%#get_my_group(Eval("power").ToString())%>
|
<%#get_my_group(Eval("power").ToString())%>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
<asp:BoundField DataField="u_name" HeaderText="姓名" SortExpression="u_name" />
|
<asp:TemplateField HeaderText="姓名" SortExpression="u_name">
|
||||||
|
<EditItemTemplate>
|
||||||
|
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("u_name") %>'></asp:TextBox>
|
||||||
|
</EditItemTemplate>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:Label ID="UserName" runat="server" Text='<%# Bind("u_name") %>'></asp:Label>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderText="登入時間" SortExpression="login_time">
|
<asp:TemplateField HeaderText="登入時間" SortExpression="login_time">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<%# Eval("login_time") %>
|
<%# Eval("login_time") %>
|
||||||
|
|||||||
@@ -390,7 +390,7 @@ public partial class admin_user_index : MyWeb.config
|
|||||||
string strID = Convert.ToString(GridView1.DataKeys[iRowIndex].Values[0]); //取得主索引(num)編號
|
string strID = Convert.ToString(GridView1.DataKeys[iRowIndex].Values[0]); //取得主索引(num)編號
|
||||||
start_del_data(strID);
|
start_del_data(strID);
|
||||||
|
|
||||||
Literal UserName = (Literal)oRow.FindControl("UserName");
|
Label UserName = (Label)oRow.FindControl("UserName");
|
||||||
Model.admin_log admin_log = new Model.admin_log();
|
Model.admin_log admin_log = new Model.admin_log();
|
||||||
admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Power, (int)Model.admin_log.Status.Delete, "使用者:" + UserName.Text);
|
admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.Power, (int)Model.admin_log.Status.Delete, "使用者:" + UserName.Text);
|
||||||
|
|
||||||
@@ -404,7 +404,7 @@ public partial class admin_user_index : MyWeb.config
|
|||||||
for (int i = GridView1.Rows.Count - 1; i >= 0; i--)
|
for (int i = GridView1.Rows.Count - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
CheckBox oCheckBox = (CheckBox)GridView1.Rows[i].Cells[GridView1.Columns.Count - 1].FindControl("chkSelect1");
|
CheckBox oCheckBox = (CheckBox)GridView1.Rows[i].Cells[GridView1.Columns.Count - 1].FindControl("chkSelect1");
|
||||||
Literal UserName = (Literal)GridView1.Rows[i].Cells[GridView1.Columns.Count - 1].FindControl("UserName");
|
Label UserName = (Label)GridView1.Rows[i].Cells[GridView1.Columns.Count - 1].FindControl("UserName");
|
||||||
if (oCheckBox.Checked)
|
if (oCheckBox.Checked)
|
||||||
{
|
{
|
||||||
x.Add(UserName.Text);
|
x.Add(UserName.Text);
|
||||||
|
|||||||
@@ -45,8 +45,8 @@
|
|||||||
</appSettings>
|
</appSettings>
|
||||||
<connectionStrings>
|
<connectionStrings>
|
||||||
<!--SQL用-->
|
<!--SQL用-->
|
||||||
<add name="shopConn" providerName="System.Data.SqlClient" connectionString="Data Source=localhost;Initial Catalog=17168erp_t;User ID=17168erp;Password=17168erp;Encrypt=False;TrustServerCertificate=True;Provider=SQLOLEDB;Connection Timeout=10;" />
|
<add name="shopConn" providerName="System.Data.SqlClient" connectionString="Data Source=192.168.5.21;Initial Catalog=17168erp_t;User ID=sa;Password=linux@mssql1234;Encrypt=False;TrustServerCertificate=True;Provider=SQLOLEDB;Connection Timeout=10;" />
|
||||||
<add name="ezEntities" providerName="System.Data.EntityClient" connectionString="metadata=res://*/App_Code.Model.Model.csdl|res://*/App_Code.Model.Model.ssdl|res://*/App_Code.Model.Model.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=17168erp_t;User ID=17168erp;Password=17168erp;Encrypt=False;TrustServerCertificate=True;Connection Timeout=10;"" />
|
<add name="ezEntities" providerName="System.Data.EntityClient" connectionString="metadata=res://*/App_Code.Model.Model.csdl|res://*/App_Code.Model.Model.ssdl|res://*/App_Code.Model.Model.msl;provider=System.Data.SqlClient;provider connection string="Data Source=192.168.5.21;Initial Catalog=17168erp_t;User ID=sa;Password=linux@mssql1234;Encrypt=False;TrustServerCertificate=True;Connection Timeout=10;"" />
|
||||||
<!--
|
<!--
|
||||||
-->
|
-->
|
||||||
<!--SQL用-->
|
<!--SQL用-->
|
||||||
|
|||||||
Reference in New Issue
Block a user