| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706 |
- <template>
- <a-spin :spinning="confirmLoading">
- <j-form-container :disabled="formDisabled">
- <a-form-model
- ref="form"
- :model="model"
- :rules="validatorRules"
- slot="detail"
- >
- <a-row>
- <div>
- <div style="display: flex; gap: 15px">
- <div style="width: 57%">
- <a-tabs
- hide-add
- type="editable-card"
- v-model="activeKey"
- :tabBarStyle="{ fontWeight: 600 }"
- @edit="editTabs"
- @tabClick="tabClick"
- >
- <a-tab-pane
- v-for="(room, aindex) in model.roomIds"
- :key="room.id"
- :tab="room.name"
- :closable="true"
- force-render
- >
- <div style="display: flex; justify-content: space-between">
- <h4
- style="
- color: rgba(255, 141, 26, 1);
- font-weight: 600;
- margin-top: 15px;
- "
- >
- 宾客信息
- </h4>
- </div>
- <a-divider />
- <!-- <a-col :span="8">
- <a-form-model-item
- label="姓名"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- :prop="`rooms[${index}].key1`"
- :rules="[
- {
- required: true,
- message: '请输入姓名!',
- trigger: 'change',
- },
- ]"
- >
- <a-auto-complete
- v-model="room.key1"
- placeholder="请输入姓名"
- @search="handleSearch"
- @select="(e) => handleSelectMember(room, e)"
- >
- <template slot="dataSource">
- <a-select-option
- v-for="item in result"
- :key="item"
- >{{ item }}</a-select-option
- >
- </template>
- </a-auto-complete>
- </a-form-model-item>
- </a-col> -->
- <a-col :span="8">
- <a-form-model-item
- label="姓名"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- :prop="`roomIds[${aindex}].key1`"
- :rules="[
- {
- required: true,
- message: '请输入姓名!',
- trigger: 'change',
- },
- ]"
- >
- <a-auto-complete
- v-model="room.key1"
- placeholder="请输入姓名"
- @search="handleSearch"
- @select="(e) => handleSelectMember(room, e)"
- >
- <template slot="dataSource">
- <a-select-option
- v-for="item in customerList"
- :key="item.id"
- >{{ item.name }}-{{ item.phone }}</a-select-option
- >
- </template>
- </a-auto-complete>
- </a-form-model-item>
- </a-col>
- <a-col :span="8">
- <a-form-model-item
- label="性别"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- :prop="`roomIds[${aindex}].key2`"
- :rules="[
- {
- required: true,
- message: '请选择性别!',
- trigger: 'change',
- },
- ]"
- >
- <a-select v-model="room.key2" placeholder="请选择性别">
- <a-select-option :value="1"> 男 </a-select-option>
- <a-select-option :value="2"> 女 </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="8">
- <a-form-model-item
- label="民族"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- :prop="`roomIds[${aindex}].key3`"
- :rules="[
- {
- required: true,
- message: '请选择民族!',
- trigger: 'change',
- },
- ]"
- >
- <a-select v-model="room.key3" placeholder="请选择民族">
- <a-select-option value="汉"> 汉 </a-select-option>
- <a-select-option value="回"> 回 </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="16">
- <a-form-model-item
- label="身份证号"
- :labelCol="{ xs: { span: 24 }, sm: { span: 5 } }"
- :wrapperCol="{
- xs: { span: 24 },
- sm: { span: 16 },
- }"
- :prop="`roomIds[${aindex}].key4`"
- :rules="[
- {
- required: true,
- message: '请输身份证号!',
- trigger: 'change',
- },
- ]"
- >
- <a-input
- v-model="room.key4"
- placeholder="请输身份证号"
- ></a-input>
- </a-form-model-item>
- </a-col>
- <a-col :span="8">
- <a-form-model-item
- label="手机号"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- :prop="`roomIds[${aindex}].key5`"
- :rules="[
- {
- required: true,
- message: '请输入手机号!',
- trigger: 'change',
- },
- ]"
- >
- <a-input
- v-model="room.key5"
- placeholder="请输入姓名"
- ></a-input>
- </a-form-model-item>
- </a-col>
- <a-col :span="24">
- <a-form-model-item
- label="联系地址"
- :labelCol="{ xs: { span: 24 }, sm: { span: 3 } }"
- :wrapperCol="{
- xs: { span: 24 },
- sm: { span: 16 },
- }"
- prop="key6"
- >
- <a-input
- v-model="room.key6"
- placeholder="请输入联系地址"
- ></a-input>
- </a-form-model-item>
- </a-col>
- <a-col :span="24">
- <div
- style="display: flex; justify-content: space-between"
- >
- <div></div>
- <div>
- <a-button type="link" @click="puls(room)">
- 添加同住
- </a-button>
- </div>
- </div>
- </a-col>
- <template v-for="(item, index) in room.livingCustomers2">
- <a-col :span="4">
- <a-form-model-item
- :wrapperCol="{
- xs: { span: 24 },
- sm: { span: 22 },
- }"
- :prop="`roomIds[${aindex}].livingCustomers2[${index}].customerName`"
- :rules="[
- {
- required: true,
- message: '请输入姓名!',
- trigger: 'change',
- },
- ]"
- >
- <a-input
- v-model="item.customerName"
- placeholder="姓名"
- ></a-input>
- </a-form-model-item>
- </a-col>
- <a-col :span="4">
- <a-form-model-item
- :wrapperCol="{
- xs: { span: 24 },
- sm: { span: 22 },
- }"
- :prop="`roomIds[${aindex}].livingCustomers2[${index}].gender`"
- >
- <a-select placeholder="性别" v-model="item.gender">
- <a-select-option :value="1"> 男 </a-select-option>
- <a-select-option :value="2"> 女 </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="4">
- <a-form-model-item
- :wrapperCol="{
- xs: { span: 24 },
- sm: { span: 22 },
- }"
- :prop="`roomIds[${aindex}].livingCustomers2[${index}].certType`"
- >
- <a-select placeholder="证件" v-model="item.certType">
- <a-select-option :value="1">
- 身份证
- </a-select-option>
- <a-select-option :value="2"> 护照 </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="6">
- <a-form-model-item
- :wrapperCol="{
- xs: { span: 24 },
- sm: { span: 23 },
- }"
- :prop="`roomIds[${aindex}].livingCustomers2[${index}].certNo`"
- :rules="[
- {
- required: true,
- message: '请输入证件号!',
- trigger: 'change',
- },
- ]"
- >
- <a-input
- v-model="item.certNo"
- placeholder="证件号"
- ></a-input>
- </a-form-model-item>
- </a-col>
- <a-col :span="6">
- <a-form-model-item
- :wrapperCol="{
- xs: { span: 24 },
- sm: { span: 24 },
- }"
- :prop="`roomIds[${aindex}].livingCustomers2[${index}].phone`"
- :rules="[
- {
- required: true,
- message: '请输入手机号!',
- trigger: 'change',
- },
- ]"
- >
- <a-input
- v-model="item.phone"
- placeholder="手机号"
- style="width: 120px"
- ></a-input>
- <a-icon
- type="minus-circle"
- style="color: #f56c6c"
- class="dynamic-delete-button"
- v-if="room.livingCustomers2.length > 0"
- @click="() => remove(room, index)"
- />
- </a-form-model-item>
- </a-col>
- </template>
- </a-tab-pane>
- <div slot="tabBarExtraContent">
- <a-button type="link" @click="pulsRoom()">
- 增加房间
- </a-button>
- </div>
- </a-tabs>
- <h4
- style="
- color: rgba(255, 141, 26, 1);
- font-weight: 600;
- margin-top: 20px;
- "
- >
- 入住信息
- </h4>
- <a-divider />
- <a-col :span="12">
- <a-form-model-item
- label="入住类型"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.bookingType"
- >
- <a-select
- placeholder="入住类型"
- v-model="model.orderInfo.bookingType"
- @change="bookingTypeChange"
- >
- <a-select-option :value="1"> 全天 </a-select-option>
- <a-select-option :value="2"> 钟点 </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="12">
- <a-form-model-item
- label="订单来源"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.customerSource"
- >
- <a-select
- placeholder="订单来源"
- v-model="model.orderInfo.customerSource"
- >
- <a-select-option
- :value="item.id"
- v-for="(item, index) in customerSourceList"
- :key="item.id"
- >
- {{ item.itemText }}
- </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="12" v-if="model.orderInfo.bookingType == 2">
- <a-form-model-item
- label="时长"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.hourRoomId"
- >
- <a-select
- placeholder="时长"
- v-model="model.orderInfo.hourRoomId"
- @change="hourRoomIdChange"
- >
- <a-select-option
- :value="item.id"
- v-for="(item, index) in hourRoomRuleList"
- :key="item.id"
- >
- {{ item.hourRoomName }}
- </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="12" v-else>
- <a-form-model-item
- label="天数"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.dayCount"
- >
- <a-input-number
- v-model="model.orderInfo.dayCount"
- placeholder="天数"
- :min="1"
- @change="dayCountChange"
- ></a-input-number
- >天
- </a-form-model-item>
- </a-col>
- <a-col :span="12">
- <a-form-model-item
- label="外部单号"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.outerOrdersNo"
- >
- <a-input
- v-model="model.orderInfo.outerOrdersNo"
- placeholder="外部单号"
- ></a-input>
- </a-form-model-item>
- </a-col>
- <a-col :span="12">
- <a-form-model-item
- label="入住时间"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.arrivalTime2"
- >
- <j-date
- placeholder="入住时间"
- v-model="model.orderInfo.arrivalTime2"
- style="width: 120px"
- :allowClear="false"
- :disabled-date="disabledDate"
- @change="arrivalTimeChange"
- />
- <a-time-picker
- style="width: 80px; margin-left: 2px"
- v-model="model.orderInfo.arrivalTimeSpan"
- :default-value="moment('12:00', 'HH:mm')"
- format="HH:mm"
- :allowClear="false"
- @change="arrivalTimeSpanChange"
- />
- </a-form-model-item>
- </a-col>
- <a-col :span="12">
- <a-form-model-item
- label="预离时间"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.dueOutTime2"
- >
- <j-date
- placeholder="预离时间"
- v-model="model.orderInfo.dueOutTime2"
- style="width: 120px"
- :allowClear="false"
- :disabled-date="disabledDate"
- :disabled="model.orderInfo.bookingType === 2"
- @change="arrivalTimeChange2"
- />
- <a-time-picker
- style="width: 80px; margin-left: 2px"
- v-model="model.orderInfo.dueOutTimeSpan"
- format="HH:mm"
- :allowClear="false"
- :disabled="model.orderInfo.bookingType === 2"
- />
- </a-form-model-item>
- </a-col>
- <a-col :span="12">
- <a-form-model-item
- label="宾客类型"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.customerType"
- >
- <a-select
- placeholder="宾客类型"
- v-model="model.orderInfo.customerType"
- >
- <a-select-option :value="1"> 散客 </a-select-option>
- <a-select-option :value="2"> 会员 </a-select-option>
- <a-select-option :value="3"> 协议单位 </a-select-option>
- <a-select-option :value="4"> 中介 </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="12" v-if="model.orderInfo.customerType === 2">
- <a-form-model-item
- label="会员"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.roomPriceSlnId"
- >
- <a-select
- placeholder="会员"
- option-label-prop="label"
- v-model="model.orderInfo.roomPriceSlnId"
- @change="roomPriceSlnIdChange"
- >
- <a-select-option
- :key="item.id"
- :value="item.id"
- :label="item.name"
- v-for="(item, index) in busMemberCardList"
- >
- {{ item.name }}-{{ item.gradeName }}-{{ item.balance }}
- </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="12">
- <a-form-model-item
- label="房价方案"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.roomPriceSlnId"
- >
- <a-select
- placeholder="房价方案"
- v-model="model.orderInfo.roomPriceSlnId"
- >
- <a-select-option value="会员价"> 会员价 </a-select-option>
- <a-select-option value="平日价"> 平日价 </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="12">
- <a-form-model-item
- label="销售员工"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.warranter"
- >
- <a-select
- placeholder="销售员工"
- v-model="model.orderInfo.warranter"
- >
- <a-select-option
- :value="item.id"
- v-for="item in warranterList"
- :key="item.id"
- >
- {{ item.name }}
- </a-select-option>
- </a-select>
- </a-form-model-item>
- </a-col>
- <a-col :span="12">
- <a-form-model-item
- label="早餐数量"
- :labelCol="labelCol"
- :wrapperCol="wrapperCol"
- prop="orderInfo.breakfastNum"
- >
- <a-input-number
- v-model="model.orderInfo.breakfastNum"
- placeholder="早餐数量"
- :min="0"
- ></a-input-number
- >份
- </a-form-model-item>
- </a-col>
- <a-col :span="24">
- <a-form-model-item
- label="订单备注"
- :labelCol="{ xs: { span: 24 }, sm: { span: 3 } }"
- :wrapperCol="{
- xs: { span: 24 },
- sm: { span: 15 },
- }"
- prop="orderInfo.remark"
- >
- <a-textarea
- v-model="model.orderInfo.remark"
- rows="4"
- placeholder="订单备注"
- />
- </a-form-model-item>
- </a-col>
- </div>
- <div style="width: 43%">
- <div
- style="
- display: flex;
- justify-content: space-between;
- align-items: center;
- "
- >
- <h4
- style="
- color: rgba(255, 141, 26, 1);
- font-weight: 600;
- margin-top: 15px;
- "
- >
- 财务信息
- </h4>
- <div>
- <a-switch v-model="depositSplit" />押金均摊记账到每个房间
- </div>
- </div>
- <a-divider />
- <a-table
- :columns="columns"
- :data-source="model.roomPrices"
- :pagination="false"
- rowKey="id"
- :scroll="{ y: 200, x: 500 }"
- >
- <template slot="prefPrice" slot-scope="text, record, index">
- <editable-cell
- :text="text"
- @change="onCellChange('prefPrice', index, $event)"
- />
- </template>
- </a-table>
- <div
- style="
- color: rgba(255, 87, 51, 1);
- font-weight: 600;
- text-align: right;
- "
- >
- 合计应收:{{ amount.toFixed(2) }}
- </div>
- <div
- style="
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-top: 30px;
- "
- >
- <!-- <h4
- style="
- color: rgba(255, 141, 26, 1);
- font-weight: 600;
- margin-top: 15px;
- "
- >
- 收款
- </h4> -->
- <a-tabs
- default-active-key="1"
- @change="paymentTabsChange"
- :tabBarStyle="{ fontWeight: 600 }"
- >
- <a-tab-pane key="1" tab="收款">
- <a-table
- :columns="columns2"
- :data-source="model.orderFees"
- :pagination="false"
- rowKey="id"
- :scroll="{ y: 160 }"
- >
- <template
- slot="subjectTypeLabel"
- slot-scope="text, record, index"
- >
- <div>
- <!-- <a-input
- style="margin: -5px 0"
- :value="text"
- @change="
- (e) => handleChange(e.target.value, index, 'subjectTypeLabel')
- "
- /> -->
- <a-select
- v-model="model.orderFees[index].subjectType"
- placeholder="费项"
- >
- <a-select-option :value="2">
- 房费
- </a-select-option>
- <a-select-option :value="1">
- 押金
- </a-select-option>
- </a-select>
- </div>
- </template>
- <template
- slot="payType"
- slot-scope="text, record, index"
- >
- <div>
- <a-select
- v-model="model.orderFees[index].payType"
- placeholder="收款方式"
- >
- <a-select-option
- :value="item.id"
- v-for="item in payTypeList"
- :key="item.id"
- >
- {{ item.name }}
- </a-select-option>
- </a-select>
- </div>
- </template>
- <template slot="money" slot-scope="text, record, index">
- <div>
- <a-input-number
- v-model="record.money"
- :min="1"
- @change="presetNumChange($event, record)"
- />
- </div>
- </template>
- </a-table>
- <div
- style="color: rgba(255, 141, 26, 1); font-weight: 200"
- >
- <!-- <p style="margin-bottom: 2px">
- 实收:支付宝600.00元;微信292.00元;现金1000.00元;会员卡400元。
- </p> -->
- <p style="margin-bottom: 2px">
- 合计实款:{{ orderFeesAmout.toFixed(2) }}
- </p>
- </div>
- <div
- style="color: rgba(255, 87, 51, 1); font-weight: 200"
- >
- <p v-if="orderFeesArrearsAmout < 0">
- 欠费:{{ orderFeesArrearsAmout.toFixed(2) }}元
- </p>
- </div>
- </a-tab-pane>
- <a-tab-pane key="2" tab="信用卡预授权">
- <a-row
- v-for="(item, index) in payPalModel.list"
- :key="index"
- >
- <a-col :span="9">
- <a-form-model-item
- :labelCol="{
- xs: { span: 24 },
- sm: { span: 5 },
- }"
- :wrapperCol="{
- xs: { span: 24 },
- sm: { span: 22 },
- }"
- prop="key1"
- >
- <a-input
- v-model="item.key1"
- placeholder="银行卡号"
- ></a-input>
- </a-form-model-item>
- </a-col>
- <a-col :span="9">
- <a-form-model-item
- :labelCol="{
- xs: { span: 24 },
- sm: { span: 5 },
- }"
- :wrapperCol="{
- xs: { span: 24 },
- sm: { span: 22 },
- }"
- prop="key2"
- >
- <a-input
- v-model="item.key2"
- placeholder="预授权号"
- :min="1"
- ></a-input>
- </a-form-model-item>
- </a-col>
- <a-col :span="6">
- <a-form-model-item
- :labelCol="{
- xs: { span: 24 },
- sm: { span: 5 },
- }"
- :wrapperCol="{
- xs: { span: 24 },
- sm: { span: 22 },
- }"
- prop="key3"
- >
- <a-input-number
- v-model="item.key3"
- placeholder="金额"
- :min="1"
- ></a-input-number>
- </a-form-model-item>
- </a-col>
- </a-row>
- </a-tab-pane>
- <div slot="tabBarExtraContent">
- <a-switch v-model="paymentSplit" />押金、房费分开收款
- <a-button type="link" @click="pulsFee">
- 添加费项
- </a-button>
- </div>
- </a-tabs>
- </div>
- </div>
- </div>
- </div>
- </a-row>
- </a-form-model>
- </j-form-container>
- <select-room-form-modal
- ref="modalSelectRoomForm"
- @ok="modalFormOk"
- ></select-room-form-modal>
- </a-spin>
- </template>
- <script>
- import { httpAction, getAction, postAction } from "@/api/manage";
- import { validateDuplicateValue } from "@/utils/util";
- import moment from "moment";
- import EditableCell from "./EditableCell.vue";
- import SelectRoomFormModal from "./SelectRoomFormModal.vue";
- const columns = [
- // {
- // title: "",
- // dataIndex: "key",
- // width: 20,
- // },
- {
- title: "房间号",
- dataIndex: "roomNo",
- width: 70,
- },
- {
- title: "房型",
- dataIndex: "layoutName",
- width: 80,
- },
- {
- title: "门市价",
- dataIndex: "marketPrice",
- width: 60,
- },
- {
- title: "优惠价",
- dataIndex: "prefPrice",
- width: 120,
- scopedSlots: { customRender: "prefPrice" },
- },
- {
- title: "天数",
- dataIndex: "day",
- width: 60,
- },
- {
- title: "房费",
- dataIndex: "roomFee",
- width: 80,
- },
- {
- title: "押金",
- dataIndex: "deposit",
- // width: 60,
- },
- ];
- const columns2 = [
- {
- title: "费项",
- dataIndex: "subjectType",
- width: "25%",
- scopedSlots: { customRender: "subjectTypeLabel" },
- },
- {
- title: "收款方式",
- dataIndex: "payType",
- width: "25%",
- scopedSlots: { customRender: "payType" },
- },
- {
- title: "应缴",
- dataIndex: "receivable",
- width: "25%",
- },
- {
- title: "实收",
- dataIndex: "money",
- width: "25%",
- 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 endDate = new Date(date.setDate(date.getDate() + 1));
- export default {
- name: "BillRoomForm",
- components: { EditableCell, SelectRoomFormModal },
- props: {
- //表单禁用
- disabled: {
- type: Boolean,
- default: false,
- required: false,
- },
- },
- data() {
- return {
- payPalModel: { list: [{ key1: "", key2: "", key3: "" }] },
- depositSplit: true,
- paymentSplit: true,
- activeKey: "",
- newTabIndex: 0,
- selectedRowKeys: [],
- // data,
- columns,
- // data2,
- columns2,
- wakeList: [{}],
- // model: { rooms: panes, data: data, data2: data2 },
- modelDefault: {},
- model: {
- // data: data,
- orderInfo: {
- rooms: panes,
- data: data,
- data2: data2,
- bookingOrdersType: 1,
- arrivalTime2: moment(new Date()).format("YYYY-MM-DD"),
- dueOutTime2: moment(endDate).format("YYYY-MM-DD"),
- arrivalTimeSpan: moment("18:00", "HH:mm"),
- dueOutTimeSpan: moment("12:00", "HH:mm"),
- bookingType: 1,
- dayCount: 1,
- warrantType: 1,
- hourRoomId: "",
- breakfastNum: 0,
- vipCustomerId: "",
- },
- roomIds: [],
- livingRoomDayPrices: [],
- roomPrices: [],
- orderFees: [],
- },
- labelCol: {
- xs: { span: 24 },
- sm: { span: 7 },
- },
- wrapperCol: {
- xs: { span: 24 },
- sm: { span: 16 },
- },
- confirmLoading: false,
- validatorRules: {
- "orderInfo.bookingType": [
- { required: true, message: "请选择入住类型!" },
- ],
- "orderInfo.arrivalTime2": [
- { required: true, message: "请选择入住时间!" },
- ],
- "orderInfo.dueOutTime2": [
- { required: true, message: "请选择预离时间!" },
- ],
- "orderInfo.customerSource": [
- { required: true, message: "请选择客人来源!" },
- ],
- "orderInfo.bookingDicWay": [
- { required: true, message: "请选择预定方式!" },
- ],
- "orderInfo.customerType": [
- { required: true, message: "请选择客人类型!" },
- ],
- contactName: [{ required: true, message: "请输入联系人!" }],
- phone: [{ required: true, message: "请输入电话!" }],
- },
- url: {
- add: "business/busRoomBookingOrders/living",
- edit: "business/busRoomBookingOrders/living",
- queryById: "/business/busMeetingRoom/queryById",
- },
- result: [],
- selectIndex: 0,
- customerSourceList: [],
- bookingdicWayList: [],
- warranterList: [],
- hourRoomRuleList: [],
- canUserRooms: [],
- customerList: [],
- oldcustomerList: [],
- depositRule: {},
- roomLayoutList: [],
- amount: 0,
- roomIdsIndex: 0,
- busMemberCardList: [],
- payTypeList: [],
- };
- },
- computed: {
- formDisabled() {
- return this.disabled;
- },
- orderFeesAmout() {
- var sum = 0;
- this.model.orderFees.forEach((item) => {
- sum += item.money;
- });
- return sum;
- },
- orderFeesArrearsAmout() {
- return this.orderFeesAmout - this.amount;
- },
- },
- created() {
- var _info = JSON.parse(localStorage.getItem("storeInfo"));
- if (_info) {
- this.model.hotelId = _info.id;
- }
- //备份model原始值
- this.modelDefault = JSON.parse(JSON.stringify(this.model));
- getAction("/business/busDictItem/list", {
- hotelId: _info.id,
- dictId: "1639538915239743490",
- }).then((res) => {
- if (res.success) {
- this.customerSourceList = res.result.records;
- }
- });
- getAction("/business/busDictItem/list", {
- hotelId: _info.id,
- dictId: "1639544187093995521",
- }).then((res) => {
- if (res.success) {
- this.bookingdicWayList = res.result.records;
- }
- });
- getAction("/business/busSalesPerson/list", {
- hotelId: _info.id,
- pageNo: 1,
- pageSize: 100,
- }).then((res) => {
- if (res.success) {
- this.warranterList = res.result.records;
- }
- });
- getAction("/rooms/cesHourRoomRule/list", {
- pageNo: 1,
- pageSize: 100,
- }).then((res) => {
- if (res.success) {
- this.hourRoomRuleList = res.result.records;
- }
- });
- getAction("/bus/busCustomer/list", {}).then((res) => {
- if (res.success) {
- this.customerList = res.result.records;
- this.oldcustomerList = JSON.parse(JSON.stringify(this.customerList));
- }
- });
- getAction("/business/busDepositSetting/queryByHotelId", {
- hotelId: _info.id,
- }).then((res) => {
- if (res.success) {
- this.depositRule = res.result;
- }
- });
- getAction("/business/busMemberCard/list", {
- pageSize: 99999,
- pageNo: 1,
- }).then((res) => {
- if (res.success) {
- this.busMemberCardList = res.result.records;
- }
- });
- postAction("/rooms/cesAllDayPriceRule/fetch", { hotelId: _info.id }).then(
- (res) => {
- if (res.success) {
- if (
- res.result &&
- res.result.cesAllDayPriceRule &&
- res.result.cesAllDayPriceRule.leaveTime
- ) {
- this.model.orderInfo.dueOutTimeSpan = moment(
- res.result.cesAllDayPriceRule.leaveTime,
- "HH:mm"
- );
- }
- }
- this.loadRooms();
- }
- );
- // this.getcesRoomLayout();
- },
- methods: {
- presetNumChange(e, record) {
- console.log(e, record);
- },
- async getcesRoomLayout() {
- await getAction("/rooms/cesRoomLayout/list", {
- pageSize: 99999,
- pageNo: 1,
- }).then((res) => {
- if (res.success) {
- this.roomLayoutList = res.result.records;
- console.log("roomLayoutList");
- }
- });
- },
- async getbusRoomPayType() {
- await getAction("/business/busRoomPayType/list", {
- pageSize: 99999,
- pageNo: 1,
- }).then((res) => {
- if (res.success) {
- this.payTypeList = res.result.records;
- }
- });
- },
- roomPriceSlnIdChange(e) {
- this.model.orderInfo.vipCustomerId = e;
- },
- loadRooms() {
- // this.model.roomPrices = [];
- // this.model.roomIds = [];
- this.amount = 0;
- getAction("/rooms/cesRooms/can-user-rooms", {
- startOf:
- this.model.orderInfo.arrivalTime2 +
- " " +
- moment(this.model.orderInfo.arrivalTimeSpan).format("HH:mm"),
- endOf:
- this.model.orderInfo.dueOutTime2 +
- " " +
- moment(this.model.orderInfo.dueOutTimeSpan).format("HH:mm"),
- bookingType: this.model.orderInfo.bookingType,
- hourRoomRuleId: this.model.orderInfo.hourRoomId,
- cancelLayout: true,
- }).then((res) => {
- if (res.success) {
- res.result.forEach((t) => {
- // t.layout = Object.assign({}, t.layout, {
- // presetNum: 0,
- // oldTags: t.layout.canUseCount,
- // });
- t.buildingRooms.forEach((b) => {
- b.floorRooms.forEach((f) => {
- this.$set(f, "check", 0);
- });
- });
- });
- this.canUserRooms = res.result;
- }
- });
- },
- hourRoomIdChange() {
- if (this.model.orderInfo.bookingType === 2) {
- var find = this.hourRoomRuleList.find(
- (t) => t.id === this.model.orderInfo.hourRoomId
- );
- if (find) {
- var mDate = moment(
- this.model.orderInfo.arrivalTime2 +
- " " +
- moment(this.model.orderInfo.arrivalTimeSpan).format("HH:mm")
- ).add(find.afterOpenRoom, "minutes");
- this.model.orderInfo.dueOutTime2 = mDate.format("YYYY-MM-DD");
- this.model.orderInfo.dueOutTimeSpan = moment(
- mDate.format("HH:mm"),
- "HH:mm"
- );
- }
- }
- this.loadRooms();
- },
- bookingTypeChange(e) {
- if (this.model.orderInfo.bookingType == 1) {
- this.model.orderInfo.hourRoomId = "";
- } else {
- var hourRoomRule = this.hourRoomRuleList[0];
- if (hourRoomRule) {
- this.model.orderInfo.hourRoomId = hourRoomRule.id;
- }
- }
- if (this.model.orderInfo.bookingType === 2) {
- var find = this.hourRoomRuleList.find(
- (t) => t.id === this.model.orderInfo.hourRoomId
- );
- if (find) {
- var mDate = moment(
- this.model.orderInfo.arrivalTime2 +
- " " +
- moment(this.model.orderInfo.arrivalTimeSpan).format("HH:mm")
- ).add(find.afterOpenRoom, "minutes");
- this.model.orderInfo.dueOutTime2 = mDate.format("YYYY-MM-DD");
- this.model.orderInfo.dueOutTimeSpan = moment(
- mDate.format("HH:mm"),
- "HH:mm"
- );
- }
- } else if (this.model.orderInfo.bookingType === 1) {
- var mDate = moment(this.model.orderInfo.arrivalTime2).add(1, "days");
- this.model.orderInfo.dueOutTime2 = mDate.format("YYYY-MM-DD");
- }
- this.loadRooms();
- },
- dayCountChange(e) {
- this.model.orderInfo.dueOutTime2 = moment(
- this.model.orderInfo.arrivalTime2
- )
- .add(e, "days")
- .format("YYYY-MM-DD");
- this.loadRooms();
- },
- disabledDate(current) {
- return current && current < moment().add(-1, "days").endOf("day");
- },
- arrivalTimeChange(e) {
- var v = parseInt(
- (new Date(this.model.orderInfo.dueOutTime2).getTime() -
- new Date(this.model.orderInfo.arrivalTime2).getTime()) /
- (1000 * 60 * 60 * 24)
- );
- if (v <= 0) {
- this.model.orderInfo.dueOutTime2 = moment(
- this.model.orderInfo.arrivalTime2
- )
- .add(1, "days")
- .format("YYYY-MM-DD");
- }
- v = parseInt(
- (new Date(this.model.orderInfo.dueOutTime2).getTime() -
- new Date(this.model.orderInfo.arrivalTime2).getTime()) /
- (1000 * 60 * 60 * 24)
- );
- this.model.orderInfo.dayCount = Math.abs(v);
- this.loadRooms();
- },
- arrivalTimeChange2(e) {
- var v = parseInt(
- (new Date(this.model.orderInfo.dueOutTime2).getTime() -
- new Date(this.model.orderInfo.arrivalTime2).getTime()) /
- (1000 * 60 * 60 * 24)
- );
- if (v <= 0) {
- this.model.orderInfo.arrivalTime2 = moment(
- this.model.orderInfo.dueOutTime2
- )
- .add(-1, "days")
- .format("YYYY-MM-DD");
- }
- v = parseInt(
- (new Date(this.model.orderInfo.dueOutTime2).getTime() -
- new Date(this.model.orderInfo.arrivalTime2).getTime()) /
- (1000 * 60 * 60 * 24)
- );
- this.model.orderInfo.dayCount = Math.abs(v);
- this.loadRooms();
- },
- arrivalTimeSpanChange(m, time) {
- console.log(time);
- console.log(moment(m).format("HH:mm"));
- if (this.model.orderInfo.bookingType === 2) {
- var find = this.hourRoomRuleList.find(
- (t) => t.id === this.model.orderInfo.hourRoomId
- );
- if (find) {
- var mDate = moment(
- this.model.orderInfo.arrivalTime2 +
- " " +
- moment(this.model.orderInfo.arrivalTimeSpan).format("HH:mm")
- ).add(find.afterOpenRoom, "minutes");
- this.model.orderInfo.dueOutTime2 = mDate.format("YYYY-MM-DD");
- this.model.orderInfo.dueOutTimeSpan = moment(
- mDate.format("HH:mm"),
- "HH:mm"
- );
- }
- }
- this.loadRooms();
- },
- handleSearch(value) {
- let result;
- if (!value) {
- result = this.oldcustomerList;
- } else {
- result = this.oldcustomerList.filter((t) => t.name.includes(value));
- }
- this.customerList = result;
- },
- handleSelectMember(room, 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 = "火星";
- this.$set(room, "customerId", find.id);
- },
- pulsRoom() {
- this.$refs.modalSelectRoomForm.add(this.canUserRooms);
- this.$refs.modalSelectRoomForm.title = "选择房间";
- this.$refs.modalSelectRoomForm.disableSubmit = false;
- },
- paymentTabsChange(e) {},
- pulsFee() {
- var payType = this.payTypeList[0];
- this.model.orderFees.push({
- subjectType: 2,
- subjectTypeLabel: "预收房费",
- payType: payType ? payType.id : "",
- payTypeLabel: payType ? payType.name : "",
- receivable: 0,
- money: 0,
- roomId: this.model.orderFees[0].roomId,
- });
- },
- onCellChange(key, dataIndex, value) {
- const dataSource = [...this.model.roomPrices];
- const target = dataSource[dataIndex];
- console.log("target", target);
- if (target) {
- target[key] = value;
- target.roomFee = value * target.day;
- target.deposit = this.compuleDeposit(value);
- this.model.roomPrices = dataSource;
- }
- var sum = 0;
- this.model.roomPrices.forEach(function (item) {
- sum += item.roomFee + item.deposit;
- });
- this.amount = sum;
- console.log("this.model.roomPrices", this.model.roomPrices);
- },
- // handleChange(value, index, column) {
- // const newData = [...this.data2];
- // const target = newData[index];
- // if (target) {
- // target[column] = value;
- // this.data2 = newData;
- // }
- // },
- onEdit(targetKey, action) {
- this[action](targetKey);
- },
- add() {
- console.log(1);
- const panes = this.panes;
- const activeKey = `newTab${this.newTabIndex++}`;
- panes.push({
- title: `New Tab ${activeKey}`,
- content: "",
- key: activeKey,
- });
- this.panes = panes;
- this.activeKey = activeKey;
- },
- onSelectChange(selectedRowKeys, selectionRows) {
- this.selectedRowKeys = selectedRowKeys;
- this.selectionRows = selectionRows;
- },
- handleAdd() {},
- puls(room) {
- if (!room.livingCustomers2) {
- this.$set(room, "livingCustomers2", [
- { gender: 1, certType: 1, roomId: room.id },
- ]);
- } else {
- room.livingCustomers2.push({ gender: 1, certType: 1, roomId: room.id });
- }
- },
- remove(room, index) {
- room.livingCustomers2.splice(index, 1);
- },
- moment,
- onChange(e) {
- console.log(e);
- },
- add2(roomLive) {
- this.modelDefault = Object.assign({}, this.modelDefault, {
- roomIds: [roomLive],
- });
- this.edit(this.modelDefault);
- },
- editTabs(e) {
- console.log("editTabs", e);
- var index = this.model.roomIds.findIndex((t) => t.id == e);
- this.model.roomIds.splice(index, 1);
- },
- tabClick(e) {
- console.log("tabClick", e);
- var index = this.model.roomIds.findIndex((t) => t.id == e);
- this.roomIdsIndex = index;
- },
- modalFormOk(e) {
- console.log("e", e);
- this.modelDefault = Object.assign({}, this.modelDefault, {
- roomIds: e,
- });
- this.edit(this.modelDefault);
- },
- compuleDeposit(prefPrice) {
- var deposit = 0;
- if (this.depositRule) {
- if (this.depositRule.depositType === 1) {
- deposit = prefPrice * this.depositRule.depositMultiple;
- } else if (this.depositRule.depositType === 2) {
- deposit = prefPrice + this.depositRule.depositMultiple;
- } else if (this.depositRule.depositType === 3) {
- deposit = this.depositRule.depositMoney;
- }
- }
- return deposit;
- },
- getSubjectTypeLabel(value) {
- switch (value) {
- case 1:
- return "押金";
- case 2:
- return "预收房费";
- default:
- return "";
- }
- },
- addList(roomLiveList, key) {
- console.log("roomLiveList", roomLiveList);
- this.modelDefault = Object.assign({}, this.modelDefault, {
- roomIds: roomLiveList,
- });
- this.modelDefault.orderInfo.bookingOrdersType = key;
- this.edit(this.modelDefault);
- },
- async edit(record) {
- console.log("edit");
- this.visible = true;
- this.model = Object.assign({}, record);
- console.log("this.model", this.model);
- if (this.roomLayoutList.length === 0) {
- await this.getcesRoomLayout();
- }
- if (this.payTypeList == 0) {
- await this.getbusRoomPayType();
- }
- if (this.model.roomIds && this.model.roomIds.length > 0) {
- this.activeKey = this.model.roomIds[0].id;
- var roomPrices = [];
- var orderFees = [];
- this.model.roomIds.forEach((item) => {
- var roomLayout = this.roomLayoutList.find(
- (t) => (t.id = item.layoutId)
- );
- roomPrices.push({
- roomNo: item.name,
- roomId: item.id,
- marketPrice: item.marketPrice,
- prefPrice: item.marketPrice,
- day: this.model.orderInfo.dayCount,
- roomFee: item.marketPrice * this.model.orderInfo.dayCount,
- deposit: this.compuleDeposit(item.marketPrice),
- layoutName: roomLayout ? roomLayout.name : "",
- layoutId: item.layoutId,
- });
- var payType = this.payTypeList[0];
- orderFees.push({
- subjectType: 2,
- subjectTypeLabel: "预收房费",
- payType: payType ? payType.id : "",
- payTypeLabel: payType ? payType.name : "",
- receivable: item.marketPrice,
- money: item.marketPrice,
- roomId: item.id,
- });
- var deposit = this.compuleDeposit(item.marketPrice);
- if (deposit > 0) {
- orderFees.push({
- subjectType: 1,
- subjectTypeLabel: "押金",
- payType: payType ? payType.id : "",
- payTypeLabel: payType ? payType.name : "",
- receivable: deposit,
- money: deposit,
- roomId: item.id,
- });
- }
- });
- this.model.roomPrices = roomPrices;
- var sum = 0;
- this.model.roomPrices.forEach(function (item) {
- sum += item.roomFee + item.deposit;
- });
- this.amount = sum;
- this.model.orderFees = orderFees;
- console.log("this.model", this.model);
- }
- // console.log("this.amount2", JSON.stringify(this.amount));
- },
- submitForm() {
- const that = this;
- that.model.livingRoomDayPrices = [];
- console.log("that.model.roomPrices", that.model.roomPrices);
- that.model.roomPrices.forEach((t) => {
- for (var b = 0; b < that.model.orderInfo.dayCount; b++) {
- var dayTime = moment(this.model.orderInfo.arrivalTime2)
- .add(b, "days")
- .format("YYYY-MM-DD");
- that.model.livingRoomDayPrices.push({
- livingType: 1,
- dayTime: dayTime,
- price: t.prefPrice,
- roomLayoutId: t.layoutId,
- roomId: t.roomId,
- });
- }
- });
- that.model.roomIds.forEach((t) => {
- t.roomId = t.id;
- var obj = {
- certNo: t.key4,
- certType: 1,
- customerId: t.customerId,
- customerName: t.key1,
- gender: t.key2,
- phone: t.key5,
- roomId: t.id,
- };
- if (!t.livingCustomers2 || t.livingCustomers2.length == 0) {
- t.livingCustomers = [obj];
- } else {
- t.livingCustomers = [...[obj], ...t.livingCustomers2];
- }
- });
- console.log("this.model", this.model);
- if (that.model.roomIds.length <= 0) {
- that.$message.warning("请先添加房间");
- return;
- }
- // 触发表单验证
- this.$refs.form.validate((valid, err) => {
- if (valid) {
- this.model.orderInfo.arrivalTime =
- this.model.orderInfo.arrivalTime2 +
- " " +
- moment(this.model.orderInfo.arrivalTimeSpan).format("HH:mm");
- this.model.orderInfo.dueOutTime =
- this.model.orderInfo.dueOutTime2 +
- " " +
- moment(this.model.orderInfo.dueOutTimeSpan).format("HH:mm");
- that.confirmLoading = true;
- let httpurl = "";
- let method = "";
- if (!this.model.id) {
- httpurl += this.url.add;
- method = "post";
- } else {
- httpurl += this.url.edit;
- method = "put";
- }
- // if (this.model.orderInfo.bookingOrdersId) {
- // httpurl = "/business/busRoomBookingOrders/add-batch";
- // method = "post";
- // }
- httpAction(httpurl, this.model, method)
- .then((res) => {
- if (res.success) {
- that.$message.success(res.message);
- that.$emit("ok", res.result);
- } else {
- if (res.message.indexOf("与预约时间有冲突") >= 0) {
- that.$confirm({
- title: "提示",
- content: res.message + "是否确定入住?",
- onOk: function () {
- that.model.confirm = true;
- httpAction(httpurl, that.model, method)
- .then((res) => {
- if (res.success) {
- that.$message.success(res.message);
- that.$emit("ok", res.result);
- } else {
- if (res.message.indexOf("与预约时间有冲突") >= 0) {
- } else {
- that.$message.warning(res.message);
- }
- }
- })
- .finally(() => {
- that.confirmLoading = false;
- });
- },
- });
- } else {
- that.$message.warning(res.message);
- }
- }
- })
- .finally(() => {
- that.confirmLoading = false;
- });
- } else {
- console.log(err);
- var keys = Object.keys(err);
- console.log("keys", keys);
- var some = keys.some(
- (t) => t.indexOf("roomIds[" + this.roomIdsIndex + "]") >= 0
- );
- if (!some) {
- this.$message.warning("请输入其他房间必填信息");
- }
- }
- });
- },
- },
- };
- </script>
- <style scoped>
- /deep/ .ant-btn-link {
- flex: 1;
- color: rgba(255, 141, 26, 1) !important;
- }
- /deep/ .ant-btn-background-ghost {
- color: rgba(0, 0, 0, 0.45) !important;
- }
- .menu {
- display: flex;
- flex-direction: column;
- flex: 1;
- color: #fff;
- margin-top: 12px;
- }
- .dynamic-delete-button {
- cursor: pointer;
- position: relative;
- /* top: 4px; */
- margin-left: 5px;
- font-size: 18px;
- color: #1890ff;
- transition: all 0.3s;
- }
- .dynamic-delete-button:hover {
- color: #777;
- }
- .dynamic-delete-button[disabled] {
- cursor: not-allowed;
- opacity: 0.5;
- }
- /deep/.ant-table-thead > tr > th {
- background: rgba(42, 130, 228, 1);
- color: #ffffff;
- }
- /deep/.ant-divider-horizontal {
- margin: 12px 0 !important;
- }
- /deep/ .ant-table-tbody .ant-table-row td {
- padding-top: 5px;
- padding-bottom: 5px;
- }
- /deep/.ant-table-thead > tr > th,
- .ant-table-tbody > tr > td {
- padding: 5px 5px !important;
- overflow-wrap: break-word;
- }
- /deep/ .ant-form-item {
- margin-bottom: 5px !important;
- }
- /deep/ .ant-tabs-nav .ant-tabs-tab-active {
- color: rgba(255, 141, 26, 1);
- }
- /deep/.ant-tabs-nav .ant-tabs-tab:hover {
- color: rgba(255, 141, 26, 1);
- }
- /deep/.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active {
- color: rgba(255, 141, 26, 1);
- }
- </style>
|