You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1439 lines
59 KiB
Vue
1439 lines
59 KiB
Vue
|
|
<template>
|
|
<el-dialog :close-on-click-modal="false" v-dialogDrag title="开单" :visible.sync="billsDialogVisible" width="80%" :before-close="handleClose">
|
|
<div class="bills">
|
|
<el-form :inline="true" :model="vipFrom" ref="form" style="height:70vh;overflow: auto;">
|
|
<div class="vipheader">
|
|
<el-form-item label="是否会员:" :label-width="formLabelWidth">
|
|
<el-checkbox v-model="vipFrom.cashNumber" @change="openPhone">会员</el-checkbox>
|
|
</el-form-item>
|
|
<el-form-item label="姓名:" :label-width="formLabelWidth">
|
|
<span>{{vipFrom.memberName}}</span>
|
|
</el-form-item>
|
|
<el-form-item v-show="!vipFrom.cashNumber" label="手机号:" :label-width="formLabelWidth">
|
|
<span style="margin-right:23px">{{vipFrom.mobilePhone}}</span>
|
|
</el-form-item>
|
|
<el-form-item v-show="vipFrom.cashNumber" label="手机号:" :label-width="formLabelWidth">
|
|
<span v-show="!phoneInputShow" @click="openPhone">{{vipFrom.mobilePhone}}</span>
|
|
<el-input maxlength="11" oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" ref="input" @change="endPhone" @blur="endPhone" @keydown.enter="endPhone" v-show="phoneInputShow" style="width:120px" size="mini" v-model="vipFrom.mobilePhone"></el-input>
|
|
</el-form-item>
|
|
<el-form-item v-show="vipFrom.cashNumber&&vipFrom.sex" label="性别:" :label-width="formLabelWidth">
|
|
<div style="width:55px">
|
|
<span>{{vipFrom.sex}}</span>
|
|
</div>
|
|
</el-form-item>
|
|
<el-form-item v-show="vipFrom.num" label="排队号:" :label-width="formLabelWidth">
|
|
<span>{{vipFrom.num}}</span>
|
|
</el-form-item>
|
|
<br />
|
|
<div v-show="vipFrom.cashNumber">
|
|
<el-form-item :label-width="formLabelWidth">
|
|
<el-collapse style="width:200px;margin-left:25px" value="1">
|
|
<el-collapse-item title="折扣卡:" name="1">
|
|
<div style="max-height:150px;overflow:auto">
|
|
<div v-for="(card,index) in cardlist" :key="index" style="display:flex;justify-content: flex-start;">
|
|
<div :title="card.rechargeTypeName+'--剩余可用金额 ¥ '+card.cardOver" style="max-width:150px;display: inline-block;cursor: pointer; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
|
|
{{card.rechargeTypeName}} -- </div>
|
|
<div style="margin-left:5px;"> ¥{{card.cardOver}}</div>
|
|
</div>
|
|
</div>
|
|
</el-collapse-item>
|
|
</el-collapse>
|
|
</el-form-item>
|
|
<el-form-item :label-width="formLabelWidth">
|
|
<el-collapse style="width:200px;padding-left:5px" value="2">
|
|
<el-collapse-item title="项目包:" name="2">
|
|
<div style="max-height:150px;overflow:auto">
|
|
<div v-for="(project,index1) in projectlist" :key="index1" style="display:flex;justify-content: flex-start;">
|
|
<div :title="project.courseProjectName+'--剩余'+project.courseConsumeCount+'次'" style="max-width:150px;display: inline-block;cursor: pointer; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">{{project.courseProjectName}} </div>
|
|
<div style="margin-left:5px;"> {{project.courseConsumeCount}} 次</div>
|
|
</div>
|
|
</div>
|
|
</el-collapse-item>
|
|
</el-collapse>
|
|
</el-form-item>
|
|
<!-- <el-form-item :label-width="formLabelWidth">
|
|
<el-collapse style="width:160px;padding-left:0px" value="3">
|
|
<el-collapse-item title="优惠卷:" name="3">
|
|
<div style="max-height:150px;overflow:auto">
|
|
<div v-for="(coupon,index1) in couponlist" :key="index1">{{coupon.couponName}}</div>
|
|
</div>
|
|
</el-collapse-item>
|
|
</el-collapse>
|
|
</el-form-item> -->
|
|
<el-form-item label="积分:" :label-width="formLabelWidth">
|
|
<span>{{vipFrom.integral}}</span>
|
|
</el-form-item>
|
|
</div>
|
|
</div>
|
|
<!-- *************************项目 ***************************** -->
|
|
<el-row>
|
|
<el-col class="prolistdiv" v-for="(item,index) in projectTable" :key="index">
|
|
<el-form-item label="项目:" label-width="60px" :show-overflow-tooltip='true'>
|
|
<div :title="item.projectName" style="cursor: pointer;width:100px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;" @click="editProject(proIndex =index,proDialogVisible=true,projectText='修改')">{{item.projectName==null?'未选项目':item.projectName}}
|
|
</div>
|
|
</el-form-item>
|
|
<el-form-item label="单价:" label-width="60px">
|
|
<div style="min-width:60px;min-height:28px;cursor: pointer;" v-show="!item.priceShow" @click="openPrice(item,index)">{{item.transactionPrice}}</div>
|
|
<el-input type="number" :ref="'priceIndex'+index" v-show="item.priceShow" style="width:80px;height:30px;" size="mini" v-model="item.transactionPrice" @blur="endPriceNo(item,index)" @keydown.enter="endPriceNo(item,index)">
|
|
</el-input>
|
|
</el-form-item>
|
|
<el-form-item label="次数:" label-width="60px">
|
|
<a @click="openNumber(item,index)" style="cursor: pointer;">
|
|
<span style="margin-left:5px;margin-right:5px;" v-show="!item.numberShow">{{item.numberTimes}}</span>
|
|
<el-input oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" :ref="'numberInput'+index" autofocus="true" minlength="1" maxlength="2" v-show="item.numberShow" @change="endNumber(item)" @blur="endNumber(item)" @keydown.enter="endNumber(item)" v-model="item.numberTimes" style="width:60px;margin:0px 3px;" size="mini"></el-input>次
|
|
</a>
|
|
</el-form-item>
|
|
<el-form-item label="美容师:" label-width="60px">
|
|
<div style="min-width:60px;min-height:28px;cursor: pointer;" @click="openbea(item,index,beaDialogVisible=true)">{{item.largeOneNumber}}-{{item.serviceLargeOneStaffName}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="美发师:" label-width="60px">
|
|
<div style="min-width:60px;min-height:28px;cursor: pointer;" @click="openhai(item,index,haiDialogVisible=true)">{{item.zhonggongOneNumber}}-{{item.serviceZhonggongOneStaffName}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="技师:" label-width="60px">
|
|
<div style="min-width:60px;min-height:28px;cursor: pointer;" @click="opentec(item,index,tecDialogVisible=true)">{{item.technicianOneNumber}}-{{item.serviceTechnicianOneStaffName}}</div>
|
|
</el-form-item>
|
|
<el-form-item label="助理:" label-width="60px">
|
|
<div style="min-width:60px;min-height:28px;cursor: pointer;" @click="openaid(item,index,aidDialogVisible=true)">{{item.smallOneNumber}}-{{item.serviceSmallOneStaffName}}</div>
|
|
</el-form-item>
|
|
<el-tooltip effect="dark" content="删除" placement="top-end">
|
|
<i @click="delProject(item,index)" class="el-icon-delete text-red prolistdiv-del"></i>
|
|
</el-tooltip>
|
|
</el-col>
|
|
<el-col class="prolistdiv add">
|
|
<i @click="addOpen( addDialogVisible=true)" class="el-icon-plus text-blue"></i>
|
|
</el-col>
|
|
</el-row>
|
|
|
|
<div style="position: absolute;bottom:10px;right:30px;padding-bottom:10px">
|
|
<el-button style="margin-right:5px" size="mini" type="primary" @click="handleClose" plain>取 消</el-button>
|
|
<el-button size="mini" type="primary" :loading="loading" @click="childClick(loading=true)">确 定</el-button>
|
|
</div>
|
|
</el-form>
|
|
<!-- ************************************添加项目************************* -->
|
|
<el-dialog :close-on-click-modal="false" :modal-append-to-body="false" :modal="false" title="添加" :visible.sync="addDialogVisible" :before-close="handleCloses">
|
|
<el-form :model="addForm" ref="addForm">
|
|
<el-form-item label="项目:" prop="project" :label-width="formLabelWidths">
|
|
<el-button v-show="addProShow" size="mini" type="primary" plain @click="openStoreProject(addproDialogVisible = true,openProject=0)">门店项目</el-button>
|
|
<span v-show="vipFrom.cashNumber==1">
|
|
<el-button v-show="addProShow" size="mini" type="primary" plain @click="openVipProject(addproDialogVisible = true,openProject=1)">卡包项目</el-button>
|
|
</span>
|
|
<span class="addspan" @click=" addproDialogVisible=true">{{addForm.projectName}}</span>
|
|
</el-form-item>
|
|
<el-form-item label="单价:" prop="project" :label-width="formLabelWidths">
|
|
<el-input type="number" v-model="addForm.transactionPrice" style="width:180px" @blur="endPrice">
|
|
</el-input>
|
|
</el-form-item>
|
|
<el-form-item label="次数:" prop="project" :label-width="formLabelWidths">
|
|
<el-input oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" type="number" v-model="addForm.numberTimes" maxlength="3" minlength="1" style="width:180px"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="美容师:" prop="project" :label-width="formLabelWidths">
|
|
<el-button v-show="addbeaShow" size="mini" type="primary" plain @click="addbeaDialogVisible = true">选择</el-button>
|
|
<span class="addspan" @click="addbeaDialogVisible=true">{{addForm.largeOneNumber}}-{{addForm.serviceLargeOneStaffName}}</span>
|
|
</el-form-item>
|
|
<el-form-item label="美发师:" prop="project" :label-width="formLabelWidths">
|
|
<el-button v-show="addHaiShow" size="mini" type="primary" plain @click="addhaiDialogVisible = true">选择</el-button>
|
|
<span class="addspan" @click="addhaiDialogVisible=true">{{addForm.zhonggongOneNumber}}-{{addForm.serviceZhonggongOneStaffName}}</span>
|
|
</el-form-item>
|
|
<el-form-item label="技师:" prop="project" :label-width="formLabelWidths">
|
|
<el-button v-show="addtecShow" size="mini" type="primary" plain @click="addtecDialogVisible = true">选择</el-button>
|
|
<span class="addspan" @click="addtecDialogVisible=true">{{addForm.technicianOneNumber}}-{{addForm.serviceTechnicianOneStaffName}}</span>
|
|
</el-form-item>
|
|
<el-form-item label="助理:" prop="project" :label-width="formLabelWidths">
|
|
<el-button v-show="addaidShow" size="mini" type="primary" plain @click="addaidDialogVisible = true">选择</el-button>
|
|
<span class="addspan" @click="addaidDialogVisible=true">{{addForm.smallOneNumber}}-{{addForm.serviceSmallOneStaffName}}</span>
|
|
</el-form-item>
|
|
</el-form>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button size="mini" type="primary" @click="handleCloses">取 消</el-button>
|
|
<el-button size="mini" type="primary" @click="addconfirm(addDialogVisible = false)">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
<!-- /////////////////////////////// 添加项目弹窗 开始 ///////////////////////////// -->
|
|
<el-dialog :close-on-click-modal="false" :modal-append-to-body="false" :modal="false" title="项目" :visible.sync="addproDialogVisible" width="40%">
|
|
<input class="input" type="primary" v-model="addproinput" placeholder="搜索项目" />
|
|
<el-table :data="addproTable" @current-change="addproradios" @row-dblclick="addproconfirm(addproDialogVisible = false)" max-height="550">
|
|
<el-table-column label="选择" width="80">
|
|
<template slot-scope="scope">
|
|
<el-radio v-model="addproradio" :label="scope.row.projectId" @change.native="(scope.row)"></el-radio>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column v-if="openProject==0" align="center" min-width="100" prop="projectNum" label="编号"></el-table-column>
|
|
<el-table-column align="center" min-width="160" prop="projectName" label="名称"></el-table-column>
|
|
<el-table-column v-if="openProject==1" align="center" min-width="100" sortable="" prop="courseConsumeCount" label="可用次数"></el-table-column>
|
|
</el-table>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button size="mini" type="primary" plain @click="addproDialogVisible = false">取 消</el-button>
|
|
<el-button size="mini" type="primary" @click="addproconfirm(addproDialogVisible = false)">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
<!-- ******************************** 美发师修改 ********************************** -->
|
|
<el-dialog :close-on-click-modal="false" :modal-append-to-body="false" :modal="false" title="美发师" :visible.sync="haiDialogVisible" width="40%">
|
|
<input class="input" type="primary" v-model="haiinput" placeholder="搜索" />
|
|
<el-table :data="haiTable" @row-dblclick="haiconfirm(haiDialogVisible = false)" @current-change="hairadio">
|
|
<el-table-column label="选择" width="80">
|
|
<template slot-scope="scope">
|
|
<el-radio v-model="radiohai" :label="scope.row.zhonggongOneNumber" @change.native="scope.row"></el-radio>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" width="100" prop="zhonggongOneNumber" label="水牌号"></el-table-column>
|
|
<el-table-column align="center" min-width="160" prop="serviceZhonggongOneStaffName" label="名称"></el-table-column>
|
|
</el-table>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button size="mini" type="primary" plain @click="haiDialogVisible = false">取 消</el-button>
|
|
<el-button size="mini" type="primary" @click="haiconfirm(haiDialogVisible = false)">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<!-- ******************************** 美发师增加 ********************************** -->
|
|
<el-dialog :close-on-click-modal="false" :modal-append-to-body="false" :modal="false" title="美发师" :visible.sync="addhaiDialogVisible" width="40%">
|
|
<input class="input" type="primary" v-model="addhaiinput" placeholder="搜索" />
|
|
<el-table :data="addhaiTable" @row-dblclick="addhaiconfirm(addhaiDialogVisible = false)" @current-change="addhairadio">
|
|
<el-table-column label="选择" width="80">
|
|
<template slot-scope="scope">
|
|
<el-radio v-model="addradiohai" :label="scope.row.zhonggongOneNumber" @change.native="scope.row"></el-radio>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" width="100" prop="zhonggongOneNumber" label="水牌号"></el-table-column>
|
|
<el-table-column align="center" min-width="160" prop="serviceZhonggongOneStaffName" label="名称"></el-table-column>
|
|
</el-table>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button size="mini" type="primary" plain @click="addhaiDialogVisible = false">取 消</el-button>
|
|
<el-button size="mini" type="primary" @click="addhaiconfirm(addhaiDialogVisible = false)">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<!-- ************************************美容师修改 *************************************** -->
|
|
<el-dialog :close-on-click-modal="false" :modal-append-to-body="false" :modal="false" title="美发师" :visible.sync="beaDialogVisible" width="40%">
|
|
<input class="input" type="primary" v-model="beainput" placeholder="搜索" />
|
|
<el-table :data="beaTable" @row-dblclick="beaconfirm(beaDialogVisible = false)" @current-change="bearadio">
|
|
<el-table-column label="选择" width="80">
|
|
<template slot-scope="scope">
|
|
<el-radio v-model="radiobea" :label="scope.row.largeOneNumber" @change.native="scope.row"></el-radio>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" width="100" prop="largeOneNumber" label="水牌号"></el-table-column>
|
|
<el-table-column align="center" min-width="160" prop="serviceLargeOneStaffName" label="名称"></el-table-column>
|
|
</el-table>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button size="mini" type="primary" plain @click="beaDialogVisible = false">取 消</el-button>
|
|
<el-button size="mini" type="primary" @click="beaconfirm(beaDialogVisible = false)">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<!-- ******************************** 美容师增加 ********************************** -->
|
|
<el-dialog :close-on-click-modal="false" :modal-append-to-body="false" :modal="false" title="美容师" :visible.sync="addbeaDialogVisible" width="40%">
|
|
<input class="input" type="primary" v-model="addbeainput" placeholder="搜索" />
|
|
<el-table :data="addbeaTable" @row-dblclick="addbeaconfirm(addbeaDialogVisible = false)" @current-change="addbearadio">
|
|
<el-table-column label="选择" width="80">
|
|
<template slot-scope="scope">
|
|
<el-radio v-model="addradiobea" :label="scope.row.largeOneNumber" @change.native="scope.row"></el-radio>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" width="100" prop="largeOneNumber" label="水牌号"></el-table-column>
|
|
<el-table-column align="center" min-width="160" prop="serviceLargeOneStaffName" label="名称"></el-table-column>
|
|
</el-table>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button size="mini" type="primary" plain @click="addbeaDialogVisible = false">取 消</el-button>
|
|
<el-button size="mini" type="primary" @click="addbeaconfirm(addbeaDialogVisible = false)">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<!-- ************************************助理修改 *************************************** -->
|
|
<el-dialog :close-on-click-modal="false" :modal-append-to-body="false" :modal="false" title="助理" :visible.sync="aidDialogVisible" width="40%">
|
|
<input class="input" type="primary" v-model="aidinput" placeholder="搜索" />
|
|
<el-table :data="aidTable" @row-dblclick="aidconfirm(aidDialogVisible = false)" @current-change="aidradio">
|
|
<el-table-column label="选择" width="80">
|
|
<template slot-scope="scope">
|
|
<el-radio v-model="radioaid" :label="scope.row.smallOneNumber" @change.native="scope.row"></el-radio>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" width="100" prop="smallOneNumber" label="水牌号"></el-table-column>
|
|
<el-table-column align="center" min-width="160" prop="serviceSmallOneStaffName" label="名称"></el-table-column>
|
|
</el-table>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button size="mini" type="primary" plain @click="aidDialogVisible = false">取 消</el-button>
|
|
<el-button size="mini" type="primary" @click="aidconfirm(aidDialogVisible = false)">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<!-- ******************************** 助理增加 ********************************** -->
|
|
<el-dialog :close-on-click-modal="false" :modal-append-to-body="false" :modal="false" title="助理" :visible.sync="addaidDialogVisible" width="40%">
|
|
<input class="input" type="primary" v-model="addaidinput" placeholder="搜索" />
|
|
<el-table :data="addaidTable" @row-dblclick="addaidconfirm(addaidDialogVisible = false)" @current-change="addaidradio">
|
|
<el-table-column label="选择" width="80">
|
|
<template slot-scope="scope">
|
|
<el-radio v-model="addradioaid" :label="scope.row.smallOneNumber" @change.native="scope.row"></el-radio>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" width="100" prop="smallOneNumber" label="水牌号"></el-table-column>
|
|
<el-table-column align="center" min-width="160" prop="serviceSmallOneStaffName" label="名称"></el-table-column>
|
|
</el-table>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button size="mini" type="primary" plain @click="addaidDialogVisible = false">取 消</el-button>
|
|
<el-button size="mini" type="primary" @click="addaidconfirm(addaidDialogVisible = false)">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<!-- ************************************技师 修改 *************************************** -->
|
|
<el-dialog :close-on-click-modal="false" :modal-append-to-body="false" :modal="false" title="技师" :visible.sync="tecDialogVisible" width="40%">
|
|
<input class="input" type="primary" v-model="tecinput" placeholder="搜索" />
|
|
<el-table :data="tecTable" @row-dblclick="tecconfirm(tecDialogVisible = false)" @current-change="tecradio">
|
|
<el-table-column label="选择" width="80">
|
|
<template slot-scope="scope">
|
|
<el-radio v-model="radiotec" :label="scope.row.technicianOneNumber" @change.native="scope.row"></el-radio>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" width="100" prop="technicianOneNumber" label="水牌号"></el-table-column>
|
|
<el-table-column align="center" min-width="160" prop="serviceTechnicianOneStaffName" label="名称"></el-table-column>
|
|
</el-table>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button size="mini" type="primary" plain @click="tecDialogVisible = false">取 消</el-button>
|
|
<el-button size="mini" type="primary" @click="tecconfirm(tecDialogVisible = false)">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<!-- ******************************** 技师 增加 ********************************** -->
|
|
<el-dialog :close-on-click-modal="false" :modal-append-to-body="false" :modal="false" title="技师" :visible.sync="addtecDialogVisible" width="40%">
|
|
<input class="input" type="primary" v-model="addtecinput" placeholder="搜索" />
|
|
<el-table :data="addtecTable" @row-dblclick="addtecconfirm(addtecDialogVisible = false)" @current-change="addtecradio">
|
|
<el-table-column label="选择" width="80">
|
|
<template slot-scope="scope">
|
|
<el-radio v-model="addradiotec" :label="scope.row.technicianOneNumber" @change.native="scope.row"></el-radio>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" width="100" prop="technicianOneNumber" label="水牌号"></el-table-column>
|
|
<el-table-column align="center" min-width="160" prop="serviceTechnicianOneStaffName" label="名称"></el-table-column>
|
|
</el-table>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button size="mini" type="primary" plain @click="addtecDialogVisible = false">取 消</el-button>
|
|
<el-button size="mini" type="primary" @click="addtecconfirm(addtecDialogVisible = false)">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<project ref="project" @projectData="projectData"></project>
|
|
<staff ref="staff" @staffData="staffData"></staff>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
selectList,
|
|
storeMemberOne,
|
|
recAccountList,
|
|
recAccountCashList,
|
|
couAccountList,
|
|
addCashList,
|
|
proOne,
|
|
} from "../../../api/eashier.js";
|
|
import { propage } from "../../../api/storeManage.js";
|
|
import { partten } from "../../../../partten/index.js";
|
|
import project from "@/components/project/index";
|
|
import staff from "@/components/staff/index";
|
|
export default {
|
|
name: "bills",
|
|
components: { project, staff },
|
|
data() {
|
|
return {
|
|
billsDialogVisible: false,
|
|
projectTable: [],
|
|
sessionStorageData: {}, //门店参数集合
|
|
projectText: "添加",
|
|
formLabelWidths: "70px",
|
|
phoneInputShow: false,
|
|
/*添加项目弹窗*/
|
|
addDialogVisible: false,
|
|
/**项目弹窗 */
|
|
proDialogVisible: false,
|
|
addproDialogVisible: false,
|
|
//*美发师弹窗 */
|
|
haiDialogVisible: false,
|
|
addhaiDialogVisible: false,
|
|
//*美容师弹窗 */
|
|
beaDialogVisible: false,
|
|
addbeaDialogVisible: false,
|
|
//*助理弹窗 */
|
|
aidDialogVisible: false,
|
|
addaidDialogVisible: false,
|
|
//*技师弹窗 */
|
|
tecDialogVisible: false,
|
|
addtecDialogVisible: false,
|
|
/*修改数字show*/
|
|
addShow: false,
|
|
number: 1,
|
|
/* 项目搜索*/
|
|
currentSelectItem: {},
|
|
proinput: "",
|
|
addproinput: "",
|
|
addProShow: true,
|
|
formLabelWidth: "90px",
|
|
addProRadio: "",
|
|
addproradio: "",
|
|
/* 美发师修改*/
|
|
radiohai: "",
|
|
haiinput: "",
|
|
haiRadio: "",
|
|
/*美发师增加*/
|
|
addHaiShow: true,
|
|
addhaiinput: "",
|
|
addradiohai: "",
|
|
|
|
addhairadios: "",
|
|
/* 美容师修改*/
|
|
radiobea: "",
|
|
beainput: "",
|
|
beaRadio: "",
|
|
/*美容师增加*/
|
|
addbeaShow: true,
|
|
addbeainput: "",
|
|
addradiobea: "",
|
|
addbearadios: "",
|
|
/* 助理修改*/
|
|
radioaid: "",
|
|
aidinput: "",
|
|
aidRadio: "",
|
|
/*助理增加*/
|
|
addaidShow: true,
|
|
addaidinput: "",
|
|
addradioaid: "",
|
|
addaidradios: "",
|
|
/* 技师修改*/
|
|
radiotec: "",
|
|
tecinput: "",
|
|
tecRadio: "",
|
|
/*技师增加*/
|
|
addtecShow: true,
|
|
addtecinput: "",
|
|
addradiotec: "",
|
|
addtecradios: "",
|
|
newNumber: "",
|
|
loading: false,
|
|
vipFrom: {
|
|
mobilePhone: "",
|
|
cashNumber: false,
|
|
},
|
|
cardlist: [],
|
|
projectlist: [],
|
|
couponlist: [],
|
|
addForm: {
|
|
numberTimes: 1,
|
|
transactionPrice: 0,
|
|
},
|
|
addList: [],
|
|
// 项目修改table
|
|
proList: [],
|
|
// 项目添加table
|
|
addproList: [],
|
|
//美发师修改table
|
|
haiList: [],
|
|
//美发师添加table
|
|
addhaiList: [],
|
|
//美容师修改table
|
|
beaList: [],
|
|
//美容师添加table
|
|
addbeaList: [],
|
|
//助理师修改table
|
|
aidList: [],
|
|
//助理添加table
|
|
addaidList: [],
|
|
//技师师修改table
|
|
tecList: [],
|
|
//技师添加table
|
|
addtecList: [],
|
|
proIndex: "",
|
|
haiIndex: "",
|
|
beaIndex: "",
|
|
aidIndex: "",
|
|
tecIndex: "",
|
|
addproIndex: "",
|
|
addbeaIndex: "",
|
|
addaidIndex: "",
|
|
addtecIndex: "",
|
|
openProject: 0,
|
|
};
|
|
},
|
|
methods: {
|
|
handleCloses() {
|
|
this.addForm = {};
|
|
this.addDialogVisible = false;
|
|
this.$refs.addForm.clearValidate();
|
|
},
|
|
//关闭弹窗前的回调方法
|
|
handleClose() {
|
|
this.vipFrom = {};
|
|
this.projectTable = [];
|
|
this.billsDialogVisible = false;
|
|
this.$refs.form.clearValidate();
|
|
},
|
|
//组件传值
|
|
show(parameValue) {
|
|
this.sessionStorageData = JSON.parse(
|
|
sessionStorage.getItem("sessionStorageData")
|
|
);
|
|
//开单页面的所有查询接口
|
|
var page = {
|
|
pageNum: 1,
|
|
pageSize: 1000,
|
|
state: 1,
|
|
directConsumption: 1,
|
|
storeIds: JSON.parse(sessionStorage.getItem("storeIdLists")),
|
|
};
|
|
propage(page).then((res) => {
|
|
if (res.code == "000000") {
|
|
var project = [];
|
|
res.pageInfo.list.forEach((item) => {
|
|
if (item.directConsumption == 1) {
|
|
var items = {
|
|
projectId: item.id,
|
|
projectName: item.projectName,
|
|
projectNum: item.projectNum,
|
|
minumumTimes: item.minumumTimes,
|
|
price: item.price,
|
|
minumumPrice: item.minumumPrice,
|
|
priceMember: item.priceMember,
|
|
minumumPriceMember: item.minumumPriceMember,
|
|
topPriceMember: item.topPriceMember,
|
|
topPrice: item.topPrice,
|
|
achievementLarge: item.achievementLarge,
|
|
achievementZhonggong: item.achievementZhonggong,
|
|
achievementTechnician: item.achievementTechnician,
|
|
commissionTechnician: item.commissionTechnician,
|
|
achievementSmall: item.achievementSmall,
|
|
commissionLarge: item.commissionLarge,
|
|
commissionZhonggong: item.commissionZhonggong,
|
|
commissionSmall: item.commissionSmall,
|
|
cardAchievementLarge: item.cardAchievementLarge,
|
|
cardAchievementZhonggong: item.cardAchievementZhonggong,
|
|
cardAchievementTechnician: item.cardAchievementTechnician,
|
|
cardAchievementSmall: item.cardAchievementSmall,
|
|
cardCommissionLarge: item.cardCommissionLarge,
|
|
cardCommissionZhonggong: item.cardCommissionZhonggong,
|
|
cardCommissionTechnician: item.cardCommissionTechnician,
|
|
cardCommissionSmall: item.cardCommissionSmall,
|
|
noDiscount: item.noDiscount,
|
|
numberTimes: 1,
|
|
priceShow: false,
|
|
numberShow: false,
|
|
};
|
|
project.push(items);
|
|
}
|
|
});
|
|
|
|
this.addproList = project;
|
|
this.proList = project;
|
|
selectList({ id: "" }).then((res) => {
|
|
if (res.code == "000000") {
|
|
var haiList = [];
|
|
var beaList = [];
|
|
var aidList = [];
|
|
var tecList = [];
|
|
res.rows.forEach((item) => {
|
|
var item1 = {
|
|
zhonggongOneNumber: item.brandNumber,
|
|
serviceZhonggongOneStaffId: item.id,
|
|
serviceZhonggongOneStaffName: item.staffName,
|
|
serviceZhonggongOneIdentityCard: item.identityCard,
|
|
};
|
|
haiList.push(item1);
|
|
var item2 = {
|
|
technicianOneNumber: item.brandNumber,
|
|
serviceTechnicianOneStaffId: item.id,
|
|
serviceTechnicianOneStaffName: item.staffName,
|
|
serviceTechnicianOneIdentityCard: item.identityCard,
|
|
};
|
|
tecList.push(item2);
|
|
var item3 = {
|
|
smallOneNumber: item.brandNumber,
|
|
serviceSmallOneStaffId: item.id,
|
|
serviceSmallOneStaffName: item.staffName,
|
|
serviceSmallOneIdentityCard: item.identityCard,
|
|
};
|
|
aidList.push(item3);
|
|
//console.log("item", item);
|
|
var item5 = {
|
|
largeOneNumber: item.brandNumber,
|
|
serviceLargeOneStaffId: item.id,
|
|
serviceLargeOneStaffName: item.staffName,
|
|
serviceLargeOneIdentityCard: item.identityCard,
|
|
};
|
|
beaList.push(item5);
|
|
});
|
|
this.haiList = haiList;
|
|
this.beaList = beaList;
|
|
this.aidList = aidList;
|
|
this.tecList = tecList;
|
|
|
|
this.addhaiList = haiList;
|
|
this.addbeaList = beaList;
|
|
this.addaidList = aidList;
|
|
this.addtecList = tecList;
|
|
} else {
|
|
}
|
|
});
|
|
this.billsDialogVisible = true;
|
|
} else {
|
|
this.$alert(res.message, "提示", {
|
|
confirmButtonText: "确定",
|
|
confirmButtonClass: "confirmbtnFalses",
|
|
type: "warning",
|
|
center: true,
|
|
callback: (action) => {},
|
|
});
|
|
}
|
|
});
|
|
|
|
if (parameValue.staffList.length > 0) {
|
|
parameValue.brandNumber = parameValue.staffList[0].brandNumber;
|
|
}
|
|
//选择单号传来的内容
|
|
if (parameValue.isMake == 0) {
|
|
} else {
|
|
var mobilePhone = null;
|
|
if (parameValue.phone == undefined) {
|
|
mobilePhone = parameValue.mobilePhone;
|
|
this.vipFrom.memberName = parameValue.memberName;
|
|
this.vipFrom.mobilePhone = parameValue.mobilePhone;
|
|
this.vipFrom.orderId = parameValue.orderId;
|
|
} else {
|
|
if (parameValue.name == "") {
|
|
this.vipFrom.memberName = "散客";
|
|
} else {
|
|
this.vipFrom.memberName = parameValue.name;
|
|
}
|
|
this.vipFrom.mobilePhone = parameValue.phone;
|
|
this.vipFrom.num = parameValue.num;
|
|
mobilePhone = parameValue.phone;
|
|
}
|
|
|
|
storeMemberOne({
|
|
mobilePhone: mobilePhone,
|
|
storeId: sessionStorage.getItem("parentId"),
|
|
}).then((res) => {
|
|
//console.log(res);
|
|
if (res.code == "000000") {
|
|
this.vipFrom.cashNumber = true;
|
|
if (res.data.sex == 1) {
|
|
res.data.sex = "男";
|
|
} else {
|
|
res.data.sex = "女";
|
|
}
|
|
this.vipFrom.sex = res.data.sex;
|
|
this.vipFrom.integral = res.data.integral;
|
|
this.vipFrom.memberId = res.data.id;
|
|
|
|
var ids = { storeId: res.data.storeId, memberId: res.data.id };
|
|
recAccountCashList(ids).then((res) => {
|
|
var cardlist = [];
|
|
res.rows.forEach((item) => {
|
|
item.cardOver =
|
|
item.cardConsumeMoney * 1 + item.giftConsumeMoney * 1;
|
|
cardlist.push(item);
|
|
});
|
|
this.cardlist = cardlist;
|
|
});
|
|
couAccountList(ids).then((res) => {
|
|
this.projectlist = res.rows;
|
|
});
|
|
} else {
|
|
this.vipFrom.cashNumber = false;
|
|
this.$message.warning({ message: res.message });
|
|
}
|
|
console.log(parameValue);
|
|
parameValue.projectList.forEach((item) => {
|
|
if (item.id) {
|
|
if (this.vipFrom.cashNumber == true) {
|
|
item.transactionPrice = item.priceMember;
|
|
} else {
|
|
item.transactionPrice = item.price;
|
|
}
|
|
var items = {
|
|
projectId: item.id,
|
|
projectName: item.projectName,
|
|
projectNum: item.projectNum,
|
|
minumumTimes: item.minumumTimes,
|
|
price: item.price,
|
|
transactionPrice: item.transactionPrice,
|
|
minumumPrice: item.minumumPrice,
|
|
priceMember: item.priceMember,
|
|
minumumPriceMember: item.minumumPriceMember,
|
|
topPriceMember: item.topPriceMember,
|
|
topPrice: item.topPrice,
|
|
achievementLarge: item.achievementLarge,
|
|
achievementZhonggong: item.achievementZhonggong,
|
|
achievementTechnician: item.achievementTechnician,
|
|
commissionTechnician: item.commissionTechnician,
|
|
achievementSmall: item.achievementSmall,
|
|
commissionLarge: item.commissionLarge,
|
|
commissionZhonggong: item.commissionZhonggong,
|
|
commissionSmall: item.commissionSmall,
|
|
cardAchievementLarge: item.cardAchievementLarge,
|
|
cardAchievementZhonggong: item.cardAchievementZhonggong,
|
|
cardAchievementTechnician: item.cardAchievementTechnician,
|
|
cardAchievementSmall: item.cardAchievementSmall,
|
|
cardCommissionLarge: item.cardCommissionLarge,
|
|
cardCommissionZhonggong: item.cardCommissionZhonggong,
|
|
cardCommissionTechnician: item.cardCommissionTechnician,
|
|
cardCommissionSmall: item.cardCommissionSmall,
|
|
noDiscount: item.noDiscount,
|
|
numberTimes: 1,
|
|
priceShow: false,
|
|
numberShow: false,
|
|
};
|
|
if (parameValue.courseAccountId != undefined) {
|
|
items.courseAccountId = parameValue.courseAccountId;
|
|
} else {
|
|
items.courseAccountId = item.courseAccountId;
|
|
}
|
|
this.projectTable.push(items);
|
|
}
|
|
});
|
|
switch (parameValue.job) {
|
|
case 5:
|
|
this.projectTable[0].largeOneNumber = parameValue.brandNumber;
|
|
this.projectTable[0].serviceLargeOneStaffName =
|
|
parameValue.staffName;
|
|
this.projectTable[0].serviceLargeOneStaffId = parameValue.staffId;
|
|
this.projectTable[0].serviceLargeOneIdentityCard =
|
|
parameValue.staffItyCard;
|
|
break;
|
|
case 2:
|
|
this.projectTable[0].technicianOneNumber =
|
|
parameValue.brandNumber;
|
|
this.projectTable[0].serviceTechnicianOneStaffName =
|
|
parameValue.staffName;
|
|
this.projectTable[0].serviceTechnicianOneStaffId =
|
|
parameValue.staffId;
|
|
this.projectTable[0].serviceTechnicianOneIdentityCard =
|
|
parameValue.staffItyCard;
|
|
|
|
break;
|
|
case 3:
|
|
this.projectTable[0].smallOneNumber = parameValue.brandNumber;
|
|
this.projectTable[0].serviceSmallOneStaffName =
|
|
parameValue.staffName;
|
|
this.projectTable[0].serviceSmallOneStaffId = parameValue.staffId;
|
|
this.projectTable[0].serviceSmallOneIdentityCard =
|
|
parameValue.staffItyCard;
|
|
break;
|
|
case 1:
|
|
this.projectTable[0].zhonggongOneNumber = parameValue.brandNumber;
|
|
this.projectTable[0].serviceZhonggongOneStaffName =
|
|
parameValue.staffName;
|
|
this.projectTable[0].serviceZhonggongOneStaffId =
|
|
parameValue.staffId;
|
|
this.projectTable[0].serviceZhonggongOneIdentityCard =
|
|
parameValue.staffItyCard;
|
|
|
|
break;
|
|
|
|
default:
|
|
this.projectTable[0].largeOneNumber = parameValue.brandNumber;
|
|
this.projectTable[0].serviceLargeOneStaffName =
|
|
parameValue.staffName;
|
|
this.projectTable[0].serviceLargeOneStaffId = parameValue.staffId;
|
|
this.projectTable[0].serviceLargeOneIdentityCard =
|
|
parameValue.staffItyCard;
|
|
break;
|
|
}
|
|
});
|
|
}
|
|
},
|
|
staffData() {},
|
|
addOpen() {
|
|
this.addForm = { numberTimes: 1, transactionPrice: 0 };
|
|
this.addProShow = true;
|
|
this.addbeaShow = true;
|
|
this.addhaiShow = true;
|
|
this.addaidShow = true;
|
|
this.addtecShow = true;
|
|
},
|
|
|
|
childClick() {
|
|
this.$emit("childByValue", this.vipFrom);
|
|
var projectTable = [];
|
|
this.projectTable.forEach((item) => {
|
|
//console.log(item);
|
|
item = Object.assign(item, this.vipFrom);
|
|
item.isAddition = 0;
|
|
if (item.cashNumber == true) {
|
|
item.cashNumber = 1;
|
|
} else {
|
|
item.cashNumber = 0;
|
|
}
|
|
delete item.billsDialogVisible;
|
|
delete item.numberShow;
|
|
delete item.priceShow;
|
|
delete item.sex;
|
|
delete item.phone;
|
|
delete item.projectNum;
|
|
delete item.integral;
|
|
projectTable.push(item);
|
|
});
|
|
var list = [];
|
|
var list1 = [];
|
|
for (let i in this.projectTable) {
|
|
if (this.projectTable[i].numberTimes * 1 > 1) {
|
|
for (let j = 0; j < this.projectTable[i].numberTimes * 1; j++) {
|
|
list.push(this.projectTable[i]);
|
|
}
|
|
} else {
|
|
list1.push(this.projectTable[i]);
|
|
}
|
|
}
|
|
list.forEach((item) => {
|
|
item.numberTimes = 1;
|
|
});
|
|
var lists = [...list, ...list1];
|
|
|
|
addCashList(lists).then((res) => {
|
|
if (res.code == "000000") {
|
|
this.$message.success({ message: res.message });
|
|
} else {
|
|
this.$alert(res.message, "提示", {
|
|
confirmButtonText: "确定",
|
|
confirmButtonClass: "confirmbtnFalses",
|
|
type: "warning",
|
|
center: true,
|
|
callback: (action) => {},
|
|
});
|
|
}
|
|
this.loading = false;
|
|
});
|
|
},
|
|
//修改手机号
|
|
openPhone() {
|
|
this.phoneInputShow = true;
|
|
this.$nextTick(() => {
|
|
this.$refs.input.focus();
|
|
});
|
|
this.projectTable[0].transactionPrice = this.projectTable[0].price;
|
|
},
|
|
//手机号查询
|
|
endPhone() {
|
|
var phones = partten.phoneNum;
|
|
if (!phones.test(this.vipFrom.mobilePhone)) {
|
|
this.$message.info({ message: "请输入正确的手机号 ! " });
|
|
} else {
|
|
this.phoneInputShow = false;
|
|
storeMemberOne({
|
|
mobilePhone: this.vipFrom.mobilePhone,
|
|
storeId: sessionStorage.getItem("parentId"),
|
|
}).then((res) => {
|
|
//console.log(res);
|
|
if (res.code == "000000") {
|
|
this.vipFrom.memberName = res.data.memberName;
|
|
this.projectTable[0].transactionPrice =
|
|
this.projectTable[0].priceMember;
|
|
if (res.data.sex == 1) {
|
|
res.data.sex = "男";
|
|
} else {
|
|
res.data.sex = "女";
|
|
}
|
|
this.vipFrom.sex = res.data.sex;
|
|
this.vipFrom.memberId = res.data.id;
|
|
this.vipFrom.integral = res.data.integral;
|
|
this.vipFrom.card = res.data.card;
|
|
var ids = { storeId: res.data.storeId, memberId: res.data.id };
|
|
recAccountCashList(ids).then((res) => {
|
|
//console.log("充值卡", res);
|
|
var cardlist = [];
|
|
res.rows.forEach((item) => {
|
|
item.cardOver =
|
|
item.cardConsumeMoney * 1 + item.giftConsumeMoney * 1;
|
|
cardlist.push(item);
|
|
});
|
|
this.cardlist = cardlist;
|
|
});
|
|
couAccountList(ids).then((res) => {
|
|
//console.log("疗程", res);
|
|
this.projectlist = res.rows;
|
|
});
|
|
} else {
|
|
this.vipFrom.cashNumber = 0;
|
|
this.vipFrom.memberId = null;
|
|
this.$alert(res.message, "提示", {
|
|
confirmButtonText: "确定",
|
|
confirmButtonClass: "confirmbtnFalses",
|
|
type: "warning",
|
|
center: true,
|
|
callback: (action) => {},
|
|
});
|
|
}
|
|
});
|
|
}
|
|
},
|
|
addconfirm() {
|
|
if (this.vipFrom.cashNumber == true) {
|
|
this.addForm.transactionPrice = this.addForm.priceMember;
|
|
} else {
|
|
this.addForm.transactionPrice = this.addForm.price;
|
|
}
|
|
if (this.addForm.numberTimes > 0) {
|
|
} else {
|
|
this.addForm.numberTimes = 1;
|
|
}
|
|
console.log(this.addForm);
|
|
this.projectTable.push(this.addForm);
|
|
},
|
|
// ****************项目单价修改/******************************* */
|
|
openPrice(item, index) {
|
|
let form = { ...item };
|
|
form.priceShow = true;
|
|
let projectTable = [...this.projectTable];
|
|
projectTable[index] = form;
|
|
this.projectTable = [];
|
|
this.projectTable = projectTable;
|
|
let number = "priceIndex" + index;
|
|
this.$nextTick(() => {
|
|
this.$refs["priceIndex" + index][0].focus();
|
|
});
|
|
},
|
|
endPriceNo(item, index) {
|
|
if (this.sessionStorageData.minimum == true) {
|
|
if (this.vipFrom.cashNumber == false) {
|
|
//console.log(this.vipFrom.cashNumber);
|
|
if (item.topPrice >= item.transactionPrice * 1 >= item.minumumPrice) {
|
|
item.priceShow = false;
|
|
} else {
|
|
this.$message.error({
|
|
message:
|
|
"价格不能低于" + item.minumumPrice + "高于" + item.topPrice,
|
|
});
|
|
}
|
|
} else {
|
|
if (
|
|
item.topPriceMember >=
|
|
item.transactionPrice * 1 >=
|
|
item.minumumPriceMember
|
|
) {
|
|
item.priceShow = false;
|
|
} else {
|
|
this.$message.error({
|
|
message:
|
|
"价格不能低于" +
|
|
item.minumumPriceMember +
|
|
"高于" +
|
|
item.topPriceMember,
|
|
});
|
|
}
|
|
}
|
|
} else {
|
|
item.priceShow = false;
|
|
}
|
|
},
|
|
/************************次数修改********************** */
|
|
openNumber(item, index) {
|
|
let form = { ...item };
|
|
form.numberShow = true;
|
|
let projectTable = [...this.projectTable];
|
|
projectTable[index] = form;
|
|
this.projectTable = [];
|
|
this.projectTable = projectTable;
|
|
this.$nextTick(() => {
|
|
this.$refs["numberInput" + index][0].focus();
|
|
});
|
|
},
|
|
endNumber(item) {
|
|
if (item.numberTimes > 0) {
|
|
item.numberShow = false;
|
|
} else {
|
|
item.numberTimes = 1;
|
|
}
|
|
},
|
|
|
|
//*************************项目修改**********************/
|
|
editProject() {
|
|
this.$refs.project.show(1);
|
|
},
|
|
projectData(form) {
|
|
const projectTable = Object.assign(
|
|
this.projectTable[this.proIndex],
|
|
form
|
|
);
|
|
this.projectTable[this.proIndex] = projectTable;
|
|
if (this.vipFrom.cashNumber) {
|
|
this.projectTable[this.proIndex].transactionPrice =
|
|
projectTable.priceMember;
|
|
} else {
|
|
this.projectTable[this.proIndex].transactionPrice = projectTable.price;
|
|
}
|
|
},
|
|
endPrice() {
|
|
if (this.sessionStorageData.minimum == true) {
|
|
if (this.vipFrom.cashNumber == 1) {
|
|
if (
|
|
this.addForm.topPriceMember <
|
|
this.addForm.transactionPrice * 1 <
|
|
this.addForm.minumumPriceMember
|
|
) {
|
|
} else {
|
|
this.$message.error({
|
|
message:
|
|
"价格不能低于" +
|
|
item.minumumPriceMember +
|
|
"高于" +
|
|
item.topPriceMember,
|
|
});
|
|
}
|
|
} else {
|
|
if (
|
|
this.addForm.topPrice <
|
|
this.addForm.transactionPrice * 1 <
|
|
this.addForm.minumumPrice
|
|
) {
|
|
} else {
|
|
this.$message.error({
|
|
message:
|
|
"价格不能低于" + item.minumumPrice + "高于" + item.topPrice,
|
|
});
|
|
}
|
|
}
|
|
}
|
|
},
|
|
/***************************添加项目********************* */
|
|
openStoreProject() {
|
|
this.addproList = this.proList;
|
|
this.$refs.project.show(1);
|
|
},
|
|
openVipProject() {
|
|
storeMemberOne({
|
|
mobilePhone: this.vipFrom.mobilePhone,
|
|
storeId: sessionStorage.getItem("parentId"),
|
|
}).then((res) => {
|
|
if (res.code == "000000") {
|
|
this.buttonShow = true;
|
|
let ids = { memberId: res.data.id, storeId: res.data.storeId };
|
|
couAccountList(ids).then((res) => {
|
|
//console.log(res);
|
|
res.rows.forEach((item) => {
|
|
item.projectName = item.courseProjectName;
|
|
item.projectId = item.id;
|
|
});
|
|
console.log("疗程", res);
|
|
this.addproList = res.rows;
|
|
});
|
|
} else {
|
|
this.$alert(res.message, "提示", {
|
|
confirmButtonText: "确定",
|
|
confirmButtonClass: "confirmbtnFalses",
|
|
type: "warning",
|
|
center: true,
|
|
callback: (action) => {},
|
|
});
|
|
}
|
|
});
|
|
},
|
|
addproradios(row) {
|
|
console.log(row);
|
|
this.addproradio = row.projectId;
|
|
//添加单选
|
|
if (row.courseProjectId != undefined) {
|
|
let ids = { id: row.courseProjectId };
|
|
proOne(ids).then((res) => {
|
|
if (res.code == "000000") {
|
|
var items = {
|
|
projectId: res.data.id,
|
|
projectName: res.data.projectName,
|
|
projectNum: res.data.projectNum,
|
|
minumumTimes: res.data.minumumTimes,
|
|
price: res.data.price,
|
|
minumumPrice: res.data.minumumPrice,
|
|
priceMember: res.data.priceMember,
|
|
minumumPriceMember: res.data.minumumPriceMember,
|
|
topPriceMember: res.data.topPriceMember,
|
|
topPrice: res.data.topPrice,
|
|
achievementLarge: res.data.achievementLarge,
|
|
achievementZhonggong: res.data.achievementZhonggong,
|
|
achievementTechnician: res.data.achievementTechnician,
|
|
commissionTechnician: res.data.commissionTechnician,
|
|
achievementSmall: res.data.achievementSmall,
|
|
commissionLarge: res.data.commissionLarge,
|
|
commissionZhonggong: res.data.commissionZhonggong,
|
|
commissionSmall: res.data.commissionSmall,
|
|
cardAchievementLarge: res.data.cardAchievementLarge,
|
|
cardAchievementZhonggong: res.data.cardAchievementZhonggong,
|
|
cardAchievementTechnician: res.data.cardAchievementTechnician,
|
|
cardAchievementSmall: res.data.cardAchievementSmall,
|
|
cardCommissionLarge: res.data.cardCommissionLarge,
|
|
cardCommissionZhonggong: res.data.cardCommissionZhonggong,
|
|
cardCommissionTechnician: res.data.cardCommissionTechnician,
|
|
cardCommissionSmall: res.data.cardCommissionSmall,
|
|
numberTimes: 1,
|
|
priceShow: false,
|
|
numberShow: false,
|
|
};
|
|
this.addProRadio = items;
|
|
this.addProRadio.courseAccountId = row.id;
|
|
} else {
|
|
this.$alert(res.message, "提示", {
|
|
confirmButtonText: "确定",
|
|
confirmButtonClass: "confirmbtnFalses",
|
|
type: "warning",
|
|
center: true,
|
|
callback: (action) => {},
|
|
});
|
|
}
|
|
});
|
|
} else {
|
|
this.addProRadio = row;
|
|
}
|
|
},
|
|
addproconfirm() {
|
|
if (this.vipFrom.cashNumber == 1) {
|
|
this.addProRadio.transactionPrice = this.addProRadio.priceMember;
|
|
} else {
|
|
this.addProRadio.transactionPrice = this.addProRadio.price;
|
|
}
|
|
this.addForm = Object.assign(this.addForm, this.addProRadio);
|
|
this.addProShow = false;
|
|
console.log(this.addForm);
|
|
},
|
|
/***************************美发师修改******************* */
|
|
openhai(item, index) {
|
|
this.haiIndex = index;
|
|
},
|
|
hairadio(row) {
|
|
this.radiohai = row.zhonggongOneNumber;
|
|
this.haiRadio = row;
|
|
},
|
|
haiconfirm() {
|
|
const projectTable = Object.assign(
|
|
this.projectTable[this.haiIndex],
|
|
this.haiRadio
|
|
);
|
|
this.projectTable[this.haiIndex] = projectTable;
|
|
},
|
|
/***************************美发师添加******************* */
|
|
addhairadio(row) {
|
|
this.addradiohai = row.zhonggongOneNumber;
|
|
this.addhairadios = row;
|
|
},
|
|
addhaiconfirm() {
|
|
const addForm = Object.assign(this.addForm, this.addhairadios);
|
|
this.addForm = addForm;
|
|
this.addHaiShow = false;
|
|
},
|
|
/***************************美容师修改******************* */
|
|
openbea(item, index) {
|
|
this.beaIndex = index;
|
|
},
|
|
bearadio(row) {
|
|
this.radiobea = row.largeOneNumber;
|
|
this.beaRadio = row;
|
|
},
|
|
beaconfirm() {
|
|
const projectTable = Object.assign(
|
|
this.projectTable[this.beaIndex],
|
|
this.beaRadio
|
|
);
|
|
|
|
this.projectTable[this.beaIndex] = projectTable;
|
|
},
|
|
/***************************美容师添加******************* */
|
|
addbearadio(row) {
|
|
this.addradiobea = row.largeOneNumber;
|
|
this.addbearadios = row;
|
|
},
|
|
addbeaconfirm() {
|
|
const addForm = Object.assign(this.addForm, this.addbearadios);
|
|
this.addForm = addForm;
|
|
this.addbeaShow = false;
|
|
},
|
|
/***************************助理修改******************* */
|
|
openaid(item, index) {
|
|
this.aidIndex = index;
|
|
},
|
|
aidradio(row) {
|
|
this.radioaid = row.smallOneNumber;
|
|
this.aidRadio = row;
|
|
},
|
|
aidconfirm() {
|
|
const projectTable = Object.assign(
|
|
this.projectTable[this.aidIndex],
|
|
this.aidRadio
|
|
);
|
|
this.projectTable[this.aidIndex] = projectTable;
|
|
},
|
|
/***************************助理添加******************* */
|
|
addaidradio(row) {
|
|
this.addradioaid = row.smallOneNumber;
|
|
this.addaidradios = row;
|
|
},
|
|
addaidconfirm() {
|
|
const addForm = Object.assign(this.addForm, this.addaidradios);
|
|
this.addForm = addForm;
|
|
this.addaidShow = false;
|
|
},
|
|
/***************************技师修改******************* */
|
|
opentec(item, index) {
|
|
this.tecIndex = index;
|
|
},
|
|
tecradio(row) {
|
|
this.radiotec = row.technicianOneNumber;
|
|
this.tecRadio = row;
|
|
},
|
|
tecconfirm() {
|
|
//console.log(this.projectTable);
|
|
//console.log(this.tecRadio);
|
|
const projectTable = Object.assign(
|
|
this.projectTable[this.tecIndex],
|
|
this.tecRadio
|
|
);
|
|
this.projectTable[this.tecIndex] = projectTable;
|
|
},
|
|
/***************************技师添加******************* */
|
|
addtecradio(row) {
|
|
this.addradiotec = row.technicianOneNumber;
|
|
this.addtecradios = row;
|
|
},
|
|
addtecconfirm() {
|
|
const addForm = Object.assign(this.addForm, this.addtecradios);
|
|
this.addForm = addForm;
|
|
this.addtecShow = false;
|
|
},
|
|
//**************************** */ 删除项目********************************/
|
|
delProject(item, index) {
|
|
//console.log(item);
|
|
if (index > 0) {
|
|
this.projectTable.splice(index, 1);
|
|
} else {
|
|
this.$message.info({ message: "默认第一个不能删除只能修改!" });
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
//****************项目修改中的过滤搜索************************** */
|
|
proTable() {
|
|
var search = this.proinput.toString().toLowerCase(); //将用户输入的值变字符串并小写
|
|
if (search) {
|
|
return this.proList.filter(function (dataNews) {
|
|
return Object.keys(dataNews).some(function (key) {
|
|
return String(dataNews[key]).toLowerCase().indexOf(search) > -1;
|
|
});
|
|
});
|
|
}
|
|
return this.proList;
|
|
},
|
|
//****************项目添加中的过滤搜索************************** */
|
|
addproTable() {
|
|
var search = this.addproinput.toString().toLowerCase(); //将用户输入的值变字符串并小写
|
|
if (search) {
|
|
return this.addproList.filter(function (dataNews) {
|
|
return Object.keys(dataNews).some(function (key) {
|
|
return String(dataNews[key]).toLowerCase().indexOf(search) > -1;
|
|
});
|
|
});
|
|
}
|
|
return this.addproList;
|
|
},
|
|
/***************************美发师修改搜索************************ */
|
|
haiTable() {
|
|
var search = this.haiinput.toString().toLowerCase(); //将用户输入的值变字符串并小写
|
|
if (search) {
|
|
return this.haiList.filter(function (dataNews) {
|
|
return Object.keys(dataNews).some(function (key) {
|
|
return String(dataNews[key]).toLowerCase().indexOf(search) > -1;
|
|
});
|
|
});
|
|
}
|
|
return this.haiList;
|
|
},
|
|
/***************************美发师添加搜索************************ */
|
|
addhaiTable() {
|
|
var search = this.addhaiinput.toString().toLowerCase(); //将用户输入的值变字符串并小写
|
|
if (search) {
|
|
return this.addhaiList.filter(function (dataNews) {
|
|
return Object.keys(dataNews).some(function (key) {
|
|
return String(dataNews[key]).toLowerCase().indexOf(search) > -1;
|
|
});
|
|
});
|
|
}
|
|
return this.addhaiList;
|
|
},
|
|
/***************************美容师修改搜索************************ */
|
|
beaTable() {
|
|
var search = this.beainput.toString().toLowerCase(); //将用户输入的值变字符串并小写
|
|
if (search) {
|
|
return this.beaList.filter(function (dataNews) {
|
|
return Object.keys(dataNews).some(function (key) {
|
|
return String(dataNews[key]).toLowerCase().indexOf(search) > -1;
|
|
});
|
|
});
|
|
}
|
|
return this.beaList;
|
|
},
|
|
/***************************美容师添加搜索************************ */
|
|
addbeaTable() {
|
|
var search = this.addbeainput.toString().toLowerCase(); //将用户输入的值变字符串并小写
|
|
if (search) {
|
|
return this.addbeaList.filter(function (dataNews) {
|
|
return Object.keys(dataNews).some(function (key) {
|
|
return String(dataNews[key]).toLowerCase().indexOf(search) > -1;
|
|
});
|
|
});
|
|
}
|
|
return this.addbeaList;
|
|
},
|
|
/***************************助理 修改搜索************************ */
|
|
aidTable() {
|
|
var search = this.aidinput.toString().toLowerCase(); //将用户输入的值变字符串并小写
|
|
if (search) {
|
|
return this.aidList.filter(function (dataNews) {
|
|
return Object.keys(dataNews).some(function (key) {
|
|
return String(dataNews[key]).toLowerCase().indexOf(search) > -1;
|
|
});
|
|
});
|
|
}
|
|
return this.aidList;
|
|
},
|
|
/***************************助理 添加搜索************************ */
|
|
addaidTable() {
|
|
var search = this.addaidinput.toString().toLowerCase(); //将用户输入的值变字符串并小写
|
|
if (search) {
|
|
return this.addaidList.filter(function (dataNews) {
|
|
return Object.keys(dataNews).some(function (key) {
|
|
return String(dataNews[key]).toLowerCase().indexOf(search) > -1;
|
|
});
|
|
});
|
|
}
|
|
return this.addaidList;
|
|
},
|
|
/***************************技师 修改搜索************************ */
|
|
tecTable() {
|
|
var search = this.tecinput.toString().toLowerCase(); //将用户输入的值变字符串并小写
|
|
if (search) {
|
|
return this.tecList.filter(function (dataNews) {
|
|
return Object.keys(dataNews).some(function (key) {
|
|
return String(dataNews[key]).toLowerCase().indexOf(search) > -1;
|
|
});
|
|
});
|
|
}
|
|
return this.tecList;
|
|
},
|
|
/***************************技师 添加搜索************************ */
|
|
addtecTable() {
|
|
var search = this.addtecinput.toString().toLowerCase(); //将用户输入的值变字符串并小写
|
|
if (search) {
|
|
return this.addtecList.filter(function (dataNews) {
|
|
return Object.keys(dataNews).some(function (key) {
|
|
return String(dataNews[key]).toLowerCase().indexOf(search) > -1;
|
|
});
|
|
});
|
|
}
|
|
return this.addtecList;
|
|
},
|
|
},
|
|
created() {},
|
|
};
|
|
</script>
|
|
<style>
|
|
.vipheader {
|
|
border: 1px solid burlywood;
|
|
box-shadow: 3px 3px 3px #999999;
|
|
margin-bottom: 10px;
|
|
padding-left: 10px;
|
|
}
|
|
.vip {
|
|
width: 160px;
|
|
}
|
|
.vipheader .el-form-item__label {
|
|
height: 20px;
|
|
}
|
|
.vipheader .el-form-item {
|
|
margin-bottom: 0;
|
|
}
|
|
.add {
|
|
border: 1px solid #999999;
|
|
box-shadow: 5px 5px 5px #999999;
|
|
height: 330px;
|
|
margin-left: 20px;
|
|
text-align: center;
|
|
display: inline-block;
|
|
/* position: relative;
|
|
top: -160px; */
|
|
}
|
|
.add i {
|
|
font-size: 54px;
|
|
line-height: 240px;
|
|
}
|
|
.add i:hover {
|
|
cursor: pointer;
|
|
}
|
|
.adds .el-input {
|
|
width: 200px;
|
|
}
|
|
.el-collapse-item__arrow {
|
|
margin: 0;
|
|
}
|
|
.bills .el-form-item {
|
|
margin-left: 20px;
|
|
}
|
|
.list {
|
|
border: 1px solid #999999;
|
|
width: 240px;
|
|
height: 280px;
|
|
min-width: 235px;
|
|
display: inline-block;
|
|
box-shadow: 5px 5px 5px #999999;
|
|
}
|
|
.list .el-form-item {
|
|
height: 25px;
|
|
}
|
|
.list span:hover {
|
|
cursor: pointer;
|
|
}
|
|
.addshow {
|
|
border: 1px solid #999999;
|
|
width: 240px;
|
|
height: 280px;
|
|
min-width: 235px;
|
|
|
|
display: inline-block;
|
|
box-shadow: 5px 5px 5px #999999;
|
|
position: relative;
|
|
}
|
|
.addshow i {
|
|
font-size: 22px;
|
|
position: absolute;
|
|
right: 5px;
|
|
bottom: 10px;
|
|
}
|
|
.addshow i:hover {
|
|
cursor: pointer;
|
|
background: rgb(247, 137, 137);
|
|
border-radius: 10px;
|
|
box-shadow: 5px 5px 5px #999999;
|
|
}
|
|
.flex {
|
|
display: flex;
|
|
}
|
|
.addspan:hover {
|
|
cursor: pointer;
|
|
}
|
|
.bills .el-radio__label {
|
|
display: none;
|
|
}
|
|
.prolistdiv {
|
|
display: inline-block;
|
|
border: #999999 1px solid;
|
|
width: 240px;
|
|
height: 300px;
|
|
margin: 10px;
|
|
box-shadow: #999999 3px 3px 3px;
|
|
position: relative;
|
|
border-radius: 8px;
|
|
}
|
|
.prolistdiv .el-form-item {
|
|
height: 26px;
|
|
}
|
|
.prolistdiv-del {
|
|
position: absolute;
|
|
bottom: 15px;
|
|
right: 15px;
|
|
font-size: 18px;
|
|
}
|
|
.bills {
|
|
height: 70vh;
|
|
overflow: auto;
|
|
}
|
|
.bills /deep/ .el-dialog__body {
|
|
padding: 0 20 10 20 !important;
|
|
}
|
|
</style>
|