|
@@ -82,7 +82,7 @@
|
|
|
},
|
|
},
|
|
|
]"
|
|
]"
|
|
|
>
|
|
>
|
|
|
- <a-auto-complete
|
|
|
|
|
|
|
+ <a-auto-complete style="width: 80%;"
|
|
|
v-model="room.key1"
|
|
v-model="room.key1"
|
|
|
placeholder="请输入姓名"
|
|
placeholder="请输入姓名"
|
|
|
@search="handleSearch"
|
|
@search="handleSearch"
|
|
@@ -96,6 +96,8 @@
|
|
|
>
|
|
>
|
|
|
</template>
|
|
</template>
|
|
|
</a-auto-complete>
|
|
</a-auto-complete>
|
|
|
|
|
+ <span style="cursor: pointer;" v-if="room.busMemberCard&&room.busMemberCard.id" @click="showMemberCard(room.busMemberCard)">会员</span>
|
|
|
|
|
+ <span style="cursor: pointer;" v-if="room.busMarketAgreementUnit&&room.busMarketAgreementUnit.id" @click="showAgreementUnit(room.busMarketAgreementUnit)">协议</span>
|
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
|
</a-col>
|
|
</a-col>
|
|
|
<a-col :span="8">
|
|
<a-col :span="8">
|
|
@@ -177,7 +179,7 @@
|
|
|
>
|
|
>
|
|
|
<a-input
|
|
<a-input
|
|
|
v-model="room.key5"
|
|
v-model="room.key5"
|
|
|
- placeholder="请输入姓名"
|
|
|
|
|
|
|
+ placeholder="请输入手机号"
|
|
|
></a-input>
|
|
></a-input>
|
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
|
</a-col>
|
|
</a-col>
|
|
@@ -511,6 +513,41 @@
|
|
|
</a-select>
|
|
</a-select>
|
|
|
</a-form-model-item>
|
|
</a-form-model-item>
|
|
|
</a-col>
|
|
</a-col>
|
|
|
|
|
+ <a-col :span="12" v-if="model.orderInfo.customerType === 3">
|
|
|
|
|
+ <a-form-model-item
|
|
|
|
|
+ label="协议单位"
|
|
|
|
|
+ :labelCol="labelCol"
|
|
|
|
|
+ :wrapperCol="wrapperCol"
|
|
|
|
|
+ prop="orderInfo.roomPriceSlnId"
|
|
|
|
|
+ >
|
|
|
|
|
+ <a-select
|
|
|
|
|
+ placeholder="协议单位"
|
|
|
|
|
+ option-label-prop="label"
|
|
|
|
|
+ v-model="model.orderInfo.contractTeamId"
|
|
|
|
|
+ @change="contractTeamIdChange"
|
|
|
|
|
+ >
|
|
|
|
|
+ <a-select-option
|
|
|
|
|
+ :key="item.id"
|
|
|
|
|
+ :value="item.id"
|
|
|
|
|
+ :label="item.customerName"
|
|
|
|
|
+ v-for="(item, index) in busMarketAgreementUnitList"
|
|
|
|
|
+ >
|
|
|
|
|
+ {{ item.customerName }}
|
|
|
|
|
+ </a-select-option>
|
|
|
|
|
+ </a-select>
|
|
|
|
|
+ </a-form-model-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="12"></a-col>
|
|
|
|
|
+ <a-col :span="12" v-if="model.orderInfo.customerType === 3">
|
|
|
|
|
+ <a-form-model-item
|
|
|
|
|
+ label="协议合同"
|
|
|
|
|
+ :labelCol="labelCol"
|
|
|
|
|
+ :wrapperCol="wrapperCol"
|
|
|
|
|
+ prop="orderInfo.contractTeamProtocolId"
|
|
|
|
|
+ >
|
|
|
|
|
+ <span style="color:red;cursor: pointer;">{{ model.orderInfo.contractTeamProtocolName }}</span>
|
|
|
|
|
+ </a-form-model-item>
|
|
|
|
|
+ </a-col>
|
|
|
<a-col :span="12">
|
|
<a-col :span="12">
|
|
|
<a-form-model-item
|
|
<a-form-model-item
|
|
|
label="房价方案"
|
|
label="房价方案"
|
|
@@ -849,7 +886,8 @@
|
|
|
</th>
|
|
</th>
|
|
|
</table>
|
|
</table>
|
|
|
</a-modal>
|
|
</a-modal>
|
|
|
-
|
|
|
|
|
|
|
+<member-card-modal ref="modalMemberCardInfo"></member-card-modal>
|
|
|
|
|
+<agreement-unit-modal ref="modalAgreementUnitInfo"></agreement-unit-modal>
|
|
|
</a-spin>
|
|
</a-spin>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -859,6 +897,8 @@ import { validateDuplicateValue } from "@/utils/util";
|
|
|
import moment from "moment";
|
|
import moment from "moment";
|
|
|
import EditableCell from "./EditableCell.vue";
|
|
import EditableCell from "./EditableCell.vue";
|
|
|
import SelectRoomFormModal from "./SelectRoomFormModal.vue";
|
|
import SelectRoomFormModal from "./SelectRoomFormModal.vue";
|
|
|
|
|
+import MemberCardModal from "./MemberCardModal";
|
|
|
|
|
+import AgreementUnitModal from "./AgreementUnitModal";
|
|
|
const columns = [
|
|
const columns = [
|
|
|
// {
|
|
// {
|
|
|
// title: "",
|
|
// title: "",
|
|
@@ -928,38 +968,16 @@ const columns2 = [
|
|
|
scopedSlots: { customRender: "money" },
|
|
scopedSlots: { customRender: "money" },
|
|
|
},
|
|
},
|
|
|
];
|
|
];
|
|
|
-const data = [];
|
|
|
|
|
-for (let i = 0; i < 2; i++) {
|
|
|
|
|
- data.push({
|
|
|
|
|
- id: i,
|
|
|
|
|
- key1: `100${i}`,
|
|
|
|
|
- key2: "双人床",
|
|
|
|
|
- key3: 298,
|
|
|
|
|
- key4: 298,
|
|
|
|
|
- key5: 2,
|
|
|
|
|
- key6: 298,
|
|
|
|
|
- key7: 298,
|
|
|
|
|
- });
|
|
|
|
|
-}
|
|
|
|
|
-const data2 = [];
|
|
|
|
|
-for (let i = 0; i < 2; i++) {
|
|
|
|
|
- data2.push({
|
|
|
|
|
- id: i,
|
|
|
|
|
- key1: "押金",
|
|
|
|
|
- key2: "支付宝",
|
|
|
|
|
- key3: 298,
|
|
|
|
|
- key4: 298,
|
|
|
|
|
- });
|
|
|
|
|
-}
|
|
|
|
|
-const panes = [
|
|
|
|
|
- { roomNo: "1001", content: "", id: "1001" },
|
|
|
|
|
- { roomNo: "1002", content: "", id: "1002" },
|
|
|
|
|
-];
|
|
|
|
|
const date = new Date();
|
|
const date = new Date();
|
|
|
const endDate = new Date(date.setDate(date.getDate() + 1));
|
|
const endDate = new Date(date.setDate(date.getDate() + 1));
|
|
|
export default {
|
|
export default {
|
|
|
name: "BillRoomForm",
|
|
name: "BillRoomForm",
|
|
|
- components: { EditableCell, SelectRoomFormModal },
|
|
|
|
|
|
|
+ components: {
|
|
|
|
|
+ EditableCell,
|
|
|
|
|
+ SelectRoomFormModal,
|
|
|
|
|
+ MemberCardModal,
|
|
|
|
|
+ AgreementUnitModal,
|
|
|
|
|
+ },
|
|
|
props: {
|
|
props: {
|
|
|
//表单禁用
|
|
//表单禁用
|
|
|
disabled: {
|
|
disabled: {
|
|
@@ -991,9 +1009,9 @@ export default {
|
|
|
model: {
|
|
model: {
|
|
|
// data: data,
|
|
// data: data,
|
|
|
orderInfo: {
|
|
orderInfo: {
|
|
|
- rooms: panes,
|
|
|
|
|
- data: data,
|
|
|
|
|
- data2: data2,
|
|
|
|
|
|
|
+ rooms: [],
|
|
|
|
|
+ data: [],
|
|
|
|
|
+ data2: [],
|
|
|
bookingOrdersType: 1,
|
|
bookingOrdersType: 1,
|
|
|
arrivalTime2: moment(new Date()).format("YYYY-MM-DD"),
|
|
arrivalTime2: moment(new Date()).format("YYYY-MM-DD"),
|
|
|
dueOutTime2: moment(endDate).format("YYYY-MM-DD"),
|
|
dueOutTime2: moment(endDate).format("YYYY-MM-DD"),
|
|
@@ -1005,6 +1023,7 @@ export default {
|
|
|
hourRoomId: "",
|
|
hourRoomId: "",
|
|
|
breakfastNum: 0,
|
|
breakfastNum: 0,
|
|
|
vipCustomerId: "",
|
|
vipCustomerId: "",
|
|
|
|
|
+ customerType: 1,
|
|
|
},
|
|
},
|
|
|
roomIds: [],
|
|
roomIds: [],
|
|
|
livingRoomDayPrices: [],
|
|
livingRoomDayPrices: [],
|
|
@@ -1062,6 +1081,8 @@ export default {
|
|
|
roomIdsIndex: 0,
|
|
roomIdsIndex: 0,
|
|
|
busMemberCardList: [],
|
|
busMemberCardList: [],
|
|
|
payTypeList: [],
|
|
payTypeList: [],
|
|
|
|
|
+ busMemberCard: {},
|
|
|
|
|
+ busMarketAgreementUnitList: [],
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
computed: {
|
|
computed: {
|
|
@@ -1115,6 +1136,10 @@ export default {
|
|
|
});
|
|
});
|
|
|
return text;
|
|
return text;
|
|
|
},
|
|
},
|
|
|
|
|
+ cPhone() {
|
|
|
|
|
+ let a = this.model.roomIds.map((t) => t.key5);
|
|
|
|
|
+ return a;
|
|
|
|
|
+ },
|
|
|
},
|
|
},
|
|
|
watch: {
|
|
watch: {
|
|
|
depositSplit(value) {
|
|
depositSplit(value) {
|
|
@@ -1180,6 +1205,44 @@ export default {
|
|
|
this.model.orderFees = [...list, ...list2];
|
|
this.model.orderFees = [...list, ...list2];
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ // "model.roomIds": {
|
|
|
|
|
+ // handler(newValue, oldValue) {
|
|
|
|
|
+ // console.log(newValue, oldValue);
|
|
|
|
|
+ // },
|
|
|
|
|
+ // deep: true,
|
|
|
|
|
+ // immediate: true,
|
|
|
|
|
+ // },
|
|
|
|
|
+ cPhone: {
|
|
|
|
|
+ handler: function (val, old) {
|
|
|
|
|
+ var index = this.model.roomIds.findIndex((t) => t.id == this.activeKey);
|
|
|
|
|
+ if (index >= 0) {
|
|
|
|
|
+ var find = this.model.roomIds[index];
|
|
|
|
|
+ find.busMemberCard = this.busMemberCardList.find(
|
|
|
|
|
+ (t) => t.mobile == val[index]
|
|
|
|
|
+ );
|
|
|
|
|
+ if (!find.busMemberCard) {
|
|
|
|
|
+ find.busMarketAgreementUnit = this.busMarketAgreementUnitList.find(
|
|
|
|
|
+ (t) => t.phone == val[index]
|
|
|
|
|
+ );
|
|
|
|
|
+ } else {
|
|
|
|
|
+ find.busMarketAgreementUnit = {};
|
|
|
|
|
+ }
|
|
|
|
|
+ if (find.busMemberCard && find.busMemberCard.id) {
|
|
|
|
|
+ this.model.orderInfo.customerType = 2;
|
|
|
|
|
+ this.model.orderInfo.roomPriceSlnId = find.busMemberCard.id;
|
|
|
|
|
+ } else if (
|
|
|
|
|
+ find.busMarketAgreementUnit &&
|
|
|
|
|
+ find.busMarketAgreementUnit.id
|
|
|
|
|
+ ) {
|
|
|
|
|
+ this.model.orderInfo.customerType = 3;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.model.orderInfo.customerType = 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ deep: true,
|
|
|
|
|
+ immediate: true,
|
|
|
|
|
+ },
|
|
|
},
|
|
},
|
|
|
created() {
|
|
created() {
|
|
|
var _info = JSON.parse(localStorage.getItem("storeInfo"));
|
|
var _info = JSON.parse(localStorage.getItem("storeInfo"));
|
|
@@ -1194,6 +1257,9 @@ export default {
|
|
|
}).then((res) => {
|
|
}).then((res) => {
|
|
|
if (res.success) {
|
|
if (res.success) {
|
|
|
this.customerSourceList = res.result.records;
|
|
this.customerSourceList = res.result.records;
|
|
|
|
|
+ if (this.customerSourceList) {
|
|
|
|
|
+ this.model.orderInfo.customerSource = this.customerSourceList[0].id;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
getAction("/business/busDictItem/list", {
|
|
getAction("/business/busDictItem/list", {
|
|
@@ -1243,6 +1309,14 @@ export default {
|
|
|
this.busMemberCardList = res.result.records;
|
|
this.busMemberCardList = res.result.records;
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+ getAction("/business/busMarketAgreementUnit/list", {
|
|
|
|
|
+ pageSize: 99999,
|
|
|
|
|
+ pageNo: 1,
|
|
|
|
|
+ }).then((res) => {
|
|
|
|
|
+ if (res.success) {
|
|
|
|
|
+ this.busMarketAgreementUnitList = res.result.records;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
postAction("/rooms/cesAllDayPriceRule/fetch", { hotelId: _info.id }).then(
|
|
postAction("/rooms/cesAllDayPriceRule/fetch", { hotelId: _info.id }).then(
|
|
|
(res) => {
|
|
(res) => {
|
|
@@ -1265,6 +1339,32 @@ export default {
|
|
|
// this.getcesRoomLayout();
|
|
// this.getcesRoomLayout();
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ contractTeamIdChange(e) {
|
|
|
|
|
+ this.model.orderInfo.contractTeamId = e;
|
|
|
|
|
+ getAction("/business/busMarketAgreementCustomer/list", {
|
|
|
|
|
+ agreementId: this.model.orderInfo.contractTeamId,
|
|
|
|
|
+ }).then((res) => {
|
|
|
|
|
+ if (res.success) {
|
|
|
|
|
+ var list = res.result.records;
|
|
|
|
|
+ if (list && list.length > 0) {
|
|
|
|
|
+ this.model.orderInfo.contractTeamProtocolName = list[0].name;
|
|
|
|
|
+ this.model.orderInfo.contractTeamProtocolId = list[0].id;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ showMemberCard(busMemberCard) {
|
|
|
|
|
+ console.log("busMemberCard", busMemberCard);
|
|
|
|
|
+ this.$refs.modalMemberCardInfo.edit(busMemberCard);
|
|
|
|
|
+ this.$refs.modalMemberCardInfo.title = "会员信息";
|
|
|
|
|
+ this.$refs.modalMemberCardInfo.disableSubmit = true;
|
|
|
|
|
+ },
|
|
|
|
|
+ showAgreementUnit(busMarketAgreementUnit) {
|
|
|
|
|
+ console.log("busMarketAgreementUnit", busMarketAgreementUnit);
|
|
|
|
|
+ this.$refs.modalAgreementUnitInfo.edit(busMarketAgreementUnit);
|
|
|
|
|
+ this.$refs.modalAgreementUnitInfo.title = "协议单位信息";
|
|
|
|
|
+ this.$refs.modalAgreementUnitInfo.disableSubmit = true;
|
|
|
|
|
+ },
|
|
|
//批量调价
|
|
//批量调价
|
|
|
batchPrice(e) {
|
|
batchPrice(e) {
|
|
|
console.log(e);
|
|
console.log(e);
|
|
@@ -1569,13 +1669,16 @@ export default {
|
|
|
this.customerList = result;
|
|
this.customerList = result;
|
|
|
},
|
|
},
|
|
|
handleSelectMember(room, e) {
|
|
handleSelectMember(room, e) {
|
|
|
|
|
+ console.log("room", room);
|
|
|
var find = this.customerList.find((t) => t.id === e);
|
|
var find = this.customerList.find((t) => t.id === e);
|
|
|
- room.key1 = find.name;
|
|
|
|
|
- room.key2 = 1;
|
|
|
|
|
- room.key3 = "汉";
|
|
|
|
|
- // room.key4 = find.phone;
|
|
|
|
|
- room.key5 = find.phone;
|
|
|
|
|
- // room.key6 = "火星";
|
|
|
|
|
|
|
+ // room.key1 = find.name;
|
|
|
|
|
+ // room.key2 = 1;
|
|
|
|
|
+ // room.key3 = "汉";
|
|
|
|
|
+ // room.key5 = find.phone;
|
|
|
|
|
+ this.$set(room, "key1", find.name);
|
|
|
|
|
+ this.$set(room, "key2", 1);
|
|
|
|
|
+ this.$set(room, "key3", "汉");
|
|
|
|
|
+ this.$set(room, "key5", find.phone);
|
|
|
this.$set(room, "customerId", find.id);
|
|
this.$set(room, "customerId", find.id);
|
|
|
},
|
|
},
|
|
|
pulsRoom() {
|
|
pulsRoom() {
|
|
@@ -1737,13 +1840,13 @@ export default {
|
|
|
addList(roomLiveList, key) {
|
|
addList(roomLiveList, key) {
|
|
|
console.log("roomLiveList", roomLiveList);
|
|
console.log("roomLiveList", roomLiveList);
|
|
|
this.modelDefault = Object.assign({}, this.modelDefault, {
|
|
this.modelDefault = Object.assign({}, this.modelDefault, {
|
|
|
- roomIds: roomLiveList,
|
|
|
|
|
|
|
+ roomIds: JSON.parse(JSON.stringify(roomLiveList)),
|
|
|
});
|
|
});
|
|
|
this.modelDefault.orderInfo.bookingOrdersType = key;
|
|
this.modelDefault.orderInfo.bookingOrdersType = key;
|
|
|
this.edit(this.modelDefault);
|
|
this.edit(this.modelDefault);
|
|
|
},
|
|
},
|
|
|
async edit(record) {
|
|
async edit(record) {
|
|
|
- console.log("edit");
|
|
|
|
|
|
|
+ console.log("edit", record);
|
|
|
this.visible = true;
|
|
this.visible = true;
|
|
|
this.model = Object.assign({}, record);
|
|
this.model = Object.assign({}, record);
|
|
|
console.log("this.model", this.model);
|
|
console.log("this.model", this.model);
|
|
@@ -1753,6 +1856,9 @@ export default {
|
|
|
if (this.payTypeList == 0) {
|
|
if (this.payTypeList == 0) {
|
|
|
await this.getbusRoomPayType();
|
|
await this.getbusRoomPayType();
|
|
|
}
|
|
}
|
|
|
|
|
+ if (this.customerSourceList) {
|
|
|
|
|
+ this.model.orderInfo.customerSource = this.customerSourceList[0].id;
|
|
|
|
|
+ }
|
|
|
if (this.model.roomIds && this.model.roomIds.length > 0) {
|
|
if (this.model.roomIds && this.model.roomIds.length > 0) {
|
|
|
this.activeKey = this.model.roomIds[0].id;
|
|
this.activeKey = this.model.roomIds[0].id;
|
|
|
|
|
|