Merge branch 'dev' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_wechat_app into dev
This commit is contained in:
		@@ -528,6 +528,8 @@ export default {
 | 
			
		||||
          this.form.description = res.data.description || ''
 | 
			
		||||
          this.form.arriveAreaId = res.data.arriveAreaId
 | 
			
		||||
          this.form.arriveAreaName = res.data.arriveAreaName
 | 
			
		||||
          this.form.startAddress = res.data.startAddress || ''
 | 
			
		||||
          this.form.arriveAddress = res.data.arriveAddress || ''
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@
 | 
			
		||||
    <div class="approve">
 | 
			
		||||
      <img class="icon" src="./authentication-img.png" alt="">
 | 
			
		||||
      <div class="flex">
 | 
			
		||||
        <span class="cert" v-if="isApprove" v-text="approveLabel" @click="$linkTo('/mods/AppAuth/AppAuth')"/>
 | 
			
		||||
        <span class="cert" v-if="isApprove" v-text="approveLabel" @click="$linkTo('/mods/AppPartyAuth/AppPartyAuth')"/>
 | 
			
		||||
        <u-icon v-else name="arrow-right" color="#E7F2FF" size="28"
 | 
			
		||||
                :label="approveLabel" label-color="#E7F2FF" label-pos="left" @click="approve"/>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -53,7 +53,7 @@
 | 
			
		||||
import {mapActions, mapState} from "vuex";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "AppMine",
 | 
			
		||||
  name: "AppPcMine",
 | 
			
		||||
  appName: "我的",
 | 
			
		||||
  customNavigation: true,
 | 
			
		||||
  computed: {
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB  | 
| 
		 Before Width: | Height: | Size: 993 B After Width: | Height: | Size: 993 B  | 
| 
		 Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB  | 
@@ -3,9 +3,8 @@
 | 
			
		||||
    <div class="photo-list__wrapper">
 | 
			
		||||
 | 
			
		||||
      <div class="photo-item" v-for="(item, index) in list" :key="index">
 | 
			
		||||
        <u-swipe-action @content-click="$linkTo('./PhotoDetail?id=' + item.id)" :index="item.id"
 | 
			
		||||
                        :options="itemOptions" @click="handleDelete">
 | 
			
		||||
          <div class="photo-item__top">
 | 
			
		||||
        <u-swipe-action :index="item.id" :options="itemOptions" @click="handleDelete(item.id)">
 | 
			
		||||
          <div class="photo-item__top" @click="$linkTo('./PhotoDetail?id=' + item.id)">
 | 
			
		||||
            <h2>{{ item.content }}</h2>
 | 
			
		||||
            <div class="photo-item__top--info">
 | 
			
		||||
              <div class="photo-item__top--info-item">
 | 
			
		||||
@@ -13,27 +12,27 @@
 | 
			
		||||
                <span>{{ item.groupName }}</span>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="photo-item__top--info-item">
 | 
			
		||||
                <label>所属网格</label>
 | 
			
		||||
                <span>{{ item.girdName }}</span>
 | 
			
		||||
                <label>所属地区</label>
 | 
			
		||||
                <span>{{ item.areaName }}</span>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="photo-item__bottom flex">
 | 
			
		||||
            <div class="flex fill">
 | 
			
		||||
              <i :class="'status-' + item.eventStatus"></i>
 | 
			
		||||
              <span :class="'status-' + item.eventStatus">{{ item.statusName }}</span>
 | 
			
		||||
              <span :class="'status-' + item.eventStatus">{{ $dict.getLabel('clapEventStatus',item.eventStatus) }}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div v-if="item.eventStatus>1">
 | 
			
		||||
              <div class="itemBtn" @click="toEvaluate" v-show="!item.evaluation">去评价</div>
 | 
			
		||||
              <div slot="finish" class="finish" v-show="item.evaluation">已评价</div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <AiEvaluation :bid="item.id" v-if="item.eventStatus>1">
 | 
			
		||||
              <div class="itemBtn">去评价</div>
 | 
			
		||||
              <div slot="finish" class="finish">已评价</div>
 | 
			
		||||
            </AiEvaluation>
 | 
			
		||||
          </div>
 | 
			
		||||
        </u-swipe-action>
 | 
			
		||||
      </div>
 | 
			
		||||
      <AiEmpty v-if="!list.length"/>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="btn-wrapper">
 | 
			
		||||
      <div class="btn" @click="toReport" hover-class="text-hover">我要上报</div>
 | 
			
		||||
      <div class="btn" @click="toReport" hover-class="text-hover">新增微心愿</div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -66,11 +65,12 @@ export default {
 | 
			
		||||
    this.$dict.load(['clapEventStatus']).then(() => {
 | 
			
		||||
      this.getList()
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    uni.setNavigationBarTitle({
 | 
			
		||||
      title: '微心愿'
 | 
			
		||||
    })
 | 
			
		||||
    uni.$on('update', () => {
 | 
			
		||||
      this.current = 1
 | 
			
		||||
      this.isMore = false
 | 
			
		||||
 | 
			
		||||
      this.getList()
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
@@ -80,43 +80,23 @@ export default {
 | 
			
		||||
      this.$linkTo('./PhotoForm')
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    toEvaluate() {
 | 
			
		||||
      this.$linkTo('./evaluate')
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getList() {
 | 
			
		||||
      if (this.isMore) return
 | 
			
		||||
 | 
			
		||||
      this.$instance.post(`/app/appclapeventinfo/listByWxApplet`, null, {
 | 
			
		||||
      this.$instance.post(`/app/appclapeventinfopingchang/listByWxApplet`, null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          current: this.current,
 | 
			
		||||
          size: 15
 | 
			
		||||
          size: 15,
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.total = res.data.total
 | 
			
		||||
          if (this.current > 1) {
 | 
			
		||||
            this.list = [...this.list, ...res.data.records].map(v => {
 | 
			
		||||
              return {
 | 
			
		||||
                ...v,
 | 
			
		||||
                statusName: this.$dict.getLabel('clapEventStatus', v.eventStatus)
 | 
			
		||||
              }
 | 
			
		||||
            })
 | 
			
		||||
          } else {
 | 
			
		||||
            this.list = res.data.records.map(v => {
 | 
			
		||||
              return {
 | 
			
		||||
                ...v,
 | 
			
		||||
                statusName: this.$dict.getLabel('clapEventStatus', v.eventStatus)
 | 
			
		||||
              }
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
          this.list = this.current == 1? res.data.records : [...this.list, ...res.data.records]
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
          this.pageShow = true
 | 
			
		||||
          if (res.data.records.length < 15) {
 | 
			
		||||
            this.isMore = true
 | 
			
		||||
 | 
			
		||||
            return false
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          this.current = this.current + 1
 | 
			
		||||
        } else {
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        }
 | 
			
		||||
      }).catch(() => {
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
@@ -124,7 +104,7 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
    handleDelete(ids) {
 | 
			
		||||
      this.$dialog.confirm({content: "是否要进行删除?"}).then(() => {
 | 
			
		||||
        this.$instance.post("/app/appclapeventinfo/delete", null, {
 | 
			
		||||
        this.$instance.post("/app/appclapeventinfopingchang/delete", null, {
 | 
			
		||||
          params: {ids}
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res?.code == 0) {
 | 
			
		||||
@@ -139,6 +119,7 @@ export default {
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onReachBottom() {
 | 
			
		||||
    this.current++
 | 
			
		||||
    this.getList()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,26 +2,30 @@
 | 
			
		||||
  <div class="photo-detail" v-if="pageShow">
 | 
			
		||||
    <AiGroup noBorder>
 | 
			
		||||
      <h2>{{ info.content }}</h2>
 | 
			
		||||
      <div class="status-name" :class="detailStatus.cls" v-text="detailStatus.label"/>
 | 
			
		||||
      <div class="status-name" :class="detailStatus.cls">{{ $dict.getLabel('clapEventStatus',info.eventStatus) }}</div>
 | 
			
		||||
    </AiGroup>
 | 
			
		||||
    <AiGroup description noBorder labelColor="#999">
 | 
			
		||||
      <AiItem label="姓名" :value="info.name"/>
 | 
			
		||||
      <AiItem label="联系方式" :value="info.phone"/>
 | 
			
		||||
 | 
			
		||||
      <AiItem label="事件类型" :value="info.groupName"/>
 | 
			
		||||
      <AiItem label="所属网格" :value="info.girdName"/>
 | 
			
		||||
      <AiItem label="上报时间" :value="info.createTime"/>
 | 
			
		||||
      <AiItem label="照片" top-label>
 | 
			
		||||
        <image v-for="(item, index) in info.files" @click="preview(item.url)" :key="index" :src="item.url"/>
 | 
			
		||||
      <AiItem label="上报位置" :value="info.address"/>
 | 
			
		||||
 | 
			
		||||
      <AiItem label="所属地区" :value="info.areaName"/>
 | 
			
		||||
      <AiItem label="现场照片" top-label>
 | 
			
		||||
        <image v-for="(item, index) in info.files" @click="previewImg(item.url,info.files)" :key="index" :src="item.url"/>
 | 
			
		||||
        <span v-if="!info.files.length">暂无照片</span>
 | 
			
		||||
      </AiItem>
 | 
			
		||||
    </AiGroup>
 | 
			
		||||
    <u-gap height="24"/>
 | 
			
		||||
    <AiGroup title="处理详情" v-if="info.eventStatus > 1" description noBorder labelColor="#999">
 | 
			
		||||
    <!-- <AiGroup title="处理详情" v-if="info.eventStatus > 1" description noBorder labelColor="#999">
 | 
			
		||||
      <AiItem label="处理结果" top-label :value="result.doExplain"/>
 | 
			
		||||
      <AiItem label="照片" top-label>
 | 
			
		||||
        <image v-for="(item, index) in result.files" @click="preview(item.url)" :key="index" :src="item.url"/>
 | 
			
		||||
        <AiUploader v-model="result.files" disabled></AiUploader>
 | 
			
		||||
        <span v-if="!result.files.length">暂无照片</span>
 | 
			
		||||
      </AiItem>
 | 
			
		||||
    </AiGroup>
 | 
			
		||||
    <u-gap height="24"/>
 | 
			
		||||
    <u-gap height="24"/> -->
 | 
			
		||||
    <u-tabs :list="[{name:'办理进度'},{name:'我的评价'}]" :current="currentTab" @change="v=>currentTab=v"/>
 | 
			
		||||
    <u-gap height="24"/>
 | 
			
		||||
    <AiGroup noBorder v-if="currentTab=='0'">
 | 
			
		||||
@@ -31,19 +35,38 @@
 | 
			
		||||
          <div class="color-999 mar-r32 stepTime" v-text="item.doTime"/>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div v-if="item.doExplain" class="stepContent mar-t8" v-text="item.doExplain"/>
 | 
			
		||||
         <image class="content_img" :src="e.accessUrl" v-for="(e, indexs) in item.files" :key="indexs" @click="previewImg(e.accessUrl,item.files)"/>
 | 
			
		||||
        <u-gap height="48"/>
 | 
			
		||||
      </AiStep>
 | 
			
		||||
      <div class="bottomBtn" v-show="info.eventStatus > 1 && !info.evaluation" @click="$linkTo(`./evaluate?id=${info.id}`)">去评价</div>
 | 
			
		||||
    </AiGroup>
 | 
			
		||||
    <AiEvaluation v-if="currentTab=='1'" :bid="info.id" type="show"/>
 | 
			
		||||
    <AiEvaluation v-if="info.eventStatus > 1" v-model="evaluation" class="fixed-bottom bg-fff" :bid="info.id">
 | 
			
		||||
      <div class="bottomBtn">去评价</div>
 | 
			
		||||
    </AiEvaluation>
 | 
			
		||||
    <div v-if="currentTab=='1'">
 | 
			
		||||
      <div v-if="info.evaluation" class="evaluation">
 | 
			
		||||
        <div class="rate">
 | 
			
		||||
          <span class="title">心愿评价:</span>
 | 
			
		||||
          <span><u-rate active-color="#F8B425" v-model="info.evaluation.evaluationScore"
 | 
			
		||||
          inactive-color="#b2b2b2" gutter="20" disabled></u-rate></span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="detail">
 | 
			
		||||
          <div class="titles">评价详情:</div>
 | 
			
		||||
          <div>{{ info.evaluation.evaluationDetail }}</div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="photo">
 | 
			
		||||
          <div class="titles">照片</div>
 | 
			
		||||
          <div>
 | 
			
		||||
            <!-- <AiUploader v-model="info.evaluation.files" disabled></AiUploader> -->
 | 
			
		||||
            <image class="content_img" :src="v.accessUrl" v-for="(v, ind) in info.evaluation.files" :key="ind" @click="previewImg(v.accessUrl,info.evaluation.files)"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <AiEmpty :description="`暂无数据`" class="emptyWrap" v-else/>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  appName: "随手拍详情",
 | 
			
		||||
  appName: "微心愿详情",
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      pageShow: false,
 | 
			
		||||
@@ -58,7 +81,7 @@ export default {
 | 
			
		||||
      const status = !v.evaluation.id ? v.info.eventStatus : 'evaluation'
 | 
			
		||||
      return {
 | 
			
		||||
        cls: 'status-' + status,
 | 
			
		||||
        label: !v.evaluation.id ? v.$dict.getLabel('clapEventStatus', v.info.eventStatus) : "已评价"
 | 
			
		||||
        // label: !v.evaluation.id ? v.$dict.getLabel('clapEventStatus', v.info.eventStatus) : "已评价"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    process() {
 | 
			
		||||
@@ -81,7 +104,7 @@ export default {
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    getInfo(id) {
 | 
			
		||||
      this.$instance.post(`/app/appclapeventinfo/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
      this.$instance.post(`/app/appclapeventinfopingchang/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.info = res.data
 | 
			
		||||
          if (res.data.eventStatus > 1) {
 | 
			
		||||
@@ -93,27 +116,25 @@ export default {
 | 
			
		||||
        }
 | 
			
		||||
      }).finally(() => this.$hideLoading())
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    previewResult(url) {
 | 
			
		||||
    previewImg(url,imgList) {
 | 
			
		||||
      let imgs = imgList.map(v => v.url)
 | 
			
		||||
      uni.previewImage({
 | 
			
		||||
        urls: this.result.files.map(v => v.url),
 | 
			
		||||
        urls: imgs,
 | 
			
		||||
        current: url
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    preview(url) {
 | 
			
		||||
      uni.previewImage({
 | 
			
		||||
        urls: this.info.files.map(v => v.url),
 | 
			
		||||
        current: url
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
::v-deep .itemContent image {
 | 
			
		||||
  width: 220px;
 | 
			
		||||
  height: 220px;
 | 
			
		||||
  margin-right: 8px;
 | 
			
		||||
}
 | 
			
		||||
.photo-detail {
 | 
			
		||||
  padding: 32px 0 160px;
 | 
			
		||||
  padding: 32px 0 50px;
 | 
			
		||||
  margin-bottom: 60px;
 | 
			
		||||
  background: #fff;
 | 
			
		||||
 | 
			
		||||
@@ -164,4 +185,43 @@ export default {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.evaluation {
 | 
			
		||||
  padding: 0 32px;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  
 | 
			
		||||
  .rate {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    padding-bottom: 24px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
  }
 | 
			
		||||
  .detail,
 | 
			
		||||
  .photo {
 | 
			
		||||
    padding: 24px 0;
 | 
			
		||||
  }
 | 
			
		||||
  .detail {
 | 
			
		||||
    border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.title,
 | 
			
		||||
.titles {
 | 
			
		||||
  color: #999999;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.titles {
 | 
			
		||||
  margin-bottom: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.content_img {
 | 
			
		||||
  width: 200px;
 | 
			
		||||
  height: 200px;
 | 
			
		||||
  margin-right: 8px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.bottomBtn {
 | 
			
		||||
  margin: 16px 32px 16px 0;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="album">
 | 
			
		||||
  <div class="PhotoForm">
 | 
			
		||||
    <div class="form-item__group">
 | 
			
		||||
      <div class="form-item">
 | 
			
		||||
        <div class="form-item__wrapper">
 | 
			
		||||
@@ -46,10 +46,13 @@
 | 
			
		||||
            <h2>所属地区</h2>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="form-item__right">
 | 
			
		||||
            <!-- <AiPagePicker type="gird" v-model="form.girdId" :params="{formType:2}" @select="handleSelectGrid" nodeKey="id">
 | 
			
		||||
              <AiMore v-model="form.girdName"/>
 | 
			
		||||
            </AiPagePicker> -->
 | 
			
		||||
            
 | 
			
		||||
            <AiAreaPicker class="ai-area"  v-model="form.areaId" :fullName.sync="form.areaName" @input="areaSelect">
 | 
			
		||||
              <div class="ai-area__wrapper">
 | 
			
		||||
                <span class="label" v-if="form.areaName">{{ form.areaName }}</span>
 | 
			
		||||
                <span v-else>请选择</span>
 | 
			
		||||
                <u-icon name="arrow-right" style="display: inline-block;" color="#ddd"/>
 | 
			
		||||
              </div>
 | 
			
		||||
            </AiAreaPicker>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -100,7 +103,6 @@
 | 
			
		||||
import {mapState} from 'vuex'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  appName: "上报随手拍",
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      form: {
 | 
			
		||||
@@ -114,10 +116,12 @@ export default {
 | 
			
		||||
        groupName: '',
 | 
			
		||||
        girdName: '',
 | 
			
		||||
        girdId: '',
 | 
			
		||||
        files: []
 | 
			
		||||
        files: [],
 | 
			
		||||
        areaId: '',
 | 
			
		||||
        areaName: '',
 | 
			
		||||
      },
 | 
			
		||||
      dictList: [],
 | 
			
		||||
      flag: false
 | 
			
		||||
      flag: false,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
@@ -129,6 +133,9 @@ export default {
 | 
			
		||||
    this.getDict()
 | 
			
		||||
    this.form.phone = this.user.phone
 | 
			
		||||
    this.form.name = this.user.realName || ''
 | 
			
		||||
    uni.setNavigationBarTitle({
 | 
			
		||||
      title: '微心愿'
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
@@ -166,7 +173,7 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
    getDict() {
 | 
			
		||||
      this.$instance.post(`/app/appclapeventgroup/list?current=1&size=100000`).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
        if (res?.code == 0) {
 | 
			
		||||
          this.dictList = res.data.records.map(v => {
 | 
			
		||||
            return {
 | 
			
		||||
              value: v.id,
 | 
			
		||||
@@ -176,6 +183,9 @@ export default {
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    areaSelect(v) {
 | 
			
		||||
      console.log(v);
 | 
			
		||||
    },
 | 
			
		||||
    submit() {
 | 
			
		||||
      if (!this.form.groupId) {
 | 
			
		||||
        return this.$toast('请选择事件类型')
 | 
			
		||||
@@ -195,18 +205,20 @@ export default {
 | 
			
		||||
      if (!this.form.phone) {
 | 
			
		||||
        return this.$toast('请输入上报人联系方式')
 | 
			
		||||
      }
 | 
			
		||||
      if (!this.form.girdId) {
 | 
			
		||||
        return this.$toast('请选择所属网格')
 | 
			
		||||
 | 
			
		||||
      if (this.form.areaId.substr(this.form.areaId.length - 3, 3) === '000') {
 | 
			
		||||
        return this.$toast('所属地区必须选到村或社区')
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (this.flag) return
 | 
			
		||||
      this.flag = true
 | 
			
		||||
 | 
			
		||||
      this.$loading()
 | 
			
		||||
      this.$instance.post(`/app/appclapeventinfo/addOrUpdate`, {
 | 
			
		||||
      this.$instance.post(`/app/appclapeventinfopingchang/addOrUpdate`, {
 | 
			
		||||
        ...this.form,
 | 
			
		||||
        openid: this.user.openid,
 | 
			
		||||
        portrait: this.user.avatarUrl,
 | 
			
		||||
        files: this.form.files,
 | 
			
		||||
        // portrait: this.user.avatarUrl,
 | 
			
		||||
        // files: this.form.files,
 | 
			
		||||
        groupName: this.dictList.filter(v => v.value === this.form.groupId)[0].label
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        this.$hideLoading()
 | 
			
		||||
@@ -229,8 +241,8 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
.album {
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.PhotoForm {
 | 
			
		||||
  padding-bottom: 140px;
 | 
			
		||||
 | 
			
		||||
  .form-item__group {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										101
									
								
								src/project/pingchang/AppPhotoReport/evaluate.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								src/project/pingchang/AppPhotoReport/evaluate.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="evaluate">
 | 
			
		||||
    <div class="card">
 | 
			
		||||
      <div class="title"><span class="red">*</span><span>心愿评价</span></div>
 | 
			
		||||
      <u-rate active-color="#F8B425" v-model="form.evaluationScore" inactive-color="#b2b2b2" size="70" gutter="70"></u-rate>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="card">
 | 
			
		||||
      <div class="title"><span class="red">*</span><span>评价详情</span></div>
 | 
			
		||||
      <div class="textarea">
 | 
			
		||||
        <u-input v-model="form.evaluationDetail" type="textarea" height="200" :clearable="false" placeholder="请简要描述…" 
 | 
			
		||||
        placeholder-style="font-size: 16px" maxlength="500" />
 | 
			
		||||
        <div class="tips">{{ form.evaluationDetail.length }}/500</div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="card">
 | 
			
		||||
      <div class="title"><span style="width: 8px;"></span><span>图片上传</span><span class="nine">(最多9张)</span></div>
 | 
			
		||||
      <AiUploader v-model="form.files" :limit="9"></AiUploader>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="btn-wrapper">
 | 
			
		||||
      <div class="btn" hover-class="text-hover" @click="submit">提交</div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  name: "evaluate",
 | 
			
		||||
  appName: "心愿评价",
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      images: [],
 | 
			
		||||
      form: {
 | 
			
		||||
        eventId: '',
 | 
			
		||||
        evaluationScore: '',
 | 
			
		||||
        evaluationDetail: '',
 | 
			
		||||
        files: [],
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    submit() {
 | 
			
		||||
      if(!this.form.evaluationScore) {
 | 
			
		||||
        return this.$toast('请选择心愿评价')
 | 
			
		||||
      }
 | 
			
		||||
      if(!this.form.evaluationDetail) {
 | 
			
		||||
        return this.$toast('请输入评价详情')
 | 
			
		||||
      }
 | 
			
		||||
      this.$instance.post(`/app/appclapeventinfopingchang/addEvaluation`,{
 | 
			
		||||
        ...this.form
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if(res?.code == 0) {
 | 
			
		||||
          this.$u.toast("评价成功")
 | 
			
		||||
          uni.redirectTo({url: './AppPhotoReport'})
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(o) {
 | 
			
		||||
    this.form.eventId = o.id
 | 
			
		||||
    uni.setNavigationBarTitle({title: "心愿评价"})
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.evaluate {
 | 
			
		||||
  padding-bottom: 120px;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  .card {
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    background: #FFF;
 | 
			
		||||
    margin-bottom: 24px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .title {
 | 
			
		||||
    font-size: 34px;
 | 
			
		||||
    // color: #666666;
 | 
			
		||||
    font-weight: 500;
 | 
			
		||||
    margin-bottom: 24px;
 | 
			
		||||
    .red {
 | 
			
		||||
      color: #FF4466;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .textarea {
 | 
			
		||||
    padding: 0 15px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
  }
 | 
			
		||||
  .tips {
 | 
			
		||||
    text-align: right;
 | 
			
		||||
    color: #666666;
 | 
			
		||||
  }
 | 
			
		||||
  .nine {
 | 
			
		||||
    font-size: 30px;
 | 
			
		||||
    color: #666666;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -435,6 +435,9 @@ export default {
 | 
			
		||||
          this.startAreaName = res.data.records?.[0]?.startAreaName
 | 
			
		||||
          this.form.arriveAreaId = res.data.records?.[0]?.arriveAreaId
 | 
			
		||||
          this.form.arriveAreaName = res.data.records?.[0]?.arriveAreaName
 | 
			
		||||
          this.form.startAddress = res.data.records?.[0]?.startAddress || ''
 | 
			
		||||
          this.form.arriveAddress = res.data.records?.[0]?.arriveAddress || ''
 | 
			
		||||
          this.form.description = res.data.records?.[0]?.description || ''
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user