<template>
|
<div class="app-container">
|
<el-row :gutter="20">
|
<el-col :span="17">
|
<div class="grid-content bg-purple">
|
<el-form
|
:inline="true"
|
ref="form"
|
:model="form"
|
:rules="rules"
|
:label-position="labelPosition"
|
label-width="106px"
|
v-show="top"
|
>
|
<el-form-item label="匿名" prop="isNow">
|
<el-select
|
v-model="isNow"
|
placeholder="是否匿名"
|
@change="freezing(isNow)"
|
>
|
<el-option
|
v-for="dict in dictType"
|
:key="dict.value"
|
:label="dict.label"
|
:value="dict.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item
|
label="姓名"
|
prop="cusName"
|
:rules="[
|
{
|
required: true,
|
validator: (rule, value, callback) => {
|
if (!form.cusName) {
|
callback('');
|
} else if (form.cusName) {
|
callback();
|
}
|
},
|
trigger: 'blur',
|
},
|
]"
|
>
|
<el-input
|
v-model="form.cusName"
|
placeholder="请输入姓名"
|
:disabled="isDisabled"
|
/>
|
</el-form-item>
|
|
<el-form-item label="证件类型" prop="idType">
|
<el-select
|
:disabled="isDisabled"
|
v-model="form.idType"
|
placeholder="请选择证件类型"
|
>
|
<el-option
|
v-for="dict in dict.type.dict_user_cardtype"
|
:key="dict.value"
|
:label="dict.label"
|
:value="dict.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="民族" prop="cusNational">
|
<el-select
|
filterable
|
:disabled="isDisabled"
|
v-model="form.cusNational"
|
placeholder="请选择民族"
|
>
|
<el-option
|
v-for="dict in dict.type.dict_user_national"
|
:key="dict.value"
|
:label="dict.label"
|
:value="dict.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item
|
label="性别"
|
prop="cusSex"
|
:rules="[
|
{
|
required: true,
|
validator: (rule, value, callback) => {
|
if (!form.cusSex && showHidden.has_sex === 'Y') {
|
callback('');
|
} else if (showHidden.has_sex === 'N') {
|
callback();
|
} else if (form.cusSex && showHidden.has_sex === 'Y') {
|
callback();
|
}
|
},
|
trigger: 'blur',
|
},
|
]"
|
>
|
<el-select
|
:disabled="isDisabled"
|
v-model="form.cusSex"
|
placeholder="性别"
|
>
|
<el-option
|
v-for="dict in dict.type.sys_user_sex"
|
:key="dict.value"
|
:label="dict.label"
|
:value="parseInt(dict.value)"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item
|
label="证件号码"
|
prop="cusIdcard"
|
:rules="[
|
{
|
required: true,
|
validator: (rule, value, callback) => {
|
if (!form.cusIdcard && showHidden.has_idcard === 'Y') {
|
callback('');
|
} else if (showHidden.has_idcard === 'N') {
|
callback();
|
} else if (
|
form.cusIdcard &&
|
showHidden.has_idcard === 'Y'
|
) {
|
callback();
|
}
|
},
|
trigger: 'blur',
|
},
|
]"
|
>
|
<span
|
slot="label"
|
style="display: inline-block; border-bottom: 2px solid blue"
|
@click="handleQuery"
|
>
|
证件号码
|
</span>
|
<el-input
|
:disabled="isDisabled"
|
v-model="form.cusIdcard"
|
placeholder="请输入身份证号"
|
@input="inputChange"
|
/>
|
<!-- <i style="
|
font-size: 1rem;
|
position: absolute;
|
right: -20px;
|
top: 10px;
|
cursor: pointer;
|
" class="el-icon-search" @click="handleQuery"></i> -->
|
</el-form-item>
|
|
<el-form-item label="婚姻" prop="cusMarryStatus">
|
<el-select
|
:disabled="isDisabled"
|
v-model="form.cusMarryStatus"
|
placeholder="婚姻状况"
|
>
|
<el-option
|
v-for="dict in dict.type.dict_user_marry"
|
:key="dict.value"
|
:label="dict.label"
|
:value="dict.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item
|
label="电话"
|
prop="cusPhone"
|
:rules="[
|
{
|
required: true,
|
validator: (rule, value, callback) => {
|
if (!form.cusPhone && showHidden.is_phone === 'Y') {
|
callback('');
|
} else if (showHidden.is_phone === 'N') {
|
callback();
|
} else if (form.cusPhone && showHidden.is_phone === 'Y') {
|
callback();
|
}
|
},
|
trigger: 'blur',
|
},
|
]"
|
>
|
<el-input
|
v-model="form.cusPhone"
|
placeholder="请输入联系电话"
|
:disabled="isDisabled"
|
/>
|
</el-form-item>
|
|
<el-form-item label="出生日期" prop="cusBrithday">
|
<el-date-picker
|
:disabled="isDisabled"
|
clearable
|
v-model="form.cusBrithday"
|
type="date"
|
value-format="yyyy-MM-dd"
|
placeholder="请选择出生日期"
|
style="width: 93%"
|
>
|
</el-date-picker>
|
</el-form-item>
|
|
<el-form-item label="职业" prop="career">
|
<el-select
|
filterable
|
:disabled="isDisabled"
|
v-model="form.career"
|
placeholder="请输入职业"
|
>
|
<el-option
|
v-for="dict in dict.type.dict_job"
|
:key="dict.value"
|
:label="dict.label"
|
:value="dict.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item label="邮箱" prop="cusEmail">
|
<el-input
|
v-model="form.cusEmail"
|
placeholder="请输入邮箱"
|
:disabled="isDisabled"
|
/>
|
</el-form-item>
|
|
<el-form-item label="年龄 " prop="age">
|
<el-input
|
v-model="form.age"
|
:disabled="isDisabled"
|
style="width: 30%"
|
/>
|
<el-select
|
:disabled="isDisabled"
|
v-model="form.ageUnit"
|
style="width: 20%"
|
>
|
<el-option
|
v-for="dict in dict.type.dict_ageunit"
|
:key="dict.value"
|
:label="dict.label"
|
:value="dict.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
|
<!-- <el-form-item prop="ageUnit">
|
|
</el-form-item> -->
|
</el-form>
|
<el-form
|
:inline="true"
|
ref="form"
|
:model="form"
|
:rules="rules"
|
:label-position="labelPosition"
|
label-width="106px"
|
v-show="top"
|
>
|
<el-form-item label="介绍人" prop="cusIntroduce">
|
<el-input
|
:disabled="isDisabled"
|
v-model="form.cusIntroduce"
|
placeholder="请输入介绍人"
|
/>
|
</el-form-item>
|
|
<el-form-item label="工作单位" prop="company">
|
<el-input
|
:disabled="isDisabled"
|
v-model="form.company"
|
placeholder="请输入工作单位"
|
/>
|
</el-form-item>
|
|
<el-form-item label="文化程度" prop="wenHua">
|
<el-input
|
:disabled="isDisabled"
|
v-model="form.wenHua"
|
placeholder="请输入文化程度"
|
/>
|
</el-form-item>
|
</el-form>
|
<el-form
|
ref="form"
|
:model="form"
|
:rules="rules"
|
:label-position="labelPosition"
|
label-width="106px"
|
v-show="top"
|
>
|
<el-row :gutter="21">
|
<el-col :span="19">
|
<el-form-item label="户口地址" prop="addr">
|
<el-input
|
v-model="form.addr"
|
placeholder="请输入户口地址"
|
:disabled="isDisabled"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
|
<el-form
|
ref="form"
|
:model="form"
|
:rules="rules"
|
:label-position="labelPosition"
|
label-width="106px"
|
v-show="top"
|
>
|
<el-row :gutter="21">
|
<el-col :span="19">
|
<el-form-item label="现住地址" prop="cusAddr">
|
<el-input
|
v-model="form.cusAddr"
|
placeholder="请输入现居住地址"
|
:disabled="isDisabled"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
|
|
<el-row v-show="top">
|
<el-col :span="19">
|
<div style="float: right; margin-bottom: 10px">
|
<el-button
|
v-show="lishi"
|
type="primary"
|
@click="cope"
|
size="mini"
|
>一键复制</el-button
|
>
|
<el-button
|
type="primary"
|
@click="inputChanges"
|
v-show="lishi"
|
size="mini"
|
:disabled="confirm"
|
>历史体检记录</el-button
|
>
|
<el-button
|
:disabled="isDisabled"
|
type="primary"
|
size="mini"
|
@click="submitForm"
|
>登记</el-button
|
>
|
<el-button
|
icon="el-icon-refresh"
|
size="mini"
|
@click="resetQuery"
|
@queryTable="getList"
|
>重置</el-button
|
>
|
</div>
|
</el-col>
|
</el-row>
|
</div>
|
</el-col>
|
<el-col :span="7" v-show="top">
|
<div class="content" v-show="showHidden.mall_hasPhoto == 'Y'">
|
<div
|
v-show="hide"
|
style="border: 1px dashed #dcdfe6; width: 180px; height: 180px"
|
>
|
<img v-if="imageUrl" :src="imageUrl" class="avatar" />
|
</div>
|
<div v-if="imgSrc" class="img_bg_camera">
|
<img
|
style="
|
width: 200px;
|
height: 200px;
|
margin-left: -20px;
|
margin-top: 90px;
|
padding-top: 1px;
|
"
|
:src="imgSrc"
|
alt=""
|
class="tx_img"
|
/>
|
</div>
|
<video
|
v-show="hides"
|
id="videoCamera"
|
:width="videoWidth"
|
:height="videoHeight"
|
autoplay
|
style="margin-top: 1px"
|
></video>
|
<canvas
|
style="display: none"
|
id="canvasCamera"
|
:width="videoWidth"
|
:height="videoHeight"
|
></canvas>
|
<div class="camera_outer" style="margin-top: 10px">
|
<el-button type="primary" plain size="mini" @click="getCompetence()"
|
>打开摄像头</el-button
|
>
|
<el-button type="primary" plain size="mini" @click="setImage()"
|
>拍照</el-button
|
><br />
|
</div>
|
</div>
|
</el-col>
|
</el-row>
|
|
<el-dialog
|
title="选择套餐"
|
:visible.sync="taocan"
|
width="50%"
|
height="700px"
|
>
|
<el-tabs
|
type="border-card"
|
style="height: 560px; margin: 0 10px; width: 100%"
|
@tab-click="handleClick"
|
>
|
<el-tab-pane label="套餐">
|
<el-form
|
:model="queryParam"
|
ref="queryForm"
|
size="small"
|
:inline="true"
|
v-if="showSearch"
|
label-width="auto"
|
>
|
<el-form-item label="套餐名称" prop="pacName">
|
<el-input
|
v-model="queryParam.pacName"
|
placeholder="请输入套餐名称"
|
clearable
|
@keyup.enter.native="handle"
|
/>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
type="primary"
|
icon="el-icon-search"
|
size="mini"
|
@click="handle"
|
>查询</el-button
|
>
|
<!-- <el-button type="primary" size="mini" @click="submit">确认</el-button> -->
|
</el-form-item>
|
</el-form>
|
<div class="tab4">
|
<div
|
class="grid-content bg-purple"
|
style="margin-left: 5px; width: 98%"
|
>
|
<el-table
|
v-loading="loading"
|
element-loading-text="正在加载中..."
|
element-loading-spinner="el-icon-loading"
|
border
|
:data="newpacName"
|
@selection-change="handleSelectionChange"
|
height="450px"
|
ref="tb"
|
style="width: 850px"
|
>
|
<el-table-column
|
type="selection"
|
width="40px"
|
align="center"
|
label="选择"
|
/>
|
<el-table-column
|
label="套餐名称"
|
align="center"
|
prop="pacName"
|
width="120px"
|
/>
|
<el-table-column
|
label="套餐价格"
|
align="center"
|
prop="price"
|
width="120px"
|
/>
|
<el-table-column
|
label="套餐明细"
|
align="center"
|
prop="allProName"
|
:show-overflow-tooltip="true"
|
/>
|
<!-- :selectable="checkSelectable" -->
|
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<template slot-scope="scope">
|
<el-button size="mini" type="text" icon="el-icon-circle-check" @click="handleSeach(scope.row)"
|
v-hasPermi="['system:package:Seach']">套餐详情
|
</el-button>
|
</template>
|
</el-table-column> -->
|
</el-table>
|
</div>
|
<!-- <el-button
|
style="
|
width: 20px;
|
height: 100px;
|
margin-top: 20%;
|
font-size: 10px;
|
padding-right: 20px;
|
"
|
type="primary"
|
size="mini"
|
@click="submit"
|
><i style="font-size: 18px" class="el-icon-d-arrow-right"></i
|
></el-button> -->
|
</div>
|
</el-tab-pane>
|
<el-tab-pane label="单项">
|
<div class="tab8">
|
<!-- <div class="tab7">
|
<v-tree-transfer
|
:treeData="treedataList"
|
:defaultProps="{ children: 'tjProjectList', label: 'proName' }"
|
:defaultKeys="defaultKeys"
|
@changeKeys="changeCategoryKeys"
|
:key="datekey"
|
></v-tree-transfer> -->
|
<!-- <el-tree :data="data" show-checkbox node-key="proId" :props="defaultProps" :default-checked-keys="treeList"
|
@check-change="handleCurrentChecked">
|
</el-tree> -->
|
<!-- </div> -->
|
<el-row :gutter="20">
|
<el-col :span="6">
|
<div
|
style="
|
text-align: center;
|
margin-bottom: 10px;
|
margin-top: 10px;
|
"
|
>
|
项目列表
|
</div>
|
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
|
</el-input>
|
<div class="tab3">
|
<el-tree
|
class="filter-tree"
|
v-loading="loading"
|
:data="Treedata"
|
:props="defaultProps"
|
show-checkbox
|
node-key="proId"
|
@check="handleCurrentChecked"
|
:default-checked-keys="checkedkey"
|
:filter-node-method="filterNode"
|
ref="tree"
|
>
|
</el-tree>
|
</div>
|
</el-col>
|
<el-col :span="6">
|
<div
|
style="
|
text-align: center;
|
margin-bottom: 10px;
|
margin-top: 10px;
|
"
|
>
|
明细项目列表
|
</div>
|
<div class="tab3">
|
<el-tree
|
class="filter-tree"
|
v-loading="loading"
|
:data="TreedataList"
|
node-key="proId"
|
:props="defaultProps"
|
:filter-node-method="filterNode"
|
show-checkbox
|
@check-change="handleCurrentChecked1"
|
:default-checked-keys="checkedListkey"
|
>
|
</el-tree>
|
</div>
|
</el-col>
|
<el-col :span="11">
|
<div class="grid-content bg-purple">
|
<div
|
style="
|
text-align: center;
|
margin-bottom: 10px;
|
margin-top: 10px;
|
"
|
>
|
已选项目列表
|
</div>
|
<el-table
|
:data="DataList"
|
border
|
style="width: 100%"
|
height="400"
|
:span-method="objectSpanMethod"
|
>
|
<el-table-column prop="propinName" label="检查项目">
|
</el-table-column>
|
<el-table-column
|
prop="proName"
|
label="明细项目"
|
width="260px"
|
>
|
</el-table-column>
|
<el-table-column prop="proPrice" label="原价" width="56px">
|
</el-table-column>
|
|
<el-table-column
|
label="操作"
|
align="center"
|
fixed="right"
|
class-name="small-padding fixed-width"
|
width="50px"
|
>
|
<template slot-scope="scope">
|
<el-button
|
size="mini"
|
type="text"
|
icon="el-icon-delete"
|
@click="handleDelete(scope.row)"
|
title="删除"
|
></el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<el-collapse v-model="activeName" accordion v-if="list1">
|
<div>
|
<el-collapse-item title="请选择项目">
|
<el-table
|
:data="DataList"
|
border
|
style="width: 100%"
|
height="400"
|
:span-method="objectSpanMethod"
|
>
|
<el-table-column
|
prop="proName"
|
label="项目"
|
width="180"
|
>
|
</el-table-column>
|
<el-table-column prop="ordPrice" label="原价">
|
</el-table-column>
|
</el-table>
|
</el-collapse-item>
|
</div>
|
</el-collapse>
|
</div>
|
</el-col>
|
</el-row>
|
</div>
|
</el-tab-pane>
|
</el-tabs>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="cancel">取 消</el-button>
|
<el-button type="primary" @click="submit">确 定</el-button>
|
</span>
|
</el-dialog>
|
<!-- -->
|
<el-row v-if="tcShow">
|
<el-col :span="15">
|
<div class="grid-content bg-purple">
|
<!-- <el-table :data="fData" border height="220px" style="width: 100%; ">
|
<el-table-column prop="proName" label="组合项目" align="center" width="200px">
|
</el-table-column>
|
<el-table-column prop="proPrice" label="金额" align="center" width="150px">
|
</el-table-column>
|
<el-table-column prop="allSonProName" label="单个项目" align="center" :show-overflow-tooltip="true">
|
</el-table-column>
|
</el-table>
|
|
<div class="tab">
|
<el-table :data="DataList" border height="220" style="width: 350px; margin-top: 20px">
|
<el-table-column prop="proName" label="单个项目" align="center">
|
</el-table-column>
|
<el-table-column prop="proPrice" label="金额" align="center"></el-table-column>
|
</el-table>
|
</div> -->
|
|
<!-- <div style="height:480px;overflow:scroll;background-color: #ffffff;
|
font-size: 12.5px;">
|
<table style="width: 96%; margin: 4px 10px; border: 1px solid white" cellspacing="4" border="2"
|
v-for="(item, index) in tableData1" :key="index">
|
<caption style="background-color: #f8f8f9">
|
{{
|
item.parentName
|
}}
|
</caption>
|
<tr align="center">
|
<th style="width:200px">项目</th>
|
<th>现价</th>
|
<th>原价</th>
|
</tr>
|
<tr v-for="item1 in item.list" :key="item1.proId">
|
<td>{{ item1.proName }}</td>
|
<td>
|
{{ item1.nowPrice }}
|
</td>
|
<td>{{ item1.ordPrice }}</td>
|
</tr>
|
</table>
|
</div> -->
|
|
<template>
|
<el-form
|
:model="form"
|
:inline="true"
|
label-width="75px"
|
style="margin-left: 20px"
|
>
|
<el-form-item label="体检类型">
|
<el-select
|
style="width: 150px"
|
v-model="form.tjType"
|
placeholder="请选择体检类型"
|
>
|
<el-option
|
v-for="dict in dict.type.dict_team"
|
:key="dict.value"
|
:label="dict.label"
|
:value="dict.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
|
<!-- <div class="tab1"> -->
|
<!-- <el-form :inline="true" class="tab1"> -->
|
<el-form-item label="应收金额">
|
<el-input
|
placeholder="应收金额"
|
v-model="TotalPrice1"
|
disabled
|
style="width: 150px"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="优惠">
|
<!-- <el-input style="width: 100px" type="number" v-model="discount" :value="discount"></el-input> -->
|
<el-input-number
|
ref="inputNumber"
|
style="width: 150px"
|
v-model="discount"
|
:precision="2"
|
:step="0.1"
|
:max="10"
|
:min="1"
|
@change="numberChange"
|
:disabled="isfalse"
|
></el-input-number>
|
</el-form-item>
|
<el-form-item label="实收金额">
|
<el-input
|
placeholder="实收金额"
|
v-model="TotalPrice"
|
style="width: 150px"
|
></el-input>
|
</el-form-item>
|
<br />
|
<!-- 140828199805050012 -->
|
<el-form-item label="领取方式">
|
<!-- <el-input style="width: 100%;" v-model="form.getType" placeholder="请选择领取方式" /> -->
|
<el-select
|
v-model="getType"
|
style="width: 150px"
|
@change="getmailType"
|
>
|
<el-option
|
v-for="dict in dict.type.report_get_type"
|
:key="dict.value"
|
:label="dict.label"
|
:value="dict.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="体检类别">
|
<el-select
|
style="width: 150px"
|
v-model="tjCategory"
|
placeholder="请选择体检类别"
|
>
|
<el-option
|
v-for="dict in dict.type.dict_tjtype"
|
:key="dict.value"
|
:label="dict.label"
|
:value="dict.value"
|
></el-option>
|
</el-select>
|
<!-- <el-input v-model="form.category" placeholder="请输入体检类别" /> -->
|
</el-form-item>
|
|
<el-form-item style="margin-left: 269px">
|
<el-button
|
type="primary"
|
@click="Package"
|
size="mini"
|
style="margin-right: 20px"
|
>选择套餐</el-button
|
>
|
<el-button
|
type="primary"
|
@click="submitPrice"
|
:disabled="confirm"
|
v-if="showHidden.has_charge == 'N'"
|
size="mini"
|
>签到登记</el-button
|
>
|
<el-button
|
type="primary"
|
@click="submitCheckinfee"
|
:disabled="confirm"
|
v-if="showHidden.has_charge == 'Y'"
|
size="mini"
|
>登记收费</el-button
|
>
|
</el-form-item>
|
<!-- </el-form> -->
|
<!-- </div> -->
|
</el-form>
|
</template>
|
|
<el-dialog
|
title="邮寄"
|
:visible.sync="malldisble"
|
:close-on-click-modal="false"
|
>
|
<el-form
|
:model="addAddress"
|
:rules="rules"
|
label-width="78px"
|
style="margin-left: 7px"
|
>
|
<el-form-item label="姓名">
|
<el-input
|
placeholder="姓名"
|
v-model="addAddress.getUser"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="电话">
|
<el-input
|
placeholder="电话"
|
v-model="addAddress.phone"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="地址">
|
<el-input
|
placeholder="地址"
|
v-model="addAddress.address"
|
></el-input>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="cancell">确 定</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
</div>
|
</el-dialog>
|
|
<div style="text-align: center; margin-bottom: 10px">
|
已选项目列表
|
</div>
|
<div
|
style="
|
padding: 0px 6px;
|
border: 1px solid #e6ebf5;
|
max-height: 420px;
|
overflow: auto;
|
width: 916px;
|
margin-left: 35px;
|
"
|
>
|
<el-collapse v-model="index" accordion v-if="list3">
|
<div
|
class="info1"
|
v-for="(item, index) in tableData1"
|
:key="'info1-' + index"
|
>
|
<el-collapse-item :name="index">
|
<template slot="title">
|
{{
|
item.pacName +
|
":" +
|
item.parentName +
|
" (应收金额:" +
|
item.ordPrice +
|
"元 / 实收金额:" +
|
item.nowPrice +
|
"元)"
|
}}
|
</template>
|
<el-table
|
:data="item.list"
|
border
|
style="width: 100%"
|
height="270"
|
>
|
<el-table-column prop="proName" label="项目" width="180">
|
</el-table-column>
|
<el-table-column prop="proType" label="性别" width="180">
|
<template
|
slot-scope="scope"
|
v-if="scope.row.proType == ''"
|
>
|
{{ scope.row.proType == "" ? "全部" : "" }}
|
</template>
|
<template slot-scope="scope" v-else>
|
<dict-tag
|
:options="dict.type.sys_user_sex"
|
:value="scope.row.proType"
|
/>
|
</template>
|
</el-table-column>
|
<el-table-column prop="ordPrice" label="应收金额">
|
</el-table-column>
|
<el-table-column prop="nowPrice" label="实收金额">
|
</el-table-column>
|
<el-table-column prop="proCheckMethod" label="是否空腹">
|
<template slot-scope="scope">
|
<dict-tag
|
:options="dict.type.sys_yes_no"
|
:value="scope.row.proCheckMethod"
|
/>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-collapse-item>
|
</div>
|
</el-collapse>
|
|
<div v-if="list2 == true">
|
<el-table
|
:data="tableData1"
|
border
|
style="width: 100%"
|
height="250"
|
>
|
<el-table-column prop="proName" label="项目" width="180">
|
</el-table-column>
|
<el-table-column prop="proType" label="性别" width="180">
|
<template slot-scope="scope" v-if="scope.row.proType == ''">
|
{{ scope.row.proType == "" ? "全部" : "" }}
|
</template>
|
<template slot-scope="scope" v-else>
|
<dict-tag
|
:options="dict.type.sys_user_sex"
|
:value="scope.row.proType"
|
/>
|
</template>
|
</el-table-column>
|
<el-table-column prop="ysPrice" label="应收金额">
|
</el-table-column>
|
<el-table-column prop="proPrice" label="实收金额">
|
</el-table-column>
|
<el-table-column prop="proCheckMethod" label="是否空腹">
|
<template slot-scope="scope">
|
<dict-tag
|
:options="dict.type.sys_yes_no"
|
:value="scope.row.proCheckMethod"
|
/>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
|
<el-collapse v-model="activeName" accordion v-if="list1">
|
<div>
|
<el-collapse-item title="请选择项目">
|
<el-table :data="list" border style="width: 100%">
|
<el-table-column prop="proName" label="项目" width="180">
|
</el-table-column>
|
<el-table-column prop="proType" label="性别" width="180">
|
<template
|
slot-scope="scope"
|
v-if="scope.row.proType == ''"
|
>
|
{{ scope.row.proType == "" ? "全部" : "" }}
|
</template>
|
<template slot-scope="scope" v-else>
|
<dict-tag
|
:options="dict.type.sys_user_sex"
|
:value="scope.row.proType"
|
/>
|
</template>
|
</el-table-column>
|
<el-table-column prop="ordPrice" label="应收金额">
|
</el-table-column>
|
<el-table-column prop="nowPrice" label="实收金额">
|
</el-table-column>
|
<el-table-column prop="proCheckMethod" label="是否空腹">
|
<template slot-scope="scope">
|
<dict-tag
|
:options="dict.type.sys_yes_no"
|
:value="scope.row.proCheckMethod"
|
/>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-collapse-item>
|
</div>
|
</el-collapse>
|
</div>
|
</div>
|
</el-col>
|
</el-row>
|
|
<el-dialog
|
title="导检单预览"
|
:visible.sync="dialogVisibles"
|
:close-on-click-modal="false"
|
>
|
<div class="main">
|
<iframe
|
id="printIframe"
|
:src="url"
|
frameborder="0"
|
style="width: 100%; height: 100%"
|
></iframe>
|
</div>
|
</el-dialog>
|
|
<el-dialog title="收费" :visible.sync="charge" width="59%" height="700px">
|
<div>
|
<el-table
|
id="sig"
|
v-loading="loading"
|
:data="feeitems"
|
@selection-change="handleSelect"
|
tooltip-effect="dark"
|
ref="multipleTable"
|
border
|
>
|
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column
|
label="姓名"
|
align="center"
|
prop="tjName"
|
width="100px"
|
/>
|
<el-table-column label="性别" align="center" prop="sex" width="90px">
|
<template slot-scope="scope">
|
<dict-tag
|
:options="dict.type.sys_user_sex"
|
:value="scope.row.sex"
|
/>
|
</template>
|
</el-table-column>
|
<el-table-column
|
label="身份证"
|
align="center"
|
prop="idCard"
|
width="150px"
|
:show-overflow-tooltip="true"
|
></el-table-column>
|
<el-table-column
|
label="手机号"
|
align="center"
|
prop="tjPhone"
|
width="120px"
|
:show-overflow-tooltip="true"
|
></el-table-column>
|
<el-table-column
|
label="体检号"
|
align="center"
|
prop="tjNumber"
|
width="160px"
|
/>
|
<el-table-column
|
label="登记时间"
|
align="center"
|
prop="tjFlowingWater.createTime"
|
:show-overflow-tooltip="true"
|
></el-table-column>
|
<el-table-column
|
label="单位名称"
|
align="center"
|
prop="tjComp"
|
></el-table-column>
|
<el-table-column
|
label="体检类型"
|
align="center"
|
prop="tjType"
|
width="80px"
|
>
|
<template slot-scope="scope">
|
<dict-tag
|
:options="dict.type.dict_team"
|
:value="scope.row.tjType"
|
/>
|
</template>
|
</el-table-column>
|
<el-table-column
|
label="订单流水号"
|
align="center"
|
prop="tjFlowingWater.waterId"
|
width="200px"
|
/>
|
<el-table-column
|
label="收费员"
|
align="center"
|
prop="tjFlowingWater.updateBy"
|
width="100px"
|
/>
|
</el-table>
|
|
<el-row :gutter="10" class="mb8">
|
<el-col :span="20">
|
<el-form
|
:inline="true"
|
:model="formInline"
|
class="demo-form-inline"
|
style="margin: 12px 6px"
|
>
|
<el-form-item label="应收金额">
|
<el-input
|
style="width: 86px"
|
:value="formInline.price + '.00'"
|
placeholder="金额"
|
:disabled="true"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="优惠">
|
<el-input-number
|
style="width: 140px"
|
v-model="discount"
|
:precision="2"
|
:step="0.1"
|
:max="10"
|
:min="1"
|
@change="numberChange"
|
:disabled="isfalse"
|
></el-input-number>
|
</el-form-item>
|
<el-form-item label="实收金额">
|
<el-input
|
v-model="formInline.paidIn"
|
placeholder="实付"
|
style="width: 94px"
|
>
|
</el-input>
|
</el-form-item>
|
<el-form-item label="付款类型" prop="payType">
|
<el-select
|
style="width: 120px"
|
v-model="formInline.payType"
|
placeholder="请选择付款类型"
|
>
|
<el-option
|
v-for="dict in dict.type.dict_pay_type"
|
:key="dict.value"
|
:label="dict.label"
|
:value="dict.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item>
|
<el-button
|
style="margin-left: 15px"
|
type="primary"
|
size="mini"
|
@click="SubmitEvent"
|
>收费</el-button
|
>
|
</el-form-item>
|
</el-form>
|
</el-col>
|
</el-row>
|
|
<el-table v-loading="loading" :data="Chargesubitem" border height="240">
|
<el-table-column type="index" width="50"> </el-table-column>
|
<el-table-column label="项目名称" align="center" prop="proName" />
|
<el-table-column label="应收金额" align="center" prop="proOrdPrice" />
|
<el-table-column label="实收金额" align="center" prop="proPrice" />
|
</el-table>
|
</div>
|
</el-dialog>
|
<div style="position: absolute; bottom: 100px; width: 360px; display: none">
|
<div
|
id="printBill"
|
style="width: 280px; font-size: 1px"
|
ref="printContent"
|
>
|
<div style="font-size: 1px">
|
<div style="text-align: center">
|
<h3>{{ hospName }}小票</h3>
|
</div>
|
|
<div style="margin-top: 4px">
|
<div>姓名:{{ formIn.name }}</div>
|
<div>电话:{{ formIn.phone }}</div>
|
<div>体检项目:{{ formIn.tjPro }}</div>
|
<div>实收金额:{{ formInline.paidIn }}元</div>
|
<div>收费时间:{{ currentDate + " " + currentTime }}</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<!-- <el-dialog
|
title="拍照"
|
:visible.sync="beat"
|
width="40%"
|
:before-close="handleClose"
|
> -->
|
|
<!-- <span slot="footer" class="dialog-footer">
|
<el-button @click="beat = false">取 消</el-button>
|
<el-button type="primary" @click="beat = false">确 定</el-button>
|
</span> -->
|
<!-- </el-dialog> -->
|
<historyTj :cusIdCard="form.cusIdcard" ref="historyTj"></historyTj>
|
<el-dialog
|
title="提示"
|
:visible.sync="dialogVisiblese"
|
width="30%"
|
:before-close="handleClose"
|
>
|
<span>是否复制最近一次的体检项目?</span>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="dialogVisiblese = false">取 消</el-button>
|
<el-button type="primary" @click="copes">确 定</el-button>
|
</span>
|
</el-dialog>
|
<Packages ref="aaa" @add="handleChanges" />
|
</div>
|
</template>
|
|
<script>
|
import { dataURLtoFile, random } from "./file";
|
import { getInfo } from "@/api/login";
|
import {
|
addCustomer,
|
getwater,
|
getfindTj,
|
getByTjNum,
|
} from "@/api/hosp/customer";
|
import { getPrintSetUp } from "@/api/system/examcharge";
|
|
import {
|
deptTreeSelect,
|
projectGetList,
|
getOrder,
|
getProParentIdDxList,
|
getProSonDxList,
|
getCusIdcard,
|
getPackageListName,
|
getaddtTransition,
|
getTransitionList,
|
getByTeamNo,
|
getLoadFile,
|
getIsRequired,
|
getconfigKey,
|
getHistryTjOrderProByCusIdCard,
|
} from "@/api/system/tijian";
|
import Packages from "@/components/Packages";
|
import { MessageBox } from "element-ui";
|
import VTreeTransfer from "./TreeTransfer.vue";
|
import historyTj from "@/components/historyTj/index";
|
export default {
|
dicts: [
|
"dict_tjtype",
|
"report_get_type",
|
"dict_user_national",
|
"dict_user_marry",
|
"sys_yes_no",
|
"sys_user_sex",
|
"dict_pay_type",
|
"dict_team",
|
"dict_job",
|
"dict_user_cardtype",
|
"dict_ageunit",
|
],
|
name: "Tijian",
|
components: {
|
VTreeTransfer,
|
historyTj,
|
Packages,
|
},
|
data() {
|
return {
|
filterText: "",
|
proIdList: [],
|
tableDatas: [],
|
dialogVisiblese: false,
|
lishi: false,
|
table: false,
|
HistoryList: {},
|
index: 0,
|
dictType: [
|
{
|
value: 0,
|
label: "是",
|
},
|
{
|
value: 1,
|
label: "否",
|
},
|
],
|
isNow: 1,
|
treeId: [],
|
treeList: [],
|
defaultKeys: [],
|
adviceList: [],
|
feeitems: [],
|
refundPros: [],
|
Chargesubitem: [],
|
standard: {},
|
formInline: {
|
price: "0",
|
payType: "0",
|
paidIn: "0.00",
|
},
|
getType: "",
|
hospName: "",
|
currentDate: "",
|
currentTime: "",
|
tjCategory: "",
|
formIn: {
|
tjPro: "体检费",
|
},
|
selectionList: [],
|
OrderId: "",
|
customer: {},
|
// index:['0'],
|
taocan: false,
|
top: true,
|
value: "2",
|
getInfodis: "",
|
srcUrl: "",
|
hides: false,
|
hide: true,
|
beat: false,
|
dialogVisibles: false,
|
charge: false,
|
src: "",
|
url: "",
|
datekey: Date.now(),
|
dialogVisible: false,
|
/** 照相机弹窗模块-start */
|
videoWidth: 200,
|
videoHeight: 200,
|
// canvasWidth:300,
|
// canvasHeight:300,
|
imgSrc: "",
|
thisCancas: null,
|
thisContext: null,
|
thisVideo: null,
|
list2: false,
|
list3: false,
|
list1: true,
|
list: [],
|
activeName: "1",
|
// 遮罩层
|
loading: false,
|
labelPosition: "right",
|
imageUrl: "",
|
isDisabled: false,
|
size: "",
|
tcShow: false,
|
tcShows: false,
|
// 套餐提交按钮
|
confirm: false,
|
TotalPrice: "0.00",
|
TotalPrice1: 0,
|
discount: 10,
|
newpacName: [],
|
// 所有体检项目·
|
allpackageList: [],
|
tjProjectList: [],
|
customerList: [],
|
// 表格
|
tableData: [],
|
tableData1: [],
|
tableDataList: [],
|
file: [],
|
activeName: "1",
|
DataList: [],
|
fData: [],
|
addAddress: {},
|
tjOrderList: [], //单个项目集合
|
tjFlowingWater: {},
|
// 搜索套餐名字
|
name: "",
|
isfalse: false,
|
malldisble: false,
|
responseList: {},
|
showHidden: {},
|
tjNumbers: "",
|
// 选中数组
|
ids: [],
|
// 非单个禁用
|
single: true,
|
// 非多个禁用
|
multiple: true,
|
nodeobj: {},
|
// 是否显示弹出层
|
Seachopen: false,
|
pacId: "",
|
// 结果
|
result: "",
|
proIds: [],
|
// 显示搜索条件
|
showSearch: true,
|
// 树状形状
|
Treedata: [],
|
TreedataList: [],
|
treedataList: [],
|
checkedkey: [],
|
checkedListkey: [],
|
defaultProps: {
|
children: [],
|
label: "proName",
|
},
|
formPacId: "",
|
dXData: [],
|
filecontent: "",
|
// 查询参数
|
queryParam: {
|
pageNum: 1,
|
pageSize: 10,
|
pacName: null,
|
pacRemark: null,
|
},
|
valueUrl: "ws://127.0.0.1:18890",
|
WebSocket: null,
|
// 身份证需要
|
// socket: null,
|
// value: 1,
|
// sendFlag: 0,
|
// sector: 0,
|
// 查询参数
|
queryParams: {
|
pageNum: 1,
|
pageSize: 10,
|
cusName: null,
|
cusSex: null,
|
cusBrithday: null,
|
cusAddr: null,
|
addr: null,
|
cusPhone: null,
|
cusPostcode: null,
|
cusEmail: null,
|
indexCard: null,
|
cusNational: null,
|
cusMarryStatus: null,
|
cusIdcard: null,
|
cusIntroduce: null,
|
cusNumber: null,
|
cusIsvip: null,
|
},
|
// 添加
|
|
// 表单参数
|
// 表单参数
|
form: {
|
cusIdcard: "",
|
tjType: "2",
|
cusSex: 1,
|
cusNational: "1",
|
cusMarryStatus: "1",
|
idType: "1",
|
ageUnit: "0",
|
},
|
// 表单校验
|
rules: {
|
cusName: [{ required: true, message: "", trigger: "blur" }],
|
cusSex: [{ required: true, message: "", trigger: "change" }],
|
address: [{ required: true, message: "", trigger: "blur" }],
|
phone: [{ required: true, message: "", trigger: "blur" }],
|
cusPhone: [{ required: true, message: "", trigger: "change" }],
|
cusBrithday: [{ required: true, message: "", trigger: "change" }],
|
// cusNational: [
|
// { required: true, message: "民族不能为空", trigger: "change" },
|
// ],
|
cusIdcard: [{ required: true, message: "", trigger: "change" }],
|
},
|
};
|
},
|
watch: {
|
filterText(val) {
|
this.$refs.tree.filter(val);
|
},
|
},
|
created() {
|
this.getCurrentDateTime();
|
|
this.startTimer();
|
this.getList1();
|
// this.getData();
|
},
|
methods: {
|
getCurrentDateTime() {
|
const currentDate = new Date();
|
|
// 格式化日期:YYYY-MM-DD
|
|
const year = currentDate.getFullYear();
|
|
const month = String(currentDate.getMonth() + 1).padStart(2, "0");
|
|
const day = String(currentDate.getDate()).padStart(2, "0");
|
|
this.currentDate = `${year}-${month}-${day}`;
|
|
// 格式化时间:HH:mm:ss
|
|
const hours = String(currentDate.getHours()).padStart(2, "0");
|
|
const minutes = String(currentDate.getMinutes()).padStart(2, "0");
|
|
const seconds = String(currentDate.getSeconds()).padStart(2, "0");
|
|
this.currentTime = `${hours}:${minutes}:${seconds}`;
|
},
|
|
startTimer() {
|
this.timer = setInterval(() => {
|
this.getCurrentDateTime();
|
}, 1000); //每秒钟更新一次
|
},
|
filterNode(value, data) {
|
if (!value) return true;
|
return data.proName.indexOf(value) !== -1;
|
},
|
beforeDestroy() {
|
clearInterval(this.timer);
|
}, //清除定时器,以避免内存泄露。
|
freezing(val) {
|
if (val == 0) {
|
this.form.cusName = random(2);
|
} else {
|
this.form.cusName = "";
|
}
|
},
|
getList1() {
|
getInfo().then((response) => {
|
this.getInfodis = response.user.discount;
|
this.hospName = response.hospName;
|
if (this.getInfodis === null) {
|
this.isfalse = true;
|
}
|
});
|
getIsRequired().then((response) => {
|
this.showHidden = response.data;
|
});
|
},
|
inputChange() {
|
const reg =
|
/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
|
if (reg.test(this.form.cusIdcard)) {
|
if (this.form.idType === "1") {
|
var org_birthday = this.form.cusIdcard.substring(6, 14);
|
var org_gender = this.form.cusIdcard.substring(16, 17);
|
var sex = org_gender % 2 == 1 ? 0 : 1;
|
var birthday =
|
org_birthday.substring(0, 4) +
|
"-" +
|
org_birthday.substring(4, 6) +
|
"-" +
|
org_birthday.substring(6, 8);
|
var birthdays = new Date(birthday.replace(/-/g, "-"));
|
let d = new Date();
|
let age =
|
d.getFullYear() -
|
birthdays.getFullYear() -
|
(d.getMonth() < birthdays.getMonth() ||
|
(d.getMonth() == birthdays.getMonth() &&
|
d.getDate() < birthdays.getDate())
|
? 1
|
: 0);
|
this.form.cusSex = sex;
|
this.form.cusBrithday = birthday;
|
this.form.age = age;
|
}
|
// let cusIdCard = this.form.cusIdcard;
|
// getHistryTjOrderByCusIdCard(cusIdCard).then((res) => {
|
// if (res.code == 200) {
|
this.table = true;
|
this.lishi = true;
|
// this.HistoryList = res.data;
|
// }
|
// });
|
} else {
|
return false;
|
}
|
},
|
inputChanges() {
|
this.$refs.historyTj.getlist();
|
},
|
cope() {
|
this.tcShow = true;
|
let cusIdCard = this.form.cusIdcard;
|
getHistryTjOrderProByCusIdCard(cusIdCard).then((res) => {
|
this.copeList = res.data;
|
if (res.msg != "暂无历史记录") {
|
this.dialogVisiblese = true;
|
} else {
|
this.$message.warning("暂无历史体检记录!");
|
}
|
});
|
},
|
copes() {
|
let cusIdCard = this.form.cusIdcard;
|
getHistryTjOrderProByCusIdCard(cusIdCard).then((res) => {
|
this.tableDatas = res.data;
|
if (this.form.cusIdcard) {
|
var cusId = this.form.cusIdcard;
|
} else {
|
this.$message.warning("请先填写信息,再选体检内容");
|
}
|
|
let _this = this;
|
if (this.tableDatas.length != 0) {
|
this.tableDatas.forEach((item) => {
|
if (item.pacId != null) {
|
_this.pacId = item.pacId;
|
} else {
|
item.list.forEach((items) => {
|
_this.proIdList.push(items.proId);
|
});
|
}
|
});
|
} else {
|
_this.pacId = "";
|
}
|
let data = {
|
cusId,
|
pacId: _this.pacId,
|
proIds: _this.proIdList,
|
};
|
getaddtTransition(data).then((response) => {
|
if (response.code === 200) {
|
let cusId = this.form.cusIdcard;
|
this.proIds = [];
|
getTransitionList(cusId).then((response) => {
|
this.tableData1 = response.data;
|
this.TotalPrice1 = 0;
|
if (this.tableData1) {
|
this.tableData1.forEach((item) => {
|
this.TotalPrice1 += item.nowPrice;
|
if (item.pacName === null) {
|
item.pacName = "单项";
|
}
|
if (item.pacName == "单项") {
|
item.list.forEach((item9) => {
|
this.treeList.push(item9.proId);
|
});
|
}
|
this.pacName = item.pacName;
|
});
|
|
const r = /^\+?[0-9][0-9]*$/; //正整数(可以0打头)
|
let TotalPrice = this.TotalPrice1 * (this.discount / 10);
|
if (r.test(TotalPrice)) {
|
this.TotalPrice = TotalPrice + ".00";
|
} else {
|
this.TotalPrice = TotalPrice;
|
}
|
|
this.list1 = false;
|
this.list3 = true;
|
} else {
|
this.list1 = true;
|
|
this.TotalPrice = "0.00";
|
}
|
});
|
}
|
});
|
this.taocan = false;
|
this.defaultKeys = [];
|
});
|
this.dialogVisiblese = false;
|
},
|
getCompetence() {
|
var _this = this;
|
_this.hide = false;
|
_this.hides = true;
|
this.thisCancas = document.getElementById("canvasCamera");
|
this.thisContext = this.thisCancas.getContext("2d");
|
this.thisVideo = document.getElementById("videoCamera");
|
// 旧版本浏览器可能根本不支持mediaDevices,我们首先设置一个空对象
|
if (navigator.mediaDevices === undefined) {
|
navigator.mediaDevices = {};
|
}
|
// 一些浏览器实现了部分mediaDevices,我们不能只分配一个对象
|
// 使用getUserMedia,因为它会覆盖现有的属性。
|
// 这里,如果缺少getUserMedia属性,就添加它。
|
if (navigator.mediaDevices.getUserMedia === undefined) {
|
navigator.mediaDevices.getUserMedia = function (constraints) {
|
// 首先获取现存的getUserMedia(如果存在)
|
var getUserMedia =
|
navigator.webkitGetUserMedia ||
|
navigator.mozGetUserMedia ||
|
navigator.getUserMedia;
|
// 有些浏览器不支持,会返回错误信息
|
// 保持接口一致
|
if (!getUserMedia) {
|
return Promise.reject(
|
new Error("getUserMedia is not implemented in this browser")
|
);
|
}
|
// 否则,使用Promise将调用包装到旧的navigator.getUserMedia
|
return new Promise(function (resolve, reject) {
|
getUserMedia.call(navigator, constraints, resolve, reject);
|
});
|
};
|
}
|
var constraints = {
|
audio: false,
|
video: {
|
width: this.videoWidth,
|
height: this.videoHeight,
|
transform: "scaleX(-1)",
|
},
|
};
|
navigator.mediaDevices
|
.getUserMedia(constraints)
|
.then(function (stream) {
|
// 旧的浏览器可能没有srcObject
|
if ("srcObject" in _this.thisVideo) {
|
_this.thisVideo.srcObject = stream;
|
} else {
|
// 避免在新的浏览器中使用它,因为它正在被弃用。
|
_this.thisVideo.src = window.URL.createObjectURL(stream);
|
}
|
_this.thisVideo.onloadedmetadata = function (e) {
|
_this.thisVideo.play();
|
};
|
})
|
.catch((err) => {});
|
},
|
// 绘制图片(拍照功能)
|
|
setImage() {
|
var _this = this;
|
_this.hide = false;
|
_this.hides = false;
|
// 点击,canvas画图
|
_this.thisContext.drawImage(
|
_this.thisVideo,
|
50,
|
50,
|
_this.videoWidth,
|
_this.videoHeight
|
);
|
// 获取图片base64链接
|
var image = this.thisCancas.toDataURL("image/png");
|
_this.imgSrc = image;
|
this.$emit("refreshDataList", this.imgSrc);
|
|
// this.file.push(dataURLtoFile(this.imgSrc, "file"));
|
let file = dataURLtoFile(this.imgSrc, "file");
|
let formData = new FormData();
|
formData.append("file", file);
|
getLoadFile(formData).then((response) => {
|
this.srcUrl = response.url;
|
});
|
},
|
// base64转文件
|
// dataURLtoFile(image, filename) {
|
// var arr = image.split(",");
|
// var mime = arr[0].match(/:(.*?);/)[1];
|
// var bstr = atob(arr[1]);
|
// var n = bstr.length;
|
// var u8arr = new Uint8Array(n);
|
// while (n--) {
|
// u8arr[n] = bstr.charCodeAt(n);
|
// }
|
// return new File([u8arr], filename, { type: mime });
|
// },
|
|
// 关闭摄像头
|
|
// stopNavigator() {
|
// this.thisVideo.srcObject.getTracks()[0].stop();
|
// this.beat = false;
|
// },
|
|
handleClose(done) {
|
this.$confirm("确认关闭?")
|
.then((_) => {
|
done();
|
})
|
.catch((_) => {});
|
},
|
|
/** 查询信息列表 */
|
getList() {
|
// listCustomer(this.queryParams).then((response) => {
|
// this.customerList = response.rows;
|
// this.total = response.total;
|
// this.loading = false;
|
// });
|
getInfo().then((response) => {
|
this.getInfodis = response.user.discount;
|
if (this.getInfodis === null) {
|
this.isfalse = true;
|
}
|
});
|
let cusSex = this.form.cusSex;
|
//全部套餐
|
if (cusSex) {
|
this.loading = true;
|
deptTreeSelect(cusSex).then((response) => {
|
this.newpacName = response.rows;
|
this.loading = false;
|
});
|
}
|
},
|
getData() {
|
/** 查询部门下拉树结构 */
|
projectGetList().then((response) => {
|
this.treedataList = response.data.list;
|
this.dXData = response.data.list;
|
return;
|
});
|
},
|
// 表单重置
|
reset() {
|
this.form = {
|
cusId: null,
|
cusName: null,
|
cusSex: null,
|
cusBrithday: null,
|
cusAddr: null,
|
addr: null,
|
cusPhone: null,
|
cusPassword: null,
|
cusPostcode: null,
|
cusEmail: null,
|
indexCard: null,
|
cusNational: null,
|
cusMarryStatus: null,
|
cusIdcard: null,
|
cusIntroduce: null,
|
cusNumber: null,
|
cusIsvip: null,
|
createBy: null,
|
createTime: null,
|
updateBy: null,
|
updateTime: null,
|
deleted: null,
|
};
|
this.resetForm("form");
|
},
|
/** 重置按钮操作 */
|
resetQuery() {
|
// this.resetForm("form");
|
// this.form = {};
|
if (this.confirm === true) {
|
this.$tab.refreshPage();
|
} else {
|
if (this.TotalPrice1 != 0) {
|
MessageBox.confirm("您有未提交的选项,确定重置吗", "系统提示", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
}).then(() => {
|
let cusId = this.form.cusId;
|
let data = {
|
cusId,
|
pacId: "",
|
proIds: [],
|
};
|
getaddtTransition(data).then((response) => {});
|
this.$tab.refreshPage();
|
});
|
} else {
|
this.$tab.refreshPage();
|
}
|
}
|
},
|
|
// 折扣
|
numberChange(currentValue, oldValue) {
|
this.discount = currentValue;
|
if (this.discount <= this.getInfodis) {
|
this.discount = this.getInfodis;
|
}
|
this.TotalPrice = (this.TotalPrice1 * (this.discount / 10)).toFixed(2);
|
},
|
|
/** 登记提交按钮 */
|
submitForm() {
|
let _this = this;
|
this.$refs["form"].validate((valid) => {
|
if (valid) {
|
// return;
|
if (this.form.cusSex === "女") {
|
this.form.cusSex = 1;
|
}
|
if (this.form.cusSex === "男") {
|
this.form.cusSex = 0;
|
}
|
if (this.form.cusSex === "未知") {
|
this.form.cusSex = 2;
|
}
|
addCustomer(this.form).then((response) => {
|
this.responseList = response.data;
|
this.$modal.msgSuccess("新增成功");
|
// let cusSex = this.form.cusSex;
|
// //全部套餐
|
// deptTreeSelect(cusSex).then((response) => {
|
// this.newpacName = response.rows;
|
// this.loading = false;
|
// });
|
// this.handleQuery();
|
_this.tcShow = true;
|
_this.tcShows = true;
|
_this.isDisabled = true;
|
_this.top = false;
|
});
|
}
|
});
|
},
|
|
getmailType() {
|
if (this.getType == "2") {
|
this.addAddress.getUser = this.form.cusName;
|
this.addAddress.phone = this.form.cusPhone;
|
this.addAddress.address = this.form.cusAddr;
|
this.malldisble = true;
|
}
|
},
|
|
// 根据身份证查询
|
handleQuery() {
|
this.loading = true;
|
let _this = this;
|
let cusIdcard = this.form.cusIdcard;
|
if (cusIdcard) {
|
getCusIdcard(cusIdcard).then((response) => {
|
if (response.data) {
|
this.form = response.data;
|
if (this.form.discount === null) {
|
this.discount = 10;
|
} else {
|
this.discount = this.form.discount;
|
}
|
if (this.form.tjType === null) {
|
this.form.tjType = "2";
|
}
|
if (this.form.reservationId != null) {
|
if (this.form.groupingId) {
|
_this.tcShow = true;
|
_this.tcShows = false;
|
let data = {
|
// teamNo: this.form.teamNo,
|
groupingId: this.form.groupingId,
|
};
|
getByTeamNo(data).then((res) => {
|
this.tableData1 = res.data;
|
if (this.tableData1) {
|
this.tableData1.forEach((item) => {
|
this.TotalPrice1 += item.ysPrice;
|
console.log(this.TotalPrice1);
|
this.TotalPrice = (
|
this.TotalPrice1 *
|
(this.discount / 10)
|
).toFixed(2);
|
if (item.pacName === null) {
|
item.pacName = "单项";
|
}
|
});
|
this.list1 = false;
|
this.list2 = true;
|
this.list3 = false;
|
} else {
|
this.list1 = true;
|
this.TotalPrice = "0.00";
|
}
|
});
|
} else {
|
if (this.form) {
|
_this.tcShow = true;
|
_this.tcShows = true;
|
_this.formPacId = this.form.pacId;
|
let cusId = this.form.cusIdcard;
|
getTransitionList(cusId).then((response) => {
|
this.tableData1 = response.data;
|
if (this.tableData1) {
|
this.TotalPrice1 = 0;
|
this.tableData1.forEach((item) => {
|
this.TotalPrice1 += item.nowPrice;
|
console.log(this.TotalPrice1);
|
this.TotalPrice = (
|
this.TotalPrice1 *
|
(this.discount / 10)
|
).toFixed(2);
|
if (item.pacName === null) {
|
item.pacName = "单项";
|
}
|
if (item.pacName == "单项") {
|
item.list.forEach((item9) => {
|
this.treeList.push(item9.proId);
|
});
|
}
|
});
|
this.list1 = false;
|
this.list3 = true;
|
} else {
|
this.list1 = true;
|
}
|
});
|
} else {
|
this.getList();
|
_this.tcShow = false;
|
}
|
}
|
} else {
|
_this.tcShow = true;
|
this.$message.warning("暂无预约信息");
|
}
|
_this.isDisabled = true;
|
} else {
|
this.$message.warning("未查到用户信息");
|
}
|
});
|
// .catch((error) => {
|
// this.$message.error("此用户不存在");
|
// });
|
} else {
|
let configKey = "getInfoFromSqlData";
|
getconfigKey(configKey).then((res) => {
|
if (res.code == 200) {
|
if (res.msg == "N") {
|
var websocket = null;
|
var url = this.valueUrl;
|
if ("WebSocket" in window) {
|
websocket = new WebSocket(url);
|
} else if ("MozWebSocket" in window) {
|
websocket = new MozWebSocket(url);
|
} else {
|
// console.log("SockJS");
|
}
|
|
if (websocket == null) {
|
alert("创建WebSocket对象失败");
|
}
|
|
//连接发生错误的回调方法
|
websocket.onerror = function () {
|
alert("请检查读卡器连接是否正常");
|
};
|
|
//连接成功建立的回调方法
|
websocket.onopen = function () {
|
this.websocket = websocket;
|
// 连接设备
|
var jsonObj = {
|
name: "connect",
|
};
|
var jStr = JSON.stringify(jsonObj);
|
this.websocket.send(jStr);
|
alert("请放身份证再点确认");
|
var jsonObj = {
|
name: "readCert",
|
};
|
var jStr = JSON.stringify(jsonObj);
|
this.websocket.send(jStr);
|
this.dialogVisible = false;
|
};
|
|
//接收到消息的回调方法
|
websocket.onmessage = function (event) {
|
var resultObj = eval("(" + event.data + ")");
|
//resultFlag为0代表读卡成功
|
if (
|
resultObj.name == "readCard" ||
|
resultObj.name == "readCert" ||
|
resultObj.name == "PushWithImg" ||
|
resultObj.name == "PushWithOutImg"
|
) {
|
if (resultObj.resultFlag == "0") {
|
//回显相关数据
|
_this.form.cusName = resultObj.resultContent.partyName;
|
_this.form.cusSex =
|
resultObj.resultContent.gender == "0" ? "女" : "男";
|
_this.form.cusNational = resultObj.resultContent.nation;
|
_this.form.cusBrithday = resultObj.resultContent.bornDay;
|
if (_this.form.cusBrithday) {
|
_this.form.cusBrithday = _this.form.cusBrithday.replace(
|
/^(\d{4})(\d{2})(\d{2})$/,
|
"$1-$2-$3"
|
);
|
}
|
_this.form.cusAddr = resultObj.resultContent.certAddress;
|
_this.form.cusIdcard = resultObj.resultContent.certNumber;
|
_this.imageUrl =
|
"data:image/jpeg;base64," +
|
resultObj.resultContent.identityPic;
|
if (
|
resultObj.name == "readCert" ||
|
resultObj.name == "PushWithImg"
|
) {
|
this.imageUrl =
|
"data:image/jpeg;base64," +
|
resultObj.resultContent.identityPrintPic;
|
}
|
} else if (resultObj.resultFlag == "-1") {
|
if (resultObj.errorMsg == "端口打开失败") {
|
//alert("读卡器未连接");
|
} else {
|
//alert(resultObj.errorMsg);
|
}
|
} else if (resultObj.resultFlag == "-2") {
|
//alert(resultObj.errorMsg);
|
}
|
} else if (resultObj.name == "getStatus") {
|
if (resultObj.resultFlag == "0") {
|
if (resultObj.status == "0") {
|
} else {
|
alert("设备连接已断开,请检查读卡器连接");
|
}
|
}
|
}
|
};
|
|
//连接关闭的回调方法
|
websocket.onclose = function () {
|
alert("读卡器连接关闭");
|
};
|
} else if (res.msg == "Y") {
|
this.$refs.aaa.open = true;
|
this.$refs.aaa.getAllList();
|
this.$refs.aaa.title = "证件字典";
|
}
|
}
|
});
|
}
|
},
|
|
handleChanges(param1) {
|
if (this.form.pacCode == "不详") {
|
this.form.cusIdcard = param1[0].xh;
|
} else {
|
this.form.cusIdcard = param1[0].pacCode;
|
}
|
|
// this.form.cusName = param1[0].pacName;
|
// this.form.cusPhone = param1[0].pacRemark;
|
},
|
|
// selected(row, index) {
|
// if (this.formPacId !== null) {
|
// if (row.pacId == this.formPacId) {
|
// setTimeout(() => {
|
// if (this.$refs.tb) {
|
// this.$refs.tb.toggleRowSelection(row, true);
|
// }
|
// }, 10);
|
// return true;
|
// } else {
|
// return false;
|
// }
|
// } else {
|
// return this.newpacName;
|
// }
|
// },
|
|
// 上传头像
|
handleAvatarSuccess(res, file) {
|
this.imageUrl = URL.createObjectURL(file.raw);
|
},
|
beforeAvatarUpload(file) {
|
const isJPG = file.type === "image/jpeg";
|
const isLt2M = file.size / 1024 / 1024 < 2;
|
if (!isJPG) {
|
this.$message.error("上传头像图片只能是 JPG 格式!");
|
}
|
if (!isLt2M) {
|
this.$message.error("上传头像图片大小不能超过 2MB!");
|
}
|
return isJPG && isLt2M;
|
},
|
|
// 取消按钮
|
cancel() {
|
this.Seachopen = false;
|
this.taocan = false;
|
this.malldisble = false;
|
this.defaultKeys = [];
|
},
|
|
cancell() {
|
if (this.addAddress.address) {
|
this.malldisble = false;
|
} else {
|
this.$message.error("请填写地址");
|
}
|
},
|
|
/** 搜索操作 */
|
handle() {
|
this.loading = true;
|
this.name = this.queryParam.pacName;
|
if (this.name) {
|
getPackageListName(this.name).then((response) => {
|
this.newpacName = response.data;
|
this.loading = false;
|
});
|
} else {
|
deptTreeSelect().then((response) => {
|
this.newpacName = response.rows;
|
this.loading = false;
|
});
|
}
|
},
|
|
// 点击多选框获取选中数据
|
// handleSelectionChange(selection, row) {
|
// this.tableData = selection;
|
// if (selection.length > 1) {
|
// let del_row = selection.shift();
|
// this.$refs.tb.toggleRowSelection(del_row, false); //设置这一行取消选中
|
// }
|
// this.single = selection.length !== 1;
|
// this.multiple = !selection.length;
|
// this.tableData.forEach((item) => {
|
// this.fData = item.tjProjectList;
|
// });
|
// if (selection[0]) {
|
// this.DataList = [];
|
// this.data = JSON.parse(JSON.stringify(this.dXData));
|
// if (selection[0].tjProjectList) {
|
// selection[0].tjProjectList.forEach((selectionitem) => {
|
// this.treedataList.forEach((item) => {
|
// if (selectionitem.proName == item.proName) {
|
// item.disabled = true;
|
// item.tjProjectList = [];
|
// }
|
// if (item.tjProjectList) {
|
// item.tjProjectList.forEach((item1) => {
|
// if (selectionitem.proName == item1.proName) {
|
// item1.disabled = true;
|
// item1.tjProjectList = [];
|
// }
|
// if (item1.tjProjectList) {
|
// item1.tjProjectList.forEach((item2) => {
|
// if (selectionitem.proName == item2.proName) {
|
// item2.disabled = true;
|
// item2.tjProjectList = [];
|
// }
|
// });
|
// }
|
// });
|
// }
|
// });
|
// });
|
// }
|
// } else {
|
// this.treedataList = JSON.parse(JSON.stringify(this.dXData));
|
// return;
|
// }
|
// },
|
|
Package() {
|
this.taocan = true;
|
let cusSex = this.form.cusSex;
|
this.datekey = Date.now();
|
//全部套餐
|
this.loading = true;
|
deptTreeSelect(cusSex).then((response) => {
|
this.newpacName = response.rows;
|
|
try {
|
if (this.tableData1.length >= 1) {
|
this.newpacName.forEach((item3) => {
|
this.tableData1.forEach((item4) => {
|
item4.list.forEach((item6) => {
|
if (item6.pacName === item3.pacName) {
|
this.$nextTick(() => {
|
this.$refs.tb.toggleRowSelection(item3, true);
|
});
|
throw Error();
|
}
|
});
|
});
|
});
|
}
|
} catch (error) {}
|
this.loading = false;
|
});
|
// this.getData();
|
},
|
|
// 点击多选框获取选中数据
|
handleSelectionChange(selection, row) {
|
this.tableData = selection;
|
if (selection.length > 1) {
|
let del_row = selection.shift();
|
this.$refs.tb.toggleRowSelection(del_row, false); //设置这一行取消选中
|
}
|
this.single = selection.length !== 1;
|
this.multiple = !selection.length;
|
if (selection[0]) {
|
// this.DataList = [];
|
// this.data = JSON.parse(JSON.stringify(this.dXData));
|
selection[0].tjProjectList.forEach((selectionitem) => {
|
this.Treedata.forEach((item) => {
|
if (selectionitem.proName == item.proName) {
|
item.disabled = true;
|
item.tjProjectList = [];
|
}
|
// if (item.tjProjectList) {
|
// item.tjProjectList.forEach((item1) => {
|
// if (selectionitem.proName == item1.proName) {
|
// item1.disabled = true;
|
// item1.tjProjectList = [];
|
// }
|
// if (item1.tjProjectList) {
|
// item1.tjProjectList.forEach((item2) => {
|
// if (selectionitem.proName == item2.proName) {
|
// item2.disabled = true;
|
// item2.tjProjectList = [];
|
// }
|
// });
|
// }
|
// });
|
// }
|
});
|
this.TreedataList.forEach((item3) => {
|
if (item3.proParentId == selectionitem.proId) {
|
item.disabled = true;
|
}
|
});
|
});
|
} else {
|
this.treedataList = JSON.parse(JSON.stringify(this.dXData));
|
return;
|
}
|
},
|
handleClick(tab, event) {
|
if (tab.label == "单项") {
|
this.DataList = [];
|
this.getDataList();
|
}
|
},
|
getDataList() {
|
this.loading = true;
|
getProParentIdDxList().then((response) => {
|
this.Treedata = response.data.list;
|
if (this.tableData[0]) {
|
this.tableData[0].tjProjectList.forEach((selectionitem) => {
|
this.Treedata.forEach((item) => {
|
if (selectionitem.proId == item.proId) {
|
item.disabled = true;
|
}
|
});
|
});
|
}
|
this.checkedkey.push(this.Treedata[0].proId);
|
let proId = this.Treedata[0].proId;
|
getProSonDxList(proId).then((res) => {
|
this.TreedataList = res.data.list;
|
this.TreedataList.forEach((item) => {
|
this.checkedListkey.push(item.proId);
|
this.DataList.push(item);
|
this.DataList.forEach((item) => {
|
item.propinName = this.Treedata[0].proName;
|
});
|
});
|
this.TotalPrice1 = 0;
|
|
if (this.DataList.length != 0) {
|
this.list1 = false;
|
this.DataList.forEach((item) => {
|
this.TotalPrice1 = item.proPrice + this.TotalPrice1;
|
});
|
}
|
});
|
this.loading = false;
|
});
|
},
|
|
// 点击获取每个树节点
|
handleCurrentChecked(data, checked, checkedNodes) {
|
this.dataObj = data;
|
if (checked.checkedNodes.length != 0) {
|
this.$refs.tree.setCheckedKeys([data.proId]);
|
let proId = data.proId;
|
getProSonDxList(proId).then((res) => {
|
this.TreedataList = res.data.list;
|
this.TreedataList.forEach((item) => {
|
this.checkedListkey.push(item.proId);
|
this.DataList.push(item);
|
this.spliceData();
|
this.DataList.forEach((item1) => {
|
if (item1.proParentId == data.proId) {
|
item1.propinName = data.proName;
|
}
|
});
|
});
|
this.TotalPrice1 = 0;
|
if (this.DataList.length != 0) {
|
this.list1 = false;
|
this.DataList.forEach((item) => {
|
this.TotalPrice1 = item.proPrice + this.TotalPrice1;
|
});
|
}
|
});
|
} else if (checked.checkedNodes.length == 0) {
|
let proId = data.proId;
|
getProSonDxList(proId).then((res) => {
|
this.TreedataList = res.data.list;
|
this.checkedListkey = [];
|
});
|
}
|
},
|
|
spliceData() {
|
for (var i = 0; i < this.DataList.length; i++) {
|
for (var j = i + 1; j < this.DataList.length; j++) {
|
if (this.DataList[i].proId == this.DataList[j].proId) {
|
//如果第一个等于第二个,splice方法删除第二个
|
this.DataList.splice(j, 1);
|
j--;
|
}
|
}
|
}
|
return this.DataList;
|
},
|
|
// 点击获取每个树节点
|
handleCurrentChecked1(data, checked, checkedNodes) {
|
if (checked == false) {
|
this.DataList.forEach((item, index) => {
|
if (item.proId == data.proId) {
|
this.DataList.splice(index, 1);
|
this.TotalPrice1 = 0;
|
this.DataList.forEach((item1) => {
|
this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
|
});
|
}
|
});
|
} else if (checked == true) {
|
this.DataList.push(data);
|
this.DataList.forEach((item1) => {
|
if (item1.proParentId == this.dataObj.proId) {
|
item1.propinName = this.dataObj.proName;
|
}
|
});
|
this.spliceData();
|
this.TotalPrice1 = 0;
|
this.DataList.forEach((item1) => {
|
this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
|
});
|
}
|
},
|
|
/** 删除按钮操作 */
|
handleDelete(row) {
|
this.DataList.forEach((item, index) => {
|
if (item.proId == row.proId) {
|
this.DataList.splice(index, 1);
|
this.TotalPrice1 = 0;
|
this.DataList.forEach((item1) => {
|
this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
|
});
|
}
|
});
|
},
|
// // 默认接受四个值 { 当前行的值, 当前列的值, 行的下标, 列的下标 }
|
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
console.log(row, column, rowIndex, columnIndex);
|
let fields = ["propinName"];
|
let cellValue = row[column.property];
|
if (cellValue && fields.includes(column.property)) {
|
let prevRow = this.DataList[rowIndex - 1];
|
let nextRow = this.DataList[rowIndex + 1];
|
if (prevRow && prevRow[column.property] === cellValue) {
|
return { rowspan: 0, colspan: 0 };
|
} else {
|
let countRowspan = 1;
|
while (nextRow && nextRow[column.property] === cellValue) {
|
nextRow = this.DataList[++countRowspan + rowIndex];
|
}
|
if (countRowspan > 1) {
|
return { rowspan: countRowspan, colspan: 1 };
|
}
|
}
|
}
|
},
|
|
// 项目提交
|
submit() {
|
if (this.form.cusIdcard) {
|
var cusId = this.form.cusIdcard;
|
} else {
|
this.$message.warning("请先填写信息,再选体检内容");
|
}
|
|
let _this = this;
|
if (this.tableData.length != 0) {
|
this.tableData.forEach((item) => {
|
_this.pacId = item.pacId;
|
});
|
} else {
|
_this.pacId = "";
|
}
|
this.proIds = [];
|
if (this.DataList.length != 0) {
|
this.DataList.forEach((item) => {
|
this.proIds.push(item.proId);
|
});
|
}
|
let data = {
|
cusId,
|
pacId: _this.pacId,
|
proIds: this.proIds,
|
};
|
getaddtTransition(data).then((response) => {
|
if (response.code === 200) {
|
let cusId = this.form.cusIdcard;
|
this.proIds = [];
|
getTransitionList(cusId).then((response) => {
|
this.tableData1 = response.data;
|
this.TotalPrice1 = 0;
|
if (this.tableData1) {
|
this.tableData1.forEach((item) => {
|
this.TotalPrice1 += item.nowPrice;
|
if (item.pacName === null) {
|
item.pacName = "单项";
|
}
|
if (item.pacName == "单项") {
|
item.list.forEach((item9) => {
|
this.treeList.push(item9.proId);
|
});
|
}
|
this.pacName = item.pacName;
|
});
|
|
const r = /^\+?[0-9][0-9]*$/; //正整数(可以0打头)
|
let TotalPrice = this.TotalPrice1 * (this.discount / 10);
|
if (r.test(TotalPrice)) {
|
this.TotalPrice = TotalPrice + ".00";
|
} else {
|
this.TotalPrice = TotalPrice;
|
}
|
|
this.list1 = false;
|
this.list3 = true;
|
} else {
|
this.list1 = true;
|
|
this.TotalPrice = "0.00";
|
}
|
});
|
}
|
});
|
this.taocan = false;
|
this.defaultKeys = [];
|
},
|
// changeCategoryKeys(val) {
|
// this.proIds = [];
|
// this.proIds = val;
|
// if (this.DataList.length != 0) {
|
// this.DataList.forEach((item) => {
|
// this.proIds.push(item.proId);
|
// });
|
// } else {
|
// this.proIds = [];
|
// }
|
// },
|
submitCheckinfee() {
|
let _this = this;
|
if (_this.tjCategory !== "") {
|
let List = _this.tableData1; //单个项目信息
|
if (this.responseList.cusId) {
|
var userId = this.responseList.cusId;
|
} else {
|
var userId = _this.form.cusId;
|
}
|
let tjType = _this.form.tjType;
|
if (this.tableData[0]) {
|
var pacId = this.tableData[0].pacId;
|
}
|
|
//tjOrderList//这个是处理完的每一项套餐信息
|
List.forEach((item) => {
|
if (item.list) {
|
item.list.forEach((item1) => {
|
this.tjOrderList.push({
|
proName: item1.proName,
|
proPrice: item1.nowPrice,
|
proId: item1.proId,
|
});
|
});
|
} else if (item.tjProjectList) {
|
item.tjProjectList.forEach((item1) => {
|
this.tjOrderList.push({
|
proName: item1.proName,
|
proPrice: item1.priceNow,
|
proId: item1.proId,
|
});
|
});
|
} else {
|
this.tjOrderList.push({
|
proName: item.proName,
|
proPrice: item.ysPrice,
|
proId: item.proId,
|
});
|
}
|
});
|
let copeWith = this.TotalPrice1;
|
let paidIn = this.TotalPrice.toString();
|
let discount = this.discount;
|
this.tjFlowingWater = { copeWith, paidIn, discount };
|
|
let data;
|
if (pacId || this.getType == "2") {
|
data = {
|
photo: this.srcUrl,
|
pacId,
|
tjOrderList: this.tjOrderList,
|
tjFlowingWater: this.tjFlowingWater,
|
userId,
|
tjType,
|
getType: this.getType,
|
addAddress: this.addAddress,
|
tjCategory: this.tjCategory,
|
};
|
} else {
|
data = {
|
photo: this.srcUrl,
|
tjOrderList: this.tjOrderList,
|
tjFlowingWater: this.tjFlowingWater,
|
userId,
|
tjType,
|
getType: this.getType,
|
tjCategory: this.tjCategory,
|
};
|
}
|
getOrder(data).then((res) => {
|
this.$modal.msgSuccess("提交成功");
|
this.tjNumbers = res.msg;
|
this.charge = true;
|
let data = {
|
tjNum: res.msg,
|
};
|
getfindTj(data).then((response) => {
|
if (response.data) {
|
this.feeitems = response.data;
|
if (this.feeitems.length != 0) {
|
this.$nextTick(() => {
|
this.$refs.multipleTable.toggleRowSelection(
|
this.feeitems[0],
|
true
|
);
|
});
|
} else {
|
this.$refs.multipleTable.clearSelection();
|
}
|
this.loading = false;
|
} else {
|
this.feeitems = [];
|
this.loading = false;
|
}
|
});
|
});
|
} else {
|
this.$modal.msgError("请选择体检类别");
|
}
|
},
|
|
// 表格单选
|
handleSelect(selection, val) {
|
this.selectionList = this.$refs.multipleTable.selection;
|
this.selectionList.forEach((item) => {
|
this.formIn.name = item.tjName;
|
this.formIn.phone = item.tjPhone;
|
this.OrderId = item.tjOrderId;
|
if (item.tjFlowingWater != null) {
|
this.waterId = item.tjFlowingWater.waterId;
|
this.tollCollectorName = item.tjFlowingWater.updateBy;
|
this.tjSerialNumber = item.tjFlowingWater.tjSerialNumber;
|
}
|
this.customer = {
|
cusIdcard: item.idCard,
|
cusName: item.tjName,
|
cusPhone: item.tjPhone,
|
cusSex: item.sex === "男" ? "0" : "1",
|
};
|
if (item.tjComp != null) {
|
this.standard = {
|
company: item.tjComp,
|
tjType: item.tjType === "团队" ? "1" : "2",
|
};
|
} else {
|
this.standard = {
|
tjType: item.tjType === "团队" ? "1" : "2",
|
};
|
}
|
});
|
if (selection.length > 1) {
|
let del_row = selection.shift();
|
this.$refs.multipleTable.toggleRowSelection(del_row, false);
|
}
|
let data = {
|
type: "0",
|
OrderId: this.OrderId,
|
};
|
getByTjNum(data).then((response) => {
|
if (response.data) {
|
this.Chargesubitem = response.data;
|
this.formInline.price = 0;
|
this.adviceList = [];
|
if (this.Chargesubitem.length != 0) {
|
this.Chargesubitem.forEach((item) => {
|
this.adviceList.push({
|
proId: item.proId,
|
proName: item.proName,
|
});
|
if (this.formInline.price) {
|
this.formInline.price += item.proOrdPrice;
|
this.formInline.paidIn += item.proPrice;
|
} else {
|
this.formInline.price = item.proOrdPrice;
|
this.formInline.paidIn = item.proPrice;
|
}
|
});
|
const r = /^\+?[0-9][0-9]*$/; //正整数(可以以打头)
|
//const r=/^\+?[1-9][0-9]*$/;//正整数
|
if (r.test(this.formInline.paidIn)) {
|
this.formInline.paidIn = this.formInline.paidIn + ".00";
|
}
|
this.discount =
|
(this.formInline.paidIn / this.formInline.price) * 10;
|
if (this.discount <= this.getInfodis) {
|
this.discount = this.getInfodis;
|
}
|
} else {
|
this.discount = 10;
|
this.formInline.paidIn = "0.00";
|
}
|
|
this.total = response.data.total;
|
} else {
|
this.tableList = [];
|
}
|
});
|
},
|
// 收费
|
SubmitEvent() {
|
if (this.feeitems.length != 0) {
|
this.refundPros.push(
|
{ standard: this.standard },
|
{ adviceList: this.adviceList }
|
);
|
let data = {
|
paidIn: this.formInline.paidIn,
|
discount: this.discount,
|
copeWith: this.formInline.price,
|
waterId: this.waterId,
|
tollCollectorName: this.tollCollectorName,
|
tjSerialNumber: this.tjSerialNumber,
|
payType: this.formInline.payType,
|
customer: this.customer,
|
refundPros: this.refundPros,
|
orderId: this.OrderId,
|
};
|
getwater(data).then((res) => {
|
if (res.msg != "该订单已付款 无须再付") {
|
this.mobanId = res.data.mobanId;
|
this.waterId = res.data.waterId;
|
this.$modal.msgSuccess("操作成功");
|
this.charge = false;
|
this.isDisabled = false;
|
this.top = true;
|
this.reset();
|
getPrintSetUp().then((res) => {
|
if (res.msg == "0") {
|
this.$nextTick(() => {
|
const style =
|
"@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //打印时去掉眉页眉尾
|
printJS({
|
printable: "printBill", // 标签元素id
|
noPrint: ".noPrint",
|
type: "html",
|
header: "",
|
targetStyles: ["*"],
|
maxWidth: "800",
|
scanStyles: true, //打印必须加上,不然页面上的css样式无效
|
style,
|
});
|
});
|
} else {
|
const tjnumber = this.tjNumbers;
|
const viewNum = "809623418249637888";
|
const params = { viewNum, tjnumber };
|
this.$tab.openPage("个人发票", "/report/charge", params);
|
}
|
});
|
} else {
|
this.$message({
|
type: "warning ",
|
message: "查询到您已退款,请您重新预约!",
|
});
|
}
|
});
|
} else {
|
this.$message({
|
type: "warning ",
|
message: "请先查询客户信息!",
|
});
|
}
|
},
|
|
listgetOrder(data) {
|
getOrder(data).then((res) => {
|
this.$modal.msgSuccess("提交成功");
|
// this.dialogVisibles = true;
|
// this.url = window.webkitURL.createObjectURL(res); //将后端返回的blob文件读取出url
|
//调接口显示导检单
|
const tjNumber = res.msg;
|
const viewNum = "792931586196398080";
|
const params = { viewNum, tjNumber };
|
this.$tab.openPage("导诊单", "/report/breDailyReport", params);
|
this.confirm = true;
|
});
|
this.$tab.refreshPage();
|
},
|
|
// 最后提交按钮
|
submitPrice() {
|
let _this = this;
|
if (_this.tjCategory !== "") {
|
let List = _this.tableData1; //单个项目信息
|
if (this.responseList.cusId) {
|
var userId = this.responseList.cusId;
|
} else {
|
var userId = _this.form.cusId;
|
}
|
let tjType = _this.form.tjType;
|
if (this.tableData[0]) {
|
var pacId = this.tableData[0].pacId;
|
}
|
|
//tjOrderList//这个是处理完的每一项套餐信息
|
List.forEach((item) => {
|
if (item.list) {
|
item.list.forEach((item1) => {
|
this.tjOrderList.push({
|
proName: item1.proName,
|
proPrice: item1.nowPrice,
|
proId: item1.proId,
|
});
|
});
|
} else if (item.tjProjectList) {
|
item.tjProjectList.forEach((item1) => {
|
this.tjOrderList.push({
|
proName: item1.proName,
|
proPrice: item1.priceNow,
|
proId: item1.proId,
|
});
|
});
|
} else {
|
this.tjOrderList.push({
|
proName: item.proName,
|
proPrice: item.ysPrice,
|
proId: item.proId,
|
});
|
}
|
});
|
let copeWith = this.TotalPrice1;
|
let paidIn = this.TotalPrice.toString();
|
let discount = this.discount;
|
this.tjFlowingWater = { copeWith, paidIn, discount };
|
|
let data;
|
if (pacId || this.tjOrderList.length > 0) {
|
data = {
|
photo: this.srcUrl,
|
pacId,
|
tjOrderList: this.tjOrderList,
|
tjFlowingWater: this.tjFlowingWater,
|
userId,
|
tjType,
|
tjCategory: this.tjCategory,
|
};
|
this.listgetOrder(data);
|
} else if (pacId || this.tjOrderList.length > 0) {
|
data = {
|
photo: this.srcUrl,
|
tjOrderList: this.tjOrderList,
|
tjFlowingWater: this.tjFlowingWater,
|
userId,
|
tjType,
|
tjCategory: this.tjCategory,
|
};
|
this.listgetOrder(data);
|
} else {
|
this.$message({
|
type: "warning ",
|
message: "请选择套餐!",
|
});
|
}
|
}else {
|
this.$modal.msgError("请选择体检类别");
|
}
|
},
|
},
|
};
|
</script>
|
|
|
<style>
|
.el-form-item__error {
|
display: none;
|
}
|
|
.el-col-19 {
|
width: 80.166667%;
|
}
|
|
.el-table__header-wrapper .el-checkbox {
|
display: none;
|
}
|
|
.avatar-uploader .el-upload {
|
border: 1px dashed #d9d9d9;
|
border-radius: 6px;
|
cursor: pointer;
|
position: relative;
|
overflow: hidden;
|
}
|
|
.avatar-uploader .el-upload:hover {
|
border-color: #409eff;
|
}
|
|
.avatar-uploader-icon {
|
font-size: 28px;
|
color: #8c939d;
|
width: 148px;
|
height: 148px;
|
line-height: 148px;
|
text-align: center;
|
}
|
|
.avatar {
|
width: 178px;
|
height: 178px;
|
display: block;
|
}
|
|
.tab4 {
|
width: 100%;
|
display: flex;
|
}
|
|
.tab3 {
|
max-height: 400px;
|
overflow-y: auto;
|
border: 1px solid #d9d9d9;
|
}
|
|
.tab2 {
|
width: 750px;
|
border: 1px solid #d9d9d9;
|
height: 490px;
|
overflow-y: scroll;
|
padding-left: 10px;
|
}
|
|
/* .el-collapse,.el-collapse-item_wrap{
|
border:none;
|
} */
|
.el-table--fit {
|
border: 1px solid #d9d9d9;
|
}
|
|
.el-tooltip__popper {
|
font-size: 14px;
|
max-width: 50%;
|
}
|
|
.tab {
|
display: flex;
|
width: 100%;
|
}
|
|
.tab1 {
|
margin-left: 35px;
|
width: 980px;
|
display: flex;
|
margin-top: 8px;
|
/* justify-content: space-evenly; */
|
align-items: center;
|
}
|
|
.main {
|
height: 700px;
|
overflow: hidden;
|
}
|
|
#printIframe::-webkit-scrollbar {
|
width: 6px;
|
}
|
|
/* 修改 滚动条的 下面 的 样式 */
|
#printIframe::-webkit-scrollbar-track {
|
background-color: white;
|
-webkit-border-radius: 2em;
|
-moz-border-radius: 2em;
|
border-radius: 2em;
|
}
|
|
/* 修改 滑块 */
|
#printIframe::-webkit-scrollbar-thumb {
|
background-color: #dcdfe6;
|
-webkit-border-radius: 2em;
|
-moz-border-radius: 2em;
|
border-radius: 2em;
|
}
|
|
.img_bg_camera {
|
margin-top: -120px;
|
width: 300px;
|
height: 300px;
|
}
|
|
.el-input--suffix .el-input__inner {
|
padding-right: 15px;
|
}
|
|
.el-date-editor.el-input,
|
.el-date-editor.el-input__inner {
|
width: 95.9%;
|
}
|
|
/* .el-dialog {
|
width: 1000px;
|
min-height: 500px;
|
}
|
.el-dialog__header {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
}
|
.el-dialog__body {
|
padding: 0;
|
} */
|
.container {
|
display: flex;
|
align-items: center;
|
justify-content: flex-start;
|
}
|
|
.content {
|
margin-bottom: 25px;
|
}
|
</style>
|