<template> 
 | 
    <view> 
 | 
        <view class="container"> 
 | 
            <uni-forms ref="baseForm" :modelValue="baseFormData"> 
 | 
                <uni-forms-item label="售前规划单名称" required name="name"> 
 | 
                    <uni-easyinput v-model="baseFormData.name" placeholder="请输入售前规划单名称" /> 
 | 
                </uni-forms-item> 
 | 
                <uni-forms-item label="跟踪项目" required name="orderId" > 
 | 
                    <view @click="autoLoad('order','')"> 
 | 
                        <uni-combox :candidates="orderIds" placeholder="请选择跟踪项目" 
 | 
                        v-model="baseFormData.orderId$" @input="autoLoad('order',baseFormData.orderId$)"></uni-combox> 
 | 
                    </view> 
 | 
                </uni-forms-item> 
 | 
                <uni-forms-item label="客户名称" required name="cstmrId"> 
 | 
                    <view @click="autoLoad('cstmr','')"> 
 | 
                        <uni-combox :candidates="cstmrs" placeholder="请选择客户名称" 
 | 
                        v-model="baseFormData.cstmrId$" @input="autoLoad('cstmr',baseFormData.cstmrId$)"></uni-combox> 
 | 
                    </view> 
 | 
                </uni-forms-item> 
 | 
                <uni-forms-item label="业务员联系方式" required name="userXmlSelPhone"> 
 | 
                    <uni-easyinput v-model="baseFormData.userXmlSelPhone" placeholder="请输入业务员联系方式" /> 
 | 
                </uni-forms-item> 
 | 
                <uni-forms-item label="业务类型" required name="planType"> 
 | 
                    <uni-easyinput disabled placeholder="请输入业务类型" v-model="baseFormData.planType"></uni-easyinput> 
 | 
                </uni-forms-item> 
 | 
                <uni-forms-item label="立项"  name="beItem"> 
 | 
                    <uni-data-checkbox v-model="baseFormData.beItem" :localdata="beItem$" /> 
 | 
                </uni-forms-item> 
 | 
                 
 | 
                <uni-forms-item label="所需" name="planNeed"> 
 | 
                    <uni-data-checkbox v-model="baseFormData.planNeed" multiple :localdata="planNeeds" /> 
 | 
                </uni-forms-item> 
 | 
                 
 | 
                 
 | 
                 
 | 
                 
 | 
                <uni-forms-item label="更改方案" name="change"> 
 | 
                    <uni-data-checkbox v-model="baseFormData.change" :localdata="changeValue" /> 
 | 
                </uni-forms-item> 
 | 
                <uni-forms-item label="更改方案原因" name="changeReason"> 
 | 
                    <uni-easyinput v-model="baseFormData.changeReason" placeholder="请输入更改方案原因" /> 
 | 
                </uni-forms-item> 
 | 
                <uni-forms-item label="规格组长奖金" name="planLeaderBonus"> 
 | 
                    <uni-easyinput v-model="baseFormData.planLeaderBonus" placeholder="请输入规格组长奖金" /> 
 | 
                </uni-forms-item> 
 | 
                <uni-forms-item label="完成时间" name="finishTime"> 
 | 
                    <uni-datetime-picker type="date" return-type="string" v-model="baseFormData.finishTime"/> 
 | 
                    </uni-data-picker> 
 | 
                </uni-forms-item> 
 | 
                <uni-forms-item label="更改次数" name="changeTime"> 
 | 
                    <uni-easyinput v-model="baseFormData.changeTime" placeholder="请输入更改次数" /> 
 | 
                </uni-forms-item> 
 | 
                <uni-forms-item label="规格奖金" name="planBonus"> 
 | 
                    <uni-easyinput v-model="baseFormData.planBonus" placeholder="请输入规格奖金" /> 
 | 
                </uni-forms-item> 
 | 
            </uni-forms> 
 | 
            <button type="primary" @click="addCstmr()">修改</button> 
 | 
        </view> 
 | 
    </view> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
    import user from '@/pages/api/user/user.js' 
 | 
    import test from '../../../static/js/citys-data.js' 
 | 
    export default { 
 | 
        data() { 
 | 
            return { 
 | 
                orderIds: [], 
 | 
                orderList: [], 
 | 
                users: [], 
 | 
                userList: [], 
 | 
                cstmrs: [], 
 | 
                cstmrList: [], 
 | 
                baseFormData: { 
 | 
                    name: '', 
 | 
                    orderId: '', 
 | 
                    userId: '', 
 | 
                    appleTime: '', 
 | 
                    cstmrId: '', 
 | 
                    planType: '四向穿梭库/两向穿梭库', 
 | 
                    select_2: '', 
 | 
                    changeReason: '', 
 | 
                    changeTime: '', 
 | 
                    planBonus: '', 
 | 
                    planLeaderBonus: '', 
 | 
                    userXmlSelPhone: '' 
 | 
                }, 
 | 
                rules: { 
 | 
                    name: { 
 | 
                        rules: [{ 
 | 
                            required: true, 
 | 
                            errorMessage: '请输入售前规划单名称', 
 | 
                        }] 
 | 
                    }, 
 | 
                    orderId: { 
 | 
                        rules: [{ 
 | 
                            required: true, 
 | 
                            errorMessage: '请选择跟踪项目', 
 | 
                        }] 
 | 
                    }, 
 | 
                    userId: { 
 | 
                        rules: [{ 
 | 
                            required: true, 
 | 
                            errorMessage: '请选择业务员', 
 | 
                        }] 
 | 
                    }, 
 | 
                    userXmlSelPhone: { 
 | 
                        rules: [{ 
 | 
                            required: true, 
 | 
                            errorMessage: '请填写业务员联系方式', 
 | 
                        }] 
 | 
                    }, 
 | 
                    appleTime: { 
 | 
                        rules: [{ 
 | 
                            required: true, 
 | 
                            errorMessage: '请选择申请日期', 
 | 
                        }] 
 | 
                    }, 
 | 
                    cstmrId: { 
 | 
                        rules: [{ 
 | 
                            required: true, 
 | 
                            errorMessage: '请选择客户名称', 
 | 
                        }] 
 | 
                    }, 
 | 
                    planType: { 
 | 
                        rules: [{ 
 | 
                            required: true, 
 | 
                            errorMessage: '请输入业务类型', 
 | 
                        }] 
 | 
                    }, 
 | 
                }, 
 | 
                changeValue: [ 
 | 
                    { 
 | 
                        text: '是', 
 | 
                        value: 1 
 | 
                    }, 
 | 
                    { 
 | 
                        text: '否', 
 | 
                        value: 0 
 | 
                    } 
 | 
                ], 
 | 
                // 单选数据源 
 | 
                beItem$: [{ 
 | 
                    text: '是', 
 | 
                    value: 1 
 | 
                }, { 
 | 
                    text: '否(需售前技术跟进项目,与客户直接沟通等)', 
 | 
                    value: 0 
 | 
                }], 
 | 
                citysData: [], 
 | 
                citysDataTemp: '', 
 | 
                planNeeds: [ 
 | 
                    { 
 | 
                        text: '系统 方案规划设计', 
 | 
                        value: '1' 
 | 
                    },  
 | 
                    { 
 | 
                        text: '提供选材清单', 
 | 
                        value: '2' 
 | 
                    }, 
 | 
                    { 
 | 
                        text: '立体库设计方案', 
 | 
                        value: '3' 
 | 
                    } 
 | 
                ] 
 | 
                 
 | 
            } 
 | 
        }, 
 | 
        onReady() { 
 | 
                // 需要在onReady中设置规则 
 | 
                this.$refs.baseForm.setRules(this.rules) 
 | 
        }, 
 | 
        onShow() { 
 | 
            // 获取省市区 
 | 
            this.citysData = test.citysData 
 | 
            // 获取业务员联系方式 
 | 
            this.getDetail() 
 | 
        }, 
 | 
        onLoad(option) { 
 | 
            this.$nextTick(() => { 
 | 
                if (JSON.stringify(option) != "{}") { 
 | 
                    this.id = option.id 
 | 
                    this.init() 
 | 
                } else { 
 | 
                    let _this = this 
 | 
                    const eventChannel = this.getOpenerEventChannel(); 
 | 
                    eventChannel.on('cstmr', function(data) { 
 | 
                        _this.id = data.data 
 | 
                        _this.init() 
 | 
                    }) 
 | 
                } 
 | 
            }) 
 | 
        }, 
 | 
        methods: { 
 | 
            init() { 
 | 
                let that = this 
 | 
                uni.request({ 
 | 
                    url: that.baseUrl + '/plan/' + that.id +'/auth', 
 | 
                    header: {'token' : uni.getStorageSync('token')}, 
 | 
                    method: 'GET', 
 | 
                    success(res) { 
 | 
                        res = res.data 
 | 
                        if (res.code === 200) { 
 | 
                            let planNeed = res.data.planNeed.split('-') 
 | 
                            res.data.planNeed = [] 
 | 
                            for (let k of planNeed) { 
 | 
                                res.data.planNeed.push(k) 
 | 
                            } 
 | 
                            switch(res.data.select_2) { 
 | 
                                case 'value1': 
 | 
                                    res.data.select_2 = '横梁式' 
 | 
                                    break; 
 | 
                                case 'value2': 
 | 
                                    res.data.select_2 = '驶入式' 
 | 
                                    break; 
 | 
                                case 'value3': 
 | 
                                    res.data.select_2 = '悬梁式' 
 | 
                                    break; 
 | 
                                case 'value4': 
 | 
                                    res.data.select_2 = '流利式' 
 | 
                                    break; 
 | 
                                case 'value5': 
 | 
                                    res.data.select_2 = '重力式' 
 | 
                                    break; 
 | 
                                case 'value6': 
 | 
                                    res.data.select_2 = '其他' 
 | 
                                    break; 
 | 
                            } 
 | 
                            that.baseFormData = res.data 
 | 
                        } 
 | 
                    } 
 | 
                }) 
 | 
            }, 
 | 
            async getDetail() { 
 | 
                let res = await user.getDetail() 
 | 
                if (res.code === 200) { 
 | 
                    this.baseFormData.userXmlSelPhone = res.data.mobile 
 | 
                } else if (res.code === 403) { 
 | 
                    this.backLogin(res) 
 | 
                } 
 | 
            }, 
 | 
            bindPickerChange: function(e) { 
 | 
                this.cstmrTypeIndex = e.detail.value 
 | 
                this.baseFormData.cstmrType = this.cstmrTypes[e.detail.value].id 
 | 
            }, 
 | 
            areaChange(e) { 
 | 
                this.citysDataTemp = e.detail.value[0].value + ',' + e.detail.value[1].value + ',' + e.detail.value[2].value 
 | 
            }, 
 | 
            autoLoad(type,condition) { 
 | 
                let that = this 
 | 
                that.orderIds = [] 
 | 
                that.users = [] 
 | 
                that.cstmrs = [] 
 | 
                var a = that.baseUrl + '/' + type + 'Query/auth' 
 | 
                uni.request({ 
 | 
                    url: that.baseUrl + '/' + type + 'Query' +'/auth', 
 | 
                    header:{'token':uni.getStorageSync('token')}, 
 | 
                    data: {condition:condition}, 
 | 
                    method: 'GET', 
 | 
                    success(result) { 
 | 
                        var res = result.data 
 | 
                        if (res.code === 200) { 
 | 
                            var element; 
 | 
                            if (type == 'order') { 
 | 
                                for(element of res.data) { 
 | 
                                    that.orderIds.push(element.name) 
 | 
                                    that.orderList.push(element) 
 | 
                                } 
 | 
                                return 
 | 
                            } 
 | 
                            if (type == 'user') { 
 | 
                                for(element of res.data) { 
 | 
                                    that.users.push(element.value) 
 | 
                                    that.userList.push(element) 
 | 
                                } 
 | 
                                return 
 | 
                            } 
 | 
                            if (type == 'cstmr') { 
 | 
                                for(element of res.data) { 
 | 
                                    that.cstmrs.push(element.value) 
 | 
                                    that.cstmrList.push(element) 
 | 
                                } 
 | 
                                return 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
                }) 
 | 
            }, 
 | 
            getOrderId() { 
 | 
                let that = this 
 | 
                uni.request({ 
 | 
                    url: that.baseUrl + '/order/all/get/kv', 
 | 
                    header:{'token':uni.getStorageSync('token')}, 
 | 
                    data: {condition:condition}, 
 | 
                    method: 'GET', 
 | 
                    success(result) { 
 | 
                    } 
 | 
                }) 
 | 
            }, 
 | 
            // 添加用户 
 | 
            addCstmr() { 
 | 
                let that = this 
 | 
                var element 
 | 
                 
 | 
                for (element of that.cstmrList) { 
 | 
                    if(element.value == that.baseFormData.cstmrId$) { 
 | 
                        that.baseFormData.cstmrId = element.id 
 | 
                    } 
 | 
                } 
 | 
                for (element of that.orderList) { 
 | 
                    if(element.name == that.baseFormData.orderId$) { 
 | 
                        that.baseFormData.orderId = element.id 
 | 
                    } 
 | 
                } 
 | 
                that.baseFormData.planType = 11 
 | 
                var temp  
 | 
                for (var i = 0 ; i < that.baseFormData.planNeed.length; i++) { 
 | 
                    if (i == 0) { 
 | 
                        temp = that.baseFormData.planNeed[i] 
 | 
                    } else { 
 | 
                        temp = temp + '-' + that.baseFormData.planNeed[i] 
 | 
                    } 
 | 
                     
 | 
                } 
 | 
                that.baseFormData.planNeed = temp 
 | 
                this.$refs.baseForm.validate().then(res=>{ 
 | 
                    for (let k in res) { 
 | 
                        if (res[k] == undefined) { 
 | 
                            res[k] = '' 
 | 
                        } 
 | 
                    } 
 | 
                    res['id'] = that.baseFormData.id 
 | 
                    uni.request({ 
 | 
                        url: that.baseUrl + '/plan/update/auth', 
 | 
                        header:{ 
 | 
                            'token':uni.getStorageSync('token'), 
 | 
                            'content-type':'application/x-www-form-urlencoded', 
 | 
                            }, 
 | 
                        data: res, 
 | 
                        method: 'POST', 
 | 
                        success(result) { 
 | 
                            var res = result.data 
 | 
                            if (res.code === 200) { 
 | 
                                uni.navigateBack({delta:2}) 
 | 
                            } else if (res.code === 403) { 
 | 
                                uni.showToast({title: res.msg, icon: "none", position: 'top'}) 
 | 
                                setTimeout(() => { 
 | 
                                    uni.reLaunch({ 
 | 
                                        url: '../../login/login' 
 | 
                                    }); 
 | 
                                }, 1000); 
 | 
                            } else { 
 | 
                                uni.showToast({title: res.msg, icon: "none",position: 'top'}) 
 | 
                            } 
 | 
                        } 
 | 
                    }) 
 | 
                }).catch(err =>{ 
 | 
                }) 
 | 
            } 
 | 
        } 
 | 
         
 | 
    } 
 | 
</script> 
 | 
  
 | 
<style> 
 | 
    .container { 
 | 
        min-height: 50rpx; 
 | 
        padding: 15px; 
 | 
        background-color: #fff; 
 | 
        /* background-color: aqua; */ 
 | 
    } 
 | 
</style> 
 |