<template>
|
<div class="app-container">
|
<el-row>
|
<el-col :span="18">
|
<div>
|
<el-form
|
style="margin: 4px 8px"
|
:inline="true"
|
ref="form"
|
:model="form"
|
:rules="rules"
|
label-width="106px"
|
>
|
<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="请输入姓名" style="width: 99%;"/>
|
</el-form-item>
|
<el-form-item label="性别" prop="cusSex">
|
<el-select
|
v-model="form.cusSex"
|
placeholder="请选择性别"
|
@change="formchang"
|
style="width: 94%"
|
>
|
<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="idType">
|
<el-select v-model="form.idType" placeholder="请选择证件类型" style="width: 93%;">
|
<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>
|
<el-form
|
style="margin: 4px 8px"
|
:inline="true"
|
ref="form"
|
:model="form"
|
:rules="rules"
|
label-width="106px"
|
>
|
<el-form-item
|
label="电话"
|
prop="cusPhone"
|
:rules="[
|
{
|
required: true,
|
validator: (rule, value, callback) => {
|
if (!form.cusPhone) {
|
callback('');
|
} else if (form.cusPhone) {
|
callback();
|
}
|
},
|
trigger: 'blur',
|
},
|
]"
|
>
|
<el-input v-model="form.cusPhone" placeholder="请输入电话" />
|
</el-form-item>
|
|
<el-form-item label="婚姻" prop="cusMarryStatus" >
|
<el-select
|
v-model="form.cusMarryStatus"
|
placeholder="请选择婚姻状况"
|
style="width: 94%"
|
>
|
<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="cusIdcard"
|
:rules="[
|
{
|
required: true,
|
validator: (rule, value, callback) => {
|
if (!form.cusIdcard) {
|
callback('');
|
} else if (form.cusIdcard) {
|
callback();
|
}
|
},
|
trigger: 'blur',
|
},
|
]"
|
>
|
<span
|
slot="label"
|
style="display: inline-block; border-bottom: 2px solid blue"
|
@click="handleQuery"
|
>
|
证件号码
|
</span>
|
<el-input
|
v-model="form.cusIdcard"
|
placeholder="请输入身份证号"
|
@input="inputChange"
|
/>
|
<!-- <i
|
style="font-size: 17px; margin-left: 3px"
|
class="el-icon-search"
|
@click="handleQuery"
|
></i> -->
|
</el-form-item>
|
</el-form>
|
<el-form
|
style="margin: 4px 8px"
|
:inline="true"
|
ref="form"
|
:model="form"
|
:rules="rules"
|
label-width="106px"
|
>
|
<el-form-item label="邮箱" prop="cusEmail">
|
<el-input v-model="form.cusEmail" placeholder="请输入邮箱" />
|
</el-form-item>
|
<el-form-item label="民族" prop="cusNational">
|
<el-select
|
filterable
|
v-model="form.cusNational"
|
placeholder="请选择民族"
|
style="width: 93%;"
|
>
|
<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="age">
|
<el-input
|
v-model="form.age"
|
:disabled="isDisabled"
|
style="width: 28%"
|
/>
|
<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>
|
<el-form
|
style="margin: 4px 8px"
|
:inline="true"
|
ref="form"
|
:model="form"
|
:rules="rules"
|
label-width="106px"
|
>
|
<el-form-item label="卡号" prop="indexCard">
|
<el-input v-model="form.indexCard" placeholder="请输入卡号" />
|
</el-form-item>
|
<el-form-item label="职业" prop="career">
|
<el-select
|
filterable
|
:disabled="isDisabled"
|
v-model="form.career"
|
placeholder="请输入职业"
|
style="width: 94%"
|
>
|
<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="tjType">
|
<el-select
|
v-model="form.tjType"
|
placeholder="请选择体检类型" style="width: 94%;"
|
>
|
<el-option
|
v-for="dict in dict.type.dict_team"
|
:key="dict.value"
|
:label="dict.label"
|
:value="parseInt(dict.value)"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
<el-form
|
style="margin: 4px 8px"
|
:inline="true"
|
ref="form"
|
:model="form"
|
:rules="rules"
|
label-width="106px"
|
>
|
<el-form-item label="单位" prop="company">
|
<el-input v-model="form.company" placeholder="请输入工作单位" />
|
</el-form-item>
|
<el-form-item label="体检类别" prop="category">
|
<el-select v-model="form.category" placeholder="请选择体检类别" style="width: 95%;">
|
<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 label="部门" prop="department">
|
<el-input v-model="form.department" placeholder="请输入部门" />
|
</el-form-item>
|
|
</el-form>
|
<el-form
|
style="margin: 4px 8px"
|
:inline="true"
|
ref="form"
|
:model="form"
|
:rules="rules"
|
label-width="106px"
|
>
|
<el-form-item label="现住地址" prop="cusAddr">
|
<el-input v-model="form.cusAddr" placeholder="请输入现居住地址" />
|
</el-form-item>
|
<el-form-item label="预约时间" prop="timeRegion" >
|
<el-select
|
v-model="form.timeRegion"
|
placeholder="请选择预约时间" style="width: 95%;"
|
>
|
<el-option
|
v-for="dict in dict.type.tj_time_region"
|
:key="dict.value"
|
:label="dict.label"
|
:value="dict.value"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="预约日期" prop="reservationTime">
|
<el-date-picker
|
v-model="form.reservationTime"
|
type="date"
|
value-format="yyyy-MM-dd"
|
placeholder="选择日期"
|
:picker-options="setDisabled"
|
style="width: 88%"
|
>
|
</el-date-picker>
|
</el-form-item>
|
|
</el-form>
|
</div>
|
</el-col>
|
</el-row>
|
|
<el-dialog
|
title="选择套餐"
|
:visible.sync="taocan"
|
width="80%"
|
height="700px"
|
>
|
<el-tabs
|
type="border-card"
|
style="height: 538px; margin: 0 10px; width: 100%"
|
@tab-click="handleClick"
|
v-model="activeNames"
|
>
|
<el-tab-pane label="套餐" name="first">
|
<el-form
|
:model="queryParam"
|
ref="queryForm"
|
size="small"
|
:inline="true"
|
v-if="showSearch"
|
@submit.native.prevent
|
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="tab9">
|
<div class="grid-content bg-purple" style="width: 100%">
|
<el-table
|
v-loading="loading"
|
element-loading-text="正在加载中..."
|
element-loading-spinner="el-icon-loading"
|
border
|
:data="newpacName"
|
@select="handleSelectionChange"
|
height="430"
|
ref="tb"
|
style="width: 1000px"
|
>
|
<template slot="empty">数据正在加载中</template>
|
<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"
|
/>
|
<!-- <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="单项" name="second" >
|
<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" style="width:100%">
|
<el-col :span="8">
|
<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"
|
:render-content="renderContent"
|
>
|
</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"
|
:render-content="renderContent"
|
>
|
</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>
|
<h3 v-else style="font-weight: 600;">合计:{{ marryall }}元</h3>
|
</div>
|
</el-col>
|
</el-row>
|
</div>
|
</el-tab-pane>
|
</el-tabs>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="taocan = false">取 消</el-button>
|
<el-button type="primary" @click="submit">确 定</el-button>
|
</span>
|
</el-dialog>
|
|
<el-row type="flex" class="row-bg" justify="space-around">
|
<el-col>
|
<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="100px"
|
style="margin-left: 10px"
|
>
|
<el-form-item label="应收金额" style="margin-right: 20px">
|
<el-input
|
placeholder="应收金额"
|
:value="TotalPrice1 + '.00'"
|
disabled
|
></el-input>
|
</el-form-item>
|
<!-- <el-form-item label="优惠折扣" style="margin-right: 20px">
|
<el-input style="width: 100px" text="number" v-model="discount" :value="discount/100"></el-input>
|
<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
|
placeholder="实收金额"
|
v-model="TotalPrice"
|
disabled
|
></el-input>
|
</el-form-item>
|
<el-form-item>
|
<el-button type="primary" @click="Package" size="mini"
|
>选择套餐</el-button
|
>
|
<el-button
|
type="primary"
|
@click="resetpackage"
|
size="mini"
|
>重置套餐</el-button
|
>
|
<el-button
|
type="primary"
|
@click="submitPrice"
|
size="mini"
|
:disabled="confirm"
|
>预约登记</el-button
|
>
|
<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-form-item>
|
</el-form>
|
</template>
|
|
<div style="text-align: center; margin-bottom: 10px">
|
已选项目列表
|
</div>
|
<div
|
style="
|
padding: 0px 6px;
|
border: 1px solid #e6ebf5;
|
max-height: 420px;
|
overflow: auto;
|
width: 950px;
|
margin-left: 25px;
|
"
|
>
|
<el-collapse v-model="index" accordion>
|
<div v-for="(item, index) in tableData1" :key="index">
|
<el-collapse-item :name="index">
|
<template slot="title">
|
{{
|
item.pacName +
|
":" +
|
item.parentName +
|
" (应收金额:" +
|
item.ordPrice +
|
".00元 / 实收金额:" +
|
item.nowPrice +
|
".00元)"
|
}}
|
</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>
|
<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="proSex" label="性别" width="180">
|
</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="空腹">
|
</el-table-column>
|
</el-table>
|
</el-collapse-item>
|
</div>
|
</el-collapse>
|
</div>
|
|
<div
|
style="
|
position: absolute;
|
bottom: 100px;
|
left: 500px;
|
width: 700px;
|
display: none;
|
"
|
>
|
<div id="printBill">
|
<div style="font-size: 13px; color: #000000">
|
<div style="width: 48%; margin-top: 10px">
|
姓名:{{ form.cusName }}
|
</div>
|
<div style="width: 48%; margin-top: 10px">
|
性别:{{ form.cusSex === 0 ? "男" : "女" }}
|
</div>
|
<div style="width: 48%; margin-top: 10px">
|
电话:{{ form.cusPhone }}
|
</div>
|
<div style="width: 48%; margin-top: 10px">
|
日期:{{ form.reservationTime }}
|
</div>
|
<div style="width: 58%; margin-top: 10px">
|
套餐:{{ pacName }}
|
</div>
|
<div style="width: 100%; margin-top: 10px">温馨提示:</div>
|
<div style="width: 100%">1、采血,腹部彩超检查后方可用餐。</div>
|
<div style="width: 100%">
|
2、近期若有生育计划及未成年人,不宜进行胸片、双能骨密度等放射检查。
|
</div>
|
<div style="width: 100%">
|
3、怀孕或可能已受孕的女士,还应避免妇科、放射科及阴式超声检查。
|
</div>
|
<div style="width: 100%">
|
4、经期女性不宜进行妇科及尿常规检查。
|
</div>
|
<div style="width: 100%">
|
5、若您在等待检查过程中有疑问,请及时联系导检护士。
|
</div>
|
<div style="width: 100%">
|
6、体检结束后请将导检单交还至前台。
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<!-- <el-table :data="tableData1" style="width: 100%" row-key="id" border lazy :load="load"
|
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
|
<el-table-column prop="proName" label="项目" align="center">
|
</el-table-column>
|
<el-table-column prop="nowPrice" label="现价" align="center">
|
</el-table-column>
|
<el-table-column prop="ordPrice" label="原价" align="center">
|
</el-table-column>
|
</el-table> -->
|
</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="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>
|
<historyTj :cusIdCard="form.cusIdcard" ref="historyTj"></historyTj>
|
</div>
|
</template>
|
|
<script>
|
import printJS from "print-js";
|
import { getInfo } from "@/api/login";
|
import {
|
deptTreeSelect,
|
projectGetList,
|
getCusIdcard,
|
getPackageListName,
|
getaddtTransition,
|
getTransitionList,
|
getProParentIdDxList,
|
getProSonDxList,
|
getaddTj,
|
getHistryTjOrderByCusIdCard,
|
getHistryTjOrderProByCusIdCard,
|
} from "@/api/system/tijian";
|
import { MessageBox } from "element-ui";
|
import VTreeTransfer from "../tijian/TreeTransfer.vue";
|
import historyTj from "@/components/historyTj/index";
|
export default {
|
components: {
|
VTreeTransfer,
|
historyTj,
|
},
|
dicts: [
|
"dict_user_national",
|
"dict_user_marry",
|
"sys_yes_no",
|
"sys_user_sex",
|
"dict_team",
|
"tj_time_region",
|
"dict_tjtype",
|
"dict_user_cardtype",
|
"dict_ageunit",
|
"dict_job",
|
],
|
name: "Tijian",
|
|
data() {
|
let checkPhoneNum = (rule, value, callback) => {
|
let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/);
|
if (value == "" && value == undefined && !value) {
|
return callback("");
|
} else if (value != undefined && value != "") {
|
return callback();
|
} else if (!patter.test(value)) {
|
return callback("");
|
}
|
};
|
// const isCnNewID = (rule, value, callback) => {
|
// var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; //加权因子
|
// var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2]; //校验码
|
// if (/^\d{17}\d|x$/i.test(value)) {
|
// var sum = 0,
|
// idx;
|
// for (var i = 0; i < value.length - 1; i++) {
|
// // 对前17位数字与权值乘积求和
|
// sum += parseInt(value.substr(i, 1), 10) * arrExp[i];
|
// }
|
// // 计算模(固定算法)
|
// idx = sum % 11;
|
// // 检验第18为是否与校验码相等
|
// if (arrValid[idx] == value.substr(17, 1).toUpperCase()) {
|
// callback();
|
// } else {
|
// this.form.cusSex = "";
|
// callback("身份证格式有误");
|
// }
|
// } else {
|
// this.form.cusSex = "";
|
// callback("身份证格式有误");
|
// }
|
// };
|
return {
|
marryall: 0,
|
filterText: "",
|
proIdList: [],
|
tableDatas: [],
|
dialogVisiblese: false,
|
lishi: false,
|
table: false,
|
HistoryList: {},
|
index: 0,
|
taocan: false,
|
proIds: "",
|
alue: "2",
|
setDisabled: {
|
// 返回禁用时间
|
disabledDate(time) {
|
// return time.getTime() < Date.now()// 不可选历史天、不可选当前天、可选未来天
|
return time.getTime() < Date.now() - 8.64e7; // 不可选历史天、可选当前天、可选未来天
|
},
|
},
|
value1: "",
|
pacName: "",
|
hides: false,
|
hide: true,
|
beat: false,
|
barcode: null,
|
dialogVisibles: false,
|
src: "",
|
url: "",
|
dialogVisible: false,
|
datekey: Date.now(),
|
/** 照相机弹窗模块-start */
|
videoWidth: 200,
|
videoHeight: 200,
|
activeNames: 'first',
|
// canvasWidth:300,
|
// canvasHeight:300,
|
imgSrc: "",
|
isfalse: false,
|
thisCancas: null,
|
thisContext: null,
|
thisVideo: null,
|
getInfodis: "",
|
list1: true,
|
list: [],
|
activeName: "1",
|
// 遮罩层
|
loading: false,
|
list2: false,
|
labelPosition: "right",
|
imageUrl: "",
|
isDisabled: false,
|
size: "",
|
tcShow: false,
|
// 套餐提交按钮
|
confirm: false,
|
TotalPrice: "0.00",
|
TotalPrice1: 0,
|
discount: 10,
|
newpacName: [],
|
defaultKeys: [],
|
// 所有体检项目·
|
allpackageList: [],
|
tjProjectList: [],
|
customerList: [],
|
// 表格
|
tableData: [],
|
tableData1: [],
|
tableData2: [],
|
tableDataList: [],
|
|
activeName: "1",
|
DataList: [],
|
fData: [],
|
tjOrderList: [], //单个项目集合
|
tjFlowingWater: {},
|
// 搜索套餐名字
|
name: "",
|
// 选中数组
|
ids: [],
|
// 非单个禁用
|
single: true,
|
// 非多个禁用
|
multiple: true,
|
nodeobj: {},
|
// 是否显示弹出层
|
Seachopen: false,
|
pacId: "",
|
// 结果
|
result: "",
|
proIds: [],
|
// 显示搜索条件
|
showSearch: true,
|
// 树状形状
|
Treedata: [],
|
TreedataList: [],
|
treedataList: [],
|
checkedkey: [],
|
checkedListkey: [],
|
defaultProps: {
|
children: [],
|
label: "proName",
|
},
|
formPacId: "",
|
dXData: [],
|
// 查询参数
|
queryParam: {
|
pageNum: 1,
|
pageSize: 10,
|
pacName: null,
|
pacRemark: null,
|
},
|
socket: null,
|
value: 1,
|
sendFlag: 0,
|
sector: 0,
|
treeList: [],
|
// 查询参数
|
queryParams: {
|
pageNum: 1,
|
pageSize: 10,
|
cusName: null,
|
cusSex: null,
|
cusBrithday: null,
|
cusAddr: 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,
|
category: "01",
|
cusSex: 1,
|
cusNational: "1",
|
timeRegion: "1",
|
cusMarryStatus: "1",
|
idType: "1",
|
ageUnit: "0",
|
},
|
// 表单校验
|
rules: {
|
cusName: [
|
{ required: true, validator: checkPhoneNum, trigger: "blur" },
|
],
|
cusSex: [
|
{ required: true, validator: checkPhoneNum, trigger: "change" },
|
],
|
category: [
|
{ required: true, validator: checkPhoneNum, trigger: "change" },
|
],
|
cusBrithday: [
|
{ required: true, validator: checkPhoneNum, trigger: "blur" },
|
],
|
// cusAddr: [
|
// { required: true, message: "现居住地址不能为空", trigger: "blur" },
|
// ],
|
cusPhone: [
|
{ required: true, validator: checkPhoneNum, trigger: "blur" },
|
],
|
reservationTime: [
|
{ required: true, validator: checkPhoneNum, trigger: "change" },
|
],
|
timeRegion: [
|
{ required: true, validator: checkPhoneNum, trigger: "blur" },
|
],
|
// cusIdcard: [
|
// { required: true, message: "请输入身份证号", trigger: "blur" },
|
// {
|
// //调用定义的方法校验格式是否正确
|
// validator: isCnNewID,
|
// trigger: "blur",
|
// },
|
// ],
|
cusIdcard: [
|
{ required: true, validator: checkPhoneNum, trigger: "blur" },
|
{
|
pattern: /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/,
|
validator: checkPhoneNum,
|
trigger: "blur",
|
validator: this.validSjh,
|
},
|
],
|
},
|
};
|
},
|
watch: {
|
filterText(val) {
|
this.$refs.tree.filter(val);
|
},
|
},
|
created() {
|
this.getList1();
|
},
|
methods: {
|
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;
|
let cusSex = sex;
|
this.loading = true;
|
// deptTreeSelect(cusSex).then((response) => {
|
// this.newpacName = response.rows;
|
// this.loading = false;
|
// });
|
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 this.$message.error("请输入正确的身份证号!");;
|
}
|
},
|
inputChanges() {
|
this.$refs.historyTj.getlist();
|
},
|
|
filterNode(value, data) {
|
if (!value) return true;
|
// return data.proName.indexOf(value) !== -1;
|
if(value == data.proName){
|
return data.proName.indexOf(value) !== -1;
|
}else{
|
return data.proEngName.indexOf(value) !== -1;
|
}
|
},
|
cope() {
|
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.msg === "操作成功") {
|
let cusId = this.form.cusIdcard;
|
getTransitionList(cusId).then((response) => {
|
this.tableData1 = response.data;
|
// this.checkSelectable();
|
this.TotalPrice1 = 0;
|
if (this.tableData1) {
|
this.tableData1.forEach((item) => {
|
this.TotalPrice1 += item.nowPrice;
|
this.TotalPrice = this.TotalPrice1 + ".00";
|
if (item.pacName === null) {
|
item.pacName = "单项";
|
}
|
this.pacName = item.pacName;
|
});
|
this.list1 = false;
|
this.list3 = true;
|
} else {
|
this.list1 = true;
|
this.TotalPrice = "0.00";
|
}
|
});
|
}
|
});
|
this.taocan = false;
|
});
|
this.dialogVisiblese = false;
|
},
|
handleClose(done) {
|
this.$confirm("确认关闭?")
|
.then((_) => {
|
done();
|
})
|
.catch((_) => {});
|
},
|
getList1() {
|
getInfo().then((response) => {
|
this.getInfodis = response.user.discount;
|
if (this.getInfodis === null) {
|
this.isfalse = true;
|
}
|
});
|
},
|
/** 查询信息列表 */
|
getList() {
|
this.loading = true;
|
|
let cusSex = this.form.cusSex;
|
//全部套餐
|
if (cusSex) {
|
deptTreeSelect(cusSex).then((response) => {
|
this.newpacName = response.rows;
|
this.loading = false;
|
});
|
} else {
|
deptTreeSelect().then((response) => {
|
this.newpacName = response.rows;
|
this.loading = false;
|
});
|
}
|
// this.getData();
|
},
|
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,
|
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,
|
company: null,
|
reservationTime: null,
|
};
|
this.resetForm("form");
|
},
|
/** 重置按钮操作 */
|
resetQuery() {
|
// this.resetForm("form");
|
// this.form = {};
|
if (this.confirm === true) {
|
this.$tab.refreshPage();
|
} else {
|
this.$tab.refreshPage();
|
}
|
},
|
|
/** 提交按钮 */
|
// submitForm() {
|
// let _this = this;
|
// this.$refs["form"].validate((valid) => {
|
// if (valid) {
|
// // return;
|
// addCustomer(this.form).then((response) => {
|
// this.$modal.msgSuccess("新增成功");
|
// let cusSex = "3";
|
// //全部套餐
|
// deptTreeSelect(cusSex).then((response) => {
|
// this.newpacName = response.rows;
|
// this.loading = false;
|
// });
|
// this.handleQuery();
|
// _this.tcShow = true;
|
// _this.isDisabled = 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.tjType == null) {
|
this.form.tjType = 2;
|
}
|
this.loading = false;
|
if (this.form) {
|
_this.tcShow = true;
|
_this.formPacId = this.form.pacId;
|
let cusId = this.form.cusIdcard;
|
getTransitionList(cusId).then((response) => {
|
this.tableData1 = response.data;
|
if (this.tableData1.length != 0) {
|
this.tableData1.forEach((item) => {
|
if (item.pacName === null) {
|
item.pacName = "单项";
|
}
|
this.pacName = item.pacName;
|
if (item.pacName == "单项") {
|
item.list.forEach((item9) => {
|
this.treeList.push(item9.proId);
|
});
|
}
|
});
|
this.list1 = false;
|
} else {
|
this.list1 = true;
|
}
|
this.TotalPrice1 = 0;
|
response.data.forEach((item) => {
|
this.TotalPrice1 += item.nowPrice;
|
this.TotalPrice = this.TotalPrice1;
|
});
|
this.TotalPrice = this.TotalPrice + ".00";
|
// let cusSex = this.form.cusSex;
|
// //全部套餐
|
// deptTreeSelect(cusSex).then((response) => {
|
// this.newpacName = response.rows;
|
// this.loading = false;
|
// });
|
});
|
} else {
|
this.getList();
|
_this.tcShow = false;
|
}
|
_this.isDisabled = true;
|
} else {
|
this.$message.warning("未查到用户信息");
|
}
|
})
|
.catch((error) => {
|
this.$message.error("此用户不存在");
|
});
|
} else {
|
var host = "ws://127.0.0.1:5001/YckjCard";
|
if (this.socket == null) {
|
this.socket = new WebSocket(host);
|
if (this.socket != null) {
|
alert("连接成功.");
|
}
|
} else {
|
alert("设备已打开.");
|
}
|
try {
|
this.socket.onmessage = function (msg) {
|
// if (typeof msg.data == "string") {
|
// var msgM = msg.data + "";
|
// resultMsg("读卡返回信息:" + msg.data);
|
// }
|
// else {
|
// alert("连接异常,请检查驱动.");
|
// }
|
};
|
} catch (ex) {
|
alert("连接异常,请检查驱动.");
|
}
|
}
|
},
|
|
// checkSelectable(row, index) {
|
// if (!row) {
|
// return;
|
// }
|
// if (this.tableData1.length != 0) {
|
// for (let j = 0; j < this.tableData1.length; j++) {
|
// for (let i = 0; i < row.tjProjectList.length; i++) {
|
// if (this.tableData1[j].pacName == "单项") {
|
// if (
|
// row.tjProjectList[i].proName === this.tableData1[j].parentName
|
// ) {
|
// return false;
|
// }
|
// }
|
// }
|
// return true;
|
// }
|
// } else {
|
// return true;
|
// }
|
// },
|
resetpackage(){
|
if (this.form.cusIdcard) {
|
var cusId = this.form.cusIdcard;
|
} else {
|
this.$message.warning("请先填写信息,再选体检内容");
|
}
|
let _this = this;
|
_this.pacId = "";
|
this.proIds = [];
|
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.length>=1) {
|
this.list1 = false;
|
this.list3 = true;
|
} else {
|
this.list1 = true;
|
|
this.TotalPrice = "0.00";
|
}
|
});
|
}
|
});
|
},
|
|
Package() {
|
this.taocan = true;
|
let cusSex = this.form.cusSex;
|
this.activeNames="first"
|
this.datekey = Date.now();
|
//全部套餐
|
this.loading = true;
|
deptTreeSelect(cusSex).then((response) => {
|
this.newpacName = response.rows;
|
try {
|
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.getDataList();
|
},
|
|
// 折扣
|
numberChange(currentValue, oldValue) {
|
this.discount = currentValue;
|
if (this.getInfodis === null) {
|
this.isfalse = true;
|
} else {
|
if (this.discount <= this.getInfodis) {
|
this.discount = this.getInfodis;
|
}
|
}
|
|
this.TotalPrice = (this.TotalPrice1 * (this.discount / 10)).toFixed(2);
|
},
|
|
formchang(val) {
|
let cusSex = val;
|
this.loading = true;
|
//全部套餐
|
deptTreeSelect(cusSex).then((response) => {
|
this.newpacName = response.rows;
|
this.loading = false;
|
});
|
},
|
|
// 取消按钮
|
cancel() {
|
this.Seachopen = false;
|
},
|
|
/** 搜索操作 */
|
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;
|
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();
|
}
|
},
|
renderContent(h, { node, data, store }) {
|
return (
|
<span class="custom-tree-node">
|
<span>{node.label}</span>
|
<span>({data.proPrice}元)</span>
|
</span>
|
);
|
},
|
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;
|
this.marryall = 0;
|
if (this.DataList.length != 0) {
|
this.list1 = false;
|
this.DataList.forEach((item) => {
|
this.TotalPrice1 = item.proPrice + this.TotalPrice1;
|
this.marryall += item.proPrice;
|
});
|
}
|
});
|
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;
|
this.marryall = 0;
|
if (this.DataList.length != 0) {
|
this.list1 = false;
|
this.DataList.forEach((item) => {
|
this.TotalPrice1 = item.proPrice + this.TotalPrice1;
|
this.marryall += item.proPrice;
|
});
|
}
|
});
|
} 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.marryall = 0;
|
this.DataList.forEach((item1) => {
|
this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
|
this.marryall += item1.proPrice;
|
});
|
}
|
});
|
} 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.marryall = 0;
|
this.DataList.forEach((item1) => {
|
this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
|
this.marryall += item1.proPrice;
|
});
|
}
|
},
|
|
/** 删除按钮操作 */
|
handleDelete(row) {
|
this.DataList.forEach((item, index) => {
|
if (item.proId == row.proId) {
|
this.DataList.splice(index, 1);
|
this.marryall = 0;
|
this.TotalPrice1 = 0;
|
this.DataList.forEach((item1) => {
|
this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
|
this.marryall += item1.proPrice;
|
});
|
}
|
});
|
},
|
// // 默认接受四个值 { 当前行的值, 当前列的值, 行的下标, 列的下标 }
|
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 };
|
}
|
}
|
}
|
},
|
|
// 点击获取每个树节点
|
// handleCurrentChecked(data, checked, checkedNodes) {
|
// if (checked === true) {
|
// this.DataList.push(data);
|
// } else {
|
// this.DataList.pop(data);
|
// }
|
// this.proIds = [];
|
// if (this.DataList.length != 0) {
|
// this.DataList.forEach((item) => {
|
// this.proIds.push(item.proId);
|
// });
|
// } else {
|
// this.proIds = [];
|
// }
|
// },
|
// changeCategoryKeys(val) {
|
// this.proIds = [];
|
// this.proIds = val;
|
// },
|
|
// 项目提交
|
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.msg === "操作成功") {
|
let cusId = this.form.cusIdcard;
|
getTransitionList(cusId).then((response) => {
|
this.tableData1 = response.data;
|
// this.checkSelectable();
|
this.TotalPrice1 = 0;
|
if (this.tableData1) {
|
this.tableData1.forEach((item) => {
|
this.TotalPrice1 += item.nowPrice;
|
this.TotalPrice = this.TotalPrice1 + ".00";
|
if (item.pacName === null) {
|
item.pacName = "单项";
|
}
|
this.pacName = item.pacName;
|
});
|
this.list1 = false;
|
this.list3 = true;
|
} else {
|
this.list1 = true;
|
this.TotalPrice = "0.00";
|
}
|
});
|
}
|
});
|
this.taocan = false;
|
},
|
|
// 最后提交按钮
|
submitPrice() {
|
let _this = this;
|
if (_this.tableData1.length > 0) {
|
let userId = this.form.cusIdcard;
|
let tjType = this.form.tjType == 2 ? "个人" : "团队";
|
if (this.tableData[0]) {
|
var pacId = this.tableData[0].pacId;
|
}
|
// let copeWith = this.TotalPrice1;
|
// let paidIn = this.TotalPrice;
|
// let discount = this.discount;
|
// this.tjFlowingWater = { copeWith, paidIn, discount };
|
if (this.form.cusName === "") {
|
this.$message.warning("姓名不能为空");
|
}
|
// if (this.tableData1 == []) {
|
// this.$message.warning("请选择您要体检的内容");
|
// }
|
let data;
|
if (pacId) {
|
data = {
|
pacId,
|
department: this.form.department,
|
tjCategory: this.form.category,
|
address: this.form.cusAddr,
|
marriage: this.form.cusMarryStatus,
|
nation: this.form.cusNational,
|
reservationTime: this.form.reservationTime,
|
phoe: this.form.cusPhone,
|
name: this.form.cusName,
|
idCard: this.form.cusIdcard,
|
company: this.form.company,
|
email: this.form.cusEmail,
|
discount: this.discount,
|
idType: this.form.idType,
|
age: this.form.age,
|
ageUnit: this.form.ageUnit,
|
career: this.form.career,
|
// tjFlowingWater: this.tjFlowingWater,
|
userId,
|
tjType,
|
sex: this.form.cusSex,
|
timeRegion: this.form.timeRegion,
|
};
|
} else {
|
data = {
|
department: this.form.department,
|
tjCategory: this.form.category,
|
address: this.form.cusAddr,
|
marriage: this.form.cusMarryStatus,
|
nation: this.form.cusNational,
|
reservationTime: this.form.reservationTime,
|
name: this.form.cusName,
|
phoe: this.form.cusPhone,
|
idCard: this.form.cusIdcard,
|
company: this.form.company,
|
email: this.form.cusEmail,
|
discount: this.discount,
|
idType: this.form.idType,
|
age: this.form.age,
|
ageUnit: this.form.ageUnit,
|
career: this.form.career,
|
// tjFlowingWater: this.tjFlowingWater,
|
userId,
|
tjType,
|
sex: this.form.cusSex,
|
timeRegion: this.form.timeRegion,
|
};
|
}
|
getaddTj(data).then((res) => {
|
if (res.code === 200) {
|
this.$modal.msgSuccess("登记成功");
|
this.resetQuery();
|
setTimeout(function () {
|
const style =
|
"@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //打印时去掉眉页眉尾
|
printJS({
|
printable: "printBill", // 标签元素id
|
type: "html",
|
header: "",
|
targetStyles: ["*"],
|
scanStyles: false, //打印必须加上,不然页面上的css样式无效
|
style,
|
});
|
}, 100);
|
}
|
_this.confirm = true;
|
});
|
} else {
|
this.$message.warning("请选择您要体检的内容");
|
}
|
},
|
},
|
};
|
</script>
|
|
|
<style >
|
.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;
|
}
|
|
.tab3 {
|
max-height: 400px;
|
overflow-y: auto;
|
border: 1px solid #d9d9d9;
|
}
|
|
.el-col-8 {
|
width: 330px;
|
}
|
|
.tab9 {
|
width: 100%;
|
display: flex;
|
}
|
|
.tab8 {
|
width: 100%;
|
display: flex;
|
}
|
|
.tab7 {
|
width: 100%;
|
border: 1px solid #d9d9d9;
|
height: 476px;
|
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%;
|
}
|
|
.tab6 {
|
width: 1050px;
|
display: flex;
|
margin-top: 8px;
|
/* justify-content: space-evenly;
|
align-items: center; */
|
align-items: center;
|
margin-left: 20px;
|
}
|
|
.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-dialog {
|
width: 1000px;
|
min-height: 500px;
|
}
|
|
.el-dialog__header {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
}
|
|
.el-dialog__body {
|
padding: 0;
|
} */
|
.tab5 {
|
width: 230px;
|
display: flex;
|
flex-direction: column;
|
}
|
</style>
|
|
|