소스 검색

系统设置-支付接口设置

WIN-B904R0U0NNS\Administrator 2 년 전
부모
커밋
3e6eefbfcb
2개의 변경된 파일180개의 추가작업 그리고 7개의 파일을 삭제
  1. 4 1
      src/api/api.js
  2. 176 6
      src/views/settings/components/payApiSettings.vue

+ 4 - 1
src/api/api.js

@@ -114,6 +114,8 @@ const queryBusDictTreeList = (params)=>getAction("/business/busDict/queryTreeLis
 const addBusDictItem = (params)=>postAction("/business/busDictItem/add",params);
 const editBusDictItem = (params)=>putAction("/business/busDictItem/edit",params);
 
+const getPayApiConfigInfo = (params)=>getAction("/business/busPayInterfaceConfig/queryByHotelId",params);
+
 // 中转HTTP请求
 export const transitRESTful = {
   get: (url, parameter) => getAction(getTransitURL(url), parameter),
@@ -189,7 +191,8 @@ export {
   getVipLevels,
   queryBusDictTreeList,
   addBusDictItem,
-  editBusDictItem
+  editBusDictItem,
+  getPayApiConfigInfo
 }
 
 

+ 176 - 6
src/views/settings/components/payApiSettings.vue

@@ -1,13 +1,183 @@
 <template>
-    <div>支付接口配置</div>
+    <a-spin :spinning="confirmLoading">
+        <j-form-container :disabled="formDisabled">
+            <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+                <a-form-item v-show="false"><a-input v-model="model.id"/></a-form-item>
+                <a-row>
+                    <a-col :span="24">
+                        <a-form-model-item label="是否启用" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="status">
+                            <a-select v-model="model.status" style="width: 100%">
+                                <a-select-option value="0">关闭</a-select-option>
+                                <a-select-option value="1">启用</a-select-option>
+                                <!--                                <a-select-option v-for="(item,index) in cardinalList" style="width: 100%"-->
+                                <!--                                                 :key="index" :value="item.value">{{ item.text || item.label }}</a-select-option>&ndash;&gt;-->
+                            </a-select>
+                        </a-form-model-item>
+                    </a-col>
+                    <a-col :span="24">
+                        <a-form-model-item label="绑定" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payTypeId">
+                            <a-select
+                                    v-model="model.payTypeId"
+                                    placeholder="请选择支付方式"
+                                    :allowClear="true"
+                            >
+                                <a-select-option :value="item.id" v-for="(item,index) in payTypeList" :key="index">{{ item.name }}</a-select-option>
+                            </a-select>
+                        </a-form-model-item>
+                    </a-col>
+                    <a-col :span="24">
+                        <a-form-model-item label="商户号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="merchantNo">
+                            <a-input v-model="model.merchantNo" placeholder="请输入商户号"  ></a-input>
+                        </a-form-model-item>
+                    </a-col>
+                    <a-col :span="24">
+                        <a-form-model-item label="终端号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="terminalNo">
+                            <a-input v-model="model.terminalNo" placeholder="请输入终端号"  ></a-input>
+                        </a-form-model-item>
+                    </a-col>
+                    <a-col :span="24">
+                        <a-form-model-item label="TOKEN令牌" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="token">
+                            <a-input v-model="model.token" placeholder="请输入TOKEN令牌"  ></a-input>
+                        </a-form-model-item>
+                    </a-col>
+                </a-row>
+                <a-button type="primary" @click="submitForm">确定</a-button>
+            </a-form-model>
+        </j-form-container>
+    </a-spin>
 </template>
 
 <script>
+
+    import { httpAction, getAction } from '@/api/manage'
+    import { validateDuplicateValue } from '@/utils/util'
+    import {getPayApiConfigInfo} from "../../../api/api";
+
     export default {
-        name: "payApiSettings"
-    }
-</script>
+        name: 'payApiSettings',
+        components: {
+        },
+        props: {
+            //表单禁用
+            disabled: {
+                type: Boolean,
+                default: false,
+                required: false
+            }
+        },
+        data () {
+            return {
+                model:{
+                },
+                labelCol: {
+                    xs: { span: 24 },
+                    sm: { span: 3 },
+                },
+                wrapperCol: {
+                    xs: { span: 24 },
+                    sm: { span: 20 },
+                },
+                confirmLoading: false,
+                validatorRules: {
+                    status: [
+                        { required: true, message: '请选择是否启用!'},
+                    ],
+                    payTypeId: [
+                        { required: true, message: '请选择关联支付方式!'},
+                    ],
+                    merchantNo: [
+                        { required: true, message: '请输入商户号!'},
+                    ],
+                    terminalNo: [
+                        { required: true, message: '请输入终端号!'},
+                    ],
+                    token: [
+                        { required: true, message: '请输入TOKEN令牌!'},
+                    ],
+                },
+                url: {
+                    add: "/business/busPayInterfaceConfig/add",
+                    edit: "/business/busPayInterfaceConfig/edit",
+                    query_payType: "/business/busRoomPayType/queryList",
+                },
+                payTypeList:[]
+            }
+        },
+        computed: {
+            formDisabled(){
+                return this.disabled
+            },
+        },
+        created () {
+            //备份model原始值
+            this.modelDefault = JSON.parse(JSON.stringify(this.model));
+            var _info = JSON.parse(localStorage.getItem("storeInfo"));
+            setTimeout(() => {
+                getPayApiConfigInfo({
+                }).then(res => {
+                    console.log(res)
+                    if (res.code == 200 && res.result ) {
+                        var info = res.result
+                        this.model = {
+                            id: info.id,
+                            status :info.status.toString(),
+                            payTypeId:info.payTypeId,
+                            merchantNo:info.merchantNo,
+                            terminalNo:info.terminalNo,
+                            token:info.token
+                        };
+                    }
+                })
+            }, 100)
 
-<style scoped>
+            getAction(this.url.query_payType,{}).then((res)=>{
+                if(res.success){
+                    this.payTypeList = res.result
+                }else{
 
-</style>
+                }
+            })
+        },
+        methods: {
+            add () {
+                this.edit(this.modelDefault);
+            },
+            edit (record) {
+                this.model = Object.assign({}, record);
+                this.visible = true;
+            },
+            submitForm () {
+                const that = this;
+                // 触发表单验证
+                this.$refs.form.validate(valid => {
+                    if (valid) {
+                        that.confirmLoading = true;
+                        let httpurl = '';
+                        let method = '';
+                        if(!this.model.id){
+                            httpurl+=this.url.add;
+                            method = 'post';
+                            var info = JSON.parse(localStorage.getItem("storeInfo"));
+                            this.model.hotelId = info.id;
+                        }else{
+                            httpurl+=this.url.edit;
+                            method = 'put';
+                        }
+                        httpAction(httpurl,this.model,method).then((res)=>{
+                            if(res.success){
+                                that.$message.success(res.message);
+                                that.$emit('ok');
+                                that.model.id = res.result.id
+                            }else{
+                                that.$message.warning(res.message);
+                            }
+                        }).finally(() => {
+                            that.confirmLoading = false;
+                        })
+                    }
+
+                })
+            },
+        }
+    }
+</script>