| | |
| | | <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-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input style="width: 120px" v-model="queryParams.name" placeholder="请输入姓名" clearable |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号" prop="idCard"> |
| | | <el-input v-model="queryParams.idCard" placeholder="请输入身份证号" clearable @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="联系电话" prop="phoe"> |
| | | <el-input v-model="queryParams.phoe" placeholder="请输入联系电话" clearable @keyup.enter.native="handleQuery" |
| | | style="width: 140px" /> |
| | | </el-form-item> |
| | | <el-form-item label="单位名称" prop="company"> |
| | | <el-select :remote-method="getRemoteData" v-model="queryParams.company" value-key="drugManufacturerId" remote |
| | | filterable placeholder="请选择单位名称" clearable @change="searchSelect"> |
| | | <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" |
| | | :value="dict.cnName" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="预约超期" prop="isExpire"> |
| | | <el-select v-model="queryParams.isExpire" placeholder="请选择是否超期" clearable style="width: 140px"> |
| | | <el-option v-for="dict in options" :key="dict.value" :label="dict.label" :value="dict.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-col> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input style="width: 120px" v-model="queryParams.name" placeholder="请输入姓名" clearable |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号" prop="idCard"> |
| | | <el-input v-model="queryParams.idCard" placeholder="请输入身份证号" clearable @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="单位名称" prop="company"> |
| | | <el-select :remote-method="getRemoteData" v-model="queryParams.company" 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.drugManufacturerId" /> |
| | | </el-select> |
| | | <i class="el-icon-circle-plus-outline" @click="handleAdd1"></i> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-form-item label="套餐名称" prop="dwDeptName"> |
| | | <el-select v-model="queryParams.dwDeptName" placeholder="请选择套餐名称" clearable style="width: 100%" |
| | | @change="idFn2"> |
| | | <el-option v-for="dict in deptList" :key="dict.id" :label="dict.dwDeptName" :value="dict.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="分组名称" prop="groupingName"> |
| | | <el-select v-model="queryParams.groupingName" placeholder="请选择分组名称" clearable style="width: 100%"> |
| | | <el-option v-for="dict in groupingList" :key="dict.id" :label="dict.pacName" :value="dict.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | </el-col> |
| | | <el-col> |
| | | |
| | | <el-form-item label="预约时间"> |
| | | <el-date-picker clearable v-model="createTimeList" @change="dateChangebirthday2" type="daterange" |
| | | range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" |
| | | value-format="yyyy-MM-dd" placeholder="请选择出预约时间" style="width: 300px"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="联系电话" prop="phoe"> |
| | | <el-input v-model="queryParams.phoe" placeholder="请输入联系电话" clearable @keyup.enter.native="handleQuery" |
| | | style="width: 140px" /> |
| | | </el-form-item> |
| | | <el-form-item label="预约超期" prop="isExpire"> |
| | | <el-select v-model="queryParams.isExpire" placeholder="请选择是否超期" clearable style="width: 140px"> |
| | | <el-option v-for="dict in options" :key="dict.value" :label="dict.label" :value="dict.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-row :gutter="10" style="margin: 10px 15px"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="batch" |
| | | v-hasPermi="['reservation:reservation:remove']">撤销预约</el-button> |
| | | <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="batch">撤销预约</el-button> |
| | | <!-- v-hasPermi="['reservation:reservation:remove']" --> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" size="mini" :disabled="single" @click="receipt" |
| | | v-hasPermi="['reservation:reservation:remove']">补打小票</el-button> |
| | | <el-button type="primary" size="mini" :disabled="single" @click="receipt">补打小票</el-button> |
| | | <!-- v-hasPermi="['reservation:reservation:remove']" --> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" size="mini" :disabled="multiple" @click="Groupsignin">团体签到</el-button> |
| | | <!-- v-hasPermi="['reservation:reservation:remove']" --> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table border v-loading="loading" :data="reservationList" @selection-change="handleSelectionChange" |
| | | :default-sort="{ prop: 'reservationTime', order: 'descending' }" highlight-current-row> |
| | | :default-sort="{ prop: 'reservationTime', order: 'descending' }" highlight-current-row style="margin-left: 15px"> |
| | | <el-table-column type="selection" width="40px" align="center" fixed="left" :selectable="selectHandle" /> |
| | | <el-table-column label="姓名" align="center" prop="name" width="90px" :show-overflow-tooltip="true" fixed="left" /> |
| | | <el-table-column label="性别" align="center" prop="sex" width="60px" :show-overflow-tooltip="true"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.sex == '0'">男</span> |
| | | <span v-if="scope.row.sex == '1'">女</span> |
| | | <span v-if="scope.row.sex == '2'">未知</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="年龄" align="center" prop="age" width="60px" :show-overflow-tooltip="true" /> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="联系电话" align="center" prop="phoe" width="110px" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="邮箱" align="center" prop="email" :show-overflow-tooltip="true" width="160px" /> |
| | | <el-table-column label="地址" align="center" prop="address" :show-overflow-tooltip="true" width="160px" /> |
| | | |
| | | <el-table-column label="预约时间" align="center" prop="reservationTime" width="100px" :show-overflow-tooltip="true" |
| | | sortable> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.reservationTime, "{y}-{m}-{d}") }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="体检类型" align="center" prop="tjType" width="80px" :show-overflow-tooltip="true" /> |
| | | <!-- <el-table-column |
| | | label="体检类型" |
| | | align="center" |
| | | prop="tjType" |
| | | width="80px" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.dict_team" :value="scope.row.tjType" /> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column label="婚姻" align="center" prop="marriage" width="60px" :show-overflow-tooltip="true"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.dict_user_marry" :value="scope.row.marriage" /> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="单位名称" align="center" prop="company" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="套餐名称" align="center" prop="email" :show-overflow-tooltip="true" width="160px" /> |
| | | <el-table-column label="分组名称" align="center" prop="email" :show-overflow-tooltip="true" width="160px" /> |
| | | <el-table-column label="地址" align="center" prop="address" :show-overflow-tooltip="true" width="160px" /> |
| | | <el-table-column label="操作" align="center" width="90px" fixed="right"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-s-order" @click="handleUpdate1(scope.row)" |
| | | v-hasPermi="['reservation:reservation:edit']" title="预约详细"></el-button> |
| | | title="预约详细"></el-button> |
| | | <!-- v-hasPermi="['reservation:reservation:edit']" --> |
| | | <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['reservation:reservation:edit']" title="修改"></el-button> |
| | | title="修改"></el-button> |
| | | <!-- v-hasPermi="['reservation:reservation:edit']" --> |
| | | <el-button size="mini" type="text" title="撤销预约" icon="el-icon-delete" @click="handleDelete(scope.row)"> |
| | | </el-button> |
| | | </template> |
| | |
| | | |
| | | <div class="pag"> |
| | | <div class="pag1"> |
| | | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" /> |
| | | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" @pagination="getList" /> |
| | | </div> |
| | | </div> |
| | | <!-- 预约登记详情对话框 --> |
| | |
| | | <el-input v-model="formIn.address" placeholder="请输入现居住地址" style="width: 410px" /> |
| | | </el-form-item> |
| | | <el-form-item label="体检类别" prop="tjCategory"> |
| | | <el-select style="width: 150px" v-model="formIn.tjCategory" placeholder="请选择体检类别"> |
| | | <el-select style="width: 140px" v-model="formIn.tjCategory" placeholder="请选择体检类别"> |
| | | <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label" |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | |
| | | <el-form-item label="部门" prop="department"> |
| | | <el-input v-model="formIn.department" placeholder="请输入部门" style="width: 160px" /> |
| | | </el-form-item> |
| | | <el-form-item label="工作单位" prop="company"> |
| | | <el-input v-model="formIn.company" placeholder="请输入工作单位" style="width: 410px" /> |
| | | <el-form-item label="单位名称" prop="company"> |
| | | <el-select :remote-method="getRemoteData" v-model="formIn.company" 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.drugManufacturerId" /> |
| | | </el-select> |
| | | <i class="el-icon-circle-plus-outline" @click="handleAdd1"></i> |
| | | </el-form-item> |
| | | <el-form-item label="职业" prop="career"> |
| | | <el-select filterable :disabled="isDisabled" v-model="formIn.career" placeholder="请输入职业" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="预约日期" prop="reservationTime"> |
| | | <el-date-picker v-model="formIn.reservationTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" |
| | | :picker-options="setDisabled" style="width: 160px"> |
| | | <el-date-picker v-model="formIn.reservationTime" type="date" value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" :picker-options="setDisabled" style="width: 160px"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="时间" prop="timeRegion"> |
| | |
| | | <el-form :model="queryParam" ref="queryForm" size="small" :inline="true" v-show="showSearch" |
| | | label-width="auto" @submit.native.prevent> |
| | | <el-form-item label="套餐名称" prop="pacName"> |
| | | <el-input v-model="queryParam.pacName" placeholder="请输入套餐名称" clearable @keyup.enter.native="handle" /> |
| | | <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-tab-pane label="单项"> |
| | | <div class="tab3"> |
| | | <div class="tab2"> |
| | | <el-tree :data="data" show-checkbox node-key="proId" :props="defaultProps" |
| | | @check-change="handleCurrentChecked"> |
| | | </el-tree> |
| | | <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" |
| | | @check-change="handleCurrentChecked"> |
| | | </el-tree>--> |
| | | </div> |
| | | </div> |
| | | </el-tab-pane> |
| | |
| | | <!-- <div class="tab1"> --> |
| | | <!-- <el-form :inline="true" class="tab1"> --> |
| | | <el-form-item label="应收金额"> |
| | | <el-input placeholder="应收金额" :value="TotalPrice1 + '.00'" disabled style="width: 160px"></el-input> |
| | | <el-input placeholder="应收金额" :value="TotalPrice1" disabled style="width: 160px"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="优惠折扣"> |
| | | <!-- <el-input style="width: 100px" type="number" v-model="discount" :value="discount"></el-input> --> |
| | |
| | | :step="0.1" :max="10" :min="1" @change="numberChange" :disabled="isfalse"></el-input-number> |
| | | </el-form-item> |
| | | <el-form-item label="实收金额"> |
| | | <el-input placeholder="实收金额" v-model="TotalPrice" style="width: 120px"></el-input> |
| | | <el-input placeholder="实收金额" v-model="TotalPrice" style="width: 120px" disabled></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | |
| | | </el-form> |
| | | </template> |
| | | |
| | | <div style="text-align: center; margin-bottom: 10px"> |
| | | <div style=" |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: flex-start; |
| | | width: 100%; |
| | | "> |
| | | <div style=" |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | margin-left: 46px; |
| | | font-size: 16px; |
| | | margin-right: 20px; |
| | | "> |
| | | 已选项目条数:<span style="font-weight: 700; color: red; margin-right: 5px">{{ this.tableData1.length || 0 |
| | | }}</span>条 |
| | | </div> |
| | | 已选项目列表 |
| | | </div> |
| | | <div style=" |
| | | padding: 0px 6px; |
| | | border: 1px solid #e6ebf5; |
| | | max-height: 650%; |
| | | overflow: auto; |
| | | width: 916px; |
| | | margin-left: 35px; |
| | | "> |
| | | <el-table :data="tableData1" border style="width: 100%"> |
| | | <el-table-column prop="proName" label="项目" width="180" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="proType" label="性别" width="50" align="center"> |
| | | <template slot-scope="scope"> |
| | | <template v-if="isAll(scope.row.proType)"> |
| | | 全部 |
| | | </template> |
| | | <template v-else> |
| | | <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.proType" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="ordPrice" label="应收金额" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="折扣" width="160px" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input-number v-model.number="scope.row.discount" @input="validateDiscount(scope.row)" |
| | | placeholder="输入折扣" size="small" type="number" :precision="1" :step="0.1" :max="10" :min="0" |
| | | :disabled="true"> |
| | | </el-input-number> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="nowPrice" label="实收金额" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="proCheckMethod" label="是否空腹" align="center"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.proCheckMethod" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" width="80px"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete1(scope.row)" |
| | | title="删除"> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <!-- <div style="text-align: center; margin-bottom: 10px"> |
| | | 已选项目列表 |
| | | </div> --> |
| | | <!-- <div |
| | | style=" |
| | | padding: 0px 6px; |
| | | border: 1px solid #e6ebf5; |
| | | max-height: 420px; |
| | | overflow: auto; |
| | | "> |
| | | <el-collapse v-model="index" accordion v-if="list3"> |
| | | <div class="info1" v-for="(item, index) in tableData1" :key="'info1-' + index"> |
| | | " |
| | | > --> |
| | | <!-- <el-collapse v-model="index" accordion v-if="list3"> |
| | | <div |
| | | class="info1" |
| | | v-for="(item, index) in tableData1" |
| | | :key="'info1-' + index" |
| | | > |
| | | <el-collapse-item :name="index"> |
| | | <template slot="title"> |
| | | {{ |
| | |
| | | item.parentName + |
| | | " (应收金额:" + |
| | | item.ordPrice + |
| | | ".00元 / 实收金额:" + |
| | | " / 实收金额:" + |
| | | item.nowPrice + |
| | | ".00元)" |
| | | "元)" |
| | | }} |
| | | <div style="font-size: 16px; margin-left: 20px"> |
| | | 已选项目条数:<span |
| | | style=" |
| | | font-weight: 700 !important; |
| | | color: red; |
| | | margin-right: 5px; |
| | | " |
| | | >{{ item.list.length || 0 }}</span |
| | | >条 |
| | | </div> |
| | | </template> |
| | | <el-table :data="item.list" border style="width: 100%" height="270"> |
| | | <el-table-column prop="proName" label="项目" width="180"> |
| | | <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="ordPrice" label="应收金额"> |
| | | </el-table-column> |
| | | <el-table-column label="折扣"> |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model.number="scope.row.discount" |
| | | @input="validateDiscount(scope.row)" |
| | | placeholder="输入折扣" |
| | | size="small" |
| | | type="number" |
| | | :precision="1" |
| | | :step="0.1" |
| | | :max="10" |
| | | :min="0" |
| | | > |
| | | </el-input-number> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="nowPrice" label="实收金额"> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | width="80px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete1(scope.row)" |
| | | title="删除" |
| | | > |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-collapse-item> |
| | | </div> |
| | | </el-collapse> |
| | | |
| | | <el-collapse v-model="activeName" accordion v-if="list2"> |
| | | <div class="info" v-for="(item, index) in tableData1" :key="'info-' + index"> |
| | | <div |
| | | class="info" |
| | | v-for="(item, index) in tableData1" |
| | | :key="'info-' + index" |
| | | > |
| | | <el-collapse-item> |
| | | <template slot="title"> |
| | | {{ item.pacName }} |
| | | </template> |
| | | <el-table :data="item.tjProjectList" border style="width: 100%" height="250"> |
| | | <el-table-column prop="proName" label="项目" width="180"> |
| | | <el-table |
| | | :data="item.tjProjectList" |
| | | border |
| | | style="width: 100%" |
| | | height="250" |
| | | > |
| | | <el-table-column |
| | | prop="proName" |
| | | label="项目" |
| | | width="180" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="proSex" label="性别" width="180"> |
| | | <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="isEat" label="空腹"> |
| | | <el-table-column prop="proCheckMethod" label="空腹"> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | </el-collapse-item> |
| | | </div> |
| | |
| | | <div> |
| | | <el-collapse-item title="请选择项目"> |
| | | <el-table :data="list" border style="width: 100%"> |
| | | <el-table-column prop="proName" label="项目" width="180"> |
| | | <el-table-column |
| | | prop="proName" |
| | | label="项目" |
| | | width="180" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="proSex" label="性别" width="180"> |
| | | <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="isEat" label="空腹"> |
| | | <el-table-column prop="proCheckMethod" label="空腹"> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | </el-collapse-item> |
| | | </div> |
| | | </el-collapse> |
| | | </div> |
| | | </el-collapse> --> |
| | | <!-- </div> --> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </template> |
| | | </el-drawer> |
| | | |
| | | <el-dialog title="PDF 预览" :visible.sync="dialogVisible" :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="title" :visible.sync="open2" width="800px" append-to-body> |
| | | <el-form ref="form" :model="forms" label-width="100px" :inline="true"> |
| | | <el-form-item label="体检类别"> |
| | | <el-select style="width: 150px" v-model="forms.tjCategory" placeholder="请选择体检类别"> |
| | | <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label" |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer2"> |
| | | <el-button type="primary" @click="submitType">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <div style=" |
| | | position: absolute; |
| | | bottom: 100px; |
| | | left: 500px; |
| | | width: 700px; |
| | | display: none; |
| | | "> |
| | | 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"> |
| | | 姓名:{{ fmobj.name }} |
| | | </div> |
| | | <div style="width: 48%; margin-top: 10px">姓名:{{ fmobj.name }}</div> |
| | | <div style="width: 48%; margin-top: 10px"> |
| | | 性别:{{ fmobj.sex === 0 ? "男" : "女" }} |
| | | </div> |
| | | <div style="width: 48%; margin-top: 10px"> |
| | | 电话:{{ fmobj.phoe }} |
| | | </div> |
| | | <div style="width: 48%; margin-top: 10px">电话:{{ fmobj.phoe }}</div> |
| | | <div style="width: 48%; margin-top: 10px"> |
| | | 日期:{{ fmobj.reservationTime }} |
| | | </div> |
| | | <div style="width: 58%; margin-top: 10px"> |
| | | 套餐:{{ pacName }} |
| | | </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%"> |
| | |
| | | <div style="width: 100%"> |
| | | 3、怀孕或可能已受孕的女士,还应避免妇科、放射科及阴式超声检查。 |
| | | </div> |
| | | <div style="width: 100%"> |
| | | 4、经期女性不宜进行妇科及尿常规检查。 |
| | | </div> |
| | | <div style="width: 100%">4、经期女性不宜进行妇科及尿常规检查。</div> |
| | | <div style="width: 100%"> |
| | | 5、若您在等待检查过程中有疑问,请及时联系导检护士。 |
| | | </div> |
| | | <div style="width: 100%"> |
| | | 6、体检结束后请将导检单交还至前台。 |
| | | </div> |
| | | <div style="width: 100%">6、体检结束后请将导检单交还至前台。</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <el-form-item label="部门" prop="department"> |
| | | <el-input v-model="formIn.department" placeholder="请输入部门" style="width: 160px" /> |
| | | </el-form-item> |
| | | <el-form-item label="工作单位" prop="company"> |
| | | <el-input v-model="formIn.company" placeholder="请输入工作单位" style="width: 410px" /> |
| | | <el-form-item label="单位名称" prop="company"> |
| | | <el-select :remote-method="getRemoteData" v-model="formIn.company" 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.drugManufacturerId" /> |
| | | </el-select> |
| | | <i class="el-icon-circle-plus-outline" @click="handleAdd1"></i> |
| | | </el-form-item> |
| | | <el-form-item label="职业" prop="career"> |
| | | <el-select filterable :disabled="isDisabled" v-model="formIn.career" placeholder="请输入职业" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="预约日期" prop="reservationTime"> |
| | | <el-date-picker v-model="formIn.reservationTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" |
| | | :picker-options="setDisabled" style="width: 160px"> |
| | | <el-date-picker v-model="formIn.reservationTime" type="date" value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" :picker-options="setDisabled" style="width: 160px"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="时间" prop="timeRegion"> |
| | |
| | | <el-form-item label="卡号" prop="indexCard"> |
| | | <el-input v-model="formIn.indexCard" placeholder="请输入卡号" style="width: 190px" /> |
| | | </el-form-item> |
| | | <el-button type="primary" @click="taocan = true" size="mini">选择套餐</el-button> |
| | | <!-- <el-button type="primary" @click="Package" size="mini">选择套餐</el-button> --> |
| | | </el-form> |
| | | </div> |
| | | |
| | |
| | | <el-form :model="queryParam" ref="queryForm" size="small" :inline="true" v-show="showSearch" |
| | | label-width="auto" @submit.native.prevent> |
| | | <el-form-item label="套餐名称" prop="pacName"> |
| | | <el-input v-model="queryParam.pacName" placeholder="请输入套餐名称" clearable @keyup.enter.native="handle" /> |
| | | <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> |
| | |
| | | <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> |
| | | </div> |
| | |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <!-- <div class="tab1"> --> |
| | | <!-- <el-form :inline="true" class="tab1"> --> |
| | | <el-form-item label="应收金额"> |
| | | <el-input placeholder="应收金额" :value="TotalPrice1 + '.00'" disabled style="width: 160px"></el-input> |
| | | <el-input placeholder="应收金额" :value="TotalPrice1" disabled style="width: 160px"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="优惠折扣"> |
| | | <!-- <el-input style="width: 100px" type="number" v-model="discount" :value="discount"></el-input> --> |
| | | <el-input-number ref="inputNumber" style="width: 130px" 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> |
| | | |
| | | <el-form-item> |
| | | <el-button type="primary" @click="submitPrice" :disabled="confirm" size="mini">签到登记</el-button> |
| | | <el-button type="primary" @click="submitPrice" :disabled="confirm" size="mini">预约修改</el-button> |
| | | </el-form-item> |
| | | <!-- </el-form> --> |
| | | <!-- </div> --> |
| | |
| | | <div style="text-align: center; margin-bottom: 10px"> |
| | | 已选项目列表 |
| | | </div> |
| | | |
| | | <div style=" |
| | | padding: 0px 6px; |
| | | border: 1px solid #e6ebf5; |
| | | max-height: 650%; |
| | | overflow: auto; |
| | | width: 916px; |
| | | margin-left: 35px; |
| | | "> |
| | | <el-table :data="tableData1" border style="width: 100%"> |
| | | <el-table-column prop="proName" label="项目" width="180" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="proType" label="性别" width="50" align="center"> |
| | | <template slot-scope="scope"> |
| | | <template v-if="isAll(scope.row.proType)"> |
| | | 全部 |
| | | </template> |
| | | <template v-else> |
| | | <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.proType" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column prop="ordPrice" label="应收金额" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="折扣" width="160px" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input-number v-model.number="scope.row.discount" @input="validateDiscount(scope.row)" |
| | | placeholder="输入折扣" size="small" type="number" :precision="1" :step="0.1" :max="10" :min="0" |
| | | :disabled="true"> |
| | | </el-input-number> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="nowPrice" label="实收金额" align="center"> |
| | | </el-table-column> |
| | | <el-table-column prop="proCheckMethod" label="是否空腹" align="center"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.proCheckMethod" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" width="80px"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete1(scope.row)" |
| | | title="删除"> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <!-- <div |
| | | style=" |
| | | padding: 0px 6px; |
| | | border: 1px solid #e6ebf5; |
| | | max-height: 420px; |
| | | overflow: auto; |
| | | "> |
| | | " |
| | | > |
| | | <div |
| | | style=" |
| | | padding: 0px 6px; |
| | | border: 1px solid #e6ebf5; |
| | | max-height: 420px; |
| | | overflow: auto; |
| | | " |
| | | ></div> |
| | | <el-collapse v-model="index" accordion v-if="list3"> |
| | | <div class="info1" v-for="(item, index) in tableData1" :key="'info1-' + index"> |
| | | <div |
| | | class="info1" |
| | | v-for="(item, index) in tableData1" |
| | | :key="'info1-' + index" |
| | | > |
| | | <el-collapse-item :name="index"> |
| | | <template slot="title"> |
| | | {{ |
| | |
| | | item.nowPrice + |
| | | ".00元)" |
| | | }} |
| | | <div style="font-size: 16px; margin-left: 20px"> |
| | | 已选项目条数:<span |
| | | style=" |
| | | font-weight: 700 !important; |
| | | color: red; |
| | | margin-right: 5px; |
| | | " |
| | | >{{ item.list.length || 0 }}</span |
| | | >条 |
| | | </div> |
| | | </template> |
| | | <el-table :data="item.list" border style="width: 100%" height="270"> |
| | | <el-table-column prop="proName" label="项目" width="180"> |
| | | |
| | | <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="proSex" label="性别" width="180"> |
| | | <el-table-column |
| | | prop="proSex" |
| | | label="性别" |
| | | width="180" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="ordPrice" label="应收金额"> |
| | | </el-table-column> |
| | | <el-table-column label="折扣"> |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model.number="scope.row.discount" |
| | | @input="validateDiscount(scope.row)" |
| | | placeholder="输入折扣" |
| | | size="small" |
| | | type="number" |
| | | :precision="1" |
| | | :step="0.1" |
| | | :max="10" |
| | | :min="0" |
| | | > |
| | | </el-input-number> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="nowPrice" label="实收金额"> |
| | | </el-table-column> |
| | | <el-table-column prop="isEat" label="空腹"> |
| | | <el-table-column prop="proCheckMethod" label="空腹"> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | </el-collapse-item> |
| | | </div> |
| | | </el-collapse> |
| | | |
| | | <el-collapse v-model="activeName" accordion v-if="list2"> |
| | | <div class="info" v-for="(item, index) in tableData1" :key="'info-' + index"> |
| | | <div |
| | | class="info" |
| | | v-for="(item, index) in tableData1" |
| | | :key="'info-' + index" |
| | | > |
| | | <el-collapse-item> |
| | | <template slot="title"> |
| | | {{ item.pacName }} |
| | | </template> |
| | | <el-table :data="item.tjProjectList" border style="width: 100%" height="250"> |
| | | <el-table-column prop="proName" label="项目" width="180"> |
| | | <el-table |
| | | :data="item.tjProjectList" |
| | | border |
| | | style="width: 100%" |
| | | height="250" |
| | | > |
| | | <el-table-column |
| | | prop="proName" |
| | | label="项目" |
| | | width="180" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="proSex" label="性别" width="180"> |
| | | <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="isEat" label="空腹"> |
| | | <el-table-column prop="proCheckMethod" label="空腹"> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | </el-collapse-item> |
| | | </div> |
| | |
| | | <div> |
| | | <el-collapse-item title="请选择项目"> |
| | | <el-table :data="list" border style="width: 100%"> |
| | | <el-table-column prop="proName" label="项目" width="180"> |
| | | <el-table-column |
| | | prop="proName" |
| | | label="项目" |
| | | width="180" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column prop="proSex" label="性别" width="180"> |
| | | <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="isEat" label="空腹"> |
| | | <el-table-column prop="proCheckMethod" label="空腹"> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | </el-collapse-item> |
| | | </div> |
| | | </el-collapse> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { listReservation, gettjCancel, tjReappoint, tjCancelTj, } from "@/api/reservation/reservation"; |
| | | import { |
| | | addComp, addPlOrderAndDetail, Deptlist, |
| | | getDwAndDwDept, |
| | | } from "@/api/system/comp"; |
| | | import Big from "big.js"; |
| | | import { Loading } from "element-ui"; |
| | | import { |
| | | listReservation, |
| | | gettjCancel, |
| | | tjReappoint, |
| | | tjCancelTj, |
| | | getReservation, |
| | | } from "@/api/reservation/reservation"; |
| | | import printJS from "print-js"; |
| | | import { deptTreeSelect, projectGetList, getPackageListName, getaddtTransition, getTransitionList, } from "@/api/system/tijian"; |
| | | import { |
| | | deptTreeSelect, |
| | | projectGetList, |
| | | getPackageListName, |
| | | getaddtTransition, |
| | | getTransitionList, |
| | | getconfigKey, |
| | | delTbBycusCardIdAndProId, |
| | | getTransitionList1, |
| | | } from "@/api/system/tijian"; |
| | | import { getCompany, queryCompany } from "@/api/team/tuanti"; |
| | | import user from "@/store/modules/user"; |
| | | import VTreeTransfer from "../../system/tijian/TreeTransfer.vue"; |
| | | export default { |
| | | components: { |
| | | VTreeTransfer, |
| | | }, |
| | | name: "Reservation", |
| | | dicts: ["dict_user_national", "dict_user_national", "dict_user_marry", "sys_yes_no", |
| | | "sys_user_sex", "dict_team", "tj_time_region", "dict_tjtype", "dict_job", |
| | | "dict_user_cardtype", "dict_ageunit",], |
| | | dicts: [ |
| | | "dict_user_national", |
| | | "dict_user_national", |
| | | "dict_user_marry", |
| | | "sys_yes_no", |
| | | "sys_user_sex", |
| | | "dict_team", |
| | | "tj_time_region", |
| | | "dict_tjtype", |
| | | "dict_job", |
| | | "dict_user_cardtype", |
| | | "dict_ageunit", |
| | | ], |
| | | 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(""); |
| | | } |
| | | }; |
| | | return { |
| | | isfalse: false, |
| | | tijiao1: true, |
| | |
| | | return time.getTime() < Date.now() - 8.64e7; // 不可选历史天、不可选当前天、可选未来天 |
| | | }, |
| | | }, |
| | | discount: 10, |
| | | taocan: false, |
| | | webSocket: null, |
| | | defaultKeys: [], |
| | | deptList: [], |
| | | groupingList: [], |
| | | value1: "", |
| | | pacName: "", |
| | | hides: false, |
| | |
| | | dialogVisibles: false, |
| | | src: "", |
| | | url: "", |
| | | open2: false, |
| | | forms: { |
| | | tjCategory: "12", |
| | | }, |
| | | dialogVisible: false, |
| | | /** 照相机弹窗模块-start */ |
| | | videoWidth: 200, |
| | |
| | | thisCancas: null, |
| | | thisContext: null, |
| | | thisVideo: null, |
| | | datekey: Date.now(), |
| | | treedataList: [], |
| | | list: [], |
| | | activeName: "1", |
| | | // 遮罩层 |
| | |
| | | multiple: true, |
| | | nodeobj: {}, |
| | | // 是否显示弹出层 |
| | | Seachopen: false, |
| | | |
| | | pacId: "", |
| | | cusIds: [], |
| | | // 结果 |
| | | result: "", |
| | | createTimeList: "", |
| | | startTime: "", |
| | | proIds: [], |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | |
| | | cusBrithday: null, |
| | | cusAddr: null, |
| | | cusPhone: null, |
| | | yykssj: "", // 预约开始时间 |
| | | yyjssj: "", // 预约结束时间 |
| | | cusPostcode: null, |
| | | cusEmail: null, |
| | | indexCard: null, |
| | |
| | | cusNumber: null, |
| | | cusIsvip: null, |
| | | }, |
| | | formIn: {}, |
| | | formIn: { |
| | | name: "", |
| | | age: "", |
| | | idCard: "", |
| | | remark: null, |
| | | pacName: "", |
| | | cusaddr: null, |
| | | idType: null, |
| | | ageUnit: null, |
| | | sex: null, |
| | | phoe: "", |
| | | nation: null, |
| | | email: "", |
| | | marriage: null, |
| | | address: "", |
| | | tjCategory: null, |
| | | company: "", |
| | | career: null, |
| | | reservationTime: null, |
| | | timeRegion: null, |
| | | indexCard: "", |
| | | department: "", |
| | | }, |
| | | fmobj: {}, |
| | | // 表单校验 |
| | | form1: {}, |
| | | open1: false, |
| | | rules1: { |
| | | cnName: [{ required: true, trigger: "blur" }], |
| | | contactPerson: [{ required: true, trigger: "blur" }], |
| | | contactPhone: [ |
| | | { |
| | | required: true, |
| | | trigger: "blur", |
| | | }, |
| | | { |
| | | pattern: /^1[3-9]\d{9}$/, |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | rules: { |
| | | cusName: [{ required: true, message: "姓名不能为空", trigger: "blur" }], |
| | | cusName: [ |
| | | { required: true, validator: checkPhoneNum, trigger: "blur" }, |
| | | ], |
| | | cusSex: [ |
| | | { required: true, message: "性别不能为空", trigger: "change" }, |
| | | { required: true, validator: checkPhoneNum, trigger: "change" }, |
| | | ], |
| | | cusBrithday: [ |
| | | { required: true, message: "出生日期不能为空", trigger: "blur" }, |
| | | { required: true, validator: checkPhoneNum, trigger: "blur" }, |
| | | ], |
| | | // cusAddr: [ |
| | | // { required: true, message: "现居住地址不能为空", trigger: "blur" }, |
| | | // ], |
| | | cusPhone: [ |
| | | { required: true, message: "联系电话不能为空", trigger: "blur" }, |
| | | { required: true, validator: checkPhoneNum, trigger: "blur" }, |
| | | ], |
| | | reservationTime: [ |
| | | { required: true, message: "预约日期不能为空", trigger: "change" }, |
| | | { required: true, validator: checkPhoneNum, trigger: "change" }, |
| | | ], |
| | | timeRegion: [ |
| | | { required: true, message: "时间不能为空", trigger: "blur" }, |
| | | { required: true, validator: checkPhoneNum, trigger: "blur" }, |
| | | ], |
| | | }, |
| | | options: [ |
| | |
| | | reservationList: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | valueUrls: "ws://127.0.0.1:6789/websocket", |
| | | drawer: false, |
| | | drawer1: false, |
| | | // 查询参数 |
| | |
| | | orderByColumn: "reservationTime", |
| | | isAsc: "desc", |
| | | name: null, |
| | | reservationTime: null, |
| | | idCard: null, |
| | | phoe: null, |
| | | email: null, |
| | |
| | | name: [ |
| | | { |
| | | required: true, |
| | | message: "姓名不能为空", |
| | | validator: checkPhoneNum, |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | idCard: [ |
| | | { |
| | | required: true, |
| | | message: "身份证号不能为空", |
| | | validator: checkPhoneNum, |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | phoe: [ |
| | | { |
| | | required: true, |
| | | message: "联系电话不能为空", |
| | | validator: checkPhoneNum, |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | |
| | | // }, |
| | | // ], |
| | | }, |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "最近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(new Date().setHours(0, 0, 0, 0)); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(new Date().setHours(0, 0, 0, 0)); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(new Date().setHours(0, 0, 0, 0)); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | isAll(value) { |
| | | return value === "" || value === null; |
| | | }, |
| | | validateDiscount(row) { |
| | | if (row.discount == null || isNaN(row.discount)) { |
| | | row.discount = 10; |
| | | } |
| | | if (row.discount > 10) { |
| | | row.discount = 10; // 强制将值设置为最大值 |
| | | } else if (row.discount < 0) { |
| | | row.discount = 0; // 强制将值设置为最小值 |
| | | } |
| | | this.updateProPrice(row); // 更新价格或其他逻辑 |
| | | }, |
| | | updateProPrice(row) { |
| | | const ordPrice = new Big(row.ordPrice || 0); |
| | | const discount = new Big(row.discount || 0); |
| | | const result = ordPrice.times(discount.div(10)); // ordPrice * (discount / 10) |
| | | row.nowPrice = result.toNumber(); |
| | | this.TotalPrice = this.tableData1.reduce((sum, item) => { |
| | | return sum.plus(new Big(item.nowPrice || "0")); |
| | | }, new Big(0)); |
| | | |
| | | this.discount = |
| | | (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) / 100) * 10; |
| | | }, |
| | | |
| | | dateChangebirthday2(val) { |
| | | this.startTime = val; |
| | | }, |
| | | |
| | | /** 删除按钮操作 */ |
| | | handleDelete1(row) { |
| | | // console.log(row); |
| | | let data = { |
| | | cusCardId: row.cusId, |
| | | proId: row.parentProId, |
| | | }; |
| | | this.$modal |
| | | .confirm("是否确认删除?") |
| | | .then(() => { |
| | | return delTbBycusCardIdAndProId(data); |
| | | }) |
| | | .then(() => { |
| | | this.TotalPrice1 = 0; |
| | | getTransitionList1(row.cusId).then((response) => { |
| | | this.tableData1 = response.data; |
| | | |
| | | this.tableData1.forEach((item) => { |
| | | this.TotalPrice1 += item.ordPrice; |
| | | this.TotalPrice += item.nowPrice; |
| | | }); |
| | | this.TotalPrice = this.tableData1.reduce((sum, item) => { |
| | | return sum.plus(new Big(item.nowPrice || "0")); |
| | | }, new Big(0)); |
| | | this.discount = |
| | | (Math.floor((this.TotalPrice / this.TotalPrice1) * 100) / 100) * |
| | | 10; |
| | | }); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }) |
| | | .catch(() => { }); |
| | | }, |
| | | 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) { |
| | | console.log(value) |
| | | if (value) { |
| | | this.form.dictCompId = value; |
| | | this.CompanyList.forEach((item) => { |
| | | if (item.drugManufacturerId == this.form.dictCompId) { |
| | | this.form.compName = item.cnName; |
| | | this.queryParams.company = item.cnName; |
| | | } |
| | | }); |
| | | Deptlist(value).then((response) => { |
| | | this.deptList = response.data; |
| | | }); |
| | | } |
| | | }, |
| | | idFn2(value) { |
| | | let data = { |
| | | deptId: value, |
| | | dwId: this.form.dictCompId, |
| | | }; |
| | | getDwAndDwDept(data).then((response) => { |
| | | // 部门名称 |
| | | this.groupingList = response.data; |
| | | |
| | | }); |
| | | }, |
| | | /** 查询体检预约列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | if (this.startTime) { |
| | | this.queryParams.yykssj = this.startTime[0]; |
| | | this.queryParams.yyjssj = this.startTime[1]; |
| | | } else if (this.createTimeList) { |
| | | this.queryParams.yykssj = this.createTimeList[0]; |
| | | this.queryParams.yyjssj = this.createTimeList[1]; |
| | | } else if (this.createTimeList == null) { |
| | | this.queryParams.yykssj = null; |
| | | this.queryParams.yyjssj = null; |
| | | } |
| | | listReservation(this.queryParams).then((response) => { |
| | | this.reservationList = response.rows; |
| | | // response.rows.forEach((item, index) => |
| | | // {item.newID =(this.queryParams.pageNum - 1) * this.queryParams.pageSize +index +1; |
| | | // }); |
| | | this.reservationList.forEach((item) => { |
| | | if (item.tjType === "2") { |
| | | item.tjType = "个人"; |
| | | } else { |
| | | item.tjType = "团队"; |
| | | } |
| | | if (item.tjCategory === "01") { |
| | | item.tjCategory = "健康体检"; |
| | | } else if (item.tjCategory === "02") { |
| | | item.tjCategory = "职业病体检"; |
| | | } else if (item.tjCategory === "03") { |
| | | item.tjCategory = "公卫体检"; |
| | | } else if (item.tjCategory === "04") { |
| | | item.tjCategory = "入职体检"; |
| | | } else if (item.tjCategory === "05") { |
| | | item.tjCategory = "公务员体检"; |
| | | } else if (item.tjCategory === "06") { |
| | | item.tjCategory = "医保体检"; |
| | | } else if (item.tjCategory === "07") { |
| | | item.tjCategory = "婚检"; |
| | | } else if (item.tjCategory === "09") { |
| | | item.tjCategory = "出入境体检"; |
| | | } |
| | | }); |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.open2 = false; |
| | | this.reset(); |
| | | }, |
| | | |
| | |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.startTime = []; |
| | | this.createTimeList = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | cusName: null, |
| | | cusSex: null, |
| | | cusBrithday: null, |
| | | cusAddr: null, |
| | | cusPhone: null, |
| | | yykssj: "", // 预约开始时间 |
| | | yyjssj: "", // 预约结束时间 |
| | | cusPostcode: null, |
| | | cusEmail: null, |
| | | indexCard: null, |
| | | cusNational: null, |
| | | cusMarryStatus: null, |
| | | cusIdcard: null, |
| | | cusIntroduce: null, |
| | | cusNumber: null, |
| | | cusIsvip: null, |
| | | }; |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | selection.forEach(item =>{ |
| | | this.fmobj = item |
| | | }) |
| | | console.log(this.fmobj) |
| | | this.cusIds = selection.map((item) => item.idCard); |
| | | selection.forEach((item) => { |
| | | this.fmobj = item; |
| | | }); |
| | | this.ids = selection.map((item) => item.id); |
| | | this.single = selection.length !== 1; |
| | | this.multiple = !selection.length; |
| | |
| | | handleUpdate(row) { |
| | | this.title = "修改体检预约"; |
| | | this.formIn = row; |
| | | this.form.tjType = this.formIn.tjType; |
| | | if (this.formIn.timeRegion === 0) { |
| | | this.formIn.timeRegion = "8:00-9:00"; |
| | | } |
| | |
| | | } |
| | | if (this.formIn.isExpire === 2) { |
| | | this.drawer = true; |
| | | this.discount = this.formIn.discount; |
| | | if (this.formIn.discount != null) { |
| | | this.discount = this.formIn.discount; |
| | | } |
| | | |
| | | //全部套餐 |
| | | if (this.formIn.sex != null) { |
| | | let cusSex = this.formIn.sex; |
| | | deptTreeSelect(cusSex).then((response) => { |
| | | this.newpacName = response.rows; |
| | | this.newpacName.forEach((item3) => { |
| | | this.tableData1.forEach((item4) => { |
| | | item4.list.forEach((item6) => { |
| | | if (item6.pacName === item3.pacName) { |
| | | this.$refs.tb.toggleRowSelection(item3, true); |
| | | throw Error(); |
| | | } |
| | | }); |
| | | }); |
| | | }); |
| | | // this.newpacName.forEach((item3) => { |
| | | // this.tableData1.forEach((item4) => { |
| | | // item4.list.forEach((item6) => { |
| | | // if (item6.pacName === item3.pacName) { |
| | | // this.$refs.tb.toggleRowSelection(item3, true); |
| | | // throw Error(); |
| | | // } |
| | | // }); |
| | | // }); |
| | | // }); |
| | | this.loading = false; |
| | | }); |
| | | } else { |
| | | deptTreeSelect().then((response) => { |
| | | this.newpacName = response.rows; |
| | | 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(); |
| | | } |
| | | }); |
| | | }); |
| | | }); |
| | | // 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(); |
| | | // } |
| | | // }); |
| | | // }); |
| | | // }); |
| | | this.loading = false; |
| | | }); |
| | | } |
| | | let cusId = this.formIn.idCard; |
| | | let id = this.formIn.id; |
| | | this.list1 = true; |
| | | (this.tableData1 = []), |
| | | (this.newpacName = []), |
| | | getTransitionList(cusId).then((response) => { |
| | | getReservation(id).then((response) => { |
| | | if (response.data) { |
| | | this.tableData1 = response.data; |
| | | if (this.tableData1.length != 0) { |
| | | this.TotalPrice1 = 0; |
| | | this.tableData1.forEach((item) => { |
| | | this.TotalPrice1 += item.nowPrice; |
| | | this.TotalPrice = ( |
| | | this.TotalPrice1 * |
| | | (this.discount / 10) |
| | | ).toFixed(2); |
| | | if (item.pacName === null) { |
| | | item.pacName = "单项"; |
| | | let cusId = response.data.idCard; |
| | | getTransitionList1(cusId).then((response) => { |
| | | if (response.data) { |
| | | this.tableData1 = response.data; |
| | | if (this.tableData1.length != 0) { |
| | | this.TotalPrice1 = 0; |
| | | this.tableData1.forEach((item) => { |
| | | this.TotalPrice1 += item.nowPrice; |
| | | this.TotalPrice = ( |
| | | this.TotalPrice1 * |
| | | (this.discount / 10) |
| | | ).toFixed(2); |
| | | if (item.pacName === null) { |
| | | item.pacName = "单项"; |
| | | } |
| | | }); |
| | | this.list1 = false; |
| | | this.list3 = true; |
| | | } else { |
| | | this.list1 = true; |
| | | } |
| | | }); |
| | | this.list1 = false; |
| | | this.list3 = true; |
| | | } else { |
| | | this.list1 = true; |
| | | } |
| | | } |
| | | }); |
| | | } else { |
| | | this.tableData1 = []; |
| | | this.list3 = false; |
| | |
| | | } |
| | | }); |
| | | |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.data = response.data; |
| | | this.dXData = response.data; |
| | | return; |
| | | }); |
| | | // /** 查询部门下拉树结构 */ |
| | | // projectGetList().then((response) => { |
| | | // this.treedataList = response.data.list; |
| | | // this.dXData = response.data.list; |
| | | // return; |
| | | // }); |
| | | } else { |
| | | this.$message.warning("已过期请重新预约"); |
| | | } |
| | | }, |
| | | changeCategoryKeys(val) { |
| | | this.proIds = []; |
| | | this.proIds = val; |
| | | }, |
| | | /** 修改详细按钮操作 */ |
| | | handleUpdate1(row) { |
| | |
| | | this.tijiao1 = false; |
| | | } |
| | | this.drawer1 = true; |
| | | this.discount = this.formIn.discount; |
| | | if (this.formIn.discount != null) { |
| | | this.discount = this.formIn.discount; |
| | | } |
| | | //全部套餐 |
| | | if (this.formIn.sex != null) { |
| | | let cusSex = this.formIn.sex; |
| | |
| | | this.loading = false; |
| | | }); |
| | | } |
| | | let cusId = this.formIn.idCard; |
| | | let id = this.formIn.id; |
| | | this.list1 = true; |
| | | (this.tableData1 = []), |
| | | (this.newpacName = []), |
| | | getTransitionList(cusId).then((response) => { |
| | | getReservation(id).then((response) => { |
| | | if (response.data) { |
| | | this.tableData1 = response.data; |
| | | if (this.tableData1.length != 0) { |
| | | this.TotalPrice1 = 0; |
| | | this.tableData1.forEach((item) => { |
| | | this.TotalPrice1 += item.nowPrice; |
| | | this.TotalPrice = ( |
| | | this.TotalPrice1 * |
| | | (this.discount / 10) |
| | | ).toFixed(2); |
| | | if (item.pacName === null) { |
| | | item.pacName = "单项"; |
| | | let cusId = response.data.idCard; |
| | | getTransitionList1(cusId).then((response) => { |
| | | if (response.data) { |
| | | this.tableData1 = response.data; |
| | | |
| | | if (this.tableData1.length != 0) { |
| | | this.TotalPrice1 = 0; |
| | | this.tableData1.forEach((item) => { |
| | | this.TotalPrice1 += item.nowPrice; |
| | | this.TotalPrice = ( |
| | | this.TotalPrice1 * |
| | | (this.discount / 10) |
| | | ).toFixed(2); |
| | | if (item.pacName === null) { |
| | | item.pacName = "单项"; |
| | | } |
| | | }); |
| | | this.list1 = false; |
| | | this.list3 = true; |
| | | } else { |
| | | this.list1 = true; |
| | | } |
| | | }); |
| | | this.list1 = false; |
| | | this.list3 = true; |
| | | } else { |
| | | this.list1 = true; |
| | | } |
| | | } else { |
| | | this.tableData1 = []; |
| | | this.list3 = false; |
| | | this.list1 = true; |
| | | } else { |
| | | this.tableData1 = []; |
| | | this.list3 = false; |
| | | this.list1 = true; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.data = response.data; |
| | | this.dXData = response.data; |
| | | this.treedataList = response.data.list; |
| | | this.dXData = response.data.list; |
| | | return; |
| | | }); |
| | | }, |
| | |
| | | numberChange(currentValue, oldValue) { |
| | | this.discount = currentValue; |
| | | this.TotalPrice = (this.TotalPrice1 * (this.discount / 10)).toFixed(2); |
| | | }, |
| | | |
| | | Package() { |
| | | this.taocan = true; |
| | | this.datekey = Date.now(); |
| | | }, |
| | | |
| | | /** 搜索操作 */ |
| | |
| | | this.multiple = !selection.length; |
| | | if (selection[0]) { |
| | | this.DataList = []; |
| | | this.data = JSON.parse(JSON.stringify(this.dXData)); |
| | | this.treedataList = JSON.parse(JSON.stringify(this.dXData)); |
| | | selection[0].tjProjectList.forEach((selectionitem) => { |
| | | this.data.forEach((item) => { |
| | | this.treedataList.forEach((item) => { |
| | | if (selectionitem.proName == item.proName) { |
| | | item.disabled = true; |
| | | item.tjProjectList = []; |
| | |
| | | }); |
| | | }); |
| | | } else { |
| | | this.data = JSON.parse(JSON.stringify(this.dXData)); |
| | | this.treedataList = JSON.parse(JSON.stringify(this.dXData)); |
| | | return; |
| | | } |
| | | }, |
| | | |
| | | Groupsignin() { |
| | | this.open2 = true; |
| | | }, |
| | | |
| | | submitType() { |
| | | // let cusIds = []; |
| | | // this.selectList.forEach((item) => { |
| | | // cusIds.push(item.idCard); |
| | | // }); |
| | | let loadingInstance1 = Loading.service({ |
| | | fullscreen: true, |
| | | text: "签到中", |
| | | }); |
| | | let data = { |
| | | cusIds: this.cusIds, |
| | | tjCategory: this.forms.tjCategory, |
| | | }; |
| | | this.open2 = false; |
| | | addPlOrderAndDetail(data).then((res) => { |
| | | if (res.code == 200) { |
| | | this.open2 = false; |
| | | this.$modal.msgSuccess("签到成功"); |
| | | if (res.file) { |
| | | let base64 = res.file; |
| | | this.base64ToBlob({ |
| | | b64data: base64, |
| | | contentType: "application/pdf", |
| | | }).then((res) => { |
| | | this.dialogVisible = true; |
| | | // 转后后的blob对象 |
| | | try { |
| | | this.url = res.preview; |
| | | } catch (error) { |
| | | this.url = window.webkitURL.createObjectURL(res.preview); |
| | | } |
| | | }); |
| | | } else { |
| | | let _this = this; |
| | | this.$nextTick(() => { |
| | | // 以服务的方式调用的 Loading 需要异步关闭 |
| | | loadingInstance1.close(); |
| | | }); |
| | | var websocket = null; |
| | | var url = _this.valueUrls; |
| | | if ("WebSocket" in window) { |
| | | websocket = new WebSocket(url); |
| | | } else if ("MozWebSocket" in window) { |
| | | websocket = new MozWebSocket(url); |
| | | } else { |
| | | } |
| | | if (websocket == null) { |
| | | alert("11111"); |
| | | } |
| | | websocket.onopen = function () { |
| | | console.log("res", res); |
| | | |
| | | try { |
| | | // 连接设备 |
| | | var jsonObjs = { |
| | | type: 4, |
| | | data: res, |
| | | }; |
| | | 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: 4, |
| | | data: res, |
| | | }; |
| | | 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.cardreader = false; |
| | | }; |
| | | |
| | | //连接发生错误的回调方法 |
| | | websocket.onerror = function () { |
| | | alert("请检查连接是否正常"); |
| | | }; |
| | | |
| | | this.getList(); |
| | | } |
| | | } else { |
| | | this.$nextTick(() => { |
| | | // 以服务的方式调用的 Loading 需要异步关闭 |
| | | loadingInstance1.close(); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | base64ToBlob({ b64data = "", contentType = "", sliceSize = 512 } = {}) { |
| | | return new Promise((resolve, reject) => { |
| | | // 使用 atob() 方法将数据解码 |
| | | let byteCharacters = atob(b64data); |
| | | let byteArrays = []; |
| | | for ( |
| | | let offset = 0; |
| | | offset < byteCharacters.length; |
| | | offset += sliceSize |
| | | ) { |
| | | let slice = byteCharacters.slice(offset, offset + sliceSize); |
| | | let byteNumbers = []; |
| | | for (let i = 0; i < slice.length; i++) { |
| | | byteNumbers.push(slice.charCodeAt(i)); |
| | | } |
| | | // 8 位无符号整数值的类型化数组。内容将初始化为 0。 |
| | | // 如果无法分配请求数目的字节,则将引发异常。 |
| | | byteArrays.push(new Uint8Array(byteNumbers)); |
| | | } |
| | | let result = new Blob(byteArrays, { |
| | | type: contentType, |
| | | }); |
| | | result = Object.assign(result, { |
| | | // jartto: 这里一定要处理一下 URL.createObjectURL |
| | | preview: URL.createObjectURL(result), |
| | | // name: `图片示例.png`, |
| | | }); |
| | | resolve(result); |
| | | }); |
| | | }, |
| | | |
| | | // 点击获取每个树节点 |
| | |
| | | |
| | | receipt() { |
| | | setTimeout(function () { |
| | | const style = |
| | | "@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //打印时去掉眉页眉尾 |
| | | const style = "@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //打印时去掉眉页眉尾 |
| | | printJS({ |
| | | printable: "printBill", // 标签元素id |
| | | type: "html", |
| | |
| | | // 最后提交按钮 |
| | | submitPrice() { |
| | | let _this = this; |
| | | if (_this.tableData1.length > 0) { |
| | | 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.formIn.timeRegion === "8:00-9:00") { |
| | | this.formIn.timeRegion = 0; |
| | | } |
| | | if (this.formIn.timeRegion === "9:00-10:00") { |
| | | this.formIn.timeRegion = 1; |
| | | } |
| | | if (this.formIn.timeRegion === "10:00-11:00") { |
| | | this.formIn.timeRegion = 2; |
| | | } |
| | | if (this.formIn.timeRegion === "11:00-12:00") { |
| | | this.formIn.timeRegion = 3; |
| | | } |
| | | let data; |
| | | if (pacId) { |
| | | data = { |
| | | id: this.formIn.id, |
| | | isExpire: this.formIn.isExpire, |
| | | address: this.formIn.address, |
| | | company: this.formIn.company, |
| | | department: this.formIn.department, |
| | | discount: this.discount, |
| | | email: this.formIn.email, |
| | | idCard: this.formIn.idCard, |
| | | marriage: this.formIn.marriage, |
| | | name: this.formIn.name, |
| | | nation: this.formIn.nation, |
| | | pacId, |
| | | phoe: this.formIn.cusPhone, |
| | | reservationTime: this.formIn.reservationTime, |
| | | sex: this.formIn.sex, |
| | | timeRegion: this.formIn.timeRegion, |
| | | tjCategory: this.formIn.tjCategory, |
| | | // tjFlowingWater: this.tjFlowingWater, |
| | | tjType: this.formIn.tjType, |
| | | idType: this.formIn.idType, |
| | | age: this.formIn.age, |
| | | ageUnit: this.formIn.ageUnit, |
| | | career: this.formIn.career, |
| | | }; |
| | | } else { |
| | | data = { |
| | | id: this.formIn.id, |
| | | isExpire: this.formIn.isExpire, |
| | | address: this.formIn.address, |
| | | company: this.formIn.company, |
| | | department: this.formIn.department, |
| | | discount: this.discount, |
| | | email: this.formIn.email, |
| | | idCard: this.formIn.idCard, |
| | | marriage: this.formIn.marriage, |
| | | name: this.formIn.name, |
| | | nation: this.formIn.nation, |
| | | pacId, |
| | | phoe: this.formIn.phoe, |
| | | reservationTime: this.formIn.reservationTime, |
| | | sex: this.formIn.sex, |
| | | timeRegion: this.formIn.timeRegion, |
| | | tjCategory: this.formIn.tjCategory, |
| | | // tjFlowingWater: this.tjFlowingWater, |
| | | tjType: this.formIn.tjType, |
| | | idType: this.formIn.idType, |
| | | age: this.formIn.age, |
| | | ageUnit: this.formIn.ageUnit, |
| | | career: this.formIn.career, |
| | | }; |
| | | } |
| | | tjReappoint(data).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$modal.msgSuccess("登记成功"); |
| | | } |
| | | _this.drawer = false; |
| | | }); |
| | | this.getList(); |
| | | this.$tab.refreshPage(); |
| | | } else { |
| | | this.$message.warning("请选择您要体检的内容"); |
| | | // if (_this.tableData1.length > 0) { |
| | | 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.formIn.timeRegion === "8:00-9:00") { |
| | | this.formIn.timeRegion = 0; |
| | | } |
| | | if (this.formIn.timeRegion === "9:00-10:00") { |
| | | this.formIn.timeRegion = 1; |
| | | } |
| | | if (this.formIn.timeRegion === "10:00-11:00") { |
| | | this.formIn.timeRegion = 2; |
| | | } |
| | | if (this.formIn.timeRegion === "11:00-12:00") { |
| | | this.formIn.timeRegion = 3; |
| | | } |
| | | let data; |
| | | if (pacId) { |
| | | data = { |
| | | id: this.formIn.id, |
| | | isExpire: this.formIn.isExpire, |
| | | address: this.formIn.address, |
| | | company: this.formIn.company, |
| | | department: this.formIn.department, |
| | | discount: this.discount, |
| | | email: this.formIn.email, |
| | | idCard: this.formIn.idCard, |
| | | marriage: this.formIn.marriage, |
| | | name: this.formIn.name, |
| | | nation: this.formIn.nation, |
| | | pacId, |
| | | phoe: this.formIn.cusPhone, |
| | | reservationTime: this.formIn.reservationTime, |
| | | sex: this.formIn.sex, |
| | | timeRegion: this.formIn.timeRegion, |
| | | tjCategory: this.formIn.tjCategory, |
| | | // tjFlowingWater: this.tjFlowingWater, |
| | | tjType: this.formIn.tjType, |
| | | idType: this.formIn.idType, |
| | | age: this.formIn.age, |
| | | ageUnit: this.formIn.ageUnit, |
| | | career: this.formIn.career, |
| | | }; |
| | | } else { |
| | | data = { |
| | | id: this.formIn.id, |
| | | isExpire: this.formIn.isExpire, |
| | | address: this.formIn.address, |
| | | company: this.formIn.company, |
| | | department: this.formIn.department, |
| | | discount: this.discount, |
| | | email: this.formIn.email, |
| | | idCard: this.formIn.idCard, |
| | | marriage: this.formIn.marriage, |
| | | name: this.formIn.name, |
| | | nation: this.formIn.nation, |
| | | pacId, |
| | | phoe: this.formIn.phoe, |
| | | reservationTime: this.formIn.reservationTime, |
| | | sex: this.formIn.sex, |
| | | timeRegion: this.formIn.timeRegion, |
| | | tjCategory: this.formIn.tjCategory, |
| | | // tjFlowingWater: this.tjFlowingWater, |
| | | tjType: this.formIn.tjType, |
| | | idType: this.formIn.idType, |
| | | age: this.formIn.age, |
| | | ageUnit: this.formIn.ageUnit, |
| | | career: this.formIn.career, |
| | | }; |
| | | } |
| | | tjReappoint(data).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$modal.msgSuccess("预约成功"); |
| | | } |
| | | _this.drawer = false; |
| | | }); |
| | | this.getList(); |
| | | this.$tab.refreshPage(); |
| | | // } else { |
| | | // this.$message.warning("请选择您要体检的内容"); |
| | | // } |
| | | }, |
| | | // 最后提交按钮 |
| | | submitPrice1() { |
| | |
| | | border-radius: 2em; |
| | | } |
| | | |
| | | .dialog-footer2 { |
| | | width: 960px; |
| | | height: 36px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | /* 修改 滑块 */ |
| | | #printIframe::-webkit-scrollbar-thumb { |
| | | background-color: #dcdfe6; |