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"
      <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>
@@ -77,14 +91,18 @@
      ywProjectPost,
      ywBuildingPost,
      ywFloorPost,
      ywRoomPost,
      ywWorkorderCreate
      ywRoomPost,
      ywWorkorderCreate,
      getCategoryPost
   } from '@/api'
   import dayjs from 'dayjs';
   export default {
      data() {
         return {
            param: {},
            param: {
               areaName: '室内装修',
               areaType: 0
            },
            showUpload: false,
            fileList: [],
@@ -92,8 +110,10 @@
            showModal1: false,
            showModal2: false,
            showModal3: false,
            showModal4: false,
            showModal4: false,
            showTime: false,
            showCate1: false,
            showCate2: false,
            areaType: [
               [{
                     name: '室内装修',
@@ -105,6 +125,8 @@
                  }
               ]
            ],
            cateList1: [],
            cateList2: [],
            projectList: [],
            buildingList: [],
            floorList: [],
@@ -113,29 +135,59 @@
      },
      onLoad() {
         this.getProject()
         this.getCate()
      },
      methods: {
         onSubmit() {
            const { param, fileList } = this
            ywWorkorderCreate({
               ...param,
               // roomId: '',
               fileList
            }).then(res => {
               this.showToast('提交成功')
               uni.redirectTo({
                  url: '/pages/workOrder/list'
               })
            })
      methods: {
         onSubmit() {
            const {
               param,
               fileList
            } = this
            ywWorkorderCreate({
               ...param,
               // roomId: '',
               fileList
            }).then(res => {
               this.showToast('提交成功')
               uni.redirectTo({
                  url: '/pages/workOrder/list'
               })
            })
         },
         confirm0(e) {
         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]
            this.$set(this.param, 'areaType', item.id)
            this.$set(this.param, 'areaName', item.name)
            this.showModal0 = false
            this.param = {
               areaType: item.id,
               areaName: item.name,
            this.showModal0 = false
            this.param = {
               areaType: item.id,
               areaName: item.name,
            }
         },
         confirm1(e) {
@@ -151,29 +203,47 @@
            this.showModal2 = false
            this.$set(this.param, 'buildingName', item.name)
            this.$set(this.param, 'buildingId', item.id)
            if (this.areaType == 0) {
               this.getRoom(item.id)
            if (this.param.areaType == 0) {
               this.getRoom(item.id)
               this.showModal4 = true
            } else {
               this.getFloor(item.id)
               this.getFloor(item.id)
               this.showModal3 = true
            }
         },
         confirm3(e) {
            const item = e.value[0]
            this.showModal3 = false
            this.$set(this.param, 'floorName', item.name)
            this.$set(this.param, 'floorId', item.id)
         },
         confirm4(e) {
            const item = e.value[0]
            this.showModal4 = false
            this.$set(this.param, 'roomName', item.name)
            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
         },
         confirm3(e) {
            const item = e.value[0]
            this.showModal3 = false
            this.$set(this.param, 'floorName', item.name)
            this.$set(this.param, 'floorId', item.id)
         },
         confirm4(e) {
            const item = e.value[0]
            this.showModal4 = false
            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 => {
@@ -389,16 +459,17 @@
      font-weight: 500;
      font-size: 32rpx;
      color: #FFFFFF;
   }
   .sel_upload_wrap {
      width: 100%;
      border-top: 1px solid #666666;
      box-shadow: 0 1 1 #333333;
      .btn {
         height: 90rpx;
         line-height: 90rpx;
         text-align: center;
      }
   }
   .sel_upload_wrap {
      width: 100%;
      border-top: 1px solid #666666;
      box-shadow: 0 1 1 #333333;
      .btn {
         height: 90rpx;
         line-height: 90rpx;
         text-align: center;
      }
   }
</style>