#
whycq
2023-11-13 81b8089d94e7f9537b8f5a00b68c95a9e858e2bf
pages/business/saleManage/addSaleManage.vue
@@ -2,38 +2,54 @@
   <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 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>
                  <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="cstmrId">
               <view @click="autoLoad('cstmr','')">
                  <uni-combox :candidates="cstmrs" placeholder="请选择甲方单位"
                  v-model="baseFormData.cstmrId" @input="autoLoad('cstmr',baseFormData.cstmrId)"></uni-combox>
            <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">
            <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>
                  <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="citysData">
               <uni-data-picker @change="areaChange" placeholder="请选择省市区" popup-title="请选择所在地区" :localdata="citysData" v-model="baseFormData.pcd">
               </uni-data-picker>
            <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="money">
               <uni-easyinput v-model="baseFormData.money" placeholder="请输入项目总金额" />
            <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>
@@ -45,6 +61,7 @@
<script>
   import test from '../../../static/js/citys-data.js'
   import user from '@/pages/api/user/user.js'
   export default {
      data() {
         return {
@@ -59,6 +76,8 @@
            cstmrList: [],
            directorList: [],
            companyList: [],
            orderProductTypeIds: [],
            orderProductTypeList: [],
            baseFormData: {
               citysData: [],
               cstmrType: '',
@@ -66,15 +85,23 @@
               director: '',
               rela: '',
               remarks: '',
               transactionRate: '',
               cstmrId: '',
               addr: '',
               money: ''
            },
            transactionRates: ['30%','40%','50%','60%','70%','80%','90%','100%'],
            rules: {
               name: {
                  rules: [{
                     required: true,
                     errorMessage: '请填写客户名称',
                     errorMessage: '请输入跟踪项目名称',
                  }]
               },
               cstmrId: {
                  rules: [{
                     required: true,
                     errorMessage: '请选择甲方单位',
                  }]
               },
               company: {
@@ -83,6 +110,36 @@
                     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$: [{
@@ -97,38 +154,54 @@
         }
      },
      onReady() {
            // 需要在onReady中设置规则
            this.$refs.baseForm.setRules(this.rules)
         // 需要在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
            this.citysDataTemp = e.detail.value[0].value + ',' + e.detail.value[1].value + ',' + e.detail.value[2]
               .value
         },
         autoLoad(type,condition) {
         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},
               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) {
                        for (element of res.data) {
                           that.directors.push(element.value)
                           that.directorList.push(element)
                        }
@@ -149,51 +222,66 @@
                        }
                        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) {
               if (element.name == that.baseFormData.company) {
                  that.baseFormData.company = element.id
               }
            }
            for (element of that.cstmrList) {
               if(element.value == that.baseFormData.cstmrId) {
               if (element.value == that.baseFormData.cstmrId) {
                  that.baseFormData.cstmrId = element.id
               }
            }
            for (element of that.directorList) {
               if(element.value == that.baseFormData.director) {
               console.log(that.directorList);
               console.log(that.baseFormData.director);
               if (element.value == that.baseFormData.director) {
                  that.baseFormData.director = element.id
               }
            }
            this.$refs.baseForm.validate().then(res=>{
            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) {
               if (res.money == undefined) {
                  res.money = ''
               }
               if(res.remarks == undefined) {
               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',
                     },
                  header: {
                     'token': uni.getStorageSync('token'),
                     'content-type': 'application/x-www-form-urlencoded',
                  },
                  data: res,
                  method: 'POST',
                  success(result) {
@@ -201,22 +289,29 @@
                     if (res.code === 200) {
                        uni.navigateBack()
                     } else if (res.code === 403) {
                        uni.showToast({title: res.msg, icon: "none", position: 'top'})
                        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'})
                        uni.showToast({
                           title: res.msg,
                           icon: "none",
                           position: 'top'
                        })
                     }
                  }
               })
            }).catch(err =>{
            })
            }).catch(err => {})
         }
      }
   }
</script>