#
whycq
2023-11-16 81d091a7bde2524f8d637beb73952a5f763079ba
pages/business/goBusiness/addgoBusiness.vue
@@ -7,27 +7,43 @@
            <view class="card-head-title">{{item.title}}</view>
         </view>
         <!-- body -->
         <view class="card-body flex-column" v-for="subItem in item.info">
            <view class="flex"><text class="card-required" v-show="subItem.required">*</text>{{subItem.subTitle}}</view>
         <view class="card-body flex-column" v-for="subItem in item.info" v-show="!subItem.unshow">
            <view class="flex"><text class="card-required" v-show="subItem.required">*</text>{{subItem.subTitle}}
            </view>
            <view class="flex">
               <view style="flex: 1;">
                  <input type="text" :placeholder="subItem.placeholder" :placeholder-style="subItem.placeholderStyle" v-model="subItem.value" :disabled="subItem.disabled" v-show="subItem.inputType != 'data'">
                  <uni-datetime-picker  v-model="subItem.value" :border="false" :red-color="subItem.placeholderStyle" v-if="subItem.inputType == 'data'" />
               <uni-combox :candidates="orderIds" placeholder="请选择项目" v-model="subItem.value"
                  @input="getOrderId(subItem.value)" v-show="subItem.inputType == 'chose'">
               </uni-combox>
               <view style="flex: 1;"  v-show="subItem.inputType != 'chose'">
                  <input type="text" :placeholder="subItem.placeholder"
                     :placeholder-style="subItem.placeholderStyle" v-model="subItem.value"
                     :disabled="subItem.disabled" v-show="subItem.inputType != 'data'">
                  <uni-datetime-picker v-model="subItem.value" :border="false"
                     :red-color="subItem.placeholderStyle" v-if="subItem.inputType == 'data'" />
               </view>
               
               <view class="flex" style="width: 50rpx;" v-show="subItem.inputType == 'select'" @click="showPicker(subItem.type)"><uni-icons type="right" color="#000" ></uni-icons></view>
               <view class="flex" style="width: 50rpx;" v-show="subItem.inputType == 'select'"
                  @click="showPicker(subItem.type)"><uni-icons type="right" color="#000"></uni-icons></view>
            </view>
         </view>
         
      </view>
      
      
      <u-picker :show="businessTransportationShow" :columns="businessTransportations" @confirm="businessTransportationConfirm"></u-picker>
      <u-picker :show="businessTransportationShow" :columns="businessTransportations"
         @confirm="businessTransportationConfirm"></u-picker>
      <u-picker :show="businessReturnShow" :columns="businessReturns" @confirm="businessReturnConfirm"></u-picker>
      <u-picker :show="pcdShow" ref="uPicker" :columns="columns" @confirm="pcdStartConfirm" @change="changeHandler" :defaultIndex="defaultIndex"></u-picker>
      <u-picker :show="pcdEndShow" ref="uPicker" :columns="columns" @confirm="pcdEndConfirm" @change="changeHandler" :defaultIndex="defaultIndex"></u-picker>
      <u-picker :show="businessStartTimeDayShow" :columns="businessStartTimeDays" @confirm="businessStartTimeDayConfirm"></u-picker>
      <u-picker :show="businessEndTimeDayShow" :columns="businessEndTimeDays" @confirm="businessEndTimeDayConfirm"></u-picker>
      <u-picker :show="pcdShow" ref="uPicker" :columns="columns" @confirm="pcdStartConfirm" @change="changeHandler"
         :defaultIndex="defaultIndex"></u-picker>
      <u-picker :show="pcdEndShow" ref="uPicker" :columns="columns" @confirm="pcdEndConfirm" @change="changeHandler"
         :defaultIndex="defaultIndex"></u-picker>
      <u-picker :show="businessStartTimeDayShow" :columns="businessStartTimeDays"
         @confirm="businessStartTimeDayConfirm"></u-picker>
      <u-picker :show="businessEndTimeDayShow" :columns="businessEndTimeDays"
         @confirm="businessEndTimeDayConfirm"></u-picker>
      
      <view style="height: 120rpx;"></view>
      
@@ -44,6 +60,10 @@
   export default {
      data() {
         return {
            type: 'add',
            orderIds: [],
            orderId: '',
            orderIdList: [],
            year: '2021-5-3',
            placeholderStyle: 'font-size:20rpx',
            form: {
@@ -54,48 +74,235 @@
            defaultIndex: [],
            citysData: data.citysData,
            businessTransportationShow: false,
            businessTransportations: [['飞机','高铁','火车','汽车','摩托','电车','其他']],
            businessTransportations: [
               ['飞机', '高铁', '火车', '汽车', '摩托', '电车', '其他']
            ],
            businessReturnShow: false,
            businessReturns: [['单程','往返']],
            businessReturns: [
               ['单程', '往返']
            ],
            pcdShow: false,
            pcdEndShow: false,
            pcds: data.citysData,
            businessStartTimeDayShow: false,
            businessStartTimeDays: [['上午','下午']],
            businessStartTimeDays: [
               ['上午', '下午']
            ],
            businessEndTimeDayShow: false,
            businessEndTimeDays: [['上午','下午']],
            form2: [
               {title: '基本信息',info:[
                  {subTitle: '出差事由',placeholder: '请输入出差事由',placeholderStyle: 'font-size:20rpx', value: '',submitVal: '出差事由',type: 'businessTripReasons',inputType: 'input',required: true}
               ]},
               {title: '行程信息',info:[
                  {subTitle: '交通工具',placeholder: '请选择交通工具',placeholderStyle: 'font-size:20rpx',value: '',type: 'businessTransportation',inputType: 'select',disabled:true,required: true},
                  {subTitle: '单程往返',placeholder: '请选择单程单程',placeholderStyle: 'font-size:20rpx',value: '',type: 'businessReturn',inputType: 'select',disabled:true,required: true},
                  {subTitle: '车牌号',placeholder: '请输入车牌号',placeholderStyle: 'font-size:20rpx',value: '',type: 'carNumber',inputType: 'input',required: true},
                  {subTitle: '行程明细及公里数',placeholder: '请输入行程明细及公里数',placeholderStyle: 'font-size:20rpx',value: '',type: 'kilometers',inputType: 'input',required: true},
                  {subTitle: '出发地',placeholder: '请选择出发地',placeholderStyle: 'font-size:20rpx',value: '',type: 'pcdStart',inputType: 'select',disabled:true,required: true},
                  {subTitle: '出发地详细地址',placeholder: '请输入出发地详细地址',placeholderStyle: 'font-size:20rpx',value: '',type: 'businessStartAddr',inputType: 'input',required: true},
                  {subTitle: '目的地',placeholder: '请选择目的地',placeholderStyle: 'font-size:20rpx',value: '',type: 'pcdEnd',inputType: 'select',disabled:true,required: true},
                  {subTitle: '目的地详细地址',placeholder: '请输入目的地详细地址',placeholderStyle: 'font-size:20rpx',value: '',type: 'businessEndAddr',inputType: 'input',required: true},
               ]},
               {title: '日期信息',info:[
                  {subTitle: '出发日期',placeholder: '请选择出发日期',placeholderStyle: 'font-size:20rpx',value: '2021-5-3',type: 'businessStartTime',inputType: 'data',required: true},
                  {subTitle: '出发时辰',placeholder: '请选择出发时辰',placeholderStyle: 'font-size:20rpx',value: '',type: 'businessStartTimeDay',inputType: 'select',disabled:true,required: true},
                  {subTitle: '结束日期',placeholder: '请选择结束日期',placeholderStyle: 'font-size:20rpx',value: '2021-5-3',type: 'businessEndTime',inputType: 'data',required: true},
                  {subTitle: '结束时辰',placeholder: '请选择结束时辰',placeholderStyle: 'font-size:20rpx',value: '',type: 'businessEndTimeDay',inputType: 'select',disabled:true,required: true}
               ]},
               {title: '基本信息',info:[
                  {subTitle: '同行人',placeholder: '请输入同行人',placeholderStyle: 'font-size:20rpx',value: '同行人',type: 'businessPeers',inputType: 'input',required: true},
                  {subTitle: '备注',placeholder: '备注信息',placeholderStyle: 'font-size:20rpx',value: '备注',inputType: 'input',type: 'businessNotes'}
               ]},
            businessEndTimeDays: [
               ['上午', '下午']
            ],
            form2: [{
                  title: '基本信息',
                  info: [{
                        subTitle: '项目名称',
                        placeholder: '请输入项目名称',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        submitVal: '',
                        type: 'orderId',
                        inputType: 'chose',
                        required: true,
                        unshow: false
                     },
                     {
                        subTitle: '出差事由',
                        placeholder: '请输入出差事由',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        submitVal: '出差事由',
                        type: 'businessTripReasons',
                        inputType: 'input',
                        required: true
                     },
                  ]
               },
               {
                  title: '行程信息',
                  info: [{
                        subTitle: '交通工具',
                        placeholder: '请选择交通工具',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        type: 'businessTransportation',
                        inputType: 'select',
                        disabled: true,
                        required: true
                     },
                     {
                        subTitle: '单程往返',
                        placeholder: '请选择单程单程',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        type: 'businessReturn',
                        inputType: 'select',
                        disabled: true,
                        required: true
                     },
                     {
                        subTitle: '车牌号',
                        placeholder: '请输入车牌号',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        type: 'carNumber',
                        inputType: 'input',
                        required: true
                     },
                     {
                        subTitle: '行程明细及公里数',
                        placeholder: '请输入行程明细及公里数',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        type: 'kilometers',
                        inputType: 'input',
                        required: true
                     },
                     {
                        subTitle: '出发地',
                        placeholder: '请选择出发地',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        type: 'pcdStart',
                        inputType: 'select',
                        disabled: true,
                        required: true
                     },
                     {
                        subTitle: '出发地详细地址',
                        placeholder: '请输入出发地详细地址',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        type: 'businessStartAddr',
                        inputType: 'input',
                        required: true
                     },
                     {
                        subTitle: '目的地',
                        placeholder: '请选择目的地',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        type: 'pcdEnd',
                        inputType: 'select',
                        disabled: true,
                        required: true
                     },
                     {
                        subTitle: '目的地详细地址',
                        placeholder: '请输入目的地详细地址',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        type: 'businessEndAddr',
                        inputType: 'input',
                        required: true
                     },
                  ]
               },
               {
                  title: '日期信息',
                  info: [{
                        subTitle: '出发日期',
                        placeholder: '请选择出发日期',
                        placeholderStyle: 'font-size:20rpx',
                        value: '2021-5-3',
                        type: 'businessStartTime',
                        inputType: 'data',
                        required: true
                     },
                     {
                        subTitle: '出发时辰',
                        placeholder: '请选择出发时辰',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        type: 'businessStartTimeDay',
                        inputType: 'select',
                        disabled: true,
                        required: true
                     },
                     {
                        subTitle: '结束日期',
                        placeholder: '请选择结束日期',
                        placeholderStyle: 'font-size:20rpx',
                        value: '2021-5-3',
                        type: 'businessEndTime',
                        inputType: 'data',
                        required: true
                     },
                     {
                        subTitle: '结束时辰',
                        placeholder: '请选择结束时辰',
                        placeholderStyle: 'font-size:20rpx',
                        value: '',
                        type: 'businessEndTimeDay',
                        inputType: 'select',
                        disabled: true,
                        required: true
                     }
                  ]
               },
               {
                  title: '基本信息',
                  info: [{
                        subTitle: '同行人',
                        placeholder: '请输入同行人',
                        placeholderStyle: 'font-size:20rpx',
                        value: '同行人',
                        type: 'businessPeers',
                        inputType: 'input',
                        required: true
                     },
                     {
                        subTitle: '备注',
                        placeholder: '备注信息',
                        placeholderStyle: 'font-size:20rpx',
                        value: '备注',
                        inputType: 'input',
                        type: 'businessNotes'
                     }
                  ]
               },
            ],
            
         }
      },
      onLoad(option) {
         let _this = this
         const eventChannel = this.getOpenerEventChannel();
         eventChannel.on('goBusinessDel', function(data) {
            if (data.data == 'add') {
               _this.getOrderId('')
            }
         })
      },
      mounted() {
         this.handlePcd();
      },
      methods: {
         getOrderId(condition) {
            // console.log(condition);
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/orderQueryName/auth`,
               header: { 'token': uni.getStorageSync('token') },
               method: 'POST',
               data: {condition: condition},
               success(res) {
                  res = res.data
                  _this.orderIds = []
                  _this.orderIdList = []
                  if (res.code === 200 && res.data) {
                     _this.orderIds2 = res.data
                     for (let k of res.data) {
                        _this.orderIds.push(k.value)
                        _this.orderIdList.push(k)
                     }
                  }
               }
            })
         },
         handlePcd() {
            let sheng_s = '110000';  
            let shi_s = '110100';  
@@ -186,13 +393,22 @@
               for (let sub of k.info) {
                  if (sub.inputType == 'select') {
                     this.form[sub.type] = sub.submitVal
                  } else if (sub.inputType == 'chose') {
                     if (!sub.unshow) {
                        for (let odd of this.orderIdList) {
                           if (sub.value == odd.value) {
                              this.form[sub.type] = odd.id
                           }
                        }
                     }
                  } else {
                     this.form[sub.type] = sub.value
                  }
                  if (sub.required) {
                     sub.placeholderStyle = 'font-size:20rpx;'
                     if (sub.value == '' || (sub.submitVal == '' && sub.submitVal < 0)) {
                        console.log(sub);
                        // console.log(sub);
                        sub.placeholderStyle = 'font-size:20rpx;color:red'
                        subPass = false
                     } 
@@ -200,10 +416,13 @@
                  
               }
            }
            // console.log(this.form.orderId);
            // console.log(this.orderIds);
            console.log(this.form);
            console.log(subPass);
            // console.log(subPass);
            if(subPass) {
               console.log(this.form);
               // console.log(this.form);
            }
            
         },
@@ -313,34 +532,41 @@
<style scoped>
   .card {
      min-height: 100rpx;
      margin: 16rpx 0 0 0;
      margin: 16rpx 20rpx 0 20rpx;
      background-color: #fff;
   }
   .card-head {
      min-height: 60rpx;
      width: calc(100%-5px);
      margin-left: 4px;
      box-shadow: -4px 0 0px #2d8cf0;
   }
   .card-head-title {
      /* background-color: #556655; */
      padding-left: 6px;
   }
   .card-body {
      margin: 8rpx 8rpx 0 8rpx ;
   }
   .card-required {
      color: red;
      padding-right: 4rpx;
   }
   .flex {
      display: flex;
      align-items: center;
   }
   .flex-column {
      display: flex;
      flex-direction: column;
   }
   .floor {
      height: 100rpx;
      line-height: 100rpx;
@@ -354,17 +580,21 @@
      text-align: center;
      letter-spacing: 10rpx;
   }
   .default {
      flex: 2;
   }
   .default:active {
      background-color: #eff0f1;
   }
   .primary {
      flex: 3;
      background-color: #2d8cf0;
      color: #fff;
   }
   .primary:active {
      background-color: #007dea;
   }