| <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="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="company"> | 
|                     <view @click="autoLoad('company','')"> | 
|                         <uni-combox :candidates="companies" placeholder="请选所属公司" v-model="baseFormData.company" | 
|                             @input="autoLoad('company',baseFormData.company)"></uni-combox> | 
|                     </view> | 
|                 </uni-forms-item> | 
|                 <uni-forms-item label="预算金额(万元)" name="money" required> | 
|                     <uni-easyinput v-model="baseFormData.money" placeholder="请输入预算金额(万元)" /> | 
|                 </uni-forms-item> | 
|                 <uni-forms-item label="预计成交率" name="transactionRate" required> | 
|                     <view> | 
|                         <uni-combox :candidates="transactionRates" placeholder="请选择预计成交率"  | 
|                         v-model="baseFormData.transactionRate" ></uni-combox> | 
|                     </view> | 
|                 </uni-forms-item> | 
|                 <uni-forms-item label="负责人" name="director" required> | 
|                     <view @click="autoLoad('user','')"> | 
|                         <uni-combox :candidates="directors" placeholder="请选择负责人" v-model="baseFormData.director" | 
|                             @input="autoLoad('user',baseFormData.director)"></uni-combox> | 
|                     </view> | 
|                 </uni-forms-item> | 
|                 <uni-forms-item label="产品类型" name="orderProductTypeId" required> | 
|                     <view @click="autoLoad('orderProductType','')"> | 
|                         <uni-combox :candidates="orderProductTypeIds" placeholder="请选择产品类型"  | 
|                         v-model="baseFormData.orderProductTypeId" | 
|                             @input="autoLoad('orderProductType',baseFormData.orderProductTypeId)"></uni-combox> | 
|                     </view> | 
|                 </uni-forms-item> | 
|                 <uni-forms-item label="省市区" name="citysData" required> | 
|                     <uni-data-picker @change="areaChange" placeholder="请选择省市区" popup-title="请选择所在地区" | 
|                         :localdata="citysData" v-model="baseFormData.pcd"> | 
|                     </uni-data-picker> | 
|                 </uni-forms-item> | 
|                 <uni-forms-item label="项目地址" name="addr"> | 
|                     <uni-easyinput v-model="baseFormData.addr" placeholder="请输入项目地址" /> | 
|                 </uni-forms-item> | 
|                 <uni-forms-item label="心得体会" name="memoExperience"> | 
|                     <uni-easyinput type="textarea" v-model="baseFormData.memoExperience" placeholder="请输入心得体会" /> | 
|                 </uni-forms-item> | 
|                 <uni-forms-item label="备注" name="remarks"> | 
|                     <uni-easyinput type="textarea" v-model="baseFormData.remarks" placeholder="请输入备注" /> | 
|                 </uni-forms-item> | 
|             </uni-forms> | 
|             <button type="primary" @click="addOrder()">添加</button> | 
|         </view> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     import test from '../../../static/js/citys-data.js' | 
|     import user from '@/pages/api/user/user.js' | 
|     export default { | 
|         data() { | 
|             return { | 
|                 cstmrTypes: [], | 
|                 cstmrType: '', | 
|                 companies: [], | 
|                 directors: [], | 
|                 director: '', | 
|                 cstmrs: [], | 
|                 cstmr: '', | 
|                 cstmrTypeList: [], | 
|                 cstmrList: [], | 
|                 directorList: [], | 
|                 companyList: [], | 
|                 orderProductTypeIds: [], | 
|                 orderProductTypeList: [], | 
|                 baseFormData: { | 
|                     citysData: [], | 
|                     cstmrType: '', | 
|                     company: '', | 
|                     director: '', | 
|                     rela: '', | 
|                     remarks: '', | 
|                     transactionRate: '', | 
|                     cstmrId: '', | 
|                     addr: '', | 
|                     money: '' | 
|                 }, | 
|                 transactionRates: ['30%','40%','50%','60%','70%','80%','90%','100%'], | 
|                 rules: { | 
|                     name: { | 
|                         rules: [{ | 
|                             required: true, | 
|                             errorMessage: '请输入跟踪项目名称', | 
|                         }] | 
|                     }, | 
|                     cstmrId: { | 
|                         rules: [{ | 
|                             required: true, | 
|                             errorMessage: '请选择甲方单位', | 
|                         }] | 
|                     }, | 
|                     company: { | 
|                         rules: [{ | 
|                             required: true, | 
|                             errorMessage: '请选所属公司', | 
|                         }] | 
|                     }, | 
|                     money: { | 
|                         rules: [{ | 
|                             required: true, | 
|                             errorMessage: '请输入预算金额', | 
|                         }] | 
|                     }, | 
|                     transactionRate: { | 
|                         rules: [{ | 
|                             required: true, | 
|                             errorMessage: '请选择预计成交率', | 
|                         }] | 
|                     }, | 
|                     director: { | 
|                         rules: [{ | 
|                             required: true, | 
|                             errorMessage: '请选择负责人', | 
|                         }] | 
|                     }, | 
|                     orderProductTypeId: { | 
|                         rules: [{ | 
|                             required: true, | 
|                             errorMessage: '请选择产品类型', | 
|                         }] | 
|                     }, | 
|                     citysData: { | 
|                         rules: [{ | 
|                             required: true, | 
|                             errorMessage: '请选择所在地区', | 
|                         }] | 
|                     } | 
|                 }, | 
|                 // 单选数据源 | 
|                 type$: [{ | 
|                     text: '内销', | 
|                     value: 1 | 
|                 }, { | 
|                     text: '外销', | 
|                     value: 2 | 
|                 }], | 
|                 citysData: [], | 
|                 citysDataTemp: '' | 
|             } | 
|         }, | 
|         onReady() { | 
|             // 需要在onReady中设置规则 | 
|             this.$refs.baseForm.setRules(this.rules) | 
|         }, | 
|         onShow() { | 
|             // 获取省市区 | 
|             this.citysData = test.citysData | 
|             this.getDetail() | 
|         }, | 
|         methods: { | 
|             async getDetail() { | 
|                 let res = await user.getDetail() | 
|                 if (res.code === 200) { | 
|                     this.baseFormData.director = res.data.username | 
|                     res.data['value'] = res.data.username | 
|                     this.directors.push(res.data.username) | 
|                     this.directorList.push(res.data) | 
|                 }  | 
|             }, | 
|             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.companies = [] | 
|                 that.directors = [] | 
|                 that.cstmrs = [] | 
|                 that.orderProductTypeIds = [] | 
|                 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 == 'user') { | 
|                                 for (element of res.data) { | 
|                                     that.directors.push(element.value) | 
|                                     that.directorList.push(element) | 
|                                 } | 
|                                 return | 
|                             } | 
|                             if (type == 'company') { | 
|                                 for (element of res.data) { | 
|                                     that.companies.push(element.name) | 
|                                     that.listAuth(type) | 
|                                     that.companyList.push(element) | 
|                                 } | 
|                                 return | 
|                             } | 
|                             if (type == 'cstmr') { | 
|                                 for (element of res.data) { | 
|                                     that.cstmrs.push(element.value) | 
|                                     that.cstmrList.push(element) | 
|                                 } | 
|                                 return | 
|                             } | 
|                             if (type == 'orderProductType') { | 
|                                 for (element of res.data) { | 
|                                     that.orderProductTypeIds.push(element.value) | 
|                                     that.orderProductTypeList.push(element) | 
|                                 } | 
|                                 return | 
|                             } | 
|                         } | 
|   | 
|                     } | 
|                 }) | 
|             }, | 
|             listAuth(type) { | 
|   | 
|             }, | 
|             // 添加跟踪项目 | 
|             addOrder() { | 
|                 let that = this | 
|                 var element; | 
|                 // 所属公司 | 
|                 for (element of that.companyList) { | 
|                     if (element.name == that.baseFormData.company) { | 
|                         that.baseFormData.company = element.id | 
|                     } | 
|                 } | 
|                 for (element of that.cstmrList) { | 
|                     if (element.value == that.baseFormData.cstmrId) { | 
|                         that.baseFormData.cstmrId = element.id | 
|                     } | 
|                 } | 
|                 for (element of that.directorList) { | 
|                     console.log(that.directorList); | 
|                     console.log(that.baseFormData.director); | 
|                     if (element.value == that.baseFormData.director) { | 
|                         that.baseFormData.director = element.id | 
|                     } | 
|                 } | 
|                 for (element of that.orderProductTypeList) { | 
|                     if (element.value == that.baseFormData.orderProductTypeId) { | 
|                         that.baseFormData.orderProductTypeId = element.id | 
|                     } | 
|                 } | 
|                 that.baseFormData.transactionRate = Number(that.baseFormData.transactionRate.split('%')[0]) | 
|                 this.$refs.baseForm.validate().then(res => { | 
|                     if (res.addr == undefined) { | 
|                         res.addr = '' | 
|                     } | 
|                     if (res.money == undefined) { | 
|                         res.money = '' | 
|                     } | 
|                     if (res.remarks == undefined) { | 
|                         res.remarks = '' | 
|                     } | 
|                     res.pcd = this.citysDataTemp | 
|                     uni.request({ | 
|                         url: that.baseUrl + '/order/add/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() | 
|                             } 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> |