ll
liukangdong
2024-12-03 b2e8e233d59d107615a8336dce9da36f1f8bcde0
h5/pages/workOrder/edit.vue
@@ -12,14 +12,25 @@
         <view class="item">
            <view class="la"><text class="red">*</text>选择区域</view>
            <view class="line sel_wrap" @click="showModal1 = true">
               <view class="left" :class="param.projectName ? '' : 'placeholder9'">{{ param.projectName ? `${param.projectName} ${param.buildingName || ''} ${param.areaType == 0 ? param.roomName || '' : param.floorName || ''}` : '请选择' }}</view>
               <view class="left" :class="param.projectName ? '' : 'placeholder9'">
                  {{ param.projectName ? `${param.projectName} ${param.buildingName || ''} ${param.areaType == 0 ? param.roomNum || '' : param.floorName || ''}` : '请选择' }}
               </view>
               <u-icon name="arrow-right" color="#999999" size="15"></u-icon>
            </view>
         </view>
         <view class="item">
            <view class="la"><text class="red">*</text>工单分类</view>
            <view class="line sel_wrap" @click="showCate1 = true">
               <view class="left" :class="param.cateName ? '' : 'placeholder9'">
                  {{ param.cateName ? param.cateName : '请选择' }}</view>
               <u-icon name="arrow-right" color="#999999" size="15"></u-icon>
            </view>
         </view>
         <view class="item">
            <view class="la">上门时间</view>
            <view class="line sel_wrap" @click="showTime = true">
               <view class="left" :class="param.getDate ? '' : 'placeholder9'">{{ param.getDate ? param.getDate : '请选择' }}</view>
               <view class="left" :class="param.getDate ? '' : 'placeholder9'">{{ param.getDate ? param.getDate : '请选择' }}
               </view>
               <u-icon name="arrow-right" color="#999999" size="15"></u-icon>
            </view>
         </view>
@@ -63,11 +74,14 @@
         :columns="buildingList"></u-picker>
      <u-picker :show="showModal3" keyName="name" @cancel="showModal3 = false" @confirm='confirm3'
         :columns="floorList"></u-picker>
      <u-picker :show="showModal4" keyName="name" @cancel="showModal4 = false" @confirm='confirm4'
      <u-picker :show="showModal4" keyName="roomNum" @cancel="showModal4 = false" @confirm='confirm4'
         :columns="roomList"></u-picker>
      <!--  -->
      <u-datetime-picker :minDate="new Date().getTime()" :show="showTime" @confirm="confirmDate"
         @cancel="showTime = false" mode="datetime"></u-datetime-picker>
      <u-picker :show="showCate1" keyName="name" ref="uPicker" @change="changeHandler" @cancel="showCate1 = false"
         @confirm='confirmCate1' :columns="cateList1"></u-picker>
   </view>
</template>
@@ -78,13 +92,17 @@
      ywBuildingPost,
      ywFloorPost,
      ywRoomPost,
      ywWorkorderCreate
      ywWorkorderCreate,
      getCategoryPost
   } from '@/api'
   import dayjs from 'dayjs';
   export default {
      data() {
         return {
            param: {},
            param: {
               areaName: '室内装修',
               areaType: 0
            },
            showUpload: false,
            fileList: [],
@@ -94,6 +112,8 @@
            showModal3: false,
            showModal4: false,
            showTime: false,
            showCate1: false,
            showCate2: false,
            areaType: [
               [{
                     name: '室内装修',
@@ -105,6 +125,8 @@
                  }
               ]
            ],
            cateList1: [],
            cateList2: [],
            projectList: [],
            buildingList: [],
            floorList: [],
@@ -113,10 +135,14 @@
      },
      onLoad() {
         this.getProject()
         this.getCate()
      },
      methods: {
         onSubmit() {
            const { param, fileList } = this
            const {
               param,
               fileList
            } = this
            ywWorkorderCreate({
               ...param,
               // roomId: '',
@@ -127,6 +153,32 @@
                  url: '/pages/workOrder/list'
               })
            })
         },
         changeHandler(e) {
            const {
               columnIndex,
               value,
               values, // values为当前变化列的数组内容
               index,
               // 微信小程序无法将picker实例传出来,只能通过ref操作
               picker = this.$refs.uPicker
            } = e
            // 当第一列值发生变化时,变化第二列(后一列)对应的选项
            console.log(index);
            console.log(index);
            if (columnIndex === 0) {
               // picker为选择器this实例,变化第二列对应的选项
               picker.setColumnValues(1, this.cateList1[0][index].childCategoryList)
            }
         },
         confirmCate1(e) {
            console.log(e.value[1]);
            if(e.value.length == 2){
               this.$set(this.param, 'cateId', e.value[1].id)
               this.$set(this.param, 'cateName', e.value[1].name)
               this.showCate1 = false
            }
         },
         confirm0(e) {
            const item = e.value[0]
@@ -151,7 +203,7 @@
            this.showModal2 = false
            this.$set(this.param, 'buildingName', item.name)
            this.$set(this.param, 'buildingId', item.id)
            if (this.areaType == 0) {
            if (this.param.areaType == 0) {
               this.getRoom(item.id)
               this.showModal4 = true
            } else {
@@ -168,12 +220,30 @@
         confirm4(e) {
            const item = e.value[0]
            this.showModal4 = false
            this.$set(this.param, 'roomName', item.name)
            this.$set(this.param, 'roomNum', item.roomNum)
            this.$set(this.param, 'roomId', item.id)
         },
         confirmDate(e) {
            this.$set(this.param, 'getDate', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'));
            this.showTime = false
         },
         getCate() {
            getCategoryPost({
               capacity: 9999,
               page: 1,
               model: {
                  type: 3
               }
            }).then(res => {
               let temp = res.data.records || []
               if (temp && temp.length > 0) {
                  this.cateList1 = [temp, temp[0].childCategoryList || []]
               } else {
                  this.cateList1 = [temp, []]
               }
               console.log(this.cateList1);
            })
         },
         getProject() {
            ywProjectPost().then(res => {
@@ -390,6 +460,7 @@
      font-size: 32rpx;
      color: #FFFFFF;
   }
   .sel_upload_wrap {
      width: 100%;
      border-top: 1px solid #666666;