<template>
|
<div class="app-container">
|
<el-dialog
|
:title="title"
|
:visible.sync="open1"
|
width="1000px"
|
append-to-body
|
>
|
<el-form
|
ref="form1"
|
:model="form1"
|
:rules="rules1"
|
label-width="100px"
|
:inline="true"
|
>
|
<el-form-item label="单位名称" prop="cnName">
|
<el-input v-model="form1.cnName" placeholder="请输入中文名称" />
|
</el-form-item>
|
<el-form-item label="联系人" prop="contactPerson">
|
<el-input v-model="form1.contactPerson" placeholder="请输入联系人" />
|
</el-form-item>
|
<el-form-item label="联系电话" prop="contactPhone">
|
<el-input v-model="form1.contactPhone" placeholder="请输入联系电话" />
|
</el-form-item>
|
<el-form-item label="税号" prop="taxNumber">
|
<el-input v-model="form1.taxNumber" placeholder="请输入税号" />
|
</el-form-item>
|
<el-form-item label="法人" prop="legalPerson">
|
<el-input v-model="form1.legalPerson" placeholder="请输入法人" />
|
</el-form-item>
|
<el-form-item label="注册地址" prop="registerAddress">
|
<el-input
|
v-model="form1.registerAddress"
|
placeholder="请输入注册地址"
|
/>
|
</el-form-item>
|
<el-form-item label="通讯地址" prop="mailingAddress">
|
<el-input
|
v-model="form1.mailingAddress"
|
placeholder="请输入通讯地址"
|
/>
|
</el-form-item>
|
<el-form-item label="开户银行" prop="bankAccount">
|
<el-input v-model="form1.bankAccount" placeholder="请输入开户银行" />
|
</el-form-item>
|
<el-form-item label="银行账户" prop="countNum">
|
<el-input v-model="form1.countNum" placeholder="请输入银行账户" />
|
</el-form-item>
|
<el-form-item label="邮箱" prop="email">
|
<el-input v-model="form1.email" placeholder="请输入邮箱" />
|
</el-form-item>
|
<el-form-item label="负责人" prop="principal">
|
<el-input v-model="form1.principal" placeholder="请输入负责人" />
|
</el-form-item>
|
<el-form-item label="网址" prop="url">
|
<el-input v-model="form1.url" placeholder="请输入网址" />
|
</el-form-item>
|
<el-form-item label="传真" prop="faxNumber">
|
<el-input v-model="form1.faxNumber" placeholder="请输入传真" />
|
</el-form-item>
|
<el-form-item label="行政区划名称" prop="areaName">
|
<el-input v-model="form1.areaName" placeholder="请输入行政区划名称" />
|
</el-form-item>
|
<el-form-item label="排序" prop="orderNum">
|
<el-input v-model="form1.orderNum" placeholder="请输入排序" />
|
</el-form-item>
|
<el-form-item label="有效时间" prop="validTime">
|
<el-date-picker
|
clearable
|
v-model="form1.validTime"
|
type="date"
|
value-format="yyyy-MM-dd"
|
placeholder="请选择有效时间"
|
>
|
</el-date-picker> </el-form-item
|
><br />
|
<el-form-item label="备注" prop="remark">
|
<el-input
|
v-model="form1.remark"
|
type="textarea"
|
placeholder="请输入内容"
|
:rows="2"
|
label-width="400px"
|
style="width: 830px"
|
resize="none"
|
></el-input>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer2">
|
<el-button type="primary" @click="submitFormS">确 定</el-button>
|
<el-button @click="cancel1">取 消</el-button>
|
</div>
|
</el-dialog>
|
<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
|
@input="form.cusName = $event.replace(/\s/g, '')"
|
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
|
maxlength="11"
|
v-model="form.cusPhone"
|
placeholder="请输入电话"
|
@input="form.cusPhone = $event.replace(/\s/g, '')"
|
/>
|
</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="handleIdCardInput"
|
style="width: 190px"
|
/>
|
<!-- <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="请输入邮箱"
|
@input="form.cusEmail = $event.replace(/\s/g, '')"
|
/>
|
</el-form-item>
|
<el-form-item label="民族" prop="cusNational">
|
<el-select
|
filterable
|
v-model="form.cusNational"
|
placeholder="请选择民族"
|
style="width: 94%"
|
>
|
<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: 19%"
|
>
|
<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="请输入卡号"
|
@input="form.indexCard = $event.replace(/\s/g, '')"
|
/>
|
</el-form-item>
|
<el-form-item label="职业" prop="career">
|
<el-select
|
: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="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="compName">
|
<el-select
|
:disabled="isDisabled"
|
v-model="form.compName"
|
remote
|
default-first-option
|
allow-create
|
filterable
|
style="width: 200px"
|
placeholder="请选择单位名称"
|
clearable
|
@change="idFn1"
|
>
|
<el-option
|
v-for="dict in CompanyList"
|
:key="dict.cnName"
|
:label="dict.cnName"
|
:value="dict.cnName"
|
/>
|
</el-select>
|
<!-- <i class="el-icon-circle-plus-outline" @click="handleAdd1"></i> -->
|
</el-form-item>
|
<el-form-item label="体检类别" prop="category" label-width="95px">
|
<el-select
|
v-model="form.category"
|
placeholder="请选择体检类别"
|
style="width: 94%"
|
>
|
<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="请输入部门"
|
style="width: 93%"
|
/>
|
</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"
|
:close-on-click-modal="false"
|
>
|
<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="third">
|
<div class="tab8">
|
<el-row :gutter="20" style="width: 100%">
|
<el-col :span="6">
|
<div
|
style="
|
text-align: center;
|
margin-bottom: 10px;
|
margin-top: 10px;
|
"
|
>
|
项目列表
|
</div>
|
<el-input placeholder="输入关键字进行过滤" v-model="filterage">
|
</el-input>
|
<div class="tab3">
|
<el-tree
|
class="filter-tree"
|
v-loading="loading"
|
:data="packageList"
|
:props="defaultProp"
|
show-checkbox
|
node-key="id"
|
@check="handlepackage"
|
:default-checked-keys="checkedkeys"
|
:filter-node-method="filterpackage"
|
ref="treas"
|
:render-content="renderContents"
|
>
|
</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="packagedataList"
|
node-key="proId"
|
:props="defaultpackProps"
|
: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="DataLists"
|
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="handleDel(scope.row)"
|
title="删除"
|
></el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<h3 style="font-weight: 600">合计:{{ marryalls }}元</h3>
|
</div>
|
</el-col>
|
</el-row>
|
</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="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"
|
: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 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="104px"
|
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="实收金额" label-width="96px">
|
<el-input
|
placeholder="实收金额"
|
v-model="TotalPrice"
|
disabled
|
style="width: 192px"
|
></el-input>
|
</el-form-item>
|
<el-form-item style="margin-left: 50px">
|
<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-button
|
type="primary"
|
@click="candelete(item)"
|
style="margin: 5px"
|
>删 除</el-button
|
>
|
<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="cardreader"
|
width="30%"
|
:close-on-press-escape="false"
|
:close-on-click-modal="false"
|
>
|
<template>
|
<el-radio-group v-model="cardreaderradio" @input="changeradio">
|
<el-radio :label="3">身份证</el-radio>
|
<el-radio :label="6">健康码</el-radio>
|
</el-radio-group>
|
<div style="margin-top: 10px" v-show="cardreaderradio == 6">
|
<el-input
|
v-model="inputSSS"
|
ref="tableHeadFilterInp"
|
placeholder="请输入内容"
|
></el-input>
|
</div>
|
</template>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="cardreader = false">取 消</el-button>
|
<el-button type="primary" @click="cardreadercopes">确 定</el-button>
|
</span>
|
</el-dialog>
|
|
<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>
|
<Packages ref="aaa" @add="handleChanges" />
|
</div>
|
</template>
|
|
<script>
|
import printJS from "print-js";
|
import { getInfo } from "@/api/login";
|
import Packages from "@/components/Packages";
|
import { getZhList, getlistByZhId } from "@/api/system/package";
|
import {
|
deptTreeSelect,
|
projectGetList,
|
getCusIdcard,
|
getPackageListName,
|
getaddtTransition,
|
getTransitionList,
|
getProParentIdDxList,
|
getProSonDxList,
|
getaddTj,
|
getconfigKey,
|
getHistryTjOrderProByCusIdCard,
|
delTbBycusCardIdAndProId,
|
} from "@/api/system/tijian";
|
import VTreeTransfer from "../tijian/TreeTransfer.vue";
|
import historyTj from "@/components/historyTj/index";
|
import { getCompany, queryCompany } from "@/api/team/tuanti";
|
export default {
|
components: {
|
VTreeTransfer,
|
historyTj,
|
Packages,
|
},
|
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 {
|
rules1: {
|
cnName: [{ required: true, trigger: "blur" }],
|
contactPerson: [{ required: true, trigger: "blur" }],
|
contactPhone: [
|
{
|
required: true,
|
trigger: "blur",
|
},
|
{
|
pattern: /^1[3-9]\d{9}$/,
|
trigger: "blur",
|
},
|
],
|
},
|
title: "",
|
open1: false,
|
CompanyList: [],
|
marryall: 0,
|
marryalls: 0,
|
filterText: "",
|
filterage: "",
|
proIdList: [],
|
tableDatas: [],
|
packageList: [],
|
checkedkeys: [],
|
// valueUrl: "ws://127.0.0.1:18890",
|
valueUrl: "ws://127.0.0.1:6789/websocket",
|
valueUrls: "ws://127.0.0.1:6789/websocket",
|
dialogVisiblese: false,
|
cardreader: false,
|
cardreaderradio: 3,
|
inputSSS: "",
|
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: [],
|
DataLists: [],
|
treedataList: [],
|
checkedkey: [],
|
checkedListkey: [],
|
defaultProps: {
|
children: [],
|
label: "proName",
|
},
|
packagedataList: [],
|
defaultpackProps: {
|
children: [],
|
label: "proName",
|
},
|
defaultProp: {
|
children: [],
|
label: "zhmc",
|
},
|
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,
|
},
|
// 添加
|
|
// 表单参数
|
// 表单参数
|
form1: {
|
company: "",
|
payType: "",
|
name: "",
|
phoe: "",
|
signingPic: "",
|
discount: "",
|
},
|
form: {
|
cusIdcard: "",
|
tjType: "3",
|
category: "01",
|
cusSex: 1,
|
cusNational: "1",
|
timeRegion: "1",
|
cusMarryStatus: "5",
|
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);
|
},
|
filterage(val) {
|
this.$refs.treas.filter(val);
|
},
|
},
|
created() {
|
this.getCompanyList();
|
|
this.getList1();
|
console.log(this.dict.type.dict_team, 999);
|
},
|
methods: {
|
getCompanyList() {
|
this.loading = true;
|
getconfigKey("team_reservation_default_day").then((res) => {
|
this.queryParams.yxts = res.msg;
|
});
|
getCompany(this.queryParam).then((response) => {
|
this.CompanyList = response.data;
|
this.total = response.total;
|
this.loading = false;
|
});
|
},
|
cancel1() {
|
this.open1 = false;
|
this.reset1();
|
},
|
submitFormS() {
|
this.$refs["form1"].validate((valid) => {
|
if (valid) {
|
addComp(this.form1).then((response) => {
|
this.$modal.msgSuccess("新增成功");
|
this.open1 = false;
|
this.getCompanyList();
|
});
|
}
|
});
|
},
|
reset1() {
|
this.form1 = {
|
company: "",
|
payType: "",
|
name: "",
|
phoe: "",
|
signingPic: "",
|
discount: "",
|
};
|
},
|
handleAdd1() {
|
this.reset1();
|
this.open1 = true;
|
this.title = "添加体检单位信息维护";
|
},
|
idFn1(value) {
|
if (value) {
|
// 保存修改前的 dictCompId
|
const originalCompId = this.form.dictCompId;
|
|
// 更新公司名称
|
this.form.compName = value;
|
|
// 遍历公司列表,根据公司名称设置对应的 drugManufacturerId
|
this.CompanyList.forEach((item) => {
|
if (item.cnName == this.form.compName) {
|
this.form.dictCompId = item.drugManufacturerId;
|
}
|
});
|
|
// 如果 dictCompId 没有变化,重置为空
|
if (this.form.dictCompId === originalCompId) {
|
this.form.dictCompId = "";
|
}
|
}
|
},
|
|
getRemoteData(query) {
|
if (query) {
|
let compName = query;
|
queryCompany(compName).then((response) => {
|
this.CompanyList = response.data;
|
this.CompanyList.forEach((item) => {
|
this.objs = item;
|
});
|
});
|
}
|
},
|
handleIdCardInput(value) {
|
this.form.cusIdcard = value.replace(/\s/g, "");
|
this.inputChange(); // 保留原有的身份证输入处理逻辑
|
},
|
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();
|
},
|
candelete(item) {
|
let data = {
|
cusCardId: this.form.cusIdcard,
|
proId: item.proPrantId,
|
};
|
delTbBycusCardIdAndProId(data).then((res) => {
|
getTransitionList(this.form.cusIdcard).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";
|
}
|
});
|
});
|
},
|
filterNode(value, data) {
|
if (!value) return true;
|
// return data.proName.indexOf(value) !== -1;
|
if (data.proName.indexOf(value) !== -1) {
|
return data.proName.indexOf(value) !== -1;
|
} else {
|
return data.proEngName.indexOf(value) !== -1;
|
}
|
},
|
|
filterpackage(value, data) {
|
if (!value) return true;
|
if (data.zhmc.indexOf(value) !== -1) {
|
return data.zhmc.indexOf(value) !== -1;
|
} else {
|
return data.pym.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;
|
}
|
if (this.form.cusMarryStatus === "null") {
|
this.form.cusMarryStatus = "5";
|
}
|
if (this.form.cusNational === "null") {
|
this.form.cusNational = "1";
|
}
|
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 {
|
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 = {
|
type: "1",
|
};
|
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 = (event) => {
|
var resultObj = eval("(" + event.data + ")");
|
//resultFlag为0代表读卡成功
|
|
// TODO 以下代码可能是泾川使用的
|
console.log(resultObj);
|
// this.jingChuanHandlerWebSocketResult(resultObj)
|
this.readCardWebSocket(resultObj);
|
};
|
|
//连接关闭的回调方法
|
websocket.onclose = function () {
|
alert("读卡器连接关闭");
|
};
|
} else if (res.msg == "Y") {
|
this.$refs.aaa.open = true;
|
this.$refs.aaa.getAllList();
|
this.$refs.aaa.title = "证件字典";
|
} else if (res.msg == "S") {
|
this.cardreader = true;
|
_this.cardreaderradio = 3;
|
_this.inputSSS = "";
|
// let url = window.location.protocol + "//" + window.location.host;
|
// console.log(url);
|
// axios
|
// .get("http://localhost:81/dev-api/readCertCardInfos")
|
// .then((res) => {
|
// console.log(res);
|
// })
|
// .catch((err) => {
|
// console.log(err);
|
// });
|
|
// readCertCardInfos().then((res) => {
|
// _this.form.cusName = res.data.name;
|
// _this.form.cusSex =
|
// res.data.sex;
|
// _this.form.cusNational = res.data.mz;
|
// _this.form.cusBrithday = res.data.csrq;
|
// if (_this.form.cusBrithday) {
|
// _this.form.cusBrithday = _this.form.cusBrithday.replace(
|
// /^(\d{4})(\d{2})(\d{2})$/,
|
// "$1-$2-$3"
|
// );
|
// }
|
// _this.form.cusAddr = res.data.addres;
|
// _this.form.cusIdcard = res.data.card;
|
// });
|
}
|
}
|
});
|
}
|
},
|
// 最新使用webSocket通信
|
readCardWebSocket(resultObj) {
|
let _this = this;
|
if (resultObj.code === 200 && resultObj.data.name != null) {
|
//回显相关数据
|
_this.form.cusName = resultObj.data.name;
|
_this.form.cusSex = resultObj.data.sex == "0" ? "女" : "男";
|
_this.form.cusNational = resultObj.data.mz;
|
_this.form.cusBrithday = resultObj.data.csrq;
|
if (_this.form.cusBrithday) {
|
_this.form.cusBrithday = _this.form.cusBrithday.replace(
|
/^(\d{4})(\d{2})(\d{2})$/,
|
"$1-$2-$3"
|
);
|
}
|
_this.form.cusAddr = resultObj.data.addres;
|
_this.form.cusIdcard = resultObj.data.card;
|
_this.imageUrl = "data:image/jpeg;base64," + resultObj.data.img;
|
if (resultObj.name == "readCert" || resultObj.name == "PushWithImg") {
|
this.imageUrl = "data:image/jpeg;base64," + resultObj.data.img;
|
}
|
} else {
|
this.$message.warning("请放置身份证后再点击读取");
|
}
|
/* else if (resultObj.resultFlag == "-1") {
|
if (resultObj.errorMsg == "端口打开失败") {
|
//alert("读卡器未连接");
|
} else {
|
//alert(resultObj.errorMsg);
|
}
|
} else if (resultObj.resultFlag == "-2") {
|
//alert(resultObj.errorMsg);
|
} */
|
},
|
// TODO 以下代码可能是泾川使用的
|
jingChuanHandlerWebSocketResult(resultObj) {
|
let _this = this;
|
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("设备连接已断开,请检查读卡器连接");
|
}
|
}
|
}
|
},
|
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;
|
},
|
|
changeradio() {
|
if (this.cardreaderradio != 3) {
|
this.$nextTick(() => {
|
this.$refs.tableHeadFilterInp.focus();
|
});
|
}
|
},
|
cardreadercopes() {
|
let _this = this;
|
|
if (this.cardreaderradio == 3) {
|
var websocket = null;
|
var url = this.valueUrls;
|
// var url = 'ws://'+ getIp() +':6789/websocket'
|
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("11111");
|
}
|
websocket.onopen = function () {
|
try {
|
// 连接设备
|
var jsonObjs = {
|
type: "1",
|
// data: {},
|
};
|
var jStrs = JSON.stringify(jsonObjs);
|
websocket.send(jStrs);
|
} catch (err) {
|
var tryTime = 0;
|
// 重试10次,每次之间间隔3秒
|
if (tryTime < 1) {
|
var t1 = setTimeout(function () {
|
tryTime++;
|
var jsonObjs = {
|
type: 1,
|
data: {},
|
};
|
var jStrs = JSON.stringify(jsonObjs);
|
websocket.send(jStrs);
|
}, 1 * 1000);
|
} else {
|
console.error("重连失败.");
|
}
|
}
|
};
|
websocket.onclose = function () {
|
alert("读卡器连接关闭");
|
};
|
websocket.onmessage = function (event) {
|
var resultObj = JSON.parse(event.data);
|
_this.form.cusName = resultObj.data.name;
|
_this.form.cusSex = resultObj.data.sex;
|
_this.form.cusNational = resultObj.data.mz;
|
_this.form.cusBrithday = resultObj.data.csrq;
|
if (_this.form.cusBrithday) {
|
_this.form.cusBrithday = _this.form.cusBrithday.replace(
|
/^(\d{4})(\d{2})(\d{2})$/,
|
"$1-$2-$3"
|
);
|
}
|
_this.form.cusIdcard = resultObj.data.card;
|
if (_this.form.cusIdcard) {
|
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)) {
|
var org_birthday = _this.form.cusIdcard.substring(6, 14);
|
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.age = age;
|
}
|
}
|
_this.form.cusAddr = resultObj.data.addres;
|
|
_this.cardreader = false;
|
};
|
|
//连接发生错误的回调方法
|
websocket.onerror = function () {
|
alert("请检查读卡器连接是否正常");
|
};
|
} else {
|
// if (_this.inputSSS.indexOf(":1") != -1) {
|
|
// var str1 = _this.inputSSS.indexOf(":1");
|
// var result1 = _this.inputSSS.substring(0, str1);
|
|
// var str2 = _this.inputSSS.indexOf(":1");
|
// var result2 = _this.inputSSS.substring(
|
// str2 + 2,
|
// _this.inputSSS.length
|
// );
|
|
// _this.inputSSS = result1 + result2;
|
// }
|
_this.inputSSS = _this.inputSSS.replace(":1", "");
|
var websocket = null;
|
var url = this.valueUrls;
|
// var url = 'ws://'+ getIp() +':6789/websocket'
|
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("11111");
|
}
|
websocket.onopen = function () {
|
try {
|
// 连接设备
|
var jsonObjs = {
|
type: 2,
|
data: {
|
qrcode: _this.inputSSS,
|
},
|
};
|
var jStrs = JSON.stringify(jsonObjs);
|
websocket.send(jStrs);
|
} catch (err) {
|
var tryTime = 0;
|
// 重试10次,每次之间间隔3秒
|
if (tryTime < 1) {
|
var t1 = setTimeout(function () {
|
tryTime++;
|
var jsonObjs = {
|
type: 2,
|
data: {
|
qrcode: _this.inputSSS,
|
},
|
};
|
var jStrs = JSON.stringify(jsonObjs);
|
websocket.send(jStrs);
|
}, 1 * 1000);
|
} else {
|
console.error("重连失败.");
|
}
|
}
|
};
|
websocket.onclose = function () {
|
alert("读卡器连接关闭");
|
};
|
websocket.onmessage = function (event) {
|
var resultObj = JSON.parse(event.data);
|
_this.form.cusName = resultObj.data.name;
|
|
if (resultObj.data.nation == "汉族") {
|
_this.form.cusNational = "1";
|
}
|
if (resultObj.data.gender == "男") {
|
_this.form.cusSex = 0;
|
} else {
|
_this.form.cusSex = 1;
|
}
|
_this.form.cusBrithday = resultObj.data.birthday;
|
if (_this.form.cusBrithday) {
|
_this.form.cusBrithday = _this.form.cusBrithday.replace(
|
/^(\d{4})(\d{2})(\d{2})$/,
|
"$1-$2-$3"
|
);
|
}
|
_this.form.cusPhone = resultObj.data.phone;
|
_this.form.cusIdcard = resultObj.data.idenno;
|
if (_this.form.cusIdcard) {
|
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)) {
|
var org_birthday = _this.form.cusIdcard.substring(6, 14);
|
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.age = age;
|
}
|
}
|
_this.cardreader = false;
|
};
|
|
//连接发生错误的回调方法
|
websocket.onerror = function () {
|
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;
|
this.activeNames = "first";
|
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();
|
},
|
|
// 折扣
|
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 (this.activeNames == "second") {
|
this.DataList = [];
|
this.checkedkey = [];
|
this.getDataList();
|
} else if (this.activeNames == "third") {
|
this.DataLists = [];
|
this.checkedkeys = [];
|
getZhList().then((response) => {
|
if (response.data) {
|
this.packageList = response.data;
|
// this.checkedkeys.push(this.packageList[0].id);
|
// let datas = {
|
// zhId: this.packageList[0].id,
|
// };
|
// getlistByZhId(datas).then((res) => {
|
// this.packagedataList = res.data.tjProjectList;
|
// for (var i = 0; i < this.packagedataList.length; i++) {
|
// let proId = this.packagedataList[i].proId;
|
// getProSonDxList(proId).then((res) => {
|
// this.TreedataList = res.data.list;
|
// this.TreedataList.forEach((item) => {
|
// this.DataLists.push(item);
|
// if (this.DataLists.length >= 1) {
|
// this.marryalls = 0;
|
// this.DataLists.forEach((item1) => {
|
// this.marryalls += item1.proPrice;
|
// this.packagedataList.forEach((item3) => {
|
// if (item1.proParentId == item3.proId) {
|
// item1.propinName = item3.proName;
|
// }
|
// });
|
// });
|
// }
|
// });
|
// });
|
// }
|
// });
|
}
|
this.loading = false;
|
});
|
}
|
},
|
renderContent(h, { node, data, store }) {
|
return (
|
<span class="custom-tree-node">
|
<span>{node.label}</span>
|
<span>({data.proPrice}元)</span>
|
</span>
|
);
|
},
|
renderContents(h, { node, data, store }) {
|
return (
|
<span class="custom-tree-node">
|
<span>{node.label}</span>
|
<span>({data.price}元)</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;
|
}
|
});
|
});
|
}
|
// if (this.DataLists.length != 0) {
|
// this.DataLists.forEach((selectionitem) => {
|
// this.Treedata.forEach((item) => {
|
// if (selectionitem.propinName == item.proName) {
|
// 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;
|
});
|
},
|
|
handlepackage(data, checked, checkedNodes) {
|
if (checked.checkedNodes.length != 0) {
|
this.$refs.treas.setCheckedKeys([data.id]);
|
let datas = {
|
zhId: data.id,
|
};
|
getlistByZhId(datas).then((res) => {
|
this.packagedataList = res.data.tjProjectList;
|
for (var i = 0; i < this.packagedataList.length; i++) {
|
let proId = this.packagedataList[i].proId;
|
getProSonDxList(proId).then((res) => {
|
this.TreedataList = res.data.list;
|
this.TreedataList.forEach((item) => {
|
this.DataLists.push(item);
|
if (this.DataLists.length >= 1) {
|
this.marryalls = 0;
|
this.DataLists.forEach((item1) => {
|
this.marryalls += item1.proPrice;
|
this.packagedataList.forEach((item3) => {
|
if (item1.proParentId == item3.proId) {
|
item1.propinName = item3.proName;
|
}
|
});
|
});
|
}
|
});
|
});
|
}
|
});
|
} else if (checked.checkedNodes.length == 0) {
|
// for (var i = 0; i < data.tjProjectList.length; i++) {
|
// let proId = data.tjProjectList[i].proId;
|
// getProSonDxList(proId).then((res) => {
|
// this.TreedataList = res.data.list;
|
// this.TreedataList.forEach((item) => {
|
// this.DataLists.forEach((item1, index) => {
|
// if (item.proId == item1.proId) {
|
// this.DataLists.splice(index, 1);
|
// }
|
// });
|
// });
|
// this.marryalls = 0
|
// if(this.DataLists.length != 0){
|
// this.DataLists.forEach((item1, index) => {
|
// this.marryalls += item1.proPrice;
|
// })
|
// }
|
// });
|
// }
|
}
|
},
|
|
objectspanmethod({ row, column, rowIndex, columnIndex }) {
|
let fields = ["propinName"];
|
let cellValue = row[column.property];
|
if (cellValue && fields.includes(column.property)) {
|
let prevRow = this.DataLists[rowIndex - 1];
|
let nextRow = this.DataLists[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.DataLists[++countRowspan + rowIndex];
|
}
|
|
if (countRowspan > 1) {
|
return { rowspan: countRowspan, colspan: 1 };
|
}
|
}
|
}
|
|
// if (columnIndex == 3) {
|
// let rowspan = 0;
|
// this.DataLists.forEach((element) => {
|
// if (element.propinName === row.propinName) {
|
// rowspan++;
|
// }
|
// });
|
// return [rowspan, 1];
|
// }
|
},
|
|
// 点击获取每个树节点
|
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;
|
});
|
}
|
},
|
|
handleDel(row) {
|
this.DataLists.forEach((item, index) => {
|
if (item.proId == row.proId) {
|
this.DataLists.splice(index, 1);
|
this.marryalls = 0;
|
this.DataLists.forEach((item1) => {
|
this.marryalls += 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 }) {
|
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);
|
});
|
}
|
if (this.DataLists.length != 0) {
|
this.DataLists.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.tjCategory != null) {
|
this.form.category = item.tjCategory;
|
}
|
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.defaultKeys = [];
|
this.DataLists = [];
|
},
|
|
// 最后提交按钮
|
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;
|
}
|
.dialog-footer2 {
|
width: 960px;
|
height: 36px;
|
display: flex;
|
justify-content: center;
|
}
|
</style>
|
|
|