pengjun 4 months ago
parent
commit
c0005702e4
  1. 530
      src/views/fee-settings/cardRegister.vue

530
src/views/fee-settings/cardRegister.vue

@ -8,8 +8,7 @@
<span class="contenttitleBold">会员卡管理</span>
</div>
</div>
<div
style="
<div style="
background-color: #fff;
padding: 15px;
border-radius: 8px;
@ -18,52 +17,22 @@
margin-bottom: 10px;
height: 80px;
margin-top: 7px;
"
>
">
<div class="query">
<el-select
v-model="query.dateType"
placeholder="请选择"
filterable
size="small"
style="width: 80px"
>
<el-select v-model="query.dateType" placeholder="请选择" filterable size="small" style="width: 80px">
<el-option label="登记日期" value="createDate" />
<el-option label="有效日期" value="expiryDate" />
</el-select>
<el-date-picker
v-model="query.startDate"
style="width: 90px"
value-format="yyyy-MM-dd"
type="date"
placeholder="起始日期"
size="small"
/>
<el-date-picker v-model="query.startDate" style="width: 90px" value-format="yyyy-MM-dd" type="date"
placeholder="起始日期" size="small" />
<span>--</span>
<el-date-picker
v-model="query.endDate"
style="width: 90px"
value-format="yyyy-MM-dd"
type="date"
placeholder="截止日期"
size="small"
/>
<el-date-picker v-model="query.endDate" style="width: 90px" value-format="yyyy-MM-dd" type="date"
placeholder="截止日期" size="small" />
</div>
<div class="query">
<span class="spanClass">卡类别</span>
<el-select
v-model="query.cardTypeId"
placeholder="请选择"
clearable
size="small"
style="width: 70px"
>
<el-option
v-for="item in dict.cardType"
:key="item.id"
:label="item.displayName"
:value="item.id"
/>
<el-select v-model="query.cardTypeId" placeholder="请选择" clearable size="small" style="width: 70px">
<el-option v-for="item in dict.cardType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</div>
<div class="query">
@ -74,82 +43,41 @@
<el-radio :label="0">停用</el-radio>
</el-radio-group>
-->
<el-select
v-model="query.isActive"
placeholder="请选择"
style="width: 60px"
clearable
size="small"
>
<el-select v-model="query.isActive" placeholder="请选择" style="width: 60px" clearable size="small">
<el-option label="启用" value="Y" />
<el-option label="停用" value="N" />
</el-select>
</div>
<div class="query">
<span class="spanClass">卡号</span>
<el-input
placeholder="卡号"
v-model="query.cardNo"
size="small"
clearable
style="width: 100px"
/>
<el-input placeholder="卡号" v-model="query.cardNo" size="small" clearable style="width: 100px" />
</div>
<div class="query">
<span class="spanClass">卡主姓名</span>
<el-input
placeholder="卡主姓名"
v-model="query.customerName"
size="small"
clearable
style="width: 70px"
/>
<el-input placeholder="卡主姓名" v-model="query.customerName" size="small" clearable style="width: 70px" />
</div>
<div class="query">
<span class="spanClass">身份证号</span>
<el-input
placeholder="身份证号"
v-model="query.idNo"
size="small"
clearable
style="width: 160px"
/>
<el-input placeholder="身份证号" v-model="query.idNo" size="small" clearable style="width: 160px" />
</div>
<div class="query">
<span class="spanClass">电话</span>
<el-input
placeholder="手机号/电话"
v-model="query.mobileTelephone"
size="small"
clearable
style="width: 120px"
/>
<el-input placeholder="手机号/电话" v-model="query.mobileTelephone" size="small" clearable
style="width: 120px" />
</div>
</div>
<div
style="
<div style="
background-color: #fff;
padding: 15px;
border-radius: 8px;
margin-bottom: 10px;
"
>
<el-table
:data="dataList"
ref="info"
id="info"
width="100%"
:height="
window.pageHeight < 600
">
<el-table :data="dataList" ref="info" id="info" width="100%" :height="window.pageHeight < 600
? 210
: Math.floor((window.pageHeight - 340) / 2)
"
row-key="id"
highlight-current-row
@selection-change="handleSelectionChange"
@row-click="rowClick"
>
<el-table-column prop="cardTypeId" label="卡类别" width="70">
" row-key="id" highlight-current-row @selection-change="handleSelectionChange" @row-click="rowClick">
<el-table-column type="index" label="序号" width="50" />
<el-table-column prop="cardTypeId" label="卡类别" width="70" sortable>
<template slot-scope="scope">
<div>
{{
@ -163,48 +91,36 @@
</div>
</template>
</el-table-column>
<el-table-column prop="cardNo" label="会员卡号" width="150" />
<el-table-column prop="discount" label="折扣率" width="80" />
<el-table-column prop="cardBalance" label="卡余额" width="80" />
<el-table-column prop="expiryDate" label="有效期限" width="120">
<el-table-column prop="cardNo" label="会员卡号" width="150" sortable/>
<el-table-column prop="discount" label="折扣率" width="80" sortable/>
<el-table-column prop="cardBalance" label="卡余额" width="80" sortable/>
<el-table-column prop="expiryDate" label="有效期限" width="120" sortable>
<template slot-scope="scope">
<div v-if="scope.row.expiryDate">
{{ moment(scope.row.expiryDate).format("yyyy-MM-DD") }}
</div>
</template>
</el-table-column>
<el-table-column prop="customerName" label="卡主姓名" width="80" />
<el-table-column prop="idNo" label="卡主身份证号" width="200" />
<el-table-column prop="telephone" label="卡主电话" width="150" />
<el-table-column
prop="mobileTelephone"
label="卡主手机号"
width="150"
/>
<el-table-column prop="isActive" label="启用" width="80">
<el-table-column prop="customerName" label="卡主姓名" width="80" sortable/>
<el-table-column prop="idNo" label="卡主身份证号" width="200" sortable/>
<el-table-column prop="telephone" label="卡主电话" width="150" sortable/>
<el-table-column prop="mobileTelephone" label="卡主手机号" width="150" sortable/>
<el-table-column prop="isActive" label="启用" width="80" sortable>
<template slot-scope="scope">
<div>{{ scope.row.isActive == "N" ? "否" : "是" }}</div>
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" width="200" />
<el-table-column prop="creatorName" label="创建人员" width="100" />
<el-table-column prop="creationTime" label="创建日期" width="150">
<el-table-column prop="remark" label="备注" width="200" sortable/>
<el-table-column prop="creatorName" label="创建人员" width="100" sortable/>
<el-table-column prop="creationTime" label="创建日期" width="150" sortable>
<template slot-scope="scope">
<div v-if="scope.row.creationTime">
{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}
</div>
</template>
</el-table-column>
<el-table-column
prop="lastModifierName"
label="修改人员"
width="100"
/>
<el-table-column
prop="lastModificationTime"
label="修改日期"
width="150"
>
<el-table-column prop="lastModifierName" label="修改人员" width="100" sortable/>
<el-table-column prop="lastModificationTime" label="修改日期" width="150" sortable>
<template slot-scope="scope">
<div v-if="scope.row.lastModificationTime">
{{
@ -217,29 +133,18 @@
<div style="display: flex; justify-content: space-between">
<div></div>
<div>
<span style="font-size: 12px"
>{{ loadOpts.totalCount }} 条记录当前显示{{
<span style="font-size: 12px">{{ loadOpts.totalCount }} 条记录当前显示{{
dataList.length
}}
</span
>
</span>
</div>
</div>
</div>
<div style="background-color: #fff; padding: 15px; border-radius: 8px">
<el-table
:data="cardBillList"
width="100%"
:height="
window.pageHeight < 600
<el-table :data="cardBillList" width="100%" :height="window.pageHeight < 600
? 210
: Math.floor((window.pageHeight - 300) / 2)
"
row-key="id"
highlight-current-row
ref="cardBillList"
@selection-change="handleSelectionChange"
>
" row-key="id" highlight-current-row ref="cardBillList" @selection-change="handleSelectionChange">
<el-table-column prop="payModeId" label="支付方式">
<template slot-scope="scope">
<div>
@ -268,11 +173,7 @@
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改人员" />
<el-table-column
prop="lastModificationTime"
label="修改日期"
width="150"
>
<el-table-column prop="lastModificationTime" label="修改日期" width="150">
<template slot-scope="scope">
<div v-if="scope.row.lastModificationTime">
{{
@ -284,15 +185,13 @@
</el-table>
</div>
</div>
<div
style="
<div style="
margin-left: 10px;
margin-top: 50px;
position: absolute;
top: 0;
right: 0;
"
>
">
<div>
<el-button class="commonbutton" @click="btnQuery">查询</el-button>
</div>
@ -319,23 +218,14 @@
</div>
<div style="margin-top: 10px">
<a :underline="false" href="/files/单位体检人员名单导入模板.xlsx">
<el-button class="commonbutton" style="font-size: 12px"
>导入建卡模板</el-button
>
<el-button class="commonbutton" style="font-size: 12px">导入建卡模板</el-button>
</a>
</div>
<div style="margin-top: 10px">
<el-button class="commonbutton" @click="btnImportCard"
>导入建卡</el-button
>
<el-button class="commonbutton" @click="btnImportCard">导入建卡</el-button>
</div>
<div style="margin-top: 10px">
<download-excel
:fields="jsonFields"
:fetch="btnExport"
type="xls"
:name="tableName"
>
<download-excel :fields="jsonFields" :fetch="btnExport" type="xls" :name="tableName">
<el-button class="commonbutton">导出excel</el-button>
</download-excel>
</div>
@ -344,35 +234,15 @@
<!--弹窗-->
<div>
<el-dialog
:title="form.id ? '编辑' : '新增'"
:visible.sync="dialogVisible"
width="820px"
:close-on-click-modal="false"
>
<el-form
ref="form"
:model="form"
label-width="100px"
:rules="rules"
size="small"
>
<el-dialog :title="form.id ? '编辑' : '新增'" :visible.sync="dialogVisible" width="820px"
:close-on-click-modal="false">
<el-form ref="form" :model="form" label-width="100px" :rules="rules" size="small">
<el-row>
<el-col :span="8">
<el-form-item label="卡类别" prop="cardTypeId">
<el-select
v-model="form.cardTypeId"
placeholder="请选择"
filterable
@change="category"
:disabled="form.id ? true : false"
>
<el-option
v-for="item in dict.cardType"
:key="item.id"
:label="item.displayName"
:value="item.id"
/>
<el-select v-model="form.cardTypeId" placeholder="请选择" filterable @change="category"
:disabled="form.id ? true : false">
<el-option v-for="item in dict.cardType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
@ -390,13 +260,8 @@
<el-row>
<el-col :span="8">
<el-form-item label="有效期限" prop="expiryDate">
<el-date-picker
v-model="form.expiryDate"
type="date"
placeholder="有效期限"
size="small"
:style="'width: ' + Math.floor((820 - 340) / 3) + 'px'"
/>
<el-date-picker v-model="form.expiryDate" type="date" placeholder="有效期限" size="small"
:style="'width: ' + Math.floor((820 - 340) / 3) + 'px'" />
</el-form-item>
</el-col>
<el-col :span="8">
@ -431,18 +296,10 @@
<el-row>
<el-col :span="8">
<el-form-item label="体检中心" prop="medicalCenterId">
<el-select
v-model="form.medicalCenterId"
placeholder="请选择"
filterable
:disabled="peisid ? true : false"
>
<el-option
v-for="item in dict.organization"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
<el-select v-model="form.medicalCenterId" placeholder="请选择" filterable
:disabled="peisid ? true : false">
<el-option v-for="item in dict.organization" :key="item.id" :label="item.displayName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
@ -462,14 +319,10 @@
</el-col>
<el-col :span="6">
<el-form-item label="创建时间" label-width="80px">
<el-input
:value="
form.creationTime
<el-input :value="form.creationTime
? moment(form.creationTime).format('yyyy-MM-DD')
: ''
"
disabled
></el-input>
" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
@ -479,43 +332,21 @@
</el-col>
<el-col :span="6">
<el-form-item label="修改时间" label-width="80px">
<el-input
:value="
form.lastModificationTime
<el-input :value="form.lastModificationTime
? moment(form.lastModificationTime).format('yyyy-MM-DD')
: ''
"
disabled
></el-input>
" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false" class="difference"
>取消</el-button
>
<el-button
type="primary"
@click="onSubmit('form')"
class="commonbutton"
>确定</el-button
>
<el-button @click="dialogVisible = false" class="difference">取消</el-button>
<el-button type="primary" @click="onSubmit('form')" class="commonbutton">确定</el-button>
</div>
</el-dialog>
<el-dialog
title="会员卡充值"
:visible.sync="dialogOrder"
width="400px"
:close-on-click-modal="false"
>
<el-form
ref="order"
:model="order"
label-width="100px"
:rules="orderRules"
size="small"
>
<el-dialog title="会员卡充值" :visible.sync="dialogOrder" width="400px" :close-on-click-modal="false">
<el-form ref="order" :model="order" label-width="100px" :rules="orderRules" size="small">
<el-col :span="24">
<el-form-item label="会员卡号" prop="cardRegisterId">
<el-input v-model="order.cardNo" disabled style="width: 200px" />
@ -523,117 +354,54 @@
</el-col>
<el-col :span="24">
<el-form-item label="充值方式" prop="payModeId">
<el-select
v-model="order.payModeId"
placeholder="请选择"
filterable
:disabled="order.id ? true : false"
style="width: 200px"
>
<el-option
v-for="item in dict.payMode"
:key="item.id"
:label="item.displayName"
:value="item.id"
/>
<el-select v-model="order.payModeId" placeholder="请选择" filterable :disabled="order.id ? true : false"
style="width: 200px">
<el-option v-for="item in dict.payMode" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="充值金额" prop="billMoney">
<el-input
type="number"
v-model="order.billMoney"
:disabled="order.id ? true : false"
style="width: 200px"
/>
<el-input type="number" v-model="order.billMoney" :disabled="order.id ? true : false"
style="width: 200px" />
</el-form-item>
</el-col>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogOrder = false" class="difference"
>取消</el-button
>
<el-button
type="primary"
@click="orderSubmit('order')"
class="commonbutton"
>确定</el-button
>
<el-button @click="dialogOrder = false" class="difference">取消</el-button>
<el-button type="primary" @click="orderSubmit('order')" class="commonbutton">确定</el-button>
</div>
</el-dialog>
<el-dialog
title="会员卡退费"
:visible.sync="refundOrder"
width="400px"
:close-on-click-modal="false"
>
<el-form
ref="refundorder"
:model="refundorder"
label-width="100px"
:rules="refundRules"
size="small"
>
<el-dialog title="会员卡退费" :visible.sync="refundOrder" width="400px" :close-on-click-modal="false">
<el-form ref="refundorder" :model="refundorder" label-width="100px" :rules="refundRules" size="small">
<el-col :span="24">
<el-form-item label="会员卡号" prop="cardRegisterId">
<el-input
v-model="refundorder.cardNo"
disabled
style="width: 200px"
/>
<el-input v-model="refundorder.cardNo" disabled style="width: 200px" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="退费方式" prop="payModeId">
<el-select
v-model="refundorder.payModeId"
placeholder="请选择"
filterable
:disabled="refundorder.id ? true : false"
style="width: 200px"
>
<el-option
v-for="item in dict.payMode"
:key="item.id"
:label="item.displayName"
:value="item.id"
/>
<el-select v-model="refundorder.payModeId" placeholder="请选择" filterable
:disabled="refundorder.id ? true : false" style="width: 200px">
<el-option v-for="item in dict.payMode" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="退费金额" prop="billMoney">
<el-input
type="number"
v-model="refundorder.billMoney"
:disabled="refundorder.id ? true : false"
style="width: 200px"
/>
<el-input type="number" v-model="refundorder.billMoney" :disabled="refundorder.id ? true : false"
style="width: 200px" />
</el-form-item>
</el-col>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="refundOrder = false" class="difference"
>取消</el-button
>
<el-button
type="primary"
@click="orderSubmit('refundorder')"
class="commonbutton"
>确定</el-button
>
<el-button @click="refundOrder = false" class="difference">取消</el-button>
<el-button type="primary" @click="orderSubmit('refundorder')" class="commonbutton">确定</el-button>
</div>
</el-dialog>
<el-dialog
title="导入EXCEL注意事项"
:visible.sync="dialogGroup.fileReadme"
width="700px"
:show-close="false"
:append-to-body="true"
:close-on-click-modal="false"
>
<el-dialog title="导入EXCEL注意事项" :visible.sync="dialogGroup.fileReadme" width="700px" :show-close="false"
:append-to-body="true" :close-on-click-modal="false">
<div style="height: 400px; padding: 0 20px">
<br />导入Excel时Excel的格式必须符合一定规范该格式的模板文件可通过下载模板获取
<br />注意事项如下:
@ -646,82 +414,40 @@
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button class="commonbutton" type="primary" @click="seq--"
>上一步</el-button
>
<el-button class="commonbutton" type="primary" @click="seq++"
>下一步</el-button
>
<el-button class="commonbutton" type="primary" @click="seq--">上一步</el-button>
<el-button class="commonbutton" type="primary" @click="seq++">下一步</el-button>
<el-button class="commonbutton" @click="seq = -1">关闭</el-button>
</span>
</el-dialog>
<el-dialog
title="选择文件"
:visible.sync="dialogGroup.fileChoose"
width="700px"
:show-close="false"
:append-to-body="true"
:close-on-click-modal="false"
>
<el-dialog title="选择文件" :visible.sync="dialogGroup.fileChoose" width="700px" :show-close="false"
:append-to-body="true" :close-on-click-modal="false">
<div style="height: 400px; padding: 0 50px">
<!-- webkitdirectory 选择文件属性 multiple 多选属性-->
<div>
<input
id="fileNames"
type="file"
accept=".xlsx,.xls"
@change="changeFileChoose"
@focus="fileGetFocus"
/>
<input id="fileNames" type="file" accept=".xlsx,.xls" @change="changeFileChoose" @focus="fileGetFocus" />
</div>
<div style="margin: 5px 70px; width: 240px">
<el-table
:data="sheetNames"
border
ref="sheetNames"
height="300"
row-click="chooseSheetName"
highlight-current-row
size="small"
>
<el-table-column
prop="sheetName"
label="Excel表单名"
min-width="200"
align="center"
/>
<el-table :data="sheetNames" border ref="sheetNames" height="300" row-click="chooseSheetName"
highlight-current-row size="small">
<el-table-column prop="sheetName" label="Excel表单名" min-width="200" align="center" />
</el-table>
</div>
<div style="display: flex; flex-wrap: wrap">
<span style="margin-top: 6px">标题行 </span>
<el-input
type="number"
v-model="readDataOpts.titleRow"
size="small"
style="width: 60px; margin: 0 5px"
/>
<el-input type="number" v-model="readDataOpts.titleRow" size="small" style="width: 60px; margin: 0 5px" />
<span style="margin-top: 6px"></span>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button class="commonbutton" type="primary" @click="seq--"
>上一步</el-button
>
<el-button class="commonbutton" type="primary" @click="seq++"
>下一步</el-button
>
<el-button class="commonbutton" type="primary" @click="seq--">上一步</el-button>
<el-button class="commonbutton" type="primary" @click="seq++">下一步</el-button>
<el-button class="commonbutton" @click="seq = -1">关闭</el-button>
</span>
</el-dialog>
<el-dialog
title="选择待导入的卡信息"
:visible.sync="dialogGroup.fileDataOpr"
width="700px"
:show-close="false"
:close-on-click-modal="false"
>
<el-dialog title="选择待导入的卡信息" :visible.sync="dialogGroup.fileDataOpr" width="700px" :show-close="false"
:close-on-click-modal="false">
<!--:append-to-body="true" -->
<div style="height: 400px">
<div style="margin-top: -10px">
@ -731,66 +457,28 @@
</div>
<div style="margin: 5px 0px 0px" @contextmenu.prevent="">
<!-- -->
<el-table
:data="excelData"
border
ref="excelData"
@header-contextmenu="headerContextmenu"
height="340"
@row-click="chooseDataImport"
row-key="id"
highlight-current-row
size="small"
:row-class-name="handleRowClassName"
>
<el-table-column
type="index"
align="center"
label="序号"
min-width="40"
/>
<el-table :data="excelData" border ref="excelData" @header-contextmenu="headerContextmenu" height="340"
@row-click="chooseDataImport" row-key="id" highlight-current-row size="small"
:row-class-name="handleRowClassName">
<el-table-column type="index" align="center" label="序号" min-width="40" />
<!--
<el-table-column prop="choosed" align="center" label="选中" min-width="40"/>
-->
<el-table-column
v-for="(item, index) in excelCols"
:key="`col_${index}`"
:prop="item.dispLabel"
align="center"
:label="
(item.val ? '√ ' : '') + (item.dataLabel || item.dispLabel)
"
:min-width="100 + index"
/>
<el-table-column v-for="(item, index) in excelCols" :key="`col_${index}`" :prop="item.dispLabel"
align="center" :label="(item.val ? '√ ' : '') + (item.dataLabel || item.dispLabel)
" :min-width="100 + index" />
</el-table>
</div>
</div>
<span slot="footer" class="dialog-footer">
<div style="display: flex; justify-content: space-between">
<div style="display: flex">
<el-button
class="commonbutton"
type="primary"
@click="btnChoose('excelData', 'all')"
>全选</el-button
>
<el-button
class="commonbutton"
type="primary"
@click="btnChoose('excelData')"
>取消全选</el-button
>
<el-button class="commonbutton" type="primary" @click="btnChoose('excelData', 'all')">全选</el-button>
<el-button class="commonbutton" type="primary" @click="btnChoose('excelData')">取消全选</el-button>
</div>
<div style="display: flex">
<el-button class="commonbutton" type="primary" @click="seq--"
>上一步</el-button
>
<el-button
class="commonbutton"
type="primary"
@click="btnImportCardOK"
>确定导入</el-button
>
<el-button class="commonbutton" type="primary" @click="seq--">上一步</el-button>
<el-button class="commonbutton" type="primary" @click="btnImportCardOK">确定导入</el-button>
<el-button class="commonbutton" @click="seq = -1">关闭</el-button>
</div>
</div>
@ -1876,9 +1564,11 @@ export default {
font-weight: 400;
font-family: "NotoSansSC-Regular";
}
.query:last-child {
margin-right: 0;
}
.spanClass {
font-size: 14px;
padding: 0 2px 0 0;

Loading…
Cancel
Save