Bläddra i källkod

授信额度管理

peixh 3 år sedan
förälder
incheckning
6718de3c10

+ 6 - 0
front-vue/src/router/index.js

@@ -214,6 +214,12 @@ export const constantRoutes = [
         name: 'detailCreditLine',
         meta: { title: '授信信息详情',noCache: true }
       },
+      {
+        path: 'supplierCreditLine/:zfpcrId',
+        component: (resolve) => require(['@/views/service/creditLine/supplierCreditLine'], resolve),
+        name: 'supplierCreditLine',
+        meta: { title: '融资方列表详情',noCache: true }
+      },
     ]
   },
   {

+ 453 - 66
front-vue/src/views/service/creditLine/addCreditLine.vue

@@ -1,74 +1,252 @@
 <template>
   <div class="app-container">
-    <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="融资产品" prop="zfpcrProductId">
-          <el-input v-model="form.zfpcrProductId" placeholder="请输入融资产品" />
+    <el-form ref="form" :label-position="labelPosition" :model="form" :rules="rules" label-width="106px">
+      <el-divider content-position="left">授信信息</el-divider>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="资金方:" prop="zfpcrFundSide">
+            <el-select v-model="form.zfpcrFundSide" style="width : 284px" clearable>
+              <el-option
+                v-for="(item,index) in zfCompanyList"
+                :key="index"
+                :label="item.scyName"
+                :value="item.scyId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="融资产品:" prop="zfpcrProductId">
+            <el-select v-model="form.zfpcrProductId" style="width : 284px" clearable>
+              <el-option
+                v-for="(item,index) in financeProductList"
+                :key="index"
+                :label="item.zfpName"
+                :value="item.zfpId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="授信企业名称:" prop="zfpcrCompanyId">
+            <el-select v-model="form.zfpcrCompanyId" style="width : 284px" clearable>
+              <el-option
+                v-for="(item,index) in hxCompanyList"
+                :key="index"
+                :label="item.scyName"
+                :value="item.scyId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="授信额度:" prop="zfpcrAmount">
+            <!-- <el-tooltip class="item" effect="light" :content= "zfpcrAmountFormat" placement="top-start"> -->
+            <el-input v-model="form.zfpcrAmount" placeholder="请输入授信额度"  style="width:284px">
+              <template slot="append">元</template>
+            </el-input>
+            <!-- </el-tooltip> -->
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="利率:" prop="zfpcrRate">
+          <el-input v-model="form.zfpcrRate" placeholder="请输入利率" style="width:284px">
+            <template slot="append">%起</template>
+          </el-input>
         </el-form-item>
-        <el-form-item label="关联企业(sys_company.scy_id)" prop="zfpcrCompanyId">
-          <el-input v-model="form.zfpcrCompanyId" placeholder="请输入关联企业(sys_company.scy_id)" />
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="有效期:" prop="zfpcrDateType">
+            <el-radio-group v-model="form.zfpcrDateType" size="medium">
+              <el-radio-button  v-for="(dict,index) in dateTypeOptions" :key="index" :label="dict.dictValue" border>{{dict.dictLabel}}</el-radio-button>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="有效期范围:" prop="dateTime" v-if="this.form.zfpcrDateType == '1'">
+            <el-date-picker  
+              v-model="form.dateTime"
+              clearable
+              style="width: 284px"
+              unlink-panels
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="-"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期">
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="融资网点:" prop="zfpcrAddress">
+            <el-input v-model="form.zfpcrAddress" placeholder="请输入融资网点" style="width:284px"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="是否收取手续费:" prop="zfpcrCharge" label-width="113px">
+            <el-radio-group v-model="form.zfpcrCharge" size="medium" >
+              <el-radio-button  v-for="(dict,index) in chargeOptions" :key="index" :label="dict.dictValue" border>{{dict.dictLabel}}</el-radio-button>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="平台服务费收取费率:" prop="zfpcrChargeRate" label-width="139px" v-if="this.form.zfpcrCharge == '1'">
+          <el-input v-model="form.zfpcrChargeRate" placeholder="请输入平台服务费收取费率" style="width:284px">
+            <template slot="append">%</template>
+          </el-input>
         </el-form-item>
-        <el-form-item label="授信额度" prop="zfpcrAmount">
-          <el-input v-model="form.zfpcrAmount" placeholder="请输入授信额度" />
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="核心企业还款账户账号:" prop="zfpcrAccount" label-width="142px">
+            <el-autocomplete
+              style="width:286px"
+              class="inline-input"
+              v-model="form.zfpcrAccount"
+              :fetch-suggestions="querySearch"
+              placeholder="核心企业还款账户账号"
+              ></el-autocomplete>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="融资放款方式:" prop="zfpcrLoanType">
+            <el-select v-model="form.zfpcrLoanType" placeholder="请选择状态" clearable style="width : 284px" clearable>
+              <el-option
+                v-for="dict in loanTypeOptions"
+                :key="dict.dictValue"
+                :label="dict.dictLabel"
+                :value="dict.dictValue"
+              />
+            </el-select>
         </el-form-item>
-        <el-form-item label="利率" prop="zfpcrRate">
-          <el-input v-model="form.zfpcrRate" placeholder="请输入利率" />
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="记账簿托管方式:" prop="zfpcrBookkeepingType" label-width="113px">
+            <el-select v-model="form.zfpcrBookkeepingType" placeholder="请选择状态" clearable style="width : 284px" clearable>
+              <el-option
+                v-for="dict in bookkeepingTypeOptions"
+                :key="dict.dictValue"
+                :label="dict.dictLabel"
+                :value="dict.dictValue"
+              />
+            </el-select>
         </el-form-item>
-        <el-form-item label="已分割额度" prop="zfpcrDivisionAmount">
-          <el-input v-model="form.zfpcrDivisionAmount" placeholder="请输入已分割额度" />
-        </el-form-item>
-        <el-form-item label="有效期(0:长期, 1:定期)" prop="zfpcrDateType">
-          <el-select v-model="form.zfpcrDateType" placeholder="请选择有效期(0:长期, 1:定期)">
-            <el-option label="请选择字典生成" value="" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="开始日期" prop="zfpcrStartDate">
-          <el-input v-model="form.zfpcrStartDate" placeholder="请输入开始日期" />
-        </el-form-item>
-        <el-form-item label="到期日期" prop="zfpcrEndDate">
-          <el-input v-model="form.zfpcrEndDate" placeholder="请输入到期日期" />
-        </el-form-item>
-        <el-form-item label="融资网点" prop="zfpcrAddress">
-          <el-input v-model="form.zfpcrAddress" placeholder="请输入融资网点" />
-        </el-form-item>
-        <el-form-item label="是否收取手续费" prop="zfpcrCharge">
-          <el-input v-model="form.zfpcrCharge" placeholder="请输入是否收取手续费" />
-        </el-form-item>
-        <el-form-item label="平台服务费收取费率" prop="zfpcrChargeRate">
-          <el-input v-model="form.zfpcrChargeRate" placeholder="请输入平台服务费收取费率" />
-        </el-form-item>
-        <el-form-item label="核心企业还款账户账号" prop="zfpcrAccount">
-          <el-input v-model="form.zfpcrAccount" placeholder="请输入核心企业还款账户账号" />
-        </el-form-item>
-        <el-form-item label="融资放款方式" prop="zfpcrLoanType">
-          <el-select v-model="form.zfpcrLoanType" placeholder="请选择融资放款方式">
-            <el-option label="请选择字典生成" value="" />
-          </el-select>
+        </el-col>
+      </el-row>
+      <el-divider content-position="left">关联合同</el-divider>
+      <el-form-item prop="zfqcrContractId" style="margin-left: 100px" >
+        <el-button size="mini" type="primary" @click="openTicket">选择合同</el-button>
+        <el-button size="mini" @click="deleteTicekt">清空全部</el-button>
+        <el-table :data="ticketList" style="width: 1100px">
+          <el-table-column label="合同模板编号"  align="center"  prop="zfcNumber" show-overflow-tooltip />
+          <el-table-column label="合同模板名称"  align="center"  prop="zfcName"   />
+          <el-table-column label="签署主体"  align="center"  prop="zfcSubject"    />
+          <el-table-column label="合同id"  align="center"  prop="zfcId" v-if="false"  />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="250">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="handleDelete(scope.$index, ticketList)"
+              >删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-form-item>
+    </el-form>
+
+    <!-- 合同信息 -->
+    <el-dialog :title="title" :visible.sync="open" width="1120px" append-to-body>
+      <el-form :model="queryParamsContract"  ref="formQuery"  :inline="true"  label-width="68px"  style="margin-bottom: -21px">
+        <el-form-item label="合同模板编号" prop="zfcNumber">
+          <el-input
+            v-model="queryParamsContract.zfcNumber"
+            placeholder="请输入合同模板编号"
+            clearable
+            size="small"
+            maxlength="11"
+            @keyup.enter.native="handleQuerys"/>
         </el-form-item>
-        <el-form-item label="记账簿托管方式" prop="zfpcrBookkeepingType">
-          <el-select v-model="form.zfpcrBookkeepingType" placeholder="请选择记账簿托管方式">
-            <el-option label="请选择字典生成" value="" />
-          </el-select>
+        <el-form-item label="合同模板名称" prop="zfcName">
+          <el-input
+            v-model="queryParamsContract.zfcName"
+            placeholder="请输入合同模板名称"
+            clearable
+            size="small"
+            maxlength="11"
+            @keyup.enter.native="handleQuerys"/>
         </el-form-item>
-        <el-form-item label="状态">
-          <el-radio-group v-model="form.zfpcrStatus">
-            <el-radio label="1">请选择字典生成</el-radio>
-          </el-radio-group>
+        <el-form-item>
+          <el-button
+            type="cyan"
+            icon="el-icon-search"
+            size="mini"
+            @click="handleQuerys"
+            >搜索</el-button>
+          <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys"
+            >重置</el-button>
         </el-form-item>
       </el-form>
+      <el-table :data="contractList"
+        ref="tableContract"
+        class="single-select-table"
+        @selection-change="handleSelectionChange" 
+        :row-key="rowkey">
+        <el-table-column
+          type="selection"
+          :reserve-selection="true"
+          width="50"
+          align="center"/>
+        <el-table-column label="序号" type="index" width="50" align="center">
+          <template slot-scope="scope">
+            <span>{{ (queryParamsContract.pageNum - 1) * queryParamsContract.pageSize + scope.$index + 1}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="合同模板编号"  align="center"  prop="zfcNumber" show-overflow-tooltip />
+          <el-table-column label="合同模板名称"  align="center"  prop="zfcName"   />
+          <el-table-column label="签署主体"  align="center"  prop="zfcSubject"    />
+      </el-table>
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="queryParamsContract.pageNum"
+        :limit.sync="queryParamsContract.pageSize"
+        @pagination="getContractList" />
+      <span slot="footer" class="dialog-footer">
+        <el-button size="mini" @click="cancelTicket">取消</el-button>
+        <el-button size="mini" type="primary" @click="closeTicket">确认</el-button>
+      </span>
+    </el-dialog>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
+        <!-- <el-button @click="cancel">取 消</el-button> -->
       </div>
   </div>
 </template>
 
 <script>
 import { listCreditLine, getCreditLine, delCreditLine, addCreditLine, updateCreditLine} from "@/api/service/creditLine/creditLine";
+import { listFinanceProduct } from "@/api/common/financeProduct"
+import { listCompany } from "@/api/common/company"
+import { listCompanyAcc } from "@/api/common/companyAcc"
 export default {
   name: "addCreditLine",
   components: {},
   data() {
     return {
+      //金额展示
+      zfpcrAmountFormat: '',
+      //还款账户搜所
+      restaurants: [],
+      labelPosition: 'top',
       // 遮罩层
       loading: true,
       // 选中数组
@@ -83,6 +261,26 @@ export default {
       total: 0,
       // 企业授信额度表格数据
       creditLineList: [],
+      //资金方数据
+      zfCompanyList: [],
+      //融资产品数据
+      financeProductList: [],
+      //核心企业数据
+      hxCompanyList: [],
+      //核心企业还款账户数据:
+      accList: [],
+      //合同表格数据
+      ticketList: [],
+      //合同列表数据
+      contractList: [],
+      //有效期数据字典
+      dateTypeOptions: [],
+      //是否收取手续费数据字典
+      chargeOptions: [],
+      //融资放款方式数据字典
+      loanTypeOptions: [],
+      //记账簿托管方式数据字典
+      bookkeepingTypeOptions: [],
       // 弹出层标题
       title: "",
       // 是否显示弹出层
@@ -117,60 +315,249 @@ export default {
         zfpcrProfitSpare8: null,
         zfpcrProfitSpare9: null,
       },
+      queryParamsContract: {
+        pageNum: 1,
+        pageSize: 10,
+        zfcId: null,
+        zfcName: null,
+        zfcNumber: null,
+        zfcManagementId: null
+      },
       // 表单参数
-      form: {},
+      form: {
+        zfpcrDateType: '0',
+        zfpcrCharge: '1'
+      },
       // 表单校验
       rules: {
+        zfpcrFundSide: [
+          { required: true, message: "资金方不能为空", trigger: ["blur", "change"] }
+        ],
         zfpcrProductId: [
-          { required: true, message: "融资产品(zc_finance_product.zfp_id)不能为空", trigger: "blur" }
+          { required: true, message: "融资产品不能为空", trigger: ["blur", "change"] }
         ],
         zfpcrCompanyId: [
-          { required: true, message: "关联企业(sys_company.scy_id)不能为空", trigger: "blur" }
+          { required: true, message: "授信企业名称不能为空", trigger: ["blur", "change"] }
         ],
         zfpcrAmount: [
-          { required: true, message: "授信额度不能为空", trigger: "blur" }
+          { required: true, message: "授信额度不能为空", trigger: ["blur", "change"] },
+          {
+            pattern: /^[0-9][0-9]{0,7}$|^[1-9][0-9]{0,7}[.]\d{1,2}$/,
+            message: "请输入正确的额度",
+            trigger: "change",
+          },
         ],
         zfpcrRate: [
-          { required: true, message: "利率不能为空", trigger: "blur" }
+          { required: true, message: "利率不能为空", trigger: ["blur", "change"] },
+          {
+            pattern: /^([0-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/,
+            message: "请输入正确的利率",
+            trigger: "change",
+          }, 
         ],
-        zfpcrCharge: [
-          { required: true, message: "是否收取手续费(0:不收取, 1收取)不能为空", trigger: "blur" }
+        dateTime: [
+          { required: true, message: "有效期范围不能为空", trigger: ["blur", "change"] }
         ],
         zfpcrChargeRate: [
-          { required: true, message: "平台服务费收取费率不能为空", trigger: "blur" }
+          { required: true, message: "平台服务费收取费率不能为空", trigger: ["blur", "change"] },
+          {
+            pattern: /^([0-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/,
+            message: "请输入正确的平台服务费收取费率",
+            trigger: "change",
+          },
+        ],
+        zfpcrAccount: [
+          { required: true, message: "核心企业还款账户账号", trigger: ["blur", "change"] }
         ],
         zfpcrLoanType: [
-          { required: true, message: "融资放款方式不能为空", trigger: "change" }
+          { required: true, message: "融资放款方式不能为空", trigger: ["blur", "change"] }
         ],
         zfpcrBookkeepingType: [
-          { required: true, message: "记账簿托管方式不能为空", trigger: "change" }
+          { required: true, message: "记账簿托管方式不能为空", trigger: ["blur", "change"] }
         ],
       }
     };
   },
   created() {
-    this.getDicts("zc_zfpcr_status").then(response => {
-      this.statusOptions = response.data;
+    this.getZfCompany();
+    this.getFinanceProduct();
+    this.getHxCompany();
+    this.getCompanyAcc();
+    this.getDicts("zc_zfpcr_date_type").then(response => {
+      this.dateTypeOptions = response.data;
     });
-  },
-  activated() {
-    this.getDicts("zc_zfpcr_status").then(response => {
-      this.statusOptions = response.data;
+    this.getDicts("zc_zfpcr_charge").then(response => {
+      this.chargeOptions = response.data;
+    });
+    this.getDicts("zc_zfpcr_loan_type").then(response => {
+      this.loanTypeOptions = response.data;
+    });
+    this.getDicts("zc_zfpcr_bookkeeping_type").then(response => {
+      this.bookkeepingTypeOptions = response.data;
     });
   },
   methods: {
+    /* 资方公司 */
+    getZfCompany(){
+      //公司类型
+      const scyType = '03'
+      listCompany(scyType).then((response) =>{
+        this.zfCompanyList  = response.data
+      })
+    },
+    /* 融资产品 */
+    getFinanceProduct(){
+      listFinanceProduct().then((response) =>{
+        this.financeProductList  = response.data
+      })
+    },
+    /* 授信企业 */
+    getHxCompany(){
+      //公司类型
+      const scyType = '01'
+      listCompany(scyType).then((response) =>{
+        this.hxCompanyList  = response.data
+      })
+    },
+    /* 核心企业还款账户账号 */
+    getCompanyAcc(){
+      listCompanyAcc().then((response) =>{
+        this.accList  = response.data
+      this.restaurants = response.data;
+      })
+    },
+    /* 账户模糊搜所 */
+    querySearch(queryString, cb) {
+        var restaurants = this.restaurants;
+        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
+        // 调用 callback 返回建议列表的数据
+        cb(results);
+      },
+    createFilter(queryString) {
+      return (restaurant) => {
+        return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+      };
+    },
+    /* 合同相关 */
+    //合同列表
+    getContractList() {
+      this.queryParamsContract.zfcManagementId = this.form.zfpcrFundSide
+      listContract(this.queryParamsContract).then((response) => {
+        this.contractList = response.data.records;
+        this.selectChecked();
+        this.total = response.data.total;
+      });
+    },
+    //打开合同选择列表
+    openTicket() {
+      this.getContractList()
+      this.open = true
+      this.title = "合同信息"
+    },
+    selectChecked() {
+      this.ticketList.forEach((item) => {
+        this.contractList.forEach(row => {
+          if (row.zfcId == item.zfcId) {
+            this.$nextTick(() => {
+              this.$refs.tableContract && this.$refs.tableContract.toggleRowSelection(row, true);
+            })
+          }
+        });
+      });
+    },
+    /* 多选框跨页 */
+    rowkey(row) {
+      return row.zfcId;
+    },
+    // 多选框选中数据
+    handleSelectionChange(val) {
+        this.chooseTicket = val
+    },
+    // 确认选择
+    closeTicket() {
+        if(this.chooseTicket.length > 0){
+          this.ticketList = this.chooseTicket
+          this.$set(this.form, "zfcName", this.ticketList[0].zfcName);
+          this.$set(this.form, "zfcNumber", this.ticketList[0].zfcNumber);
+          this.$set(this.form, "zfcSubject", this.ticketList[0].zfcSubject);
+          this.$set(this.form, "zfcId", this.ticketList[0].zfcId);
+          this.open = false
+      }else{
+        this.$message({
+          message: '请选择合同',
+          type: 'warning'
+        });
+      }
+    },
+    //取消选择合同按钮
+    cancelTicket(){
+      this.ticketList = [];
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+      this.open = false;
+    },
+    /** 清空选择发票信息 */
+    deleteTicekt() {
+      this.ticketList = []
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+    },
+    /* 删除按钮 */
+    handleDelete(index, rows) {
+      rows.splice(index, 1);
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+      this.selectChecked();
+    },
+    onSelectAll() {
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+    },
+    handleQuerys() {
+      this.queryParamsContract.pageNum = 1;
+      this.getContractList();
+    },
+    resetQuerys() {
+      this.resetForm("formQuery");
+      this.handleQuerys();
+    },
     /** 提交按钮 */
     submitForm() {
+      // if(this.ticketList == undefined || this.ticketList.length == 0){
+      //   this.$message({
+      //       message: '请选择合同',
+      //       type: 'warning'
+      //     });
+      //     return;
+      // }
       this.$refs["form"].validate(valid => {
+        this.form.ticketList = this.ticketList;
         if (valid) {
+          const loading = this.$loading({
+            lock: true,
+            text: "Loading",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
           addCreditLine(this.form).then(response => {
             this.msgSuccess("新增成功");
-            this.open = false;
-            this.getList();
+            loading.close();
+            this.$store.dispatch("tagsView/delView", this.$route);
+            this.$router.go(-1);
+          }).catch((response) => {
+              loading.close();
           });
         }
       });
     },
+    /* 金额展示 */
+    handleInput(str) {
+        this.zfpcrAmountFormat = amtformat(str,2, ".", ",");
+    },
     /* //  将数字金额转换为大写金额 */
     smallToBig(money) {
       //  将数字金额转换为大写金额

+ 100 - 166
front-vue/src/views/service/creditLine/creditLine.vue

@@ -20,17 +20,22 @@
           style="width: 190px"
         />
       </el-form-item>
-      <el-form-item prop="zfpcrAmount" label="授信额度范围" label-width="90px">
+      <el-form-item prop="AmountA"  label="授信额度范围" label-width="90px">
         <el-input
-          v-model="queryParams.a"
+          v-model="queryParams.AmountA"
           placeholder="请输授信额度"
           clearable
           size="small"
           maxlength="25"
           style="width: 190px"
-        /> -
+        /> 
+      </el-form-item>
+      <el-form-item>
+        -
+      </el-form-item>
+      <el-form-item prop="AmountB">
         <el-input
-          v-model="queryParams.b"
+          v-model="queryParams.AmountB"
           placeholder="请输授信额度"
           clearable
           size="small"
@@ -98,47 +103,47 @@
       <el-table-column label="融资产品" align="center" prop="zfpName" v-if="uncheckList.zfpName" show-overflow-tooltip/>
       <el-table-column label="企业名称" align="center" prop="scyName" v-if="uncheckList.scyName" show-overflow-tooltip/>
       <el-table-column label="企业代码" align="center" prop="scySocialCode" v-if="uncheckList.scySocialCode" show-overflow-tooltip/>
-      <el-table-column label="授信额度" align="center" prop="zfpcrAmount" show-overflow-tooltip v-if="uncheckList.zfpcrAmount"/>
+      <el-table-column label="授信额度"  align="center" prop="zfpcrAmount" show-overflow-tooltip v-if="uncheckList.zfpcrAmount" width="120"/>
       <el-table-column label="利率" align="center" prop="zfpcrRate" v-if="uncheckList.zfpcrRate" width="120" />
-      <el-table-column label="已分割额度"  align="center" prop="zfpcrDivisionAmount" v-if="uncheckList.zfpcrDivisionAmount"/>
-      <el-table-column label="已使用额度"  align="center" prop="zfiAmount" v-if="uncheckList.zfiAmount"/>
-      <el-table-column label="可用额度"  align="center" prop="usableAmount" v-if="uncheckList.usableAmount"/>
+      <el-table-column label="已分割额度"   align="center" prop="zfpcrDivisionAmount" v-if="uncheckList.zfpcrDivisionAmount" width="120"/>
+      <el-table-column label="已使用额度"   align="center" prop="zfiAmount" v-if="uncheckList.zfiAmount" width="120"/>
+      <el-table-column label="可用额度"   align="center" prop="usableAmount" v-if="uncheckList.usableAmount" width="120"/>
       <el-table-column label="开始日期" align="center" prop="zfpcrStartDate" v-if="uncheckList.zfpcrStartDate" show-overflow-tooltip/>
       <el-table-column label="结束日期" align="center" prop="zfpcrEndDate" v-if="uncheckList.zfpcrEndDate" show-overflow-tooltip/>
       <el-table-column label="授信状态" :formatter="statusFormat" align="center" prop="zfpcrStatus" v-if="uncheckList.zfpcrStatus" show-overflow-tooltip/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="250">
         <template slot-scope="scope">
-          <!-- <el-button
-            type="text"
+          <el-button
             size="mini"
-            icon="el-icon-s-check"
-            @click="handleSubmit(scope.row)"
-            v-hasPermi="['invoice:accountFlow:approval']"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleEdit(scope.row)"
             v-if="scope.row.pafState != '01' && scope.row.pafState != '02'"
-          >提交审批</el-button>
+            v-hasPermi="['credit:line:edit']"
+          >修改</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-view"
             @click="handleRows(scope.row)"
-            v-hasPermi="['invoice:accountFlow:query']"
+            v-hasPermi="['credit:line:query']"
           >详情</el-button>
           <el-button
-            size="mini"
             type="text"
-            icon="el-icon-edit"
+            size="mini"
+            icon="el-icon-s-check"
             @click="handleUpdate(scope.row)"
-            v-if="scope.row.pafState != '01' && scope.row.pafState != '02'"
-            v-hasPermi="['invoice:accountFlow:update']"
-          >修改</el-button>
+            v-hasPermi="['credit:line:update']"
+            v-if="scope.row.zfpcrStatus == '00'"
+          >冻结</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-if="scope.row.pafState != '01' && scope.row.pafState != '02'"
-            v-hasPermi="['invoice:accountFlow:remove']"
-          >删除</el-button> -->
+            @click="handleUpdate(scope.row)"
+            v-if="scope.row.zfpcrStatus == '01'"
+            v-hasPermi="['credit:line:update']"
+          >解冻</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -154,7 +159,7 @@
 </template>
 
 <script>
-import { listCreditLine, getCreditLine, delCreditLine, addCreditLine, updateCreditLine} from "@/api/service/creditLine/creditLine";
+import { listCreditLine, getCreditLine, delCreditLine, addCreditLine, updateCreditLine,changeStatus} from "@/api/service/creditLine/creditLine";
 import Cookies from 'js-cookie'
 import { columnQuery, columnfilter } from "@/api/common/columnSetting";
 import ColumnSetting from "../../../components/Table/columnSetting.vue";
@@ -219,13 +224,12 @@ export default {
         zfpcrProfitSpare7: null,
         zfpcrProfitSpare8: null,
         zfpcrProfitSpare9: null,
+        sysName: null,
+        AmountA: null,
+        AmountB: null,
+        startTime: [],
+        endTime: []
       },
-      // queryParamsContract: {
-      //   pageNum: 1,
-      //   pageSize: 10,
-      //   cifId: null,
-      //   cifName: null
-      // },
       options: [],
       // 表单参数
       form: {},
@@ -315,8 +319,8 @@ export default {
     };
   },
   created() {
-    this.$set(this.queryParams, 'startTime',[this.parseTime(getPreMonthDay(getCurrentDateStr(),3), '{y}-{m}-{d}'), this.parseTime(getCurrentDateStr(), '{y}-{m}-{d}')]);
-    this.$set(this.queryParams, 'endTime',[this.parseTime(getPreMonthDay(getCurrentDateStr(),3), '{y}-{m}-{d}'), this.parseTime(getCurrentDateStr(), '{y}-{m}-{d}')]);
+    // this.$set(this.queryParams, 'startTime',[this.parseTime(getPreMonthDay(getCurrentDateStr(),3), '{y}-{m}-{d}'), this.parseTime(getCurrentDateStr(), '{y}-{m}-{d}')]);
+    // this.$set(this.queryParams, 'endTime',[this.parseTime(getPreMonthDay(getCurrentDateStr(),3), '{y}-{m}-{d}'), this.parseTime(getCurrentDateStr(), '{y}-{m}-{d}')]);
     this.getList();
     // this.getContractList();
     this.getDicts("zc_zfpcr_status").then(response => {
@@ -340,31 +344,12 @@ export default {
       listCreditLine(this.queryParams).then(response => {
         this.creditLineList = response.data.records;
         this.total = response.data.total;
-       this.loading = false
+        this.loading = false
       });
     },
-    handleInput(str) {
-        this.pafCollectionAmtFromat = amtformat(str,2, ".", ",");
-    },
-    stateFormat(row, column, cellValue) {
-      cellValue += "";
-      if (!cellValue.includes(".")) cellValue += ".";
-      return cellValue
-        .replace(/(\d)(?=(\d{3})+\.)/g, function($0, $1) {
-          return $1 + ",";
-        })
-        .replace(/\.$/, "");
-    },
-
-    changeCellStyle(row, column, rowIndex, columnIndex) {
-      if (row.column.label === "付款金额") {
-        return "font-weight: 700;"; // 修改的样式
-      } else {
-        return "";
-      }
-    },
+    
     rowKey(row) {
-      return row.pafId;
+      return row.zfpcrId;
     },
     //获取当前客户是否之前设置过列展示隐藏
     columnQuery() {
@@ -389,17 +374,12 @@ export default {
       }
       columnfilter(this.selfDom);
     },
-    
-       // 取消按钮
-       cancel() {
-         this.open = false;
-         this.custId = "";
-         this.ctmId = "";
-         this.customerList = [];
-         this.reset();
-       },
-    cancelDetail(){
-      this.openDetail = false;
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.custId = "";
+      this.ctmId = "";
+      this.customerList = [];
       this.reset();
     },
     // 表单重置
@@ -447,8 +427,6 @@ export default {
     resetQuery() {
       this.resetForm("queryForm");
       this.handleQuery();
-      this.getProjectList();
-      this.getContractList();
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
@@ -460,59 +438,48 @@ export default {
     statusFormat(row, column) {
       return this.selectDictLabel(this.statusOptions, row.zfpcrStatus);
     },
-    //合同信息
-    // getContractList(query) {
-    //   this.queryParamsContract.cifName = query;
-    //   listContract(this.queryParamsContract).then(response => {
-    //     this.contractList = response.rows;
-    //   });
-    //   //合同
-    //   this.$set(this.form, "pafContractId", "");
-    //   //客户名称
-    //   this.$set(this.form, "cciName", "");
-    // },
-    /**提交按钮操作 */
-    handleSubmit(row) {
-      console.log(row);
-      /* const wliId = row.wliId || this.ids;
-      const wliCompanyId = row.wliCompanyId;
-      const wliLeaveDay = row.wliLeaveDay; */
-      this.$confirm("是否确认提交付款审批?", "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      })
-        .then(function() {
-          return submitApproval(row);
-        })
-        .then(() => {
-          this.getList();
-          this.msgSuccess("提交审批成功");
-        })
-        .catch(() => {
-          this.$message({
-            type: "warning",
-            message: "已取消提交审批"
-          });
-        });
-    },
     /** 新增按钮操作 */
     handleAdd() {
       Cookies.set("/creditLine/addCreditLine/", this.$route.fullPath)
       this.$router.push("/creditLine/addCreditLine/");
     },
     /** 修改按钮操作 */
-    // handleUpdate(row) {
-    //   const pafId = row.pafId || this.ids;
-    //   Cookies.set("/paymentManage/editPaymentManage/" + pafId, this.$route.fullPath)
-    //   this.$router.push("/paymentManage/editPaymentManage/" + pafId);
-    // },
+    handleEdit(row) {
+      const zfpcrId = row.zfpcrId || this.ids;
+      const zfiAmount = row.zfiAmount;
+      const usableAmount = row.usableAmount;
+      Cookies.set("/creditLine/editCreditLine/" + zfpcrId + '/' + zfiAmount + '/' + usableAmount + '/', this.$route.fullPath)
+      this.$router.push("/creditLine/editCreditLine/" + zfpcrId + '/' + zfiAmount + '/' + usableAmount + '/');
+    },
     // /** 详情按钮操作 */
-    // handleRows(row) {
-    //   const pafId = row.pafId || this.ids;
-    //   Cookies.set("/paymentManage/detailPaymentManage/" + pafId, this.$route.fullPath)
-    //   this.$router.push("/paymentManage/detailPaymentManage/" + pafId);
-    // },
+    handleRows(row) {
+      const zfpcrId = row.zfpcrId || this.ids;
+      const zfiAmount = row.zfiAmount;
+      const usableAmount = row.usableAmount;
+      Cookies.set("/creditLine/detailCreditLine/" + zfpcrId + '/' + zfiAmount + '/' + usableAmount + '/', this.$route.fullPath)
+      this.$router.push("/creditLine/detailCreditLine/" + zfpcrId + '/' + zfiAmount + '/' + usableAmount + '/',);
+    },
+    /** 冻结/解冻按钮操作 */
+    handleUpdate(row) {
+      let text = row.zfpcrStatus === "0" ? "解冻" : "冻结";
+      this.$confirm(
+        "确认要" + text + '此数据项吗?',
+        "警告",
+        {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+        }
+      )
+      .then(function() {
+        return changeStatus(row.zfpcrId, row.zfiAmount,row.zfpcrStatus);
+      })
+      .then(() => {
+        this.getList();
+        this.msgSuccess(text + "成功");
+      })
+      
+    },
     /** 提交按钮 */
     submitForm(state) {
       this.$refs["form"].validate(valid => {
@@ -554,59 +521,26 @@ export default {
         }
       });
     },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const pafIds = row.pafId || this.ids;
-      this.$confirm("是否确认删除此数据项?", "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      })
-        .then(function() {
-          return delFlow(pafIds);
-        })
-        .then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
-        })
-        .catch(() => {
-          this.$message({
-            type: "warning",
-            message: "已取消删除"
-          });
-        });
+    /* 金额格式化 */
+    moneyFormat(row, column, cellValue) {
+      if(cellValue){
+        cellValue += "";
+        if (!cellValue.includes(".")) cellValue += ".";
+        return cellValue
+          .replace(/(\d)(?=(\d{3})+\.)/g, function($0, $1) {
+            return $1 + ",";
+          })
+          .replace(/\.$/, "");
+      }
     },
-    /** 导出按钮操作 */
-    handleExport(row) {
-      // const pafIds = row.pafId || this.ids;
-      // if (pafIds.length > 0) {
-        const loading = this.$loading({
-          lock: true,
-          text: "Loading",
-          spinner: "el-icon-loading",
-          background: "rgba(0, 0, 0, 0.7)"
-        });
-        this.download(
-          "invoice/accountFlow/export",
-          {
-            ...this.queryParams
-          },
-          `付款.xls`
-        );
-        setTimeout(() => {
-          loading.close();
-          this.create = false;
-          this.end = true;
-          this.active = 1;
-        }, 2000);
-      // } else {
-      //   this.$message({
-      //     message: "请选择付款项!",
-      //     type: "warning"
-      //   });
-      //   return;
-      // }
-      this.getList();
+    /* 修改表格样式 */
+    changeCellStyle(row, column, rowIndex, columnIndex) {
+      if (row.column.label === "授信额度" || row.column.label === "已分割额度" || row.column.label === "已使用额度"
+      || row.column.label === "可用额度") {
+        return "font-weight: 700;"; // 修改的样式
+      } else {
+        return "";
+      }
     },
     /* //  将数字金额转换为大写金额 */
     smallToBig(money) {

+ 707 - 0
front-vue/src/views/service/creditLine/detailCreditLine.vue

@@ -0,0 +1,707 @@
+<template>
+  <div class="app-container">
+    <el-form ref="form" :label-position="labelPosition" :model="form" :rules="rules" label-width="106px" disabled>
+      <el-divider content-position="left">授信信息</el-divider>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="资金方:" prop="zfpcrFundSide">
+            <el-select v-model="form.zfpcrFundSide" style="width : 284px" clearable>
+              <el-option
+                v-for="(item,index) in zfCompanyList"
+                :key="index"
+                :label="item.scyName"
+                :value="item.scyId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="融资产品:" prop="zfpcrProductId">
+            <el-select v-model="form.zfpcrProductId" style="width : 284px" clearable>
+              <el-option
+                v-for="(item,index) in financeProductList"
+                :key="index"
+                :label="item.zfpName"
+                :value="item.zfpId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="授信企业名称:" prop="zfpcrCompanyId">
+            <el-select v-model="form.zfpcrCompanyId" style="width : 284px" clearable>
+              <el-option
+                v-for="(item,index) in hxCompanyList"
+                :key="index"
+                :label="item.scyName"
+                :value="item.scyId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="原授信额度:" prop="zfpcrOldAmount" >
+            <el-input v-model="form.zfpcrOldAmount"   style="width:284px" disabled>
+              <template slot="append">元</template>
+            </el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="已用授信额度:" prop="zfiAmount" >
+            <el-input v-model="form.zfiAmount"   style="width:284px" disabled>
+              <template slot="append">元</template>
+            </el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="剩余授信额度:" prop="usableAmount" >
+            <el-input v-model="form.usableAmount"   style="width:284px" disabled>
+              <template slot="append">元</template>
+            </el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="授信额度:" prop="zfpcrAmount">
+            <!-- <el-tooltip class="item" effect="light" :content= "zfpcrAmountFormat" placement="top-start"> -->
+            <el-input v-model="form.zfpcrAmount" placeholder="请输入授信额度"  style="width:284px">
+              <template slot="append">元</template>
+            </el-input>
+            <!-- </el-tooltip> -->
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="利率:" prop="zfpcrRate">
+          <el-input v-model="form.zfpcrRate" placeholder="请输入利率" style="width:284px">
+            <template slot="append">%起</template>
+          </el-input>
+        </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="有效期:" prop="zfpcrDateType">
+            <el-radio-group v-model="form.zfpcrDateType" size="medium">
+              <el-radio-button  v-for="(dict,index) in dateTypeOptions" :key="index" :label="dict.dictValue" border>{{dict.dictLabel}}</el-radio-button>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="有效期范围:" prop="dateTime" v-if="this.form.zfpcrDateType == '1'">
+            <el-date-picker  
+              v-model="form.dateTime"
+              clearable
+              style="width: 284px"
+              unlink-panels
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="-"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期">
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="融资网点:" prop="zfpcrAddress">
+            <el-input v-model="form.zfpcrAddress" placeholder="请输入融资网点" style="width:284px"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="是否收取手续费:" prop="zfpcrCharge" label-width="113px">
+            <el-radio-group v-model="form.zfpcrCharge" size="medium" >
+              <el-radio-button  v-for="(dict,index) in chargeOptions" :key="index" :label="dict.dictValue" border>{{dict.dictLabel}}</el-radio-button>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="平台服务费收取费率:" prop="zfpcrChargeRate" label-width="139px" v-if="this.form.zfpcrCharge == '1'">
+          <el-input v-model="form.zfpcrChargeRate" placeholder="请输入平台服务费收取费率" style="width:284px">
+            <template slot="append">%</template>
+          </el-input>
+        </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="核心企业还款账户账号:" prop="zfpcrAccount" label-width="142px">
+            <el-autocomplete
+              style="width:286px"
+              class="inline-input"
+              v-model="form.zfpcrAccount"
+              :fetch-suggestions="querySearch"
+              placeholder="核心企业还款账户账号"
+              ></el-autocomplete>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="融资放款方式:" prop="zfpcrLoanType">
+            <el-select v-model="form.zfpcrLoanType" placeholder="请选择状态" clearable style="width : 284px" clearable>
+              <el-option
+                v-for="dict in loanTypeOptions"
+                :key="dict.dictValue"
+                :label="dict.dictLabel"
+                :value="dict.dictValue"
+              />
+            </el-select>
+        </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="记账簿托管方式:" prop="zfpcrBookkeepingType" label-width="113px">
+            <el-select v-model="form.zfpcrBookkeepingType" placeholder="请选择状态" clearable style="width : 284px" clearable>
+              <el-option
+                v-for="dict in bookkeepingTypeOptions"
+                :key="dict.dictValue"
+                :label="dict.dictLabel"
+                :value="dict.dictValue"
+              />
+            </el-select>
+        </el-form-item>
+        </el-col>
+      </el-row>
+      <el-divider content-position="left">关联合同</el-divider>
+      <el-form-item prop="zfqcrContractId" style="margin-left: 100px" >
+        <!-- <el-button size="mini" type="primary" @click="openTicket">选择合同</el-button>
+        <el-button size="mini" @click="deleteTicekt">清空全部</el-button> -->
+        <el-table :data="ticketList" style="width: 1100px">
+          <el-table-column label="合同模板编号"  align="center"  prop="zfcNumber" show-overflow-tooltip />
+          <el-table-column label="合同模板名称"  align="center"  prop="zfcName"   />
+          <el-table-column label="签署主体"  align="center"  prop="zfcSubject"    />
+          <el-table-column label="合同id"  align="center"  prop="zfcId" v-if="false"  />
+          <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="250">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="handleDelete(scope.$index, ticketList)"
+              >删除</el-button>
+            </template>
+          </el-table-column> -->
+        </el-table>
+      </el-form-item>
+    </el-form>
+
+    <!-- 合同信息 -->
+    <el-dialog :title="title" :visible.sync="open" width="1120px" append-to-body>
+      <el-form :model="queryParamsContract"  ref="formQuery"  :inline="true"  label-width="68px"  style="margin-bottom: -21px">
+        <el-form-item label="合同模板编号" prop="zfcNumber">
+          <el-input
+            v-model="queryParamsContract.zfcNumber"
+            placeholder="请输入合同模板编号"
+            clearable
+            size="small"
+            maxlength="11"
+            @keyup.enter.native="handleQuerys"/>
+        </el-form-item>
+        <el-form-item label="合同模板名称" prop="zfcName">
+          <el-input
+            v-model="queryParamsContract.zfcName"
+            placeholder="请输入合同模板名称"
+            clearable
+            size="small"
+            maxlength="11"
+            @keyup.enter.native="handleQuerys"/>
+        </el-form-item>
+        <el-form-item>
+          <el-button
+            type="cyan"
+            icon="el-icon-search"
+            size="mini"
+            @click="handleQuerys"
+            >搜索</el-button>
+          <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys"
+            >重置</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table :data="contractList"
+        ref="tableContract"
+        class="single-select-table"
+        @selection-change="handleSelectionChange" 
+        :row-key="rowkey">
+        <el-table-column
+          type="selection"
+          :reserve-selection="true"
+          width="50"
+          align="center"/>
+        <el-table-column label="序号" type="index" width="50" align="center">
+          <template slot-scope="scope">
+            <span>{{ (queryParamsContract.pageNum - 1) * queryParamsContract.pageSize + scope.$index + 1}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="合同模板编号"  align="center"  prop="zfcNumber" show-overflow-tooltip />
+          <el-table-column label="合同模板名称"  align="center"  prop="zfcName"   />
+          <el-table-column label="签署主体"  align="center"  prop="zfcSubject"    />
+      </el-table>
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="queryParamsContract.pageNum"
+        :limit.sync="queryParamsContract.pageSize"
+        @pagination="getContractList" />
+      <span slot="footer" class="dialog-footer">
+        <el-button size="mini" @click="cancelTicket">取消</el-button>
+        <el-button size="mini" type="primary" @click="closeTicket">确认</el-button>
+      </span>
+    </el-dialog>
+      <!-- <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div> -->
+  </div>
+</template>
+
+<script>
+import { listCreditLine, getCreditLine, delCreditLine, addCreditLine, updateCreditLine} from "@/api/service/creditLine/creditLine";
+import { listFinanceProduct } from "@/api/common/financeProduct"
+import { listCompany } from "@/api/common/company"
+import { listCompanyAcc } from "@/api/common/companyAcc"
+export default {
+  name: "detailCreditLine",
+  components: {},
+  data() {
+    return {
+      //金额展示
+      zfpcrAmountFormat: '',
+      //还款账户搜所
+      restaurants: [],
+      labelPosition: 'top',
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 企业授信额度表格数据
+      creditLineList: [],
+      //资金方数据
+      zfCompanyList: [],
+      //融资产品数据
+      financeProductList: [],
+      //核心企业数据
+      hxCompanyList: [],
+      //核心企业还款账户数据:
+      accList: [],
+      //合同表格数据
+      ticketList: [],
+      //合同列表数据
+      contractList: [],
+      //有效期数据字典
+      dateTypeOptions: [],
+      //是否收取手续费数据字典
+      chargeOptions: [],
+      //融资放款方式数据字典
+      loanTypeOptions: [],
+      //记账簿托管方式数据字典
+      bookkeepingTypeOptions: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        zfpcrProductId: null,
+        zfpcrCompanyId: null,
+        zfpcrType: null,
+        zfpcrAmount: null,
+        zfpcrRate: null,
+        zfpcrDivisionAmount: null,
+        zfpcrDateType: null,
+        zfpcrStartDate: null,
+        zfpcrEndDate: null,
+        zfpcrAddress: null,
+        zfpcrCharge: null,
+        zfpcrChargeRate: null,
+        zfpcrAccount: null,
+        zfpcrLoanType: null,
+        zfpcrBookkeepingType: null,
+        zfpcrStatus: null,
+        zfpcrProfitSpare1: null,
+        zfpcrProfitSpare2: null,
+        zfpcrProfitSpare3: null,
+        zfpcrProfitSpare4: null,
+        zfpcrProfitSpare5: null,
+        zfpcrProfitSpare6: null,
+        zfpcrProfitSpare7: null,
+        zfpcrProfitSpare8: null,
+        zfpcrProfitSpare9: null,
+      },
+      queryParamsContract: {
+        pageNum: 1,
+        pageSize: 10,
+        zfcId: null,
+        zfcName: null,
+        zfcNumber: null,
+        zfcManagementId: null
+      },
+      // 表单参数
+      form: {
+        zfpcrDateType: '0',
+        zfpcrCharge: '1'
+      },
+      // 表单校验
+      rules: {
+        zfpcrFundSide: [
+          { required: true, message: "资金方不能为空", trigger: ["blur", "change"] }
+        ],
+        zfpcrProductId: [
+          { required: true, message: "融资产品不能为空", trigger: ["blur", "change"] }
+        ],
+        zfpcrCompanyId: [
+          { required: true, message: "授信企业名称不能为空", trigger: ["blur", "change"] }
+        ],
+        zfpcrAmount: [
+          { required: true, message: "授信额度不能为空", trigger: ["blur", "change"] },
+          {
+            pattern: /^[0-9][0-9]{0,7}$|^[1-9][0-9]{0,7}[.]\d{1,2}$/,
+            message: "请输入正确的额度",
+            trigger: "change",
+          },
+        ],
+        zfpcrRate: [
+          { required: true, message: "利率不能为空", trigger: ["blur", "change"] },
+          {
+            pattern: /^([0-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/,
+            message: "请输入正确的利率",
+            trigger: "change",
+          }, 
+        ],
+        dateTime: [
+          { required: true, message: "有效期范围不能为空", trigger: ["blur", "change"] }
+        ],
+        zfpcrChargeRate: [
+          { required: true, message: "平台服务费收取费率不能为空", trigger: ["blur", "change"] },
+          {
+            pattern: /^([0-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/,
+            message: "请输入正确的平台服务费收取费率",
+            trigger: "change",
+          },
+        ],
+        zfpcrAccount: [
+          { required: true, message: "核心企业还款账户账号", trigger: ["blur", "change"] }
+        ],
+        zfpcrLoanType: [
+          { required: true, message: "融资放款方式不能为空", trigger: ["blur", "change"] }
+        ],
+        zfpcrBookkeepingType: [
+          { required: true, message: "记账簿托管方式不能为空", trigger: ["blur", "change"] }
+        ],
+      }
+    };
+  },
+  created() {
+    const zfpcrId = this.$route.params && this.$route.params.zfpcrId;
+    const zfiAmount = this.$route.params && this.$route.params.zfiAmount;
+    const usableAmount = this.$route.params && this.$route.params.usableAmount;
+    getCreditLine(zfpcrId).then((response) => {
+      this.ticketList = response.data.ticketList;
+                   /* 查询资方 */
+      //公司类型
+      const scyType = '03';
+      //公司id
+      const scyId = response.data.list[0].zfpManagementId;
+      listCompany(scyType,scyId).then((response) =>{
+        this.zfCompanyList  = response.data
+      });
+                   /* 查询融资产品 */
+      //产品id
+      const zfpcrProductId = response.data.list[0].zfpcrProductId;
+      listFinanceProduct(zfpcrProductId).then((response) =>{
+        this.financeProductList  = response.data
+      });
+                   /* 查询授信企业名称 */
+      //公司类型
+      const scyTypes = '01';
+      //公司id
+      const scyIds = response.data.list[0].zfpcrCompanyId;
+      listCompany(scyTypes,scyIds).then((response) =>{
+        this.hxCompanyList = response.data
+      });
+                  /* 查询还款账户 */
+      //银行卡号
+      const zfpcrAccount = response.data.list[0].zfpcrAccount;
+      listCompanyAcc(zfpcrAccount).then((response) =>{
+        this.accList  = response.data
+        this.restaurants = response.data;
+      }).then(()=>{
+        this.form = response.data.list[0]
+        this.form.zfpcrFundSide = this.zfCompanyList[0];
+        this.$set(this.form, "dateTime", [response.data.list[0].zfpcrStartDate, response.data.list[0].zfpcrEndDate])
+        this.$set(this.form, "zfiAmount", zfiAmount);
+        this.$set(this.form, "usableAmount", usableAmount);
+      });   
+    });
+    // this.getZfCompany();
+    // this.getFinanceProduct();
+    // this.getHxCompany();
+    // this.getCompanyAcc();
+    this.getDicts("zc_zfpcr_date_type").then(response => {
+      this.dateTypeOptions = response.data;
+    });
+    this.getDicts("zc_zfpcr_charge").then(response => {
+      this.chargeOptions = response.data;
+    });
+    this.getDicts("zc_zfpcr_loan_type").then(response => {
+      this.loanTypeOptions = response.data;
+    });
+    this.getDicts("zc_zfpcr_bookkeeping_type").then(response => {
+      this.bookkeepingTypeOptions = response.data;
+    });
+  },
+  methods: {
+    /* 资方公司 */
+    getZfCompany(){
+      //公司类型
+      const scyType = '03'
+      listCompany(scyType).then((response) =>{
+        this.zfCompanyList  = response.data
+      })
+    },
+    /* 融资产品 */
+    getFinanceProduct(){
+      listFinanceProduct().then((response) =>{
+        this.financeProductList  = response.data
+      })
+    },
+    /* 授信企业 */
+    getHxCompany(){
+      //公司类型
+      const scyTypes = '01'
+      listCompany(scyTypes).then((response) =>{
+        this.hxCompanyList  = response.data
+      })
+    },
+    /* 核心企业还款账户账号 */
+    getCompanyAcc(){
+      listCompanyAcc().then((response) =>{
+        this.accList  = response.data
+        this.restaurants = response.data;
+      })
+    },
+    /* 账户模糊搜所 */
+    querySearch(queryString, cb) {
+        var restaurants = this.restaurants;
+        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
+        // 调用 callback 返回建议列表的数据
+        cb(results);
+      },
+    createFilter(queryString) {
+      return (restaurant) => {
+        return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+      };
+    },
+    /* 合同相关 */
+    //合同列表
+    getContractList() {
+      this.queryParamsContract.zfcManagementId = this.form.zfpcrFundSide
+      listContract(this.queryParamsContract).then((response) => {
+        this.contractList = response.data.records;
+        this.selectChecked();
+        this.total = response.data.total;
+      });
+    },
+    //打开合同选择列表
+    openTicket() {
+      this.getContractList()
+      this.open = true
+      this.title = "合同信息"
+    },
+    selectChecked() {
+      this.ticketList.forEach((item) => {
+        this.contractList.forEach(row => {
+          if (row.zfcId == item.zfcId) {
+            this.$nextTick(() => {
+              this.$refs.tableContract && this.$refs.tableContract.toggleRowSelection(row, true);
+            })
+          }
+        });
+      });
+    },
+    /* 多选框跨页 */
+    rowkey(row) {
+      return row.zfcId;
+    },
+    // 多选框选中数据
+    handleSelectionChange(val) {
+        this.chooseTicket = val
+    },
+    // 确认选择
+    closeTicket() {
+        if(this.chooseTicket.length > 0){
+          this.ticketList = this.chooseTicket
+          this.$set(this.form, "zfcName", this.ticketList[0].zfcName);
+          this.$set(this.form, "zfcNumber", this.ticketList[0].zfcNumber);
+          this.$set(this.form, "zfcSubject", this.ticketList[0].zfcSubject);
+          this.$set(this.form, "zfcId", this.ticketList[0].zfcId);
+          this.open = false
+      }else{
+        this.$message({
+          message: '请选择合同',
+          type: 'warning'
+        });
+      }
+    },
+    //取消选择合同按钮
+    cancelTicket(){
+      this.ticketList = [];
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+      this.open = false;
+    },
+    /** 清空选择发票信息 */
+    deleteTicekt() {
+      this.ticketList = []
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+    },
+    /* 删除按钮 */
+    handleDelete(index, rows) {
+      rows.splice(index, 1);
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+      this.selectChecked();
+    },
+    onSelectAll() {
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+    },
+    handleQuerys() {
+      this.queryParamsContract.pageNum = 1;
+      this.getContractList();
+    },
+    resetQuerys() {
+      this.resetForm("formQuery");
+      this.handleQuerys();
+    },
+    /** 提交按钮 */
+    submitForm() {
+      // if(this.ticketList == undefined || this.ticketList.length == 0){
+      //   this.$message({
+      //       message: '请选择合同',
+      //       type: 'warning'
+      //     });
+      //     return;
+      // }
+      this.$refs["form"].validate(valid => {
+        this.form.ticketList = this.ticketList;
+        if (valid) {
+          const loading = this.$loading({
+            lock: true,
+            text: "Loading",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
+          addCreditLine(this.form).then(response => {
+            this.msgSuccess("新增成功");
+            this.$store.dispatch("tagsView/delView", this.$route);
+            this.$router.go(-1);
+          }).catch((response) => {
+              loading.close();
+          });
+        }
+      });
+    },
+    /* 金额展示 */
+    handleInput(str) {
+        this.zfpcrAmountFormat = amtformat(str,2, ".", ",");
+    },
+    /* //  将数字金额转换为大写金额 */
+    smallToBig(money) {
+      //  将数字金额转换为大写金额
+      var cnNums = new Array(
+        "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" ); //汉字的数字
+      var cnIntRadice = new Array("", "拾", "佰", "仟"); //基本单位
+      var cnIntUnits = new Array("", "万", "亿", "兆"); //对应整数部分扩展单位
+      var cnDecUnits = new Array("角", "分", "毫", "厘"); //对应小数部分单位
+      var cnInteger = "整"; //整数金额时后面跟的字符
+      var cnIntLast = "元"; //整数完以后的单位
+      //最大处理的数字
+      var maxNum = 999999999999999.9999;
+      var integerNum; //金额整数部分
+      var decimalNum; //金额小数部分
+      //输出的中文金额字符串
+      var chineseStr = "";
+      var parts; //分离金额后用的数组,预定义
+      if (money == "" || money == null || money == undefined) {
+        return "零元零角零分";
+      }
+      money = parseFloat(money);
+      if (money >= maxNum) {
+        //超出最大处理数字
+        return "超出最大处理数字";
+      }
+      if (money == 0) {
+        chineseStr = cnNums[0] + cnIntLast + cnInteger;
+        return chineseStr;
+      }
+      //四舍五入保留两位小数,转换为字符串
+      money = Math.round(money * 100).toString();
+      integerNum = money.substr(0, money.length - 2);
+      decimalNum = money.substr(money.length - 2);
+      //获取整型部分转换
+      if (parseInt(integerNum, 10) > 0) {
+        var zeroCount = 0;
+        var IntLen = integerNum.length;
+        for (var i = 0; i < IntLen; i++) {
+          var n = integerNum.substr(i, 1);
+          var p = IntLen - i - 1;
+          var q = p / 4;
+          var m = p % 4;
+          if (n == "0") {
+            zeroCount++;
+          } else {
+            if (zeroCount > 0) {
+              chineseStr += cnNums[0];
+            }
+            //归零
+            zeroCount = 0;
+            chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
+          }
+          if (m == 0 && zeroCount < 4) {
+            chineseStr += cnIntUnits[q];
+          }
+        }
+        chineseStr += cnIntLast;
+      }
+      //小数部分
+      if (decimalNum != "") {
+        var decLen = decimalNum.length;
+        for (var i = 0; i < decLen; i++) {
+          var n = decimalNum.substr(i, 1);
+          if (n != "0") {
+            chineseStr += cnNums[Number(n)] + cnDecUnits[i];
+          }
+        }
+      }
+      if (chineseStr == "") {
+        chineseStr += cnNums[0] + cnIntLast + cnInteger;
+      } else if (decimalNum == "" || /^0*$/.test(decimalNum)) {
+        chineseStr += cnInteger;
+      }
+      return chineseStr;
+    },
+  },
+};
+</script>
+<style>
+.single-select-table thead .el-table-column--selection .cell {
+  display: none;
+}
+
+</style>

+ 711 - 0
front-vue/src/views/service/creditLine/editCreditLine.vue

@@ -0,0 +1,711 @@
+<template>
+  <div class="app-container">
+    <el-form ref="form" :label-position="labelPosition" :model="form" :rules="rules" label-width="106px">
+      <el-divider content-position="left">授信信息</el-divider>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="资金方:" prop="zfpcrFundSide">
+            <el-select v-model="form.zfpcrFundSide" style="width : 284px" clearable>
+              <el-option
+                v-for="(item,index) in zfCompanyList"
+                :key="index"
+                :label="item.scyName"
+                :value="item.scyId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="融资产品:" prop="zfpcrProductId">
+            <el-select v-model="form.zfpcrProductId" style="width : 284px" clearable>
+              <el-option
+                v-for="(item,index) in financeProductList"
+                :key="index"
+                :label="item.zfpName"
+                :value="item.zfpId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="授信企业名称:" prop="zfpcrCompanyId">
+            <el-select v-model="form.zfpcrCompanyId" style="width : 284px" clearable>
+              <el-option
+                v-for="(item,index) in hxCompanyList"
+                :key="index"
+                :label="item.scyName"
+                :value="item.scyId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="原授信额度:" prop="zfpcrOldAmount" >
+            <el-input v-model="form.zfpcrOldAmount"   style="width:284px" disabled>
+              <template slot="append">元</template>
+            </el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="已用授信额度:" prop="zfiAmount" >
+            <el-input v-model="form.zfiAmount"   style="width:284px" disabled>
+              <template slot="append">元</template>
+            </el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="剩余授信额度:" prop="usableAmount" >
+            <el-input v-model="form.usableAmount"   style="width:284px" disabled>
+              <template slot="append">元</template>
+            </el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="授信额度:" prop="zfpcrAmount">
+            <!-- <el-tooltip class="item" effect="light" :content= "zfpcrAmountFormat" placement="top-start"> -->
+            <el-input v-model="form.zfpcrAmount" placeholder="请输入授信额度"  style="width:284px">
+              <template slot="append">元</template>
+            </el-input>
+            <!-- </el-tooltip> -->
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="利率:" prop="zfpcrRate">
+          <el-input v-model="form.zfpcrRate" placeholder="请输入利率" style="width:284px">
+            <template slot="append">%起</template>
+          </el-input>
+        </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="有效期:" prop="zfpcrDateType">
+            <el-radio-group v-model="form.zfpcrDateType" size="medium">
+              <el-radio-button  v-for="(dict,index) in dateTypeOptions" :key="index" :label="dict.dictValue" border>{{dict.dictLabel}}</el-radio-button>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="有效期范围:" prop="dateTime" v-if="this.form.zfpcrDateType == '1'">
+            <el-date-picker  
+              v-model="form.dateTime"
+              clearable
+              style="width: 284px"
+              unlink-panels
+              value-format="yyyy-MM-dd"
+              type="daterange"
+              range-separator="-"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期">
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="融资网点:" prop="zfpcrAddress">
+            <el-input v-model="form.zfpcrAddress" placeholder="请输入融资网点" style="width:284px"/>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="是否收取手续费:" prop="zfpcrCharge" label-width="113px">
+            <el-radio-group v-model="form.zfpcrCharge" size="medium" >
+              <el-radio-button  v-for="(dict,index) in chargeOptions" :key="index" :label="dict.dictValue" border>{{dict.dictLabel}}</el-radio-button>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="平台服务费收取费率:" prop="zfpcrChargeRate" label-width="139px" v-if="this.form.zfpcrCharge == '1'">
+          <el-input v-model="form.zfpcrChargeRate" placeholder="请输入平台服务费收取费率" style="width:284px">
+            <template slot="append">%</template>
+          </el-input>
+        </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="核心企业还款账户账号:" prop="zfpcrAccount" label-width="142px">
+            <el-autocomplete
+              style="width:286px"
+              class="inline-input"
+              v-model="form.zfpcrAccount"
+              :fetch-suggestions="querySearch"
+              placeholder="核心企业还款账户账号"
+              ></el-autocomplete>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="融资放款方式:" prop="zfpcrLoanType">
+            <el-select v-model="form.zfpcrLoanType" placeholder="请选择状态" clearable style="width : 284px" clearable>
+              <el-option
+                v-for="dict in loanTypeOptions"
+                :key="dict.dictValue"
+                :label="dict.dictLabel"
+                :value="dict.dictValue"
+              />
+            </el-select>
+        </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="记账簿托管方式:" prop="zfpcrBookkeepingType" label-width="113px">
+            <el-select v-model="form.zfpcrBookkeepingType" placeholder="请选择状态" clearable style="width : 284px" clearable>
+              <el-option
+                v-for="dict in bookkeepingTypeOptions"
+                :key="dict.dictValue"
+                :label="dict.dictLabel"
+                :value="dict.dictValue"
+              />
+            </el-select>
+        </el-form-item>
+        </el-col>
+      </el-row>
+      <el-divider content-position="left">关联合同</el-divider>
+      <el-form-item prop="zfqcrContractId" style="margin-left: 100px" >
+        <el-button size="mini" type="primary" @click="openTicket">选择合同</el-button>
+        <el-button size="mini" @click="deleteTicekt">清空全部</el-button>
+        <el-table :data="ticketList" style="width: 1100px">
+          <el-table-column label="合同模板编号"  align="center"  prop="zfcNumber" show-overflow-tooltip />
+          <el-table-column label="合同模板名称"  align="center"  prop="zfcName"   />
+          <el-table-column label="签署主体"  align="center"  prop="zfcSubject"    />
+          <el-table-column label="合同id"  align="center"  prop="zfcId" v-if="false"  />
+          <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="250">
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="handleDelete(scope.$index, ticketList)"
+              >删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </el-form-item>
+    </el-form>
+
+    <!-- 合同信息 -->
+    <el-dialog :title="title" :visible.sync="open" width="1120px" append-to-body>
+      <el-form :model="queryParamsContract"  ref="formQuery"  :inline="true"  label-width="68px"  style="margin-bottom: -21px">
+        <el-form-item label="合同模板编号" prop="zfcNumber">
+          <el-input
+            v-model="queryParamsContract.zfcNumber"
+            placeholder="请输入合同模板编号"
+            clearable
+            size="small"
+            maxlength="11"
+            @keyup.enter.native="handleQuerys"/>
+        </el-form-item>
+        <el-form-item label="合同模板名称" prop="zfcName">
+          <el-input
+            v-model="queryParamsContract.zfcName"
+            placeholder="请输入合同模板名称"
+            clearable
+            size="small"
+            maxlength="11"
+            @keyup.enter.native="handleQuerys"/>
+        </el-form-item>
+        <el-form-item>
+          <el-button
+            type="cyan"
+            icon="el-icon-search"
+            size="mini"
+            @click="handleQuerys"
+            >搜索</el-button>
+          <el-button icon="el-icon-refresh" size="mini" @click="resetQuerys"
+            >重置</el-button>
+        </el-form-item>
+      </el-form>
+      <el-table :data="contractList"
+        ref="tableContract"
+        class="single-select-table"
+        @selection-change="handleSelectionChange" 
+        :row-key="rowkey">
+        <el-table-column
+          type="selection"
+          :reserve-selection="true"
+          width="50"
+          align="center"/>
+        <el-table-column label="序号" type="index" width="50" align="center">
+          <template slot-scope="scope">
+            <span>{{ (queryParamsContract.pageNum - 1) * queryParamsContract.pageSize + scope.$index + 1}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="合同模板编号"  align="center"  prop="zfcNumber" show-overflow-tooltip />
+          <el-table-column label="合同模板名称"  align="center"  prop="zfcName"   />
+          <el-table-column label="签署主体"  align="center"  prop="zfcSubject"    />
+      </el-table>
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="queryParamsContract.pageNum"
+        :limit.sync="queryParamsContract.pageSize"
+        @pagination="getContractList" />
+      <span slot="footer" class="dialog-footer">
+        <el-button size="mini" @click="cancelTicket">取消</el-button>
+        <el-button size="mini" type="primary" @click="closeTicket">确认</el-button>
+      </span>
+    </el-dialog>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <!-- <el-button @click="cancel">取 消</el-button> -->
+      </div>
+  </div>
+</template>
+
+<script>
+import { listCreditLine, getCreditLine, delCreditLine, addCreditLine, updateCreditLine} from "@/api/service/creditLine/creditLine";
+import { listFinanceProduct } from "@/api/common/financeProduct"
+import { listCompany } from "@/api/common/company"
+import { listCompanyAcc } from "@/api/common/companyAcc"
+export default {
+  name: "editCreditLine",
+  components: {},
+  data() {
+    return {
+      //存储授信额度
+      amount: '',
+      //金额展示
+      zfpcrAmountFormat: '',
+      //还款账户搜所
+      restaurants: [],
+      labelPosition: 'top',
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 企业授信额度表格数据
+      creditLineList: [],
+      //资金方数据
+      zfCompanyList: [],
+      //融资产品数据
+      financeProductList: [],
+      //核心企业数据
+      hxCompanyList: [],
+      //核心企业还款账户数据:
+      accList: [],
+      //合同表格数据
+      ticketList: [],
+      //合同列表数据
+      contractList: [],
+      //有效期数据字典
+      dateTypeOptions: [],
+      //是否收取手续费数据字典
+      chargeOptions: [],
+      //融资放款方式数据字典
+      loanTypeOptions: [],
+      //记账簿托管方式数据字典
+      bookkeepingTypeOptions: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        zfpcrProductId: null,
+        zfpcrCompanyId: null,
+        zfpcrType: null,
+        zfpcrAmount: null,
+        zfpcrRate: null,
+        zfpcrDivisionAmount: null,
+        zfpcrDateType: null,
+        zfpcrStartDate: null,
+        zfpcrEndDate: null,
+        zfpcrAddress: null,
+        zfpcrCharge: null,
+        zfpcrChargeRate: null,
+        zfpcrAccount: null,
+        zfpcrLoanType: null,
+        zfpcrBookkeepingType: null,
+        zfpcrStatus: null,
+        zfpcrProfitSpare1: null,
+        zfpcrProfitSpare2: null,
+        zfpcrProfitSpare3: null,
+        zfpcrProfitSpare4: null,
+        zfpcrProfitSpare5: null,
+        zfpcrProfitSpare6: null,
+        zfpcrProfitSpare7: null,
+        zfpcrProfitSpare8: null,
+        zfpcrProfitSpare9: null,
+      },
+      queryParamsContract: {
+        pageNum: 1,
+        pageSize: 10,
+        zfcId: null,
+        zfcName: null,
+        zfcNumber: null,
+        zfcManagementId: null
+      },
+      // 表单参数
+      form: {
+        zfpcrDateType: '0',
+        zfpcrCharge: '1'
+      },
+      // 表单校验
+      rules: {
+        zfpcrFundSide: [
+          { required: true, message: "资金方不能为空", trigger: ["blur", "change"] }
+        ],
+        zfpcrProductId: [
+          { required: true, message: "融资产品不能为空", trigger: ["blur", "change"] }
+        ],
+        zfpcrCompanyId: [
+          { required: true, message: "授信企业名称不能为空", trigger: ["blur", "change"] }
+        ],
+        zfpcrAmount: [
+          { required: true, message: "授信额度不能为空", trigger: ["blur", "change"] },
+          {
+            pattern: /^[0-9][0-9]{0,7}$|^[1-9][0-9]{0,7}[.]\d{1,2}$/,
+            message: "请输入正确的额度",
+            trigger: "change",
+          },
+        ],
+        zfpcrRate: [
+          { required: true, message: "利率不能为空", trigger: ["blur", "change"] },
+          {
+            pattern: /^([0-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/,
+            message: "请输入正确的利率",
+            trigger: "change",
+          }, 
+        ],
+        dateTime: [
+          { required: true, message: "有效期范围不能为空", trigger: ["blur", "change"] }
+        ],
+        zfpcrChargeRate: [
+          { required: true, message: "平台服务费收取费率不能为空", trigger: ["blur", "change"] },
+          {
+            pattern: /^([0-9]{1,2}$)|(^[0-9]{1,2}\.[0-9]{1,2}$)|100$/,
+            message: "请输入正确的平台服务费收取费率",
+            trigger: "change",
+          },
+        ],
+        zfpcrAccount: [
+          { required: true, message: "核心企业还款账户账号", trigger: ["blur", "change"] }
+        ],
+        zfpcrLoanType: [
+          { required: true, message: "融资放款方式不能为空", trigger: ["blur", "change"] }
+        ],
+        zfpcrBookkeepingType: [
+          { required: true, message: "记账簿托管方式不能为空", trigger: ["blur", "change"] }
+        ],
+      }
+    };
+  },
+  created() {
+    const zfpcrId = this.$route.params && this.$route.params.zfpcrId;
+    const zfiAmount = this.$route.params && this.$route.params.zfiAmount;
+    const usableAmount = this.$route.params && this.$route.params.usableAmount;
+    getCreditLine(zfpcrId).then((response) => {
+      this.ticketList = response.data.ticketList;
+                   /* 查询资方 */
+      //公司类型
+      const scyType = '03';
+      //公司id
+      const scyId = response.data.list[0].zfpManagementId;
+      listCompany(scyType,scyId).then((response) =>{
+        this.zfCompanyList  = response.data
+      });
+                   /* 查询融资产品 */
+      //产品id
+      const zfpcrProductId = response.data.list[0].zfpcrProductId;
+      listFinanceProduct(zfpcrProductId).then((response) =>{
+        this.financeProductList  = response.data
+      });
+                   /* 查询授信企业名称 */
+      //公司类型
+      const scyTypes = '01';
+      //公司id
+      const scyIds = response.data.list[0].zfpcrCompanyId;
+      listCompany(scyTypes,scyIds).then((response) =>{
+        this.hxCompanyList = response.data
+      });
+                  /* 查询还款账户 */
+      //银行卡号
+      const zfpcrAccount = response.data.list[0].zfpcrAccount;
+      listCompanyAcc(zfpcrAccount).then((response) =>{
+        this.accList  = response.data
+        this.restaurants = response.data;
+      }).then(()=>{
+        this.form = response.data.list[0]
+        this.amount = response.data.list[0].zfpcrAmount
+        this.form.zfpcrFundSide = this.zfCompanyList[0];
+        this.$set(this.form, "dateTime", [response.data.list[0].zfpcrStartDate, response.data.list[0].zfpcrEndDate])
+        this.$set(this.form, "zfiAmount", zfiAmount);
+        this.$set(this.form, "usableAmount", usableAmount);
+      });   
+    });
+    // this.getZfCompany();
+    // this.getFinanceProduct();
+    // this.getHxCompany();
+    // this.getCompanyAcc();
+    this.getDicts("zc_zfpcr_date_type").then(response => {
+      this.dateTypeOptions = response.data;
+    });
+    this.getDicts("zc_zfpcr_charge").then(response => {
+      this.chargeOptions = response.data;
+    });
+    this.getDicts("zc_zfpcr_loan_type").then(response => {
+      this.loanTypeOptions = response.data;
+    });
+    this.getDicts("zc_zfpcr_bookkeeping_type").then(response => {
+      this.bookkeepingTypeOptions = response.data;
+    });
+  },
+  methods: {
+    /* 资方公司 */
+    getZfCompany(){
+      //公司类型
+      const scyType = '03'
+      listCompany(scyType).then((response) =>{
+        this.zfCompanyList  = response.data
+      })
+    },
+    /* 融资产品 */
+    getFinanceProduct(){
+      listFinanceProduct().then((response) =>{
+        this.financeProductList  = response.data
+      })
+    },
+    /* 授信企业 */
+    getHxCompany(){
+      //公司类型
+      const scyTypes = '01'
+      listCompany(scyTypes).then((response) =>{
+        this.hxCompanyList  = response.data
+      })
+    },
+    /* 核心企业还款账户账号 */
+    getCompanyAcc(){
+      listCompanyAcc().then((response) =>{
+        this.accList  = response.data
+        this.restaurants = response.data;
+      })
+    },
+    /* 账户模糊搜所 */
+    querySearch(queryString, cb) {
+        var restaurants = this.restaurants;
+        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
+        // 调用 callback 返回建议列表的数据
+        cb(results);
+      },
+    createFilter(queryString) {
+      return (restaurant) => {
+        return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+      };
+    },
+    /* 合同相关 */
+    //合同列表
+    getContractList() {
+      this.queryParamsContract.zfcManagementId = this.form.zfpcrFundSide
+      listContract(this.queryParamsContract).then((response) => {
+        this.contractList = response.data.records;
+        this.selectChecked();
+        this.total = response.data.total;
+      });
+    },
+    //打开合同选择列表
+    openTicket() {
+      this.getContractList()
+      this.open = true
+      this.title = "合同信息"
+    },
+    selectChecked() {
+      this.ticketList.forEach((item) => {
+        this.contractList.forEach(row => {
+          if (row.zfcId == item.zfcId) {
+            this.$nextTick(() => {
+              this.$refs.tableContract && this.$refs.tableContract.toggleRowSelection(row, true);
+            })
+          }
+        });
+      });
+    },
+    /* 多选框跨页 */
+    rowkey(row) {
+      return row.zfcId;
+    },
+    // 多选框选中数据
+    handleSelectionChange(val) {
+        this.chooseTicket = val
+    },
+    // 确认选择
+    closeTicket() {
+        if(this.chooseTicket.length > 0){
+          this.ticketList = this.chooseTicket
+          this.$set(this.form, "zfcName", this.ticketList[0].zfcName);
+          this.$set(this.form, "zfcNumber", this.ticketList[0].zfcNumber);
+          this.$set(this.form, "zfcSubject", this.ticketList[0].zfcSubject);
+          this.$set(this.form, "zfcId", this.ticketList[0].zfcId);
+          this.open = false
+      }else{
+        this.$message({
+          message: '请选择合同',
+          type: 'warning'
+        });
+      }
+    },
+    //取消选择合同按钮
+    cancelTicket(){
+      this.ticketList = [];
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+      this.open = false;
+    },
+    /** 清空选择发票信息 */
+    deleteTicekt() {
+      this.ticketList = []
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+    },
+    /* 删除按钮 */
+    handleDelete(index, rows) {
+      rows.splice(index, 1);
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+      this.selectChecked();
+    },
+    onSelectAll() {
+      if(this.$refs.tableContract){
+        this.$refs.tableContract.clearSelection();
+      }
+    },
+    handleQuerys() {
+      this.queryParamsContract.pageNum = 1;
+      this.getContractList();
+    },
+    resetQuerys() {
+      this.resetForm("formQuery");
+      this.handleQuerys();
+    },
+    /** 提交按钮 */
+    submitForm() {
+      // if(this.ticketList == undefined || this.ticketList.length == 0){
+      //   this.$message({
+      //       message: '请选择合同',
+      //       type: 'warning'
+      //     });
+      //     return;
+      // }
+      this.$refs["form"].validate(valid => {
+        this.form.ticketList = this.ticketList;
+        this.form.zfpcrOldAmount = this.amount;
+        if (valid) {
+          const loading = this.$loading({
+            lock: true,
+            text: "Loading",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
+          updateCreditLine(this.form).then(response => {
+            this.msgSuccess("修改成功");
+            this.$store.dispatch("tagsView/delView", this.$route);
+            this.$router.go(-1);
+          }).catch((response) => {
+              loading.close();
+          });
+        }
+      });
+    },
+    /* 金额展示 */
+    handleInput(str) {
+        this.zfpcrAmountFormat = amtformat(str,2, ".", ",");
+    },
+    /* //  将数字金额转换为大写金额 */
+    smallToBig(money) {
+      //  将数字金额转换为大写金额
+      var cnNums = new Array(
+        "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" ); //汉字的数字
+      var cnIntRadice = new Array("", "拾", "佰", "仟"); //基本单位
+      var cnIntUnits = new Array("", "万", "亿", "兆"); //对应整数部分扩展单位
+      var cnDecUnits = new Array("角", "分", "毫", "厘"); //对应小数部分单位
+      var cnInteger = "整"; //整数金额时后面跟的字符
+      var cnIntLast = "元"; //整数完以后的单位
+      //最大处理的数字
+      var maxNum = 999999999999999.9999;
+      var integerNum; //金额整数部分
+      var decimalNum; //金额小数部分
+      //输出的中文金额字符串
+      var chineseStr = "";
+      var parts; //分离金额后用的数组,预定义
+      if (money == "" || money == null || money == undefined) {
+        return "零元零角零分";
+      }
+      money = parseFloat(money);
+      if (money >= maxNum) {
+        //超出最大处理数字
+        return "超出最大处理数字";
+      }
+      if (money == 0) {
+        chineseStr = cnNums[0] + cnIntLast + cnInteger;
+        return chineseStr;
+      }
+      //四舍五入保留两位小数,转换为字符串
+      money = Math.round(money * 100).toString();
+      integerNum = money.substr(0, money.length - 2);
+      decimalNum = money.substr(money.length - 2);
+      //获取整型部分转换
+      if (parseInt(integerNum, 10) > 0) {
+        var zeroCount = 0;
+        var IntLen = integerNum.length;
+        for (var i = 0; i < IntLen; i++) {
+          var n = integerNum.substr(i, 1);
+          var p = IntLen - i - 1;
+          var q = p / 4;
+          var m = p % 4;
+          if (n == "0") {
+            zeroCount++;
+          } else {
+            if (zeroCount > 0) {
+              chineseStr += cnNums[0];
+            }
+            //归零
+            zeroCount = 0;
+            chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
+          }
+          if (m == 0 && zeroCount < 4) {
+            chineseStr += cnIntUnits[q];
+          }
+        }
+        chineseStr += cnIntLast;
+      }
+      //小数部分
+      if (decimalNum != "") {
+        var decLen = decimalNum.length;
+        for (var i = 0; i < decLen; i++) {
+          var n = decimalNum.substr(i, 1);
+          if (n != "0") {
+            chineseStr += cnNums[Number(n)] + cnDecUnits[i];
+          }
+        }
+      }
+      if (chineseStr == "") {
+        chineseStr += cnNums[0] + cnIntLast + cnInteger;
+      } else if (decimalNum == "" || /^0*$/.test(decimalNum)) {
+        chineseStr += cnInteger;
+      }
+      return chineseStr;
+    },
+  },
+};
+</script>
+<style>
+.single-select-table thead .el-table-column--selection .cell {
+  display: none;
+}
+
+</style>

+ 545 - 0
front-vue/src/views/service/creditLine/supplierCreditLine.vue

@@ -0,0 +1,545 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="核心企业授信额度ID(zc_finance_pro_com_rel.zfpcr_id)" prop="zfsqCoreQuotaId">
+        <el-input
+          v-model="queryParams.zfsqCoreQuotaId"
+          placeholder="请输入核心企业授信额度ID(zc_finance_pro_com_rel.zfpcr_id)"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="供应商ID(sys_company.scy_id)" prop="zfsqCompanyId">
+        <el-input
+          v-model="queryParams.zfsqCompanyId"
+          placeholder="请输入供应商ID(sys_company.scy_id)"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="授信额度" prop="zfsqAmount">
+        <el-input
+          v-model="queryParams.zfsqAmount"
+          placeholder="请输入授信额度"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="原授信额度" prop="zfsqOldAmount">
+        <el-input
+          v-model="queryParams.zfsqOldAmount"
+          placeholder="请输入原授信额度"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="利率" prop="zfsqRate">
+        <el-input
+          v-model="queryParams.zfsqRate"
+          placeholder="请输入利率"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="已使用额度" prop="zfsqUsedAmount">
+        <el-input
+          v-model="queryParams.zfsqUsedAmount"
+          placeholder="请输入已使用额度"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="可用额度" prop="zfsqAvailableAmount">
+        <el-input
+          v-model="queryParams.zfsqAvailableAmount"
+          placeholder="请输入可用额度"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="有效期(0:长期, 1:定期)" prop="zfsqDateType">
+        <el-select v-model="queryParams.zfsqDateType" placeholder="请选择有效期(0:长期, 1:定期)" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="开始日期" prop="zfsqStartDate">
+        <el-input
+          v-model="queryParams.zfsqStartDate"
+          placeholder="请输入开始日期"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="到期日期" prop="zfsqEndDate">
+        <el-input
+          v-model="queryParams.zfsqEndDate"
+          placeholder="请输入到期日期"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="状态(00:有效 01:失效)" prop="zfsqStatus">
+        <el-select v-model="queryParams.zfsqStatus" placeholder="请选择状态(00:有效 01:失效)" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="备用字段1" prop="zfsqProfitSpare1">
+        <el-input
+          v-model="queryParams.zfsqProfitSpare1"
+          placeholder="请输入备用字段1"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="备用字段2" prop="zfsqProfitSpare2">
+        <el-input
+          v-model="queryParams.zfsqProfitSpare2"
+          placeholder="请输入备用字段2"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="备用字段3" prop="zfsqProfitSpare3">
+        <el-input
+          v-model="queryParams.zfsqProfitSpare3"
+          placeholder="请输入备用字段3"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="备用字段4" prop="zfsqProfitSpare4">
+        <el-input
+          v-model="queryParams.zfsqProfitSpare4"
+          placeholder="请输入备用字段4"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="备用字段5" prop="zfsqProfitSpare5">
+        <el-input
+          v-model="queryParams.zfsqProfitSpare5"
+          placeholder="请输入备用字段5"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="备用字段6" prop="zfsqProfitSpare6">
+        <el-input
+          v-model="queryParams.zfsqProfitSpare6"
+          placeholder="请输入备用字段6"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="备用字段7" prop="zfsqProfitSpare7">
+        <el-input
+          v-model="queryParams.zfsqProfitSpare7"
+          placeholder="请输入备用字段7"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="备用字段8" prop="zfsqProfitSpare8">
+        <el-input
+          v-model="queryParams.zfsqProfitSpare8"
+          placeholder="请输入备用字段8"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="备用字段9" prop="zfsqProfitSpare9">
+        <el-input
+          v-model="queryParams.zfsqProfitSpare9"
+          placeholder="请输入备用字段9"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </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-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:quota:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:quota:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:quota:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:quota:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="quotaList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="主键" align="center" prop="zfsqId" />
+      <el-table-column label="核心企业授信额度ID(zc_finance_pro_com_rel.zfpcr_id)" align="center" prop="zfsqCoreQuotaId" />
+      <el-table-column label="供应商ID(sys_company.scy_id)" align="center" prop="zfsqCompanyId" />
+      <el-table-column label="授信额度" align="center" prop="zfsqAmount" />
+      <el-table-column label="原授信额度" align="center" prop="zfsqOldAmount" />
+      <el-table-column label="利率" align="center" prop="zfsqRate" />
+      <el-table-column label="已使用额度" align="center" prop="zfsqUsedAmount" />
+      <el-table-column label="可用额度" align="center" prop="zfsqAvailableAmount" />
+      <el-table-column label="有效期(0:长期, 1:定期)" align="center" prop="zfsqDateType" />
+      <el-table-column label="开始日期" align="center" prop="zfsqStartDate" />
+      <el-table-column label="到期日期" align="center" prop="zfsqEndDate" />
+      <el-table-column label="状态(00:有效 01:失效)" align="center" prop="zfsqStatus" />
+      <el-table-column label="备用字段1" align="center" prop="zfsqProfitSpare1" />
+      <el-table-column label="备用字段2" align="center" prop="zfsqProfitSpare2" />
+      <el-table-column label="备用字段3" align="center" prop="zfsqProfitSpare3" />
+      <el-table-column label="备用字段4" align="center" prop="zfsqProfitSpare4" />
+      <el-table-column label="备用字段5" align="center" prop="zfsqProfitSpare5" />
+      <el-table-column label="备用字段6" align="center" prop="zfsqProfitSpare6" />
+      <el-table-column label="备用字段7" align="center" prop="zfsqProfitSpare7" />
+      <el-table-column label="备用字段8" align="center" prop="zfsqProfitSpare8" />
+      <el-table-column label="备用字段9" align="center" prop="zfsqProfitSpare9" />
+      <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-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:quota:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:quota:remove']"
+          >删除</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" :rules="rules" label-width="80px">
+        <el-form-item label="核心企业授信额度ID(zc_finance_pro_com_rel.zfpcr_id)" prop="zfsqCoreQuotaId">
+          <el-input v-model="form.zfsqCoreQuotaId" placeholder="请输入核心企业授信额度ID(zc_finance_pro_com_rel.zfpcr_id)" />
+        </el-form-item>
+        <el-form-item label="供应商ID(sys_company.scy_id)" prop="zfsqCompanyId">
+          <el-input v-model="form.zfsqCompanyId" placeholder="请输入供应商ID(sys_company.scy_id)" />
+        </el-form-item>
+        <el-form-item label="授信额度" prop="zfsqAmount">
+          <el-input v-model="form.zfsqAmount" placeholder="请输入授信额度" />
+        </el-form-item>
+        <el-form-item label="原授信额度" prop="zfsqOldAmount">
+          <el-input v-model="form.zfsqOldAmount" placeholder="请输入原授信额度" />
+        </el-form-item>
+        <el-form-item label="利率" prop="zfsqRate">
+          <el-input v-model="form.zfsqRate" placeholder="请输入利率" />
+        </el-form-item>
+        <el-form-item label="已使用额度" prop="zfsqUsedAmount">
+          <el-input v-model="form.zfsqUsedAmount" placeholder="请输入已使用额度" />
+        </el-form-item>
+        <el-form-item label="可用额度" prop="zfsqAvailableAmount">
+          <el-input v-model="form.zfsqAvailableAmount" placeholder="请输入可用额度" />
+        </el-form-item>
+        <el-form-item label="有效期(0:长期, 1:定期)" prop="zfsqDateType">
+          <el-select v-model="form.zfsqDateType" placeholder="请选择有效期(0:长期, 1:定期)">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="开始日期" prop="zfsqStartDate">
+          <el-input v-model="form.zfsqStartDate" placeholder="请输入开始日期" />
+        </el-form-item>
+        <el-form-item label="到期日期" prop="zfsqEndDate">
+          <el-input v-model="form.zfsqEndDate" placeholder="请输入到期日期" />
+        </el-form-item>
+        <el-form-item label="状态(00:有效 01:失效)">
+          <el-radio-group v-model="form.zfsqStatus">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="备用字段1" prop="zfsqProfitSpare1">
+          <el-input v-model="form.zfsqProfitSpare1" placeholder="请输入备用字段1" />
+        </el-form-item>
+        <el-form-item label="备用字段2" prop="zfsqProfitSpare2">
+          <el-input v-model="form.zfsqProfitSpare2" placeholder="请输入备用字段2" />
+        </el-form-item>
+        <el-form-item label="备用字段3" prop="zfsqProfitSpare3">
+          <el-input v-model="form.zfsqProfitSpare3" placeholder="请输入备用字段3" />
+        </el-form-item>
+        <el-form-item label="备用字段4" prop="zfsqProfitSpare4">
+          <el-input v-model="form.zfsqProfitSpare4" placeholder="请输入备用字段4" />
+        </el-form-item>
+        <el-form-item label="备用字段5" prop="zfsqProfitSpare5">
+          <el-input v-model="form.zfsqProfitSpare5" placeholder="请输入备用字段5" />
+        </el-form-item>
+        <el-form-item label="备用字段6" prop="zfsqProfitSpare6">
+          <el-input v-model="form.zfsqProfitSpare6" placeholder="请输入备用字段6" />
+        </el-form-item>
+        <el-form-item label="备用字段7" prop="zfsqProfitSpare7">
+          <el-input v-model="form.zfsqProfitSpare7" placeholder="请输入备用字段7" />
+        </el-form-item>
+        <el-form-item label="备用字段8" prop="zfsqProfitSpare8">
+          <el-input v-model="form.zfsqProfitSpare8" placeholder="请输入备用字段8" />
+        </el-form-item>
+        <el-form-item label="备用字段9" prop="zfsqProfitSpare9">
+          <el-input v-model="form.zfsqProfitSpare9" placeholder="请输入备用字段9" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listQuota, getQuota, delQuota, addQuota, updateQuota } from "@/api/system/quota";
+
+export default {
+  name: "Quota",
+  components: {
+  },
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 供应商授信额度表格数据
+      quotaList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        zfsqCoreQuotaId: null,
+        zfsqCompanyId: null,
+        zfsqAmount: null,
+        zfsqOldAmount: null,
+        zfsqRate: null,
+        zfsqUsedAmount: null,
+        zfsqAvailableAmount: null,
+        zfsqDateType: null,
+        zfsqStartDate: null,
+        zfsqEndDate: null,
+        zfsqStatus: null,
+        zfsqProfitSpare1: null,
+        zfsqProfitSpare2: null,
+        zfsqProfitSpare3: null,
+        zfsqProfitSpare4: null,
+        zfsqProfitSpare5: null,
+        zfsqProfitSpare6: null,
+        zfsqProfitSpare7: null,
+        zfsqProfitSpare8: null,
+        zfsqProfitSpare9: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        zfsqCoreQuotaId: [
+          { required: true, message: "核心企业授信额度ID(zc_finance_pro_com_rel.zfpcr_id)不能为空", trigger: "blur" }
+        ],
+        zfsqCompanyId: [
+          { required: true, message: "供应商ID(sys_company.scy_id)不能为空", trigger: "blur" }
+        ],
+        zfsqAmount: [
+          { required: true, message: "授信额度不能为空", trigger: "blur" }
+        ],
+        zfsqRate: [
+          { required: true, message: "利率不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询供应商授信额度列表 */
+    getList() {
+      this.loading = true;
+      listQuota(this.queryParams).then(response => {
+        this.quotaList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        zfsqId: null,
+        zfsqCoreQuotaId: null,
+        zfsqCompanyId: null,
+        zfsqAmount: null,
+        zfsqOldAmount: null,
+        zfsqRate: null,
+        zfsqUsedAmount: null,
+        zfsqAvailableAmount: null,
+        zfsqDateType: null,
+        zfsqStartDate: null,
+        zfsqEndDate: null,
+        zfsqStatus: "0",
+        zfsqProfitSpare1: null,
+        zfsqProfitSpare2: null,
+        zfsqProfitSpare3: null,
+        zfsqProfitSpare4: null,
+        zfsqProfitSpare5: null,
+        zfsqProfitSpare6: null,
+        zfsqProfitSpare7: null,
+        zfsqProfitSpare8: null,
+        zfsqProfitSpare9: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: 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.zfsqId)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加供应商授信额度";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const zfsqId = row.zfsqId || this.ids
+      getQuota(zfsqId).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改供应商授信额度";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.zfsqId != null) {
+            updateQuota(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addQuota(this.form).then(response => {
+              this.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const zfsqIds = row.zfsqId || this.ids;
+      this.$confirm('是否确认删除供应商授信额度编号为"' + zfsqIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delQuota(zfsqIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/quota/export', {
+        ...this.queryParams
+      }, `system_quota.xlsx`)
+    }
+  }
+};
+</script>