浏览代码

还款管理前台页面

ch 4 年之前
父节点
当前提交
c83cffe249
共有 2 个文件被更改,包括 357 次插入251 次删除
  1. 11 0
      front-vue/src/api/service/repayment/repayment.js
  2. 346 251
      front-vue/src/views/service/repayment/repayment.vue

+ 11 - 0
front-vue/src/api/service/repayment/repayment.js

@@ -0,0 +1,11 @@
+import request from '@/utils/request'
+
+// 查询还款信息列表
+export function listRepayment(query) {
+  return request({
+    url: '/sc-service/repayment/list',
+    method: 'get',
+    params: query
+  })
+}
+

+ 346 - 251
front-vue/src/views/service/repayment/repayment.vue

@@ -1,264 +1,359 @@
 <template>
     <div class="app-container">
-        <el-card class="fiche" style="">
+        <el-card class="fiche" >
             <right-toolbar :showSearch.sync="showSearch" @queryTable="getList">收起</right-toolbar>
-            <span style="margin-bottom: 10px;color:#333333;font:14px Helvetica Neue, Helvetica, PingFang SC, Tahoma, Arial,sans-serif">所选条件:</span>
-            <div style="float: right;margin-right:1%">
-                <el-button type="cyan" icon="el-icon-search" size="mini" @click="">搜索</el-button>
-                <el-button icon="el-icon-refresh" size="mini" @click="">重置</el-button>
-                <column-setting :checkList=checkList :tableList=tableList :selfDom=selfDom :tableId=tableId></column-setting>
-            </div>
-            <hr style="margin-top: 16px;">
-            <el-row style="margin-bottom: 10px;">
-                <el-col :span="8">
-                    <el-select v-model="value" placeholder="按资金方名称查询">
-                        <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
-                        </el-option>
+          <span style="margin-bottom: 10px;color:#333333;font:14px Helvetica Neue, Helvetica, PingFang SC, Tahoma, Arial,sans-serif">所选条件:</span>
+         <div  style="float: right;margin-right:1%">
+            <el-button type="cyan"  icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"  style="float: ;">重置</el-button>
+            <column-setting :checkList=checkList :tableList=tableList :selfDom=selfDom :tableId=tableId></column-setting>
+         </div>
+         <hr  style="margin-top: 16px;">
+            <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
+                <el-form-item>
+                    <el-select
+                        v-model="queryParams.type"
+                        placeholder="请选择查询字段"
+                        clearable
+                        size="small">
+                        <el-option
+                        v-for="dict in typeOptions"
+                        :key="dict.dictValue"
+                        :label="dict.dictLabel"
+                        :value="dict.dictValue"/>
                     </el-select>
-                </el-col>
-                <el-col :span="5">
-                    <el-input v-model="input" placeholder="请输入关键字模糊查询" style="width:90%"></el-input>
-                </el-col>
-                <el-col :span="11">
-                    <div class="block">
-                        <span class="demonstration">承诺还款日期:</span>
-                        <el-date-picker v-model="value2" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions">
-                        </el-date-picker>
-                    </div>
-                </el-col>
-            </el-row>
-
+                </el-form-item>
+                <el-form-item  >
+                    <el-input
+                    v-model="queryParams.value"
+                    placeholder="请输入关键字模糊查询"
+                    clearable
+                    size="small"
+                    maxlength="30"
+                    @keyup.enter.native="handleQuery"
+                    />
+                </el-form-item>
+                <el-form-item label="承诺还款日期" prop="repaymentDate">
+                    <el-date-picker 
+                    clearable 
+                    unlink-panels
+                    v-model="queryParams.repaymentDate"
+                    value-format="yyyy-MM-dd"
+                    format="yyyy-MM-dd"
+                    type="daterange"
+                    range-separator="-"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期">
+                    </el-date-picker>
+                </el-form-item>
+            </el-form>
         </el-card>
-        <el-button type="cyan" icon="el-icon-search" size="mini" @click="">导出待还款数据</el-button>
-
-        <el-tabs v-model="activeName" @tab-click="handleClick">
-            <el-tab-pane label="全部" name="first">
-                <el-table :data="tableData" border style="width: 100%">
-                    <el-table-column fixed prop="date" label="序号" width="150">
-                    </el-table-column>
-                    <el-table-column prop="name" label="融信编号" width="120">
-                    </el-table-column>
-                    <el-table-column prop="province" label="还款承诺函编号" width="120">
-                    </el-table-column>
-                    <el-table-column prop="city" label="最终还款方" width="120">
-                    </el-table-column>
-                    <el-table-column prop="address" label="还款类型" width="300">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款金额(元)" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款银行账户" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="实际还款日期" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="承诺付款日期" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款状态" width="120">
-                    </el-table-column>
-                    <el-table-column fixed="right" label="操作" width="100">
-                        <template slot-scope="scope">
-                            <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
-                            <el-button type="text" size="small">编辑</el-button>
-                        </template>
-                    </el-table-column>
-                </el-table>
-            </el-tab-pane>
-            <el-tab-pane label="待还款" name="second">
-                  <el-table :data="tableData" border style="width: 100%">
-                    <el-table-column fixed prop="date" label="序号" width="150">
-                    </el-table-column>
-                    <el-table-column prop="name" label="融信编号" width="120">
-                    </el-table-column>
-                    <el-table-column prop="province" label="还款承诺函编号" width="120">
-                    </el-table-column>
-                    <el-table-column prop="city" label="最终还款方" width="120">
-                    </el-table-column>
-                    <el-table-column prop="address" label="还款类型" width="300">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款金额(元)" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款银行账户" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="实际还款日期" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="承诺付款日期" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款状态" width="120">
-                    </el-table-column>
-                    <el-table-column fixed="right" label="操作" width="100">
-                        <template slot-scope="scope">
-                            <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
-                            <el-button type="text" size="small">编辑</el-button>
-                        </template>
-                    </el-table-column>
-                </el-table>
-            </el-tab-pane>
-            <el-tab-pane label="已还款" name="third">
-                <el-table :data="tableData" border style="width: 100%">
-                    <el-table-column fixed prop="date" label="序号" width="150">
-                    </el-table-column>
-                    <el-table-column prop="name" label="融信编号" width="120">
-                    </el-table-column>
-                    <el-table-column prop="province" label="还款承诺函编号" width="120">
-                    </el-table-column>
-                    <el-table-column prop="city" label="最终还款方" width="120">
-                    </el-table-column>
-                    <el-table-column prop="address" label="还款类型" width="300">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款金额(元)" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款银行账户" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="实际还款日期" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="承诺付款日期" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款状态" width="120">
-                    </el-table-column>
-                    <el-table-column fixed="right" label="操作" width="100">
-                        <template slot-scope="scope">
-                            <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
-                            <el-button type="text" size="small">编辑</el-button>
-                        </template>
-                    </el-table-column>
-                </el-table>
-            </el-tab-pane>
-            <el-tab-pane label="逾期" name="fourth">
-                <el-table :data="tableData" border style="width: 100%">
-                    <el-table-column fixed prop="date" label="序号" width="150">
-                    </el-table-column>
-                    <el-table-column prop="name" label="融信编号" width="120">
-                    </el-table-column>
-                    <el-table-column prop="province" label="还款承诺函编号" width="120">
-                    </el-table-column>
-                    <el-table-column prop="city" label="最终还款方" width="120">
-                    </el-table-column>
-                    <el-table-column prop="address" label="还款类型" width="300">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款金额(元)" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款银行账户" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="实际还款日期" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="承诺付款日期" width="120">
-                    </el-table-column>
-                    <el-table-column prop="zip" label="还款状态" width="120">
-                    </el-table-column>
-                    <el-table-column fixed="right" label="操作" width="100">
-                        <template slot-scope="scope">
-                            <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
-                            <el-button type="text" size="small">编辑</el-button>
-                        </template>
-                    </el-table-column>
-                </el-table>
-            </el-tab-pane>
-        </el-tabs>
-    </div>
+        <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+                <el-button
+                    type="primary"
+                    icon="el-icon-export"
+                    size="mini"
+                    @click="handleExport"
+                    v-hasPermi="['service:repayment:export']"
+                    >导出待还款数据</el-button>
+            </el-col>
+        </el-row>
+        <el-table v-loading="loading" :data="allRepaymentList" @selection-change="handleSelectionChange" border>
+      <el-table-column label="序号" type="index" width="50" align="center">
+        <template slot-scope="scope">
+          <span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span>
+        </template>
+      </el-table-column>     
+      <el-table-column label="融信编号" align="center" prop="zfiNumber" :show-overflow-tooltip="true" v-if="uncheckList.zfiNumber"/> 
+      <el-table-column label="最终还款方" align="center" prop="core" :show-overflow-tooltip="true" v-if="uncheckList.core"/>
+      <el-table-column label="还款金额(元)" align="center" prop="zfrLoanAmount" :show-overflow-tooltip="true" v-if="uncheckList.zfrLoanAmount"/>
+      <el-table-column label="还款银行账户" align="center" prop="zfpcrAccount"  :show-overflow-tooltip="true" v-if="uncheckList.zfpcrAccount"/>
+      <el-table-column label="实际还款日期" align="center" prop="zfrPayDate" :show-overflow-tooltip="true" v-if="uncheckList.zfrPayDate"/>
+      <el-table-column label="承诺付款日期" align="center" prop="zfrRepaymentDate" :show-overflow-tooltip="true" v-if="uncheckList.zfrRepaymentDate"/>
+      <el-table-column label="还款状态" align="center" prop="zfrApplyStatus" :formatter="applyStatusFormat" :show-overflow-tooltip="true" v-if="uncheckList.zfrApplyStatus"/>
+      <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="handleInfo(scope.row)"
+            v-hasPermi="['service:contract:query']"
+          >详情</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDel(scope.row)"
+            v-hasPermi="['service:contract: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"
+    />
+  </div>
 </template>
 
 <script>
+import { listRepayment} from "@/api/service/repayment/repayment";
+import ColumnSetting from "../../../components/Table/columnSetting.vue";
+import { columnQuery, columnfilter } from "@/api/common/columnSetting";
 export default {
-    data() {
-        return {
-            activeName: "first",
-   tableData: [{
-          date: '2016-05-02',
-          name: '王小虎',
-          province: '上海',
-          city: '普陀区',
-          address: '上海市普陀区金沙江路 1518 弄',
-          zip: 200333
-        }, {
-          date: '2016-05-04',
-          name: '王小虎',
-          province: '上海',
-          city: '普陀区',
-          address: '上海市普陀区金沙江路 1517 弄',
-          zip: 200333
-        }, {
-          date: '2016-05-01',
-          name: '王小虎',
-          province: '上海',
-          city: '普陀区',
-          address: '上海市普陀区金沙江路 1519 弄',
-          zip: 200333
-        }, {
-          date: '2016-05-03',
-          name: '王小虎',
-          province: '上海',
-          city: '普陀区',
-          address: '上海市普陀区金沙江路 1516 弄',
-          zip: 200333
-        }],
-            pickerOptions: {
-                
-                shortcuts: [
-                    {
-                        text: "最近一周",
-                        onClick(picker) {
-                            const end = new Date();
-                            const start = new Date();
-                            start.setTime(
-                                start.getTime() - 3600 * 1000 * 24 * 7
-                            );
-                            picker.$emit("pick", [start, end]);
-                        },
-                    },
-                    {
-                        text: "最近一个月",
-                        onClick(picker) {
-                            const end = new Date();
-                            const start = new Date();
-                            start.setTime(
-                                start.getTime() - 3600 * 1000 * 24 * 30
-                            );
-                            picker.$emit("pick", [start, end]);
-                        },
-                    },
-                    {
-                        text: "最近三个月",
-                        onClick(picker) {
-                            const end = new Date();
-                            const start = new Date();
-                            start.setTime(
-                                start.getTime() - 3600 * 1000 * 24 * 90
-                            );
-                            picker.$emit("pick", [start, end]);
-                        },
-                    },
-                ],
-            },
-            options: [
-                {
-                    value: "选项1",
-                    label: "黄金糕",
-                },
-                {
-                    value: "选项2",
-                    label: "双皮奶",
-                },
-                {
-                    value: "选项3",
-                    label: "蚵仔煎",
-                },
-                {
-                    value: "选项4",
-                    label: "龙须面",
-                },
+  name: "repayment",
+  components: {
+    ColumnSetting 
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 弹出层标题
+      title: "",
+      // 全部还款列表
+      allRepaymentList:[],
+      //待还款列表
+      unRepaymentList:[],
+      //已还款列表
+      repaymentList:[],
+      //逾期列表
+      overdueList:[],
+      typeOptions:[],
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        type: null,
+        value: null,
+        repaymentDate: [],
+        status: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        //  pptName:[
+        //   { required: true, message: "项目类型不能为空", trigger: "blur" },
+        // ]
+      },
+      tableList: [
+        {
+          label: "zfiNumber",
+          value: "融信编号"
+        },
+        {
+          label: "core",
+          value: "最终还款方"
+        },
+        {
+          label: "zfrLoanAmount",
+          value: "还款金额(元)"
+        },
+        {
+          label: "zfpcrAccount",
+          value: "还款银行账户"
+        },
+        {
+          label: "zfrPayDate",
+          value: "实际还款日期"
+        },
+        {
+          label: "zfrRepaymentDate",
+          value: "承诺付款日期"
+        },
+        {
+          label: "zfrApplyStatus",
+          value: "还款状态"
+        },
+      ],
+      checkList: [], //筛选列选中的数据列表--显示隐藏列用
+      uncheckList: {}, //控制筛选列显示隐藏--显示隐藏列用
+      selfDom: this,
+      tableId: "/service/repayment/list",
+    };
+  },
+  created() {
+    this.getList();
+    this.getDicts("zc_zfr_apply_status").then((response) => {
+      this.applyStatusOptions = response.data;
+    });
+    this.getDicts("zc_zfr_type").then((response) => {
+      this.typeOptions = response.data;
+    });
+  },
+  activated(){
+    this.getList();
+  },
+  mounted() {
+    this.columnQuery();
+  },
+  methods: {
+    /** 查询所有还款列表 */
+    getList() {
+      this.loading = true;
+      listRepayment(this.queryParams).then(response => {
+        this.allRepaymentList = response.data.records;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    /** 查询未还款列表 */
+    getUnpayList() {
+      this.loading = true;
+      this.queryParamsUnpay.status = '00'
+      listRepayment(this.queryParamsUnpay).then(response => {
+        this.unRepaymentList = response.data.records;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+       
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+     /*  this.ids = selection.map(item => item.ptcId)
+      this.single = selection.length!==1
+      this.multiple = !selection.length */
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.$router.push("/contract/addContract/");
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      const zfcId = row.zfcId
+      this.$router.push("/contract/editContract/"+ zfcId);
+    },
+    /** 详情按钮操作 */
+    handleInfo(row) {
+      const zfcId = row.zfcId
+      this.$router.push("/contract/detailContract/"+ zfcId);
+    },
+    /** 删除按钮操作 */
+    handleDel(row) {
+      const zfcId = row.zfcId
+      const zfcName = row.zfcName
+      this.$confirm(
+                '是否确认删除合同模板名为"' + zfcName + '"的数据项?',
+                "警告",
                 {
-                    value: "选项5",
-                    label: "北京烤鸭",
-                },
-            ],
-            value: "",
-            value1: "",
-            value2: "",
-        };
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning",
+                }
+            )
+                .then(function () {
+                    return delContract(zfcId);
+                })
+                .then(() => {
+                    this.getList();
+                    this.msgSuccess("删除成功");
+                })
+                .catch(() => {
+                    this.$message({
+                        type: "warning",
+                        message: "已取消删除",
+                    });
+                });
     },
-    methods: {
-        handleClick(tab, event) {
-            console.log(tab, event);
-        },
+    /** 启用按钮操作 */
+     handleChange(row) {
+           let text = row.zfpStatus === "01" ? "开启合同模板名称为" : "停用合同模板名称为";
+            this.$confirm(
+                "确认要" + text + '"' + row.zfcName + '"吗?',
+                "警告",
+                {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning",
+                }
+            )
+                .then(function () {
+                    return changeState(row.zfcId);
+                })
+                .then(() => {
+                  this.getList();
+                    this.msgSuccess(text + "成功");
+                })
+                .catch(function () {
+                    row.zfpSplit = row.zfpSplit === "00" ? "01" : "00";
+                });
+     },
+    //还款状态字典反显
+    applyStatusFormat(row, column) {
+      return this.selectDictLabel(this.applyStatusOptions, row.zfrApplyStatus);
     },
+    
+    //获取当前客户是否之前设置过列展示隐藏
+    columnQuery() {
+      //获取页面路径
+      var psfPagePath = window.location.pathname;
+
+      //用请求后台的url作为唯一标识
+      var psfTableName = this.tableId;
+      var columnForm = {};
+      columnForm.psfPagePath = psfPagePath;
+      columnForm.psfTableName = psfTableName;
+      columnQuery(columnForm).then(response => {
+        if (response.data && response.data.psfShowData) {
+          this.checkList = response.data.psfShowData;
+        }
+        this.filter();
+      });
+    },
+    //控制隐藏显示的函数
+    filter(checkList) {
+      if (!!checkList) {
+        this.checkList = checkList;
+      }
+      columnfilter(this.selfDom);
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      /* this.download('base/taxCode/export', {
+        ...this.queryParams
+      }, `base_taxCode.xlsx`) */
+    }
+  }
 };
-</script>
+</script>