PaySetting.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. <template>
  2. <div class="manage-root personnel-create">
  3. <Header />
  4. <div class="manage-root-contain">
  5. <nav-menu class="manage-root-contain-left" :activeMenuIndex="activeMenuIndex"></nav-menu>
  6. <div class="manage-root-contain-right">
  7. <breadcrumb :breadcrumbList="breadcrumbList" class="breadcrumb-box"></breadcrumb>
  8. <div class="create-bottom">
  9. <h3>支付配置</h3>
  10. <el-form :model="registerForm" ref="registerForm" label-width="100px" class="registerForm" label-position="top">
  11. <h6>微信支付:</h6>
  12. <el-form-item label="开发者 ID" prop="app_id">
  13. <el-input v-model="registerForm.wx.app_id" autocomplete="off" placeholder="请输入址" @blur="handleTrim('registerForm','wx','app_id')" >
  14. </el-input>
  15. </el-form-item>
  16. <el-form-item label="商户 ID" prop="mch_id">
  17. <el-input v-model="registerForm.wx.mch_id" autocomplete="off" placeholder="请输入" @blur="handleTrim('registerForm','wx','mch_id')" >
  18. </el-input>
  19. </el-form-item>
  20. <el-form-item label="商户 API 安全密钥" prop="api_key">
  21. <el-input v-model="registerForm.wx.api_key" autocomplete="off" placeholder="请输入" @blur="handleTrim('registerForm','wx','api_key')" >
  22. </el-input>
  23. </el-form-item>
  24. <el-form-item label="终端 IP" prop="spbill_create_ip">
  25. <el-input v-model="registerForm.wx.spbill_create_ip" autocomplete="off" placeholder="请输入" @blur="handleTrim('registerForm','wx','spbill_create_ip')" >
  26. </el-input>
  27. </el-form-item>
  28. <el-form-item label="安全证书文件" prop="cert_file_List">
  29. <upload :datafileList="registerForm.wx.cert_file_List" :changeFillId="handleAvatarSuccess" :fileName="'courseResource'" :filleNumber="1" :showList="true" />
  30. <ul v-if="registerForm.wx.cert_file_List.length>0" class="resource-list">
  31. <li v-for="(itemR,indexR) in registerForm.wx.cert_file_List" :key="indexR">
  32. <a><span>{{itemR.name}}</span></a>
  33. <i class="el-icon-delete" @click="handleDelResource(indexR)"></i>
  34. </li>
  35. </ul>
  36. </el-form-item>
  37. <el-form-item label="支付通知地址" prop="notify_url">
  38. <el-input v-model="registerForm.wx.notify_url" autocomplete="off" placeholder="请输入" @blur="handleTrim('registerForm','wx','notify_url')" >
  39. </el-input>
  40. </el-form-item>
  41. <h6>支付宝支付:</h6>
  42. <el-form-item label="请求地址" prop="url">
  43. <el-input v-model="registerForm.zfb.url" autocomplete="off" placeholder="请输入" @blur="handleTrim('registerForm','zfb','url')" >
  44. </el-input>
  45. </el-form-item>
  46. <el-form-item label="商户 appid" prop="app_id">
  47. <el-input v-model="registerForm.zfb.app_id" autocomplete="off" placeholder="请输入" @blur="handleTrim('registerForm','zfb','app_id')" >
  48. </el-input>
  49. </el-form-item>
  50. <el-form-item label="应用私钥" prop="rsa_private_key">
  51. <el-input v-model="registerForm.zfb.rsa_private_key" autocomplete="off" placeholder="请输入" @blur="handleTrim('registerForm','zfb','rsa_private_key')" >
  52. </el-input>
  53. </el-form-item>
  54. <el-form-item label="支付宝公钥" prop="alipay_public_key">
  55. <el-input v-model="registerForm.zfb.alipay_public_key" autocomplete="off" placeholder="请输入" @blur="handleTrim('registerForm','zfb','alipay_public_key')" >
  56. </el-input>
  57. </el-form-item>
  58. <el-form-item label="SELLERID" prop="seller_id">
  59. <el-input v-model="registerForm.zfb.seller_id" autocomplete="off" placeholder="请输入" @blur="handleTrim('registerForm','zfb','seller_id')" >
  60. </el-input>
  61. </el-form-item>
  62. <el-form-item>
  63. <el-button type="primary" @click="onSubmit('registerForm')" size="small" :loading="loading">保存</el-button>
  64. <el-button @click="onCancel('registerForm')" size="small">取消</el-button>
  65. </el-form-item>
  66. </el-form>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. </template>
  72. <script>
  73. //这里可以导入其它文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
  74. //例如:import 《组件名称》from ‘《组件路径》';
  75. import Header from "../../components/Header.vue";
  76. import NavMenu from "../../components/NavMenu.vue"
  77. import Breadcrumb from '../../components/Breadcrumb.vue';
  78. import { getLogin } from "@/api/ajax";
  79. import Upload from "../../components/Upload.vue"
  80. export default {
  81. //import引入的组件需要注入到对象中才能使用
  82. components: { Header, NavMenu, Breadcrumb, Upload },
  83. props: {},
  84. data() {
  85. //这里存放数据
  86. return {
  87. activeMenuIndex: "pay_setting",
  88. breadcrumbList:[
  89. {
  90. icon:'setting',
  91. url:'',
  92. text:''
  93. },
  94. {
  95. icon:'',
  96. url:'',
  97. notLink: true,
  98. text:'系统配置'
  99. },
  100. {
  101. icon:'',
  102. url:'',
  103. text:'支付配置'
  104. }
  105. ],
  106. registerForm:{
  107. wx:{
  108. app_id: '',
  109. mch_id: '',
  110. api_key: '',
  111. spbill_create_ip: '',
  112. notify_url: '',
  113. cert_file_id: '',
  114. cert_file_List: [],
  115. notify_url: ''
  116. },
  117. zfb:{
  118. url: '',
  119. app_id: '',
  120. rsa_private_key: '',
  121. alipay_public_key: '',
  122. seller_id: ''
  123. }
  124. },
  125. loading: false
  126. }
  127. },
  128. //计算属性 类似于data概念
  129. computed: {
  130. },
  131. //监控data中数据变化
  132. watch: {
  133. },
  134. //方法集合
  135. methods: {
  136. // 去掉前后空格
  137. handleTrim(form,filds,fild){
  138. this[form][filds][fild] = this[form][filds][fild].trim()
  139. },
  140. handleAvatarSuccess(fileList,name) {
  141. this.registerForm.wx.cert_file_List = fileList
  142. this.registerForm.wx.cert_file_id = fileList[0]&&fileList[0].response&&fileList[0].response.file_info_list&&fileList[0].response.file_info_list[0]?fileList[0].response.file_info_list[0].file_id:''
  143. this.$forceUpdate()
  144. },
  145. // 删除资源文件
  146. handleDelResource(i){
  147. this.$confirm("确定删除吗?", "提示", {
  148. confirmButtonText: "确定",
  149. cancelButtonText: "取消",
  150. type: "warning",
  151. }).then(() => {
  152. this.registerForm.wx.cert_file_List.splice(i, 1);
  153. this.$forceUpdate()
  154. });
  155. },
  156. // 提交表单
  157. onSubmit(formName){
  158. this.$refs[formName].validate((valid) => {
  159. if (valid) {
  160. this.loading = true
  161. let MethodName = "/OrgServer/Manager/SysConfigManager/SetSysConfig_Pay";
  162. let data = this.registerForm
  163. getLogin(MethodName, data)
  164. .then((res) => {
  165. this.loading = false
  166. if(res.status===1){
  167. this.$message.success("保存成功")
  168. }
  169. }).catch((res) =>{
  170. this.loading = false
  171. })
  172. } else {
  173. return false;
  174. }
  175. });
  176. },
  177. // 取消 恢复到修改前状态
  178. onCancel(formName){
  179. this.$refs[formName].resetFields();
  180. },
  181. // 得到配置信息
  182. getInfo(){
  183. let MethodName = "/OrgServer/Manager/SysConfigManager/GetSysConfig_Pay";
  184. getLogin(MethodName, {})
  185. .then((res) => {
  186. if(res.status===1){
  187. this.registerForm = res
  188. this.registerForm.wx.cert_file_List = [
  189. {
  190. id: res.wx.cert_file_id,
  191. name: res.wx.cert_file_name
  192. }
  193. ]
  194. }
  195. }).catch((res) =>{
  196. })
  197. }
  198. },
  199. //生命周期 - 创建完成(可以访问当前this实例)
  200. created() {
  201. this.getInfo()
  202. },
  203. //生命周期 - 挂载完成(可以访问DOM元素)
  204. mounted() {
  205. },
  206. //生命周期-创建之前
  207. beforeCreated() { },
  208. //生命周期-挂载之前
  209. beforeMount() { },
  210. //生命周期-更新之前
  211. beforUpdate() { },
  212. //生命周期-更新之后
  213. updated() { },
  214. //生命周期-销毁之前
  215. beforeDestory() { },
  216. //生命周期-销毁完成
  217. destoryed() { },
  218. //如果页面有keep-alive缓存功能,这个函数会触发
  219. activated() { }
  220. }
  221. </script>
  222. <style lang="scss" scoped>
  223. /* @import url(); 引入css类 */
  224. .create-bottom{
  225. padding: 40px 40px;
  226. margin-top: 16px;
  227. background: #FFFFFF;
  228. border-radius: 4px;
  229. height: calc(100vh - 140px);
  230. overflow: auto;
  231. h3{
  232. font-size: 20px;
  233. font-weight: 500;
  234. line-height: 28px;
  235. margin: 0 0 28px 0;
  236. color: #1D2129;
  237. }
  238. h6{
  239. color: #000;
  240. font-size: 16px;
  241. font-weight: 500;
  242. line-height: 24px; /* 150% */
  243. margin: 24px 0 16px 0;
  244. }
  245. }
  246. .resource-list{
  247. list-style: none;
  248. margin: 12px 0 0 0;
  249. padding: 0;
  250. li{
  251. display: flex;
  252. align-items: center;
  253. a{
  254. width: 360px;
  255. padding: 7px 12px;
  256. background: #F7F8FA;
  257. border-radius: 2px;
  258. color: #1D2129;
  259. display: flex;
  260. align-items: center;
  261. cursor: inherit;
  262. span{
  263. overflow:hidden;
  264. text-overflow:ellipsis;
  265. white-space: nowrap;
  266. flex: 1;
  267. display: block;
  268. font-size: 14px;
  269. line-height: 22px;
  270. }
  271. .svg-icon{
  272. width: 16px;
  273. height: 16px;
  274. margin-right: 8px;
  275. color: #4E5969;
  276. }
  277. }
  278. .el-icon-delete{
  279. color: #4E5969;
  280. cursor: pointer;
  281. margin-left: 12px;
  282. &:hover{
  283. color: #165DFF;
  284. }
  285. }
  286. }
  287. }
  288. </style>
  289. <style lang="scss">
  290. </style>