| <template> | 
|     <GlobalWindow | 
|         :title="title" | 
|         width="70%" | 
|         :visible.sync="visible" | 
|         :withFooter="false" | 
|     > | 
|         <ul style="width: 100%; display: flex; align-items: center; margin-bottom: 20px;"> | 
|             <li style="margin-right: 10px;"><el-button type="primary" @click="batchLossReporting">挂失</el-button></li> | 
|             <li><el-button type="primary" @click="batchDecoupling">解挂</el-button></li> | 
|         </ul> | 
|         <el-table | 
|             v-loading="loading" | 
|             :data="list" | 
|             stripe | 
|             @selection-change="handleSelectionChange" | 
|         > | 
|             <el-table-column type="selection" width="55"></el-table-column> | 
|             <el-table-column prop="code" label="卡号" min-width="100px"></el-table-column> | 
|             <el-table-column prop="cardTypeName" label="卡类型" min-width="100px"></el-table-column> | 
|             <el-table-column label="状态" min-width="100px"> | 
|                 <template slot-scope="{row}"> | 
|                     <span v-if="row.status === 0">禁用</span> | 
|                     <span v-if="row.status === 1">启用</span> | 
|                     <span v-if="row.status === 2">退卡</span> | 
|                     <span v-if="row.status === 3">挂失</span> | 
|                 </template> | 
|             </el-table-column> | 
|             <el-table-column label="用户类型" min-width="100px"> | 
|                 <template slot-scope="{row}"> | 
|                     <span v-if="row.memberType === 0">劳务访客</span> | 
|                     <span v-if="row.memberType === 2">内部人员</span> | 
|                 </template> | 
|             </el-table-column> | 
|             <el-table-column prop="memberName" label="员工姓名" min-width="100px"></el-table-column> | 
|             <el-table-column prop="memberPhone" label="手机号" min-width="100px"></el-table-column> | 
|             <el-table-column prop="companyName" label="公司/部门" min-width="100px"></el-table-column> | 
|             <el-table-column prop="createDate" label="开卡时间" min-width="100px"></el-table-column> | 
|             <el-table-column prop="editDate" label="更新时间" min-width="100px"></el-table-column> | 
|             <el-table-column | 
|                 label="操作" | 
|                 min-width="120" | 
|                 fixed="right" | 
|             > | 
|                 <template slot-scope="{row}"> | 
|                     <el-button type="text" v-if="row.status === 3" @click="jiegua(row.id)">解挂</el-button> | 
|                     <el-button type="text" v-if="row.status !== 3 && row.status !== 2" @click="tui(row.id)">退卡</el-button> | 
|                     <el-button type="text" v-if="row.status !== 3 && row.status !== 2" @click="guashi(row.id)">挂失</el-button> | 
|                 </template> | 
|             </el-table-column> | 
|         </el-table> | 
|     </GlobalWindow> | 
| </template> | 
|   | 
| <script> | 
|   import BaseOpera from '@/components/base/BaseOpera' | 
|   import GlobalWindow from '@/components/common/GlobalWindow' | 
|   import { refundCard, batchLoss, batchUnLoss, fetchList } from '@/api/business/memberCard' | 
|   export default { | 
|     name: 'cardOpeningRecord', | 
|     extends: BaseOpera, | 
|     components: { GlobalWindow }, | 
|     data () { | 
|       return { | 
|         list: [], | 
|         tableData: { | 
|           selectedRows: [] | 
|         }, | 
|         loading: false | 
|       } | 
|     }, | 
|     created () { | 
|       this.config({ | 
|         api: '/business/memberCard', | 
|         'field.id': 'id' | 
|       }) | 
|     }, | 
|     methods: { | 
|       open (title, memberId) { | 
|         this.title = title | 
|         this.visible = true | 
|         this.list = [] | 
|         this.memberId = memberId | 
|         this.search() | 
|       }, | 
|       handleSelectionChange (e) { | 
|         this.tableData.selectedRows = e | 
|       }, | 
|       search() { | 
|         fetchList({ | 
|           capacity: 9999, | 
|           page: 1, | 
|           model: { | 
|             memberId: this.memberId | 
|           } | 
|         }).then(res => { | 
|           this.list = res.records | 
|         }) | 
|       }, | 
|       // 批量解挂 | 
|       batchDecoupling () { | 
|         let arr = [] | 
|         this.tableData.selectedRows.forEach(item => { | 
|           arr.push({ id: item.id, status: 1 }) | 
|         }) | 
|         batchUnLoss(arr) | 
|           .then(res => { | 
|             this.$message.success('操作成功') | 
|             this.search() | 
|           }) | 
|       }, | 
|       // 批量挂失 | 
|       batchLossReporting() { | 
|         let arr = [] | 
|         this.tableData.selectedRows.forEach(item => { | 
|           arr.push({ id: item.id, status: 3 }) | 
|         }) | 
|         batchLoss(arr) | 
|           .then(res => { | 
|             this.$message.success('操作成功') | 
|             this.search() | 
|           }) | 
|       }, | 
|       // 退卡 | 
|       tui(id) { | 
|         refundCard({ id, status: 2 }) | 
|           .then(res => { | 
|             this.$message.success('操作成功') | 
|             this.search() | 
|           }) | 
|       }, | 
|       // 挂失 | 
|       guashi(id) { | 
|         batchLoss([{ id, status: 3 }]) | 
|           .then(res => { | 
|             this.$message.success('操作成功') | 
|             this.search() | 
|           }) | 
|       }, | 
|       // 解挂 | 
|       jiegua(id) { | 
|         batchUnLoss([{ id, status: 1 }]) | 
|           .then(res => { | 
|             this.$message.success('操作成功') | 
|             this.search() | 
|           }) | 
|       } | 
|     } | 
|   } | 
| </script> |