sunran %!s(int64=3) %!d(string=hai) anos
pai
achega
b4b3c8780e

+ 1 - 1
src/views/weibao/App.vue

@@ -20,7 +20,7 @@ export default {
       const res = await loginApp({
         // loginName: '15620220622', //社工
         // loginName: '13525112211', //志愿
-        loginName: '13612345678', //政府
+        // loginName: '13612345678', //政府
         // loginName: '13222222229', //儿童督导
         // loginName: '16601217325', // 主任
         password: '123456',

+ 8 - 0
src/views/weibao/api/index.js

@@ -257,4 +257,12 @@ export function mandatoryDetail(data) {
         method: 'post',
         data
     })
+}
+// 轮播图
+export function homeData(data) {
+    return request({
+        url: '/pmadmin/app/mini/homeData',
+        method: 'post',
+        data
+    })
 }

+ 2 - 3
src/views/weibao/router/router.js

@@ -3,15 +3,14 @@ import VueRouter from 'vue-router'
 
 Vue.use(VueRouter)
 
-const routes = [
-    {
+const routes = [{
         path: '/',
         name: 'Login',
         meta: {
             keepAlive: true
         },
         component: () => import('../views/login/index.vue')
-    },{
+    }, {
         path: '/home',
         name: 'Home',
         meta: {

+ 7 - 6
src/views/weibao/views/followUp/addfollow.vue

@@ -75,7 +75,7 @@
             <van-field v-model="form.followDate" @click="showPopup" placeholder="请选择" :rules="[{ required: true}]" disabled />
           </van-col>
           <!-- <van-col span="18" @click="showPopup">{{form.followDate?form.followDate:'请选择'}}</van-col> -->
-          <van-popup v-model="show" position="bottom" :style="{ height: '30%' }">
+          <van-popup v-model="show" position="bottom" :style="{ height: '50%' }">
             <van-datetime-picker @confirm="dateConfirm" @cancel="showPopup" v-model="followDate" type="date" :min-date="minDate" :max-date="maxDate" :columns-order="[ 'year','month', 'day']"
               :formatter="formatter" />
           </van-popup>
@@ -86,8 +86,8 @@
             <van-field v-model="form.streetName" @click="streetshowPopup" placeholder="请选择" :rules="[{ required: true}]" disabled />
           </van-col>
           <!-- <van-col span="18" @click="streetshowPopup">{{form.streetName?form.streetName:'请选择'}}</van-col> -->
-          <van-popup v-model="streetShow" position="bottom" :style="{ height: '30%' }">
-            <van-picker show-toolbar :columns="streetList" @confirm="onConfirm" @cancel="streetshowPopup" @change="onChange" value-key="name" />
+          <van-popup v-model="streetShow" position="bottom" :style="{ height: '50%' }">
+            <van-picker default-index="2" show-toolbar :columns="streetList" @confirm="onConfirm" @cancel="streetshowPopup" @change="onChange" value-key="name" />
           </van-popup>
         </van-row>
         <van-row class="cell">
@@ -121,7 +121,7 @@
               <div class="boxlist">
                 <div v-for="(item,index) in form.fileList" :key="index">
                   <img v-if="item.type.indexOf('image') !== -1" :src="item.url" alt="">
-                  <video v-else style="object-fit:cover;" :src="item.url"></video>
+                  <video v-else style="object-fit:cover;" :src="item.url" poster='../../assets/video.png'></video>
                 </div>
               </div>
               <van-uploader v-model="fileList" accept="*" :after-read="afterRead" @delete='deleteUploader'>
@@ -131,7 +131,7 @@
           </van-col>
         </van-row>
         <div style="text-align:center;">
-          <van-button native-type="submit">确 定</van-button>
+          <van-button native-type="submit" :disabled="disabled">确 定</van-button>
         </div>
       </van-form>
     </div>
@@ -151,6 +151,7 @@ export default {
       show: false,
       searchshow: false,
       streetShow: false,
+      disabled: false,
       fileList: [],
       form: {
         fileList: [],
@@ -232,7 +233,6 @@ export default {
       this.show = false
     },
     async saveFollowUp(values) {
-      console.log('submit', values)
       var appendFile = []
       this.form.fileList.forEach((item) => {
         appendFile.push(item.url)
@@ -252,6 +252,7 @@ export default {
     },
     getPositionList() {},
     async afterRead(file) {
+      console.log(file, 'file')
       file.status = 'uploading'
       file.message = '上传中...'
       let formDate = new FormData()

+ 12 - 5
src/views/weibao/views/followUp/details.vue

@@ -42,8 +42,8 @@
         <p>照片视频:</p>
         <div class="boximg">
           <div v-for="(item,index) in appendFile" :key="index">
-            <van-image v-if="item.indexOf('.png')==-1||item.indexOf('.jpg')==-1" fit="contain" :src="item" alt="" @click="showPopup" />
-            <video v-else @click="showvideoplay=true" style="object-fit:cover;" :src="item"></video>
+            <van-image v-if="item.indexOf('.png')!=-1||item.indexOf('.jpg')!=-1" fit="contain" :src="item" alt="" @click="showPopup" />
+            <video v-else @click="showvideoplay=true" style="object-fit:cover;" :src="item" poster='../../assets/video.png'></video>
           </div>
         </div>
         <van-image-preview v-model="show" :images="appendFile" @change="onChange"></van-image-preview>
@@ -77,7 +77,7 @@ export default {
     async followUpHistoryDetail() {
       const res = await followUpHistoryDetail({ id: this.id })
       this.dataList = res.data
-      if(!res.data.appendFile)return
+      if (!res.data.appendFile) return
       this.appendFile = res.data.appendFile.split(',')
       //   appendFile.forEach(item => {
       //       if(){
@@ -135,12 +135,19 @@ export default {
     display: flex;
     flex-wrap: wrap;
     // justify-content: space-between;
-    .van-image {
+    /deep/.van-image {
       max-width: 200px;
-      max-height: 200px;
+      //   max-height: 200px;
       margin: 0 10px;
       //   margin-right: 16px;
       margin-bottom: 16px;
+      img {
+        max-width: 200px;
+        max-height: 200px;
+        margin: 0 10px;
+        //   margin-right: 16px;
+        margin-bottom: 16px;
+      }
     }
     video {
       width: 180px;

+ 1 - 1
src/views/weibao/views/followUp/director.vue

@@ -34,7 +34,7 @@ export default {
       historyList: '',
       followUpform: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
       },
       historyform: {
         pageNum: 1,

+ 16 - 11
src/views/weibao/views/followUp/record.vue

@@ -39,7 +39,7 @@
           <van-col span="18">
             <van-field v-model="form.followDate" @click="showPopup" :rules="[{ required: true}]" placeholder="请选择" disabled />
           </van-col>
-          <van-popup v-model="show" position="bottom" :style="{ height: '30%' }">
+          <van-popup v-model="show" position="bottom" :style="{ height: '50%' }">
             <van-datetime-picker @confirm="dateConfirm" @cancel="showPopup" v-model="followDate" type="date" :min-date="minDate" :max-date="maxDate" :columns-order="[ 'year','month', 'day']"
               :formatter="formatter" />
           </van-popup>
@@ -50,8 +50,8 @@
           <van-col span="18">
             <van-field v-model="form.streetName" @click="streetshowPopup" :rules="[{ required: true}]" placeholder="请选择" disabled />
           </van-col>
-          <van-popup v-model="streetShow" position="bottom" :style="{ height: '30%' }">
-            <van-picker show-toolbar :columns="streetList" @confirm="onConfirm" @cancel="streetshowPopup" @change="onChange" value-key="name" />
+          <van-popup v-model="streetShow" position="bottom" :style="{ height: '50%' }">
+            <van-picker default-index="2" :visible-item-count="6" show-toolbar :columns="streetList" @confirm="onConfirm" @cancel="streetshowPopup" @change="onChange" value-key="name" />
           </van-popup>
         </van-row>
         <van-row class="cell">
@@ -81,23 +81,21 @@
         <van-row class="cell">
           <van-col span="6">图片视频:</van-col>
           <van-col span="18">
-            <div class="box">
+            <div class="box" ref="boxlist">
               <div class="boxlist">
                 <div v-for="(item,index) in form.fileList" :key="index">
                   <img v-if="item.type.indexOf('image') !== -1" :src="item.url" alt="">
-                  <video v-else style="object-fit:cover;" :src="item.url"></video>
+                  <video v-else style="object-fit:cover;" :src="item.url" poster='../../assets/video.png'></video>
                 </div>
-
               </div>
               <van-uploader v-model="fileList" accept="*" :after-read="afterRead" @delete='deleteUploader'>
               </van-uploader>
             </div>
-
           </van-col>
         </van-row>
       </div>
       <div class="but">
-        <van-button native-type="submit">确 定</van-button>
+        <van-button native-type="submit" :disabled="disabled">确 定</van-button>
       </div>
     </van-form>
   </div>
@@ -114,6 +112,9 @@ export default {
     return {
       show: false,
       streetShow: false,
+      disabled: false,
+      showvideoplay: false,
+      videourl: '',
       fileList: [],
       form: {
         fileList: [],
@@ -198,6 +199,7 @@ export default {
       data.followDate = data.followDate + ' 00:00:00'
       const res = await saveFollowUp(data)
       if (res.code == '0000') {
+        this.disabled = true
         this.$toast.success('成功')
         this.$router.go(-1)
       }
@@ -209,6 +211,7 @@ export default {
     },
     async afterRead(file) {
       console.log(file.file)
+      //   this.$toast.success(file.file.type)
       file.status = 'uploading'
       file.message = '上传中...'
       let formDate = new FormData()
@@ -222,14 +225,17 @@ export default {
           url: res.data,
           type: file.file.type,
         })
-        console.log(this.form.fileList, 'tu')
+        // 上传图片 设置col高度
+        if (this.form.fileList.length % 2 == 0) {
+          var index = 3.2 * (this.form.fileList.length / 2 + 1) + 'rem'
+          this.$refs.boxlist.style.height = index
+        }
       } else {
         file.status = 'failed'
         file.message = '上传失败'
       }
     },
     deleteUploader(v, index) {
-      console.log(index)
       this.form.fileList.splice(index.index, 1)
     },
   },
@@ -306,7 +312,6 @@ export default {
     }
     video {
       width: 100%;
-      height: 100%;
     }
     // background-color: chocolate;
   }

+ 12 - 5
src/views/weibao/views/home/index.vue

@@ -2,12 +2,12 @@
   <div>
     <van-nav-bar title="首页" fixed placeholder safe-area-inset-top />
     <van-swipe class="my-swipe">
-      <van-swipe-item>
-        <img src="../../assets/swiper.jpg" alt="">
+      <van-swipe-item v-for="item in homeList" :key="item.linkUrl" @click="$router.push({path:'/text',query:{id:item.linkUrl,title:'新闻资讯'}})">
+        <img :src="item.imgUrl" alt="">
       </van-swipe-item>
-      <van-swipe-item><img src="../../assets/swiper1.jpg" alt=""></van-swipe-item>
+      <!-- <van-swipe-item><img src="../../assets/swiper1.jpg" alt=""></van-swipe-item>
       <van-swipe-item><img src="../../assets/swiper2.jpg" alt=""></van-swipe-item>
-      <van-swipe-item><img src="../../assets/swiper3.jpg" alt=""></van-swipe-item>
+      <van-swipe-item><img src="../../assets/swiper3.jpg" alt=""></van-swipe-item> -->
     </van-swipe>
     <div class="category">
       <!-- 其它 -->
@@ -56,7 +56,7 @@
   </div>
 </template>
 <script>
-import { pageNews, pagePolicy, pageNotice } from '../../api/index.js'
+import { pageNews, pagePolicy, pageNotice, homeData } from '../../api/index.js'
 import noticeAnnouncement from '../../components/noticeAnnouncement.vue'
 import policyDocument from '../../components/policyDocument.vue'
 import newsInformation from '../../components/newsInformation.vue'
@@ -65,6 +65,7 @@ export default {
   data() {
     return {
       roleIdStr: JSON.parse(sessionStorage.getItem('userInfo')).roleIdStr,
+      homeList: '',
       active: 0,
       loading: false,
       finished: false,
@@ -88,8 +89,14 @@ export default {
   },
   created() {
     this.onLoad()
+    this.homeData()
   },
   methods: {
+    async homeData() {
+      const res = await homeData({ operatorId: 1 })
+      console.log(res)
+      this.homeList = res.data
+    },
     async pageNews() {
       const res = await pageNews(this.newsform)
       if (this.newsform.pageNum == 1) {

+ 6 - 5
src/views/weibao/views/loveHelp/details.vue

@@ -16,7 +16,7 @@
             <!-- {{form.workDate?form.workDate:'请选择'}} -->
             <van-field v-model="form.workDate" :rules="[{ required: true}]" placeholder="请选择" disabled />
           </van-col>
-          <van-popup v-model="dateshow" position="bottom" :style="{ height: '30%' }">
+          <van-popup v-model="dateshow" position="bottom" :style="{ height: '50%' }">
             <van-datetime-picker @confirm="dateConfirm" @cancel="dateshow=false" v-model="workDate" type="date" :min-date="minDate" :max-date="maxDate" :columns-order="[ 'year','month', 'day']"
               :formatter="formatter" />
           </van-popup>
@@ -27,8 +27,8 @@
             <van-field v-model="form.areaName" :rules="[{ required: true}]" @click="clickstreetShow" placeholder="请选择" disabled />
           </van-col>
           <!-- <van-col span="18" @click="streetshowPopup">{{form.streetName?form.streetName:'请选择'}}</van-col> -->
-          <van-popup v-model="streetShow" position="bottom" :style="{ height: '30%' }">
-            <van-picker show-toolbar :columns="streetList" @confirm="onConfirm" @cancel="streetShow=false" value-key="name" />
+          <van-popup v-model="streetShow" position="bottom" :style="{ height: '50%' }">
+            <van-picker default-index="2" show-toolbar :columns="streetList" @confirm="onConfirm" @cancel="streetShow=false" value-key="name" />
           </van-popup>
         </van-row>
         <van-row class="cell">
@@ -86,7 +86,7 @@
               <div class="boxlist">
                 <div v-for="(item,index) in form.fileList" :key="index">
                   <img v-if="item.type.indexOf('image') !== -1" :src="item.url" alt="">
-                  <video v-else style="object-fit:cover;" :src="item.url"></video>
+                  <video v-else style="object-fit:cover;" :src="item.url" poster='../../assets/video.png'></video>
                 </div>
               </div>
               <van-uploader v-model="fileList" accept="*" :after-read="afterRead" @delete='deleteUploader'>
@@ -390,9 +390,10 @@ export default {
   -webkit-text-fill-color: unset;
 }
 .imgvideo {
-  padding: 0 30px;
+  //   padding: 0 30px;
   font-size: 30px;
   text-align: left;
+  margin-bottom: 30px;
 
   .boximg {
     min-height: 100px;

+ 6 - 6
src/views/weibao/views/reporting/index.vue

@@ -106,12 +106,12 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
-.box {
-  position: fixed;
-  top: 80px;
-  width: 100%;
-  z-index: 9999;
-}
+// .box {
+//   position: fixed;
+//   top: 80px;
+//   width: 100%;
+//   z-index: 9999;
+// }
 .mt {
   margin-top: 80px;
 }

+ 18 - 6
src/views/weibao/views/reporting/initiateConsultation.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="case">
-    <van-form @submit="mandatorySave">
+    <van-form @submit="mandatorySave" ref="addform">
       <div class="main">
         <van-row class="cell">
           <van-col span="6">报告事件:</van-col>
@@ -11,10 +11,10 @@
         <van-row class="cell">
           <van-col span="6">报告时间:</van-col>
           <van-col span="18" @click="dateshow=true">
-            <van-field v-model="form.mandatoryDate" :rules="[{ required: true}]" placeholder="请输入报告时间" />
+            <van-field v-model="form.mandatoryDate" :rules="[{ required: true}]" placeholder="请输入报告时间" disabled />
             <!-- {{form.mandatoryDate?form.mandatoryDate:'请选择'}} -->
           </van-col>
-          <van-popup v-model="dateshow" position="bottom" :style="{ height: '30%' }">
+          <van-popup v-model="dateshow" position="bottom" :style="{ height: '50%' }">
             <van-datetime-picker @confirm="dateConfirm" @cancel="dateshow=false" v-model="mandatoryDate" type="date" :min-date="minDate" :max-date="maxDate" :columns-order="[ 'year','month', 'day']"
               :formatter="formatter" />
           </van-popup>
@@ -30,8 +30,8 @@
           <van-col span="16">
             <van-field v-model="form.streetName" :rules="[{ required: true}]" @click="streetShow=true" placeholder="请选择报告所在地" disabled />
           </van-col>
-          <van-popup v-model="streetShow" position="bottom" :style="{ height: '30%' }">
-            <van-picker show-toolbar :columns="streetList" @confirm="onConfirm" @cancel="streetShow=false" value-key="name" />
+          <van-popup v-model="streetShow" position="bottom" :style="{ height: '50%' }">
+            <van-picker default-index="2" show-toolbar :columns="streetList" @confirm="onConfirm" @cancel="streetShow=false" value-key="name" />
           </van-popup>
         </van-row>
         <van-row class="cell">
@@ -53,7 +53,7 @@
               <div class="boxlist">
                 <div v-for="(item,index) in form.fileList" :key="index">
                   <img v-if="item.type.indexOf('image') !== -1" :src="item.url" alt="">
-                  <video v-else style="object-fit:cover;" :src="item.url"></video>
+                  <video v-else style="object-fit:cover;" :src="item.url" poster='../../assets/video.png'></video>
                 </div>
               </div>
               <van-uploader v-model="fileList" accept="*" :after-read="afterRead" @delete='deleteUploader'>
@@ -103,7 +103,13 @@ export default {
       resultId: [],
     }
   },
+  activated() {
+    this.$nextTick(() => {
+      this.$refs.addform.resetValidation()
+    })
+  },
   created() {
+    console.log('123')
     this.getStreetList()
     this.organizationList()
   },
@@ -176,6 +182,7 @@ export default {
       file.status = 'uploading'
       file.message = '上传中...'
       let formDate = new FormData()
+
       //添加入参
       formDate.append('file', file.file)
       const res = await uploadImage(formDate)
@@ -199,6 +206,11 @@ export default {
     deleteUploader(v, index) {
       console.log(index)
       this.form.fileList.splice(index.index, 1)
+      // 上传图片 设置col高度
+      if (this.form.fileList.length % 2 == 0) {
+        var index = 3.2 * (this.form.fileList.length / 2 + 1) + 'rem'
+        this.$refs.boxlist.style.height = index
+      }
     },
     formatter(type, val) {
       if (type === 'year') {

+ 19 - 12
src/views/weibao/views/specialServices/details.vue

@@ -23,7 +23,7 @@
       <van-row class="cell">
         <van-col span="6">服务时间:</van-col>
         <van-col span="18">
-          <van-field v-model="form.servicetTime" placeholder="服务时间" disabled />
+          <van-field v-model="form.servicetTimeDesc" placeholder="服务时间" disabled />
         </van-col>
       </van-row>
       <van-row class="cell">
@@ -38,7 +38,7 @@
           <van-field class="textarea" v-model="address" rows="1" type="textarea" placeholder="请输入服务地址" disabled />
         </van-col>
       </van-row>
-      <div class="main">
+      <div class="main2">
         <div>
           <p>服务情况:</p>
           <div class="box">
@@ -49,12 +49,15 @@
           <p>照片与视频:</p>
           <div class="boximg">
             <div v-for="(item,index) in appendFile" :key="index">
-              <van-image v-if="item.indexOf('.png')==-1||item.indexOf('.jpg')==-1" fit="contain" :src="item" alt="" @click="showPopup" />
-              <video v-else @click="showvideoplay=true" style="object-fit:cover;" :src="item"></video>
+              <van-image v-if="item.indexOf('.png')!=-1||item.indexOf('.jpg')!=-1" fit="contain" :src="item" alt="" @click="showPopup" />
+              <video v-else @click="showvideoplay=true,videourl=item" style="object-fit:cover;" :src="item" poster='../../assets/video.png'></video>
             </div>
           </div>
-          <van-image-preview v-model="show" :images="appendFile"></van-image-preview>
+          <van-image-preview v-model="show" :images="appendFile.filter(item => item.indexOf('mp4')<0)"></van-image-preview>
         </div>
+        <van-dialog style="width:100%;border-radius:0;height:200px" v-model="showvideoplay" :show-cancel-button="false" :show-confirm-button="false" closeOnClickOverlay>
+          <video controls preload="auto" style="width:100%;height:200px;object-fit: contain;" :src="videourl" v-if="videourl"></video>
+        </van-dialog>
       </div>
     </div>
   </div>
@@ -66,6 +69,7 @@ export default {
     return {
       show: false,
       searchshow: false,
+      showvideoplay: false,
       appendFile: [],
       form: {
         fileList: [],
@@ -87,7 +91,7 @@ export default {
       const res = await getProjectHistory({ id: this.id })
       this.form = res.data
       this.address = this.form.streetName + this.form.address
-      if (!res.data.appendFile) return
+      if (!res.data.multiMediaUrl) return
       this.appendFile = this.form.multiMediaUrl.split(',')
     },
   },
@@ -118,6 +122,7 @@ export default {
   padding: 0 30px;
   font-size: 30px;
   text-align: left;
+  margin-bottom: 30px;
   .box {
     min-height: 200px;
     border: 1px solid #eee;
@@ -134,12 +139,14 @@ export default {
     display: flex;
     flex-wrap: wrap;
     // justify-content: space-between;
-    .van-image {
-      max-width: 200px;
-      max-height: 200px;
-      //   margin-right: 16px;
-      margin: 0 10px;
-      margin-bottom: 16px;
+    /deep/.van-image {
+      img {
+        max-width: 200px;
+        max-height: 200px;
+        //   margin-right: 16px;
+        margin: 0 10px;
+        margin-bottom: 16px;
+      }
     }
     video {
       width: 180px;

+ 1 - 1
src/views/weibao/views/specialServices/serviceComplete.vue

@@ -9,7 +9,7 @@
           <div class="over">{{item.serviceTarget}}</div>
         </div>
         <div class="num"><span>服务时间:</span>
-          <div class="over">{{item.servicetTime}}</div>
+          <div class="over">{{item.servicetTimeDesc}}</div>
         </div>
         <div class="num"><span>服务地址:</span>
           <div class="over">{{item.streetName}}{{item.address}}</div>

+ 5 - 5
src/views/weibao/views/specialServices/startServiceplay.vue

@@ -33,10 +33,10 @@
         <van-row class="cell">
           <van-col span="6">服务时间:</van-col>
           <van-col span="18" @click="showPopup">
-            <van-field v-model="form.servicetTime" :rules="[{ required: true}]" placeholder="请输入服务时间" />
+            <van-field v-model="form.servicetTime" :rules="[{ required: true}]" placeholder="请输入服务时间" disabled />
             <!-- {{form.servicetTime?form.servicetTime:'请选择'}} -->
           </van-col>
-          <van-popup v-model="show" position="bottom" :style="{ height: '30%' }">
+          <van-popup v-model="show" position="bottom" :style="{ height: '50%' }">
             <van-datetime-picker @confirm="dateConfirm" @cancel="showPopup" v-model="servicetTime" type="date" :min-date="minDate" :max-date="maxDate" :columns-order="[ 'year','month', 'day']"
               :formatter="formatter" />
           </van-popup>
@@ -47,8 +47,8 @@
             <van-field v-model="form.streetName" :rules="[{ required: true}]" placeholder="请选择街道" />
             <!-- {{form.streetName?form.streetName:'请选择'}} -->
           </van-col>
-          <van-popup v-model="streetShow" position="bottom" :style="{ height: '30%' }">
-            <van-picker show-toolbar :columns="streetList" @confirm="onConfirm" @cancel="streetshowPopup" @change="onChange" value-key="name" />
+          <van-popup v-model="streetShow" position="bottom" :style="{ height: '50%' }">
+            <van-picker default-index="2" show-toolbar :columns="streetList" @confirm="onConfirm" @cancel="streetshowPopup" @change="onChange" value-key="name" />
           </van-popup>
         </van-row>
         <van-row class="cell">
@@ -93,7 +93,7 @@
               <div class="boxlist">
                 <div v-for="(item,index) in form.fileList" :key="index">
                   <img v-if="item.type.indexOf('image') !== -1" :src="item.url" alt="">
-                  <video v-else style="object-fit:cover;" :src="item.url"></video>
+                  <video v-else style="object-fit:cover;" :src="item.url" poster='../../assets/video.png'></video>
                 </div>
               </div>
               <van-uploader v-model="multiMediaUrl" accept="*" :after-read="afterRead" @delete='deleteUploader'>