doum
2025-08-19 05db93c48c69b1fc5db8bb2fce4c37014e92e450
h5/pages/workOrder_dca/workOrder_dca.vue
@@ -2,6 +2,7 @@
   <view class="dca" v-if="info">
      <view class="dca_head">
         <text>任务{{returnStatus(info.status)}}</text>
         <text>工单号:{{info.code}}</text>
      </view>
      <u-gap height="5" bgColor="#EFEFEF"></u-gap>
      <view class="dca_list">
@@ -16,7 +17,7 @@
         <view class="dca_list_item" style="flex-direction: column;">
            <view class="dca_list_item_label">图片</view>
            <view class="dca_list_item_tu" v-if="info.multifileList">
               <view class="dca_list_item_tu_item" v-for="(item, index) in info.multifileList" :key="index">
               <view class="dca_list_item_tu_item" v-for="(item, index) in info.multifileList" :key="index" @click="previewImage(item.fileurlFull, info.multifileList.map(item => item.fileurlFull))">
                  <image :src="item.fileurlFull" mode="widthFix"></image>
               </view>
               <view class="dca_list_item_tu_zw"></view>
@@ -32,7 +33,7 @@
            <view class="lc">
               <view class="lc_item" v-for="(item, index) in info.logList" :key="index">
                  <view class="lc_item_dian"></view>
                  <view class="lc_item_xian" v-if="info.logList.length === 1 ? false : index === 0"></view>
                  <view class="lc_item_xian" v-if="info.logList.length === 1 ? false : index !== info.logList.length - 1"></view>
                  <view class="lc_item_title">{{item.title}}</view>
                  <view class="lc_item_info">{{item.companyName}}/{{item.userName}} {{item.createDate}}</view>
                  <view class="lc_item_content" v-if="![0,4].includes(item.objType)">
@@ -52,8 +53,8 @@
                     <view class="lc_item_content_item">
                        <view class="lc_item_content_item_label">图片:</view>
                        <view class="lc_item_content_item_img" v-if="item.multifileList">
                           <view class="image" v-for="(item, index) in item.multifileList" :key="index">
                              <image :src="item.fileurlFull" mode="widthFix"></image>
                           <view class="image" v-for="(child, index) in item.multifileList" :key="index" @click="previewImage(child.fileurlFull, item.multifileList.map(item => item.fileurlFull))">
                              <image :src="child.fileurlFull" mode="widthFix"></image>
                           </view>
                           <view class="imagezw"></view>
                           <view class="imagezw"></view>
@@ -65,7 +66,7 @@
                  </view>
                  <view class="lc_item_content" v-else-if="item.objType === 4">
                     <view class="lc_item_content_item">
                        <view class="lc_item_content_item_label">已催促:</view>
                        <!-- <view class="lc_item_content_item_label">已催促:</view> -->
                        <view class="lc_item_content_item_val">
                           <text>{{item.content}}</text>
                        </view>
@@ -75,11 +76,13 @@
            </view>
         </view>
      </view>
      <view style="width: 100%; height: calc(84rpx + env(safe-area-inset-bottom));"></view>
      <view class="footer">
         <view class="footer_btn" :style="info.passOnButton === 0 ? 'background-color: #3875C5; color: #ffffff;' : ''" @click="openGB" v-if="info.closeButton === 1">问题关闭</view>
         <view class="footer_btn" style="background-color: #3875C5; color: #ffffff;" @click="openFP" v-if="info.passOnButton === 1">任务分配</view>
      </view>
      <template v-if="info.closeButton === 1 || info.passOnButton === 1">
         <view style="width: 100%; height: calc(84rpx + env(safe-area-inset-bottom));"></view>
         <view class="footer">
            <view class="footer_btn" :style="info.passOnButton === 0 ? 'background-color: #3875C5; color: #ffffff;' : ''" @click="openGB" v-if="info.closeButton === 1">问题关闭</view>
            <view class="footer_btn" style="background-color: #3875C5; color: #ffffff;" @click="openFP" v-if="info.passOnButton === 1">任务分配</view>
         </view>
      </template>
      <!-- 任务分配 -->
      <u-popup :show="show" :round="10" mode="bottom">
         <view class="fp">
@@ -99,12 +102,13 @@
                        maxlength="200" count></u--textarea>
                  </u-form-item>
                  <u-form-item label="上传图片" labelWidth="80" prop="multifileList" labelPosition="top">
                     <u-upload
                     <UploadImage
                        :fileList="model.multifileList"
                        @afterRead="afterRead"
                        @delete="deletePic"
                        name="2"
                        style="margin-top: 15rpx;" />
                        folder="WORKORDER_LOG_FILE_PATH"
                        @dele="deletePic"
                        @getFileList="afterRead"
                        style="margin-top: 15rpx;"
                     />
                  </u-form-item>
               </u--form>
            </view>
@@ -124,12 +128,13 @@
                        maxlength="200" count></u--textarea>
                  </u-form-item>
                  <u-form-item label="上传图片" labelWidth="120" prop="multifileList" labelPosition="top" required>
                     <u-upload
                     <UploadImage
                        :fileList="model.multifileList"
                        @afterRead="afterRead"
                        @delete="deletePic"
                        name="1"
                        style="margin-top: 15rpx;" />
                        folder="WORKORDER_LOG_FILE_PATH"
                        @dele="deletePic"
                        @getFileList="afterRead"
                        style="margin-top: 15rpx;"
                     />
                  </u-form-item>
               </u--form>
            </view>
@@ -139,7 +144,9 @@
</template>
<script>
   import UploadImage from '@/components/uploadImage/uploadImage.vue'
   export default {
      components: { UploadImage },
      data() {
         return {
            id: null,
@@ -183,6 +190,21 @@
         this.getDetails()
      },
      methods: {
         // 工单催促
         async urge() {
            let res = await this.$u.api.urge({ workorderId: this.info.id })
            if (res.code === 200) {
               uni.showToast({ title: '催促成功', icon: 'none' })
               this.getDetails()
               this.show2 = false
            }
         },
         previewImage(current, urls) {
            uni.previewImage({
               current,
               urls
            });
         },
         closeGB() {
            this.canScroll()
            this.show1 = false
@@ -209,8 +231,8 @@
            }).then(res =>{
               console.log(res)
               if (res.errCode === 0) {
                  this.model.passOnUserName = res.result.userList.map(item => item.name)
                  this.model.passOnUserId = res.result.userList.map(item => item.id)
                  this.model.passOnUserName = res.result.userList.map(item => item.name).join(',')
                  this.model.passOnUserId = res.result.userList.map(item => item.id).join(',')
               }
            })
         },
@@ -222,11 +244,13 @@
                  info: that.model.info,
                  passOnUserId: that.model.passOnUserId,
                  multifileList: that.model.multifileList,
                  workorderId: that.info.id
                  workorderId: that.info.id,
                  passOnType: this.info.status
               })
               if (res.code === 200) {
                  uni.showToast({ title: '操作成功', icon: 'none' })
                  that.canScroll()
                  uni.$emit('update')
                  that.show = false
                  that.getDetails()
               }
@@ -251,6 +275,7 @@
                  workorderId: that.info.id
               })
               if (res.code === 200) {
                  uni.$emit('update')
                  uni.showToast({ title: '操作成功', icon: 'none' })
                  that.canScroll()
                  that.show1 = false
@@ -268,30 +293,12 @@
            }
         },
         // 删除图片
         deletePic(event) {
            this.model.multifileList.forEach((item, index) => {
               if (item.imgaddr === event.file.imgaddr) {
                  this.model.multifileList.splice(index, 1)
               }
            })
         deletePic(index) {
            this.model.multifileList.splice(index, 1)
         },
         // 新增图片
         afterRead(event) {
            uni.uploadFile({
               url: this.$baseUrl + '/web/public/upload',
               filePath: event.file.url,
               name: "file",
               formData: {
                  folder: "WORKORDER_LOG_FILE_PATH"
               },
               success: (res) => {
                  let obj = JSON.parse(res.data)
                  if (obj.code === 200) {
                     obj.data.fileurl = obj.data.imgaddr
                     this.model.multifileList.push(obj.data)
                  }
               }
            });
         afterRead(arr) {
            this.model.multifileList = [...this.model.multifileList, ...arr]
         }
      }
   }