config.js 25.6 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {

    var Controller = {
        index: function () {
            var configIndex = new Vue({
                el: "#configIndex",
                data() {
                    return {
                        activeName: "basic",
                        configData: {
                            basic: [
                            //     {
                            //     id: 'shopro',
                            //     title: '商城信息',
                            //     tip: '配置商城基本信息',
                            //     message: '商城名称、H5域名、Logo',
                            //     icon: 'shopro-icon',
                            //     leaf: '#6ACAA5',
                            //     background: 'linear-gradient(180deg, #BAF0DD 0%, #51BC99 100%)',
                            //     url: "{:url(shopro.config/platform?type=shopro')}",
                            //     button: {
                            //         background: '#E0F1EB',
                            //         color: '#13986C'
                            //     },
                            // },
                                {
                                id: 'user',
                                title: '会员配置',
                                // tip: '配置默认会员信息',
                                // message: '默认昵称、头像、分组、余额、积分',
                                tip: '会员商品折扣、客服',
                                message: '会员商品折扣、客服',
                                icon: 'user-icon',
                                leaf: '#E0B163',
                                background: 'linear-gradient(180deg, #FCE6B7 0%, #E9A848 100%)',
                                button: {
                                    background: '#F7EDDD',
                                    color: '#B07318'
                                },
                            }, {
                                id: 'share',
                                // title: '分享配置',
                                // tip: '配置默认分享信息',
                                // message: '分享标题、图片、海报背景',
                                title: '分享及分销配置',
                                tip: '配置默认分享及分销信息',
                                message: '分享海报背景、返佣比例',
                                icon: 'share-icon',
                                leaf: '#915CF9',
                                background: 'linear-gradient(180deg, #D5B8FA 0%, #8F62C9 100%)',
                                button: {
                                    background: '#E7DEF6',
                                    color: '#6625CF'
                                },
                            },
                            //     {
                            //     id: 'score',
                            //     title: '积分配置',
                            //     tip: '配置默认积分规则',
                            //     message: '签到积分、连续签到规则',
                            //     icon: 'score-icon',
                            //     leaf: '#EC9371',
                            //     background: 'linear-gradient(180deg, #FADDC0 0%, #E47F6D 100%)',
                            //     button: {
                            //         background: '#F6E5E1',
                            //         color: '#D75125'
                            //     },
                            // },
                            //     {
                            //     id: 'withdraw',
                            //     title: '提现配置',
                            //     tip: '配置默认提现规则',
                            //     message: '手续费、最小最大金额',
                            //     icon: 'withdraw-icon',
                            //     leaf: '#EA6670',
                            //     background: 'linear-gradient(180deg, #FCB7BE 0%, #D36068 100%)',
                            //     button: {
                            //         background: '#F3DCDE',
                            //         color: '#D61226'
                            //     },
                            // },
                                {
                                id: 'order',
                                title: '订单配置',
                                tip: '配置默认订单规则',
                                message: '自动关闭、自动发货、自动评价',
                                icon: 'order-icon',
                                leaf: '#6991E7',
                                background: 'linear-gradient(180deg, #AFCBFD 0%, #5A7CCF 100%)',
                                button: {
                                    background: '#DBE2F6',
                                    color: '#1B5EE7'
                                },
                            }, {
                                id: 'services',
                                title: '第三方服务',
                                // tip: '配置物流及位置信息',
                                // message: '快递鸟物流、高德地图',
                                tip: '配置物流',
                                message: '快递鸟物流',
                                icon: 'services-icon',
                                leaf: '#14B0F3',
                                background: 'linear-gradient(180deg, #A5E2FC 0%, #158CBF 100%)',
                                button: {
                                    background: '#DBE2F6',
                                    color: '#00A3D7'
                                },
                            }],
                            platform: [
                            //     {
                            //     id: 'wxOfficialAccount',
                            //     title: '微信公众号',
                            //     tip: '配置微信公众号',
                            //     message: 'AppId、AppSecret、自动登录',
                            //     icon: 'wxOfficialAccount-icon',
                            //     leaf: '#6ACAA4',
                            //     background: 'linear-gradient(180deg, #AAF0D7 0%, #5CC09F 100%)',
                            //     buttonMessage: '公众号设置',
                            //     button: {
                            //         background: '#DEF0EA',
                            //         color: '#0EA753'
                            //     },
                            // },
                                {
                                id: 'wxMiniProgram',
                                title: '小程序',
                                tip: '配置小程序',
                                message: 'AppId、AppSecret、自动登录',
                                icon: 'wxMiniProgram-icon',
                                leaf: '#6962F7',
                                background: 'linear-gradient(180deg, #C1BFFF 0%, #6563C9 100%)',
                                buttonMessage: '小程序设置',
                                button: {
                                    background: '#D8D8F1',
                                    color: '#3932BF'
                                },
                            },
                            //     {
                            //     id: 'H5',
                            //     title: 'H5',
                            //     tip: '配置H5平台',
                            //     message: '微信H5支付信息',
                            //     icon: 'h5-icon',
                            //     leaf: '#EC9371',
                            //     background: 'linear-gradient(180deg, #FADDC0 0%, #E5806D 100%)',
                            //     buttonMessage: 'H5设置',
                            //     button: {
                            //         background: '#F7E6E1',
                            //         color: '#D75E37'
                            //     },
                            // },
                            //     {
                            //     id: 'App',
                            //     title: 'App',
                            //     tip: '配置App平台',
                            //     message: '生成App实现多端同步使用',
                            //     icon: 'App-icon',
                            //     leaf: '#6990E6',
                            //     background: 'linear-gradient(180deg, #BED6FF 0%, #6785CD 100%)',
                            //     buttonMessage: 'App设置',
                            //     button: {
                            //         background: '#DAE1F6',
                            //         color: '#1666D3'
                            //     },
                            // }
                            ],
                            payment: [{
                                id: 'wechat',
                                title: '微信支付',
                                tip: '',
                                message: '',
                                icon: 'wechat-icon',
                                leaf: '#6ACAA4',
                                background: 'linear-gradient(180deg, #AAF0D7 0%, #5DC1A0 100%)',
                                button: {
                                    background: '#DEF0EA',
                                    color: '#0EA753'
                                },
                            },
                            //     {
                            //     id: 'alipay',
                            //     title: '支付宝支付',
                            //     tip: '',
                            //     message: '',
                            //     icon: 'alipay-icon',
                            //     leaf: '#6990E6',
                            //     background: 'linear-gradient(180deg, #BFD6FF 0%, #6786CE 100%)',
                            //     button: {
                            //         background: '#DAE1F6',
                            //         color: '#005AD7',
                            //     },
                            // },
                            //     {
                            //     id: 'wallet',
                            //     title: '余额支付',
                            //     tip: '',
                            //     message: '',
                            //     icon: 'wallet-icon',
                            //     leaf: '#EC9371',
                            //     background: 'linear-gradient(180deg, #FADDC0 0%, #E6816E 100%)',
                            //     button: {
                            //         background: '#F7E6E1',
                            //         color: '#D75E37'
                            //     },
                            // },
                            //     {
                            //     id: 'apple',
                            //     title: 'Apple Pay',
                            //     tip: '',
                            //     message: '',
                            //     icon: 'apple-icon',
                            //     leaf: '#6962F7',
                            //     background: 'linear-gradient(180deg, #C2C0FF 0%, #6563C9 100%) ',
                            //     button: {
                            //         background: '#D8D8F1',
                            //         color: '#1E14E0',
                            //         cursor: 'auto'
                            //     },
                            // }
                            ]
                        }
                    }
                },
                mounted() {},
                methods: {
                    tabClick(tab, event) {
                        this.activeName = tab.name;
                    },
                    operation(id,title) {
                        let that=this;
                        Fast.api.open("shopro/config/platform?type=" + id+"&tab="+that.activeName+"&title="+title, title);
                    },
                },
            })
        },
        platform: function () {
            var configPlatform = new Vue({
                el: "#configPlatform",
                data() {
                    return {
                        platformData: {
                            shopro: {
                                name: '',
                                domain: '',
                                version:'',
                                logo:'',
                                logo_arr:[],
                                copyright:['','']
                            },
                            user: {
                                nickname: '',
                                avatar: '',
                                avatar_arr: [],
                                group_id:'',
                                money:'',
                                score:'',
                                discount:'',
                                service_phone:'',
                            },
                            share: {
                                title: '',
                                image:'',
                                goods_poster_bg:'',
                                user_poster_bg:'',
                                groupon_poster_bg:'',
                                image_arr:[],
                                goods_poster_bg_arr:[],
                                user_poster_bg_arr:[],
                                groupon_poster_bg_arr:[],
                                member_first:'',
                                // member_second:'',
                                order_first:'',
                                // order_second:'',
                            },
                            score:{
                                everyday: '',
                                until_day:'',
                                inc_value:'',
                            },
                            withdraw:{
                                service_fee: '',
                                min:'',
                                max:'',
                            },
                            order:{
                                order_auto_close: '',
                                order_auto_confirm:'',
                                order_auto_comment:'',
                                order_comment_content:''
                            },
                            services:{
                                amap: {
                                    appkey:''
                                },
                                express:{
                                    ebusiness_id:'',
                                    type:'free',
                                    appkey:'',
                                    jd_code:''
                                },
                            },
                            wxOfficialAccount: {
                                name: '',
                                wx_type: '',
                                avatar: '',
                                qrcode: '',
                                avatar_arr: [],
                                qrcode_arr: [],
                                app_id: '',
                                secret: '',
                                url: '',
                                token: '',
                                aes_key: '',
                                auto_login: '',
                                status: ''
                            },
                            wxMiniProgram: {
                                name: '',
                                avatar: '',
                                qrcode: '',
                                avatar_arr: [],
                                qrcode_arr: [],
                                app_id: '',
                                secret: '',
                                auto_login: '',
                            },
                            H5: {
                                app_id: '',
                                secret: '',
                            },
                            App: {
                                app_id: '',
                                secret: '',
                            },
                            wechat: {
                                platform: [],
                                mch_id: '',
                                key:'',
                                cert_client:'',
                                cert_key:''
                            },
                            alipay: {
                                platform: [],
                                app_id: '',
                                ali_public_key:'',
                                app_cert_public_key:'',
                                alipay_root_cert:'',
                                private_key:'',
                            },
                            wallet: {
                                platform: [],
                            },
                        },
                        type: new URLSearchParams(location.search).get('type'),
                        tab: new URLSearchParams(location.search).get('tab'),
                        title: new URLSearchParams(location.search).get('title'),
                        groupList:[],
                        detailForm: {},
                        must_delete:['logo_arr','avatar_arr','image_arr','goods_poster_bg_arr','user_poster_bg_arr','groupon_poster_bg_arr','qrcode_arr'],
                        expressAddress:window.location.origin+'/addons/shopro/express/callback'
                    }
                },
                mounted() {
                    this.operationData();
                },
                methods: {
                    operationData(){
                        this.detailForm = this.platformData[this.type]
                        if(Config.row){
                            for (key in this.detailForm) {
                                this.detailForm[key] = Config.row[key]
                            }
                        }
                        if(this.type=='shopro'){
                            this.detailForm.logo_arr=[]
                            this.detailForm.logo_arr.push(Fast.api.cdnurl(this.detailForm.logo))
                        }else if(this.type=='user'){
                            this.groupList=Config.groupList
                            this.detailForm.avatar_arr=[]
                            this.detailForm.avatar_arr.push(Fast.api.cdnurl(this.detailForm.avatar))
                        }else if(this.type=='share'){
                            this.detailForm.image_arr=[]
                            this.detailForm.image_arr.push(Fast.api.cdnurl(this.detailForm.image))
                            this.detailForm.goods_poster_bg_arr=[]
                            this.detailForm.goods_poster_bg_arr.push(Fast.api.cdnurl(this.detailForm.goods_poster_bg))
                            this.detailForm.user_poster_bg_arr=[]
                            this.detailForm.user_poster_bg_arr.push(Fast.api.cdnurl(this.detailForm.user_poster_bg))
                            this.detailForm.groupon_poster_bg_arr=[]
                            this.detailForm.groupon_poster_bg_arr.push(Fast.api.cdnurl(this.detailForm.groupon_poster_bg))
                        }else if(this.type=='withdraw'){
                            this.detailForm.service_fee=this.detailForm.service_fee*100
                        }else if(this.type=='wxOfficialAccount'){
                            this.detailForm.avatar_arr=[]
                            this.detailForm.avatar_arr.push(Fast.api.cdnurl(this.detailForm.avatar))
                            this.detailForm.qrcode_arr=[]
                            this.detailForm.qrcode_arr.push(Fast.api.cdnurl(this.detailForm.qrcode))
                        }else if(this.type=='wxMiniProgram'){
                            this.detailForm.avatar_arr=[]
                            this.detailForm.avatar_arr.push(Fast.api.cdnurl(this.detailForm.avatar))
                            this.detailForm.qrcode_arr=[]
                            this.detailForm.qrcode_arr.push(Fast.api.cdnurl(this.detailForm.qrcode))
                        }
                    },
                    addImg(type, field) {
                        let that = this;
                        Fast.api.open("general/attachment/select?multiple=false", "选择", {
                            callback: function (data) {
                                switch (type) {
                                    case "image":
                                        that.detailForm[field] = data.url;
                                        that.detailForm[field+'_arr'] = data.url;
                                        break;
                                        case "file":
                                        that.detailForm[field] = data.url;
                                        break;
                                }
                            }
                        });
                        return false;
                    },
                    delImg(type, field) {
                        let that = this;
                        switch (type) {
                            case "image":
                                that.detailForm[field] ='';
                                that.detailForm[field+'_arr'] = [];
                                break;
                            case "file":
                                that.detailForm[field] = '';
                                break;
                        }
                    },
                    submitFrom(type) {
                        let that = this;
                        if (type == 'yes') {
                            let submitData=JSON.parse(JSON.stringify(that.detailForm))
                            if(that.type=='withdraw'){
                                submitData.service_fee=(Number(submitData.service_fee)/100).toFixed(2)
                            }
                            that.must_delete.forEach(i => {
                                if(submitData[i]){
                                    delete submitData[i]
                                }
                            });
                            Fast.api.ajax({
                                url: 'shopro/config/platform?type='+that.type,
                                loading: true,
                                type: 'POST',
                                data: {
                                    data: JSON.stringify(submitData),
                                    group:that.tab,
                                    title:that.title
                                },
                            }, function (ret, res) {
                                Fast.api.close()
                            })
                        } else {
                            Fast.api.close()
                        }
                    },
                    chooseCoupon() {
                        var that = this;
                        var multiple = true;
                        that.detailForm.coupon_list = that.detailForm.coupon_list ? that.detailForm.coupon_list : [];
                        console.log(that.detailForm.coupon_list)
                        let idsArr=[]
                        if(that.detailForm.coupon_list.length>0){
                            that.detailForm.coupon_list.forEach(i=>{
                                idsArr.push(i.id)
                            })
                        }
                        console.log(idsArr)
                        let ids=idsArr.join(',')
                        parent.Fast.api.open("shopro/config/couponlist?multiple=" + multiple + "&ids="+ids, "选择优惠券", {
                            callback: function (data) {
                                let couponList=[]
                                if (Array.isArray(data.data)) {
                                    data.data.forEach(e => {
                                        let obj = {
                                            id: e.id,
                                            image: e.image,
                                            opt: 0,
                                            status_text: e.status_text,
                                            title: e.title,
                                            type_text: e.type_text,
                                        }
                                        couponList.push(obj)
                                    })
                                } else {
                                    let obj = {
                                        id: data.data.id,
                                        image: data.data.image,
                                        opt: 0,
                                        status_text: data.data.status_text,
                                        title: data.data.title,
                                        type_text: data.data.type_text,
                                    }
                                    couponList.push(obj)
                                }
                                that.detailForm.coupon_list = couponList;
                            }
                        });
                        return false;
                    },
                },
            })
        },
        add: function () {
            Controller.api.bindevent();
        },
        edit: function () {
            Controller.api.bindevent();
        },
        api: {
            bindevent: function () {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    };
    return Controller;
});