Lou
2024-04-24 5b02887478e754f2c1db43344c747cfc040117a8
subPackage/school/security.vue
@@ -1,5 +1,14 @@
<template>
   <view class="wrap">
      <!-- <view class="info-row flex j-c-s-b a-i-c" @click="isShowPopup = true">
         <text class="f-28">场所名称</text>
         <view class="flex">
            <text class="mr-10">{{selectedPlace.placeName}}</text>
            <u-icon name="arrow-right"></u-icon>
         </view>
      </view> -->
      <view class="section mb-20">
         <u-collapse :value="itemIndex" ref="collapse">
            <u-collapse-item :title="item.title" :name="index" v-for="(item,index)  in questionList">
@@ -21,7 +30,7 @@
                        </view>
                     </u-form-item>
                     <view class="" v-if="i.state == 0">
                        <u-form-item labelWidth="100" label="隐患照片" prop="gateStatus">
                        <u-form-item labelWidth="100" label="照片" prop="gateStatus">
                           <u-upload :fileList="i.urls" :previewFullImage="uploadConfig.previewFullImage"
                              :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                              :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
@@ -33,8 +42,8 @@
                              </view>
                           </u-upload>
                        </u-form-item>
                        <u-form-item labelWidth="100" label="隐患描述" prop="gateStatus">
                           <u-textarea v-model="i.remark" placeholder="请输入隐患描述"
                        <u-form-item labelWidth="100" label="描述" prop="gateStatus">
                           <u-textarea v-model="i.remark" placeholder="请输入描述"
                              placeholderClass="c-99 f-26"></u-textarea>
                        </u-form-item>
                     </view>
@@ -44,12 +53,18 @@
         </u-collapse>
      </view>
      <view class="content bgc-ff">
      <view class="content bgc-ff" v-if="dangerCount > 0">
         <view class="upload ">
            <view class="f-28 mb-20">其它隐患问题</view>
            <u-textarea v-model="info.remark" placeholder="请输入内容" placeholderClass="c-99 f-26"></u-textarea>
            <!-- <view class="f-28 mb-20">其它隐患问题</view> -->
            <view class="flex j-c-s-b a-i-c" @click="showSelectDate = true">
               <view class="f-28">整改截止时间</view>
               <view class="flex a-i-c">
                  <text class="mr-10">{{info.rectificationEndTime}}</text>
                  <u-icon name="arrow-right"></u-icon>
               </view>
            </view>
            <view class="mt-20">
               <view class="f-28 mb-20">图片</view>
               <view class="f-28 mb-20">整改文件</view>
               <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
                  :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
                  :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImg"
@@ -60,24 +75,50 @@
               </u-upload>
            </view>
         </view>
      </view>
      <!-- <footer-btn @click="sumitInfo"></footer-btn> -->
      <button class="submit-btn" @click="sumitInfo">提交</button>
      <button class="list-btn mb-20" @click="navTo">我上报的事件</button>
      <button class="list-btn mb-20" @click="navTo">提交记录</button>
      <u-popup mode="bottom" :show="showSignature" round="10" :closeable="true" @close="showSignature=false">
         <view class="signture-popup">
            <jushi-signature :settings="signatureSettings" @change="signatureChange"></jushi-signature>
      <u-datetime-picker ref="datetimePicker" :show="showSelectDate" v-model="time" mode="datetime"
         :formatter="formatter" @confirm="confirmDate" @cancel="showSelectDate = false"></u-datetime-picker>
      <view class="blank"></view>
      <u-popup :show="isShowPopup" mode="bottom" :round="10" closeable="true" @close="isShowPopup = false">
         <view class="popup-content">
            <view class="popup-title f-30">选择场所</view>
            <u-search placeholder="请输入场所名称" :showAction="true" actionText="搜索" :animation="true" v-model="placeName"
               @search="searchPlace" @custom="searchPlace" @clear="clearKeyword"></u-search>
            <scroll-view class="popup-list" :scroll-y="true">
               <view class="popup-list-item" v-for="(i,k) in placeList" :key="k" @click="selectPlace(i)">
                  <view class="flex a-i-c mb-10">
                     <text class="f-28 fw mr-20">{{i.placeName}}</text>
                     <text class="f-26" v-if="i.phoneNumber">{{i.phoneNumber}}</text>
                  </view>
                  <!--
                  <view class="f-28">
                     {{i.townStreetName}}{{i.neiName}}{{i.aoiName}}{{i.address || ""}}
                  </view> -->
                  <view class="check-icon" v-if="i.houseCode == info.houseCode">
                     <u-icon name="checkbox-mark" color="#017BFC" size="30"></u-icon>
                  </view>
               </view>
            </scroll-view>
         </view>
      </u-popup>
      <view class="blank"></view>
   </view>
</template>
@@ -104,7 +145,7 @@
            info: {
               remark: "",
               imageUrls: "",
               signaturePath: ""
               houseCode: ""
            },
            desc: "",
@@ -143,7 +184,9 @@
            time: Number(new Date()),
            showSelectDate: false,
            dangerCount: 0, //隐患项数量
            isEdit: false
            isEdit: false,
            isShowPopup: false,
            selectedPlace: {}
         }
      },
@@ -153,11 +196,14 @@
            this.isEdit = true;
            this.getDetail(option.taskId)
         } else {
            this.info.houseCode = uni.getStorageSync("siteInfo").houseCode;
            this.info.placeName = uni.getStorageSync("siteInfo").name;
            this.info.houseCode = "d8460d16ec5a40ccbfe64ba65d34159c7427";
            this.info.placeName = "塔水小学"
            // this.info.houseCode = uni.getStorageSync("siteInfo").houseCode;
            // this.info.placeName = uni.getStorageSync("siteInfo").name;
         }
         // if (option.houseCode) {
         //    this.info.houseCode = option.houseCode;
         // }
      },
@@ -199,7 +245,7 @@
         getItem() {
            getPlaceCheckItem({
               childType: 3,
               childType: 9,
               type: 3
            }).then(res => {
               let data = res.data;
@@ -248,7 +294,8 @@
                        itemId: this.questionList[i].children[k].id,
                        state: this.questionList[i].children[k].state,
                        imageUrls: this.setImages(this.questionList[i].children[k].urls),
                        remark: this.questionList[i].children[k].remark || ""
                        remark: this.questionList[i].children[k].remark || "",
                        type: 3
                     })
                     if (this.questionList[i].children[k].state == 0) {
                        count += 1;
@@ -364,10 +411,11 @@
               this.form.images.forEach(e => {
                  urls.push(e.name)
               })
               this.info.imageUrls = urls.join(",")
               this.info.rectificationNoticeImgUrl = urls.join(",")
            }
            this.info.taskPlaceRecordVOList = this.getSelected()
            this.info.status = 1;
            this.info.type = 2;
            if (this.isEdit) {
               auditPlaceCheck(this.info).then(res => {
                  uni.hideLoading();
@@ -397,7 +445,6 @@
            }
         },
         previewImg() {
            uni.previewImage({
               urls: [this.signatureUrl],
@@ -405,14 +452,16 @@
            })
         },
         navTo() {
            uni.navigateTo({
               url: 'checkList'
            })
         confirmDate(e) {
            this.showSelectDate = false;
            this.info.rectificationEndTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss')
         },
         navTo() {
            uni.navigateTo({
               url: 'securityRecord'
            })
         },
      }
   }