|
@@ -3,30 +3,41 @@
|
|
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
|
|
<el-form-item label="商户类型" prop="merchantType">
|
|
<el-form-item label="商户类型" prop="merchantType">
|
|
|
<el-select v-model="queryParams.merchantType" placeholder="请选择商户类型" clearable size="small">
|
|
<el-select v-model="queryParams.merchantType" placeholder="请选择商户类型" clearable size="small">
|
|
|
- <el-option label="请选择字典生成" value="" />
|
|
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="dict in sysPayModes"
|
|
|
|
|
+ :key="dict.dictValue"
|
|
|
|
|
+ :label="dict.dictLabel"
|
|
|
|
|
+ :value="dict.dictValue"
|
|
|
|
|
+ />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="应用ID" prop="appId">
|
|
|
|
|
- <el-input
|
|
|
|
|
- v-model="queryParams.appId"
|
|
|
|
|
- placeholder="请输入应用ID"
|
|
|
|
|
- clearable
|
|
|
|
|
- size="small"
|
|
|
|
|
- @keyup.enter.native="handleQuery"
|
|
|
|
|
- />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="创建时间">
|
|
|
|
|
- <el-date-picker
|
|
|
|
|
- v-model="daterangeCreatedTime"
|
|
|
|
|
- size="small"
|
|
|
|
|
- style="width: 240px"
|
|
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
|
|
- type="daterange"
|
|
|
|
|
- range-separator="-"
|
|
|
|
|
- start-placeholder="开始日期"
|
|
|
|
|
- end-placeholder="结束日期"
|
|
|
|
|
- ></el-date-picker>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
|
|
+<!-- <el-form-item label="应用ID" prop="appIds">-->
|
|
|
|
|
+<!-- <el-select-->
|
|
|
|
|
+<!-- v-model="queryParams.appIds"-->
|
|
|
|
|
+<!-- placeholder="请选择应用ID"-->
|
|
|
|
|
+<!-- clearable-->
|
|
|
|
|
+<!-- size="small"-->
|
|
|
|
|
+<!-- >-->
|
|
|
|
|
+<!-- <el-option-->
|
|
|
|
|
+<!-- v-for="dict in appIdOptions"-->
|
|
|
|
|
+<!-- :key="dict.appid"-->
|
|
|
|
|
+<!-- :label="dict.name"-->
|
|
|
|
|
+<!-- :value="dict.appid"-->
|
|
|
|
|
+<!-- />-->
|
|
|
|
|
+<!-- </el-select>-->
|
|
|
|
|
+<!-- </el-form-item>-->
|
|
|
|
|
+<!-- <el-form-item label="创建时间">-->
|
|
|
|
|
+<!-- <el-date-picker-->
|
|
|
|
|
+<!-- v-model="daterangeCreatedTime"-->
|
|
|
|
|
+<!-- size="small"-->
|
|
|
|
|
+<!-- style="width: 240px"-->
|
|
|
|
|
+<!-- value-format="yyyy-MM-dd"-->
|
|
|
|
|
+<!-- type="daterange"-->
|
|
|
|
|
+<!-- range-separator="-"-->
|
|
|
|
|
+<!-- start-placeholder="开始日期"-->
|
|
|
|
|
+<!-- end-placeholder="结束日期"-->
|
|
|
|
|
+<!-- ></el-date-picker>-->
|
|
|
|
|
+<!-- </el-form-item>-->
|
|
|
<el-form-item label="状态" prop="isDeleted">
|
|
<el-form-item label="状态" prop="isDeleted">
|
|
|
<el-select v-model="queryParams.isDeleted" placeholder="请选择状态" clearable size="small">
|
|
<el-select v-model="queryParams.isDeleted" placeholder="请选择状态" clearable size="small">
|
|
|
<el-option
|
|
<el-option
|
|
@@ -54,49 +65,71 @@
|
|
|
v-hasPermi="['merchantAppConfig:merchantAppConfig:add']"
|
|
v-hasPermi="['merchantAppConfig:merchantAppConfig:add']"
|
|
|
>新增</el-button>
|
|
>新增</el-button>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
|
|
- <el-button
|
|
|
|
|
- type="success"
|
|
|
|
|
- plain
|
|
|
|
|
- icon="el-icon-edit"
|
|
|
|
|
- size="mini"
|
|
|
|
|
- :disabled="single"
|
|
|
|
|
- @click="handleUpdate"
|
|
|
|
|
- v-hasPermi="['merchantAppConfig:merchantAppConfig:edit']"
|
|
|
|
|
- >修改</el-button>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="1.5">
|
|
|
|
|
- <el-button
|
|
|
|
|
- type="danger"
|
|
|
|
|
- plain
|
|
|
|
|
- icon="el-icon-delete"
|
|
|
|
|
- size="mini"
|
|
|
|
|
- :disabled="multiple"
|
|
|
|
|
- @click="handleDelete"
|
|
|
|
|
- v-hasPermi="['merchantAppConfig:merchantAppConfig:remove']"
|
|
|
|
|
- >删除</el-button>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="1.5">
|
|
|
|
|
- <el-button
|
|
|
|
|
- type="warning"
|
|
|
|
|
- plain
|
|
|
|
|
- icon="el-icon-download"
|
|
|
|
|
- size="mini"
|
|
|
|
|
- :loading="exportLoading"
|
|
|
|
|
- @click="handleExport"
|
|
|
|
|
- v-hasPermi="['merchantAppConfig:merchantAppConfig:export']"
|
|
|
|
|
- >导出</el-button>
|
|
|
|
|
- </el-col>
|
|
|
|
|
|
|
+<!-- <el-col :span="1.5">-->
|
|
|
|
|
+<!-- <el-button-->
|
|
|
|
|
+<!-- type="success"-->
|
|
|
|
|
+<!-- plain-->
|
|
|
|
|
+<!-- icon="el-icon-edit"-->
|
|
|
|
|
+<!-- size="mini"-->
|
|
|
|
|
+<!-- :disabled="single"-->
|
|
|
|
|
+<!-- @click="handleUpdate"-->
|
|
|
|
|
+<!-- v-hasPermi="['merchantAppConfig:merchantAppConfig:edit']"-->
|
|
|
|
|
+<!-- >修改</el-button>-->
|
|
|
|
|
+<!-- </el-col>-->
|
|
|
|
|
+<!-- <el-col :span="1.5">-->
|
|
|
|
|
+<!-- <el-button-->
|
|
|
|
|
+<!-- type="danger"-->
|
|
|
|
|
+<!-- plain-->
|
|
|
|
|
+<!-- icon="el-icon-delete"-->
|
|
|
|
|
+<!-- size="mini"-->
|
|
|
|
|
+<!-- :disabled="multiple"-->
|
|
|
|
|
+<!-- @click="handleDelete"-->
|
|
|
|
|
+<!-- v-hasPermi="['merchantAppConfig:merchantAppConfig:remove']"-->
|
|
|
|
|
+<!-- >删除</el-button>-->
|
|
|
|
|
+<!-- </el-col>-->
|
|
|
|
|
+<!-- <el-col :span="1.5">-->
|
|
|
|
|
+<!-- <el-button-->
|
|
|
|
|
+<!-- type="warning"-->
|
|
|
|
|
+<!-- plain-->
|
|
|
|
|
+<!-- icon="el-icon-download"-->
|
|
|
|
|
+<!-- size="mini"-->
|
|
|
|
|
+<!-- :loading="exportLoading"-->
|
|
|
|
|
+<!-- @click="handleExport"-->
|
|
|
|
|
+<!-- v-hasPermi="['merchantAppConfig:merchantAppConfig:export']"-->
|
|
|
|
|
+<!-- >导出</el-button>-->
|
|
|
|
|
+<!-- </el-col>-->
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
|
|
|
|
|
<el-table border v-loading="loading" :data="merchantAppConfigList" @selection-change="handleSelectionChange">
|
|
<el-table border v-loading="loading" :data="merchantAppConfigList" @selection-change="handleSelectionChange">
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
<el-table-column label="主键ID" align="center" prop="id" />
|
|
<el-table-column label="主键ID" align="center" prop="id" />
|
|
|
|
|
+ <el-table-column label="商户号" align="center" prop="merchantId" />
|
|
|
<el-table-column label="商户类型" align="center" prop="merchantType" />
|
|
<el-table-column label="商户类型" align="center" prop="merchantType" />
|
|
|
- <el-table-column label="应用ID" align="center" prop="appId" />
|
|
|
|
|
|
|
+<!-- appId 转化 appIdOptions -->
|
|
|
|
|
+ <el-table-column label="应用名称" align="center" prop="appId">
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <span v-if="scope.row.appId">
|
|
|
|
|
+ {{ getAppNames(scope.row.appId) }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column label="应用ID" align="center" prop="appId">
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <span>{{ scope.row.appId }}</span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="回调地址" align="center" prop="callbackUrl" />
|
|
<el-table-column label="回调地址" align="center" prop="callbackUrl" />
|
|
|
- <el-table-column label="配置详情" align="center" prop="dataJson" />
|
|
|
|
|
|
|
+ <el-table-column label="配置详情" align="center" prop="dataJson">
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ type="text"
|
|
|
|
|
+ icon="el-icon-edit"
|
|
|
|
|
+ @click="handleView(scope.row)"
|
|
|
|
|
+ >详情</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="创建时间" align="center" prop="createdTime" width="180">
|
|
<el-table-column label="创建时间" align="center" prop="createdTime" width="180">
|
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
|
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
|
|
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
|
|
@@ -141,38 +174,151 @@
|
|
|
/>
|
|
/>
|
|
|
|
|
|
|
|
<!-- 添加或修改商户应用配置对话框 -->
|
|
<!-- 添加或修改商户应用配置对话框 -->
|
|
|
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
|
|
- <el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
|
|
|
|
+ <el-dialog :title="title" :visible.sync="dialogVisible" width="800px" append-to-body>
|
|
|
|
|
+ <el-form ref="form" :model="form" :rules="!isViewMode ? rules : {}" label-width="160px" :disabled="isViewMode">
|
|
|
<el-form-item label="商户类型" prop="merchantType">
|
|
<el-form-item label="商户类型" prop="merchantType">
|
|
|
- <el-select v-model="form.merchantType" placeholder="请选择商户类型">
|
|
|
|
|
- <el-option label="请选择字典生成" value="" />
|
|
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="form.merchantType"
|
|
|
|
|
+ placeholder="请选择商户类型"
|
|
|
|
|
+ :disabled="form.id !== null"
|
|
|
|
|
+ @change="handleMerchantTypeChange"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="dict in sysPayModes"
|
|
|
|
|
+ :key="dict.dictValue"
|
|
|
|
|
+ :label="dict.dictLabel"
|
|
|
|
|
+ :value="dict.dictValue"
|
|
|
|
|
+ />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="应用ID" prop="appId">
|
|
|
|
|
- <el-input v-model="form.appId" placeholder="请输入应用ID" />
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="回调地址" prop="callbackUrl">
|
|
|
|
|
- <el-input v-model="form.callbackUrl" type="textarea" placeholder="请输入内容" />
|
|
|
|
|
|
|
+ <el-form-item label="应用ID" prop="appIds">
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="form.appIds"
|
|
|
|
|
+ placeholder="请选择应用ID"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ multiple
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="dict in appIdOptions"
|
|
|
|
|
+ :key="dict.appid"
|
|
|
|
|
+ :label="dict.name"
|
|
|
|
|
+ :value="dict.appid"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="修改时间" prop="updatedTime">
|
|
|
|
|
- <el-date-picker clearable size="small"
|
|
|
|
|
- v-model="form.updatedTime"
|
|
|
|
|
- type="date"
|
|
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
|
|
- placeholder="选择修改时间">
|
|
|
|
|
- </el-date-picker>
|
|
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-divider></el-divider>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 动态渲染不同商户类型的配置表单 -->
|
|
|
|
|
+ <div v-if="form.merchantType">
|
|
|
|
|
+ <!-- 易宝支付配置 -->
|
|
|
|
|
+ <div v-if="form.merchantType === 'yb'">
|
|
|
|
|
+ <el-form-item label="易宝商户号" prop="ybAccount">
|
|
|
|
|
+ <el-input v-model="ybConfig.ybAccount" placeholder="请输入易宝商户号"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="易宝Key" prop="ybKey">
|
|
|
|
|
+ <el-input v-model="ybConfig.ybKey" placeholder="请输入易宝Key"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="易宝回调地址" prop="ybNotifyUrl">
|
|
|
|
|
+ <el-input v-model="ybConfig.ybNotifyUrl" placeholder="易宝回调地址"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 台州银行配置 -->
|
|
|
|
|
+ <div v-else-if="form.merchantType === 'tz'">
|
|
|
|
|
+ <el-form-item label="台州商户号" prop="tzPlatMerCstNo">
|
|
|
|
|
+ <el-input v-model="tzConfig.tzPlatMerCstNo" placeholder="请输入台州商户号"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="台州appSecret" prop="tzAppSecret">
|
|
|
|
|
+ <el-input v-model="tzConfig.tzAppSecret" placeholder="请输入台州appSecret"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="台州私钥" prop="tzPrivateKey">
|
|
|
|
|
+ <el-input v-model="tzConfig.tzPrivateKey" placeholder="请输入台州私钥"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="台州平台公钥" prop="tzPlatformPublicKey">
|
|
|
|
|
+ <el-input v-model="tzConfig.tzPlatformPublicKey" placeholder="请输入台州平台公钥"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="台州appKey" prop="tzAppKey">
|
|
|
|
|
+ <el-input v-model="tzConfig.tzAppKey" placeholder="请输入台州appKey"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="台州支付回调地址" prop="tzPayDecrypt">
|
|
|
|
|
+ <el-input v-model="tzConfig.tzPayDecrypt" placeholder="请输入台州支付回调地址"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="退款回调地址" prop="tzRefundDecrypt">
|
|
|
|
|
+ <el-input v-model="tzConfig.tzRefundDecrypt" placeholder="请输入退款回调地址"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="分账回调地址" prop="tzOrderShareDecrypt">
|
|
|
|
|
+ <el-input v-model="tzConfig.tzOrderShareDecrypt" placeholder="请输入台州分账回调地址"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 微信支付配置 -->
|
|
|
|
|
+ <div v-else-if="form.merchantType === 'wx'">
|
|
|
|
|
+ <el-form-item label="微信商户号" prop="wxMchId">
|
|
|
|
|
+ <el-input v-model="wxConfig.wxMchId" placeholder="请输入微信商户号"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="微信Key" prop="wxMchKey">
|
|
|
|
|
+ <el-input v-model="wxConfig.wxMchKey" placeholder="请输入微信Key"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="微信商户V3密钥" prop="wxApiV3Key">
|
|
|
|
|
+ <el-input v-model="wxConfig.wxApiV3Key" placeholder="请输入商户V3密钥"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="微信回调地址(scrm)" prop="notifyUrlScrm">
|
|
|
|
|
+ <el-input v-model="wxConfig.notifyUrlScrm" placeholder="请输入商城微信回调地址"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="p12证书路径" prop="keyPath">
|
|
|
|
|
+ <el-input v-model="wxConfig.keyPath" placeholder="请输入p12证书文件的绝对路径"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 汇付支付配置 -->
|
|
|
|
|
+ <div v-else-if="form.merchantType === 'hf'">
|
|
|
|
|
+ <el-form-item label="汇付产品号" prop="hfProductId">
|
|
|
|
|
+ <el-input v-model="hfConfig.hfProductId" placeholder="汇付产品号"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="系统号" prop="hfSysId">
|
|
|
|
|
+ <el-input v-model="hfConfig.hfSysId" placeholder="系统号Key"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="商户号" prop="hfHuifuId">
|
|
|
|
|
+ <el-input v-model="hfConfig.huifuId" placeholder="商户号"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="商户私钥" prop="hfRsaPrivateKey">
|
|
|
|
|
+ <el-input v-model="hfConfig.hfRsaPrivateKey" placeholder="商户私钥"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="汇付公钥" prop="hfRsaPublicKey">
|
|
|
|
|
+ <el-input v-model="hfConfig.hfRsaPublicKey" placeholder="汇付公钥"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="汇付支付回调地址" prop="hfPayNotifyUrl">
|
|
|
|
|
+ <el-input v-model="hfConfig.hfPayNotifyUrl" placeholder="汇付支付回调地址"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="大额支付回调地址" prop="hfPayOnlineNotifyUrl">
|
|
|
|
|
+ <el-input v-model="hfConfig.hfPayOnlineNotifyUrl" placeholder="汇付支付回调地址"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="汇付退款回调地址" prop="hfRefundNotifyUrl">
|
|
|
|
|
+ <el-input v-model="hfConfig.hfRefundNotifyUrl" placeholder="汇付退款回调地址"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="汇付大额退款回调地址" prop="hfOnlineRefundNotifyUrl">
|
|
|
|
|
+ <el-input v-model="hfConfig.hfOnlineRefundNotifyUrl" placeholder="汇付分账回调地址"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
|
|
+
|
|
|
<div slot="footer" class="dialog-footer">
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
|
|
|
|
+ <el-button type="primary" @click="submitForm" v-if="!isViewMode">确 定</el-button>
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
<el-button @click="cancel">取 消</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
+
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
import { listMerchantAppConfig, getMerchantAppConfig, delMerchantAppConfig, addMerchantAppConfig, updateMerchantAppConfig, exportMerchantAppConfig } from "@/api/merchantAppConfig/merchantAppConfig";
|
|
import { listMerchantAppConfig, getMerchantAppConfig, delMerchantAppConfig, addMerchantAppConfig, updateMerchantAppConfig, exportMerchantAppConfig } from "@/api/merchantAppConfig/merchantAppConfig";
|
|
|
|
|
+import { listAll } from "@/api/course/coursePlaySourceConfig";
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
name: "MerchantAppConfig",
|
|
name: "MerchantAppConfig",
|
|
@@ -196,31 +342,46 @@ export default {
|
|
|
merchantAppConfigList: [],
|
|
merchantAppConfigList: [],
|
|
|
// 弹出层标题
|
|
// 弹出层标题
|
|
|
title: "",
|
|
title: "",
|
|
|
- // 是否显示弹出层
|
|
|
|
|
- open: false,
|
|
|
|
|
// 创建时间时间范围
|
|
// 创建时间时间范围
|
|
|
daterangeCreatedTime: [],
|
|
daterangeCreatedTime: [],
|
|
|
// 删除状态:0-正常,1-已删除字典
|
|
// 删除状态:0-正常,1-已删除字典
|
|
|
isDeletedOptions: [],
|
|
isDeletedOptions: [],
|
|
|
|
|
+ sysPayModes: [],
|
|
|
|
|
+ detailOpen: false, // 详情对话框开关
|
|
|
|
|
+ isViewMode: false, // 是否为查看模式
|
|
|
|
|
+ dialogVisible: false,
|
|
|
// 查询参数
|
|
// 查询参数
|
|
|
queryParams: {
|
|
queryParams: {
|
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
pageSize: 10,
|
|
|
merchantType: null,
|
|
merchantType: null,
|
|
|
- appId: null,
|
|
|
|
|
|
|
+ appIds: null,
|
|
|
createdTime: null,
|
|
createdTime: null,
|
|
|
- isDeleted: null,
|
|
|
|
|
|
|
+ isDeleted: "0",
|
|
|
},
|
|
},
|
|
|
|
|
+ appIdOptions:[],
|
|
|
|
|
+ ybConfig: {}, // 易宝配置
|
|
|
|
|
+ tzConfig: {}, // 台州银行配置
|
|
|
|
|
+ wxConfig: {}, // 微信配置
|
|
|
|
|
+ hfConfig: {}, // 汇付配置
|
|
|
// 表单参数
|
|
// 表单参数
|
|
|
- form: {},
|
|
|
|
|
|
|
+ form: {
|
|
|
|
|
+ id: null,
|
|
|
|
|
+ merchantType: null,
|
|
|
|
|
+ appIds: [],
|
|
|
|
|
+ callbackUrl: null,
|
|
|
|
|
+ dataJson: null,
|
|
|
|
|
+ createdTime: null,
|
|
|
|
|
+ updatedTime: null,
|
|
|
|
|
+ isDeleted: null,
|
|
|
|
|
+ createdBy: null,
|
|
|
|
|
+ updatedBy: null
|
|
|
|
|
+ },
|
|
|
// 表单校验
|
|
// 表单校验
|
|
|
rules: {
|
|
rules: {
|
|
|
merchantType: [
|
|
merchantType: [
|
|
|
{ required: true, message: "商户类型不能为空", trigger: "change" }
|
|
{ required: true, message: "商户类型不能为空", trigger: "change" }
|
|
|
],
|
|
],
|
|
|
- appId: [
|
|
|
|
|
- { required: true, message: "应用ID不能为空", trigger: "blur" }
|
|
|
|
|
- ],
|
|
|
|
|
isDeleted: [
|
|
isDeleted: [
|
|
|
{ required: true, message: "删除状态:0-正常,1-已删除不能为空", trigger: "change" }
|
|
{ required: true, message: "删除状态:0-正常,1-已删除不能为空", trigger: "change" }
|
|
|
],
|
|
],
|
|
@@ -234,15 +395,214 @@ export default {
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
created() {
|
|
created() {
|
|
|
- this.getList();
|
|
|
|
|
|
|
+
|
|
|
this.getDicts("sys_normal_disable").then(response => {
|
|
this.getDicts("sys_normal_disable").then(response => {
|
|
|
this.isDeletedOptions = response.data;
|
|
this.isDeletedOptions = response.data;
|
|
|
});
|
|
});
|
|
|
|
|
+ this.getDicts("sys_pay_mode").then(response => {
|
|
|
|
|
+ this.sysPayModes = response.data;
|
|
|
|
|
+ });
|
|
|
|
|
+ listAll().then(response => {
|
|
|
|
|
+ this.appIdOptions=response.data;
|
|
|
|
|
+ });
|
|
|
|
|
+ this.getList();
|
|
|
|
|
+
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ /** 详情按钮操作 */
|
|
|
|
|
+ handleView(row) {
|
|
|
|
|
+ this.isViewMode = true;
|
|
|
|
|
+ this.dialogVisible = true; // 改为设置 dialogVisible
|
|
|
|
|
+ this.title = "查看商户应用配置";
|
|
|
|
|
+
|
|
|
|
|
+ // 加载数据(复用修改逻辑)
|
|
|
|
|
+ getMerchantAppConfig(row.id).then(response => {
|
|
|
|
|
+ // 先设置基础数据
|
|
|
|
|
+ Object.keys(response.data).forEach(key => {
|
|
|
|
|
+ if (key !== 'appIds') { // appIds单独处理
|
|
|
|
|
+ this.$set(this.form, key, response.data[key]);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 单独处理 appIds,确保它是响应式的数组
|
|
|
|
|
+ let appIdsArray = [];
|
|
|
|
|
+ if (response.data.appId) {
|
|
|
|
|
+ if (typeof response.data.appId === 'string') {
|
|
|
|
|
+ appIdsArray = response.data.appId.split(',').map(item => item.trim()).filter(item => item);
|
|
|
|
|
+ } else if (Array.isArray(response.data.appId)) {
|
|
|
|
|
+ appIdsArray = [...response.data.appId];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 使用 $set 确保响应式
|
|
|
|
|
+ this.$set(this.form, 'appIds', appIdsArray);
|
|
|
|
|
+
|
|
|
|
|
+ // 解析配置详情JSON
|
|
|
|
|
+ if (this.form.dataJson) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const configData = JSON.parse(this.form.dataJson);
|
|
|
|
|
+ switch(this.form.merchantType) {
|
|
|
|
|
+ case 'yb':
|
|
|
|
|
+ this.ybConfig = { ...configData };
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'tz':
|
|
|
|
|
+ this.tzConfig = { ...configData };
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'wx':
|
|
|
|
|
+ this.wxConfig = { ...configData };
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'hf':
|
|
|
|
|
+ this.hfConfig = { ...configData };
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (e) {
|
|
|
|
|
+ console.error('解析配置详情失败:', e);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ ,
|
|
|
|
|
+ /** 关闭详情对话框 */
|
|
|
|
|
+ closeDetailView() {
|
|
|
|
|
+ this.detailOpen = false;
|
|
|
|
|
+ this.isViewMode = false;
|
|
|
|
|
+ this.reset();
|
|
|
|
|
+ },
|
|
|
|
|
+ getAppNames(appIds) {
|
|
|
|
|
+ if (!appIds) return '';
|
|
|
|
|
+
|
|
|
|
|
+ // 处理逗号分隔的字符串
|
|
|
|
|
+ const appIdArray = typeof appIds === 'string' ? appIds.split(',') : Array.isArray(appIds) ? appIds : [appIds];
|
|
|
|
|
+
|
|
|
|
|
+ // 根据 appIdOptions 查找对应的应用名称
|
|
|
|
|
+ const names = appIdArray
|
|
|
|
|
+ .map(id => {
|
|
|
|
|
+ const option = this.appIdOptions.find(opt => opt.appid === id.trim());
|
|
|
|
|
+ return option ? option.name : id;
|
|
|
|
|
+ })
|
|
|
|
|
+ .filter(name => name); // 过滤掉空值
|
|
|
|
|
+
|
|
|
|
|
+ return names.join(', ');
|
|
|
|
|
+ },
|
|
|
|
|
+ /** 商户类型变化处理 */
|
|
|
|
|
+ handleMerchantTypeChange(value) {
|
|
|
|
|
+ // 清空之前的选择
|
|
|
|
|
+ this.ybConfig = {};
|
|
|
|
|
+ this.tzConfig = {};
|
|
|
|
|
+ this.wxConfig = {};
|
|
|
|
|
+ this.hfConfig = {};
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ /** 提交按钮 */
|
|
|
|
|
+ submitForm() {
|
|
|
|
|
+ this.$refs["form"].validate(valid => {
|
|
|
|
|
+ if (valid) {
|
|
|
|
|
+ // 构建配置详情JSON
|
|
|
|
|
+ let configData = {};
|
|
|
|
|
+ switch(this.form.merchantType) {
|
|
|
|
|
+ case 'yb':
|
|
|
|
|
+ configData = { ...this.ybConfig };
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'tz':
|
|
|
|
|
+ configData = { ...this.tzConfig };
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'wx':
|
|
|
|
|
+ configData = { ...this.wxConfig };
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'hf':
|
|
|
|
|
+ configData = { ...this.hfConfig };
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 正确处理多选应用ID转字符串
|
|
|
|
|
+ if (this.form.appIds && Array.isArray(this.form.appIds) && this.form.appIds.length > 0) {
|
|
|
|
|
+ this.form.appId = this.form.appIds.join(',');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.form.appId = '';
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 将配置转换为JSON字符串
|
|
|
|
|
+ this.form.dataJson = JSON.stringify(configData);
|
|
|
|
|
+
|
|
|
|
|
+ if (this.form.id != null) {
|
|
|
|
|
+ updateMerchantAppConfig(this.form).then(response => {
|
|
|
|
|
+ this.msgSuccess("修改成功");
|
|
|
|
|
+ this.dialogVisible = false;
|
|
|
|
|
+ this.getList();
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ addMerchantAppConfig(this.form).then(response => {
|
|
|
|
|
+ this.msgSuccess("新增成功");
|
|
|
|
|
+ this.dialogVisible = false;
|
|
|
|
|
+ this.getList();
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ /** 修改按钮操作 */
|
|
|
|
|
+ /** 修改按钮操作 */
|
|
|
|
|
+ handleUpdate(row) {
|
|
|
|
|
+ this.reset();
|
|
|
|
|
+ const id = row.id || this.ids;
|
|
|
|
|
+ getMerchantAppConfig(id).then(response => {
|
|
|
|
|
+ // 先设置基础数据
|
|
|
|
|
+ Object.keys(response.data).forEach(key => {
|
|
|
|
|
+ if (key !== 'appIds') { // appIds单独处理
|
|
|
|
|
+ this.$set(this.form, key, response.data[key]);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 单独处理 appIds,确保它是响应式的数组
|
|
|
|
|
+ let appIdsArray = [];
|
|
|
|
|
+ if (response.data.appId) {
|
|
|
|
|
+ if (typeof response.data.appId === 'string') {
|
|
|
|
|
+ appIdsArray = response.data.appId.split(',').map(item => item.trim()).filter(item => item);
|
|
|
|
|
+ } else if (Array.isArray(response.data.appId)) {
|
|
|
|
|
+ appIdsArray = [...response.data.appId];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 使用 $set 确保响应式
|
|
|
|
|
+ this.$set(this.form, 'appIds', appIdsArray);
|
|
|
|
|
+
|
|
|
|
|
+ // 解析配置详情JSON
|
|
|
|
|
+ if (this.form.dataJson) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const configData = JSON.parse(this.form.dataJson);
|
|
|
|
|
+ switch(this.form.merchantType) {
|
|
|
|
|
+ case 'yb':
|
|
|
|
|
+ this.ybConfig = { ...configData };
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'tz':
|
|
|
|
|
+ this.tzConfig = { ...configData };
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'wx':
|
|
|
|
|
+ this.wxConfig = { ...configData };
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 'hf':
|
|
|
|
|
+ this.hfConfig = { ...configData };
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (e) {
|
|
|
|
|
+ console.error('解析配置详情失败:', e);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ this.isViewMode = false; // 添加此行
|
|
|
|
|
+ this.dialogVisible = true; // 替代 this.open = true
|
|
|
|
|
+ this.title = "修改商户应用配置";
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ ,
|
|
|
/** 查询商户应用配置列表 */
|
|
/** 查询商户应用配置列表 */
|
|
|
getList() {
|
|
getList() {
|
|
|
this.loading = true;
|
|
this.loading = true;
|
|
|
|
|
+ // if (this.queryParams.appIds && this.queryParams.appIds.length > 0) {
|
|
|
|
|
+ // this.queryParams.appIds = this.queryParams.appIds.join(',');
|
|
|
|
|
+ // }
|
|
|
this.queryParams.params = {};
|
|
this.queryParams.params = {};
|
|
|
if (null != this.daterangeCreatedTime && '' != this.daterangeCreatedTime) {
|
|
if (null != this.daterangeCreatedTime && '' != this.daterangeCreatedTime) {
|
|
|
this.queryParams.params["beginCreatedTime"] = this.daterangeCreatedTime[0];
|
|
this.queryParams.params["beginCreatedTime"] = this.daterangeCreatedTime[0];
|
|
@@ -256,7 +616,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
// 取消按钮
|
|
// 取消按钮
|
|
|
cancel() {
|
|
cancel() {
|
|
|
- this.open = false;
|
|
|
|
|
|
|
+ this.dialogVisible = false;
|
|
|
this.reset();
|
|
this.reset();
|
|
|
},
|
|
},
|
|
|
// 表单重置
|
|
// 表单重置
|
|
@@ -264,7 +624,8 @@ export default {
|
|
|
this.form = {
|
|
this.form = {
|
|
|
id: null,
|
|
id: null,
|
|
|
merchantType: null,
|
|
merchantType: null,
|
|
|
- appId: null,
|
|
|
|
|
|
|
+ appId: null, // 应该删除这一行
|
|
|
|
|
+ appIds: [], // 初始化为空数组而不是null
|
|
|
callbackUrl: null,
|
|
callbackUrl: null,
|
|
|
dataJson: null,
|
|
dataJson: null,
|
|
|
createdTime: null,
|
|
createdTime: null,
|
|
@@ -295,39 +656,40 @@ export default {
|
|
|
/** 新增按钮操作 */
|
|
/** 新增按钮操作 */
|
|
|
handleAdd() {
|
|
handleAdd() {
|
|
|
this.reset();
|
|
this.reset();
|
|
|
- this.open = true;
|
|
|
|
|
|
|
+ this.isViewMode = false; // 添加此行
|
|
|
|
|
+ this.dialogVisible = true; // 替代 this.open = true
|
|
|
this.title = "添加商户应用配置";
|
|
this.title = "添加商户应用配置";
|
|
|
},
|
|
},
|
|
|
- /** 修改按钮操作 */
|
|
|
|
|
- handleUpdate(row) {
|
|
|
|
|
- this.reset();
|
|
|
|
|
- const id = row.id || this.ids
|
|
|
|
|
- getMerchantAppConfig(id).then(response => {
|
|
|
|
|
- this.form = response.data;
|
|
|
|
|
- this.open = true;
|
|
|
|
|
- this.title = "修改商户应用配置";
|
|
|
|
|
- });
|
|
|
|
|
- },
|
|
|
|
|
- /** 提交按钮 */
|
|
|
|
|
- submitForm() {
|
|
|
|
|
- this.$refs["form"].validate(valid => {
|
|
|
|
|
- if (valid) {
|
|
|
|
|
- if (this.form.id != null) {
|
|
|
|
|
- updateMerchantAppConfig(this.form).then(response => {
|
|
|
|
|
- this.msgSuccess("修改成功");
|
|
|
|
|
- this.open = false;
|
|
|
|
|
- this.getList();
|
|
|
|
|
- });
|
|
|
|
|
- } else {
|
|
|
|
|
- addMerchantAppConfig(this.form).then(response => {
|
|
|
|
|
- this.msgSuccess("新增成功");
|
|
|
|
|
- this.open = false;
|
|
|
|
|
- this.getList();
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ // /** 修改按钮操作 */
|
|
|
|
|
+ // handleUpdate(row) {
|
|
|
|
|
+ // this.reset();
|
|
|
|
|
+ // const id = row.id || this.ids
|
|
|
|
|
+ // getMerchantAppConfig(id).then(response => {
|
|
|
|
|
+ // this.form = response.data;
|
|
|
|
|
+ // this.open = true;
|
|
|
|
|
+ // this.title = "修改商户应用配置";
|
|
|
|
|
+ // });
|
|
|
|
|
+ // },
|
|
|
|
|
+ // /** 提交按钮 */
|
|
|
|
|
+ // submitForm() {
|
|
|
|
|
+ // this.$refs["form"].validate(valid => {
|
|
|
|
|
+ // if (valid) {
|
|
|
|
|
+ // if (this.form.id != null) {
|
|
|
|
|
+ // updateMerchantAppConfig(this.form).then(response => {
|
|
|
|
|
+ // this.msgSuccess("修改成功");
|
|
|
|
|
+ // this.open = false;
|
|
|
|
|
+ // this.getList();
|
|
|
|
|
+ // });
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // addMerchantAppConfig(this.form).then(response => {
|
|
|
|
|
+ // this.msgSuccess("新增成功");
|
|
|
|
|
+ // this.open = false;
|
|
|
|
|
+ // this.getList();
|
|
|
|
|
+ // });
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
+ // });
|
|
|
|
|
+ // },
|
|
|
/** 删除按钮操作 */
|
|
/** 删除按钮操作 */
|
|
|
handleDelete(row) {
|
|
handleDelete(row) {
|
|
|
const ids = row.id || this.ids;
|
|
const ids = row.id || this.ids;
|