aXin-0810 10 ay önce
ebeveyn
işleme
803554e7e4

+ 275 - 0
src/views/engineerFeeSettlement/dailyMaintenanceBalance/bankBalanceInquiry2/index.vue

@@ -0,0 +1,275 @@
+<template>
+  <div class="app-container">
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="left"
+            type="index"
+            label="序号"
+            prop=""
+            width="100"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="left"
+            label="账户名称"
+            prop="accountName"
+            min-width="100"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="left"
+            label="银行卡号"
+            prop="bankCardId"
+            min-width="100"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="left"
+            label="开户行名称"
+            prop="openBankName"
+            min-width="100"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="left"
+            label="余额(元)"
+            prop="balanceAmount"
+            min-width="100"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column align="center" label="操作" width="100">
+            <template slot-scope="scope">
+              <el-button
+                :disabled="scope.row.openState"
+                type="text"
+                @click="lookAmountFn(scope.$index, scope.row.id)"
+                >{{ scope.row.openState ? scope.row.time + 's' : '查看余额' }}</el-button
+              >
+              <!-- <el-button type="text" @click="lookAmountFn(scope.row.id)" :disabled="countDown != 60">{{
+                          countDown == 60
+                            ? '查看余额'
+                            :  countDown + "s"
+                        }}</el-button> -->
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <!-- 分页 -->
+      <div class="fr">
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[10, 20, 30, 50]"
+          :page-size="pageSize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="listTotal"
+        >
+        </el-pagination>
+      </div>
+    </div>
+    <!-- 弹窗 -->
+    <el-dialog
+      title="查看余额"
+      :visible.sync="dialogForm"
+      width="30%"
+      :show-close="false"
+      :close-on-click-modal="false"
+    >
+      <el-form ref="balanceForm" :rules="rules" :model="balanceForm" label-width="100px">
+        <el-form-item label="手机号码" prop="mobile">
+          <!-- <el-input placeholder="请输入"></el-input> -->
+          <el-select class="selectStyle" v-model="balanceForm.mobile" placeholder="请选择" filterable>
+            <!-- <el-option value="13800138000"></el-option>
+            <el-option value="13927887984"></el-option>
+            <el-option value="13452642451"></el-option> -->
+            <el-option v-for="(v, i) in phoneList" :key="i" :label="v.dictValue" :value="v.dictValue"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-row :gutter="20">
+          <el-col :xs="24" :sm="12" :lg="16">
+            <el-form-item label="手机验证码" prop="code">
+              <el-input v-model="balanceForm.code" placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <!-- <el-button type="primary">验证码</el-button> -->
+            <el-button @click="codeFn" :disabled="countDown != 60">{{
+              countDown == 60 ? getCodeText : '重新获取(' + countDown + 's)'
+            }}</el-button>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="cancelFn">取 消</el-button>
+        <el-button type="primary" @click="confirmFn">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getList, getCode, getAcount, getbyCode } from '@/api/dailySettlement/bankBalanceQuery'
+export default {
+  data() {
+    return {
+      dataList: [],
+      rules: {},
+      balanceForm: {
+        mobile: '',
+        code: ''
+      },
+      listLoading: false, // 列表加载loading
+      dialogForm: false,
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      getCodeText: '获取验证码',
+      countDown: 60,
+      seeIndex: '',
+      seeId: '',
+      phoneList: ''
+    }
+  },
+  created() {
+    this.getDataList()
+
+    // setInterval(() => {
+    //   console.log(2);
+    //   this.dataList.forEach((v) => {
+    //     if (v.openState) {
+    //       v.time--;
+    //       if (v.time == 0) {
+    //         v.time = 60;
+    //         v.openState = false;
+    //       }
+    //     }
+    //   });
+    // }, 1000);
+  },
+  methods: {
+    //获取手机号
+    async getPhone() {
+      let res = await getbyCode({
+        code: 'SELECT'
+      })
+      this.phoneList = res.data
+    },
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val
+      this.currentPage = 1
+      this.getDataList()
+    },
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val
+      this.getDataList()
+    },
+
+    //验证码
+    async codeFn() {
+      let params = {
+        mobile: this.balanceForm.mobile
+      }
+      await getCode(params)
+      this.$message.success('短信已发送')
+
+      this.countDown--
+      this.timer = setInterval(() => {
+        this.countDown--
+        if (this.countDown == 0) {
+          this.countDown = 60
+          this.getCodeText = '重新获取'
+          clearInterval(this.timer)
+        }
+      }, 1000)
+    },
+    //查看余额
+    lookAmountFn(i, id) {
+      this.getPhone()
+      this.seeIndex = i
+      this.seeId = id
+      this.dialogForm = true
+    },
+    //获取列表数据
+    async getDataList() {
+      let params = {
+        pageSize: this.pageSize,
+        pageNo: this.currentPage
+      }
+      let res = await getList(params)
+
+      this.dataList = res.data.records
+      this.dataList.forEach(v => {
+        v.time = 60
+        v.openState = false
+        v.balanceAmount = '******'
+      })
+      this.listTotal = res.data.total
+    },
+    //取消
+    async cancelFn() {
+      await this.$refs.balanceForm.resetFields()
+      clearInterval(this.timer)
+      this.countDown = 60
+      this.dialogForm = false
+    },
+    //确定
+    async confirmFn() {
+      let params = {
+        id: this.seeId,
+        ...this.balanceForm
+      }
+      let res = await getAcount(params)
+
+      this.$message.success('查询成功')
+
+      let index = this.seeIndex
+      this.dataList.forEach(v => {
+        if (v.id == this.seeId) {
+          v.balanceAmount = res.data.balanceAmount
+          // v.balanceAmount = 123;
+          v.openState = true
+          let a = 'aaa' + v.id
+
+          a = setInterval(() => {
+            v.time--
+            this.$set(this.dataList, index, v)
+            // Object.assign({}, this.dataList);
+            if (v.time == 0) {
+              v.time = 60
+              v.openState = false
+              v.balanceAmount = '******'
+              this.$set(this.dataList, index, v)
+              clearInterval(a)
+            }
+          }, 1000)
+        }
+      })
+
+      this.cancelFn()
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.selectStyle {
+  width: 100%;
+}
+::v-deep .el-dialog__body {
+  overflow-y: auto;
+}
+</style>