瀏覽代碼

平台账户管理 账户管理 账单管理,费用管理

peixh 3 年之前
父節點
當前提交
097112853f

+ 14 - 6
front-vue/src/api/bank/bankInterface.js

@@ -2,7 +2,7 @@ import request from '@/utils/request'
 // 中信银行会员注册
 export function register(data) {
   return request({
-    url: '/bank-interface/zxbank/register',
+    url: '/bank-interface/bank/register',
     method: 'post',
     data: data
   })
@@ -11,7 +11,7 @@ export function register(data) {
 // 账户余额查询
 export function balance(data) {
   return request({
-    url: '/bank-interface/zxbank/balance',
+    url: '/bank-interface/bank/balance',
     method: 'post',
     data: data
   })
@@ -20,7 +20,7 @@ export function balance(data) {
 // 转账交易
 export function transfer(data) {
   return request({
-    url: '/bank-interface/zxbank/transfer',
+    url: '/bank-interface/bank/transfer',
     method: 'post',
     data: data
   })
@@ -29,17 +29,25 @@ export function transfer(data) {
 // 提现
 export function withdrawal(data) {
   return request({
-    url: '/bank-interface/zxbank/withdrawal',
+    url: '/bank-interface/bank/withdrawal',
     method: 'post',
     data: data
   })
 }
 
-
 // 交易明细
 export function transferDetailed(data) {
   return request({
-    url: '/bank-interface/zxbank/transferDetailed',
+    url: '/bank-interface/bank/transferDetailed',
+    method: 'post',
+    data: data
+  })
+}
+
+// 转账交易
+export function transferAmt(data) {
+  return request({
+    url: '/bank-interface/bank/transferAmt',
     method: 'post',
     data: data
   })

+ 8 - 0
front-vue/src/api/login.js

@@ -101,4 +101,12 @@ export function updateUser(query) {
     method: 'get',
     params: query
   })
+}
+
+// 发送提现短信验证码
+export function sendMessageForMoney() {
+  return request({
+    url: '/system/message/sendMessageForMoney',
+    method: 'post',
+  })
 }

+ 44 - 0
front-vue/src/api/system/accDetail.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询账户历史信息列表
+export function listAccDetail(query) {
+  return request({
+    url: '/system/payAccDetail/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询账户历史信息详细
+export function getAccDetail(padNo) {
+  return request({
+    url: '/system/payAccDetail/' + padNo,
+    method: 'get'
+  })
+}
+
+// 新增账户历史信息
+export function addAccDetail(data) {
+  return request({
+    url: '/system/payAccDetail',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改账户历史信息
+export function updateAccDetail(data) {
+  return request({
+    url: '/system/payAccDetail',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除账户历史信息
+export function delAccDetail(padNo) {
+  return request({
+    url: '/system/payAccDetail/' + padNo,
+    method: 'delete'
+  })
+}

+ 26 - 0
front-vue/src/api/system/accInf.js

@@ -52,4 +52,30 @@ export function listCard() {
     url: '/system/payAccInf/queryCard',
     method: 'post'
   })
+}
+
+//提现
+export function wthdrawal(data) {
+  return request({
+    url: '/system/userWthdrawal/wthdrawal',
+    method: 'post',
+    data: data
+  })
+}
+
+//查询是否需要缴费
+export function listChargeStatus(accno) {
+  return request({
+    url: '/system/userWthdrawal/listChargeStatus/' + accno,
+    method: 'get'
+  })
+}
+
+//缴纳手续费
+export function payMoney(data) {
+  return request({
+    url: '/system/userWthdrawal/payMoney',
+    method: 'post',
+    data: data
+  })
 }

+ 17 - 0
front-vue/src/api/system/adminAccInf.js

@@ -0,0 +1,17 @@
+import request from '@/utils/request'
+
+// 查询公司账户
+export function listAdminAcc(query) {
+  return request({
+    url: '/system/adminAccInf/list',
+    method: 'get',
+    params: query
+  })
+}
+//查询法人信息
+export function listCorporation() {
+  return request({
+    url: '/system/adminAccInf/listCorporation',
+    method: 'get'
+  })
+}

+ 19 - 7
front-vue/src/views/service/cost/userCostManage.vue

@@ -190,7 +190,7 @@
               v-hasPermi="['service:cost:update']"
             >发票</el-button>
             <el-button
-              v-if="scope.row.zciStatus == '00'"
+              v-if="scope.row.zciStatus == '00' || scope.row.zciStatus == '05'"
               size="mini"
               type="text"
               @click="handlePay(scope.row)"
@@ -652,14 +652,26 @@ export default {
                 });
                 loading.close();
               }else{
-                var map = {'recvAccNo':'','recvAccNm':'','tranAmt':row.zciAmount}
-                transfer(map).then(response => {
-                  loading.close();
-                  self.msgSuccess("缴费成功");
-                  return changeZfiStatus(zciId);
-                }).catch(() => {
+                if(row.zfrStatus == '01' || row.zfrStatus == '03'){
+                  var map = {'recvAccNo':'','recvAccNm':'','tranAmt':row.zciAmount,'businessId':row.zciId,'type':'01'}
+                  transfer(map).then(response => {
                     loading.close();
+                    self.msgSuccess("缴费成功");
+                    return changeZfiStatus(zciId);
+                  }).catch(() => {
+                      loading.close();
                   });
+                }else{
+                  var map = {'recvAccNo':'','recvAccNm':'','tranAmt':row.zciAmount,'businessId':row.zciId,'type':'00'}
+                  transfer(map).then(response => {
+                    loading.close();
+                    self.msgSuccess("缴费成功");
+                    return changeZfiStatus(zciId);
+                  }).catch(() => {
+                      loading.close();
+                  });
+                }
+                
               }
             }).catch(() => {
                 loading.close();

+ 274 - 0
front-vue/src/views/system/accDetail/accDetail.vue

@@ -0,0 +1,274 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="企业名称" prop="scyName">
+        <el-input v-model="queryParams.scyName" placeholder="请输入企业名称" clearable size="small" maxlength="25" @keyup.enter.native="handleQuery"/>
+      </el-form-item>
+      <el-form-item label="银行名称" prop="paiBankName">
+        <el-input v-model="queryParams.paiBankName" placeholder="请输入银行名称" clearable size="small" maxlength="25" @keyup.enter.native="handleQuery"/>
+      </el-form-item>
+      <el-form-item label="客户流水号" prop="padPayflowno" label-width="82px">
+        <el-input v-model="queryParams.padPayflowno" placeholder="请输入客户流水号" clearable size="small" maxlength="18" @keyup.enter.native="handleQuery"/>
+      </el-form-item>
+      <el-form-item label="交易状态" prop="padState">
+        <el-select v-model="queryParams.padState" placeholder="请选择状态" clearable>
+            <el-option v-for="dict in stateOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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-form>
+
+    <el-table v-loading="loading" :data="accDetailList" @selection-change="handleSelectionChange">
+      <!-- <el-table-column type="selection" width="55" align="center" /> -->
+      <el-table-column label="客户流水号" align="center" prop="padPayflowno" show-overflow-tooltip/>
+      <el-table-column label="企业名称" align="center" prop="scyName" show-overflow-tooltip/>
+      <el-table-column label="银行名称" align="center" prop="paiBankName" show-overflow-tooltip/>
+      <el-table-column label="交易金额" :formatter="moneyFormat" align="center" prop="padTrxamout" show-overflow-tooltip/>
+      <el-table-column label="交易摘要" align="center" prop="padRemrk" show-overflow-tooltip/>
+      <el-table-column label="交易状态" :formatter="stateFormat" align="center" prop="padState" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-view"
+            @click="handleDetail(scope.row)"
+            v-hasPermi="['acc:detail:query']"
+          >详情</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 详情对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" label-width="80px">
+        <el-form-item label="支付流水号:" prop="padPayflowno" label-width="87px">
+          <span>{{form.padPayflowno}}</span>
+        </el-form-item>
+        <el-form-item label="企业名称:" prop="scyName">
+          <span>{{form.scyName}}</span>
+        </el-form-item>
+        <el-form-item label="交易账号:" prop="padAccno" label-width="83px">
+          <span>{{form.padAccno}}</span>
+        </el-form-item>
+        <el-form-item label="交易用途:" prop="padTrantype">
+          <span>{{this.selectDictLabel(this.tranTypeOptions, form.padTrantype)}}</span>
+          <!-- <el-input v-model="form.padVersion" placeholder="请输入版本号" /> -->
+        </el-form-item>
+        <el-form-item label="交易金额:" prop="padTrxamout">
+          <span>{{form.padTrxamout}}元</span>
+          <!-- <el-input v-model="form.padTrxamout" placeholder="请输入发生额" /> -->
+        </el-form-item>
+        <el-form-item label="交易状态:" prop="padState">
+          <span>{{this.selectDictLabel(this.stateOptions, form.padState)}}</span>
+          <!-- <el-input v-model="form.padState" placeholder="请输入状态" /> -->
+        </el-form-item>
+        <el-form-item label="交易摘要:" prop="padRemrk">
+          <span>{{form.padRemrk}}</span>
+          <!-- <el-input v-model="form.padRemrk" placeholder="请输入备注" /> -->
+        </el-form-item>
+        <el-form-item label="交易时间:" prop="createTime">
+           <span>{{ parseTime(new Date(form.createTime), '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
+          <!-- <el-input v-model="form.createTime" placeholder="请输入备注" /> -->
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAccDetail, getAccDetail, delAccDetail, addAccDetail, updateAccDetail } from "@/api/system/accDetail";
+
+export default {
+  name: "AccDetail",
+  components: {
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 账户历史信息表格数据
+      accDetailList: [],
+      //交易状态数据字典
+      stateOptions: [],
+      //交易用途数据字典
+      tranTypeOptions: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        padCstno: null,
+        padAccno: null,
+        padVersion: null,
+        padStatus: null,
+        padBalance: null,
+        padAvabalance: null,
+        padAcctype: null,
+        padCrytype: null,
+        padTrxamout: null,
+        padPayflowno: null,
+        padTrantype: null,
+        padRemrk: null,
+        padState: null,
+        padBusinessId: null,
+        padTarCount: null,
+        padPayCount: null,
+        scyName: null,
+        paiBankName: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        padCstno: [
+          { required: true, message: "企业ID(sys_company.scy_id)不能为空", trigger: "blur" }
+        ],
+        padAccno: [
+          { required: true, message: "账号(pay_acc_inf.PAI_ACCNO)不能为空", trigger: "blur" }
+        ],
+        padStatus: [
+          { required: true, message: "账户状态(0:正常,1:冻结)不能为空", trigger: "blur" }
+        ],
+        padBalance: [
+          { required: true, message: "余额不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+    this.getDicts("pay_PAD_STATE").then(response => {
+      this.stateOptions = response.data;
+    });
+    this.getDicts("pay_PAD_TRANTYPE").then(response => {
+      this.tranTypeOptions = response.data;
+    });
+  },
+  activated(){
+    this.getList();
+    this.getDicts("pay_PAD_STATE").then(response => {
+      this.stateOptions = response.data;
+    });
+    this.getDicts("pay_PAD_TRANTYPE").then(response => {
+      this.tranTypeOptions = response.data;
+    });
+  },
+  methods: {
+    /** 查询账户历史信息列表 */
+    getList() {
+      this.loading = true;
+      listAccDetail(this.queryParams).then(response => {
+        debugger
+        this.accDetailList = response.data.records;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        padNo: null,
+        padCstno: null,
+        padAccno: null,
+        padVersion: null,
+        padStatus: "0",
+        padBalance: null,
+        padAvabalance: null,
+        padAcctype: null,
+        padCrytype: null,
+        padTrxamout: null,
+        padPayflowno: null,
+        padTrantype: null,
+        padRemrk: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        padState: null,
+        padBusinessId: null,
+        padTarCount: null,
+        padPayCount: null,
+        scyName: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.padNo)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 字典翻译 */
+    stateFormat(row, column) {
+      return this.selectDictLabel(this.stateOptions, row.padState);
+    },
+    handleDetail(row) {
+      this.reset();
+      const padNo = row.padNo || this.ids;
+      getAccDetail(padNo).then((response) => {
+        debugger
+        this.form = response.data;
+        this.$set(this.form, "scyName", row.scyName);
+        this.open = true;
+        this.title = "账单详情";
+      });
+    },
+    /* 金额格式化 */
+    moneyFormat(row, column, cellValue) {
+        if (cellValue == null || cellValue == undefined || cellValue == '') {
+            cellValue = '0.00'
+        }
+        cellValue += '';
+        if (!cellValue.includes('.')) {
+            cellValue += '.00';
+        }
+        return cellValue.replace(/(\d)(?=(\d{3})+\.)/g, function ($0, $1) {
+            return $1 + ',';
+        }).replace(/\.$/, '');
+    },
+  }
+};
+</script>

+ 170 - 30
front-vue/src/views/system/accInf/accInf.vue

@@ -98,6 +98,7 @@
             type="text"
             icon="el-icon-withdrawal"
             @click="handleWithdrawal(scope.row)"
+            v-hasPermi="['user:wthdrawal:add']"
             v-if="
               scope.row.paiAcctype == '06' ||
               scope.row.paiAcctype == '07' ||
@@ -403,7 +404,22 @@
             maxlength="18"
           />
         </el-form-item>
+        <el-form-item label="电子账户" prop="accno" size="large" style="display:none">
+          <el-input
+            v-model="form.accno"
+            clearable
+            style="width: 215px"
+            placeholder="请输入电子账户"
+            maxlength="18"
+          />
+        </el-form-item>
         <el-button type="primary" plain @click="allMoney">全部提现</el-button>
+        <el-form-item prop="cade">
+          <el-input v-model="form.shortMessageCode" type="text"  maxlength="" auto-complete="off" placeholder="请输入验证码">
+            <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
+            <el-button class="zap-code-button" slot="suffix" @click="sendMessage" :disabled="sendShortMessageBtn">{{codeBtnWord}}</el-button>
+          </el-input>
+        </el-form-item>
         <el-row type="flex" align="middle" class="zap-title"
           ><span class="zap-title__prefix"></span>可提现金额:{{KYAMT ? KYAMT : 0.00}}元</el-row
         >
@@ -418,23 +434,19 @@
 </template>
 
 <script>
-import {
-  listAcc,
-  addAcc,
-  updateAcc,
-  delAcc,
-  listBank,
-  detailsAcc,
-  listCard
-} from "@/api/system/accInf";
-import { balance,withdrawal } from "@/api/bank/bankInterface";
+import { listAcc,addAcc,updateAcc,delAcc,listBank,detailsAcc,listCard,wthdrawal,listChargeStatus,payMoney} from "@/api/system/accInf";
+import { balance } from "@/api/bank/bankInterface";
 import { listElectronicsAcc } from "@/api/common/companyAcc";
+import {sendMessageForMoney} from "@/api/login";
 import { release } from 'os';
 import Cookies from 'js-cookie';
 export default {
   name: "accInf",
   data() {
     return {
+      //验证码
+      sendShortMessageBtn : false,
+      codeBtnWord: '获取验证码', // 获取验证码按钮文字
       //可用余额
       KYAMT: null,
       //电子账户
@@ -495,7 +507,9 @@ export default {
         ssName: null,
       },
       // 表单参数
-      form: {},
+      form: {
+        shortMessageCode: null
+      },
       // 表单校验
       rules: {
         paiBankName: [
@@ -555,6 +569,12 @@ export default {
         this.loading = false;
       });
     },
+    //查询对公账户
+    listCard(){
+      listCard().then((response) => {
+        this.cardList = response.data.records;
+      });
+    },
     // 取消按钮
     cancel() {
       this.open = false;
@@ -590,9 +610,14 @@ export default {
               type: 'warning'
             });
             loading.close();
+          }else if(self.form.shortMessageCode == null || self.form.shortMessageCode == ""){
+            self.msgError("请输入短信验证码!");
+            loading.close();
           }else{
-            var map = {'recvAccNo': self.form.paiAccno,'tranAmt':self.form.amount}
-            withdrawal(map).then((response) =>{
+            console.log(self.form.shortMessageCode,'验证码')
+            //stAccNo:实体账户 dzAccNo:电子账户  tranAmt:提现金额 shortMessageCode:短信验证码
+            var map = {'stAccNo': self.form.paiAccno,'dzAccNo':self.form.accno,'tranAmt':self.form.amount,'shortMessageCode':self.form.shortMessageCode}
+            wthdrawal(map).then((response) =>{
               debugger
               if(response.data.status == "AAAAAAA"){
                 loading.close();
@@ -627,7 +652,8 @@ export default {
         sfsRemark: null,
         ssId: null,
         ssName: null,
-        amount: null
+        amount: null,
+        shortMessageCode: null
       };
       this.noneBtnImg = false;
       this.enclosureList = [];
@@ -672,7 +698,6 @@ export default {
       this.reset();
       this.open = true;
       detailsAcc().then((response) => {
-        console.log(response);
         this.$set(this.form, "paiAccnoName", response.data.company);
       });
       this.title = "添加对公账户";
@@ -697,7 +722,6 @@ export default {
       this.reset();
       const paiId = row.paiId || this.ids;
       detailsAcc(paiId).then((response) => {
-        console.log(response.data);
         this.form = response.data.sccInf[0];
         this.recharge = true;
         this.title = "充值转账";
@@ -705,26 +729,88 @@ export default {
     },
     /** 提现按钮操作 */
     handleWithdrawal(row) {
-      this.reset();
-     listCard().then((response) => {
-         console.log(response)
-        this.cardList = response.data.records;
-      });
+      var self = this;
+      self.reset();
       //查询本企业电子账户余额
       listElectronicsAcc().then((response) =>{
         if(response.data[0]){
-          this.accno = response.data[0].paiAccno;
+          self.accno = response.data[0].paiAccno
+          self.$set(self.form, "accno", response.data[0].paiAccno);
           balance(response.data[0].paiAccno).then((response) =>{
-            this.KYAMT = response.data.list.row.KYAMT
+            self.KYAMT = response.data.kyAmt
           })
         }
+      }).then(() =>{
+        listChargeStatus('3115730025233104147').then((response) =>{
+          debugger
+          const list = response.data;
+          if(list.length > 0){
+          const newDatas = []
+          let confirmText = []
+          const h = self.$createElement
+          for (let i = 0; i < list.length; i++) {
+            confirmText = [
+          `编号:${list[i].zfrNumber}`,`费用:${list[i].zciAmount}`
+        ]
+            for (const j in confirmText) {
+          newDatas.push(h('p', null, confirmText[j]))
+        }
+          }
+          self.$confirm('提示', {
+          title: '请缴纳手续费',
+          message: h('div', null, newDatas),
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          center: true
+        })
+          .then(function(){
+            const loading = self.$loading({
+                lock: true,
+                text: "Loading",
+                spinner: "el-icon-loading",
+                background: "rgba(0, 0, 0, 0.7)",
+            });
+            var map = {'accNo':'3115730025233104147'}
+            payMoney(map).then((response) =>{
+              debugger
+              const resultList = response.data;
+              if(resultList.length > 0){
+                self.msgError("缴费失败!");
+                loading.close();
+              }else{
+                loading.close();
+                self.$message({
+                  message: '缴费成功',
+                  type: 'success'
+                });
+                listCard().then((response) => {
+                  self.cardList = response.data.records;
+                });
+                const paiId = row.paiId || self.ids;
+                detailsAcc(paiId).then((response) => {
+                  self.form = response.data.sccInf[0];
+                  self.withdrawal = true;
+                  self.title = "提现";
+                });
+              }
+            }).catch(() => {
+              loading.close();
+            });
+          })
+          }else{
+             listCard().then((response) => {
+              self.cardList = response.data.records;
+            });
+            const paiId = row.paiId || self.ids;
+            detailsAcc(paiId).then((response) => {
+              self.form = response.data.sccInf[0];
+              self.withdrawal = true;
+              self.title = "提现";
+            });
+          }
+        })
       })
-      const paiId = row.paiId || this.ids;
-      detailsAcc(paiId).then((response) => {
-        this.form = response.data.sccInf[0];
-        this.withdrawal = true;
-        this.title = "提现";
-      });
+    
     },
     //交易明细按钮
     handleDetail(row){
@@ -741,7 +827,6 @@ export default {
     /** 新增提交按钮 */
     submitForm() {
       this.$refs["form"].validate((valid) => {
-        console.log(this.form);
         if (valid) {
           const loading = this.$loading({
             lock: true,
@@ -755,6 +840,7 @@ export default {
               this.msgSuccess("新增成功");
               this.open = false;
               this.getList();
+              this.listCard();
             })
             .catch((response) => {
               loading.close();
@@ -806,6 +892,60 @@ export default {
           this.msgSuccess("删除成功");
         });
     },
+    sendMessage(){
+      this.$refs.form.validate((valid) => {
+          if (valid) {
+            // 调用获取短信验证码接口
+            sendMessageForMoney(this.form.phone, this.form.code, this.form.uuid).then(response => {
+              this.sendShortMessageBtn = true;
+              this.msgSuccess("发送成功!");
+              // 因为下面用到了定时器,需要保存this指向
+              let that = this
+              that.waitTime = 60;
+              this.codeBtnWord = `${this.waitTime}s 后重新获取`
+              let timer = setInterval(function(){
+                  if(that.waitTime>1){
+                      that.waitTime--
+                      that.codeBtnWord = `${that.waitTime}s 后重新获取`
+                  }else{
+                      clearInterval(timer)
+                      that.codeBtnWord = '获取验证码'
+                      that.waitTime = 60
+                      that.getCode();
+                      that.sendShortMessageBtn = false;
+                  }
+              },1000)
+
+            }).catch((response)=>{
+              this.getCode();
+            });
+
+          }
+      })
+    },
   },
 };
 </script>
+<style rel="stylesheet/scss" lang="scss">
+// 验证码
+    .login-code {
+        height: 55px;
+        img {
+            cursor: pointer;
+            vertical-align: middle;
+        }
+    }
+    .login-code-img {
+        flex: 1;
+        height: 55px;
+        margin-left: 8px;
+    }
+
+    .rightulliimg{
+        width: 860px;
+
+    }
+    .divider_left{
+        margin-left: -40px;
+    }
+  </style>

+ 71 - 40
front-vue/src/views/system/accInf/accInfDetail.vue

@@ -1,5 +1,29 @@
 <template>
   <div class="app-container zap-main">
+    <el-row class="zap-table-search">
+      <div class="zap-padding-end">
+        <right-toolbar class="zap-right-toolbar" :showSearch.sync="showSearch" @queryTable="handleQuery" >收起</right-toolbar>
+        <span class="zap-padding-start zap-font-title">所选条件:</span>
+        <div style="float: right; margin-right: 1%">
+          <el-button type="cyan" icon="el-icon-search" @click="handleQuery">搜索</el-button>
+          <el-button icon="el-icon-refresh" @click="resetQuery" style="float: ">重置</el-button>
+        </div>
+      </div>
+      <hr style="margin-top: 16px" />
+      <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" >
+        <el-form-item label="交易时间" prop="queryTime" size="large">
+          <el-date-picker
+            v-model="queryParams.queryTime"
+            type="daterange"
+            value-format="yyyyMMdd"
+            :picker-options="pickerOptions"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            >
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+    </el-row>
     <el-table class="zap-table" v-loading="loading" :data="detailList.slice((currentPage-1)*pageSize,currentPage*pageSize)" @selection-change="handleSelectionChange" stripe>
       <el-table-column label="序号" type="index" width="55" align="center" />
       <el-table-column label="交易单号" align="center" prop="HOSTFLW" />
@@ -86,6 +110,14 @@ export default {
   name: "accInfDetail",
   data() {
     return {
+      pickerOptions:{
+        disabledDate(time) {
+          let curDate = (new Date()).getTime();
+          let three = 90 * 24 * 3600 * 1000;
+          let threeMonths = curDate - three;
+          return time.getTime() > Date.now() || time.getTime() < threeMonths;
+        }
+      },
       //可用余额
       KYAMT: null,
       //电子账户
@@ -126,44 +158,16 @@ export default {
       withdrawal: false,
       // 查询参数
       queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        scyName: null,
-        smiType: null,
-        smiManager: null,
-        smiContract: null,
-        smiContractPhone: null,
-        sfsContent: null,
-        sfsIsDel: null,
-        sfsRemark: null,
-        ssId: null,
-        ssName: null,
+        queryTime:[],
       },
       // 表单参数
       form: {},
     };
   },
   created() {
-    //this.createBeginDate();
     this.listElectronicsAcc();
-    
-    // this.getList();
-    // this.getBankList();
-    // this.getDicts("pay_pai_acctype").then((response) => {
-    //   this.formulaOptions = response.data;
-    // });
-    // this.getDicts("pay_pai_status").then((response) => {
-    //   this.formulaOptionsSend = response.data;
-    // });
   },
   methods: {
-  //   setDate(row, column) {
-  //     debugger
-  //    const newdata = row[column.property]
-  //    if(newdata === undefined) {return ''}
-  //    console.log(moment(Number(newdata)).format("YYYY-MM-DD HH:mm:ss"),"格式化")
-  //    return moment(Number(newdata)).format("YYYY-MM-DD HH:mm:ss")
-  //  },
     createBeginDate(){
       var date = new Date();
       date.setMonth(date.getMonth()-3);
@@ -174,7 +178,6 @@ export default {
       var d = date.getDate();
       d = d < 10 ? ('0' + d) : d;
       const time = y+ m+ (d +1)
-      console.log(time);
       return time;
     },
     //查询本企业电子账户   
@@ -186,13 +189,10 @@ export default {
           //查询本企业电子账户余额
           self.accno = response.data[0].paiAccno;
           balance(response.data[0].paiAccno).then((response) =>{
-            self.KYAMT = response.data.list.row.KYAMT
+            self.KYAMT = response.data.kyAmt
           })
-          console.log(self.accno,"卡号")
-          console.log(self.currentPage,"页码")
-          console.log(self.pageSize,"条数")
           //查询交易明细
-          var map = {'startRecord' : '11','pageNumber' : '10','accNo' : self.accno,'startDate': self.createBeginDate(),'endDate': self.parseTime(new Date(),"{y}{m}{d}")}
+          var map = {'startRecord' : '','pageNumber' : '','accNo' : self.accno,'startDate': self.createBeginDate(),'endDate': self.parseTime(new Date(),"{y}{m}{d}")}
           transferDetailed(map).then((response) =>{
             debugger
             self.detailList = response.data.list.row;
@@ -203,7 +203,6 @@ export default {
               var ddate1 = new Date(formatedDate1);
               self.detailList[i].dataTime = ddate1;
               self.detailList[i].status = '交易成功';
-              console.log(self.detailList[i].dataTime,"交易时间")
             }
             self.loading = false;
           }).catch(response => {
@@ -214,7 +213,7 @@ export default {
         }
       }).catch(response => {
           self.loading = false;
-        });
+      });
     },
     handleDetail(row) {
       debugger
@@ -263,13 +262,45 @@ export default {
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
+      var self =this;
+      self.loading = true;
+      listElectronicsAcc().then((response) =>{
+        if(response.data[0]){
+          //查询本企业电子账户余额
+          self.accno = response.data[0].paiAccno;
+          balance(response.data[0].paiAccno).then((response) =>{
+            self.KYAMT = response.data.kyAmt
+          })
+          //查询交易明细
+          var map = {'startRecord' : '','pageNumber' : '','accNo' : self.accno,'startDate': self.queryParams.queryTime[0],'endDate': self.queryParams.queryTime[1]}
+          transferDetailed(map).then((response) =>{
+            debugger
+            self.detailList = response.data.list.row;
+            for (let i = 0; i < self.detailList.length; i++) {
+              const dataTime = self.detailList[i].TRANDATE + self.detailList[i].TRANTIME;
+              var pattern = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/;
+              var formatedDate1 = dataTime.replace(pattern, '$1/$2/$3 $4:$5:$6');
+              var ddate1 = new Date(formatedDate1);
+              self.detailList[i].dataTime = ddate1;
+            }
+            self.loading = false;
+          }).catch(response => {
+          self.loading = false;
+          });
+        }else{
+          self.loading = false
+        }
+      }).catch(response => {
+          self.loading = false;
+      });
+      // this.queryParams.pageNum = 1;
+      // this.getList();
     },
     /** 重置按钮操作 */
     resetQuery() {
       this.resetForm("queryForm");
-      this.handleQuery();
+      this.listElectronicsAcc();
+      // this.handleQuery();
     },
     // 多选框选中数据
     handleSelectionChange(selection) {

+ 346 - 0
front-vue/src/views/system/adminAccInf/adminAccInf.vue

@@ -0,0 +1,346 @@
+<template>
+  <div class="app-container zap-main">
+    <div class="zap-content zap-margin-top">
+      <el-button
+        type="primary"
+        icon="el-icon-plus"
+        @click="handleAdd"
+        >添加虚拟账户</el-button>
+    </div>
+    <el-table class="zap-table" v-loading="loading" :data="accList" @selection-change="handleSelectionChange" stripe>
+      <el-table-column label="序号" type="index" width="55" align="center" />
+      <el-table-column label="开户行" align="center" prop="paiBankName" />
+      <el-table-column label="账户类型" :formatter="formulaFormat" align="center" prop="paiAcctype"/>
+      <el-table-column label="账户卡号" align="center" prop="paiAccno" />
+      <el-table-column label="账户状态" :formatter="formulaFormatSend" align="center" prop="paiStatus"/>
+      <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['admin:accInf:delete']"
+            >删除</el-button
+          >
+        </template>
+      </el-table-column> -->
+    </el-table>
+
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加虚拟账户 -->
+    <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px" :inline="true">
+        <el-form-item prop="paiBankName" label="开户银行" size="large">
+          <el-select
+            @change="changePayer"
+            v-model="form.paiBankName"
+            :disabled="disableds"
+            filterable
+            clearable
+            remote
+            reserve-keyword
+            placeholder="请选择开户银行"
+            :remote-method="getBankList"
+          >
+            <el-option
+              v-for="(item, index) in bankList"
+              :key="index"
+              :label="item.zcbiBankName"
+              :value="item.zcbiBankName"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="法人姓名" prop="scyLegal" size="large">
+          <el-input v-model="form.scyLegal"  style="width: 215px" placeholder="请输入法人姓名" maxlength="15" readonly/>
+        </el-form-item>
+        <el-form-item label="法人手机号" prop="scyPhone" size="large">
+          <el-input v-model="form.scyPhone"  style="width: 215px" placeholder="请输入法人手机号" maxlength="15" readonly/>
+        </el-form-item>
+        <el-form-item label="身份证号" prop="scyLegalId" size="large">
+          <el-input v-model="form.scyLegalId"  style="width: 215px" placeholder="请输入身份证号" maxlength="15" readonly/>
+        </el-form-item>
+        <el-form-item label="邮箱" prop="email" size="large">
+          <el-input v-model="form.email"  style="width: 215px" placeholder="请输入邮箱" maxlength="15" readonly/>
+        </el-form-item>
+        <el-form-item label="企业名称" prop="scyName" size="large">
+          <el-input v-model="form.scyName"  style="width: 215px" placeholder="请输入企业名称" maxlength="15" readonly/>
+        </el-form-item>
+        <el-form-item label="企业注册地址" prop="scyAddress" size="large">
+          <el-input v-model="form.scyAddress"  style="width: 215px" placeholder="请输入企业注册地址" maxlength="15" readonly/>
+        </el-form-item>
+      </el-form>
+      <el-row style="height: 109px" type="flex" align="middle" justify="center">
+        <el-button type="primary" plain @click="cancel">取 消</el-button>
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+      </el-row>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAdminAcc,listCorporation} from "@/api/system/adminAccInf";
+import { listBank } from "@/api/system/accInf";
+import { register } from "@/api/bank/bankInterface";
+import { release } from 'os';
+import Cookies from 'js-cookie';
+export default {
+  name: "accInf",
+  data() {
+    return {
+      //可用余额
+      KYAMT: null,
+      //电子账户
+      accno: null,
+      // id隐藏
+      isShow: false,
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      //联系人隐藏
+      disabled: false,
+      disableds: false,
+      // 总条数
+      total: 0,
+      // 账户表格数据
+      accList: [],
+      //账户卡号数据
+      cardList: [],
+      //姓名
+      nameList: [],
+      bankList: [],
+      //字典
+      formulaOptions: [],
+      formulaOptionsSend: [],
+      UserList: [],
+      enclosureList: [],
+      sfzList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 是否显示弹出层
+      edit: false,
+      // 是否显示弹出层
+      recharge: false,
+      // 是否显示弹出层
+      withdrawal: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        scyName: null,
+        smiType: null,
+        smiManager: null,
+        smiContract: null,
+        smiContractPhone: null,
+        sfsContent: null,
+        sfsIsDel: null,
+        sfsRemark: null,
+        ssId: null,
+        ssName: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        paiBankName: [
+          {
+            required: true,
+            message: "开户银行不能为空",
+            trigger: ["change", "blur"],
+          },
+        ],
+      },
+    };
+  },
+  created() {
+    this.getList();
+    this.getBankList();
+    this.getDicts("pay_pai_acctype").then((response) => {
+      this.formulaOptions = response.data;
+    });
+    this.getDicts("pay_pai_status").then((response) => {
+      this.formulaOptionsSend = response.data;
+    });
+  },
+  methods: {
+    //切换账款类型
+    changePayer(value) {
+      if (value) {
+        this.$set(this.form, "paiQlbankname", value);
+      }
+    },
+    /** 查询账户列表 */
+    getList() {
+      this.loading = true;
+      listAdminAcc(this.queryParams).then((response) => {
+        this.accList = response.data.records;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 修改取消按钮
+    cancelEdit() {
+      this.edit = false;
+      this.reset();
+    },
+    // 充值取消按钮
+    cancelRecharge() {
+      this.recharge = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        paiBankName: null,
+        scyLegal: null,
+        scyPhone: null,
+        scyLegalId: null,
+        email: null,
+        scyName: null,
+        scyAddress: null,
+      };
+      this.noneBtnImg = false;
+      this.enclosureList = [];
+      this.sfzList = [];
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map((item) => item.scyId);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
+    },
+    //资方类型
+    formulaFormat(row, column) {
+      return this.selectDictLabel(this.formulaOptions, row.paiAcctype);
+    },
+    //奖项
+    formulaFormatSend(row, column) {
+      return this.selectDictLabel(this.formulaOptionsSend, row.paiStatus);
+    },
+    //查询银行名称
+    getBankList(paiBankName) {
+      this.queryParams.paiBankName = paiBankName;
+      listBank(this.queryParams).then((response) => {
+        this.bankList = response.data.records;
+      });
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      listCorporation().then((response) =>{
+        this.form = response.data[0]
+      })
+      this.open = true;
+      // this.$set(this.form, "name", "丛美红");
+      // this.$set(this.form, "phone", "18810133746");
+      // this.$set(this.form, "IDCard", "210282198912038724");
+      // this.$set(this.form, "email", "congmeihong@zcylian.com");
+      // this.$set(this.form, "companyName", "招采云链(山东)信息服务有限公司");
+      // this.$set(this.form, "companyAddress", "中国(山东)自由贸易试验区济南片区汉峪金谷A3-1-1401");
+      this.title = "添加虚拟账户";
+    },
+    /** 新增提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        console.log(this.form);
+        if (valid) {
+          const loading = this.$loading({
+            lock: true,
+            text: "Loading",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
+          register()
+            .then((response) => {
+              debugger
+              loading.close();
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            })
+            .catch((response) => {
+              loading.close();
+            });
+        }
+      });
+    },
+    /** 提交按钮 */
+    submitEdit() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          const loading = this.$loading({
+            lock: true,
+            text: "Loading",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
+          updateAcc(this.form)
+            .then((response) => {
+              loading.close();
+              this.msgSuccess("修改成功");
+              this.edit = false;
+              this.getList();
+            })
+            .catch((response) => {
+              loading.close();
+            });
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const paiId = row.paiId || this.ids;
+      const paiAccno = row.paiAccno;
+      this.$confirm(
+        '是否确认删除账户卡号为"' + paiAccno + '"的数据项?',
+        "警告",
+        {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        }
+      )
+        .then(function () {
+          return delAdminAcc(paiId);
+        })
+        .then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        });
+    },
+  },
+};
+</script>