调整工程目录
This commit is contained in:
		@@ -19,7 +19,8 @@
 | 
			
		||||
            <span>联系方式</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" type="number" v-model="form.phone" :maxlength="11" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" type="number" v-model="form.phone" :maxlength="11"
 | 
			
		||||
                   placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -52,7 +53,7 @@
 | 
			
		||||
            <span>家庭住址</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.address" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.address" placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -64,7 +65,9 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <u-radio-group v-model="form.move">
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">{{ item.dictName }}</u-radio>
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">
 | 
			
		||||
                {{ item.dictName }}
 | 
			
		||||
              </u-radio>
 | 
			
		||||
            </u-radio-group>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -78,7 +81,8 @@
 | 
			
		||||
            <span>安置地区</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <AiAreaPicker ref="area" class="aiArea" :areaId.sync="form.placeAreaId" mode="custom" all @select="onChange">
 | 
			
		||||
            <AiAreaPicker ref="area" class="aiArea" :areaId.sync="form.placeAreaId" mode="custom" all
 | 
			
		||||
                          @select="onChange">
 | 
			
		||||
              <span class="label" v-if="form.placeArea">{{ form.placeArea }}</span>
 | 
			
		||||
              <i v-else>请选择</i>
 | 
			
		||||
              <u-icon name="arrow-right" color="#ddd"/>
 | 
			
		||||
@@ -93,7 +97,7 @@
 | 
			
		||||
            <span>安置地区详细地址</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.place" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.place" placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -103,263 +107,264 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiUploader from '@/components/AiUploader'
 | 
			
		||||
  import AiSelect from '@/components/AiSelect'
 | 
			
		||||
  import AiArea from '@/components/AiArea'
 | 
			
		||||
  import AiAreaPicker from '@/components/AiAreaPicker'
 | 
			
		||||
import AiUploader from '@/components/AiUploader'
 | 
			
		||||
import AiSelect from '@/components/AiSelect'
 | 
			
		||||
import AiArea from '@/components/AiArea'
 | 
			
		||||
import AiAreaPicker from '@/components/AiAreaPicker'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        form: {
 | 
			
		||||
          addressAreaId: '',
 | 
			
		||||
          address: '',
 | 
			
		||||
          addressArea: '',
 | 
			
		||||
          move: '02',
 | 
			
		||||
          place: '',
 | 
			
		||||
          placeAreaId: '',
 | 
			
		||||
          placeArea: '',
 | 
			
		||||
          type: ''
 | 
			
		||||
        },
 | 
			
		||||
        $areaId: '',
 | 
			
		||||
        isEdit: false,
 | 
			
		||||
        id: '',
 | 
			
		||||
        areaName: ''
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      form: {
 | 
			
		||||
        addressAreaId: '',
 | 
			
		||||
        address: '',
 | 
			
		||||
        addressArea: '',
 | 
			
		||||
        move: '02',
 | 
			
		||||
        place: '',
 | 
			
		||||
        placeAreaId: '',
 | 
			
		||||
        placeArea: '',
 | 
			
		||||
        type: ''
 | 
			
		||||
      },
 | 
			
		||||
      $areaId: '',
 | 
			
		||||
      isEdit: false,
 | 
			
		||||
      id: '',
 | 
			
		||||
      areaName: ''
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  components: {
 | 
			
		||||
    AiArea,
 | 
			
		||||
    AiSelect,
 | 
			
		||||
    AiUploader,
 | 
			
		||||
    AiAreaPicker
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  created() {
 | 
			
		||||
    this.$areaId = this.$store.state.user.areaId
 | 
			
		||||
    this.areaName = this.$store.state.user.areaFullName
 | 
			
		||||
    this.$dict.load(['fpType', 'fpYesOrNo'])
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    if (query.id) {
 | 
			
		||||
      this.isEdit = true
 | 
			
		||||
      this.id = query.id
 | 
			
		||||
 | 
			
		||||
      this.getInfo(this.id)
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    submit() {
 | 
			
		||||
      if (!this.form.type) {
 | 
			
		||||
        return this.$u.toast('请选择监测类型')
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiArea,
 | 
			
		||||
      AiSelect,
 | 
			
		||||
      AiUploader,
 | 
			
		||||
      AiAreaPicker
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    created () {
 | 
			
		||||
      this.$areaId = this.$store.state.user.areaId
 | 
			
		||||
      this.areaName = this.$store.state.user.areaFullName
 | 
			
		||||
      this.$dict.load(['fpType', 'fpYesOrNo'])
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      if (query.id) {
 | 
			
		||||
        this.isEdit = true
 | 
			
		||||
        this.id = query.id
 | 
			
		||||
 | 
			
		||||
        this.getInfo(this.id)
 | 
			
		||||
      if (!this.form.phone) {
 | 
			
		||||
        return this.$u.toast('请输入联系方式')
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (!this.form.addressAreaId) {
 | 
			
		||||
        return this.$u.toast('请选择住址')
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
        ...this.form,
 | 
			
		||||
        id: this.isEdit ? this.id : ''
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
 | 
			
		||||
          uni.$emit('reload')
 | 
			
		||||
          uni.navigateBack({
 | 
			
		||||
            delta: 1
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      submit () {
 | 
			
		||||
        if (!this.form.type) {
 | 
			
		||||
          return this.$u.toast('请选择监测类型')
 | 
			
		||||
        }
 | 
			
		||||
    onAreaChange(e) {
 | 
			
		||||
      this.form.addressAreaId = e.id
 | 
			
		||||
      const areaList = this.$refs.address.fullArea
 | 
			
		||||
      let fullAreaName = ''
 | 
			
		||||
      areaList.forEach(item => {
 | 
			
		||||
        fullAreaName = fullAreaName + item.name
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
        if (!this.form.phone) {
 | 
			
		||||
          return this.$u.toast('请输入联系方式')
 | 
			
		||||
        }
 | 
			
		||||
      this.form.addressArea = fullAreaName.replace('全国', '')
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
        if (!this.form.addressAreaId) {
 | 
			
		||||
          return this.$u.toast('请选择住址')
 | 
			
		||||
        }
 | 
			
		||||
    onChange(e) {
 | 
			
		||||
      this.form.placeAreaId = e.id
 | 
			
		||||
      const areaList = this.$refs.area.fullArea
 | 
			
		||||
      let fullAreaName = ''
 | 
			
		||||
      areaList.forEach(item => {
 | 
			
		||||
        fullAreaName = fullAreaName + item.name
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
        uni.showLoading()
 | 
			
		||||
        this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
          ...this.form,
 | 
			
		||||
          id: this.isEdit ? this.id : ''
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
 | 
			
		||||
            uni.$emit('reload')
 | 
			
		||||
            uni.navigateBack({
 | 
			
		||||
              delta: 1
 | 
			
		||||
            })
 | 
			
		||||
      this.form.placeArea = fullAreaName.replace('全国', '')
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getInfo(id) {
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.form = {
 | 
			
		||||
            ...this.form,
 | 
			
		||||
            ...res.data
 | 
			
		||||
          }
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      onAreaChange (e) {
 | 
			
		||||
        this.form.addressAreaId = e.id
 | 
			
		||||
        const areaList = this.$refs.address.fullArea
 | 
			
		||||
        let fullAreaName = ''
 | 
			
		||||
        areaList.forEach(item => {
 | 
			
		||||
          fullAreaName = fullAreaName + item.name
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        this.form.addressArea = fullAreaName.replace('全国', '')
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      onChange (e) {
 | 
			
		||||
        this.form.placeAreaId = e.id
 | 
			
		||||
        const areaList = this.$refs.area.fullArea
 | 
			
		||||
        let fullAreaName = ''
 | 
			
		||||
        areaList.forEach(item => {
 | 
			
		||||
          fullAreaName = fullAreaName + item.name
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        this.form.placeArea = fullAreaName.replace('全国', '')
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getInfo (id) {
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.form = {
 | 
			
		||||
              ...this.form,
 | 
			
		||||
              ...res.data
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .add {
 | 
			
		||||
    padding-bottom: 120px;
 | 
			
		||||
.add {
 | 
			
		||||
  padding-bottom: 120px;
 | 
			
		||||
 | 
			
		||||
    .aiArea {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      .label {
 | 
			
		||||
        color: #303133!important;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
      }
 | 
			
		||||
  .aiArea {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
 | 
			
		||||
      i {
 | 
			
		||||
        margin-left: 4px;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
      }
 | 
			
		||||
    .label {
 | 
			
		||||
      color: #303133 !important;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ::v-deep .u-radio {
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        .u-radio__label {
 | 
			
		||||
          margin-right: 0;
 | 
			
		||||
        }
 | 
			
		||||
    i {
 | 
			
		||||
      margin-left: 4px;
 | 
			
		||||
      font-style: normal;
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ::v-deep .u-radio {
 | 
			
		||||
    &:last-child {
 | 
			
		||||
      .u-radio__label {
 | 
			
		||||
        margin-right: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    & > div {
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
    }
 | 
			
		||||
  & > div {
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-group {
 | 
			
		||||
      .form-item {
 | 
			
		||||
        padding-left: 32px;
 | 
			
		||||
  .form-group {
 | 
			
		||||
    .form-item {
 | 
			
		||||
      padding-left: 32px;
 | 
			
		||||
 | 
			
		||||
        .form-item__wrapper {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          line-height: 112px;
 | 
			
		||||
          padding-right: 32px;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            font-size: 30px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        input {
 | 
			
		||||
          height: 100%;
 | 
			
		||||
          text-align: right;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          i {
 | 
			
		||||
            margin-right: 4px;
 | 
			
		||||
            font-style: normal;
 | 
			
		||||
            color: #FF4466;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:last-child {
 | 
			
		||||
          .form-item__wrapper {
 | 
			
		||||
            border: none;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .form-item__imgs {
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
 | 
			
		||||
      .form-item__title {
 | 
			
		||||
      .form-item__wrapper {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 34px;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
      .right {
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        line-height: 112px;
 | 
			
		||||
        padding-right: 32px;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      input {
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        text-align: right;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-weight: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        i {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          margin-right: 4px;
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          color: #FF4466;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        .form-item__wrapper {
 | 
			
		||||
          border: none;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-type {
 | 
			
		||||
  .form-item__imgs {
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
 | 
			
		||||
    .form-item__title {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
      margin-bottom: 34px;
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
      i {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .btn {
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      z-index: 11;
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      line-height: 112px;
 | 
			
		||||
      margin: 0;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      background: #3192F4;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .form-type {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
 | 
			
		||||
    h2 {
 | 
			
		||||
      font-weight: normal;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    z-index: 11;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    line-height: 112px;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
    font-size: 32px;
 | 
			
		||||
    background: #3192F4;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@
 | 
			
		||||
            <span>姓名</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.name" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.name" placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
            <span>身份证号</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.idNumber" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.idNumber" placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -122,7 +122,7 @@
 | 
			
		||||
            <span>务工区域</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.workArea" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.workArea" placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -133,7 +133,8 @@
 | 
			
		||||
            <span>务工时长(月)</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" type="number" v-model="form.workingMonths" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" type="number" v-model="form.workingMonths"
 | 
			
		||||
                   placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -147,7 +148,9 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <u-radio-group v-model="form.medicalInsurance">
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">{{ item.dictName }}</u-radio>
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">
 | 
			
		||||
                {{ item.dictName }}
 | 
			
		||||
              </u-radio>
 | 
			
		||||
            </u-radio-group>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -160,7 +163,9 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <u-radio-group v-model="form.sicknessInsurance">
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">{{ item.dictName }}</u-radio>
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">
 | 
			
		||||
                {{ item.dictName }}
 | 
			
		||||
              </u-radio>
 | 
			
		||||
            </u-radio-group>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -173,7 +178,9 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <u-radio-group v-model="form.endowmentInsurance">
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">{{ item.dictName }}</u-radio>
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">
 | 
			
		||||
                {{ item.dictName }}
 | 
			
		||||
              </u-radio>
 | 
			
		||||
            </u-radio-group>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -186,7 +193,9 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <u-radio-group v-model="form.subsistenceAllowance">
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">{{ item.dictName }}</u-radio>
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">
 | 
			
		||||
                {{ item.dictName }}
 | 
			
		||||
              </u-radio>
 | 
			
		||||
            </u-radio-group>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -199,7 +208,9 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <u-radio-group v-model="form.destitute">
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">{{ item.dictName }}</u-radio>
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">
 | 
			
		||||
                {{ item.dictName }}
 | 
			
		||||
              </u-radio>
 | 
			
		||||
            </u-radio-group>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -210,252 +221,253 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiSelect from '@/components/AiSelect'
 | 
			
		||||
  import AiDate from '@/components/AiDate'
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        form: {
 | 
			
		||||
          destitute: '',
 | 
			
		||||
          education: '',
 | 
			
		||||
          endowmentInsurance: '',
 | 
			
		||||
          health: '',
 | 
			
		||||
          idNumber: '',
 | 
			
		||||
          laborSkills: '',
 | 
			
		||||
          medicalInsurance: '',
 | 
			
		||||
          name: '',
 | 
			
		||||
          nation: '',
 | 
			
		||||
          politicalOutlook: '',
 | 
			
		||||
          relationship: '',
 | 
			
		||||
          relocation: '',
 | 
			
		||||
          sex: '',
 | 
			
		||||
          sicknessInsurance: '',
 | 
			
		||||
          studentsInSchool: '',
 | 
			
		||||
          subsistenceAllowance: '',
 | 
			
		||||
          workArea: '',
 | 
			
		||||
          workingMonths: ''
 | 
			
		||||
        },
 | 
			
		||||
        id: '',
 | 
			
		||||
        info: {},
 | 
			
		||||
        isEdit: false,
 | 
			
		||||
        index: ''
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
import AiSelect from '@/components/AiSelect'
 | 
			
		||||
import AiDate from '@/components/AiDate'
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiSelect,
 | 
			
		||||
      AiDate
 | 
			
		||||
    },
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      form: {
 | 
			
		||||
        destitute: '',
 | 
			
		||||
        education: '',
 | 
			
		||||
        endowmentInsurance: '',
 | 
			
		||||
        health: '',
 | 
			
		||||
        idNumber: '',
 | 
			
		||||
        laborSkills: '',
 | 
			
		||||
        medicalInsurance: '',
 | 
			
		||||
        name: '',
 | 
			
		||||
        nation: '',
 | 
			
		||||
        politicalOutlook: '',
 | 
			
		||||
        relationship: '',
 | 
			
		||||
        relocation: '',
 | 
			
		||||
        sex: '',
 | 
			
		||||
        sicknessInsurance: '',
 | 
			
		||||
        studentsInSchool: '',
 | 
			
		||||
        subsistenceAllowance: '',
 | 
			
		||||
        workArea: '',
 | 
			
		||||
        workingMonths: ''
 | 
			
		||||
      },
 | 
			
		||||
      id: '',
 | 
			
		||||
      info: {},
 | 
			
		||||
      isEdit: false,
 | 
			
		||||
      index: ''
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.id = query.id
 | 
			
		||||
      this.$dict.load(['fpRelationship', 'sex', 'fpNation', 'fpHealth', 'fpEducation', 'fpYesOrNo', 'fpLaborSkills', 'fpPoliticalOutlook', 
 | 
			
		||||
        'fpRelationship', 'fpStudentsInSchool', 'fpFnancialAssistance', 'fpHealthAssistance', 'fpHousingSecurity']).then(() => {
 | 
			
		||||
        this.getInfo(query.id)
 | 
			
		||||
      })
 | 
			
		||||
  components: {
 | 
			
		||||
    AiSelect,
 | 
			
		||||
    AiDate
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
      if (query.index > -1) {
 | 
			
		||||
        this.isEdit = true
 | 
			
		||||
        this.index = Number(query.index)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    uni.showLoading()
 | 
			
		||||
    this.id = query.id
 | 
			
		||||
    this.$dict.load(['fpRelationship', 'sex', 'fpNation', 'fpHealth', 'fpEducation', 'fpYesOrNo', 'fpLaborSkills', 'fpPoliticalOutlook',
 | 
			
		||||
      'fpRelationship', 'fpStudentsInSchool', 'fpFnancialAssistance', 'fpHealthAssistance', 'fpHousingSecurity']).then(() => {
 | 
			
		||||
      this.getInfo(query.id)
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      getInfo (id) {
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            if (this.isEdit) {
 | 
			
		||||
              this.form = {
 | 
			
		||||
                ...res.data.familyList[this.index]
 | 
			
		||||
              }
 | 
			
		||||
    if (query.index > -1) {
 | 
			
		||||
      this.isEdit = true
 | 
			
		||||
      this.index = Number(query.index)
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    getInfo(id) {
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          if (this.isEdit) {
 | 
			
		||||
            this.form = {
 | 
			
		||||
              ...res.data.familyList[this.index]
 | 
			
		||||
            }
 | 
			
		||||
            this.info = res.data
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      rules () {
 | 
			
		||||
        return {
 | 
			
		||||
          relationship: '请选择与户主关系',
 | 
			
		||||
          name: '请输入姓名',
 | 
			
		||||
          idNumber: '请输入身份证号',
 | 
			
		||||
          sex: '请选择性别',
 | 
			
		||||
          studentsInSchool: '请选择在校情况',
 | 
			
		||||
          health: '请选择健康状况',
 | 
			
		||||
          medicalInsurance: '请选择是否参加医保',
 | 
			
		||||
          sicknessInsurance: '请选择是否参加大病保险',
 | 
			
		||||
          endowmentInsurance: '请选择是否参加养老保险',
 | 
			
		||||
          subsistenceAllowance: '请选择是否享受最低生活保障',
 | 
			
		||||
          destitute: '请选择是否特困供养',
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      submit () {
 | 
			
		||||
        const rules = this.rules()
 | 
			
		||||
 | 
			
		||||
        for (let v of Object.keys(rules)) {
 | 
			
		||||
          if (!this.form[v]) {
 | 
			
		||||
            return this.$u.toast(rules[v])
 | 
			
		||||
          }
 | 
			
		||||
          this.info = res.data
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        uni.showLoading()
 | 
			
		||||
        let familyList = this.info.familyList
 | 
			
		||||
        if (this.isEdit) {
 | 
			
		||||
          familyList[this.index] = this.form
 | 
			
		||||
        } else {
 | 
			
		||||
          familyList.push(this.form)
 | 
			
		||||
        }
 | 
			
		||||
        this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
          ...this.info,
 | 
			
		||||
          familyList, 
 | 
			
		||||
          id: this.id
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.$u.toast(this.isEdit ? '编辑成功' : '提交成功')
 | 
			
		||||
            uni.$emit('reload')
 | 
			
		||||
            uni.navigateBack({
 | 
			
		||||
              delta: 1
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    rules() {
 | 
			
		||||
      return {
 | 
			
		||||
        relationship: '请选择与户主关系',
 | 
			
		||||
        name: '请输入姓名',
 | 
			
		||||
        idNumber: '请输入身份证号',
 | 
			
		||||
        sex: '请选择性别',
 | 
			
		||||
        studentsInSchool: '请选择在校情况',
 | 
			
		||||
        health: '请选择健康状况',
 | 
			
		||||
        medicalInsurance: '请选择是否参加医保',
 | 
			
		||||
        sicknessInsurance: '请选择是否参加大病保险',
 | 
			
		||||
        endowmentInsurance: '请选择是否参加养老保险',
 | 
			
		||||
        subsistenceAllowance: '请选择是否享受最低生活保障',
 | 
			
		||||
        destitute: '请选择是否特困供养',
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    submit() {
 | 
			
		||||
      const rules = this.rules()
 | 
			
		||||
 | 
			
		||||
      for (let v of Object.keys(rules)) {
 | 
			
		||||
        if (!this.form[v]) {
 | 
			
		||||
          return this.$u.toast(rules[v])
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      let familyList = this.info.familyList
 | 
			
		||||
      if (this.isEdit) {
 | 
			
		||||
        familyList[this.index] = this.form
 | 
			
		||||
      } else {
 | 
			
		||||
        familyList.push(this.form)
 | 
			
		||||
      }
 | 
			
		||||
      this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
        ...this.info,
 | 
			
		||||
        familyList,
 | 
			
		||||
        id: this.id
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.$u.toast(this.isEdit ? '编辑成功' : '提交成功')
 | 
			
		||||
          uni.$emit('reload')
 | 
			
		||||
          uni.navigateBack({
 | 
			
		||||
            delta: 1
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .add {
 | 
			
		||||
    padding-bottom: 120px;
 | 
			
		||||
.add {
 | 
			
		||||
  padding-bottom: 120px;
 | 
			
		||||
 | 
			
		||||
    ::v-deep .u-radio {
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        .u-radio__label {
 | 
			
		||||
          margin-right: 0;
 | 
			
		||||
        }
 | 
			
		||||
  ::v-deep .u-radio {
 | 
			
		||||
    &:last-child {
 | 
			
		||||
      .u-radio__label {
 | 
			
		||||
        margin-right: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    & > div {
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
    }
 | 
			
		||||
  & > div {
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-group {
 | 
			
		||||
      .form-item {
 | 
			
		||||
        padding-left: 32px;
 | 
			
		||||
  .form-group {
 | 
			
		||||
    .form-item {
 | 
			
		||||
      padding-left: 32px;
 | 
			
		||||
 | 
			
		||||
        .form-item__wrapper {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          line-height: 112px;
 | 
			
		||||
          padding-right: 32px;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            font-size: 30px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        input {
 | 
			
		||||
          height: 100%;
 | 
			
		||||
          text-align: right;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          i {
 | 
			
		||||
            margin-right: 4px;
 | 
			
		||||
            font-style: normal;
 | 
			
		||||
            color: #FF4466;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:last-child {
 | 
			
		||||
          .form-item__wrapper {
 | 
			
		||||
            border: none;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .form-item__imgs {
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
 | 
			
		||||
      .form-item__title {
 | 
			
		||||
      .form-item__wrapper {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 34px;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
      .right {
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        line-height: 112px;
 | 
			
		||||
        padding-right: 32px;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      input {
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        text-align: right;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-weight: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        i {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          margin-right: 4px;
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          color: #FF4466;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        .form-item__wrapper {
 | 
			
		||||
          border: none;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-type {
 | 
			
		||||
  .form-item__imgs {
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
 | 
			
		||||
    .form-item__title {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
      margin-bottom: 34px;
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
      i {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .btn {
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      z-index: 11;
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      line-height: 112px;
 | 
			
		||||
      margin: 0;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      background: #3192F4;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .form-type {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
 | 
			
		||||
    h2 {
 | 
			
		||||
      font-weight: normal;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    z-index: 11;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    line-height: 112px;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
    font-size: 32px;
 | 
			
		||||
    background: #3192F4;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -21,139 +21,139 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiUploader from '@/components/AiUploader'
 | 
			
		||||
import AiUploader from '@/components/AiUploader'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        detail: '',
 | 
			
		||||
        pid: '',
 | 
			
		||||
        id: '',
 | 
			
		||||
        picture: []
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      detail: '',
 | 
			
		||||
      pid: '',
 | 
			
		||||
      id: '',
 | 
			
		||||
      picture: []
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiUploader
 | 
			
		||||
    },
 | 
			
		||||
  components: {
 | 
			
		||||
    AiUploader
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      if (query.id) {
 | 
			
		||||
        this.getInfo(query.id)
 | 
			
		||||
        this.id = query.id
 | 
			
		||||
      }
 | 
			
		||||
      this.pid = query.pid
 | 
			
		||||
    },
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    if (query.id) {
 | 
			
		||||
      this.getInfo(query.id)
 | 
			
		||||
      this.id = query.id
 | 
			
		||||
    }
 | 
			
		||||
    this.pid = query.pid
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      getInfo (id) {
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopovertylog/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.detail = res.data.detail
 | 
			
		||||
            this.picture = JSON.parse(res.data.picture)
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      submit () {
 | 
			
		||||
        if (!this.detail) {
 | 
			
		||||
          return this.$u.toast('请输入帮扶内容')
 | 
			
		||||
  methods: {
 | 
			
		||||
    getInfo(id) {
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopovertylog/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.detail = res.data.detail
 | 
			
		||||
          this.picture = JSON.parse(res.data.picture)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
        uni.showLoading()
 | 
			
		||||
        this.$http.post('/app/apppreventionreturntopovertylog/addOrUpdate', {
 | 
			
		||||
          detail: this.detail,
 | 
			
		||||
          picture: JSON.stringify(this.picture),
 | 
			
		||||
          pid: this.pid,
 | 
			
		||||
          id: this.id || ''
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
 | 
			
		||||
            uni.$emit('reload')
 | 
			
		||||
            uni.navigateBack({
 | 
			
		||||
              delta: 1
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
    submit() {
 | 
			
		||||
      if (!this.detail) {
 | 
			
		||||
        return this.$u.toast('请输入帮扶内容')
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.$http.post('/app/apppreventionreturntopovertylog/addOrUpdate', {
 | 
			
		||||
        detail: this.detail,
 | 
			
		||||
        picture: JSON.stringify(this.picture),
 | 
			
		||||
        pid: this.pid,
 | 
			
		||||
        id: this.id || ''
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
 | 
			
		||||
          uni.$emit('reload')
 | 
			
		||||
          uni.navigateBack({
 | 
			
		||||
            delta: 1
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .form {
 | 
			
		||||
    padding-bottom: 120px;
 | 
			
		||||
.form {
 | 
			
		||||
  padding-bottom: 120px;
 | 
			
		||||
 | 
			
		||||
    div {
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
    }
 | 
			
		||||
  div {
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-item {
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
  .form-item {
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
 | 
			
		||||
      .form-item__title {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 34px;
 | 
			
		||||
 | 
			
		||||
        em {
 | 
			
		||||
          margin-right: 4px;
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          color: #FF4466;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-weight: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        i {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .form-type {
 | 
			
		||||
    .form-item__title {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
      margin-bottom: 34px;
 | 
			
		||||
 | 
			
		||||
      em {
 | 
			
		||||
        margin-right: 4px;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        color: #FF4466;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
      i {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .btn {
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      z-index: 11;
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      line-height: 112px;
 | 
			
		||||
      margin: 0;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      background: #3192F4;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .form-type {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
 | 
			
		||||
    h2 {
 | 
			
		||||
      font-weight: normal;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    z-index: 11;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    line-height: 112px;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
    font-size: 32px;
 | 
			
		||||
    background: #3192F4;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
        <div class="item-wrapper">
 | 
			
		||||
          <div class="item-header item-avatar">
 | 
			
		||||
            <div class="left">
 | 
			
		||||
              <image src="/static/images/avatar.png" />
 | 
			
		||||
              <image src="/static/images/avatar.png"/>
 | 
			
		||||
              <div class="left-right">
 | 
			
		||||
                <h2>{{ info.name }}</h2>
 | 
			
		||||
                <p>{{ info.phone }}</p>
 | 
			
		||||
@@ -47,14 +47,17 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="item-info">
 | 
			
		||||
            <label>监测员电话</label>
 | 
			
		||||
            <span style="color: #3D94FB;" @click="call(info.monitoringContactPhone)">{{ info.monitoringContactPhone || '-' }}</span>
 | 
			
		||||
            <span style="color: #3D94FB;"
 | 
			
		||||
                  @click="call(info.monitoringContactPhone)">{{ info.monitoringContactPhone || '-' }}</span>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="item-wrapper">
 | 
			
		||||
          <div class="item-header">
 | 
			
		||||
            <div class="left">
 | 
			
		||||
              <h2>家庭成员</h2>
 | 
			
		||||
              <i :style="{color: info.familyList.length ? '#2EA222' : '#FF4466'}">({{ info.familyList.length ? '已填写' : '未填写' }})</i>
 | 
			
		||||
              <i :style="{color: info.familyList.length ? '#2EA222' : '#FF4466'}">({{
 | 
			
		||||
                  info.familyList.length ? '已填写' : '未填写'
 | 
			
		||||
                }})</i>
 | 
			
		||||
            </div>
 | 
			
		||||
            <span @click="linkTo('/pages/Monitor/FamilyMember?id=' + info.id)">编辑</span>
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -71,7 +74,9 @@
 | 
			
		||||
          <div class="item-header">
 | 
			
		||||
            <div class="left">
 | 
			
		||||
              <h2>家庭情况</h2>
 | 
			
		||||
              <i :style="{color: isFamilySituation ? '#2EA222' : '#FF4466'}">({{ isFamilySituation ? '已填写' : '未填写' }})</i>
 | 
			
		||||
              <i :style="{color: isFamilySituation ? '#2EA222' : '#FF4466'}">({{
 | 
			
		||||
                  isFamilySituation ? '已填写' : '未填写'
 | 
			
		||||
                }})</i>
 | 
			
		||||
            </div>
 | 
			
		||||
            <span @click="linkTo('/pages/Monitor/FamilySituation?id=' + info.id)">编辑</span>
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -111,7 +116,7 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="item-info">
 | 
			
		||||
            <label>是否消除风险</label>
 | 
			
		||||
            <span>{{ info.riskEliminationMethod ? '是' : '-'  }}</span>
 | 
			
		||||
            <span>{{ info.riskEliminationMethod ? '是' : '-' }}</span>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -121,18 +126,19 @@
 | 
			
		||||
            <div class="log-item__user">
 | 
			
		||||
              <div class="left">
 | 
			
		||||
                <div class="user">
 | 
			
		||||
                  <span>{{ item.createUserName.substr(item.createUserName.length - 2)}}</span>
 | 
			
		||||
                  <span>{{ item.createUserName.substr(item.createUserName.length - 2) }}</span>
 | 
			
		||||
                </div>
 | 
			
		||||
                <h2>{{ item.createUserName }}</h2>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="right">
 | 
			
		||||
                <span>{{ item.createTime }}</span>
 | 
			
		||||
                <image src="/static/images/more.png" @click="edit(item.id)" />
 | 
			
		||||
                <image src="/static/images/more.png" @click="edit(item.id)"/>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <p>{{ item.detail }}</p>
 | 
			
		||||
            <div class="imgs">
 | 
			
		||||
              <image :src="img.url" @click="prevImg(item.imgs, img.url)" v-for="(img, index) in item.imgs" :key="index" />
 | 
			
		||||
              <image :src="img.url" @click="prevImg(item.imgs, img.url)" v-for="(img, index) in item.imgs"
 | 
			
		||||
                     :key="index"/>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -146,394 +152,395 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiFixedBtn from '@/components/AiFixedBtn'
 | 
			
		||||
  import AiEmpty from '@/components/AiEmpty/AiEmpty'
 | 
			
		||||
  export default {
 | 
			
		||||
    name: 'detail',
 | 
			
		||||
import AiFixedBtn from '@/components/AiFixedBtn'
 | 
			
		||||
import AiEmpty from '@/components/AiEmpty/AiEmpty'
 | 
			
		||||
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        info: {},
 | 
			
		||||
        pageShow: false,
 | 
			
		||||
        currIndex: 0,
 | 
			
		||||
        list: [],
 | 
			
		||||
        isFrom: false
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'detail',
 | 
			
		||||
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      info: {},
 | 
			
		||||
      pageShow: false,
 | 
			
		||||
      currIndex: 0,
 | 
			
		||||
      list: [],
 | 
			
		||||
      isFrom: false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  components: {
 | 
			
		||||
    AiEmpty,
 | 
			
		||||
    AiFixedBtn
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  computed: {
 | 
			
		||||
    isIncome() {
 | 
			
		||||
      if (!this.info.id) {
 | 
			
		||||
        return false
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      return this.info.income6 > 0 && this.info.income7 > 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiEmpty,
 | 
			
		||||
      AiFixedBtn
 | 
			
		||||
    isPoorStatus() {
 | 
			
		||||
      if (!this.info.id) {
 | 
			
		||||
        return false
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      return !!this.info.riskEliminationMethod;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    computed: {
 | 
			
		||||
      isIncome () {
 | 
			
		||||
        if (!this.info.id) {
 | 
			
		||||
          return false
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return this.info.income6 > 0 && this.info.income7 > 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      isPoorStatus () {
 | 
			
		||||
        if (!this.info.id) {
 | 
			
		||||
          return false
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return !!this.info.riskEliminationMethod;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      isFamilySituation () {
 | 
			
		||||
        if (!this.info.id) {
 | 
			
		||||
          return false
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return !!(this.info.drinkingWaterSafety && this.info.dilapidatedHouse);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    isFamilySituation() {
 | 
			
		||||
      if (!this.info.id) {
 | 
			
		||||
        return false
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      if (query.isFrom) {
 | 
			
		||||
        this.isFrom = true
 | 
			
		||||
        uni.setNavigationBarTitle({
 | 
			
		||||
          title: '风险预警详情'
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.$dict.load(['fpType', 'riskEliminationMethod', 'fpRiskType', 'fpYesOrNo']).then(() => {
 | 
			
		||||
        this.getInfo(query.id)
 | 
			
		||||
      return !!(this.info.drinkingWaterSafety && this.info.dilapidatedHouse);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    if (query.isFrom) {
 | 
			
		||||
      this.isFrom = true
 | 
			
		||||
      uni.setNavigationBarTitle({
 | 
			
		||||
        title: '风险预警详情'
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
    uni.showLoading()
 | 
			
		||||
    this.$dict.load(['fpType', 'riskEliminationMethod', 'fpRiskType', 'fpYesOrNo']).then(() => {
 | 
			
		||||
      this.getInfo(query.id)
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
      this.id = query.id
 | 
			
		||||
      uni.$on('reload', () => {
 | 
			
		||||
        this.getInfo(query.id)
 | 
			
		||||
    this.id = query.id
 | 
			
		||||
    uni.$on('reload', () => {
 | 
			
		||||
      this.getInfo(query.id)
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    linkTo(url) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      linkTo (url) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url
 | 
			
		||||
    call(phone) {
 | 
			
		||||
      if (phone) {
 | 
			
		||||
        uni.makePhoneCall({
 | 
			
		||||
          phoneNumber: phone
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
      call (phone) {
 | 
			
		||||
        if (phone) {
 | 
			
		||||
          uni.makePhoneCall({
 | 
			
		||||
            phoneNumber: phone
 | 
			
		||||
    edit(id) {
 | 
			
		||||
      uni.showActionSheet({
 | 
			
		||||
        itemList: ['编辑', '删除'],
 | 
			
		||||
        success: res => {
 | 
			
		||||
          if (res.tapIndex === 0) {
 | 
			
		||||
            uni.navigateTo({
 | 
			
		||||
              url: `/pages/Monitor/AddLog?pid=${this.info.id}&id=${id}`
 | 
			
		||||
            })
 | 
			
		||||
          } else if (res.tapIndex === 1) {
 | 
			
		||||
            this.$confirm('确定删除该数据?').then(() => {
 | 
			
		||||
              uni.showLoading()
 | 
			
		||||
              this.$http.post(`/app/apppreventionreturntopovertylog/delete?ids=${id}`).then(res => {
 | 
			
		||||
                if (res.code === 0) {
 | 
			
		||||
                  this.$u.toast('删除成功')
 | 
			
		||||
                  this.getInfo(this.id)
 | 
			
		||||
                }
 | 
			
		||||
                uni.hideLoading()
 | 
			
		||||
              })
 | 
			
		||||
            }).catch(() => {
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    prevImg(urls, img) {
 | 
			
		||||
      const imgs = urls.map(v => v.url)
 | 
			
		||||
      uni.previewImage({
 | 
			
		||||
        urls: imgs,
 | 
			
		||||
        current: img
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    toAddLog() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: '/pages/Monitor/AddLog?pid=' + this.info.id
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    changeTab(index) {
 | 
			
		||||
      this.currIndex = index
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getInfo(id) {
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.info = res.data
 | 
			
		||||
 | 
			
		||||
          let ylbxCount = 0
 | 
			
		||||
          let ylCount = 0
 | 
			
		||||
          res.data.familyList.forEach(item => {
 | 
			
		||||
            if (item.medicalInsurance === '02') {
 | 
			
		||||
              ylbxCount = ylbxCount + 1
 | 
			
		||||
            }
 | 
			
		||||
            if (item.endowmentInsurance === '02') {
 | 
			
		||||
              ylCount = ylCount + 1
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
          this.info.ylbxCount = ylbxCount
 | 
			
		||||
          this.info.ylCount = ylCount
 | 
			
		||||
          this.pageShow = true
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopovertylog/list?pid=${id}&size=1000¤t=1`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.list = res.data.records.map(item => {
 | 
			
		||||
            return {
 | 
			
		||||
              ...item,
 | 
			
		||||
              imgs: JSON.parse(item.picture)
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      edit (id) {
 | 
			
		||||
        uni.showActionSheet({
 | 
			
		||||
          itemList: ['编辑', '删除'],
 | 
			
		||||
          success: res => {
 | 
			
		||||
            if (res.tapIndex === 0) {
 | 
			
		||||
              uni.navigateTo({
 | 
			
		||||
                url: `/pages/Monitor/AddLog?pid=${this.info.id}&id=${id}`
 | 
			
		||||
              })
 | 
			
		||||
            } else if (res.tapIndex === 1) {
 | 
			
		||||
              this.$confirm('确定删除该数据?').then(() => {
 | 
			
		||||
                uni.showLoading()
 | 
			
		||||
                this.$http.post(`/app/apppreventionreturntopovertylog/delete?ids=${id}`).then(res => {
 | 
			
		||||
                  if (res.code === 0) {
 | 
			
		||||
                    this.$u.toast('删除成功')
 | 
			
		||||
                    this.getInfo(this.id)
 | 
			
		||||
                  }
 | 
			
		||||
                  uni.hideLoading()
 | 
			
		||||
                })
 | 
			
		||||
              }).catch(() => {
 | 
			
		||||
              })
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      prevImg (urls, img) {
 | 
			
		||||
        const imgs = urls.map(v => v.url)
 | 
			
		||||
        uni.previewImage({
 | 
			
		||||
          urls: imgs,
 | 
			
		||||
          current: img
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      toAddLog () {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: '/pages/Monitor/AddLog?pid=' + this.info.id
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      changeTab (index) {
 | 
			
		||||
        this.currIndex = index
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getInfo (id) {
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.info = res.data
 | 
			
		||||
 | 
			
		||||
            let ylbxCount = 0
 | 
			
		||||
            let ylCount = 0
 | 
			
		||||
            res.data.familyList.forEach(item => {
 | 
			
		||||
              if (item.medicalInsurance === '02') {
 | 
			
		||||
                ylbxCount = ylbxCount + 1
 | 
			
		||||
              }
 | 
			
		||||
              if (item.endowmentInsurance === '02') {
 | 
			
		||||
                ylCount = ylCount + 1
 | 
			
		||||
              }
 | 
			
		||||
            })
 | 
			
		||||
            this.info.ylbxCount = ylbxCount
 | 
			
		||||
            this.info.ylCount = ylCount
 | 
			
		||||
            this.pageShow = true
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopovertylog/list?pid=${id}&size=1000¤t=1`).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.list = res.data.records.map(item => {
 | 
			
		||||
              return {
 | 
			
		||||
                ...item,
 | 
			
		||||
                imgs: JSON.parse(item.picture)
 | 
			
		||||
              }
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .detail {
 | 
			
		||||
    padding-top: 96px;
 | 
			
		||||
    padding-bottom: 60px;
 | 
			
		||||
.detail {
 | 
			
		||||
  padding-top: 96px;
 | 
			
		||||
  padding-bottom: 60px;
 | 
			
		||||
 | 
			
		||||
    &.active {
 | 
			
		||||
      padding-top: 0;
 | 
			
		||||
    }
 | 
			
		||||
  &.active {
 | 
			
		||||
    padding-top: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .addBtn {
 | 
			
		||||
      width: 96px;
 | 
			
		||||
      height: 96px;
 | 
			
		||||
      flex-shrink: 0;
 | 
			
		||||
      background: $uni-color-primary;
 | 
			
		||||
      box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
 | 
			
		||||
      font-size: 48px;
 | 
			
		||||
      color: #fff;
 | 
			
		||||
      border-radius: 50%;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      display: flex;
 | 
			
		||||
    }
 | 
			
		||||
  .addBtn {
 | 
			
		||||
    width: 96px;
 | 
			
		||||
    height: 96px;
 | 
			
		||||
    flex-shrink: 0;
 | 
			
		||||
    background: $uni-color-primary;
 | 
			
		||||
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
 | 
			
		||||
    font-size: 48px;
 | 
			
		||||
    color: #fff;
 | 
			
		||||
    border-radius: 50%;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    display: flex;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .tab {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      top: 0;
 | 
			
		||||
      z-index: 1;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 96px;
 | 
			
		||||
      padding: 0 60px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-bottom: 1px solid #D4D4D4;
 | 
			
		||||
  .tab {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    z-index: 1;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 96px;
 | 
			
		||||
    padding: 0 60px;
 | 
			
		||||
    background: #FFFFFF;
 | 
			
		||||
    border-bottom: 1px solid #D4D4D4;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
    * {
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      * {
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
    span {
 | 
			
		||||
      position: relative;
 | 
			
		||||
      flex: 1;
 | 
			
		||||
      height: 96 rpx;
 | 
			
		||||
      line-height: 96 rpx;
 | 
			
		||||
      color: #000000;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
 | 
			
		||||
      &::after {
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        bottom: 0;
 | 
			
		||||
        left: 50%;
 | 
			
		||||
        width: 192px;
 | 
			
		||||
        height: 6px;
 | 
			
		||||
        background: transparent;
 | 
			
		||||
        transform: translateX(-50%);
 | 
			
		||||
        content: ' ';
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      &.active {
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
 | 
			
		||||
        &::after {
 | 
			
		||||
          background: #1365DD;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .item-wrapper {
 | 
			
		||||
    background: #fff;
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
    padding: 0 32px 16px;
 | 
			
		||||
 | 
			
		||||
    .item-header {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      height: 96px;
 | 
			
		||||
 | 
			
		||||
      & > span {
 | 
			
		||||
        color: #3975C6;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        i {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          color: #2EA222;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item-info {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      padding: 14px 0;
 | 
			
		||||
 | 
			
		||||
      label {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        position: relative;
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        height: 96rpx;
 | 
			
		||||
        line-height: 96rpx;
 | 
			
		||||
        color: #000000;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        max-width: 496px;
 | 
			
		||||
        text-align: right;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
 | 
			
		||||
        &::after {
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
          left: 50%;
 | 
			
		||||
          width: 192px;
 | 
			
		||||
          height: 6px;
 | 
			
		||||
          background: transparent;
 | 
			
		||||
          transform: translateX(-50%);
 | 
			
		||||
          content: ' ';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &.active {
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
 | 
			
		||||
          &::after {
 | 
			
		||||
            background: #1365DD;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item-wrapper {
 | 
			
		||||
      background: #fff;
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      padding: 0 32px 16px;
 | 
			
		||||
    .item-avatar {
 | 
			
		||||
      height: 192px;
 | 
			
		||||
 | 
			
		||||
      .item-header {
 | 
			
		||||
      image {
 | 
			
		||||
        width: 112px;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        margin-right: 24px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .left-right {
 | 
			
		||||
        p {
 | 
			
		||||
          margin-top: 8px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .log-item {
 | 
			
		||||
    padding: 0 0 0 32px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
 | 
			
		||||
    &:first-child {
 | 
			
		||||
      margin-top: 16px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    &:last-child {
 | 
			
		||||
      .log-item__wrapper {
 | 
			
		||||
        border: none !important;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .log-item__wrapper {
 | 
			
		||||
      padding: 32px 32px 32px 0;
 | 
			
		||||
      border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
 | 
			
		||||
      .log-item__user {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        height: 96px;
 | 
			
		||||
 | 
			
		||||
        & > span {
 | 
			
		||||
          color: #3975C6;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        & > div {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          .user, image {
 | 
			
		||||
            width: 80px;
 | 
			
		||||
            height: 80px;
 | 
			
		||||
            line-height: 80px;
 | 
			
		||||
            margin-right: 16px;
 | 
			
		||||
            text-align: center;
 | 
			
		||||
            border-radius: 50%;
 | 
			
		||||
            background: #2266FF;
 | 
			
		||||
 | 
			
		||||
            span {
 | 
			
		||||
              color: #fff;
 | 
			
		||||
              font-size: 28px;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          h2 {
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
            font-weight: 500;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          i {
 | 
			
		||||
            font-style: normal;
 | 
			
		||||
            color: #2EA222;
 | 
			
		||||
            color: #333;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item-info {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        padding: 14px 0;
 | 
			
		||||
        .right {
 | 
			
		||||
          image {
 | 
			
		||||
            width: 32px;
 | 
			
		||||
            height: 32px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
        label {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          max-width: 496px;
 | 
			
		||||
          text-align: right;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item-avatar {
 | 
			
		||||
        height: 192px;
 | 
			
		||||
 | 
			
		||||
        image {
 | 
			
		||||
          width: 112px;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          margin-right: 24px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .left-right {
 | 
			
		||||
          p {
 | 
			
		||||
            margin-top: 8px;
 | 
			
		||||
          span {
 | 
			
		||||
            margin-right: 6px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
            font-size: 28px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .log-item {
 | 
			
		||||
      padding: 0 0 0 32px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
 | 
			
		||||
      &:first-child {
 | 
			
		||||
        margin-top: 16px;
 | 
			
		||||
      p {
 | 
			
		||||
        margin: 4px 0 16px 96px;
 | 
			
		||||
        color: #343D65;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        .log-item__wrapper {
 | 
			
		||||
          border: none!important;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      .imgs {
 | 
			
		||||
        margin-left: 96px;
 | 
			
		||||
 | 
			
		||||
      .log-item__wrapper {
 | 
			
		||||
        padding: 32px 32px 32px 0;
 | 
			
		||||
        border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
 | 
			
		||||
        .log-item__user {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
 | 
			
		||||
          & > div {
 | 
			
		||||
            display: flex;
 | 
			
		||||
            align-items: center;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          .left {
 | 
			
		||||
            .user, image {
 | 
			
		||||
              width: 80px;
 | 
			
		||||
              height: 80px;
 | 
			
		||||
              line-height: 80px;
 | 
			
		||||
              margin-right: 16px;
 | 
			
		||||
              text-align: center;
 | 
			
		||||
              border-radius: 50%;
 | 
			
		||||
              background: #2266FF;
 | 
			
		||||
 | 
			
		||||
              span {
 | 
			
		||||
                color: #fff;
 | 
			
		||||
                font-size: 28px;
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            h2 {
 | 
			
		||||
              color: #333;
 | 
			
		||||
              font-size: 32px;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          .right {
 | 
			
		||||
            image {
 | 
			
		||||
              width: 32px;
 | 
			
		||||
              height: 32px;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            span {
 | 
			
		||||
              margin-right: 6px;
 | 
			
		||||
              color: #999999;
 | 
			
		||||
              font-size: 28px;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        p {
 | 
			
		||||
          margin: 4px 0 16px 96px;
 | 
			
		||||
          color: #343D65;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .imgs {
 | 
			
		||||
          margin-left: 96px;
 | 
			
		||||
 | 
			
		||||
          image {
 | 
			
		||||
            width: 136px;
 | 
			
		||||
            height: 136px;
 | 
			
		||||
            margin-right: 8px;
 | 
			
		||||
            margin-bottom: 8px;
 | 
			
		||||
          }
 | 
			
		||||
        image {
 | 
			
		||||
          width: 136px;
 | 
			
		||||
          height: 136px;
 | 
			
		||||
          margin-right: 8px;
 | 
			
		||||
          margin-bottom: 8px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -80,7 +80,7 @@
 | 
			
		||||
      <div class="addBtn iconfont iconfont-iconfangda" @tap="toAdd"></div>
 | 
			
		||||
    </ai-fixed-btn>
 | 
			
		||||
    <div class="no-more" v-if="!list.length">
 | 
			
		||||
      <image src="/static/images/empty.png" />
 | 
			
		||||
      <image src="/static/images/empty.png"/>
 | 
			
		||||
      <div>
 | 
			
		||||
        <span>您还未添加过家庭成员点击</span>
 | 
			
		||||
        <i>新增按钮</i>
 | 
			
		||||
@@ -91,246 +91,246 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiFixedBtn from '@/components/AiFixedBtn'
 | 
			
		||||
  import AiBack from '@/components/AiBack'
 | 
			
		||||
import AiFixedBtn from '@/components/AiFixedBtn'
 | 
			
		||||
import AiBack from '@/components/AiBack'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        list: [],
 | 
			
		||||
        id: '',
 | 
			
		||||
        info: {},
 | 
			
		||||
        pageShow: false
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      list: [],
 | 
			
		||||
      id: '',
 | 
			
		||||
      info: {},
 | 
			
		||||
      pageShow: false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiBack,
 | 
			
		||||
      AiFixedBtn
 | 
			
		||||
    },
 | 
			
		||||
  components: {
 | 
			
		||||
    AiBack,
 | 
			
		||||
    AiFixedBtn
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.id = query.id
 | 
			
		||||
      this.$dict.load(['fpRelationship', 'sex', 'fpNation', 'fpHealth', 'fpEducation', 'fpYesOrNo', 'fpLaborSkills', 'fpPoliticalOutlook',
 | 
			
		||||
        'fpRelationship', 'fpStudentsInSchool', 'fpFnancialAssistance', 'fpHealthAssistance', 'fpHousingSecurity']).then(() => {
 | 
			
		||||
        this.getInfo(query.id)
 | 
			
		||||
      })
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    uni.showLoading()
 | 
			
		||||
    this.id = query.id
 | 
			
		||||
    this.$dict.load(['fpRelationship', 'sex', 'fpNation', 'fpHealth', 'fpEducation', 'fpYesOrNo', 'fpLaborSkills', 'fpPoliticalOutlook',
 | 
			
		||||
      'fpRelationship', 'fpStudentsInSchool', 'fpFnancialAssistance', 'fpHealthAssistance', 'fpHousingSecurity']).then(() => {
 | 
			
		||||
      this.getInfo(query.id)
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
      uni.$on('reload', () => {
 | 
			
		||||
        this.getInfo(query.id)
 | 
			
		||||
    uni.$on('reload', () => {
 | 
			
		||||
      this.getInfo(query.id)
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    toAdd() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: '/pages/Monitor/AddFamilyMember?id=' + this.id
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      toAdd () {
 | 
			
		||||
    toEdit(index) {
 | 
			
		||||
      this.$confirm('确定编辑该数据?').then(() => {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: '/pages/Monitor/AddFamilyMember?id=' + this.id
 | 
			
		||||
          url: `/pages/Monitor/AddFamilyMember?id=${this.id}&index=${index}`
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      }).catch(() => {
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
      toEdit (index) {
 | 
			
		||||
        this.$confirm('确定编辑该数据?').then(() => {
 | 
			
		||||
          uni.navigateTo({
 | 
			
		||||
            url: `/pages/Monitor/AddFamilyMember?id=${this.id}&index=${index}`
 | 
			
		||||
          })
 | 
			
		||||
        }).catch(() => {
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      remove (index) {
 | 
			
		||||
        this.$confirm('确定删除该数据?').then(() => {
 | 
			
		||||
          let familyList = JSON.parse(JSON.stringify(this.list))
 | 
			
		||||
          familyList.splice(index, 1)
 | 
			
		||||
          uni.showLoading()
 | 
			
		||||
          this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
            ...this.info,
 | 
			
		||||
            familyList,
 | 
			
		||||
            id: this.id
 | 
			
		||||
          }).then(res => {
 | 
			
		||||
            if (res.code === 0) {
 | 
			
		||||
              this.$u.toast('删除成功')
 | 
			
		||||
              this.getInfo(this.id)
 | 
			
		||||
            }
 | 
			
		||||
            uni.hideLoading()
 | 
			
		||||
          })
 | 
			
		||||
        }).catch(() => {
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      showMore (index) {
 | 
			
		||||
        this.list[index].isShow = !this.list[index].isShow
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getInfo (id) {
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
    remove(index) {
 | 
			
		||||
      this.$confirm('确定删除该数据?').then(() => {
 | 
			
		||||
        let familyList = JSON.parse(JSON.stringify(this.list))
 | 
			
		||||
        familyList.splice(index, 1)
 | 
			
		||||
        uni.showLoading()
 | 
			
		||||
        this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
          ...this.info,
 | 
			
		||||
          familyList,
 | 
			
		||||
          id: this.id
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.info = res.data
 | 
			
		||||
            this.list = res.data.familyList.map(item => {
 | 
			
		||||
              return {
 | 
			
		||||
                ...item,
 | 
			
		||||
                isShow: false,
 | 
			
		||||
                age: this.$calcAge(item.idNumber)
 | 
			
		||||
              }
 | 
			
		||||
            })
 | 
			
		||||
 | 
			
		||||
            this.pageShow = true
 | 
			
		||||
            this.$u.toast('删除成功')
 | 
			
		||||
            this.getInfo(this.id)
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
      }).catch(() => {
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    showMore(index) {
 | 
			
		||||
      this.list[index].isShow = !this.list[index].isShow
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getInfo(id) {
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.info = res.data
 | 
			
		||||
          this.list = res.data.familyList.map(item => {
 | 
			
		||||
            return {
 | 
			
		||||
              ...item,
 | 
			
		||||
              isShow: false,
 | 
			
		||||
              age: this.$calcAge(item.idNumber)
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
 | 
			
		||||
          this.pageShow = true
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .familyMember {
 | 
			
		||||
    padding: 32px 0;
 | 
			
		||||
.familyMember {
 | 
			
		||||
  padding: 32px 0;
 | 
			
		||||
 | 
			
		||||
    .no-more {
 | 
			
		||||
      padding-top: 160px;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
  .no-more {
 | 
			
		||||
    padding-top: 160px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
 | 
			
		||||
      image {
 | 
			
		||||
        width: 282px;
 | 
			
		||||
        height: 304px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      div {
 | 
			
		||||
        width: 280px;
 | 
			
		||||
        margin: 0 auto;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        i {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          color: #467DFE;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    image {
 | 
			
		||||
      width: 282px;
 | 
			
		||||
      height: 304px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .addBtn {
 | 
			
		||||
      width: 96px;
 | 
			
		||||
      height: 96px;
 | 
			
		||||
      flex-shrink: 0;
 | 
			
		||||
      background: $uni-color-primary;
 | 
			
		||||
      box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
 | 
			
		||||
      font-size: 48px;
 | 
			
		||||
      color: #fff;
 | 
			
		||||
      border-radius: 50%;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
    div {
 | 
			
		||||
      width: 280px;
 | 
			
		||||
      margin: 0 auto;
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      i {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        color: #467DFE;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .addBtn {
 | 
			
		||||
    width: 96px;
 | 
			
		||||
    height: 96px;
 | 
			
		||||
    flex-shrink: 0;
 | 
			
		||||
    background: $uni-color-primary;
 | 
			
		||||
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
 | 
			
		||||
    font-size: 48px;
 | 
			
		||||
    color: #fff;
 | 
			
		||||
    border-radius: 50%;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    display: flex;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .item {
 | 
			
		||||
    width: 686px;
 | 
			
		||||
    margin: 0 auto 32px;
 | 
			
		||||
    border-radius: 16px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
 | 
			
		||||
    .item-bottom {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      height: 94px;
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        line-height: 96px;
 | 
			
		||||
        color: #3975C6;
 | 
			
		||||
        font-size: 26px;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 686px;
 | 
			
		||||
      margin: 0 auto 32px;
 | 
			
		||||
      border-radius: 16px;
 | 
			
		||||
      overflow: hidden;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
    .item-title {
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
 | 
			
		||||
      .item-bottom {
 | 
			
		||||
      .top {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        height: 94px;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        margin-bottom: 8px;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          flex: 1;
 | 
			
		||||
          height: 100%;
 | 
			
		||||
          line-height: 96px;
 | 
			
		||||
          color: #3975C6;
 | 
			
		||||
          font-size: 26px;
 | 
			
		||||
          text-align: center;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item-title {
 | 
			
		||||
        padding: 32px;
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
 | 
			
		||||
        .top {
 | 
			
		||||
        .left {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
          margin-bottom: 8px;
 | 
			
		||||
 | 
			
		||||
          .left {
 | 
			
		||||
            display: flex;
 | 
			
		||||
            align-items: center;
 | 
			
		||||
 | 
			
		||||
            h2 {
 | 
			
		||||
              margin-right: 32px;
 | 
			
		||||
              color: #333333;
 | 
			
		||||
              font-size: 40px;
 | 
			
		||||
              font-weight: 500;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            span {
 | 
			
		||||
              color: #999999;
 | 
			
		||||
              font-size: 28px;
 | 
			
		||||
            }
 | 
			
		||||
          h2 {
 | 
			
		||||
            margin-right: 32px;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            font-size: 40px;
 | 
			
		||||
            font-weight: 500;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span {
 | 
			
		||||
            color: #3975C6;
 | 
			
		||||
          span {
 | 
			
		||||
            color: #999999;
 | 
			
		||||
            font-size: 28px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item-info {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        flex-wrap: wrap;
 | 
			
		||||
        background: #F9F9F9;
 | 
			
		||||
 | 
			
		||||
        .item-info__item {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
          width: 50%;
 | 
			
		||||
          height: 72px;
 | 
			
		||||
          padding: 0 20px;
 | 
			
		||||
          border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
          border-right: 1px solid #DDDDDD;
 | 
			
		||||
          box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
          &:nth-of-type(2n) {
 | 
			
		||||
            border-right: none;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        label {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 26px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
        & > span {
 | 
			
		||||
          color: #3975C6;
 | 
			
		||||
          font-size: 26px;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item-info {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      flex-wrap: wrap;
 | 
			
		||||
      background: #F9F9F9;
 | 
			
		||||
 | 
			
		||||
      .item-info__item {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        width: 50%;
 | 
			
		||||
        height: 72px;
 | 
			
		||||
        padding: 0 20px;
 | 
			
		||||
        border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
        border-right: 1px solid #DDDDDD;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
        &:nth-of-type(2n) {
 | 
			
		||||
          border-right: none;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .bottom {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
      label {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 26px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
      span {
 | 
			
		||||
        color: #3975C6;
 | 
			
		||||
        font-size: 26px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
          &:first-child {
 | 
			
		||||
            margin-right: 20px;
 | 
			
		||||
          }
 | 
			
		||||
    .bottom {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
 | 
			
		||||
        &:first-child {
 | 
			
		||||
          margin-right: 20px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,9 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <u-radio-group v-model="form.dilapidatedHouse">
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">{{ item.dictName }}</u-radio>
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">
 | 
			
		||||
                {{ item.dictName }}
 | 
			
		||||
              </u-radio>
 | 
			
		||||
            </u-radio-group>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -22,7 +24,9 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <u-radio-group v-model="form.drinkingWaterSafety">
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">{{ item.dictName }}</u-radio>
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">
 | 
			
		||||
                {{ item.dictName }}
 | 
			
		||||
              </u-radio>
 | 
			
		||||
            </u-radio-group>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -49,211 +53,211 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from '@/components/AiBack'
 | 
			
		||||
  import AiSelect from '@/components/AiSelect'
 | 
			
		||||
import AiBack from '@/components/AiBack'
 | 
			
		||||
import AiSelect from '@/components/AiSelect'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        form: {
 | 
			
		||||
          dilapidatedHouse: '',
 | 
			
		||||
          drinkingWaterSafety: '',
 | 
			
		||||
          riskType: ''
 | 
			
		||||
        },
 | 
			
		||||
        id: ''
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiBack,
 | 
			
		||||
      AiSelect
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      this.$dict.load(['fpYesOrNo', 'fpRiskType'])
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.id = query.id
 | 
			
		||||
      this.getInfo(query.id)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      getInfo (id) {
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.form = {
 | 
			
		||||
              ...this.form,
 | 
			
		||||
              ...res.data
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      submit () {
 | 
			
		||||
        uni.showLoading()
 | 
			
		||||
        this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
          ...this.form,
 | 
			
		||||
          id: this.id
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
 | 
			
		||||
            uni.$emit('reload')
 | 
			
		||||
            uni.navigateBack({
 | 
			
		||||
              delta: 1
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      form: {
 | 
			
		||||
        dilapidatedHouse: '',
 | 
			
		||||
        drinkingWaterSafety: '',
 | 
			
		||||
        riskType: ''
 | 
			
		||||
      },
 | 
			
		||||
      id: ''
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  components: {
 | 
			
		||||
    AiBack,
 | 
			
		||||
    AiSelect
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    this.$dict.load(['fpYesOrNo', 'fpRiskType'])
 | 
			
		||||
    uni.showLoading()
 | 
			
		||||
    this.id = query.id
 | 
			
		||||
    this.getInfo(query.id)
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    getInfo(id) {
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.form = {
 | 
			
		||||
            ...this.form,
 | 
			
		||||
            ...res.data
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    submit() {
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
        ...this.form,
 | 
			
		||||
        id: this.id
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
 | 
			
		||||
          uni.$emit('reload')
 | 
			
		||||
          uni.navigateBack({
 | 
			
		||||
            delta: 1
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .add {
 | 
			
		||||
    padding-bottom: 120px;
 | 
			
		||||
.add {
 | 
			
		||||
  padding-bottom: 120px;
 | 
			
		||||
 | 
			
		||||
    .form-textarea {
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
  .form-textarea {
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        height: 200px;
 | 
			
		||||
      }
 | 
			
		||||
    h2 {
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > div {
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 200px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    ::v-deep .u-radio {
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        .u-radio__label {
 | 
			
		||||
          margin-right: 0;
 | 
			
		||||
        }
 | 
			
		||||
  & > div {
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ::v-deep .u-radio {
 | 
			
		||||
    &:last-child {
 | 
			
		||||
      .u-radio__label {
 | 
			
		||||
        margin-right: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-group {
 | 
			
		||||
      .form-item {
 | 
			
		||||
        padding-left: 32px;
 | 
			
		||||
  .form-group {
 | 
			
		||||
    .form-item {
 | 
			
		||||
      padding-left: 32px;
 | 
			
		||||
 | 
			
		||||
        .form-item__wrapper {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          line-height: 112px;
 | 
			
		||||
          padding-right: 32px;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            font-size: 30px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        input {
 | 
			
		||||
          height: 100%;
 | 
			
		||||
          text-align: right;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          i {
 | 
			
		||||
            margin-right: 4px;
 | 
			
		||||
            font-style: normal;
 | 
			
		||||
            color: #FF4466;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:last-child {
 | 
			
		||||
          .form-item__wrapper {
 | 
			
		||||
            border: none;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .form-item__imgs {
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
 | 
			
		||||
      .form-item__title {
 | 
			
		||||
      .form-item__wrapper {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 34px;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
      .right {
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        line-height: 112px;
 | 
			
		||||
        padding-right: 32px;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      input {
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        text-align: right;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-weight: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        i {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          margin-right: 4px;
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          color: #FF4466;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        .form-item__wrapper {
 | 
			
		||||
          border: none;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-type {
 | 
			
		||||
  .form-item__imgs {
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
 | 
			
		||||
    .form-item__title {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
      margin-bottom: 34px;
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
      i {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .btn {
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      z-index: 11;
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      line-height: 112px;
 | 
			
		||||
      margin: 0;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      background: #3192F4;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .form-type {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
 | 
			
		||||
    h2 {
 | 
			
		||||
      font-weight: normal;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    z-index: 11;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    line-height: 112px;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
    font-size: 32px;
 | 
			
		||||
    background: #3192F4;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,8 @@
 | 
			
		||||
            <span>工资收入</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income1" type="number" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income1" type="number"
 | 
			
		||||
                   placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -17,7 +18,8 @@
 | 
			
		||||
            <span>生产经营收入</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income2" type="number" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income2" type="number"
 | 
			
		||||
                   placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -27,7 +29,8 @@
 | 
			
		||||
            <span>财产性收入</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income3" type="number" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income3" type="number"
 | 
			
		||||
                   placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -37,7 +40,8 @@
 | 
			
		||||
            <span>转移性收入</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income4" type="number" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income4" type="number"
 | 
			
		||||
                   placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -47,7 +51,8 @@
 | 
			
		||||
            <span>理赔收入</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income8" type="number" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income8" type="number"
 | 
			
		||||
                   placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -59,7 +64,8 @@
 | 
			
		||||
            <span>生产经营支出</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income5" type="number" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income5" type="number"
 | 
			
		||||
                   placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -69,7 +75,8 @@
 | 
			
		||||
            <span>合规自然支出</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income9" type="number" placeholder-style="color: #999; font-size: 30rpx;" />
 | 
			
		||||
            <input placeholder="请输入" v-model="form.income9" type="number"
 | 
			
		||||
                   placeholder-style="color: #999; font-size: 30rpx;"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -80,188 +87,188 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        form: {
 | 
			
		||||
          income1: '',
 | 
			
		||||
          income2: '',
 | 
			
		||||
          income3: '',
 | 
			
		||||
          income4: '',
 | 
			
		||||
          income5: '',
 | 
			
		||||
          income8: '',
 | 
			
		||||
          income9: ''
 | 
			
		||||
        },
 | 
			
		||||
        id: ''
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.id = query.id
 | 
			
		||||
      this.getInfo(query.id)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      getInfo (id) {
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.form = {
 | 
			
		||||
              ...this.form,
 | 
			
		||||
              ...res.data
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      form: {
 | 
			
		||||
        income1: '',
 | 
			
		||||
        income2: '',
 | 
			
		||||
        income3: '',
 | 
			
		||||
        income4: '',
 | 
			
		||||
        income5: '',
 | 
			
		||||
        income8: '',
 | 
			
		||||
        income9: ''
 | 
			
		||||
      },
 | 
			
		||||
      id: ''
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
      submit () {
 | 
			
		||||
        uni.showLoading()
 | 
			
		||||
        this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
          ...this.form,
 | 
			
		||||
          id: this.id
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
 | 
			
		||||
            uni.$emit('reload')
 | 
			
		||||
            uni.navigateBack({
 | 
			
		||||
              delta: 1
 | 
			
		||||
            })
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    uni.showLoading()
 | 
			
		||||
    this.id = query.id
 | 
			
		||||
    this.getInfo(query.id)
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    getInfo(id) {
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.form = {
 | 
			
		||||
            ...this.form,
 | 
			
		||||
            ...res.data
 | 
			
		||||
          }
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    submit() {
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
        ...this.form,
 | 
			
		||||
        id: this.id
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
 | 
			
		||||
          uni.$emit('reload')
 | 
			
		||||
          uni.navigateBack({
 | 
			
		||||
            delta: 1
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .add {
 | 
			
		||||
    padding-bottom: 120px;
 | 
			
		||||
.add {
 | 
			
		||||
  padding-bottom: 120px;
 | 
			
		||||
 | 
			
		||||
    .tips {
 | 
			
		||||
      margin: 32px 0 0 32px;
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      font-size: 26px;
 | 
			
		||||
    }
 | 
			
		||||
  .tips {
 | 
			
		||||
    margin: 32px 0 0 32px;
 | 
			
		||||
    color: #999999;
 | 
			
		||||
    font-size: 26px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    & > div {
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
    }
 | 
			
		||||
  & > div {
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-group {
 | 
			
		||||
      .form-item {
 | 
			
		||||
        padding-left: 32px;
 | 
			
		||||
  .form-group {
 | 
			
		||||
    .form-item {
 | 
			
		||||
      padding-left: 32px;
 | 
			
		||||
 | 
			
		||||
        .form-item__wrapper {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          line-height: 112px;
 | 
			
		||||
          padding-right: 32px;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            font-size: 30px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        input {
 | 
			
		||||
          height: 100%;
 | 
			
		||||
          text-align: right;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          i {
 | 
			
		||||
            margin-right: 4px;
 | 
			
		||||
            font-style: normal;
 | 
			
		||||
            color: #FF4466;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:last-child {
 | 
			
		||||
          .form-item__wrapper {
 | 
			
		||||
            border: none;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .form-item__imgs {
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
 | 
			
		||||
      .form-item__title {
 | 
			
		||||
      .form-item__wrapper {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 34px;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
      .right {
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        line-height: 112px;
 | 
			
		||||
        padding-right: 32px;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      input {
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        text-align: right;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-weight: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        i {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          margin-right: 4px;
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          color: #FF4466;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        .form-item__wrapper {
 | 
			
		||||
          border: none;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-type {
 | 
			
		||||
  .form-item__imgs {
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
 | 
			
		||||
    .form-item__title {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
      margin-bottom: 34px;
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
      i {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .btn {
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      z-index: 11;
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      line-height: 112px;
 | 
			
		||||
      margin: 0;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      background: #3192F4;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .form-type {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
 | 
			
		||||
    h2 {
 | 
			
		||||
      font-weight: normal;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    z-index: 11;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    line-height: 112px;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
    font-size: 32px;
 | 
			
		||||
    background: #3192F4;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -12,76 +12,76 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import Statistics from './components/Statistics.vue'
 | 
			
		||||
  import List from './components/List.vue'
 | 
			
		||||
import Statistics from './components/Statistics.vue'
 | 
			
		||||
import List from './components/List.vue'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        currIndex: 0
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      currIndex: 0
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      List,
 | 
			
		||||
      Statistics
 | 
			
		||||
    },
 | 
			
		||||
  components: {
 | 
			
		||||
    List,
 | 
			
		||||
    Statistics
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    computed: {
 | 
			
		||||
      tabBar () {
 | 
			
		||||
        const link = icon => `${this.$cdn}askform/${icon}.png`
 | 
			
		||||
        return [
 | 
			
		||||
          {text: "监测对象列表", iconPath: "bdlb1", selectedIconPath: "bdlb2" },
 | 
			
		||||
          {text: "数据统计", iconPath: "xjxm1", selectedIconPath: "xjxm2" }
 | 
			
		||||
        ].map(e => ({
 | 
			
		||||
          ...e,
 | 
			
		||||
          iconPath: link(e.iconPath),
 | 
			
		||||
          selectedIconPath: link(e.selectedIconPath)
 | 
			
		||||
        }))
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  computed: {
 | 
			
		||||
    tabBar() {
 | 
			
		||||
      const link = icon => `${this.$cdn}askform/${icon}.png`
 | 
			
		||||
      return [
 | 
			
		||||
        {text: "监测对象列表", iconPath: "bdlb1", selectedIconPath: "bdlb2"},
 | 
			
		||||
        {text: "数据统计", iconPath: "xjxm1", selectedIconPath: "xjxm2"}
 | 
			
		||||
      ].map(e => ({
 | 
			
		||||
        ...e,
 | 
			
		||||
        iconPath: link(e.iconPath),
 | 
			
		||||
        selectedIconPath: link(e.selectedIconPath)
 | 
			
		||||
      }))
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onLoad () {
 | 
			
		||||
      uni.$on('reload', () => {
 | 
			
		||||
        if (this.currIndex === 0) {
 | 
			
		||||
          this.$refs.list.reload()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onReachBottom() {
 | 
			
		||||
  onLoad() {
 | 
			
		||||
    uni.$on('reload', () => {
 | 
			
		||||
      if (this.currIndex === 0) {
 | 
			
		||||
        this.$refs.list.getList()
 | 
			
		||||
        this.$refs.list.reload()
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onReachBottom() {
 | 
			
		||||
    if (this.currIndex === 0) {
 | 
			
		||||
      this.$refs.list.getList()
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .povertyMonitor {
 | 
			
		||||
    .footer {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      z-index: 11;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
.povertyMonitor {
 | 
			
		||||
  .footer {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    z-index: 11;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 98px;
 | 
			
		||||
 | 
			
		||||
    div {
 | 
			
		||||
      flex: 1;
 | 
			
		||||
      height: 98px;
 | 
			
		||||
      line-height: 98px;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
 | 
			
		||||
      div {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        height: 98px;
 | 
			
		||||
        line-height: 98px;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        background: #fff;
 | 
			
		||||
 | 
			
		||||
        &.active {
 | 
			
		||||
          color: #fff;
 | 
			
		||||
          background: #3192F4;
 | 
			
		||||
        }
 | 
			
		||||
      &.active {
 | 
			
		||||
        color: #fff;
 | 
			
		||||
        background: #3192F4;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -86,7 +86,9 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <u-radio-group v-model="form.isRisk" @change="onRiskChange">
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">{{ item.dictName }}</u-radio>
 | 
			
		||||
              <u-radio :name="item.dictValue" v-for="(item, index) in $dict.getDict('fpYesOrNo')" :key="index">
 | 
			
		||||
                {{ item.dictName }}
 | 
			
		||||
              </u-radio>
 | 
			
		||||
            </u-radio-group>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -119,232 +121,232 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiSelect from '@/components/AiSelect'
 | 
			
		||||
  import AiDate from '@/components/AiDate'
 | 
			
		||||
import AiSelect from '@/components/AiSelect'
 | 
			
		||||
import AiDate from '@/components/AiDate'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        result: '',
 | 
			
		||||
        form: {
 | 
			
		||||
          isRisk: '02',
 | 
			
		||||
          riskEliminationMethod: '',
 | 
			
		||||
          riskEliminationDate: '',
 | 
			
		||||
          industrialAssistance: '',
 | 
			
		||||
          healthAssistance: '',
 | 
			
		||||
          employmentAssistance: '',
 | 
			
		||||
          educationalAssistance: '',
 | 
			
		||||
          financialAssistance: '',
 | 
			
		||||
          socialAssistance: '',
 | 
			
		||||
          publicWelfarePostAssistance: ''
 | 
			
		||||
        },
 | 
			
		||||
        id: ''
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      result: '',
 | 
			
		||||
      form: {
 | 
			
		||||
        isRisk: '02',
 | 
			
		||||
        riskEliminationMethod: '',
 | 
			
		||||
        riskEliminationDate: '',
 | 
			
		||||
        industrialAssistance: '',
 | 
			
		||||
        healthAssistance: '',
 | 
			
		||||
        employmentAssistance: '',
 | 
			
		||||
        educationalAssistance: '',
 | 
			
		||||
        financialAssistance: '',
 | 
			
		||||
        socialAssistance: '',
 | 
			
		||||
        publicWelfarePostAssistance: ''
 | 
			
		||||
      },
 | 
			
		||||
      id: ''
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiDate,
 | 
			
		||||
      AiSelect
 | 
			
		||||
    },
 | 
			
		||||
  components: {
 | 
			
		||||
    AiDate,
 | 
			
		||||
    AiSelect
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.$dict.load(['fpYesOrNo', 'fpRiskEliminationMethod', 'fpIndustrialAssistance', 'fpHealthAssistance', 'fpEmploymentAssistance', 
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    uni.showLoading()
 | 
			
		||||
    this.$dict.load(['fpYesOrNo', 'fpRiskEliminationMethod', 'fpIndustrialAssistance', 'fpHealthAssistance', 'fpEmploymentAssistance',
 | 
			
		||||
      'fpEducationalAssistance', 'fpFinancialAssistance', 'fpSocialAssistance', 'fpPublicWelfarePostAssistance']).then(() => {
 | 
			
		||||
        this.getInfo(query.id)
 | 
			
		||||
      this.getInfo(query.id)
 | 
			
		||||
    })
 | 
			
		||||
    this.id = query.id
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    getInfo(id) {
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.form = {
 | 
			
		||||
            ...this.form,
 | 
			
		||||
            ...res.data
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          if (this.form.riskEliminationMethod) {
 | 
			
		||||
            this.form.isRisk = '01'
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
      this.id = query.id
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      getInfo (id) {
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.form = {
 | 
			
		||||
              ...this.form,
 | 
			
		||||
              ...res.data
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (this.form.riskEliminationMethod) {
 | 
			
		||||
              this.form.isRisk = '01'
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      onRiskChange (e) {
 | 
			
		||||
        if (e === '02') {
 | 
			
		||||
          this.form.riskEliminationMethod = ''
 | 
			
		||||
          this.form.riskEliminationDate = ''
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      submit () {
 | 
			
		||||
        if (!this.form.isRisk) {
 | 
			
		||||
          return this.$u.toast('请选择是否消除风险')
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (this.form.isRisk === '01') {
 | 
			
		||||
          if (!this.form.riskEliminationMethod) {
 | 
			
		||||
            return this.$u.toast('请选择风险消除方式')
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          if (!this.form.riskEliminationDate) {
 | 
			
		||||
            return this.$u.toast('请选择风险消除时间')
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        uni.showLoading()
 | 
			
		||||
        this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
          ...this.form,
 | 
			
		||||
          riskEliminationMethod: this.form.isRisk ? this.form.riskEliminationMethod : '',
 | 
			
		||||
          id: this.id,
 | 
			
		||||
          status: this.form.isRisk === '01' ? 1 : ''
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
 | 
			
		||||
            uni.$emit('reload')
 | 
			
		||||
            uni.navigateBack({
 | 
			
		||||
              delta: 1
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
    onRiskChange(e) {
 | 
			
		||||
      if (e === '02') {
 | 
			
		||||
        this.form.riskEliminationMethod = ''
 | 
			
		||||
        this.form.riskEliminationDate = ''
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    submit() {
 | 
			
		||||
      if (!this.form.isRisk) {
 | 
			
		||||
        return this.$u.toast('请选择是否消除风险')
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (this.form.isRisk === '01') {
 | 
			
		||||
        if (!this.form.riskEliminationMethod) {
 | 
			
		||||
          return this.$u.toast('请选择风险消除方式')
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!this.form.riskEliminationDate) {
 | 
			
		||||
          return this.$u.toast('请选择风险消除时间')
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.$http.post('/app/apppreventionreturntopoverty/addOrUpdate', {
 | 
			
		||||
        ...this.form,
 | 
			
		||||
        riskEliminationMethod: this.form.isRisk ? this.form.riskEliminationMethod : '',
 | 
			
		||||
        id: this.id,
 | 
			
		||||
        status: this.form.isRisk === '01' ? 1 : ''
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.$u.toast(this.isEdit ? '保存成功' : '提交成功')
 | 
			
		||||
          uni.$emit('reload')
 | 
			
		||||
          uni.navigateBack({
 | 
			
		||||
            delta: 1
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .add {
 | 
			
		||||
    padding-bottom: 120px;
 | 
			
		||||
.add {
 | 
			
		||||
  padding-bottom: 120px;
 | 
			
		||||
 | 
			
		||||
    & > div {
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
    }
 | 
			
		||||
  & > div {
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    ::v-deep .u-radio {
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        .u-radio__label {
 | 
			
		||||
          margin-right: 0;
 | 
			
		||||
        }
 | 
			
		||||
  ::v-deep .u-radio {
 | 
			
		||||
    &:last-child {
 | 
			
		||||
      .u-radio__label {
 | 
			
		||||
        margin-right: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-group {
 | 
			
		||||
      .form-item {
 | 
			
		||||
        padding-left: 32px;
 | 
			
		||||
  .form-group {
 | 
			
		||||
    .form-item {
 | 
			
		||||
      padding-left: 32px;
 | 
			
		||||
 | 
			
		||||
        .form-item__wrapper {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          line-height: 112px;
 | 
			
		||||
          padding-right: 32px;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            font-size: 30px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        input {
 | 
			
		||||
          height: 100%;
 | 
			
		||||
          text-align: right;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          i {
 | 
			
		||||
            margin-right: 4px;
 | 
			
		||||
            font-style: normal;
 | 
			
		||||
            color: #FF4466;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:last-child {
 | 
			
		||||
          .form-item__wrapper {
 | 
			
		||||
            border: none;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .form-item__imgs {
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
 | 
			
		||||
      .form-item__title {
 | 
			
		||||
      .form-item__wrapper {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 34px;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        border-bottom: 1px solid #E4E5E6;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
      .right {
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        line-height: 112px;
 | 
			
		||||
        padding-right: 32px;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      input {
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        text-align: right;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-weight: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        i {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          margin-right: 4px;
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          color: #FF4466;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        .form-item__wrapper {
 | 
			
		||||
          border: none;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-type {
 | 
			
		||||
  .form-item__imgs {
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
 | 
			
		||||
    .form-item__title {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
      margin-bottom: 34px;
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
      i {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .btn {
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      z-index: 11;
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      line-height: 112px;
 | 
			
		||||
      margin: 0;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      background: #3192F4;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .form-type {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
 | 
			
		||||
    h2 {
 | 
			
		||||
      font-weight: normal;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    z-index: 11;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    line-height: 112px;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
    font-size: 32px;
 | 
			
		||||
    background: #3192F4;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,8 @@
 | 
			
		||||
        <div class="label" v-if="addressArea">{{ addressArea }}</div>
 | 
			
		||||
        <i v-else>请选择</i>
 | 
			
		||||
      </AiArea> -->
 | 
			
		||||
      <AiAreaPicker ref="area" class="aiArea" :name.sync="addressArea" :areaId="areaId" mode="custom" @select="onChange">
 | 
			
		||||
      <AiAreaPicker ref="area" class="aiArea" :name.sync="addressArea" :areaId="areaId" mode="custom"
 | 
			
		||||
                    @select="onChange">
 | 
			
		||||
        <span class="label" v-if="addressArea">{{ addressArea }}</span>
 | 
			
		||||
        <i v-else>请选择</i>
 | 
			
		||||
      </AiAreaPicker>
 | 
			
		||||
@@ -19,16 +20,16 @@
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="search">
 | 
			
		||||
        <u-search
 | 
			
		||||
          placeholder="请输入"
 | 
			
		||||
          :show-action="false"
 | 
			
		||||
          search-icon-color="#ccc"
 | 
			
		||||
          v-model="name"
 | 
			
		||||
          @search="reload">
 | 
			
		||||
            placeholder="请输入"
 | 
			
		||||
            :show-action="false"
 | 
			
		||||
            search-icon-color="#ccc"
 | 
			
		||||
            v-model="name"
 | 
			
		||||
            @search="reload">
 | 
			
		||||
        </u-search>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="list-item__wrapper">
 | 
			
		||||
        <div class="list-item" v-for="(item, index) in list" :key="index" @click="toDetail(item.id)">
 | 
			
		||||
          <image src="/static/images/avatar.png" />
 | 
			
		||||
          <image src="/static/images/avatar.png"/>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <h2>{{ item.name || item.phone }}</h2>
 | 
			
		||||
            <p>{{ item.addressArea }}</p>
 | 
			
		||||
@@ -44,252 +45,252 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiArea from '@/components/AiArea'
 | 
			
		||||
  import AiFixedBtn from '@/components/AiFixedBtn'
 | 
			
		||||
  import AiEmpty from '@/components/AiEmpty/AiEmpty'
 | 
			
		||||
  import AiAreaPicker from '@/components/AiAreaPicker'
 | 
			
		||||
import AiArea from '@/components/AiArea'
 | 
			
		||||
import AiFixedBtn from '@/components/AiFixedBtn'
 | 
			
		||||
import AiEmpty from '@/components/AiEmpty/AiEmpty'
 | 
			
		||||
import AiAreaPicker from '@/components/AiAreaPicker'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: 'list',
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'list',
 | 
			
		||||
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        currIndex: 0,
 | 
			
		||||
        name: '',
 | 
			
		||||
        list: [],
 | 
			
		||||
        areaId: '',
 | 
			
		||||
        addressAreaId: '',
 | 
			
		||||
        addressArea: '',
 | 
			
		||||
        isMore: false,
 | 
			
		||||
        current: 1
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      currIndex: 0,
 | 
			
		||||
      name: '',
 | 
			
		||||
      list: [],
 | 
			
		||||
      areaId: '',
 | 
			
		||||
      addressAreaId: '',
 | 
			
		||||
      addressArea: '',
 | 
			
		||||
      isMore: false,
 | 
			
		||||
      current: 1
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  components: {
 | 
			
		||||
    AiArea,
 | 
			
		||||
    AiEmpty,
 | 
			
		||||
    AiAreaPicker,
 | 
			
		||||
    AiFixedBtn
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  created() {
 | 
			
		||||
    uni.showLoading()
 | 
			
		||||
    this.areaId = this.$store.state.user.areaId
 | 
			
		||||
    this.addressAreaId = this.$store.state.user.areaId
 | 
			
		||||
    this.addressArea = this.$store.state.user.areaName
 | 
			
		||||
 | 
			
		||||
    this.$nextTick(() => {
 | 
			
		||||
      this.getList()
 | 
			
		||||
    })
 | 
			
		||||
    uni.$on('reload', () => {
 | 
			
		||||
      if (this.currIndex === 0) {
 | 
			
		||||
      } else {
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    toDetail(id) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: '/pages/Monitor/Detail?id=' + id
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiArea,
 | 
			
		||||
      AiEmpty,
 | 
			
		||||
      AiAreaPicker,
 | 
			
		||||
      AiFixedBtn
 | 
			
		||||
    onChange(e) {
 | 
			
		||||
      this.addressAreaId = e.id
 | 
			
		||||
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.reload()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    created () {
 | 
			
		||||
    toAdd() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: '/pages/Monitor/Add'
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    reload() {
 | 
			
		||||
      this.isMore = false
 | 
			
		||||
      this.current = 1
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.areaId = this.$store.state.user.areaId
 | 
			
		||||
      this.addressAreaId = this.$store.state.user.areaId
 | 
			
		||||
      this.addressArea = this.$store.state.user.areaName
 | 
			
		||||
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.getList()
 | 
			
		||||
      })
 | 
			
		||||
      uni.$on('reload', () => {
 | 
			
		||||
        if (this.currIndex === 0) {
 | 
			
		||||
        } else {
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      toDetail (id) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: '/pages/Monitor/Detail?id=' + id
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
    changeTab(index) {
 | 
			
		||||
      this.currIndex = index
 | 
			
		||||
      this.reload()
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
      onChange (e) {
 | 
			
		||||
        this.addressAreaId = e.id
 | 
			
		||||
    getList() {
 | 
			
		||||
      if (this.isMore) return
 | 
			
		||||
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.reload()
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      toAdd () {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: '/pages/Monitor/Add'
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      reload() {
 | 
			
		||||
        this.isMore = false
 | 
			
		||||
        this.current = 1
 | 
			
		||||
        uni.showLoading()
 | 
			
		||||
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.getList()
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      changeTab (index) {
 | 
			
		||||
        this.currIndex = index
 | 
			
		||||
        this.reload()
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getList() {
 | 
			
		||||
        if (this.isMore) return
 | 
			
		||||
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/list`, null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            current: this.current,
 | 
			
		||||
            size: 15,
 | 
			
		||||
            status: this.currIndex === 1 ? '1' : '',
 | 
			
		||||
            addressAreaId: this.addressAreaId,
 | 
			
		||||
            name: this.name
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            if (this.current > 1) {
 | 
			
		||||
              this.list = [...this.list, ...res.data.records]
 | 
			
		||||
            } else {
 | 
			
		||||
              this.list = res.data.records
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            uni.hideLoading()
 | 
			
		||||
 | 
			
		||||
            if (res.data.records.length < 10) {
 | 
			
		||||
              this.isMore = true
 | 
			
		||||
 | 
			
		||||
              return false
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            this.current = this.current + 1
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/list`, null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          current: this.current,
 | 
			
		||||
          size: 15,
 | 
			
		||||
          status: this.currIndex === 1 ? '1' : '',
 | 
			
		||||
          addressAreaId: this.addressAreaId,
 | 
			
		||||
          name: this.name
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          if (this.current > 1) {
 | 
			
		||||
            this.list = [...this.list, ...res.data.records]
 | 
			
		||||
          } else {
 | 
			
		||||
            uni.hideLoading()
 | 
			
		||||
            this.list = res.data.records
 | 
			
		||||
          }
 | 
			
		||||
        }).catch(() => {
 | 
			
		||||
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
          if (res.data.records.length < 10) {
 | 
			
		||||
            this.isMore = true
 | 
			
		||||
 | 
			
		||||
            return false
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          this.current = this.current + 1
 | 
			
		||||
        } else {
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        }
 | 
			
		||||
      }).catch(() => {
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .list {
 | 
			
		||||
    padding: 112px 0 120px;
 | 
			
		||||
.list {
 | 
			
		||||
  padding: 112px 0 120px;
 | 
			
		||||
 | 
			
		||||
    .addBtn {
 | 
			
		||||
      width: 96px;
 | 
			
		||||
      height: 96px;
 | 
			
		||||
      flex-shrink: 0;
 | 
			
		||||
      background: $uni-color-primary;
 | 
			
		||||
      box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
 | 
			
		||||
      font-size: 48px;
 | 
			
		||||
      color: #fff;
 | 
			
		||||
      border-radius: 50%;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
  .addBtn {
 | 
			
		||||
    width: 96px;
 | 
			
		||||
    height: 96px;
 | 
			
		||||
    flex-shrink: 0;
 | 
			
		||||
    background: $uni-color-primary;
 | 
			
		||||
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
 | 
			
		||||
    font-size: 48px;
 | 
			
		||||
    color: #fff;
 | 
			
		||||
    border-radius: 50%;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    display: flex;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .list-wrapper {
 | 
			
		||||
    margin-top: 16px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
 | 
			
		||||
    .list-item {
 | 
			
		||||
      display: flex;
 | 
			
		||||
    }
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      padding: 20px 32px;
 | 
			
		||||
 | 
			
		||||
    .list-wrapper {
 | 
			
		||||
      margin-top: 16px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
 | 
			
		||||
      .list-item {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        padding: 20px 32px;
 | 
			
		||||
 | 
			
		||||
        image {
 | 
			
		||||
          width: 80px;
 | 
			
		||||
          height: 80px;
 | 
			
		||||
          margin-right: 32px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          flex: 1;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        p {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 26px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          margin-bottom: 10px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      image {
 | 
			
		||||
        width: 80px;
 | 
			
		||||
        height: 80px;
 | 
			
		||||
        margin-right: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .search {
 | 
			
		||||
        margin: 20px 0;
 | 
			
		||||
        padding: 0 32px;
 | 
			
		||||
      .right {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .tab {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        height: 96px;
 | 
			
		||||
        padding: 0 60px;
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-bottom: 1px solid #D4D4D4;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
      p {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 26px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        * {
 | 
			
		||||
          box-sizing: border-box;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          position: relative;
 | 
			
		||||
          flex: 1;
 | 
			
		||||
          height: 96rpx;
 | 
			
		||||
          line-height: 96rpx;
 | 
			
		||||
          color: #000000;
 | 
			
		||||
          text-align: center;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
 | 
			
		||||
          &::after {
 | 
			
		||||
            position: absolute;
 | 
			
		||||
            bottom: 0;
 | 
			
		||||
            left: 50%;
 | 
			
		||||
            width: 192px;
 | 
			
		||||
            height: 6px;
 | 
			
		||||
            background: transparent;
 | 
			
		||||
            transform: translateX(-50%);
 | 
			
		||||
            content: ' ';
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &.active {
 | 
			
		||||
            color: #1365DD;
 | 
			
		||||
 | 
			
		||||
            &::after {
 | 
			
		||||
              background: #1365DD;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      h2 {
 | 
			
		||||
        margin-bottom: 10px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .area {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      top: 0;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      z-index: 11;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
    .search {
 | 
			
		||||
      margin: 20px 0;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      .separat {
 | 
			
		||||
        padding: 0 8px;
 | 
			
		||||
      }
 | 
			
		||||
    .tab {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 96px;
 | 
			
		||||
      padding: 0 60px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-bottom: 1px solid #D4D4D4;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
      i {
 | 
			
		||||
        color: #3F8DF5;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
      * {
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        height: 96 rpx;
 | 
			
		||||
        line-height: 96 rpx;
 | 
			
		||||
        color: #000000;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
 | 
			
		||||
        &::after {
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
          left: 50%;
 | 
			
		||||
          width: 192px;
 | 
			
		||||
          height: 6px;
 | 
			
		||||
          background: transparent;
 | 
			
		||||
          transform: translateX(-50%);
 | 
			
		||||
          content: ' ';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &.active {
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
 | 
			
		||||
          &::after {
 | 
			
		||||
            background: #1365DD;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .area {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    z-index: 11;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    color: #333333;
 | 
			
		||||
    font-size: 30px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
 | 
			
		||||
    .separat {
 | 
			
		||||
      padding: 0 8px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    i {
 | 
			
		||||
      color: #3F8DF5;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      font-style: normal;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,8 @@
 | 
			
		||||
    <div class="area">
 | 
			
		||||
      <i>可选范围</i>
 | 
			
		||||
      <span class="separat">/</span>
 | 
			
		||||
      <AiAreaPicker ref="area" class="aiArea" :areaId="areaId" :name.sync="addressArea" mode="custom" @select="onChange">
 | 
			
		||||
      <AiAreaPicker ref="area" class="aiArea" :areaId="areaId" :name.sync="addressArea" mode="custom"
 | 
			
		||||
                    @select="onChange">
 | 
			
		||||
        <span class="label" v-if="addressArea">{{ addressArea }}</span>
 | 
			
		||||
        <i v-else>请选择</i>
 | 
			
		||||
      </AiAreaPicker>
 | 
			
		||||
@@ -54,386 +55,385 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import echarts from 'echarts'
 | 
			
		||||
  import AiArea from '@/components/AiArea'
 | 
			
		||||
  import AiAreaPicker from '@/components/AiAreaPicker'
 | 
			
		||||
import echarts from 'echarts'
 | 
			
		||||
import AiArea from '@/components/AiArea'
 | 
			
		||||
import AiAreaPicker from '@/components/AiAreaPicker'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: 'statistics',
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'statistics',
 | 
			
		||||
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        addressAreaId: '',
 | 
			
		||||
        addressArea: '',
 | 
			
		||||
        chart1: null,
 | 
			
		||||
        chart2: null,
 | 
			
		||||
        chart3: null,
 | 
			
		||||
        chart4: null,
 | 
			
		||||
        areaId: '',
 | 
			
		||||
        info: {},
 | 
			
		||||
        pageShow: false
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      addressAreaId: '',
 | 
			
		||||
      addressArea: '',
 | 
			
		||||
      chart1: null,
 | 
			
		||||
      chart2: null,
 | 
			
		||||
      chart3: null,
 | 
			
		||||
      chart4: null,
 | 
			
		||||
      areaId: '',
 | 
			
		||||
      info: {},
 | 
			
		||||
      pageShow: false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiArea,
 | 
			
		||||
      AiAreaPicker
 | 
			
		||||
    },
 | 
			
		||||
  components: {
 | 
			
		||||
    AiArea,
 | 
			
		||||
    AiAreaPicker
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    created () {
 | 
			
		||||
      this.areaId = this.$store.state.user.areaId
 | 
			
		||||
      this.addressAreaId = this.$store.state.user.areaId
 | 
			
		||||
      this.addressArea = this.$store.state.user.areaName
 | 
			
		||||
    },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.areaId = this.$store.state.user.areaId
 | 
			
		||||
    this.addressAreaId = this.$store.state.user.areaId
 | 
			
		||||
    this.addressArea = this.$store.state.user.areaName
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    mounted () {
 | 
			
		||||
      window.scrollTo(0,0)
 | 
			
		||||
      this.chart1 = echarts.init(document.getElementById('chart1'))
 | 
			
		||||
      this.chart4 = echarts.init(document.getElementById('chart4'))
 | 
			
		||||
      this.chart3 = echarts.init(document.getElementById('chart3'))
 | 
			
		||||
  mounted() {
 | 
			
		||||
    window.scrollTo(0, 0)
 | 
			
		||||
    this.chart1 = echarts.init(document.getElementById('chart1'))
 | 
			
		||||
    this.chart4 = echarts.init(document.getElementById('chart4'))
 | 
			
		||||
    this.chart3 = echarts.init(document.getElementById('chart3'))
 | 
			
		||||
 | 
			
		||||
      this.$dict.load(['fpRiskType', 'fpRiskEliminationMethod']).then(() => {
 | 
			
		||||
    this.$dict.load(['fpRiskType', 'fpRiskEliminationMethod']).then(() => {
 | 
			
		||||
      this.getInfo()
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    reload() {
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.getInfo()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      reload () {
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.getInfo()
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
    onChange(e) {
 | 
			
		||||
      this.addressAreaId = e.id
 | 
			
		||||
 | 
			
		||||
      onChange (e) {
 | 
			
		||||
        this.addressAreaId = e.id
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.reload()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.reload()
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      initChart1 (data) {
 | 
			
		||||
        const x = data.map(v => v.m)
 | 
			
		||||
        const v = data.map(v => v.c)
 | 
			
		||||
        const option =  {
 | 
			
		||||
          color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
          xAxis: {
 | 
			
		||||
            type: 'category',
 | 
			
		||||
            data: x,
 | 
			
		||||
            splitLine: {
 | 
			
		||||
              show: true,
 | 
			
		||||
              lineStyle:{
 | 
			
		||||
                width: 1,
 | 
			
		||||
                type: 'solid',
 | 
			
		||||
                color: '#f5f5f5'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            axisLabel: {
 | 
			
		||||
              align: 'center',
 | 
			
		||||
              padding: [2, 0, 0, 0],
 | 
			
		||||
              interval: 0,
 | 
			
		||||
              fontSize: 14,
 | 
			
		||||
              color: '#999'
 | 
			
		||||
            },
 | 
			
		||||
            axisTick: {
 | 
			
		||||
              length: 1,
 | 
			
		||||
              show: true
 | 
			
		||||
            },
 | 
			
		||||
            boundaryGap: true,
 | 
			
		||||
            axisLine: {
 | 
			
		||||
              show: true,
 | 
			
		||||
              lineStyle: {
 | 
			
		||||
                color: '#aaa'
 | 
			
		||||
              }
 | 
			
		||||
    initChart1(data) {
 | 
			
		||||
      const x = data.map(v => v.m)
 | 
			
		||||
      const v = data.map(v => v.c)
 | 
			
		||||
      const option = {
 | 
			
		||||
        color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
        xAxis: {
 | 
			
		||||
          type: 'category',
 | 
			
		||||
          data: x,
 | 
			
		||||
          splitLine: {
 | 
			
		||||
            show: true,
 | 
			
		||||
            lineStyle: {
 | 
			
		||||
              width: 1,
 | 
			
		||||
              type: 'solid',
 | 
			
		||||
              color: '#f5f5f5'
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          grid: {
 | 
			
		||||
            top: '4%',
 | 
			
		||||
            left: '4%',
 | 
			
		||||
            right: '6%',
 | 
			
		||||
            bottom: '0%',
 | 
			
		||||
            containLabel: true
 | 
			
		||||
          axisLabel: {
 | 
			
		||||
            align: 'center',
 | 
			
		||||
            padding: [2, 0, 0, 0],
 | 
			
		||||
            interval: 0,
 | 
			
		||||
            fontSize: 14,
 | 
			
		||||
            color: '#999'
 | 
			
		||||
          },
 | 
			
		||||
          yAxis: {
 | 
			
		||||
            type: 'value',
 | 
			
		||||
            boundaryGap: true,
 | 
			
		||||
            axisTick: {
 | 
			
		||||
              length: 1,
 | 
			
		||||
              show: true
 | 
			
		||||
            },
 | 
			
		||||
            splitLine: {
 | 
			
		||||
              show: true,
 | 
			
		||||
              lineStyle:{
 | 
			
		||||
                width: 1,
 | 
			
		||||
                type: 'solid',
 | 
			
		||||
                color: '#f5f5f5'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            nameTextStyle: {
 | 
			
		||||
              color: '#f5f5f5',
 | 
			
		||||
              align: 'left'
 | 
			
		||||
            },
 | 
			
		||||
            axisLine: {
 | 
			
		||||
              show: true,
 | 
			
		||||
              lineStyle:{
 | 
			
		||||
                width: 1,
 | 
			
		||||
                type: 'solid',
 | 
			
		||||
                color: '#aaa'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            axisLabel: {
 | 
			
		||||
              color: '#999'
 | 
			
		||||
          axisTick: {
 | 
			
		||||
            length: 1,
 | 
			
		||||
            show: true
 | 
			
		||||
          },
 | 
			
		||||
          boundaryGap: true,
 | 
			
		||||
          axisLine: {
 | 
			
		||||
            show: true,
 | 
			
		||||
            lineStyle: {
 | 
			
		||||
              color: '#aaa'
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          series: [
 | 
			
		||||
            {
 | 
			
		||||
              data: v,
 | 
			
		||||
              type: 'line'
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.chart1.setOption(option)
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      initChart3 (data) {
 | 
			
		||||
        const y = data.map(v => this.$dict.getLabel('fpRiskType', v.risk_type) || '其他')
 | 
			
		||||
        const v = data.map(v => v.c)
 | 
			
		||||
        const option = {
 | 
			
		||||
          tooltip: {
 | 
			
		||||
          },
 | 
			
		||||
          color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
          grid: {
 | 
			
		||||
            top: '4%',
 | 
			
		||||
            left: '4%',
 | 
			
		||||
            right: '6%',
 | 
			
		||||
            bottom: '0%',
 | 
			
		||||
            containLabel: true
 | 
			
		||||
          },
 | 
			
		||||
          xAxis: {
 | 
			
		||||
            type: 'value',
 | 
			
		||||
            splitLine: {
 | 
			
		||||
              show: true,
 | 
			
		||||
              lineStyle:{
 | 
			
		||||
                width: 1,
 | 
			
		||||
                type: 'solid',
 | 
			
		||||
                color: '#f5f5f5'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            axisTick: {
 | 
			
		||||
              length: 1,
 | 
			
		||||
              show: true
 | 
			
		||||
            },
 | 
			
		||||
            axisLabel: {
 | 
			
		||||
              align: 'center',
 | 
			
		||||
              padding: [2, 0, 0, 0],
 | 
			
		||||
              interval: 0,
 | 
			
		||||
              fontSize: 14,
 | 
			
		||||
              color: '#999'
 | 
			
		||||
            },
 | 
			
		||||
            boundaryGap: true,
 | 
			
		||||
            axisLine: {
 | 
			
		||||
              show: true,
 | 
			
		||||
              lineStyle:{
 | 
			
		||||
                width: 1,
 | 
			
		||||
                type: 'solid',
 | 
			
		||||
                color: '#aaa'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          yAxis: {
 | 
			
		||||
            type: 'category',
 | 
			
		||||
            data: y,
 | 
			
		||||
            boundaryGap: true,
 | 
			
		||||
            axisTick: {
 | 
			
		||||
              length: 0,
 | 
			
		||||
              show: false
 | 
			
		||||
            },
 | 
			
		||||
            splitLine: {
 | 
			
		||||
              show: true,
 | 
			
		||||
              lineStyle:{
 | 
			
		||||
                color: ['#e9e9e9'],
 | 
			
		||||
                width: 1,
 | 
			
		||||
                type: 'solid'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            nameTextStyle: {
 | 
			
		||||
              color: '#999',
 | 
			
		||||
              align: 'left'
 | 
			
		||||
            },
 | 
			
		||||
            axisLine: {
 | 
			
		||||
              show: true,
 | 
			
		||||
              lineStyle:{
 | 
			
		||||
                width: 1,
 | 
			
		||||
                type: 'solid',
 | 
			
		||||
                color: '#aaa'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            axisLabel: {
 | 
			
		||||
              color: '#999'
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          series: [
 | 
			
		||||
            {
 | 
			
		||||
              name: '2011',
 | 
			
		||||
              type: 'bar',
 | 
			
		||||
              data: v
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.chart3.setOption(option)
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      initChart4 (data) {
 | 
			
		||||
        const values = data.map(v => {
 | 
			
		||||
          return {
 | 
			
		||||
            value: v.c,
 | 
			
		||||
            name: this.$dict.getLabel('fpRiskEliminationMethod', v.risk_elimination_method) || '其他'
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        const option = {
 | 
			
		||||
          tooltip: {
 | 
			
		||||
            trigger: 'item'
 | 
			
		||||
        },
 | 
			
		||||
        grid: {
 | 
			
		||||
          top: '4%',
 | 
			
		||||
          left: '4%',
 | 
			
		||||
          right: '6%',
 | 
			
		||||
          bottom: '0%',
 | 
			
		||||
          containLabel: true
 | 
			
		||||
        },
 | 
			
		||||
        yAxis: {
 | 
			
		||||
          type: 'value',
 | 
			
		||||
          boundaryGap: true,
 | 
			
		||||
          axisTick: {
 | 
			
		||||
            length: 1,
 | 
			
		||||
            show: true
 | 
			
		||||
          },
 | 
			
		||||
          grid: {
 | 
			
		||||
            left: '0%',
 | 
			
		||||
            right: '0%',
 | 
			
		||||
            bottom: '0%',
 | 
			
		||||
            top: '40px',
 | 
			
		||||
            containLabel: true
 | 
			
		||||
          },
 | 
			
		||||
          color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
          series: [
 | 
			
		||||
            {
 | 
			
		||||
              name: '本月纳入监测人群属性分析',
 | 
			
		||||
              type: 'pie',
 | 
			
		||||
              radius: ['40%', '70%'],
 | 
			
		||||
              emphasis: {
 | 
			
		||||
                label: {
 | 
			
		||||
                  show: true,
 | 
			
		||||
                  fontSize: '40',
 | 
			
		||||
                  fontWeight: 'bold'
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              data: values
 | 
			
		||||
          splitLine: {
 | 
			
		||||
            show: true,
 | 
			
		||||
            lineStyle: {
 | 
			
		||||
              width: 1,
 | 
			
		||||
              type: 'solid',
 | 
			
		||||
              color: '#f5f5f5'
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.chart4.setOption(option)
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getInfo () {
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/statistics-prtp?areaId=${this.addressAreaId}`).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.info = res.data
 | 
			
		||||
            this.initChart1(res.data['近半年趋势'])
 | 
			
		||||
            this.initChart3(res.data['风险类型排行'])
 | 
			
		||||
            this.initChart4(res.data['风险消除方式'])
 | 
			
		||||
          },
 | 
			
		||||
          nameTextStyle: {
 | 
			
		||||
            color: '#f5f5f5',
 | 
			
		||||
            align: 'left'
 | 
			
		||||
          },
 | 
			
		||||
          axisLine: {
 | 
			
		||||
            show: true,
 | 
			
		||||
            lineStyle: {
 | 
			
		||||
              width: 1,
 | 
			
		||||
              type: 'solid',
 | 
			
		||||
              color: '#aaa'
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          axisLabel: {
 | 
			
		||||
            color: '#999'
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        },
 | 
			
		||||
        series: [
 | 
			
		||||
          {
 | 
			
		||||
            data: v,
 | 
			
		||||
            type: 'line'
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.chart1.setOption(option)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    initChart3(data) {
 | 
			
		||||
      const y = data.map(v => this.$dict.getLabel('fpRiskType', v.risk_type) || '其他')
 | 
			
		||||
      const v = data.map(v => v.c)
 | 
			
		||||
      const option = {
 | 
			
		||||
        tooltip: {},
 | 
			
		||||
        color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
        grid: {
 | 
			
		||||
          top: '4%',
 | 
			
		||||
          left: '4%',
 | 
			
		||||
          right: '6%',
 | 
			
		||||
          bottom: '0%',
 | 
			
		||||
          containLabel: true
 | 
			
		||||
        },
 | 
			
		||||
        xAxis: {
 | 
			
		||||
          type: 'value',
 | 
			
		||||
          splitLine: {
 | 
			
		||||
            show: true,
 | 
			
		||||
            lineStyle: {
 | 
			
		||||
              width: 1,
 | 
			
		||||
              type: 'solid',
 | 
			
		||||
              color: '#f5f5f5'
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          axisTick: {
 | 
			
		||||
            length: 1,
 | 
			
		||||
            show: true
 | 
			
		||||
          },
 | 
			
		||||
          axisLabel: {
 | 
			
		||||
            align: 'center',
 | 
			
		||||
            padding: [2, 0, 0, 0],
 | 
			
		||||
            interval: 0,
 | 
			
		||||
            fontSize: 14,
 | 
			
		||||
            color: '#999'
 | 
			
		||||
          },
 | 
			
		||||
          boundaryGap: true,
 | 
			
		||||
          axisLine: {
 | 
			
		||||
            show: true,
 | 
			
		||||
            lineStyle: {
 | 
			
		||||
              width: 1,
 | 
			
		||||
              type: 'solid',
 | 
			
		||||
              color: '#aaa'
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        yAxis: {
 | 
			
		||||
          type: 'category',
 | 
			
		||||
          data: y,
 | 
			
		||||
          boundaryGap: true,
 | 
			
		||||
          axisTick: {
 | 
			
		||||
            length: 0,
 | 
			
		||||
            show: false
 | 
			
		||||
          },
 | 
			
		||||
          splitLine: {
 | 
			
		||||
            show: true,
 | 
			
		||||
            lineStyle: {
 | 
			
		||||
              color: ['#e9e9e9'],
 | 
			
		||||
              width: 1,
 | 
			
		||||
              type: 'solid'
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          nameTextStyle: {
 | 
			
		||||
            color: '#999',
 | 
			
		||||
            align: 'left'
 | 
			
		||||
          },
 | 
			
		||||
          axisLine: {
 | 
			
		||||
            show: true,
 | 
			
		||||
            lineStyle: {
 | 
			
		||||
              width: 1,
 | 
			
		||||
              type: 'solid',
 | 
			
		||||
              color: '#aaa'
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          axisLabel: {
 | 
			
		||||
            color: '#999'
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        series: [
 | 
			
		||||
          {
 | 
			
		||||
            name: '2011',
 | 
			
		||||
            type: 'bar',
 | 
			
		||||
            data: v
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.chart3.setOption(option)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    initChart4(data) {
 | 
			
		||||
      const values = data.map(v => {
 | 
			
		||||
        return {
 | 
			
		||||
          value: v.c,
 | 
			
		||||
          name: this.$dict.getLabel('fpRiskEliminationMethod', v.risk_elimination_method) || '其他'
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
      const option = {
 | 
			
		||||
        tooltip: {
 | 
			
		||||
          trigger: 'item'
 | 
			
		||||
        },
 | 
			
		||||
        grid: {
 | 
			
		||||
          left: '0%',
 | 
			
		||||
          right: '0%',
 | 
			
		||||
          bottom: '0%',
 | 
			
		||||
          top: '40px',
 | 
			
		||||
          containLabel: true
 | 
			
		||||
        },
 | 
			
		||||
        color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
        series: [
 | 
			
		||||
          {
 | 
			
		||||
            name: '本月纳入监测人群属性分析',
 | 
			
		||||
            type: 'pie',
 | 
			
		||||
            radius: ['40%', '70%'],
 | 
			
		||||
            emphasis: {
 | 
			
		||||
              label: {
 | 
			
		||||
                show: true,
 | 
			
		||||
                fontSize: '40',
 | 
			
		||||
                fontWeight: 'bold'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            data: values
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.chart4.setOption(option)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getInfo() {
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/statistics-prtp?areaId=${this.addressAreaId}`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.info = res.data
 | 
			
		||||
          this.initChart1(res.data['近半年趋势'])
 | 
			
		||||
          this.initChart3(res.data['风险类型排行'])
 | 
			
		||||
          this.initChart4(res.data['风险消除方式'])
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .statistics {
 | 
			
		||||
    padding: 112px 0 120px;
 | 
			
		||||
.statistics {
 | 
			
		||||
  padding: 112px 0 120px;
 | 
			
		||||
 | 
			
		||||
    .area {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      top: 0;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      z-index: 11;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
  .area {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    z-index: 11;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    color: #333333;
 | 
			
		||||
    font-size: 30px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
 | 
			
		||||
      .separat {
 | 
			
		||||
        padding: 0 8px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      i {
 | 
			
		||||
        color: #3F8DF5;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
      }
 | 
			
		||||
    .separat {
 | 
			
		||||
      padding: 0 8px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .charts-wrapper {
 | 
			
		||||
      position: relative;
 | 
			
		||||
      z-index: 1;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
    i {
 | 
			
		||||
      color: #3F8DF5;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      font-style: normal;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      .total {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        height: 200px;
 | 
			
		||||
        margin-top: 32px;
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
    span {
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
        .total-item {
 | 
			
		||||
          flex: 1;
 | 
			
		||||
          text-align: center;
 | 
			
		||||
  .charts-wrapper {
 | 
			
		||||
    position: relative;
 | 
			
		||||
    z-index: 1;
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
 | 
			
		||||
          h2 {
 | 
			
		||||
            font-size: 64px;
 | 
			
		||||
            color: #3192F4;
 | 
			
		||||
          }
 | 
			
		||||
    .total {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      height: 200px;
 | 
			
		||||
      margin-top: 32px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
 | 
			
		||||
          p {
 | 
			
		||||
            margin-top: 10px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
            font-size: 28px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .middle-total {
 | 
			
		||||
        height: 160px;
 | 
			
		||||
      .total-item {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          font-size: 48px!important;
 | 
			
		||||
          font-size: 64px;
 | 
			
		||||
          color: #3192F4;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        p {
 | 
			
		||||
          margin-top: 8px!important;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .charts {
 | 
			
		||||
        margin-top: 32px;
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
 | 
			
		||||
        & > h2 {
 | 
			
		||||
          height: 96px;
 | 
			
		||||
          line-height: 96px;
 | 
			
		||||
          padding: 0 32px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > div {
 | 
			
		||||
          width: 686px;
 | 
			
		||||
          margin: 0 auto;
 | 
			
		||||
          padding: 32px 0;
 | 
			
		||||
          margin-top: 10px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .middle-total {
 | 
			
		||||
      height: 160px;
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        font-size: 48px !important;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      p {
 | 
			
		||||
        margin-top: 8px !important;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .charts {
 | 
			
		||||
      margin-top: 32px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
 | 
			
		||||
      & > h2 {
 | 
			
		||||
        height: 96px;
 | 
			
		||||
        line-height: 96px;
 | 
			
		||||
        padding: 0 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > div {
 | 
			
		||||
        width: 686px;
 | 
			
		||||
        margin: 0 auto;
 | 
			
		||||
        padding: 32px 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,15 +2,16 @@
 | 
			
		||||
  <div class="news">
 | 
			
		||||
    <div class="tab">
 | 
			
		||||
      <span
 | 
			
		||||
        @click="changeTab(index, item.dictValue)"
 | 
			
		||||
        v-for="(item, index) in tabList"
 | 
			
		||||
        :key="index"
 | 
			
		||||
        :class="[currIndex === index ? 'active' : '']">
 | 
			
		||||
          @click="changeTab(index, item.dictValue)"
 | 
			
		||||
          v-for="(item, index) in tabList"
 | 
			
		||||
          :key="index"
 | 
			
		||||
          :class="[currIndex === index ? 'active' : '']">
 | 
			
		||||
        {{ item.dictName }}
 | 
			
		||||
      </span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="list">
 | 
			
		||||
      <div class="item" v-for="(item, index) in list" :key="index" @click="linkTo('/pages/PovertyAlleviation/NewsDetail?id=' + item.id)">
 | 
			
		||||
      <div class="item" v-for="(item, index) in list" :key="index"
 | 
			
		||||
           @click="linkTo('/pages/PovertyAlleviation/NewsDetail?id=' + item.id)">
 | 
			
		||||
        <div class="left">
 | 
			
		||||
          <h2>{{ item.title }}</h2>
 | 
			
		||||
          <div class="item-bottom">
 | 
			
		||||
@@ -18,7 +19,7 @@
 | 
			
		||||
            <span>{{ item.createTime }}</span>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <image v-if="item.coverFile" :src="item.coverFile ? item.coverFile.url : ''" />
 | 
			
		||||
        <image v-if="item.coverFile" :src="item.coverFile ? item.coverFile.url : ''"/>
 | 
			
		||||
      </div>
 | 
			
		||||
      <ai-empty v-if="!list.length && isMore" style="padding-bottom: 20px;"></ai-empty>
 | 
			
		||||
    </div>
 | 
			
		||||
@@ -26,203 +27,204 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiEmpty from '@/components/AiEmpty/AiEmpty'
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        currIndex: 0,
 | 
			
		||||
        list: [],
 | 
			
		||||
        current: 1,
 | 
			
		||||
        size: 15,
 | 
			
		||||
        type: '',
 | 
			
		||||
        tabList: [],
 | 
			
		||||
        isMore: false
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
import AiEmpty from '@/components/AiEmpty/AiEmpty'
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiEmpty
 | 
			
		||||
    },
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      currIndex: 0,
 | 
			
		||||
      list: [],
 | 
			
		||||
      current: 1,
 | 
			
		||||
      size: 15,
 | 
			
		||||
      type: '',
 | 
			
		||||
      tabList: [],
 | 
			
		||||
      isMore: false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  components: {
 | 
			
		||||
    AiEmpty
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad() {
 | 
			
		||||
    uni.showLoading()
 | 
			
		||||
    this.$dict.load(['newsCenterPolicyType']).then(() => {
 | 
			
		||||
      this.tabList = this.$dict.getDict('newsCenterPolicyType')
 | 
			
		||||
      this.type = this.$dict.getDict('newsCenterPolicyType')[0].dictValue
 | 
			
		||||
      this.getList()
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    changeTab(index, type) {
 | 
			
		||||
      this.type = type
 | 
			
		||||
      this.currIndex = index
 | 
			
		||||
 | 
			
		||||
      this.current = 1
 | 
			
		||||
      this.isMore = false
 | 
			
		||||
 | 
			
		||||
    onLoad() {
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.$dict.load(['newsCenterPolicyType']).then(() => {
 | 
			
		||||
        this.tabList = this.$dict.getDict('newsCenterPolicyType')
 | 
			
		||||
        this.type = this.$dict.getDict('newsCenterPolicyType')[0].dictValue
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.getList()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      changeTab (index, type) {
 | 
			
		||||
        this.type = type
 | 
			
		||||
        this.currIndex = index
 | 
			
		||||
 | 
			
		||||
        this.current = 1
 | 
			
		||||
        this.isMore = false
 | 
			
		||||
 | 
			
		||||
        uni.showLoading()
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.getList()
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      linkTo (url) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getList() {
 | 
			
		||||
        if (this.isMore) return
 | 
			
		||||
 | 
			
		||||
        this.$http.post(`/app/appnewscenterinfo/listForWx`, null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            current: this.current,
 | 
			
		||||
            size: this.size,
 | 
			
		||||
            status: 1,
 | 
			
		||||
            policyType: this.type
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            if (this.current > 1) {
 | 
			
		||||
              this.list = [...this.list, ...res.data.records]
 | 
			
		||||
            } else {
 | 
			
		||||
              this.list = res.data.records
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            uni.hideLoading()
 | 
			
		||||
 | 
			
		||||
            if (res.data.records.length < 10) {
 | 
			
		||||
              this.isMore = true
 | 
			
		||||
 | 
			
		||||
              return false
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            this.current = this.current + 1
 | 
			
		||||
          } else {
 | 
			
		||||
            uni.hideLoading()
 | 
			
		||||
          }
 | 
			
		||||
        }).catch(() => {
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    linkTo(url) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onReachBottom() {
 | 
			
		||||
      this.getList()
 | 
			
		||||
    getList() {
 | 
			
		||||
      if (this.isMore) return
 | 
			
		||||
 | 
			
		||||
      this.$http.post(`/app/appnewscenterinfo/listForWx`, null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          current: this.current,
 | 
			
		||||
          size: this.size,
 | 
			
		||||
          status: 1,
 | 
			
		||||
          policyType: this.type
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          if (this.current > 1) {
 | 
			
		||||
            this.list = [...this.list, ...res.data.records]
 | 
			
		||||
          } else {
 | 
			
		||||
            this.list = res.data.records
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
 | 
			
		||||
          if (res.data.records.length < 10) {
 | 
			
		||||
            this.isMore = true
 | 
			
		||||
 | 
			
		||||
            return false
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          this.current = this.current + 1
 | 
			
		||||
        } else {
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        }
 | 
			
		||||
      }).catch(() => {
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onReachBottom() {
 | 
			
		||||
    this.getList()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .news {
 | 
			
		||||
    padding: 96px 0 40px;
 | 
			
		||||
.news {
 | 
			
		||||
  padding: 96px 0 40px;
 | 
			
		||||
 | 
			
		||||
    .list {
 | 
			
		||||
      padding: 0 30px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
  .list {
 | 
			
		||||
    padding: 0 30px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
 | 
			
		||||
      .item {
 | 
			
		||||
    .item {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      padding: 32px 0;
 | 
			
		||||
      border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
 | 
			
		||||
      &:active {
 | 
			
		||||
        background: #ddd;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        border-bottom: none;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        margin-right: 20px;
 | 
			
		||||
        display: -webkit-box;
 | 
			
		||||
        -webkit-box-orient: vertical;
 | 
			
		||||
        -webkit-line-clamp: 2;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > image {
 | 
			
		||||
        width: 200px;
 | 
			
		||||
        height: 140px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        display: -webkit-box;
 | 
			
		||||
        -webkit-box-orient: vertical;
 | 
			
		||||
        -webkit-line-clamp: 2;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item-bottom {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        padding: 32px 0;
 | 
			
		||||
        border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
 | 
			
		||||
        &:active {
 | 
			
		||||
          background: #ddd;
 | 
			
		||||
        }
 | 
			
		||||
        span {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 24px;
 | 
			
		||||
 | 
			
		||||
        &:last-child {
 | 
			
		||||
          border-bottom: none;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          flex: 1;
 | 
			
		||||
          margin-right: 20px;
 | 
			
		||||
          display: -webkit-box;
 | 
			
		||||
          -webkit-box-orient: vertical;
 | 
			
		||||
          -webkit-line-clamp: 2;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > image {
 | 
			
		||||
          width: 200px;
 | 
			
		||||
          height: 140px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          margin-bottom: 32px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
          display: -webkit-box;
 | 
			
		||||
          -webkit-box-orient: vertical;
 | 
			
		||||
          -webkit-line-clamp: 2;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .item-bottom {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            color: #999999;
 | 
			
		||||
            font-size: 24px;
 | 
			
		||||
 | 
			
		||||
            &:first-child {
 | 
			
		||||
              margin-right: 32px;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .tab {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      top: 0;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      z-index: 1;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 96px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-bottom: 1px solid #D4D4D4;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
      * {
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        position: relative;
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        height: 96rpx;
 | 
			
		||||
        line-height: 96rpx;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
 | 
			
		||||
        &::after {
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
          left: 50%;
 | 
			
		||||
          width: 88px;
 | 
			
		||||
          height: 6px;
 | 
			
		||||
          background: transparent;
 | 
			
		||||
          transform: translateX(-50%);
 | 
			
		||||
          content: ' ';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &.active {
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
 | 
			
		||||
          &::after {
 | 
			
		||||
            background: #1365DD;
 | 
			
		||||
          &:first-child {
 | 
			
		||||
            margin-right: 32px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
  .tab {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    z-index: 1;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 96px;
 | 
			
		||||
    background: #FFFFFF;
 | 
			
		||||
    border-bottom: 1px solid #D4D4D4;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
    * {
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
      position: relative;
 | 
			
		||||
      flex: 1;
 | 
			
		||||
      height: 96 rpx;
 | 
			
		||||
      line-height: 96 rpx;
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
 | 
			
		||||
      &::after {
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        bottom: 0;
 | 
			
		||||
        left: 50%;
 | 
			
		||||
        width: 88px;
 | 
			
		||||
        height: 6px;
 | 
			
		||||
        background: transparent;
 | 
			
		||||
        transform: translateX(-50%);
 | 
			
		||||
        content: ' ';
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      &.active {
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
 | 
			
		||||
        &::after {
 | 
			
		||||
          background: #1365DD;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -10,89 +10,89 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        pageShow: false,
 | 
			
		||||
        info: {},
 | 
			
		||||
        content: `
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      pageShow: false,
 | 
			
		||||
      info: {},
 | 
			
		||||
      content: `
 | 
			
		||||
					<p>露从今夜白,月是故乡明</p>
 | 
			
		||||
					<img src="https://cdn.uviewui.com/uview/swiper/2.jpg" />
 | 
			
		||||
				`
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.getInfo(query.id)
 | 
			
		||||
    },
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    uni.showLoading()
 | 
			
		||||
    this.getInfo(query.id)
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      getInfo (id) {
 | 
			
		||||
        this.$http.post(`/app/appnewscenterinfo/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            this.info = res.data
 | 
			
		||||
  methods: {
 | 
			
		||||
    getInfo(id) {
 | 
			
		||||
      this.$http.post(`/app/appnewscenterinfo/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.info = res.data
 | 
			
		||||
 | 
			
		||||
            this.$nextTick(() => {
 | 
			
		||||
              this.pageShow = true
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
          this.$nextTick(() => {
 | 
			
		||||
            this.pageShow = true
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .detail {
 | 
			
		||||
    min-height: 100vh;
 | 
			
		||||
    padding: 40px 32px 40px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
.detail {
 | 
			
		||||
  min-height: 100vh;
 | 
			
		||||
  padding: 40px 32px 40px;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  background: #fff;
 | 
			
		||||
 | 
			
		||||
    & > h2 {
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      line-height: 1.3;
 | 
			
		||||
      font-size: 40px;
 | 
			
		||||
      color: #333;
 | 
			
		||||
      font-weight: 600;
 | 
			
		||||
  & > h2 {
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
    line-height: 1.3;
 | 
			
		||||
    font-size: 40px;
 | 
			
		||||
    color: #333;
 | 
			
		||||
    font-weight: 600;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  & > span {
 | 
			
		||||
    font-size: 28px;
 | 
			
		||||
    color: #999;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .content {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    margin-top: 40px;
 | 
			
		||||
 | 
			
		||||
    ::v-deep * {
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > span {
 | 
			
		||||
    ::v-deep p {
 | 
			
		||||
      margin: 20px 0;
 | 
			
		||||
      line-height: 1.4;
 | 
			
		||||
      color: #666;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      color: #999;
 | 
			
		||||
      text-align: justify;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .content {
 | 
			
		||||
    ::v-deep img {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      margin-top: 40px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      ::v-deep * {
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
      }
 | 
			
		||||
    ::v-deep br {
 | 
			
		||||
      display: block;
 | 
			
		||||
      margin: 20px 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      ::v-deep p {
 | 
			
		||||
        margin: 20px 0;
 | 
			
		||||
        line-height: 1.4;
 | 
			
		||||
        color: #666;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        text-align: justify;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      ::v-deep img {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      ::v-deep br {
 | 
			
		||||
        display: block;
 | 
			
		||||
        margin: 20px 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .video {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        height: 600px;
 | 
			
		||||
      }
 | 
			
		||||
    .video {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 600px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,22 +2,23 @@
 | 
			
		||||
  <div class="info">
 | 
			
		||||
    <div class="info-top">
 | 
			
		||||
      <div class="info-top__item" @click="linkTo('/pages/Monitor/Monitor')">
 | 
			
		||||
        <image src="/static/images/wdbf.png" />
 | 
			
		||||
        <image src="/static/images/wdbf.png"/>
 | 
			
		||||
        <h2>监测对象</h2>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="info-top__item" @click="linkTo('/pages/povertyMonitor/povertyMonitor')">
 | 
			
		||||
        <image src="/static/images/yjjk.png" />
 | 
			
		||||
        <image src="/static/images/yjjk.png"/>
 | 
			
		||||
        <h2>预警监控</h2>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="info-top__item" @click="linkTo('/pages/PovertyAlleviation/News')">
 | 
			
		||||
        <image src="/static/images/news.png" />
 | 
			
		||||
        <image src="/static/images/news.png"/>
 | 
			
		||||
        <h2>政策动态</h2>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="news">
 | 
			
		||||
      <h2>最新动态</h2>
 | 
			
		||||
      <div class="news-list">
 | 
			
		||||
        <div class="news-item" v-for="(item, index) in list" :key="index" @click="linkTo(`/pages/PovertyAlleviation/NewsDetail?id=${item.id}`)">
 | 
			
		||||
        <div class="news-item" v-for="(item, index) in list" :key="index"
 | 
			
		||||
             @click="linkTo(`/pages/PovertyAlleviation/NewsDetail?id=${item.id}`)">
 | 
			
		||||
          <div class="left">
 | 
			
		||||
            <h2>{{ item.title }}</h2>
 | 
			
		||||
            <div class="item-bottom">
 | 
			
		||||
@@ -25,7 +26,7 @@
 | 
			
		||||
              <span>{{ item.createTime }}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <image v-if="item.coverFile" :src="item.coverFile ? item.coverFile.url : ''" />
 | 
			
		||||
          <image v-if="item.coverFile" :src="item.coverFile ? item.coverFile.url : ''"/>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
@@ -33,137 +34,137 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        list: []
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      list: []
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onLoad () {
 | 
			
		||||
      this.$dict.load(['newsCenterPolicyType']).then(() => {
 | 
			
		||||
        this.getList()
 | 
			
		||||
  onLoad() {
 | 
			
		||||
    this.$dict.load(['newsCenterPolicyType']).then(() => {
 | 
			
		||||
      this.getList()
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    linkTo(url) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      linkTo (url) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getList () {
 | 
			
		||||
        this.$http.post(`/app/appnewscenterinfo/listForWx`, null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            current: 1,
 | 
			
		||||
            size: 10,
 | 
			
		||||
            status: 1
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            this.list = res.data.records
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$http.post(`/app/appnewscenterinfo/listForWx`, null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          current: 1,
 | 
			
		||||
          size: 10,
 | 
			
		||||
          status: 1
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.list = res.data.records
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .info {
 | 
			
		||||
    padding: 32px 30px;
 | 
			
		||||
    
 | 
			
		||||
    .info-top {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-radius: 16px;
 | 
			
		||||
.info {
 | 
			
		||||
  padding: 32px 30px;
 | 
			
		||||
 | 
			
		||||
      div {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        padding: 32px 0;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
  .info-top {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    margin-bottom: 32px;
 | 
			
		||||
    background: #FFFFFF;
 | 
			
		||||
    border-radius: 16px;
 | 
			
		||||
 | 
			
		||||
        image {
 | 
			
		||||
          width: 80px;
 | 
			
		||||
          height: 80px;
 | 
			
		||||
        }
 | 
			
		||||
    div {
 | 
			
		||||
      flex: 1;
 | 
			
		||||
      padding: 32px 0;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          margin-top: 4px;
 | 
			
		||||
          color: #3D434A;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          font-weight: normal;
 | 
			
		||||
        }
 | 
			
		||||
      image {
 | 
			
		||||
        width: 80px;
 | 
			
		||||
        height: 80px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        margin-top: 4px;
 | 
			
		||||
        color: #3D434A;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .news {
 | 
			
		||||
      & > h2 {
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
  .news {
 | 
			
		||||
    & > h2 {
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-weight: 600;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .news-item {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      margin-bottom: 20px;
 | 
			
		||||
      padding: 32px 24px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
      border-radius: 14px;
 | 
			
		||||
 | 
			
		||||
      &:active {
 | 
			
		||||
        background: #eee;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .news-item {
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        border-bottom: none;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        margin-right: 20px;
 | 
			
		||||
        display: -webkit-box;
 | 
			
		||||
        -webkit-box-orient: vertical;
 | 
			
		||||
        -webkit-line-clamp: 2;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > image {
 | 
			
		||||
        width: 200px;
 | 
			
		||||
        height: 140px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        display: -webkit-box;
 | 
			
		||||
        -webkit-box-orient: vertical;
 | 
			
		||||
        -webkit-line-clamp: 2;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item-bottom {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 20px;
 | 
			
		||||
        padding: 32px 24px;
 | 
			
		||||
        background: #fff;
 | 
			
		||||
        border-radius: 14px;
 | 
			
		||||
 | 
			
		||||
        &:active {
 | 
			
		||||
          background: #eee;
 | 
			
		||||
        }
 | 
			
		||||
        span {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 24px;
 | 
			
		||||
 | 
			
		||||
        &:last-child {
 | 
			
		||||
          border-bottom: none;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          flex: 1;
 | 
			
		||||
          margin-right: 20px;
 | 
			
		||||
          display: -webkit-box;
 | 
			
		||||
          -webkit-box-orient: vertical;
 | 
			
		||||
          -webkit-line-clamp: 2;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > image {
 | 
			
		||||
          width: 200px;
 | 
			
		||||
          height: 140px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          margin-bottom: 32px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
          display: -webkit-box;
 | 
			
		||||
          -webkit-box-orient: vertical;
 | 
			
		||||
          -webkit-line-clamp: 2;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .item-bottom {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            color: #999999;
 | 
			
		||||
            font-size: 24px;
 | 
			
		||||
 | 
			
		||||
            &:first-child {
 | 
			
		||||
              margin-right: 32px;
 | 
			
		||||
            }
 | 
			
		||||
          &:first-child {
 | 
			
		||||
            margin-right: 32px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,48 +4,54 @@
 | 
			
		||||
      <div class="item">
 | 
			
		||||
        <div class="label">播发内容</div>
 | 
			
		||||
        <div class="value" @click="linkTo('/pages/resourcesManage/resourcesManage?isChoose=1')">
 | 
			
		||||
          <span :class="formData.mediaName == '请选择' ? 'color-999' : ''">{{formData.mediaName}}</span>
 | 
			
		||||
          <span :class="formData.mediaName == '请选择' ? 'color-999' : ''">{{ formData.mediaName }}</span>
 | 
			
		||||
          <img src="./img/right-icon.png" alt="">
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="item">
 | 
			
		||||
        <div class="label">播放设备</div>
 | 
			
		||||
        <div class="value" @click="selectClick('showEquipment', equipmentList)">
 | 
			
		||||
          <span :class="formData.serialName == '请选择' ? 'color-999' : ''">{{formData.serialName}}</span>
 | 
			
		||||
          <span :class="formData.serialName == '请选择' ? 'color-999' : ''">{{ formData.serialName }}</span>
 | 
			
		||||
          <img src="./img/right-icon.png" alt="">
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="item">
 | 
			
		||||
        <div class="label">播发级别</div>
 | 
			
		||||
        <div class="value" @click="selectClick('showMessageLevel', messageLevelList)">
 | 
			
		||||
          <span :class="formData.messageLevelName == '请选择' ? 'color-999' : ''">{{formData.messageLevelName}}</span>
 | 
			
		||||
          <span :class="formData.messageLevelName == '请选择' ? 'color-999' : ''">{{ formData.messageLevelName }}</span>
 | 
			
		||||
          <img src="./img/right-icon.png" alt="">
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="radio-content">
 | 
			
		||||
      <div class="title">播放方式</div>
 | 
			
		||||
      <div class="item mar-r50" :class="formData.taskType == 0 ? 'active' : ''"  @click="formData.taskType = 0">立即播放<img src="./img/bigHorn-xz.png" alt=""></div>
 | 
			
		||||
      <div class="item" :class="formData.taskType == 1 ? 'active' : ''" @click="formData.taskType = 1"><img src="./img/bigHorn-xz.png" alt="">定时播放</div>
 | 
			
		||||
      <div class="item mar-r50" :class="formData.taskType == 0 ? 'active' : ''" @click="formData.taskType = 0">立即播放<img
 | 
			
		||||
          src="./img/bigHorn-xz.png" alt=""></div>
 | 
			
		||||
      <div class="item" :class="formData.taskType == 1 ? 'active' : ''" @click="formData.taskType = 1"><img
 | 
			
		||||
          src="./img/bigHorn-xz.png" alt="">定时播放
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="content" v-if="formData.taskType != 0">
 | 
			
		||||
      <div class="item">
 | 
			
		||||
        <div class="label">定时策略</div>
 | 
			
		||||
        <div class="value" @click="selectClick('showCyclingType', cyclingTypeList)">
 | 
			
		||||
          <span :class="formData.cyclingTypeName == '请选择' ? 'color-999' : ''">{{formData.cyclingTypeName}}</span>
 | 
			
		||||
          <span :class="formData.cyclingTypeName == '请选择' ? 'color-999' : ''">{{ formData.cyclingTypeName }}</span>
 | 
			
		||||
          <img src="./img/right-icon.png" alt="">
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="radio-content" v-if="formData.taskType != 0 && formData.cyclingType == 2">
 | 
			
		||||
      <div class="title">播放天数</div>
 | 
			
		||||
      <div class="mini-item" :class="item.isCheck ? 'mini-active' : ''" v-for="(item, index) in dayList" :key="index" @click="checkClick(index)">{{item.label}}</div>
 | 
			
		||||
      <div class="mini-item" :class="item.isCheck ? 'mini-active' : ''" v-for="(item, index) in dayList" :key="index"
 | 
			
		||||
           @click="checkClick(index)">{{ item.label }}
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="content" v-if="formData.taskType != 0 && formData.cyclingType == 3">
 | 
			
		||||
      <div class="item">
 | 
			
		||||
        <div class="label">播放天数</div>
 | 
			
		||||
        <div class="value">
 | 
			
		||||
          <u-input type="text" placeholder="请输入" height="18" input-align="right" v-model="formData.broadcastDay" maxlength="4" />
 | 
			
		||||
          <u-input type="text" placeholder="请输入" height="18" input-align="right" v-model="formData.broadcastDay"
 | 
			
		||||
                   maxlength="4"/>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
@@ -53,33 +59,35 @@
 | 
			
		||||
      <div class="item">
 | 
			
		||||
        <div class="label">开始日期</div>
 | 
			
		||||
        <div class="value" @click="timeClick(true, 'showDate')">
 | 
			
		||||
          <span :class="formData.startDate ? 'color-999' : ''">{{formData.startDate || '请选择'}}</span>
 | 
			
		||||
          <span :class="formData.startDate ? 'color-999' : ''">{{ formData.startDate || '请选择' }}</span>
 | 
			
		||||
          <img src="./img/right-icon.png" alt="">
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="item">
 | 
			
		||||
        <div class="label">开始时间</div>
 | 
			
		||||
        <div class="value" @click="timeClick(false, 'showSatrt')">
 | 
			
		||||
          <span :class="formData.startTime ? 'color-999' : ''">{{formData.startTime || '请选择'}}</span>
 | 
			
		||||
          <span :class="formData.startTime ? 'color-999' : ''">{{ formData.startTime || '请选择' }}</span>
 | 
			
		||||
          <img src="./img/right-icon.png" alt="">
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="item">
 | 
			
		||||
        <div class="label">结束时间</div>
 | 
			
		||||
        <div class="value" @click="timeClick(false, 'showEnd')">
 | 
			
		||||
          <span :class="formData.endTime ? 'color-999' : ''">{{formData.endTime || '请选择'}}</span>
 | 
			
		||||
          <span :class="formData.endTime ? 'color-999' : ''">{{ formData.endTime || '请选择' }}</span>
 | 
			
		||||
          <img src="./img/right-icon.png" alt="">
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="btn" @click="addConfirm">确认</div>
 | 
			
		||||
    <u-select v-model="showSelect" :list="selectList" @confirm="confirm" label-name="dictName" value-name="dictValue"></u-select>
 | 
			
		||||
    <u-select v-model="showSelect" :list="selectList" @confirm="confirm" label-name="dictName"
 | 
			
		||||
              value-name="dictValue"></u-select>
 | 
			
		||||
    <u-picker v-model="showDateTime" mode="time" :params="params" @confirm="confirm"></u-picker>
 | 
			
		||||
    <AiBack></AiBack>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script> 
 | 
			
		||||
  import AiBack from "@/components/AiBack";
 | 
			
		||||
<script>
 | 
			
		||||
import AiBack from "@/components/AiBack";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "addPlay",
 | 
			
		||||
  data() {
 | 
			
		||||
@@ -166,7 +174,7 @@ export default {
 | 
			
		||||
    AiBack
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad () {
 | 
			
		||||
  onLoad() {
 | 
			
		||||
    uni.$on('choose', e => {
 | 
			
		||||
      console.log(e)
 | 
			
		||||
      this.formData.mediaId = e.mediaId
 | 
			
		||||
@@ -178,41 +186,41 @@ export default {
 | 
			
		||||
    addConfirm() {
 | 
			
		||||
      var cyclingDateList = []
 | 
			
		||||
      this.dayList.map((item) => {
 | 
			
		||||
        if(item.isCheck) {
 | 
			
		||||
        if (item.isCheck) {
 | 
			
		||||
          cyclingDateList.push(item.value)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      if(!this.formData.mediaId) {
 | 
			
		||||
      if (!this.formData.mediaId) {
 | 
			
		||||
        return this.$u.toast('请选择播发内容')
 | 
			
		||||
      }
 | 
			
		||||
      if(!this.formData.serialNo) {
 | 
			
		||||
      if (!this.formData.serialNo) {
 | 
			
		||||
        return this.$u.toast('请选择播放设备')
 | 
			
		||||
      }
 | 
			
		||||
      if(!this.formData.messageLevel) {
 | 
			
		||||
      if (!this.formData.messageLevel) {
 | 
			
		||||
        return this.$u.toast('播发级别')
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      //播放方式(定时播放)
 | 
			
		||||
      if(this.formData.taskType != 0 && this.formData.startDate == '请选择') {
 | 
			
		||||
      if (this.formData.taskType != 0 && this.formData.startDate == '请选择') {
 | 
			
		||||
        return this.$u.toast('请选择开始日期')
 | 
			
		||||
      }
 | 
			
		||||
      if(this.formData.taskType != 0 && this.formData.startTime == '请选择') {
 | 
			
		||||
      if (this.formData.taskType != 0 && this.formData.startTime == '请选择') {
 | 
			
		||||
        return this.$u.toast('请选择开始时间')
 | 
			
		||||
      }
 | 
			
		||||
      if(this.formData.taskType != 0 && this.formData.endTime == '请选择') {
 | 
			
		||||
      if (this.formData.taskType != 0 && this.formData.endTime == '请选择') {
 | 
			
		||||
        return this.$u.toast('请选择结束时间')
 | 
			
		||||
      }
 | 
			
		||||
      //播放方式(定时播放)定时策略(时长)
 | 
			
		||||
      if(this.formData.taskType != 0 && this.formData.cyclingType == 3 && !this.formData.broadcastDay) {
 | 
			
		||||
      if (this.formData.taskType != 0 && this.formData.cyclingType == 3 && !this.formData.broadcastDay) {
 | 
			
		||||
        return this.$u.toast('请输入播放天数')
 | 
			
		||||
      }
 | 
			
		||||
      //播放方式(定时播放)定时策略(自定义)
 | 
			
		||||
      if(this.formData.taskType != 0 && this.formData.cyclingType == 2 && !cyclingDateList.length) {
 | 
			
		||||
      if (this.formData.taskType != 0 && this.formData.cyclingType == 2 && !cyclingDateList.length) {
 | 
			
		||||
        return this.$u.toast('请选择播放天数')
 | 
			
		||||
      }
 | 
			
		||||
      
 | 
			
		||||
      if(this.formData.taskType != 0 && this.formData.cyclingType == 2) {
 | 
			
		||||
 | 
			
		||||
      if (this.formData.taskType != 0 && this.formData.cyclingType == 2) {
 | 
			
		||||
        this.formData.cyclingDate = cyclingDateList.join(',')
 | 
			
		||||
      }
 | 
			
		||||
      this.formData.coverageType = '4'
 | 
			
		||||
@@ -223,46 +231,46 @@ export default {
 | 
			
		||||
            uni.navigateBack()
 | 
			
		||||
          }, 1000)
 | 
			
		||||
        }
 | 
			
		||||
      }) 
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    linkTo (path) {
 | 
			
		||||
    linkTo(path) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: path
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    confirm(e) {
 | 
			
		||||
      if(this.showMedia) {
 | 
			
		||||
      if (this.showMedia) {
 | 
			
		||||
        this.formData.mediaId = e[0].value
 | 
			
		||||
        this.formData.mediaName = e[0].label
 | 
			
		||||
      }
 | 
			
		||||
      if(this.showEquipment) {
 | 
			
		||||
      if (this.showEquipment) {
 | 
			
		||||
        this.formData.serialNo = e[0].value
 | 
			
		||||
        this.formData.serialName = e[0].label
 | 
			
		||||
      }
 | 
			
		||||
      if(this.showMessageLevel) {
 | 
			
		||||
      if (this.showMessageLevel) {
 | 
			
		||||
        this.formData.messageLevel = e[0].value
 | 
			
		||||
        this.formData.messageLevelName = e[0].label
 | 
			
		||||
      }
 | 
			
		||||
      if(this.showCyclingType) {
 | 
			
		||||
      if (this.showCyclingType) {
 | 
			
		||||
        this.formData.cyclingType = e[0].value
 | 
			
		||||
        this.formData.cyclingTypeName = e[0].label
 | 
			
		||||
      }
 | 
			
		||||
      if(this.showDate) {
 | 
			
		||||
      if (this.showDate) {
 | 
			
		||||
        this.formData.startDate = e.year + '-' + e.month + '-' + e.day
 | 
			
		||||
      }
 | 
			
		||||
      if(this.showSatrt) {
 | 
			
		||||
      if (this.showSatrt) {
 | 
			
		||||
        var startTime = e.hour + ':' + e.minute + ':' + e.second
 | 
			
		||||
        var myDate = new Date();
 | 
			
		||||
        var time = myDate.getHours() + ':' +  myDate.getMinutes() + ':' + myDate.getSeconds()
 | 
			
		||||
        var time = myDate.getHours() + ':' + myDate.getMinutes() + ':' + myDate.getSeconds()
 | 
			
		||||
        if (this.timeToSec(startTime) - this.timeToSec(time) > 0) {
 | 
			
		||||
          this.formData.startTime = startTime
 | 
			
		||||
        }else {
 | 
			
		||||
        } else {
 | 
			
		||||
          this.$u.toast('开始时间要大于当前时间')
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      if(this.showEnd) {
 | 
			
		||||
      if (this.showEnd) {
 | 
			
		||||
        var endTime = e.hour + ':' + e.minute + ':' + e.second
 | 
			
		||||
        console.log(this.timeToSec(endTime), this.timeToSec(this.formData.startTime))
 | 
			
		||||
        if (this.timeToSec(endTime) - this.timeToSec(this.formData.startTime) > 0) {
 | 
			
		||||
@@ -291,7 +299,7 @@ export default {
 | 
			
		||||
      this.$http.post(`/app/appdlbresource/list?current=1&size=10000`).then((res) => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.mediaList = []
 | 
			
		||||
          if(res.data && res.data.records.length) {
 | 
			
		||||
          if (res.data && res.data.records.length) {
 | 
			
		||||
            res.data.records.map((item) => {
 | 
			
		||||
              let info = {
 | 
			
		||||
                dictName: item.name,
 | 
			
		||||
@@ -307,7 +315,7 @@ export default {
 | 
			
		||||
      this.$http.post(`/app/appdlbquipment/getDlbDeviceList?current=1&size=10000&devStatus=5&keyword=`).then((res) => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.equipmentList = []
 | 
			
		||||
          if(res.data && res.data.records.length) {
 | 
			
		||||
          if (res.data && res.data.records.length) {
 | 
			
		||||
            res.data.records.map((item) => {
 | 
			
		||||
              let info = {
 | 
			
		||||
                dictName: item.deviceName,
 | 
			
		||||
@@ -325,7 +333,7 @@ export default {
 | 
			
		||||
    timeClick(showYear, showType) {
 | 
			
		||||
      this[showType] = true
 | 
			
		||||
      this.showDateTime = true
 | 
			
		||||
      if(showYear) {
 | 
			
		||||
      if (showYear) {
 | 
			
		||||
        this.params = {
 | 
			
		||||
          year: true,
 | 
			
		||||
          month: true,
 | 
			
		||||
@@ -334,7 +342,7 @@ export default {
 | 
			
		||||
          minute: false,
 | 
			
		||||
          second: false
 | 
			
		||||
        }
 | 
			
		||||
      }else {
 | 
			
		||||
      } else {
 | 
			
		||||
        this.params = {
 | 
			
		||||
          year: false,
 | 
			
		||||
          month: false,
 | 
			
		||||
@@ -349,10 +357,10 @@ export default {
 | 
			
		||||
      var s = "";
 | 
			
		||||
      var hour = time.split(":")[0];
 | 
			
		||||
      var min = time.split(":")[1];
 | 
			
		||||
      var second =  time.split(":")[2];
 | 
			
		||||
      var second = time.split(":")[2];
 | 
			
		||||
      s = Number(hour * 3600) + Number(min * 60) + Number(second)
 | 
			
		||||
      return s;
 | 
			
		||||
    }, 
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.$dict.load('dlbMessageUrgency', 'dlbBroadTaskType', 'dlbDyclingType').then(() => {
 | 
			
		||||
@@ -367,10 +375,12 @@ export default {
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.addPlay {
 | 
			
		||||
  padding-bottom: 128px;
 | 
			
		||||
  .content{
 | 
			
		||||
 | 
			
		||||
  .content {
 | 
			
		||||
    padding-left: 32px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    .item{
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      padding: 34px 0;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
@@ -381,11 +391,13 @@ export default {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      color: #333;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      .label{
 | 
			
		||||
 | 
			
		||||
      .label {
 | 
			
		||||
        width: 198px;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
      .value{
 | 
			
		||||
 | 
			
		||||
      .value {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: flex-end;
 | 
			
		||||
@@ -401,35 +413,41 @@ export default {
 | 
			
		||||
          text-overflow: ellipsis;
 | 
			
		||||
          white-space: nowrap;
 | 
			
		||||
        }
 | 
			
		||||
        img{
 | 
			
		||||
 | 
			
		||||
        img {
 | 
			
		||||
          width: 32px;
 | 
			
		||||
          height: 32px;
 | 
			
		||||
          vertical-align: middle;
 | 
			
		||||
          margin-left: 6px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      .color-999{
 | 
			
		||||
 | 
			
		||||
      .color-999 {
 | 
			
		||||
        color: #999;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .radio-content{
 | 
			
		||||
 | 
			
		||||
  .radio-content {
 | 
			
		||||
    padding: 34px 32px 38px;
 | 
			
		||||
    border-bottom: 1px solid #ddd;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    .title{
 | 
			
		||||
 | 
			
		||||
    .title {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      font-family: PingFangSC-Regular, PingFang SC;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      color: #333;
 | 
			
		||||
      line-height: 44px;
 | 
			
		||||
      margin-bottom: 54px;
 | 
			
		||||
      span{
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        font-size: 24px;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    .item{
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      width: 320px;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
@@ -441,15 +459,18 @@ export default {
 | 
			
		||||
      font-family: PingFangSC-Medium, PingFang SC;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      color: #333;
 | 
			
		||||
      img{
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        display: none;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    .active{
 | 
			
		||||
 | 
			
		||||
    .active {
 | 
			
		||||
      background: #E7F1FE;
 | 
			
		||||
      color: #1174FE;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      img{
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        bottom: 0;
 | 
			
		||||
@@ -458,10 +479,12 @@ export default {
 | 
			
		||||
        height: 46px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .mar-r50 {
 | 
			
		||||
      margin-right: 50px;
 | 
			
		||||
    }
 | 
			
		||||
    .mini-item{
 | 
			
		||||
 | 
			
		||||
    .mini-item {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      width: 128px;
 | 
			
		||||
      height: 72px;
 | 
			
		||||
@@ -474,16 +497,19 @@ export default {
 | 
			
		||||
      margin-right: 58px;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .mini-item:nth-of-type(5) {
 | 
			
		||||
      margin-right: 0;
 | 
			
		||||
    }
 | 
			
		||||
    .mini-active{
 | 
			
		||||
 | 
			
		||||
    .mini-active {
 | 
			
		||||
      background: #F2F8FE;
 | 
			
		||||
      border: 1px solid #89B2EE;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .btn{
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
@@ -498,4 +524,4 @@ export default {
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -19,15 +19,16 @@
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="banner">
 | 
			
		||||
      <div class="item" :class="item.bgClass" v-for="(item, index) in bannerList" :key="index" @click="linkTo(item.path)">
 | 
			
		||||
        <h2>{{item.title}}</h2>
 | 
			
		||||
        <div>{{item.text}}</div>
 | 
			
		||||
      <div class="item" :class="item.bgClass" v-for="(item, index) in bannerList" :key="index"
 | 
			
		||||
           @click="linkTo(item.path)">
 | 
			
		||||
        <h2>{{ item.title }}</h2>
 | 
			
		||||
        <div>{{ item.text }}</div>
 | 
			
		||||
        <img :src="item.imgUrl" alt="">
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script> 
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  name: "bigHorn",
 | 
			
		||||
  data() {
 | 
			
		||||
@@ -75,13 +76,15 @@ export default {
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.bigHorn {
 | 
			
		||||
  .header{
 | 
			
		||||
  .header {
 | 
			
		||||
    position: relative;
 | 
			
		||||
    img{
 | 
			
		||||
 | 
			
		||||
    img {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 306px;
 | 
			
		||||
    }
 | 
			
		||||
    .content{
 | 
			
		||||
 | 
			
		||||
    .content {
 | 
			
		||||
      width: 686px;
 | 
			
		||||
      padding: 40px 0;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
@@ -92,15 +95,18 @@ export default {
 | 
			
		||||
      left: 50%;
 | 
			
		||||
      transform: translateX(-50%);
 | 
			
		||||
      display: flex;
 | 
			
		||||
      .item{
 | 
			
		||||
 | 
			
		||||
      .item {
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        img{
 | 
			
		||||
 | 
			
		||||
        img {
 | 
			
		||||
          width: 64px;
 | 
			
		||||
          height: 64px;
 | 
			
		||||
          margin-bottom: 18px;
 | 
			
		||||
        }
 | 
			
		||||
        div{
 | 
			
		||||
 | 
			
		||||
        div {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          font-family: PingFang-SC-Medium, PingFang-SC;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
@@ -108,7 +114,8 @@ export default {
 | 
			
		||||
          line-height: 42px;
 | 
			
		||||
          margin-bottom: 10px;
 | 
			
		||||
        }
 | 
			
		||||
        h2{
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          font-size: 40px;
 | 
			
		||||
          font-family: DINAlternate-Bold, DINAlternate;
 | 
			
		||||
          font-weight: bold;
 | 
			
		||||
@@ -118,9 +125,11 @@ export default {
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .banner{
 | 
			
		||||
 | 
			
		||||
  .banner {
 | 
			
		||||
    margin-top: 150px;
 | 
			
		||||
    .item{
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 686px;
 | 
			
		||||
      height: 190px;
 | 
			
		||||
      border-radius: 12px;
 | 
			
		||||
@@ -129,37 +138,44 @@ export default {
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      color: #FFF;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      h2{
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        font-size: 42px;
 | 
			
		||||
        font-family: PingFangSC-Medium, PingFang SC;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
        line-height: 60px;
 | 
			
		||||
        margin-bottom: 16px;
 | 
			
		||||
      }
 | 
			
		||||
      div{
 | 
			
		||||
 | 
			
		||||
      div {
 | 
			
		||||
        font-size: 26px;
 | 
			
		||||
        font-family: PingFangSC-Regular, PingFang SC;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        color: #FFF;
 | 
			
		||||
        line-height: 32px;
 | 
			
		||||
      }
 | 
			
		||||
      img{
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        width: 160px;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        top: 10px;
 | 
			
		||||
        right: 30px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    .bg-67A3F4{
 | 
			
		||||
 | 
			
		||||
    .bg-67A3F4 {
 | 
			
		||||
      background: #67A3F4;
 | 
			
		||||
    }
 | 
			
		||||
    .bg-4ED5BB{
 | 
			
		||||
 | 
			
		||||
    .bg-4ED5BB {
 | 
			
		||||
      background: #4ED5BB;
 | 
			
		||||
    }
 | 
			
		||||
    .bg-E5B565{
 | 
			
		||||
 | 
			
		||||
    .bg-E5B565 {
 | 
			
		||||
      background: #E5B565;
 | 
			
		||||
    }
 | 
			
		||||
    .bg-F19661{
 | 
			
		||||
 | 
			
		||||
    .bg-F19661 {
 | 
			
		||||
      background: #F19661;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="onlineList">
 | 
			
		||||
    <div class="record">
 | 
			
		||||
      <div class="item"  v-for="(item, index) in list" :key="index">
 | 
			
		||||
      <div class="item" v-for="(item, index) in list" :key="index">
 | 
			
		||||
        <img src="./img/bigHorn-lb@2x.png" alt="">
 | 
			
		||||
        <div class="info">
 | 
			
		||||
          <p>{{item.deviceName}}</p>
 | 
			
		||||
          <span>{{item.areaName}}</span>
 | 
			
		||||
          <p>{{ item.deviceName }}</p>
 | 
			
		||||
          <span>{{ item.areaName }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
@@ -13,9 +13,10 @@
 | 
			
		||||
    <AiBack></AiBack>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script> 
 | 
			
		||||
<script>
 | 
			
		||||
import AiEmpty from '@/components/AiEmpty/AiEmpty'
 | 
			
		||||
import AiBack from "@/components/AiBack";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "onlineList",
 | 
			
		||||
  data() {
 | 
			
		||||
@@ -56,22 +57,26 @@ export default {
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.onlineList {
 | 
			
		||||
  .record{
 | 
			
		||||
  .record {
 | 
			
		||||
    padding-left: 32px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    .item{
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      border-bottom: 1px solid #ddd;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      padding: 12px 40px 16px 0;
 | 
			
		||||
      img{
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        width: 48px;
 | 
			
		||||
        height: 48px;
 | 
			
		||||
        margin: 12px 16px 0 0;
 | 
			
		||||
      }
 | 
			
		||||
      .info{
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        width: calc(100% - 100px);
 | 
			
		||||
        p{
 | 
			
		||||
 | 
			
		||||
        p {
 | 
			
		||||
          font-size: 34px;
 | 
			
		||||
          font-family: PingFang-SC-Medium, PingFang-SC;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
@@ -79,7 +84,8 @@ export default {
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
          margin-bottom: 12px;
 | 
			
		||||
        }
 | 
			
		||||
        span{
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          font-size: 22px;
 | 
			
		||||
          font-family: PingFang-SC-Medium, PingFang-SC;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
 
 | 
			
		||||
@@ -4,9 +4,9 @@
 | 
			
		||||
      <div class="item" v-for="(item, index) in list" :key="index">
 | 
			
		||||
        <img src="./img/bigHorn-lb@2x.png" alt="">
 | 
			
		||||
        <div class="info">
 | 
			
		||||
          <p>{{item.deviceName}}</p>
 | 
			
		||||
          <span>{{item.createTime}}</span><br />
 | 
			
		||||
          <span>{{item.name}}</span>
 | 
			
		||||
          <p>{{ item.deviceName }}</p>
 | 
			
		||||
          <span>{{ item.createTime }}</span><br/>
 | 
			
		||||
          <span>{{ item.name }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
@@ -14,9 +14,10 @@
 | 
			
		||||
    <AiBack></AiBack>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script> 
 | 
			
		||||
<script>
 | 
			
		||||
import AiEmpty from '@/components/AiEmpty/AiEmpty'
 | 
			
		||||
import AiBack from "@/components/AiBack";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "onlinePlayList",
 | 
			
		||||
  data() {
 | 
			
		||||
@@ -58,22 +59,26 @@ export default {
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.onlinePlayList {
 | 
			
		||||
  .record{
 | 
			
		||||
  .record {
 | 
			
		||||
    padding-left: 32px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    .item{
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      border-bottom: 1px solid #ddd;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      padding: 12px 40px 16px 0;
 | 
			
		||||
      img{
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        width: 48px;
 | 
			
		||||
        height: 48px;
 | 
			
		||||
        margin: 12px 16px 0 0;
 | 
			
		||||
      }
 | 
			
		||||
      .info{
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        width: calc(100% - 100px);
 | 
			
		||||
        p{
 | 
			
		||||
 | 
			
		||||
        p {
 | 
			
		||||
          font-size: 34px;
 | 
			
		||||
          font-family: PingFang-SC-Medium, PingFang-SC;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
@@ -81,7 +86,8 @@ export default {
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
          margin-bottom: 12px;
 | 
			
		||||
        }
 | 
			
		||||
        span{
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          font-size: 22px;
 | 
			
		||||
          font-family: PingFang-SC-Medium, PingFang-SC;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
 
 | 
			
		||||
@@ -5,21 +5,25 @@
 | 
			
		||||
      <span>操作</span>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="record">
 | 
			
		||||
      <div class="item" v-for="(item, index) in list" :key="index"> 
 | 
			
		||||
      <div class="item" v-for="(item, index) in list" :key="index">
 | 
			
		||||
        <div class="info">
 | 
			
		||||
          <p>{{item.messageName}}</p>
 | 
			
		||||
          <span>{{item.createTime}}</span><br />
 | 
			
		||||
          <span>{{item.deviceName}}</span>
 | 
			
		||||
          <p>{{ item.messageName }}</p>
 | 
			
		||||
          <span>{{ item.createTime }}</span><br/>
 | 
			
		||||
          <span>{{ item.deviceName }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="btn bg-3975C6"
 | 
			
		||||
             v-if="item.broadcastStatus == 0 || item.broadcastStatus == 1 || item.broadcastStatus == 2"
 | 
			
		||||
             @click="cancel(item.broadcastId)">撤销
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="btn bg-3975C6" v-if="item.broadcastStatus == 0 || item.broadcastStatus == 1 || item.broadcastStatus == 2" @click="cancel(item.broadcastId)">撤销</div>
 | 
			
		||||
        <div class="btn bg-AFD0FC" v-if="item.broadcastStatus == 6">已取消</div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <AiBack></AiBack>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script> 
 | 
			
		||||
  import AiBack from "@/components/AiBack";
 | 
			
		||||
<script>
 | 
			
		||||
import AiBack from "@/components/AiBack";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "playList",
 | 
			
		||||
  data() {
 | 
			
		||||
@@ -71,7 +75,7 @@ export default {
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.playList {
 | 
			
		||||
  .title{
 | 
			
		||||
  .title {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 88px;
 | 
			
		||||
    line-height: 88px;
 | 
			
		||||
@@ -84,21 +88,25 @@ export default {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    border-bottom: 1px solid #ddd;
 | 
			
		||||
  }
 | 
			
		||||
  .record{
 | 
			
		||||
 | 
			
		||||
  .record {
 | 
			
		||||
    padding-left: 32px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    .item{
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      border-bottom: 1px solid #ddd;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      padding: 12px 40px 16px 0;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      .info{
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        width: 480px;
 | 
			
		||||
        margin-right: 40px;
 | 
			
		||||
        word-break: break-all;
 | 
			
		||||
        p{
 | 
			
		||||
 | 
			
		||||
        p {
 | 
			
		||||
          font-size: 34px;
 | 
			
		||||
          font-family: PingFang-SC-Medium, PingFang-SC;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
@@ -106,7 +114,8 @@ export default {
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
          margin-bottom: 12px;
 | 
			
		||||
        }
 | 
			
		||||
        span{
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          font-size: 22px;
 | 
			
		||||
          font-family: PingFang-SC-Medium, PingFang-SC;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
@@ -114,7 +123,8 @@ export default {
 | 
			
		||||
          line-height: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      .btn{
 | 
			
		||||
 | 
			
		||||
      .btn {
 | 
			
		||||
        width: 154px;
 | 
			
		||||
        height: 60px;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
@@ -126,10 +136,12 @@ export default {
 | 
			
		||||
        color: #FFF;
 | 
			
		||||
        margin-top: 18px;
 | 
			
		||||
      }
 | 
			
		||||
      .bg-3975C6{
 | 
			
		||||
 | 
			
		||||
      .bg-3975C6 {
 | 
			
		||||
        background: #3975C6;
 | 
			
		||||
      }
 | 
			
		||||
      .bg-AFD0FC{
 | 
			
		||||
 | 
			
		||||
      .bg-AFD0FC {
 | 
			
		||||
        background: #AFD0FC;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
    <div class="search">
 | 
			
		||||
      <div class="search-bg">
 | 
			
		||||
        <img src="./img/search-icon.png" alt="">
 | 
			
		||||
        <u-input v-model="value" type="text" placeholder="搜索设备名称" class="search-input" height="18" />
 | 
			
		||||
        <u-input v-model="value" type="text" placeholder="搜索设备名称" class="search-input" height="18"/>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="record">
 | 
			
		||||
@@ -35,7 +35,7 @@
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script> 
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  name: "selectEquipment",
 | 
			
		||||
  data() {
 | 
			
		||||
@@ -43,9 +43,7 @@ export default {
 | 
			
		||||
      value: ''
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    
 | 
			
		||||
  },
 | 
			
		||||
  methods: {},
 | 
			
		||||
  mounted() {
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
@@ -54,14 +52,16 @@ export default {
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.selectEquipment {
 | 
			
		||||
  padding-bottom: 128px;
 | 
			
		||||
  .search{
 | 
			
		||||
 | 
			
		||||
  .search {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 104px;
 | 
			
		||||
    background: #FFF;
 | 
			
		||||
    margin-bottom: 4px;
 | 
			
		||||
    padding: 20px 32px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    .search-bg{
 | 
			
		||||
 | 
			
		||||
    .search-bg {
 | 
			
		||||
      width: 686px;
 | 
			
		||||
      height: 64px;
 | 
			
		||||
      padding: 14px 0;
 | 
			
		||||
@@ -69,14 +69,16 @@ export default {
 | 
			
		||||
      background: #F5F5F5;
 | 
			
		||||
      border-radius: 32px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      img{
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        width: 32px;
 | 
			
		||||
        height: 32px;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        top: 16px;
 | 
			
		||||
        left: 32px;
 | 
			
		||||
      }
 | 
			
		||||
      .search-input{
 | 
			
		||||
 | 
			
		||||
      .search-input {
 | 
			
		||||
        width: 590px;
 | 
			
		||||
        height: 36px;
 | 
			
		||||
        line-height: 36px;
 | 
			
		||||
@@ -85,38 +87,45 @@ export default {
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .record{
 | 
			
		||||
 | 
			
		||||
  .record {
 | 
			
		||||
    padding-left: 32px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    .item{
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      border-bottom: 1px solid #ddd;
 | 
			
		||||
      .check-img{
 | 
			
		||||
 | 
			
		||||
      .check-img {
 | 
			
		||||
        width: 32px;
 | 
			
		||||
        height: 32px;
 | 
			
		||||
        margin: 32px 32px 0 0;
 | 
			
		||||
      }
 | 
			
		||||
      .voice-img{
 | 
			
		||||
 | 
			
		||||
      .voice-img {
 | 
			
		||||
        width: 48px;
 | 
			
		||||
        height: 48px;
 | 
			
		||||
        margin: 28px 16px 0 0;
 | 
			
		||||
      }
 | 
			
		||||
      .info{
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        width: calc(100% - 148px);
 | 
			
		||||
        padding: 18px 0;
 | 
			
		||||
        line-height: 44px;
 | 
			
		||||
        font-size: 34px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        .text{
 | 
			
		||||
          p{
 | 
			
		||||
 | 
			
		||||
        .text {
 | 
			
		||||
          p {
 | 
			
		||||
            font-family: PingFang-SC-Medium, PingFang-SC;
 | 
			
		||||
            font-weight: 500;
 | 
			
		||||
            color: #333;
 | 
			
		||||
            margin-bottom: 8px;
 | 
			
		||||
          }
 | 
			
		||||
          span{
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            font-size: 26px;
 | 
			
		||||
            font-family: PingFang-SC-Medium, PingFang-SC;
 | 
			
		||||
            font-weight: 500;
 | 
			
		||||
@@ -124,7 +133,8 @@ export default {
 | 
			
		||||
            line-height: 36px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        .status{
 | 
			
		||||
 | 
			
		||||
        .status {
 | 
			
		||||
          font-size: 34px;
 | 
			
		||||
          font-family: PingFang-SC-Medium, PingFang-SC;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
@@ -134,7 +144,8 @@ export default {
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .btn{
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
@@ -144,7 +155,8 @@ export default {
 | 
			
		||||
    border-top: 1px solid #ddd;
 | 
			
		||||
    padding: 24px 32px 24px 0;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    div{
 | 
			
		||||
 | 
			
		||||
    div {
 | 
			
		||||
      width: 192px;
 | 
			
		||||
      height: 80px;
 | 
			
		||||
      line-height: 80px;
 | 
			
		||||
@@ -154,7 +166,7 @@ export default {
 | 
			
		||||
      color: #fff;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      float: right;
 | 
			
		||||
    } 
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -13,17 +13,13 @@
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script> 
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  name: "selectMp3",
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    
 | 
			
		||||
    return {}
 | 
			
		||||
  },
 | 
			
		||||
  methods: {},
 | 
			
		||||
  mounted() {
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
@@ -32,18 +28,22 @@ export default {
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.selectMp3 {
 | 
			
		||||
  padding-bottom: 128px;
 | 
			
		||||
  .record{
 | 
			
		||||
 | 
			
		||||
  .record {
 | 
			
		||||
    padding-left: 32px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    .item{
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      img{
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        width: 32px;
 | 
			
		||||
        height: 32px;
 | 
			
		||||
        margin: 40px 16px 0 0;
 | 
			
		||||
      }
 | 
			
		||||
      .info{
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        width: calc(100% - 60px);
 | 
			
		||||
        padding-bottom: 16px;
 | 
			
		||||
        padding: 34px 0;
 | 
			
		||||
@@ -57,7 +57,8 @@ export default {
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .btn{
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
@@ -67,7 +68,8 @@ export default {
 | 
			
		||||
    border-top: 1px solid #ddd;
 | 
			
		||||
    padding: 24px 32px 24px 0;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    div{
 | 
			
		||||
 | 
			
		||||
    div {
 | 
			
		||||
      width: 192px;
 | 
			
		||||
      height: 80px;
 | 
			
		||||
      line-height: 80px;
 | 
			
		||||
@@ -77,7 +79,7 @@ export default {
 | 
			
		||||
      color: #fff;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      float: right;
 | 
			
		||||
    } 
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,13 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="closemsg">
 | 
			
		||||
    <img :src="imgSrc" alt="" />
 | 
			
		||||
    <img :src="imgSrc" alt=""/>
 | 
			
		||||
    <text>{{ text }}</text>
 | 
			
		||||
    <u-button
 | 
			
		||||
      type="primary"
 | 
			
		||||
      :custom-style="{ width: '100%', borderRadius: '4px', marginTop: '48px' }"
 | 
			
		||||
      @click="goBack"
 | 
			
		||||
      >{{ btnText }}</u-button
 | 
			
		||||
        type="primary"
 | 
			
		||||
        :custom-style="{ width: '100%', borderRadius: '4px', marginTop: '48px' }"
 | 
			
		||||
        @click="goBack"
 | 
			
		||||
    >{{ btnText }}
 | 
			
		||||
    </u-button
 | 
			
		||||
    >
 | 
			
		||||
    <back></back>
 | 
			
		||||
  </div>
 | 
			
		||||
@@ -17,7 +18,7 @@ import back from '../../components/AiBack'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'CloseMsg',
 | 
			
		||||
  components: { back },
 | 
			
		||||
  components: {back},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      flag: true
 | 
			
		||||
@@ -44,7 +45,7 @@ export default {
 | 
			
		||||
      return this.flag ? '确定' : '查看详情'
 | 
			
		||||
    },
 | 
			
		||||
    imgSrc() {
 | 
			
		||||
      return   this.$cdn+'other/'+(this.flag?'kztcg.png':'kztsb.png')
 | 
			
		||||
      return this.$cdn + 'other/' + (this.flag ? 'kztcg.png' : 'kztsb.png')
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@
 | 
			
		||||
      <textarea placeholder="请输入批示意见" v-model.trim="description" maxlength="200"></textarea>
 | 
			
		||||
      <u-row justify="between">
 | 
			
		||||
        <span @click="description=''">清空内容</span>
 | 
			
		||||
        <span>{{description.length || 0}}/200</span>
 | 
			
		||||
        <span>{{ description.length || 0 }}/200</span>
 | 
			
		||||
      </u-row>
 | 
			
		||||
    </div>
 | 
			
		||||
    <ai-back/>
 | 
			
		||||
@@ -14,78 +14,78 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "approval",
 | 
			
		||||
    components: {AiBack},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        id: null,
 | 
			
		||||
        description: ""
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(opt) {
 | 
			
		||||
      this.id = opt.id
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      submit() {
 | 
			
		||||
        this.$http.post("/app/appofficialdocumentinfo/instructionById", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            id: this.id,
 | 
			
		||||
            description: this.description
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            this.$u.toast("批示成功")
 | 
			
		||||
            uni.navigateBack()
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
export default {
 | 
			
		||||
  name: "approval",
 | 
			
		||||
  components: {AiBack},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      id: null,
 | 
			
		||||
      description: ""
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(opt) {
 | 
			
		||||
    this.id = opt.id
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    submit() {
 | 
			
		||||
      this.$http.post("/app/appofficialdocumentinfo/instructionById", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          id: this.id,
 | 
			
		||||
          description: this.description
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.$u.toast("批示成功")
 | 
			
		||||
          uni.navigateBack()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .approval {
 | 
			
		||||
    background: #F5F5F5;
 | 
			
		||||
.approval {
 | 
			
		||||
  background: #F5F5F5;
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
  .card {
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
 | 
			
		||||
      header {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        margin-bottom: 16px;
 | 
			
		||||
        font-weight: bold;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span:first-child {
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span:last-child {
 | 
			
		||||
        font-size: 24px;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
      }
 | 
			
		||||
    header {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      font-weight: bold;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .u-btn {
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 112px !important;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      background: #197DF0 !important;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span:first-child {
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      color: #1365DD;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span:last-child {
 | 
			
		||||
      font-size: 24px;
 | 
			
		||||
      color: #999999;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .u-btn {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 112px !important;
 | 
			
		||||
    font-size: 32px;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    background: #197DF0 !important;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,43 +2,44 @@
 | 
			
		||||
  <div class="detail">
 | 
			
		||||
    <template v-if="!userSelect">
 | 
			
		||||
      <div class="card">
 | 
			
		||||
        <header>{{detail.documentName}}</header>
 | 
			
		||||
        <header>{{ detail.documentName }}</header>
 | 
			
		||||
        <u-gap height="16"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>公文编号:</span>
 | 
			
		||||
          <span>{{detail.documentCode}}</span>
 | 
			
		||||
          <span>{{ detail.documentCode }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>公文类型:</span>
 | 
			
		||||
          <span>{{$dict.getLabel("officialDocumentName",detail.documentType)}}</span>
 | 
			
		||||
          <span>{{ $dict.getLabel("officialDocumentName", detail.documentType) }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>紧急程度:</span>
 | 
			
		||||
          <span :style="{color:$dict.getColor('documentEmergencyLevel',detail.emergencyLevel)}">{{$dict.getLabel("documentEmergencyLevel",detail.emergencyLevel)}}</span>
 | 
			
		||||
          <span
 | 
			
		||||
              :style="{color:$dict.getColor('documentEmergencyLevel',detail.emergencyLevel)}">{{ $dict.getLabel("documentEmergencyLevel", detail.emergencyLevel) }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>发文机关:</span>
 | 
			
		||||
          <span>{{detail.issuingUnit}}</span>
 | 
			
		||||
          <span>{{ detail.issuingUnit }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>发文字号:</span>
 | 
			
		||||
          <span>{{detail.issuingFont}}</span>
 | 
			
		||||
          <span>{{ detail.issuingFont }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>签发人:</span>
 | 
			
		||||
          <span>{{detail.signer}}</span>
 | 
			
		||||
          <span>{{ detail.signer }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="16"></u-gap>
 | 
			
		||||
        <img v-if="detail.confidentialityLevel" :src="$cdn + tag(detail.confidentialityLevel)" alt="">
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="card" style="margin-bottom: 0;padding-top: 0">
 | 
			
		||||
        <div class="label">备注</div>
 | 
			
		||||
        <span>{{detail.remark}}</span>
 | 
			
		||||
        <span>{{ detail.remark }}</span>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="card" style="padding-top: 0" v-if="detail.files && detail.files.length">
 | 
			
		||||
        <div class="label">相关附件</div>
 | 
			
		||||
@@ -46,30 +47,32 @@
 | 
			
		||||
          <u-row justify="between">
 | 
			
		||||
            <label class="left">
 | 
			
		||||
              <img :src="$cdn + 'common/appendix.png'" alt="">
 | 
			
		||||
              <span>{{item.fileName}}.{{item.postfix}}</span>
 | 
			
		||||
              <span>{{ item.fileName }}.{{ item.postfix }}</span>
 | 
			
		||||
            </label>
 | 
			
		||||
            <span>{{(item.size/1024).toFixed(2)}}KB</span>
 | 
			
		||||
            <span>{{ (item.size / 1024).toFixed(2) }}KB</span>
 | 
			
		||||
          </u-row>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="card">
 | 
			
		||||
        <div class="label" style="96px;">{{detail.readType ==0 ? "流转信息" : "传阅情况"}}
 | 
			
		||||
          <em>({{$dict.getLabel("documentStatus",detail.status)}})</em></div>
 | 
			
		||||
        <div class="label" style="96px;">{{ detail.readType == 0 ? "流转信息" : "传阅情况" }}
 | 
			
		||||
          <em>({{ $dict.getLabel("documentStatus", detail.status) }})</em></div>
 | 
			
		||||
        <div class="progress">
 | 
			
		||||
          <div class="item" v-for="(item,index) in detail.flowUsers" :key="index">
 | 
			
		||||
            <div class="avatar">{{item.flowUserName && item.flowUserName.substr(-2)}}</div>
 | 
			
		||||
            <div class="avatar">{{ item.flowUserName && item.flowUserName.substr(-2) }}</div>
 | 
			
		||||
            <div class="right">
 | 
			
		||||
              <u-row justify="between">
 | 
			
		||||
                <text class="status" :style="{color:item.readStatus==1?'#FF8822':'#1365DD'}">{{$dict.getLabel(detail.readType ==1 ? "readingStatus" :
 | 
			
		||||
                  "documentFlowStatus",detail.readType ==0 ? item.flowStatus : item.readStatus)}}
 | 
			
		||||
                <text class="status" :style="{color:item.readStatus==1?'#FF8822':'#1365DD'}">{{
 | 
			
		||||
                    $dict.getLabel(detail.readType == 1 ? "readingStatus" :
 | 
			
		||||
                        "documentFlowStatus", detail.readType == 0 ? item.flowStatus : item.readStatus)
 | 
			
		||||
                  }}
 | 
			
		||||
                </text>
 | 
			
		||||
                <text class="date">{{item.flowTime}}</text>
 | 
			
		||||
                <text class="date">{{ item.flowTime }}</text>
 | 
			
		||||
              </u-row>
 | 
			
		||||
              <u-row justify="between">
 | 
			
		||||
                <text class="name">{{item.flowUserName}}</text>
 | 
			
		||||
                <text class="name">{{ item.flowUserName }}</text>
 | 
			
		||||
              </u-row>
 | 
			
		||||
              <u-row justify="between">
 | 
			
		||||
                <text class="note">{{item.description}}</text>
 | 
			
		||||
                <text class="note">{{ item.description }}</text>
 | 
			
		||||
              </u-row>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -81,7 +84,9 @@
 | 
			
		||||
        <div @click="handleClick(1)">流转</div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="footer" v-if="detail.readType==1 && detail.flowRight==1" @click="read" style="background-color: #1365DD;color: #FFFFFF">我已阅完</div>
 | 
			
		||||
      <div class="footer" v-if="detail.readType==1 && detail.flowRight==1" @click="read"
 | 
			
		||||
           style="background-color: #1365DD;color: #FFFFFF">我已阅完
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
    </template>
 | 
			
		||||
 | 
			
		||||
@@ -93,340 +98,340 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
  import AiSelectEnterprise from "../../../components/AiSelectEnterprise";
 | 
			
		||||
  import {mapActions} from "vuex";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
import AiSelectEnterprise from "../../../components/AiSelectEnterprise";
 | 
			
		||||
import {mapActions} from "vuex";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "detail",
 | 
			
		||||
    components: {AiBack, AiSelectEnterprise},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        id: null,
 | 
			
		||||
        detail: {},
 | 
			
		||||
        userSelect: false,
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onLoad(opt) {
 | 
			
		||||
      this.$dict.load("officialDocumentName", "documentEmergencyLevel", "documentStatus", "readingStatus", "documentFlowStatus")
 | 
			
		||||
      this.id = opt.id
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      ...mapActions(['previewFile', 'injectJWeixin']),
 | 
			
		||||
      read() {
 | 
			
		||||
        this.$http.post("/app/appofficialdocumentinfo/readById", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            id: this.id
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            this.$u.toast("已阅读")
 | 
			
		||||
            this.getDetail()
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      preFile(e) {
 | 
			
		||||
        if([".jpg",".png",".gif"].includes(e.postfix.toLowerCase())){
 | 
			
		||||
          uni.previewImage({
 | 
			
		||||
            current: e.url,
 | 
			
		||||
            urls: [e.url]
 | 
			
		||||
          })
 | 
			
		||||
        }else {
 | 
			
		||||
          this.previewFile({...e})
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      change(e) {
 | 
			
		||||
        this.$http.post("/app/appofficialdocumentinfo/flowById", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            flowUserId: e[0].id,
 | 
			
		||||
            flowUserName: e[0].name,
 | 
			
		||||
            id: this.id,
 | 
			
		||||
            avatar: e[0].avatar,
 | 
			
		||||
            flag: 0
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            this.$u.toast("流转成功")
 | 
			
		||||
            this.getDetail()
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      tag(status) {
 | 
			
		||||
        return {
 | 
			
		||||
          "0": "common/mm.png",
 | 
			
		||||
          "1": "common/jm.png",
 | 
			
		||||
          "2": "common/tm.png"
 | 
			
		||||
        }[status]
 | 
			
		||||
      },
 | 
			
		||||
      getDetail() {
 | 
			
		||||
        this.$http.post("/app/appofficialdocumentinfo/queryDetailById", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            id: this.id,
 | 
			
		||||
            flag: 1
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            this.detail = res.data
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      handleClick(status) {
 | 
			
		||||
        if (status == 0) {
 | 
			
		||||
          uni.navigateTo({
 | 
			
		||||
            url: "/pages/documentFlow/components/approval?id=" + this.id
 | 
			
		||||
          })
 | 
			
		||||
        } else {
 | 
			
		||||
          this.userSelect = true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    onShow() {
 | 
			
		||||
      this.getDetail()
 | 
			
		||||
export default {
 | 
			
		||||
  name: "detail",
 | 
			
		||||
  components: {AiBack, AiSelectEnterprise},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      id: null,
 | 
			
		||||
      detail: {},
 | 
			
		||||
      userSelect: false,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad(opt) {
 | 
			
		||||
    this.$dict.load("officialDocumentName", "documentEmergencyLevel", "documentStatus", "readingStatus", "documentFlowStatus")
 | 
			
		||||
    this.id = opt.id
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    ...mapActions(['previewFile', 'injectJWeixin']),
 | 
			
		||||
    read() {
 | 
			
		||||
      this.$http.post("/app/appofficialdocumentinfo/readById", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          id: this.id
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.$u.toast("已阅读")
 | 
			
		||||
          this.getDetail()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    preFile(e) {
 | 
			
		||||
      if ([".jpg", ".png", ".gif"].includes(e.postfix.toLowerCase())) {
 | 
			
		||||
        uni.previewImage({
 | 
			
		||||
          current: e.url,
 | 
			
		||||
          urls: [e.url]
 | 
			
		||||
        })
 | 
			
		||||
      } else {
 | 
			
		||||
        this.previewFile({...e})
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    change(e) {
 | 
			
		||||
      this.$http.post("/app/appofficialdocumentinfo/flowById", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          flowUserId: e[0].id,
 | 
			
		||||
          flowUserName: e[0].name,
 | 
			
		||||
          id: this.id,
 | 
			
		||||
          avatar: e[0].avatar,
 | 
			
		||||
          flag: 0
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.$u.toast("流转成功")
 | 
			
		||||
          this.getDetail()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    tag(status) {
 | 
			
		||||
      return {
 | 
			
		||||
        "0": "common/mm.png",
 | 
			
		||||
        "1": "common/jm.png",
 | 
			
		||||
        "2": "common/tm.png"
 | 
			
		||||
      }[status]
 | 
			
		||||
    },
 | 
			
		||||
    getDetail() {
 | 
			
		||||
      this.$http.post("/app/appofficialdocumentinfo/queryDetailById", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          id: this.id,
 | 
			
		||||
          flag: 1
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          this.detail = res.data
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    handleClick(status) {
 | 
			
		||||
      if (status == 0) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/documentFlow/components/approval?id=" + this.id
 | 
			
		||||
        })
 | 
			
		||||
      } else {
 | 
			
		||||
        this.userSelect = true
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onShow() {
 | 
			
		||||
    this.getDetail()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .detail {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
    padding-bottom: 140px;
 | 
			
		||||
.detail {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #F5F5F5;
 | 
			
		||||
  padding-bottom: 140px;
 | 
			
		||||
  position: relative;
 | 
			
		||||
 | 
			
		||||
  .card {
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    margin-bottom: 8px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 16px 32px;
 | 
			
		||||
    position: relative;
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      margin-bottom: 8px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 16px 32px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
      header {
 | 
			
		||||
        font-size: 40px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        line-height: 64px;
 | 
			
		||||
        letter-spacing: 1px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-row {
 | 
			
		||||
        & > div {
 | 
			
		||||
          background-color: #2266FF;
 | 
			
		||||
          border-radius: 50%;
 | 
			
		||||
          text-align: center;
 | 
			
		||||
          font-size: 22px;
 | 
			
		||||
          font-weight: bold;
 | 
			
		||||
          color: #FFFFFF;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: center;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;;
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #343D65;
 | 
			
		||||
          margin-left: 16px;
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > img {
 | 
			
		||||
        width: 190px;
 | 
			
		||||
        height: 190px;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        right: 0;
 | 
			
		||||
        top: 74px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > span {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
        letter-spacing: 1px;
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .label {
 | 
			
		||||
        height: 80px;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 16px;
 | 
			
		||||
 | 
			
		||||
        & > em {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .file {
 | 
			
		||||
        height: 128px;
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
        border: 1px solid #CCCCCC;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 0 16px;
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
        & > .u-row {
 | 
			
		||||
          height: 100%;
 | 
			
		||||
 | 
			
		||||
          .left {
 | 
			
		||||
            width: 500px;
 | 
			
		||||
            display: flex;
 | 
			
		||||
            align-items: center;
 | 
			
		||||
 | 
			
		||||
            & > img {
 | 
			
		||||
              flex-shrink: 0;
 | 
			
		||||
              width: 96px;
 | 
			
		||||
              height: 96px;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            & > span {
 | 
			
		||||
              font-size: 32px;
 | 
			
		||||
              color: #333333;
 | 
			
		||||
              display: inline-block;
 | 
			
		||||
              line-height: 44px;
 | 
			
		||||
              overflow: hidden;
 | 
			
		||||
              text-overflow: ellipsis;
 | 
			
		||||
              display:-webkit-box;
 | 
			
		||||
              -webkit-box-orient:vertical;
 | 
			
		||||
              -webkit-line-clamp:2;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span {
 | 
			
		||||
            font-size: 28px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .active {
 | 
			
		||||
        background-color: #F3F6F9;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .progress {
 | 
			
		||||
        margin-top: 8px;
 | 
			
		||||
 | 
			
		||||
        .item {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          position: relative;
 | 
			
		||||
          min-height: 136px;
 | 
			
		||||
          margin-bottom: 80px;
 | 
			
		||||
 | 
			
		||||
          .avatar {
 | 
			
		||||
            width: 80px;
 | 
			
		||||
            height: 80px;
 | 
			
		||||
            border-radius: 50%;
 | 
			
		||||
            background-color: #2266FF;
 | 
			
		||||
            font-size: 28px;
 | 
			
		||||
            color: #FFFFFF;
 | 
			
		||||
            display: flex;
 | 
			
		||||
            align-items: center;
 | 
			
		||||
            justify-content: center;
 | 
			
		||||
            flex-shrink: 0;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          .right {
 | 
			
		||||
            width: 100%;
 | 
			
		||||
            display: flex;
 | 
			
		||||
            flex-direction: column;
 | 
			
		||||
 | 
			
		||||
            & > .u-row {
 | 
			
		||||
              margin-left: 40px;
 | 
			
		||||
 | 
			
		||||
              .status {
 | 
			
		||||
                font-size: 32px;
 | 
			
		||||
                color: #333333;
 | 
			
		||||
              }
 | 
			
		||||
 | 
			
		||||
              .date {
 | 
			
		||||
                font-size: 28px;
 | 
			
		||||
                color: #999999;
 | 
			
		||||
              }
 | 
			
		||||
 | 
			
		||||
              .name {
 | 
			
		||||
                font-size: 28px;
 | 
			
		||||
                color: #666666;
 | 
			
		||||
                margin: 8px 0;
 | 
			
		||||
              }
 | 
			
		||||
 | 
			
		||||
              .note {
 | 
			
		||||
                font-size: 28px;
 | 
			
		||||
                color: #343D65;
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &:after {
 | 
			
		||||
            content: "";
 | 
			
		||||
            width: 4px;
 | 
			
		||||
            height: 100%;
 | 
			
		||||
            background-color: #EEEEEE;
 | 
			
		||||
            position: absolute;
 | 
			
		||||
            left: 40px;
 | 
			
		||||
            top: 112px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &:last-child:after {
 | 
			
		||||
            display: none;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    header {
 | 
			
		||||
      font-size: 40px;
 | 
			
		||||
      font-weight: 600;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      line-height: 64px;
 | 
			
		||||
      letter-spacing: 1px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .footer {
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      font-size: 36px;
 | 
			
		||||
 | 
			
		||||
    .u-row {
 | 
			
		||||
      & > div {
 | 
			
		||||
        color: #333333;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > div:first-child {
 | 
			
		||||
        width: 50%;
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > div:last-child {
 | 
			
		||||
        width: 50%;
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        background-color: #2266FF;
 | 
			
		||||
        border-radius: 50%;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        font-size: 22px;
 | 
			
		||||
        font-weight: bold;
 | 
			
		||||
        color: #FFFFFF;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        background-color: #1365DD;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > label {
 | 
			
		||||
      & > span:first-child {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #999999;;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > span:last-child {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #343D65;
 | 
			
		||||
        margin-left: 16px;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > img {
 | 
			
		||||
      width: 190px;
 | 
			
		||||
      height: 190px;
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      right: 0;
 | 
			
		||||
      top: 74px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > span {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      line-height: 48px;
 | 
			
		||||
      letter-spacing: 1px;
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .label {
 | 
			
		||||
      height: 80px;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
 | 
			
		||||
      & > em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .file {
 | 
			
		||||
      height: 128px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
      border: 1px solid #CCCCCC;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 0 16px;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
      & > .u-row {
 | 
			
		||||
        height: 100%;
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          width: 500px;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          & > img {
 | 
			
		||||
            flex-shrink: 0;
 | 
			
		||||
            width: 96px;
 | 
			
		||||
            height: 96px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span {
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            display: inline-block;
 | 
			
		||||
            line-height: 44px;
 | 
			
		||||
            overflow: hidden;
 | 
			
		||||
            text-overflow: ellipsis;
 | 
			
		||||
            display: -webkit-box;
 | 
			
		||||
            -webkit-box-orient: vertical;
 | 
			
		||||
            -webkit-line-clamp: 2;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span {
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .active {
 | 
			
		||||
      background-color: #F3F6F9;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .progress {
 | 
			
		||||
      margin-top: 8px;
 | 
			
		||||
 | 
			
		||||
      .item {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        background-color: #1365DD;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        min-height: 136px;
 | 
			
		||||
        margin-bottom: 80px;
 | 
			
		||||
 | 
			
		||||
        .avatar {
 | 
			
		||||
          width: 80px;
 | 
			
		||||
          height: 80px;
 | 
			
		||||
          border-radius: 50%;
 | 
			
		||||
          background-color: #2266FF;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          color: #FFFFFF;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: center;
 | 
			
		||||
          flex-shrink: 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          flex-direction: column;
 | 
			
		||||
 | 
			
		||||
          & > .u-row {
 | 
			
		||||
            margin-left: 40px;
 | 
			
		||||
 | 
			
		||||
            .status {
 | 
			
		||||
              font-size: 32px;
 | 
			
		||||
              color: #333333;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            .date {
 | 
			
		||||
              font-size: 28px;
 | 
			
		||||
              color: #999999;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            .name {
 | 
			
		||||
              font-size: 28px;
 | 
			
		||||
              color: #666666;
 | 
			
		||||
              margin: 8px 0;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            .note {
 | 
			
		||||
              font-size: 28px;
 | 
			
		||||
              color: #343D65;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          content: "";
 | 
			
		||||
          width: 4px;
 | 
			
		||||
          height: 100%;
 | 
			
		||||
          background-color: #EEEEEE;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 40px;
 | 
			
		||||
          top: 112px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:last-child:after {
 | 
			
		||||
          display: none;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .footer {
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    font-size: 36px;
 | 
			
		||||
 | 
			
		||||
    & > div {
 | 
			
		||||
      color: #333333;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > div:first-child {
 | 
			
		||||
      width: 50%;
 | 
			
		||||
      height: 100%;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > div:last-child {
 | 
			
		||||
      width: 50%;
 | 
			
		||||
      height: 100%;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      background-color: #1365DD;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > label {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      background-color: #1365DD;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,29 +2,30 @@
 | 
			
		||||
  <div class="document-flow">
 | 
			
		||||
    <ai-top-fixed>
 | 
			
		||||
      <header class="pad">
 | 
			
		||||
        <u-search placeholder="请输入公文名称" v-model="documentName" @clear="documentName='',getList()" @search="getList" clearabled :show-action="false" height="64"></u-search>
 | 
			
		||||
        <u-search placeholder="请输入公文名称" v-model="documentName" @clear="documentName='',getList()" @search="getList"
 | 
			
		||||
                  clearabled :show-action="false" height="64"></u-search>
 | 
			
		||||
      </header>
 | 
			
		||||
    </ai-top-fixed>
 | 
			
		||||
    <div class="list pad" v-if="list.length">
 | 
			
		||||
      <div class="card" v-for="(item,index) in list" :key="index" @click="handleClick(item)">
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <em v-if="item.redStatus==0"></em>
 | 
			
		||||
          <span>{{item.documentName}}</span>
 | 
			
		||||
          <span>{{ item.documentName }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="16"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <label>公文类型:</label>
 | 
			
		||||
          <text style="color: #1365DD;">{{$dict.getLabel("officialDocumentName",item.documentType)}}</text>
 | 
			
		||||
          <text style="color: #1365DD;">{{ $dict.getLabel("officialDocumentName", item.documentType) }}</text>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <label>登记人:</label>
 | 
			
		||||
          <text>{{item.createUserName}}</text>
 | 
			
		||||
          <text>{{ item.createUserName }}</text>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <label>登记日期:</label>
 | 
			
		||||
          <text>{{item.createTime}}</text>
 | 
			
		||||
          <text>{{ item.createTime }}</text>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <img :src=" $cdn + tag(item.readType)" alt="">
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -35,132 +36,132 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiTopFixed from "../../components/AiTopFixed";
 | 
			
		||||
  import AiEmpty from "../../components/AiEmpty";
 | 
			
		||||
import AiTopFixed from "../../components/AiTopFixed";
 | 
			
		||||
import AiEmpty from "../../components/AiEmpty";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "documentFlow",
 | 
			
		||||
    components: {AiTopFixed,AiEmpty},
 | 
			
		||||
    data() {
 | 
			
		||||
export default {
 | 
			
		||||
  name: "documentFlow",
 | 
			
		||||
  components: {AiTopFixed, AiEmpty},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      documentName: "",
 | 
			
		||||
      current: 1,
 | 
			
		||||
      list: [],
 | 
			
		||||
      status: "加载更多"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad() {
 | 
			
		||||
    this.$dict.load("officialDocumentName")
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    tag(status) {
 | 
			
		||||
      return {
 | 
			
		||||
        documentName: "",
 | 
			
		||||
        current: 1,
 | 
			
		||||
        list: [],
 | 
			
		||||
        status: "加载更多"
 | 
			
		||||
      }
 | 
			
		||||
        "0": 'common/1ps.png',
 | 
			
		||||
        "1": 'common/2cy.png'
 | 
			
		||||
      }[status]
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(){
 | 
			
		||||
      this.$dict.load("officialDocumentName")
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      tag(status){
 | 
			
		||||
        return {
 | 
			
		||||
          "0": 'common/1ps.png',
 | 
			
		||||
          "1": 'common/2cy.png'
 | 
			
		||||
        }[status]
 | 
			
		||||
      },
 | 
			
		||||
      getList() {
 | 
			
		||||
        this.$http.post("/app/appofficialdocumentinfo/appList", null, {
 | 
			
		||||
          params:{
 | 
			
		||||
            documentName: this.documentName,
 | 
			
		||||
            size: 10,
 | 
			
		||||
            current: this.current
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$http.post("/app/appofficialdocumentinfo/appList", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          documentName: this.documentName,
 | 
			
		||||
          size: 10,
 | 
			
		||||
          current: this.current
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          if (this.current > 1 && this.current > res.data.pages) {
 | 
			
		||||
            this.status = "已经到底啦"
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            if (this.current > 1 && this.current > res.data.pages) {
 | 
			
		||||
              this.status = "已经到底啦"
 | 
			
		||||
            }
 | 
			
		||||
            this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      handleClick({id}) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/documentFlow/components/detail?id=" + id
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
          this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    onShow(){
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
    onReachBottom() {
 | 
			
		||||
      this.current = this.current + 1;
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
    handleClick({id}) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/documentFlow/components/detail?id=" + id
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onShow() {
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
  onReachBottom() {
 | 
			
		||||
    this.current = this.current + 1;
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .document-flow {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background: #F5F5F5;
 | 
			
		||||
.document-flow {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background: #F5F5F5;
 | 
			
		||||
 | 
			
		||||
    ::v-deep .content {
 | 
			
		||||
      padding: 0;
 | 
			
		||||
    }
 | 
			
		||||
  ::v-deep .content {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    header {
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
    }
 | 
			
		||||
  header {
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .list {
 | 
			
		||||
      margin: 32px 0;
 | 
			
		||||
  .list {
 | 
			
		||||
    margin: 32px 0;
 | 
			
		||||
 | 
			
		||||
      .card {
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 32px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
    .card {
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
        .u-row{
 | 
			
		||||
          flex-wrap: nowrap !important;
 | 
			
		||||
        }
 | 
			
		||||
      .u-row {
 | 
			
		||||
        flex-wrap: nowrap !important;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        em {
 | 
			
		||||
          width: 16px;
 | 
			
		||||
          height: 16px;
 | 
			
		||||
          border-radius: 50%;
 | 
			
		||||
          background-color: #FF4466;
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          margin-right: 8px;
 | 
			
		||||
          flex-shrink: 0;
 | 
			
		||||
        }
 | 
			
		||||
      em {
 | 
			
		||||
        width: 16px;
 | 
			
		||||
        height: 16px;
 | 
			
		||||
        border-radius: 50%;
 | 
			
		||||
        background-color: #FF4466;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        margin-right: 8px;
 | 
			
		||||
        flex-shrink: 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
        }
 | 
			
		||||
      span {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        label {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
        }
 | 
			
		||||
      label {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        text {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #343D65;
 | 
			
		||||
        }
 | 
			
		||||
      text {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #343D65;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        img {
 | 
			
		||||
          width: 160px;
 | 
			
		||||
          height: 160px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          right: 0;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
        }
 | 
			
		||||
      img {
 | 
			
		||||
        width: 160px;
 | 
			
		||||
        height: 160px;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        right: 0;
 | 
			
		||||
        bottom: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .pad {
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 32px 32px 0 32px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .pad {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 32px 32px 0 32px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
      <template #btn>
 | 
			
		||||
        <div class="areaSelector">
 | 
			
		||||
          <span v-for="area in fullArea" :key="area.id" v-text="area.name"
 | 
			
		||||
                :class="{current:area.id==areaId}"  @tap="index=area.id,getChildAreas(area.id)"/>
 | 
			
		||||
                :class="{current:area.id==areaId}" @tap="index=area.id,getChildAreas(area.id)"/>
 | 
			
		||||
        </div>
 | 
			
		||||
      </template>
 | 
			
		||||
      <div class="areaSelector">
 | 
			
		||||
 
 | 
			
		||||
@@ -55,9 +55,11 @@ export default {
 | 
			
		||||
 | 
			
		||||
  ::v-deep .u-drawer {
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    .uni-scroll-view-content{
 | 
			
		||||
 | 
			
		||||
    .uni-scroll-view-content {
 | 
			
		||||
      max-height: 672px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .option {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      cursor: pointer;
 | 
			
		||||
 
 | 
			
		||||
@@ -13,12 +13,13 @@
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import AiBack from "../../components/AiBack";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "historyList",
 | 
			
		||||
  components: {AiBack},
 | 
			
		||||
  computed: {
 | 
			
		||||
    itemLabel() {
 | 
			
		||||
      return '历史'+this.$dict.getLabel('intelligentGuardianshipItem', this.$route.query.type)+`(${this.$dict.getLabel('intelligentGuardianshipItemUnit',this.$route.query.type)})`
 | 
			
		||||
      return '历史' + this.$dict.getLabel('intelligentGuardianshipItem', this.$route.query.type) + `(${this.$dict.getLabel('intelligentGuardianshipItemUnit', this.$route.query.type)})`
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
@@ -39,7 +40,7 @@ export default {
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.$dict.load("intelligentGuardianshipItem",'intelligentGuardianshipItemUnit')
 | 
			
		||||
    this.$dict.load("intelligentGuardianshipItem", 'intelligentGuardianshipItemUnit')
 | 
			
		||||
    this.getHistory()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -75,7 +75,7 @@ export default {
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.$dict.load("intelligentGuardianshipItem",'intelligentGuardianshipItem2', 'sex')
 | 
			
		||||
    this.$dict.load("intelligentGuardianshipItem", 'intelligentGuardianshipItem2', 'sex')
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    this.getDetail(this.$route.query.id).then(() => this.initMap())
 | 
			
		||||
 
 | 
			
		||||
@@ -9,13 +9,13 @@
 | 
			
		||||
        <header><em>*</em>起止时间</header>
 | 
			
		||||
        <u-row justify="between">
 | 
			
		||||
          <div class="time" @click="pick(0)">
 | 
			
		||||
            <span>{{form.startTime.time}}</span>
 | 
			
		||||
            <span>{{form.startTime.year}}年{{form.startTime.month}}月{{form.startTime.day}}日 周{{form.startTime.weekday}}</span>
 | 
			
		||||
            <span>{{ form.startTime.time }}</span>
 | 
			
		||||
            <span>{{ form.startTime.year }}年{{ form.startTime.month }}月{{ form.startTime.day }}日 周{{ form.startTime.weekday }}</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="arrow"></div>
 | 
			
		||||
          <div class="time" @click="pick(1)">
 | 
			
		||||
            <span>{{form.endTime.time}}</span>
 | 
			
		||||
            <span>{{form.endTime.year}}年{{form.endTime.month}}月{{form.endTime.day}}日 周{{form.endTime.weekday}}</span>
 | 
			
		||||
            <span>{{ form.endTime.time }}</span>
 | 
			
		||||
            <span>{{ form.endTime.year }}年{{ form.endTime.month }}月{{ form.endTime.day }}日 周{{ form.endTime.weekday }}</span>
 | 
			
		||||
          </div>
 | 
			
		||||
        </u-row>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -29,7 +29,8 @@
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="card">
 | 
			
		||||
        <AiUploader :multiple="true" type="file" :limit="9" placeholder="上传附件" @list="fileList" :def="form.files"></AiUploader>
 | 
			
		||||
        <AiUploader :multiple="true" type="file" :limit="9" placeholder="上传附件" @list="fileList"
 | 
			
		||||
                    :def="form.files"></AiUploader>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="card item-wrap" @click="select">
 | 
			
		||||
@@ -40,7 +41,7 @@
 | 
			
		||||
              <span>请选择</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template v-else>
 | 
			
		||||
              已选择<em>{{form.attendees.map(e=>e.name).slice(0,2).join("、")}}</em>等<em>{{form.attendees.length}}</em>人
 | 
			
		||||
              已选择<em>{{ form.attendees.map(e => e.name).slice(0, 2).join("、") }}</em>等<em>{{ form.attendees.length }}</em>人
 | 
			
		||||
            </template>
 | 
			
		||||
            <div class="right-arrow"></div>
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -51,7 +52,7 @@
 | 
			
		||||
          <header>参会提醒</header>
 | 
			
		||||
          <picker class="right" @change="beforeNoticeChange" :value="form.noticeBefore" range-key="dictName"
 | 
			
		||||
                  :range="$dict.getDict('meetingNoticeBefore')">
 | 
			
		||||
            <span>{{ form.noticeBefore !=null ? $dict.getDict('meetingNoticeBefore')[form.noticeBefore]["dictName"] : "请选择"}}</span>
 | 
			
		||||
            <span>{{ form.noticeBefore != null ? $dict.getDict('meetingNoticeBefore')[form.noticeBefore]["dictName"] : "请选择" }}</span>
 | 
			
		||||
            <div class="right-arrow"></div>
 | 
			
		||||
          </picker>
 | 
			
		||||
        </u-row>
 | 
			
		||||
@@ -61,7 +62,7 @@
 | 
			
		||||
          <header>确认提醒</header>
 | 
			
		||||
          <picker class="right" @change="afterNoticeChange" :value="form.noticeAfter" range-key="dictName"
 | 
			
		||||
                  :range="$dict.getDict('meetingNoticeAfter')">
 | 
			
		||||
            <span>{{form.noticeAfter !=null ? $dict.getDict('meetingNoticeAfter')[form.noticeAfter]["dictName"] : "请选择"}}</span>
 | 
			
		||||
            <span>{{ form.noticeAfter != null ? $dict.getDict('meetingNoticeAfter')[form.noticeAfter]["dictName"] : "请选择" }}</span>
 | 
			
		||||
            <div class="right-arrow"></div>
 | 
			
		||||
          </picker>
 | 
			
		||||
        </u-row>
 | 
			
		||||
@@ -73,326 +74,327 @@
 | 
			
		||||
    </div>
 | 
			
		||||
    <u-picker mode="time" v-model="show" :params="params" @confirm="confirm"></u-picker>
 | 
			
		||||
    <AiBack ref="aiBack" v-if="!userSelect"/>
 | 
			
		||||
    <AiSelectEnterprise :visible.sync="userSelect" :value="form.attendees" v-if="userSelect" @change="change"></AiSelectEnterprise>
 | 
			
		||||
    <AiSelectEnterprise :visible.sync="userSelect" :value="form.attendees" v-if="userSelect"
 | 
			
		||||
                        @change="change"></AiSelectEnterprise>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
  import AiSelectEnterprise from "../../../components/AiSelectEnterprise";
 | 
			
		||||
  import AiUploader from "../../../components/AiUploader";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
import AiSelectEnterprise from "../../../components/AiSelectEnterprise";
 | 
			
		||||
import AiUploader from "../../../components/AiUploader";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "addMeeting",
 | 
			
		||||
    components: {AiBack,AiSelectEnterprise,AiUploader},
 | 
			
		||||
    data() {
 | 
			
		||||
      const initTime = {
 | 
			
		||||
        time: "",
 | 
			
		||||
        year: "",
 | 
			
		||||
        month: "",
 | 
			
		||||
        day: "",
 | 
			
		||||
        weekday: "",
 | 
			
		||||
        timestamp: "",
 | 
			
		||||
      }
 | 
			
		||||
export default {
 | 
			
		||||
  name: "addMeeting",
 | 
			
		||||
  components: {AiBack, AiSelectEnterprise, AiUploader},
 | 
			
		||||
  data() {
 | 
			
		||||
    const initTime = {
 | 
			
		||||
      time: "",
 | 
			
		||||
      year: "",
 | 
			
		||||
      month: "",
 | 
			
		||||
      day: "",
 | 
			
		||||
      weekday: "",
 | 
			
		||||
      timestamp: "",
 | 
			
		||||
    }
 | 
			
		||||
    return {
 | 
			
		||||
      show: false,
 | 
			
		||||
      index: 0,
 | 
			
		||||
      list: [],
 | 
			
		||||
      form: {
 | 
			
		||||
        id: null,
 | 
			
		||||
        title: "",
 | 
			
		||||
        startTime: {...initTime},
 | 
			
		||||
        endTime: {...initTime},
 | 
			
		||||
        address: "",
 | 
			
		||||
        content: "",
 | 
			
		||||
        attendees: [],
 | 
			
		||||
        noticeBefore: 4,
 | 
			
		||||
        noticeAfter: 0,
 | 
			
		||||
        files: [],
 | 
			
		||||
      },
 | 
			
		||||
      userSelect: false,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(opt) {
 | 
			
		||||
    if (opt.id) {
 | 
			
		||||
      this.form.id = opt.id
 | 
			
		||||
      this.getDetail()
 | 
			
		||||
    }
 | 
			
		||||
    this.$dict.load("meetingNoticeBefore", "meetingNoticeAfter");
 | 
			
		||||
    this.$nextTick(() => {
 | 
			
		||||
      let date = new Date();
 | 
			
		||||
      this.form.startTime.time = date.getHours()?.toString()?.padStart(2, "0") + ":" + date.getMinutes()?.toString()?.padStart(2, "0")
 | 
			
		||||
      this.form.startTime.year = date.getFullYear()
 | 
			
		||||
      this.form.startTime.month = (date.getMonth() + 1)?.toString()?.padStart(2, "0")
 | 
			
		||||
      this.form.startTime.day = date.getDate()
 | 
			
		||||
      this.form.startTime.weekday = '日一二三四五六'.charAt(date.getDay())
 | 
			
		||||
      this.form.endTime = {...this.form.startTime}
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    params() {
 | 
			
		||||
      return {
 | 
			
		||||
        show: false,
 | 
			
		||||
        index: 0,
 | 
			
		||||
        list: [],
 | 
			
		||||
        form: {
 | 
			
		||||
          id: null,
 | 
			
		||||
          title: "",
 | 
			
		||||
          startTime: {...initTime},
 | 
			
		||||
          endTime: {...initTime},
 | 
			
		||||
          address: "",
 | 
			
		||||
          content: "",
 | 
			
		||||
          attendees: [],
 | 
			
		||||
          noticeBefore: 4,
 | 
			
		||||
          noticeAfter: 0,
 | 
			
		||||
          files: [],
 | 
			
		||||
        },
 | 
			
		||||
        userSelect: false,
 | 
			
		||||
        year: true,
 | 
			
		||||
        month: true,
 | 
			
		||||
        day: true,
 | 
			
		||||
        hour: true,
 | 
			
		||||
        minute: true,
 | 
			
		||||
        timestamp: true,
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    fileList(e) {
 | 
			
		||||
      this.form.files = e
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(opt) {
 | 
			
		||||
      if(opt.id) {
 | 
			
		||||
        this.form.id = opt.id
 | 
			
		||||
        this.getDetail()
 | 
			
		||||
      }
 | 
			
		||||
      this.$dict.load("meetingNoticeBefore", "meetingNoticeAfter");
 | 
			
		||||
      this.$nextTick(()=>{
 | 
			
		||||
        let date = new Date();
 | 
			
		||||
        this.form.startTime.time = date.getHours()?.toString()?.padStart(2, "0") + ":" + date.getMinutes()?.toString()?.padStart(2, "0")
 | 
			
		||||
        this.form.startTime.year = date.getFullYear()
 | 
			
		||||
        this.form.startTime.month = (date.getMonth()+1)?.toString()?.padStart(2, "0")
 | 
			
		||||
        this.form.startTime.day = date.getDate()
 | 
			
		||||
        this.form.startTime.weekday = '日一二三四五六'.charAt(date.getDay())
 | 
			
		||||
        this.form.endTime = {...this.form.startTime}
 | 
			
		||||
    change(e) {
 | 
			
		||||
      this.form.attendees = e
 | 
			
		||||
    },
 | 
			
		||||
    beforeNoticeChange(e) {
 | 
			
		||||
      this.form.noticeBefore = e.detail.value
 | 
			
		||||
    },
 | 
			
		||||
    afterNoticeChange(e) {
 | 
			
		||||
      this.form.noticeAfter = e.detail.value
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getDetail() {
 | 
			
		||||
      this.$http.post("/app/appmeetinginfo/info-id", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          id: this.form.id
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          this.form.title = res.data.title
 | 
			
		||||
          this.form.address = res.data.address
 | 
			
		||||
          this.form.content = res.data.content
 | 
			
		||||
          this.form.attendees = res.data.attendees
 | 
			
		||||
          this.form.noticeBefore = res.data.noticeBefore
 | 
			
		||||
          this.form.noticeAfter = res.data.noticeAfter
 | 
			
		||||
          this.form.files = res.data.files
 | 
			
		||||
          this.form.startTime.time = res.data.startTime.split(" ")[1].substr(0, 5)
 | 
			
		||||
          this.form.startTime.year = res.data.startTime.split(" ")[0].split("-")[0]
 | 
			
		||||
          this.form.startTime.month = res.data.startTime.split(" ")[0].split("-")[1]
 | 
			
		||||
          this.form.startTime.day = res.data.startTime.split(" ")[0].split("-")[2]
 | 
			
		||||
          this.form.startTime.weekday = '日一二三四五六'.charAt(new Date(res.data.startTime.split(" ")[0]).getDay())
 | 
			
		||||
          this.form.startTime.timestamp = new Date(res.data.startTime).getTime()
 | 
			
		||||
 | 
			
		||||
          this.form.endTime.time = res.data.endTime.split(" ")[1].substr(0, 5)
 | 
			
		||||
          this.form.endTime.year = res.data.endTime.split(" ")[0].split("-")[0]
 | 
			
		||||
          this.form.endTime.month = res.data.endTime.split(" ")[0].split("-")[1]
 | 
			
		||||
          this.form.endTime.day = res.data.endTime.split(" ")[0].split("-")[2]
 | 
			
		||||
          this.form.endTime.weekday = '日一二三四五六'.charAt(new Date(res.data.endTime.split(" ")[0]).getDay())
 | 
			
		||||
          this.form.endTime.timestamp = new Date(res.data.endTime).getTime()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    computed: {
 | 
			
		||||
      params() {
 | 
			
		||||
        return {
 | 
			
		||||
          year: true,
 | 
			
		||||
          month: true,
 | 
			
		||||
          day: true,
 | 
			
		||||
          hour: true,
 | 
			
		||||
          minute: true,
 | 
			
		||||
          timestamp: true,
 | 
			
		||||
    confirm(e) {
 | 
			
		||||
      if (new Date().getTime() / 1000 > e.timestamp) return this.$u.toast("选择时间不能小于当前时间")
 | 
			
		||||
      if (this.index == 0) {
 | 
			
		||||
        this.form.startTime = {...e}
 | 
			
		||||
        this.form.startTime.time = e.hour + ":" + (e.minute.length > 1 ? e.minute : ("0" + e.minute))
 | 
			
		||||
        this.form.startTime.weekday = '日一二三四五六'.charAt(new Date(e.timestamp * 1000).getDay())
 | 
			
		||||
      } else {
 | 
			
		||||
        if (this.form.startTime.timestamp >= e.timestamp) {
 | 
			
		||||
          return this.$u.toast("结束时间不能小于开始时间");
 | 
			
		||||
        }
 | 
			
		||||
        this.form.endTime = {...e}
 | 
			
		||||
        this.form.endTime.time = e.hour + ":" + (e.minute.length > 1 ? e.minute : ("0" + e.minute))
 | 
			
		||||
        this.form.endTime.weekday = '日一二三四五六'.charAt(new Date(e.timestamp * 1000).getDay())
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      fileList(e){
 | 
			
		||||
        this.form.files = e
 | 
			
		||||
      },
 | 
			
		||||
      change(e){
 | 
			
		||||
        this.form.attendees = e
 | 
			
		||||
      },
 | 
			
		||||
      beforeNoticeChange(e) {
 | 
			
		||||
        this.form.noticeBefore = e.detail.value
 | 
			
		||||
      },
 | 
			
		||||
      afterNoticeChange(e) {
 | 
			
		||||
        this.form.noticeAfter = e.detail.value
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getDetail(){
 | 
			
		||||
        this.$http.post("/app/appmeetinginfo/info-id",null,{
 | 
			
		||||
          params:{
 | 
			
		||||
            id:this.form.id
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res=>{
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            this.form.title = res.data.title
 | 
			
		||||
            this.form.address = res.data.address
 | 
			
		||||
            this.form.content = res.data.content
 | 
			
		||||
            this.form.attendees = res.data.attendees
 | 
			
		||||
            this.form.noticeBefore = res.data.noticeBefore
 | 
			
		||||
            this.form.noticeAfter = res.data.noticeAfter
 | 
			
		||||
            this.form.files = res.data.files
 | 
			
		||||
            this.form.startTime.time = res.data.startTime.split(" ")[1].substr(0, 5)
 | 
			
		||||
            this.form.startTime.year = res.data.startTime.split(" ")[0].split("-")[0]
 | 
			
		||||
            this.form.startTime.month = res.data.startTime.split(" ")[0].split("-")[1]
 | 
			
		||||
            this.form.startTime.day = res.data.startTime.split(" ")[0].split("-")[2]
 | 
			
		||||
            this.form.startTime.weekday = '日一二三四五六'.charAt(new Date(res.data.startTime.split(" ")[0]).getDay())
 | 
			
		||||
            this.form.startTime.timestamp = new Date(res.data.startTime).getTime()
 | 
			
		||||
    add(status) {
 | 
			
		||||
      if (status == 1) {
 | 
			
		||||
        if (!this.form.title) return this.$u.toast("请输入会议标题")
 | 
			
		||||
 | 
			
		||||
            this.form.endTime.time = res.data.endTime.split(" ")[1].substr(0, 5)
 | 
			
		||||
            this.form.endTime.year = res.data.endTime.split(" ")[0].split("-")[0]
 | 
			
		||||
            this.form.endTime.month = res.data.endTime.split(" ")[0].split("-")[1]
 | 
			
		||||
            this.form.endTime.day = res.data.endTime.split(" ")[0].split("-")[2]
 | 
			
		||||
            this.form.endTime.weekday = '日一二三四五六'.charAt(new Date(res.data.endTime.split(" ")[0]).getDay())
 | 
			
		||||
            this.form.endTime.timestamp = new Date(res.data.endTime).getTime()
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      confirm(e) {
 | 
			
		||||
        if (new Date().getTime() / 1000 > e.timestamp) return this.$u.toast("选择时间不能小于当前时间")
 | 
			
		||||
        if (this.index == 0) {
 | 
			
		||||
          this.form.startTime = {...e}
 | 
			
		||||
          this.form.startTime.time = e.hour + ":" + (e.minute.length > 1 ? e.minute : ("0" + e.minute))
 | 
			
		||||
          this.form.startTime.weekday = '日一二三四五六'.charAt(new Date(e.timestamp * 1000).getDay())
 | 
			
		||||
        } else {
 | 
			
		||||
          if (this.form.startTime.timestamp >= e.timestamp) {
 | 
			
		||||
            return this.$u.toast("结束时间不能小于开始时间");
 | 
			
		||||
          }
 | 
			
		||||
          this.form.endTime = {...e}
 | 
			
		||||
          this.form.endTime.time = e.hour + ":" + (e.minute.length > 1 ? e.minute : ("0" + e.minute))
 | 
			
		||||
          this.form.endTime.weekday = '日一二三四五六'.charAt(new Date(e.timestamp * 1000).getDay())
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
        if (this.form.startTime.timestamp >= this.form.endTime.timestamp) return this.$u.toast("结束时间不能小于开始时间")
 | 
			
		||||
 | 
			
		||||
      add(status) {
 | 
			
		||||
        if(status==1){
 | 
			
		||||
          if (!this.form.title) return this.$u.toast("请输入会议标题")
 | 
			
		||||
        if (!this.form.address) return this.$u.toast("请输入会议地点")
 | 
			
		||||
 | 
			
		||||
          if (this.form.startTime.timestamp >= this.form.endTime.timestamp) return this.$u.toast("结束时间不能小于开始时间")
 | 
			
		||||
        if (!this.form.content) return this.$u.toast("请输入会议内容")
 | 
			
		||||
 | 
			
		||||
          if (!this.form.address) return this.$u.toast("请输入会议地点")
 | 
			
		||||
 | 
			
		||||
          if (!this.form.content) return this.$u.toast("请输入会议内容")
 | 
			
		||||
 | 
			
		||||
          if(!this.form.attendees.length) return this.$u.toast("请选择参会人")
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.$http.post("/app/appmeetinginfo/add-update", {
 | 
			
		||||
          ...this.form,
 | 
			
		||||
          files:this.form.files.map(e=>e.id),
 | 
			
		||||
          status,
 | 
			
		||||
          startTime: this.form.startTime.year + "-" + this.form.startTime.month + "-" + this.form.startTime.day + " " + this.form.startTime.time + ":00",
 | 
			
		||||
          endTime: this.form.endTime.year + "-" + this.form.endTime.month + "-" + this.form.endTime.day + " " + this.form.endTime.time + ":00",
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            this.$u.toast(status == 1 ? "发布成功" : "保存成功")
 | 
			
		||||
            this.$refs["aiBack"].back()
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      pick(index) {
 | 
			
		||||
        this.index = index
 | 
			
		||||
        this.show = true
 | 
			
		||||
      },
 | 
			
		||||
      select() {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/meetingNotice/components/notice"
 | 
			
		||||
        })
 | 
			
		||||
        if (!this.form.attendees.length) return this.$u.toast("请选择参会人")
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.$http.post("/app/appmeetinginfo/add-update", {
 | 
			
		||||
        ...this.form,
 | 
			
		||||
        files: this.form.files.map(e => e.id),
 | 
			
		||||
        status,
 | 
			
		||||
        startTime: this.form.startTime.year + "-" + this.form.startTime.month + "-" + this.form.startTime.day + " " + this.form.startTime.time + ":00",
 | 
			
		||||
        endTime: this.form.endTime.year + "-" + this.form.endTime.month + "-" + this.form.endTime.day + " " + this.form.endTime.time + ":00",
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.$u.toast(status == 1 ? "发布成功" : "保存成功")
 | 
			
		||||
          this.$refs["aiBack"].back()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    pick(index) {
 | 
			
		||||
      this.index = index
 | 
			
		||||
      this.show = true
 | 
			
		||||
    },
 | 
			
		||||
    select() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/meetingNotice/components/notice"
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .add-meeting {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background: #F5F5F5;
 | 
			
		||||
    padding-bottom: 140px;
 | 
			
		||||
.add-meeting {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background: #F5F5F5;
 | 
			
		||||
  padding-bottom: 140px;
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
      margin-top: 16px;
 | 
			
		||||
  .card {
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
    margin-top: 16px;
 | 
			
		||||
 | 
			
		||||
      header {
 | 
			
		||||
    header {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
 | 
			
		||||
      em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        color: #FF4466;
 | 
			
		||||
        margin-right: 8px;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    input {
 | 
			
		||||
      margin: 32px 0 16px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 0 16px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 160px;
 | 
			
		||||
      margin: 32px 0 16px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 0 16px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .u-row {
 | 
			
		||||
      margin-top: 34px;
 | 
			
		||||
 | 
			
		||||
      .time {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          font-size: 60px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          line-height: 84px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 22px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .arrow {
 | 
			
		||||
        width: 28px;
 | 
			
		||||
        height: 68px;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        transform: rotate(180deg);
 | 
			
		||||
 | 
			
		||||
        &:before, &:after {
 | 
			
		||||
          content: "";
 | 
			
		||||
          width: 50px;
 | 
			
		||||
          height: 50px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          transform: scaleY(1.3) translate(30%, -40px) rotate(45deg);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:before {
 | 
			
		||||
          top: 59px;
 | 
			
		||||
          background-color: #CCCCCC;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          left: 7px;
 | 
			
		||||
          top: 59px;
 | 
			
		||||
          background-color: #FFFFFF;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      box-shadow: 0px -1px 0px 0px #D8DDE6;
 | 
			
		||||
      margin-top: 0;
 | 
			
		||||
 | 
			
		||||
      .right {
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
 | 
			
		||||
        em {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #FF4466;
 | 
			
		||||
          margin-right: 8px;
 | 
			
		||||
          vertical-align: middle;
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      input {
 | 
			
		||||
        margin: 32px 0 16px;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 0 16px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        height: 160px;
 | 
			
		||||
        margin: 32px 0 16px;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 0 16px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-row {
 | 
			
		||||
        margin-top: 34px;
 | 
			
		||||
 | 
			
		||||
        .time {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          flex-direction: column;
 | 
			
		||||
 | 
			
		||||
          & > span:first-child {
 | 
			
		||||
            font-size: 60px;
 | 
			
		||||
            font-weight: 600;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            line-height: 84px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span:last-child {
 | 
			
		||||
            font-size: 22px;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .arrow {
 | 
			
		||||
          width: 28px;
 | 
			
		||||
          height: 68px;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
          position: relative;
 | 
			
		||||
          transform: rotate(180deg);
 | 
			
		||||
 | 
			
		||||
          &:before, &:after {
 | 
			
		||||
            content: "";
 | 
			
		||||
            width: 50px;
 | 
			
		||||
            height: 50px;
 | 
			
		||||
            position: absolute;
 | 
			
		||||
            transform: scaleY(1.3) translate(30%, -40px) rotate(45deg);
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &:before {
 | 
			
		||||
            top: 59px;
 | 
			
		||||
            background-color: #CCCCCC;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &:after {
 | 
			
		||||
            left: 7px;
 | 
			
		||||
            top: 59px;
 | 
			
		||||
            background-color: #FFFFFF;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item {
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        box-shadow: 0px -1px 0px 0px #D8DDE6;
 | 
			
		||||
        margin-top: 0;
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          em {
 | 
			
		||||
            font-style: normal;
 | 
			
		||||
            color: #1365DD;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right-arrow {
 | 
			
		||||
          width: 16px;
 | 
			
		||||
          height: 16px;
 | 
			
		||||
          display: inline-block;
 | 
			
		||||
          border-top: 5px solid #CCCCCC;
 | 
			
		||||
          border-right: 5px solid #CCCCCC;
 | 
			
		||||
          transform: rotate(45deg);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item-wrap {
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .footer {
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
 | 
			
		||||
      & > div {
 | 
			
		||||
        font-size: 36px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > div:first-child {
 | 
			
		||||
        width: 270px;
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > div:last-child {
 | 
			
		||||
        width: calc(100% - 270px);
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        color: #FFFFFF;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        background-color: #1365DD;
 | 
			
		||||
      .right-arrow {
 | 
			
		||||
        width: 16px;
 | 
			
		||||
        height: 16px;
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        border-top: 5px solid #CCCCCC;
 | 
			
		||||
        border-right: 5px solid #CCCCCC;
 | 
			
		||||
        transform: rotate(45deg);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .item-wrap {
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .footer {
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
 | 
			
		||||
    & > div {
 | 
			
		||||
      font-size: 36px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > div:first-child {
 | 
			
		||||
      width: 270px;
 | 
			
		||||
      height: 100%;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > div:last-child {
 | 
			
		||||
      width: calc(100% - 270px);
 | 
			
		||||
      height: 100%;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      background-color: #1365DD;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -6,26 +6,26 @@
 | 
			
		||||
    <div class="body">
 | 
			
		||||
      <template v-if="list.length">
 | 
			
		||||
        <div class="card" v-for="(item,index) in list" :key="index" @click="handleClick(item)">
 | 
			
		||||
          <header>{{item.title}}</header>
 | 
			
		||||
          <header>{{ item.title }}</header>
 | 
			
		||||
          <u-row justify="between">
 | 
			
		||||
            <div class="time">
 | 
			
		||||
              <span>{{item.startTime|formatTime}}</span>
 | 
			
		||||
              <span>{{item.startTime|formatDate(0)}}年{{item.startTime|formatDate(1)}}月{{item.startTime|formatDate(2)}}日 周{{item.startTime|formatWeek}}</span>
 | 
			
		||||
              <span>{{ item.startTime|formatTime }}</span>
 | 
			
		||||
              <span>{{ item.startTime|formatDate(0) }}年{{ item.startTime|formatDate(1) }}月{{ item.startTime|formatDate(2) }}日 周{{ item.startTime|formatWeek }}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="arrow"></div>
 | 
			
		||||
            <div class="time">
 | 
			
		||||
              <span>{{item.endTime|formatTime}}</span>
 | 
			
		||||
              <span>{{item.endTime|formatDate(0)}}年{{item.endTime|formatDate(1)}}月{{item.endTime|formatDate(2)}}日 周{{item.endTime|formatWeek}}</span>
 | 
			
		||||
              <span>{{ item.endTime|formatTime }}</span>
 | 
			
		||||
              <span>{{ item.endTime|formatDate(0) }}年{{ item.endTime|formatDate(1) }}月{{ item.endTime|formatDate(2) }}日 周{{ item.endTime|formatWeek }}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
          </u-row>
 | 
			
		||||
          <u-row class="info">
 | 
			
		||||
            <span>发起单位:</span>
 | 
			
		||||
            <span>{{item.unitName}}</span>
 | 
			
		||||
            <span>{{ item.unitName }}</span>
 | 
			
		||||
          </u-row>
 | 
			
		||||
          <u-gap height="20"></u-gap>
 | 
			
		||||
          <u-row class="info">
 | 
			
		||||
            <span>会议地点:</span>
 | 
			
		||||
            <span>{{item.address}}</span>
 | 
			
		||||
            <span>{{ item.address }}</span>
 | 
			
		||||
          </u-row>
 | 
			
		||||
          <div class="tag" :style="{background:'url(' + tag(item.status) + ')'}"></div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -39,193 +39,193 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiTopFixed from "../../../components/AiTopFixed";
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
  import AiEmpty from "../../../components/AiEmpty";
 | 
			
		||||
import AiTopFixed from "../../../components/AiTopFixed";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
import AiEmpty from "../../../components/AiEmpty";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "belongToMe",
 | 
			
		||||
    components: {AiTopFixed, AiBack, AiEmpty},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        index: 0,
 | 
			
		||||
        current: 1,
 | 
			
		||||
        list: [],
 | 
			
		||||
        status: "加载更多",
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    onLoad() {
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
    computed: {
 | 
			
		||||
      tabs() {
 | 
			
		||||
        return [
 | 
			
		||||
          {name: "全部"},
 | 
			
		||||
          {name: "未开始"},
 | 
			
		||||
          {name: "进行中"},
 | 
			
		||||
          {name: "已取消"},
 | 
			
		||||
          {name: "已结束"},
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      tag(status) {
 | 
			
		||||
        return {
 | 
			
		||||
          "1": this.$cdn + 'common/1wks.png',
 | 
			
		||||
          "2": this.$cdn + 'common/1jxz.png',
 | 
			
		||||
          "3": this.$cdn + 'common/1yqx.png',
 | 
			
		||||
          "4": this.$cdn + 'common/1yjs.png'
 | 
			
		||||
        }[status]
 | 
			
		||||
      },
 | 
			
		||||
      getList() {
 | 
			
		||||
        this.$http.post("/app/appmeetinginfo/list", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            listType: 0,
 | 
			
		||||
            meetingStatus: this.index == 0 ? "-1" : this.index,
 | 
			
		||||
            size: 10,
 | 
			
		||||
            current: this.current
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            if (this.current > 1 && this.current > res.data.pages) {
 | 
			
		||||
              this.status = "已经到底啦"
 | 
			
		||||
            }
 | 
			
		||||
            this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      handleClick({id}) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/meetingNotice/components/detail?id=" + id
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      change(e) {
 | 
			
		||||
        this.index = e
 | 
			
		||||
        this.current = 1
 | 
			
		||||
        this.getList()
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onReachBottom() {
 | 
			
		||||
      this.current = this.current + 1;
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    filters: {
 | 
			
		||||
      formatTime(date) {
 | 
			
		||||
        return date.split(" ")[1]?.substr(0, 5)
 | 
			
		||||
      },
 | 
			
		||||
      formatDate(date, i) {
 | 
			
		||||
        return date.split(" ")[0]?.split("-")[i]
 | 
			
		||||
      },
 | 
			
		||||
      formatWeek(date) {
 | 
			
		||||
        return "日一二三四五六".charAt(new Date(date.split(" ")[0]).getDay())
 | 
			
		||||
      },
 | 
			
		||||
export default {
 | 
			
		||||
  name: "belongToMe",
 | 
			
		||||
  components: {AiTopFixed, AiBack, AiEmpty},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      index: 0,
 | 
			
		||||
      current: 1,
 | 
			
		||||
      list: [],
 | 
			
		||||
      status: "加载更多",
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad() {
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    tabs() {
 | 
			
		||||
      return [
 | 
			
		||||
        {name: "全部"},
 | 
			
		||||
        {name: "未开始"},
 | 
			
		||||
        {name: "进行中"},
 | 
			
		||||
        {name: "已取消"},
 | 
			
		||||
        {name: "已结束"},
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    tag(status) {
 | 
			
		||||
      return {
 | 
			
		||||
        "1": this.$cdn + 'common/1wks.png',
 | 
			
		||||
        "2": this.$cdn + 'common/1jxz.png',
 | 
			
		||||
        "3": this.$cdn + 'common/1yqx.png',
 | 
			
		||||
        "4": this.$cdn + 'common/1yjs.png'
 | 
			
		||||
      }[status]
 | 
			
		||||
    },
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$http.post("/app/appmeetinginfo/list", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          listType: 0,
 | 
			
		||||
          meetingStatus: this.index == 0 ? "-1" : this.index,
 | 
			
		||||
          size: 10,
 | 
			
		||||
          current: this.current
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          if (this.current > 1 && this.current > res.data.pages) {
 | 
			
		||||
            this.status = "已经到底啦"
 | 
			
		||||
          }
 | 
			
		||||
          this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    handleClick({id}) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/meetingNotice/components/detail?id=" + id
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    change(e) {
 | 
			
		||||
      this.index = e
 | 
			
		||||
      this.current = 1
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onReachBottom() {
 | 
			
		||||
    this.current = this.current + 1;
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  filters: {
 | 
			
		||||
    formatTime(date) {
 | 
			
		||||
      return date.split(" ")[1]?.substr(0, 5)
 | 
			
		||||
    },
 | 
			
		||||
    formatDate(date, i) {
 | 
			
		||||
      return date.split(" ")[0]?.split("-")[i]
 | 
			
		||||
    },
 | 
			
		||||
    formatWeek(date) {
 | 
			
		||||
      return "日一二三四五六".charAt(new Date(date.split(" ")[0]).getDay())
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .belong-to-me {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
.belong-to-me {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #F5F5F5;
 | 
			
		||||
 | 
			
		||||
    ::v-deep .content {
 | 
			
		||||
      padding: 0 !important;
 | 
			
		||||
    }
 | 
			
		||||
  ::v-deep .content {
 | 
			
		||||
    padding: 0 !important;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .body {
 | 
			
		||||
  .body {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 40px 32px;
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 40px 32px;
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
      .card {
 | 
			
		||||
        background-color: #FFFFFF;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 32px;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        margin-bottom: 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        &:last-child {
 | 
			
		||||
          margin-bottom: 0;
 | 
			
		||||
        }
 | 
			
		||||
      & > header {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        & > header {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
      .time {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
        margin: 46px 0;
 | 
			
		||||
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          font-size: 60px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          line-height: 84px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .time {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          flex-direction: column;
 | 
			
		||||
          margin: 46px 0;
 | 
			
		||||
 | 
			
		||||
          & > span:first-child {
 | 
			
		||||
            font-size: 60px;
 | 
			
		||||
            font-weight: 600;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            line-height: 84px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span:last-child {
 | 
			
		||||
            font-size: 22px;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
          }
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 22px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        .arrow {
 | 
			
		||||
          width: 28px;
 | 
			
		||||
          height: 68px;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
          position: relative;
 | 
			
		||||
          transform: rotate(180deg);
 | 
			
		||||
      .arrow {
 | 
			
		||||
        width: 28px;
 | 
			
		||||
        height: 68px;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        transform: rotate(180deg);
 | 
			
		||||
 | 
			
		||||
          &:before, &:after {
 | 
			
		||||
            content: "";
 | 
			
		||||
            width: 50px;
 | 
			
		||||
            height: 50px;
 | 
			
		||||
            position: absolute;
 | 
			
		||||
            transform: scaleY(1.3) translate(30%, -40px) rotate(45deg);
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &:before {
 | 
			
		||||
            top: 59px;
 | 
			
		||||
            background-color: #CCCCCC;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &:after {
 | 
			
		||||
            left: 7px;
 | 
			
		||||
            top: 59px;
 | 
			
		||||
            background-color: #FFFFFF;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .info {
 | 
			
		||||
          flex-wrap: nowrap;
 | 
			
		||||
 | 
			
		||||
          & > span:first-child {
 | 
			
		||||
            font-size: 30px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
            flex-shrink: 0;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span:last-child {
 | 
			
		||||
            font-size: 30px;
 | 
			
		||||
            color: #343D65;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .tag {
 | 
			
		||||
          width: 112px;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          background-repeat: no-repeat;
 | 
			
		||||
          background-size: 100% 100% !important;
 | 
			
		||||
        &:before, &:after {
 | 
			
		||||
          content: "";
 | 
			
		||||
          width: 50px;
 | 
			
		||||
          height: 50px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          top: 0;
 | 
			
		||||
          right: 0;
 | 
			
		||||
          transform: scaleY(1.3) translate(30%, -40px) rotate(45deg);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:before {
 | 
			
		||||
          top: 59px;
 | 
			
		||||
          background-color: #CCCCCC;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          left: 7px;
 | 
			
		||||
          top: 59px;
 | 
			
		||||
          background-color: #FFFFFF;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        flex-wrap: nowrap;
 | 
			
		||||
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          flex-shrink: 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #343D65;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .tag {
 | 
			
		||||
        width: 112px;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        background-repeat: no-repeat;
 | 
			
		||||
        background-size: 100% 100% !important;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        top: 0;
 | 
			
		||||
        right: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,9 @@
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <img :src="$cdn + 'common/date.png'" alt="">
 | 
			
		||||
          <span>{{ detail.startTime && detail.startTime.substr(0, 16) }} 至 {{ detail.endTime && detail.endTime.substr(0, 16) }}</span>
 | 
			
		||||
          <span>{{
 | 
			
		||||
              detail.startTime && detail.startTime.substr(0, 16)
 | 
			
		||||
            }} 至 {{ detail.endTime && detail.endTime.substr(0, 16) }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,32 +2,32 @@
 | 
			
		||||
  <div class="meeting-list">
 | 
			
		||||
    <div class="card" v-for="(item,index) in list" :key="index" @click="detail(item)">
 | 
			
		||||
      <header>
 | 
			
		||||
        <span>{{item.title}}</span>
 | 
			
		||||
        <span>{{ item.title }}</span>
 | 
			
		||||
        <span>
 | 
			
		||||
          <span v-if="index==2">保存于</span>
 | 
			
		||||
          {{item.createTime}}</span>
 | 
			
		||||
          {{ item.createTime }}</span>
 | 
			
		||||
      </header>
 | 
			
		||||
      <u-row justify="between">
 | 
			
		||||
        <div class="time">
 | 
			
		||||
          <span>{{item.startTime|format}}</span>
 | 
			
		||||
          <span>{{item.startTime|formatDate(0)}}年{{item.startTime|formatDate(1)}}月{{item.startTime|formatDate(2)}}日 周{{item.startTime|formatWeek}}</span>
 | 
			
		||||
          <span>{{ item.startTime|format }}</span>
 | 
			
		||||
          <span>{{ item.startTime|formatDate(0) }}年{{ item.startTime|formatDate(1) }}月{{ item.startTime|formatDate(2) }}日 周{{ item.startTime|formatWeek }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="arrow"></div>
 | 
			
		||||
        <div class="time">
 | 
			
		||||
          <span>{{item.endTime|format}}</span>
 | 
			
		||||
          <span>{{item.endTime|formatDate(0)}}年{{item.endTime|formatDate(1)}}月{{item.endTime|formatDate(2)}}日 周{{item.endTime|formatWeek}}</span>
 | 
			
		||||
          <span>{{ item.endTime|format }}</span>
 | 
			
		||||
          <span>{{ item.endTime|formatDate(0) }}年{{ item.endTime|formatDate(1) }}月{{ item.endTime|formatDate(2) }}日 周{{ item.endTime|formatWeek }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
      </u-row>
 | 
			
		||||
      <u-row class="info">
 | 
			
		||||
        <span>发起人员:</span>
 | 
			
		||||
        <span>{{item.userName}}</span>
 | 
			
		||||
        <span>{{ item.userName }}</span>
 | 
			
		||||
      </u-row>
 | 
			
		||||
      <u-gap height="20"></u-gap>
 | 
			
		||||
      <u-row class="info">
 | 
			
		||||
        <span>会议地点:</span>
 | 
			
		||||
        <span>{{item.address}}</span>
 | 
			
		||||
        <span>{{ item.address }}</span>
 | 
			
		||||
      </u-row>
 | 
			
		||||
        <div class="tag" v-if="item.status!=0" :style="{background:'url(' + $cdn + tag(item.status) +')'}"></div>
 | 
			
		||||
      <div class="tag" v-if="item.status!=0" :style="{background:'url(' + $cdn + tag(item.status) +')'}"></div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <u-loadmore :status="status" v-if="list.length"/>
 | 
			
		||||
    <AiEmpty v-if="!list.length"></AiEmpty>
 | 
			
		||||
@@ -36,190 +36,191 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
  import AiEmpty from "../../../components/AiEmpty";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
import AiEmpty from "../../../components/AiEmpty";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "meetingList",
 | 
			
		||||
    components: {AiBack, AiEmpty},
 | 
			
		||||
    data() {
 | 
			
		||||
export default {
 | 
			
		||||
  name: "meetingList",
 | 
			
		||||
  components: {AiBack, AiEmpty},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      index: null,
 | 
			
		||||
      list: [],
 | 
			
		||||
      current: 1,
 | 
			
		||||
      status: "加载更多",
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad(opt) {
 | 
			
		||||
    this.index = opt.index
 | 
			
		||||
    uni.setNavigationBarTitle({
 | 
			
		||||
      title: opt.index == 0 ? "历史会议" : "草稿箱"
 | 
			
		||||
    });
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    detail({id}) {
 | 
			
		||||
      let url
 | 
			
		||||
      if (this.index == 2) {
 | 
			
		||||
        url = "/pages/meetingNotice/components/addMeeting?id=" + id
 | 
			
		||||
      } else {
 | 
			
		||||
        url = "/pages/meetingNotice/components/detail?id=" + id
 | 
			
		||||
      }
 | 
			
		||||
      uni.navigateTo({url})
 | 
			
		||||
    },
 | 
			
		||||
    tag(status) {
 | 
			
		||||
      return {
 | 
			
		||||
        index: null,
 | 
			
		||||
        list: [],
 | 
			
		||||
        current: 1,
 | 
			
		||||
        status: "加载更多",
 | 
			
		||||
      }
 | 
			
		||||
        "1": 'common/1wks.png',
 | 
			
		||||
        "2": 'common/1jxz.png',
 | 
			
		||||
        "3": 'common/1yqx.png',
 | 
			
		||||
        "4": 'common/1yjs.png'
 | 
			
		||||
      }[status]
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onLoad(opt) {
 | 
			
		||||
      this.index = opt.index
 | 
			
		||||
      uni.setNavigationBarTitle({
 | 
			
		||||
        title: opt.index == 0 ? "历史会议" : "草稿箱"
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      detail({id}) {
 | 
			
		||||
        let url
 | 
			
		||||
        if (this.index == 2) {
 | 
			
		||||
          url = "/pages/meetingNotice/components/addMeeting?id=" + id
 | 
			
		||||
        } else {
 | 
			
		||||
          url = "/pages/meetingNotice/components/detail?id=" + id
 | 
			
		||||
    getData() {
 | 
			
		||||
      this.$http.post("/app/appmeetinginfo/list", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          listType: this.index == 0 ? "2" : '0',
 | 
			
		||||
          meetingStatus: this.index == 0 ? "4" : "0",
 | 
			
		||||
          size: 10,
 | 
			
		||||
          current: this.current,
 | 
			
		||||
        }
 | 
			
		||||
        uni.navigateTo({url})
 | 
			
		||||
      },
 | 
			
		||||
      tag(status) {
 | 
			
		||||
        return {
 | 
			
		||||
          "1": 'common/1wks.png',
 | 
			
		||||
          "2": 'common/1jxz.png',
 | 
			
		||||
          "3": 'common/1yqx.png',
 | 
			
		||||
          "4": 'common/1yjs.png'
 | 
			
		||||
        }[status]
 | 
			
		||||
      },
 | 
			
		||||
      getData() {
 | 
			
		||||
        this.$http.post("/app/appmeetinginfo/list", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            listType: this.index == 0 ? "2" : '0',
 | 
			
		||||
            meetingStatus: this.index == 0 ? "4" : "0",
 | 
			
		||||
            size: 10,
 | 
			
		||||
            current: this.current,
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          if (this.current > 1 && this.current > res.data.pages) {
 | 
			
		||||
            this.status = "已经到底啦"
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            if (this.current > 1 && this.current > res.data.pages) {
 | 
			
		||||
              this.status = "已经到底啦"
 | 
			
		||||
            }
 | 
			
		||||
            this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
          this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    filters: {
 | 
			
		||||
      format(date) {
 | 
			
		||||
        return date.split(" ")[1].substr(0, 5)
 | 
			
		||||
      },
 | 
			
		||||
      formatDate(date, index) {
 | 
			
		||||
        return date.split(" ")[0].split("-")[index]
 | 
			
		||||
      },
 | 
			
		||||
      formatWeek(date) {
 | 
			
		||||
        return "日一二三四五六".charAt((new Date(date.split(" ")[0]).getDay()))
 | 
			
		||||
      }
 | 
			
		||||
  filters: {
 | 
			
		||||
    format(date) {
 | 
			
		||||
      return date.split(" ")[1].substr(0, 5)
 | 
			
		||||
    },
 | 
			
		||||
    formatDate(date, index) {
 | 
			
		||||
      return date.split(" ")[0].split("-")[index]
 | 
			
		||||
    },
 | 
			
		||||
    formatWeek(date) {
 | 
			
		||||
      return "日一二三四五六".charAt((new Date(date.split(" ")[0]).getDay()))
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onShow(){
 | 
			
		||||
      this.getData()
 | 
			
		||||
    },
 | 
			
		||||
  onShow() {
 | 
			
		||||
    this.getData()
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onReachBottom() {
 | 
			
		||||
      this.current = this.current + 1;
 | 
			
		||||
      this.getData()
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
  onReachBottom() {
 | 
			
		||||
    this.current = this.current + 1;
 | 
			
		||||
    this.getData()
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .meeting-list {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
.meeting-list {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #F5F5F5;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  padding: 32px;
 | 
			
		||||
 | 
			
		||||
  .card {
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
    border-radius: 8px;
 | 
			
		||||
    margin-bottom: 32px;
 | 
			
		||||
    position: relative;
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
    &:last-child {
 | 
			
		||||
      margin-bottom: 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        margin-bottom: 0;
 | 
			
		||||
      }
 | 
			
		||||
    & > header {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      font-weight: 600;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      flex-direction: column;
 | 
			
		||||
 | 
			
		||||
      & > header {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          font-weight: 400;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          margin-top: 10px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .time {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
        margin: 46px 0;
 | 
			
		||||
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          font-size: 60px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          line-height: 84px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 22px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .arrow {
 | 
			
		||||
        width: 28px;
 | 
			
		||||
        height: 68px;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        transform: rotate(180deg);
 | 
			
		||||
 | 
			
		||||
        &:before, &:after {
 | 
			
		||||
          content: "";
 | 
			
		||||
          width: 50px;
 | 
			
		||||
          height: 50px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          transform: scaleY(1.3) translate(30%, -40px) rotate(45deg);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:before {
 | 
			
		||||
          top: 59px;
 | 
			
		||||
          background-color: #CCCCCC;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          left: 7px;
 | 
			
		||||
          top: 59px;
 | 
			
		||||
          background-color: #FFFFFF;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        flex-wrap: nowrap;
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          flex-shrink: 0;
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #343D65;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .tag {
 | 
			
		||||
        width: 112px;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        background-repeat: no-repeat !important;
 | 
			
		||||
        background-size: 100% 100% !important;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        top: 0;
 | 
			
		||||
        right: 0;
 | 
			
		||||
      & > span:last-child {
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        margin-top: 10px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .time {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      flex-direction: column;
 | 
			
		||||
      margin: 46px 0;
 | 
			
		||||
 | 
			
		||||
      & > span:first-child {
 | 
			
		||||
        font-size: 60px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        line-height: 84px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > span:last-child {
 | 
			
		||||
        font-size: 22px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .arrow {
 | 
			
		||||
      width: 28px;
 | 
			
		||||
      height: 68px;
 | 
			
		||||
      overflow: hidden;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      transform: rotate(180deg);
 | 
			
		||||
 | 
			
		||||
      &:before, &:after {
 | 
			
		||||
        content: "";
 | 
			
		||||
        width: 50px;
 | 
			
		||||
        height: 50px;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        transform: scaleY(1.3) translate(30%, -40px) rotate(45deg);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      &:before {
 | 
			
		||||
        top: 59px;
 | 
			
		||||
        background-color: #CCCCCC;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      &:after {
 | 
			
		||||
        left: 7px;
 | 
			
		||||
        top: 59px;
 | 
			
		||||
        background-color: #FFFFFF;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .info {
 | 
			
		||||
      flex-wrap: nowrap;
 | 
			
		||||
 | 
			
		||||
      & > span:first-child {
 | 
			
		||||
        flex-shrink: 0;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > span:last-child {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #343D65;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .tag {
 | 
			
		||||
      width: 112px;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      background-repeat: no-repeat !important;
 | 
			
		||||
      background-size: 100% 100% !important;
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      top: 0;
 | 
			
		||||
      right: 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,9 +2,10 @@
 | 
			
		||||
  <div class="meeting">
 | 
			
		||||
    <ai-top-fixed>
 | 
			
		||||
      <u-grid :col="3" :border="false">
 | 
			
		||||
        <u-grid-item v-for="(item,index) in grid" :key="index" :custom-style="{padding:'14px 0'}" @click="handleClick(index)">
 | 
			
		||||
        <u-grid-item v-for="(item,index) in grid" :key="index" :custom-style="{padding:'14px 0'}"
 | 
			
		||||
                     @click="handleClick(index)">
 | 
			
		||||
          <u-icon :name="item.icon" :size="64"></u-icon>
 | 
			
		||||
          <view class="label">{{item.label}}</view>
 | 
			
		||||
          <view class="label">{{ item.label }}</view>
 | 
			
		||||
        </u-grid-item>
 | 
			
		||||
      </u-grid>
 | 
			
		||||
    </ai-top-fixed>
 | 
			
		||||
@@ -12,26 +13,26 @@
 | 
			
		||||
      <header>待参加的会议</header>
 | 
			
		||||
      <template v-if="meetingList.length">
 | 
			
		||||
        <div class="card" v-for="(item,index) in meetingList" :key="index" @click="detail(item)">
 | 
			
		||||
          <header>{{item.title}}</header>
 | 
			
		||||
          <header>{{ item.title }}</header>
 | 
			
		||||
          <u-row justify="between">
 | 
			
		||||
            <div class="time">
 | 
			
		||||
              <span>{{item.startTime|format}}</span>
 | 
			
		||||
              <span>{{item.startTime|formatDate(0)}}年{{item.startTime|formatDate(1)}}月{{item.startTime|formatDate(2)}}日 周{{item.startTime|formatWeek}}</span>
 | 
			
		||||
              <span>{{ item.startTime|format }}</span>
 | 
			
		||||
              <span>{{ item.startTime|formatDate(0) }}年{{ item.startTime|formatDate(1) }}月{{ item.startTime|formatDate(2) }}日 周{{ item.startTime|formatWeek }}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="arrow"></div>
 | 
			
		||||
            <div class="time">
 | 
			
		||||
              <span>{{item.endTime|format}}</span>
 | 
			
		||||
              <span>{{item.endTime|formatDate(0)}}年{{item.endTime|formatDate(1)}}月{{item.endTime|formatDate(2)}}日 周{{item.endTime|formatWeek}}</span>
 | 
			
		||||
              <span>{{ item.endTime|format }}</span>
 | 
			
		||||
              <span>{{ item.endTime|formatDate(0) }}年{{ item.endTime|formatDate(1) }}月{{ item.endTime|formatDate(2) }}日 周{{ item.endTime|formatWeek }}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
          </u-row>
 | 
			
		||||
          <u-row class="info">
 | 
			
		||||
            <span>发起人员:</span>
 | 
			
		||||
            <span>{{item.userName}}</span>
 | 
			
		||||
            <span>{{ item.userName }}</span>
 | 
			
		||||
          </u-row>
 | 
			
		||||
          <u-gap height="20"></u-gap>
 | 
			
		||||
          <u-row class="info">
 | 
			
		||||
            <span>会议地点:</span>
 | 
			
		||||
            <span>{{item.address}}</span>
 | 
			
		||||
            <span>{{ item.address }}</span>
 | 
			
		||||
          </u-row>
 | 
			
		||||
          <div class="tag" :style="{background:'url(' + $cdn + tag(item.joinStatus) + ')'}"></div>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -46,209 +47,210 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiEmpty from "../../components/AiEmpty";
 | 
			
		||||
  import AiTopFixed from "../../components/AiTopFixed";
 | 
			
		||||
  import AiAdd from "../../components/AiAdd";
 | 
			
		||||
import AiEmpty from "../../components/AiEmpty";
 | 
			
		||||
import AiTopFixed from "../../components/AiTopFixed";
 | 
			
		||||
import AiAdd from "../../components/AiAdd";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "meetingNotice",
 | 
			
		||||
    components: {AiEmpty, AiTopFixed, AiAdd},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        meetingList:[]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    computed: {
 | 
			
		||||
      grid() {
 | 
			
		||||
        return [
 | 
			
		||||
          {
 | 
			
		||||
            icon: this.$cdn + "/common/iconlshy.png",
 | 
			
		||||
            label: "历史会议"
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            icon: this.$cdn + "/common/iconwfqd.png",
 | 
			
		||||
            label: "我发起的"
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            icon: this.$cdn + "/common/iconcgx.png",
 | 
			
		||||
            label: "草稿箱"
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      tag(status){
 | 
			
		||||
        return {
 | 
			
		||||
          "0":"common/1wqr.png",
 | 
			
		||||
          "1":"common/1yqr.png",
 | 
			
		||||
          "2":"common/1yqj.png",
 | 
			
		||||
        }[status]
 | 
			
		||||
      },
 | 
			
		||||
      detail({id}){
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url:"/pages/meetingNotice/components/detail?id=" + id
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      getData() {
 | 
			
		||||
        this.$http.post("/app/appmeetinginfo/list", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            listType: "1",
 | 
			
		||||
            meetingStatus: "1|2",
 | 
			
		||||
            size: 999
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res=>{
 | 
			
		||||
          if(res && res.data){
 | 
			
		||||
            this.meetingList = res.data.records
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      handleClick(index){
 | 
			
		||||
        let url
 | 
			
		||||
        if(index==0 || index==2){
 | 
			
		||||
          url="/pages/meetingNotice/components/meetingList?index=" + index
 | 
			
		||||
        }else if(index==1){
 | 
			
		||||
          url="/pages/meetingNotice/components/belongToMe"
 | 
			
		||||
        }
 | 
			
		||||
        uni.navigateTo({url})
 | 
			
		||||
      },
 | 
			
		||||
      add() {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url:"/pages/meetingNotice/components/addMeeting"
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    filters:{
 | 
			
		||||
      format(date){
 | 
			
		||||
        return date.split(" ")[1].substr(0,5)
 | 
			
		||||
      },
 | 
			
		||||
      formatDate(date,index){
 | 
			
		||||
        return date.split(" ")[0].split("-")[index]
 | 
			
		||||
      },
 | 
			
		||||
      formatWeek(date){
 | 
			
		||||
        return "日一二三四五六".charAt((new Date(date.split(" ")[0]).getDay()))
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onShow(){
 | 
			
		||||
     this.getData()
 | 
			
		||||
export default {
 | 
			
		||||
  name: "meetingNotice",
 | 
			
		||||
  components: {AiEmpty, AiTopFixed, AiAdd},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      meetingList: []
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    grid() {
 | 
			
		||||
      return [
 | 
			
		||||
        {
 | 
			
		||||
          icon: this.$cdn + "/common/iconlshy.png",
 | 
			
		||||
          label: "历史会议"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          icon: this.$cdn + "/common/iconwfqd.png",
 | 
			
		||||
          label: "我发起的"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          icon: this.$cdn + "/common/iconcgx.png",
 | 
			
		||||
          label: "草稿箱"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    tag(status) {
 | 
			
		||||
      return {
 | 
			
		||||
        "0": "common/1wqr.png",
 | 
			
		||||
        "1": "common/1yqr.png",
 | 
			
		||||
        "2": "common/1yqj.png",
 | 
			
		||||
      }[status]
 | 
			
		||||
    },
 | 
			
		||||
    detail({id}) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/meetingNotice/components/detail?id=" + id
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    getData() {
 | 
			
		||||
      this.$http.post("/app/appmeetinginfo/list", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          listType: "1",
 | 
			
		||||
          meetingStatus: "1|2",
 | 
			
		||||
          size: 999
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          this.meetingList = res.data.records
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    handleClick(index) {
 | 
			
		||||
      let url
 | 
			
		||||
      if (index == 0 || index == 2) {
 | 
			
		||||
        url = "/pages/meetingNotice/components/meetingList?index=" + index
 | 
			
		||||
      } else if (index == 1) {
 | 
			
		||||
        url = "/pages/meetingNotice/components/belongToMe"
 | 
			
		||||
      }
 | 
			
		||||
      uni.navigateTo({url})
 | 
			
		||||
    },
 | 
			
		||||
    add() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/meetingNotice/components/addMeeting"
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  filters: {
 | 
			
		||||
    format(date) {
 | 
			
		||||
      return date.split(" ")[1].substr(0, 5)
 | 
			
		||||
    },
 | 
			
		||||
    formatDate(date, index) {
 | 
			
		||||
      return date.split(" ")[0].split("-")[index]
 | 
			
		||||
    },
 | 
			
		||||
    formatWeek(date) {
 | 
			
		||||
      return "日一二三四五六".charAt((new Date(date.split(" ")[0]).getDay()))
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onShow() {
 | 
			
		||||
    this.getData()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .meeting {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background: #F5F5F5;
 | 
			
		||||
    padding-bottom: 48px;
 | 
			
		||||
.meeting {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background: #F5F5F5;
 | 
			
		||||
  padding-bottom: 48px;
 | 
			
		||||
 | 
			
		||||
    .label {
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
  .label {
 | 
			
		||||
    font-size: 28px;
 | 
			
		||||
    font-weight: 400;
 | 
			
		||||
    color: #333333;
 | 
			
		||||
    line-height: 48px;
 | 
			
		||||
    margin-top: 8px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .body {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 40px 32px;
 | 
			
		||||
 | 
			
		||||
    & > header {
 | 
			
		||||
      font-size: 36px;
 | 
			
		||||
      font-weight: 600;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      line-height: 48px;
 | 
			
		||||
      margin-top: 8px;
 | 
			
		||||
      margin-bottom: 38px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .body {
 | 
			
		||||
    .card {
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 40px 32px;
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        margin-bottom: 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > header {
 | 
			
		||||
        font-size: 36px;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        margin-bottom: 38px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .card {
 | 
			
		||||
        background-color: #FFFFFF;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 32px;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
      .time {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
        margin: 46px 0;
 | 
			
		||||
 | 
			
		||||
        &:last-child {
 | 
			
		||||
          margin-bottom: 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > header {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          font-size: 60px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          line-height: 84px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .time {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          flex-direction: column;
 | 
			
		||||
          margin: 46px 0;
 | 
			
		||||
 | 
			
		||||
          & > span:first-child {
 | 
			
		||||
            font-size: 60px;
 | 
			
		||||
            font-weight: 600;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            line-height: 84px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span:last-child {
 | 
			
		||||
            font-size: 22px;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .arrow {
 | 
			
		||||
          width: 28px;
 | 
			
		||||
          height: 68px;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
          position: relative;
 | 
			
		||||
          transform: rotate(180deg);
 | 
			
		||||
 | 
			
		||||
          &:before, &:after {
 | 
			
		||||
            content: "";
 | 
			
		||||
            width: 50px;
 | 
			
		||||
            height: 50px;
 | 
			
		||||
            position: absolute;
 | 
			
		||||
            transform: scaleY(1.3) translate(30%, -40px) rotate(45deg);
 | 
			
		||||
          }
 | 
			
		||||
          &:before {
 | 
			
		||||
            top: 59px;
 | 
			
		||||
            background-color: #CCCCCC;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &:after {
 | 
			
		||||
            left: 7px;
 | 
			
		||||
            top: 59px;
 | 
			
		||||
            background-color: #FFFFFF;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .info {
 | 
			
		||||
          & > span:first-child {
 | 
			
		||||
            font-size: 30px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span:last-child {
 | 
			
		||||
            font-size: 30px;
 | 
			
		||||
            color: #343D65;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .tag{
 | 
			
		||||
          width: 112px;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          background-repeat: no-repeat !important;
 | 
			
		||||
          background-size: 100% 100% !important;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          top: 0;
 | 
			
		||||
          right: 0;
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 22px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ::v-deep .content{
 | 
			
		||||
      padding: 0 !important;
 | 
			
		||||
      .arrow {
 | 
			
		||||
        width: 28px;
 | 
			
		||||
        height: 68px;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        transform: rotate(180deg);
 | 
			
		||||
 | 
			
		||||
        &:before, &:after {
 | 
			
		||||
          content: "";
 | 
			
		||||
          width: 50px;
 | 
			
		||||
          height: 50px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          transform: scaleY(1.3) translate(30%, -40px) rotate(45deg);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:before {
 | 
			
		||||
          top: 59px;
 | 
			
		||||
          background-color: #CCCCCC;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          left: 7px;
 | 
			
		||||
          top: 59px;
 | 
			
		||||
          background-color: #FFFFFF;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #343D65;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .tag {
 | 
			
		||||
        width: 112px;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        background-repeat: no-repeat !important;
 | 
			
		||||
        background-size: 100% 100% !important;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        top: 0;
 | 
			
		||||
        right: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ::v-deep .content {
 | 
			
		||||
    padding: 0 !important;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,8 @@
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="card">
 | 
			
		||||
        <AiUploader :multiple="true" type="image" :limit="9" placeholder="上传图片" @list="fileList" :def="form.files"></AiUploader>
 | 
			
		||||
        <AiUploader :multiple="true" type="image" :limit="9" placeholder="上传图片" @list="fileList"
 | 
			
		||||
                    :def="form.files"></AiUploader>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="card item-wrap" @click="select">
 | 
			
		||||
@@ -23,7 +24,7 @@
 | 
			
		||||
              <span>请选择</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template v-else>
 | 
			
		||||
              已选择<em>{{form.persons.map(e=>e.name).slice(0,2).join("、")}}</em>等<em>{{form.persons.length}}</em>人
 | 
			
		||||
              已选择<em>{{ form.persons.map(e => e.name).slice(0, 2).join("、") }}</em>等<em>{{ form.persons.length }}</em>人
 | 
			
		||||
            </template>
 | 
			
		||||
            <div class="right-arrow"></div>
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -36,7 +37,7 @@
 | 
			
		||||
          <div class="type" :class="[index==0 && 'active']" @click="index=0,form.releaseTime=null">立即发送
 | 
			
		||||
            <img :src="$cdn + 'notice/jiaobiao.png'" alt="" v-show="index==0">
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="type" :class="[index==1 && 'active']"  @click="index=1">定时发送
 | 
			
		||||
          <div class="type" :class="[index==1 && 'active']" @click="index=1">定时发送
 | 
			
		||||
            <img :src="$cdn + 'notice/jiaobiao.png'" alt="" v-show="index==1">
 | 
			
		||||
          </div>
 | 
			
		||||
        </u-row>
 | 
			
		||||
@@ -48,7 +49,7 @@
 | 
			
		||||
              <span>请选择</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template v-else>
 | 
			
		||||
              <span>{{form.releaseTime}}</span>
 | 
			
		||||
              <span>{{ form.releaseTime }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <div class="right-arrow"></div>
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -62,297 +63,299 @@
 | 
			
		||||
    </div>
 | 
			
		||||
    <AiBack ref="aiBack" v-if="!userSelect"/>
 | 
			
		||||
    <u-picker v-model="show" mode="time" :params="params" @confirm="confirm"></u-picker>
 | 
			
		||||
    <AiSelectEnterprise :visible.sync="userSelect" :value="form.persons" v-if="userSelect" @change="change"></AiSelectEnterprise>
 | 
			
		||||
    <AiSelectEnterprise :visible.sync="userSelect" :value="form.persons" v-if="userSelect"
 | 
			
		||||
                        @change="change"></AiSelectEnterprise>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
  import AiSelectEnterprise from "../../../components/AiSelectEnterprise";
 | 
			
		||||
  import AiUploader from "../../../components/AiUploader";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
import AiSelectEnterprise from "../../../components/AiSelectEnterprise";
 | 
			
		||||
import AiUploader from "../../../components/AiUploader";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "add",
 | 
			
		||||
    components: {AiBack,AiSelectEnterprise,AiUploader},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        show: false,
 | 
			
		||||
        index: 0,
 | 
			
		||||
        list: [],
 | 
			
		||||
        form: {
 | 
			
		||||
          id: null,
 | 
			
		||||
          title: "",
 | 
			
		||||
          content: "",
 | 
			
		||||
          persons: [],
 | 
			
		||||
          releaseTime:null,
 | 
			
		||||
          files: [],
 | 
			
		||||
        },
 | 
			
		||||
        userSelect: false,
 | 
			
		||||
        params: {
 | 
			
		||||
          year: true,
 | 
			
		||||
          month: true,
 | 
			
		||||
          day: true,
 | 
			
		||||
          hour: true,
 | 
			
		||||
          minute: true,
 | 
			
		||||
          second: true,
 | 
			
		||||
          timestamp: true,
 | 
			
		||||
        },
 | 
			
		||||
        flag: null,
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(opt) {
 | 
			
		||||
      if(opt.id) {
 | 
			
		||||
        this.form.id = opt.id;
 | 
			
		||||
        this.flag = opt.flag;
 | 
			
		||||
        this.getDetail();
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      confirm(e){
 | 
			
		||||
        if(e.timestamp< (Date.now()/1000)|0){
 | 
			
		||||
          return this.$u.toast("发送时间不能小于当前时间");
 | 
			
		||||
        }
 | 
			
		||||
        this.form.releaseTime = `${e.year}-${e.month}-${e.day} ${e.hour}:${e.minute}:${e.second}`;
 | 
			
		||||
export default {
 | 
			
		||||
  name: "add",
 | 
			
		||||
  components: {AiBack, AiSelectEnterprise, AiUploader},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      show: false,
 | 
			
		||||
      index: 0,
 | 
			
		||||
      list: [],
 | 
			
		||||
      form: {
 | 
			
		||||
        id: null,
 | 
			
		||||
        title: "",
 | 
			
		||||
        content: "",
 | 
			
		||||
        persons: [],
 | 
			
		||||
        releaseTime: null,
 | 
			
		||||
        files: [],
 | 
			
		||||
      },
 | 
			
		||||
      fileList(e){
 | 
			
		||||
        this.form.files = e
 | 
			
		||||
      },
 | 
			
		||||
      change(e){
 | 
			
		||||
        this.form.persons = e
 | 
			
		||||
      },
 | 
			
		||||
      getDetail(){
 | 
			
		||||
        this.$http.post("/app/appannouncement/detail",null,{
 | 
			
		||||
          params:{
 | 
			
		||||
            id:this.form.id,
 | 
			
		||||
            detail: this.flag
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res=>{
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            this.form.releaseTime = res.data.releaseTime;
 | 
			
		||||
            Object.keys(this.form).map(e=>{
 | 
			
		||||
              this.form[e] =  res.data[e];
 | 
			
		||||
            })
 | 
			
		||||
            this.index = res.data.releaseTime ? 1 : 0;
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      add(status) {
 | 
			
		||||
        if(status==1){
 | 
			
		||||
          if (!this.form.title) return this.$u.toast("请输入会议标题")
 | 
			
		||||
 | 
			
		||||
          if (!this.form.content) return this.$u.toast("请输入会议内容")
 | 
			
		||||
 | 
			
		||||
          if(!this.form.persons.length) return this.$u.toast("请选择发送对象")
 | 
			
		||||
 | 
			
		||||
          if(this.index==1 && !this.form.releaseTime) return this.$u.toast("请选择定时发送时间")
 | 
			
		||||
 | 
			
		||||
          if(this.form.releaseTime && new Date(this.form.releaseTime).getTime() < Date.now()) return this.$u.toast("发送时间不能小于当前时间");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.$http.post("/app/appannouncement/addOrUpdate", {
 | 
			
		||||
          ...this.form,
 | 
			
		||||
          status,
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            this.$u.toast(status == 1 ? "发布成功" : "保存成功")
 | 
			
		||||
            this.$refs["aiBack"].back()
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      select() {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/meetingNotice/components/notice"
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    computed:{
 | 
			
		||||
      background(){
 | 
			
		||||
        return `url(${this.$cdn}/notice/jiaobiao.png) no-repeat; background-size: 46px 48px;position: absolute;bottom: 0;right: 0;`
 | 
			
		||||
      userSelect: false,
 | 
			
		||||
      params: {
 | 
			
		||||
        year: true,
 | 
			
		||||
        month: true,
 | 
			
		||||
        day: true,
 | 
			
		||||
        hour: true,
 | 
			
		||||
        minute: true,
 | 
			
		||||
        second: true,
 | 
			
		||||
        timestamp: true,
 | 
			
		||||
      },
 | 
			
		||||
      flag: null,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(opt) {
 | 
			
		||||
    if (opt.id) {
 | 
			
		||||
      this.form.id = opt.id;
 | 
			
		||||
      this.flag = opt.flag;
 | 
			
		||||
      this.getDetail();
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    confirm(e) {
 | 
			
		||||
      if (e.timestamp < (Date.now() / 1000) | 0) {
 | 
			
		||||
        return this.$u.toast("发送时间不能小于当前时间");
 | 
			
		||||
      }
 | 
			
		||||
      this.form.releaseTime = `${e.year}-${e.month}-${e.day} ${e.hour}:${e.minute}:${e.second}`;
 | 
			
		||||
    },
 | 
			
		||||
    fileList(e) {
 | 
			
		||||
      this.form.files = e
 | 
			
		||||
    },
 | 
			
		||||
    change(e) {
 | 
			
		||||
      this.form.persons = e
 | 
			
		||||
    },
 | 
			
		||||
    getDetail() {
 | 
			
		||||
      this.$http.post("/app/appannouncement/detail", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          id: this.form.id,
 | 
			
		||||
          detail: this.flag
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          this.form.releaseTime = res.data.releaseTime;
 | 
			
		||||
          Object.keys(this.form).map(e => {
 | 
			
		||||
            this.form[e] = res.data[e];
 | 
			
		||||
          })
 | 
			
		||||
          this.index = res.data.releaseTime ? 1 : 0;
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    add(status) {
 | 
			
		||||
      if (status == 1) {
 | 
			
		||||
        if (!this.form.title) return this.$u.toast("请输入会议标题")
 | 
			
		||||
 | 
			
		||||
        if (!this.form.content) return this.$u.toast("请输入会议内容")
 | 
			
		||||
 | 
			
		||||
        if (!this.form.persons.length) return this.$u.toast("请选择发送对象")
 | 
			
		||||
 | 
			
		||||
        if (this.index == 1 && !this.form.releaseTime) return this.$u.toast("请选择定时发送时间")
 | 
			
		||||
 | 
			
		||||
        if (this.form.releaseTime && new Date(this.form.releaseTime).getTime() < Date.now()) return this.$u.toast("发送时间不能小于当前时间");
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.$http.post("/app/appannouncement/addOrUpdate", {
 | 
			
		||||
        ...this.form,
 | 
			
		||||
        status,
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.$u.toast(status == 1 ? "发布成功" : "保存成功")
 | 
			
		||||
          this.$refs["aiBack"].back()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    select() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/meetingNotice/components/notice"
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    background() {
 | 
			
		||||
      return `url(${this.$cdn}/notice/jiaobiao.png) no-repeat; background-size: 46px 48px;position: absolute;bottom: 0;right: 0;`
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .add-meeting {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background: #F5F5F5;
 | 
			
		||||
    padding-bottom: 140px;
 | 
			
		||||
.add-meeting {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background: #F5F5F5;
 | 
			
		||||
  padding-bottom: 140px;
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
      margin-top: 16px;
 | 
			
		||||
  .card {
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
    margin-top: 16px;
 | 
			
		||||
 | 
			
		||||
      header {
 | 
			
		||||
    header {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
 | 
			
		||||
      em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        color: #FF4466;
 | 
			
		||||
        margin-right: 8px;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    input {
 | 
			
		||||
      margin: 32px 0 16px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 0 16px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 160px;
 | 
			
		||||
      margin: 32px 0 16px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 0 16px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .u-row {
 | 
			
		||||
      margin-top: 34px;
 | 
			
		||||
 | 
			
		||||
      .time {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          font-size: 60px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          line-height: 84px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 22px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .arrow {
 | 
			
		||||
        width: 28px;
 | 
			
		||||
        height: 68px;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        transform: rotate(180deg);
 | 
			
		||||
 | 
			
		||||
        &:before, &:after {
 | 
			
		||||
          content: "";
 | 
			
		||||
          width: 50px;
 | 
			
		||||
          height: 50px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          transform: scaleY(1.3) translate(30%, -40px) rotate(45deg);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:before {
 | 
			
		||||
          top: 59px;
 | 
			
		||||
          background-color: #CCCCCC;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          left: 7px;
 | 
			
		||||
          top: 59px;
 | 
			
		||||
          background-color: #FFFFFF;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .type {
 | 
			
		||||
        width: 320px;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        background: #F5F5F5;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        border-radius: 4px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
        letter-spacing: 1px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
 | 
			
		||||
        & > img {
 | 
			
		||||
          width: 46px;
 | 
			
		||||
          height: 48px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          right: 0;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .active {
 | 
			
		||||
        background-color: #E7F1FE;
 | 
			
		||||
        color: #1174FE;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      box-shadow: 0px -1px 0px 0px #D8DDE6;
 | 
			
		||||
      margin-top: 0;
 | 
			
		||||
 | 
			
		||||
      .right {
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
 | 
			
		||||
        em {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #FF4466;
 | 
			
		||||
          margin-right: 8px;
 | 
			
		||||
          vertical-align: middle;
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      input {
 | 
			
		||||
        margin: 32px 0 16px;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 0 16px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        height: 160px;
 | 
			
		||||
        margin: 32px 0 16px;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 0 16px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-row {
 | 
			
		||||
        margin-top: 34px;
 | 
			
		||||
 | 
			
		||||
        .time {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          flex-direction: column;
 | 
			
		||||
 | 
			
		||||
          & > span:first-child {
 | 
			
		||||
            font-size: 60px;
 | 
			
		||||
            font-weight: 600;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            line-height: 84px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span:last-child {
 | 
			
		||||
            font-size: 22px;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .arrow {
 | 
			
		||||
          width: 28px;
 | 
			
		||||
          height: 68px;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
          position: relative;
 | 
			
		||||
          transform: rotate(180deg);
 | 
			
		||||
 | 
			
		||||
          &:before, &:after {
 | 
			
		||||
            content: "";
 | 
			
		||||
            width: 50px;
 | 
			
		||||
            height: 50px;
 | 
			
		||||
            position: absolute;
 | 
			
		||||
            transform: scaleY(1.3) translate(30%, -40px) rotate(45deg);
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &:before {
 | 
			
		||||
            top: 59px;
 | 
			
		||||
            background-color: #CCCCCC;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &:after {
 | 
			
		||||
            left: 7px;
 | 
			
		||||
            top: 59px;
 | 
			
		||||
            background-color: #FFFFFF;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .type{
 | 
			
		||||
          width: 320px;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          background: #F5F5F5;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          border-radius: 4px;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: center;
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
          letter-spacing: 1px;
 | 
			
		||||
          position: relative;
 | 
			
		||||
 | 
			
		||||
          & > img{
 | 
			
		||||
            width: 46px;
 | 
			
		||||
            height: 48px;
 | 
			
		||||
            position: absolute;
 | 
			
		||||
            right: 0;
 | 
			
		||||
            bottom: 0;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        .active{
 | 
			
		||||
          background-color: #E7F1FE;
 | 
			
		||||
          color: #1174FE;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item {
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        box-shadow: 0px -1px 0px 0px #D8DDE6;
 | 
			
		||||
        margin-top: 0;
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          em {
 | 
			
		||||
            font-style: normal;
 | 
			
		||||
            color: #1365DD;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right-arrow {
 | 
			
		||||
          width: 16px;
 | 
			
		||||
          height: 16px;
 | 
			
		||||
          display: inline-block;
 | 
			
		||||
          border-top: 5px solid #CCCCCC;
 | 
			
		||||
          border-right: 5px solid #CCCCCC;
 | 
			
		||||
          transform: rotate(45deg);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item-wrap {
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .footer {
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
 | 
			
		||||
      & > div {
 | 
			
		||||
        font-size: 36px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > div:first-child {
 | 
			
		||||
        width: 270px;
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > div:last-child {
 | 
			
		||||
        width: calc(100% - 270px);
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        color: #FFFFFF;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        background-color: #1365DD;
 | 
			
		||||
      .right-arrow {
 | 
			
		||||
        width: 16px;
 | 
			
		||||
        height: 16px;
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        border-top: 5px solid #CCCCCC;
 | 
			
		||||
        border-right: 5px solid #CCCCCC;
 | 
			
		||||
        transform: rotate(45deg);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .item-wrap {
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .footer {
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
 | 
			
		||||
    & > div {
 | 
			
		||||
      font-size: 36px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > div:first-child {
 | 
			
		||||
      width: 270px;
 | 
			
		||||
      height: 100%;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > div:last-child {
 | 
			
		||||
      width: calc(100% - 270px);
 | 
			
		||||
      height: 100%;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      background-color: #1365DD;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -2,21 +2,21 @@
 | 
			
		||||
  <div class="detail">
 | 
			
		||||
    <template v-if="detailObj">
 | 
			
		||||
      <div class="card">
 | 
			
		||||
        <header>{{detailObj.title}}</header>
 | 
			
		||||
        <header>{{ detailObj.title }}</header>
 | 
			
		||||
        <u-gap height="16"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>发布人:</span>
 | 
			
		||||
          <span>{{detailObj.releaseUserName}}</span>
 | 
			
		||||
          <span>{{ detailObj.releaseUserName }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>发布部门:</span>
 | 
			
		||||
          <span>{{detailObj.unitName}}</span>
 | 
			
		||||
          <span>{{ detailObj.unitName }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>发布日期:</span>
 | 
			
		||||
          <span>{{detailObj.releaseTime}}</span>
 | 
			
		||||
          <span>{{ detailObj.releaseTime }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -32,9 +32,9 @@
 | 
			
		||||
          <u-row justify="between">
 | 
			
		||||
            <label class="left">
 | 
			
		||||
              <img :src="$cdn + 'common/appendix.png'" alt="">
 | 
			
		||||
              <span>{{item.name}}.{{item.postfix}}</span>
 | 
			
		||||
              <span>{{ item.name }}.{{ item.postfix }}</span>
 | 
			
		||||
            </label>
 | 
			
		||||
            <span>{{(item.size/1024).toFixed(2)}}KB</span>
 | 
			
		||||
            <span>{{ (item.size / 1024).toFixed(2) }}KB</span>
 | 
			
		||||
          </u-row>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -43,303 +43,303 @@
 | 
			
		||||
        <u-row justify="between" class="item">
 | 
			
		||||
          <span>接收对象</span>
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <em>{{detailObj.readNum}}人</em>已读
 | 
			
		||||
            <em>{{detailObj.unReadNum}}人</em>未读
 | 
			
		||||
            <em>{{ detailObj.readNum }}人</em>已读
 | 
			
		||||
            <em>{{ detailObj.unReadNum }}人</em>未读
 | 
			
		||||
            <div class="arrow"></div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </u-row>
 | 
			
		||||
      </div>
 | 
			
		||||
    </template>
 | 
			
		||||
    <AiEmpty description="该通知已撤回" v-else/>
 | 
			
		||||
    <AiBack />
 | 
			
		||||
    <AiBack/>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
  import {mapActions} from "vuex";
 | 
			
		||||
  import AiEmpty from "../../../components/AiEmpty";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
import {mapActions} from "vuex";
 | 
			
		||||
import AiEmpty from "../../../components/AiEmpty";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "detail",
 | 
			
		||||
    components:{AiBack,AiEmpty},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        detailObj: null,
 | 
			
		||||
        id: null,
 | 
			
		||||
        flag: null,
 | 
			
		||||
export default {
 | 
			
		||||
  name: "detail",
 | 
			
		||||
  components: {AiBack, AiEmpty},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      detailObj: null,
 | 
			
		||||
      id: null,
 | 
			
		||||
      flag: null,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(opt) {
 | 
			
		||||
    this.id = opt.id;
 | 
			
		||||
    this.flag = opt.flag;
 | 
			
		||||
    this.getDetail();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    ...mapActions(['previewFile', 'injectJWeixin']),
 | 
			
		||||
    preFile(e) {
 | 
			
		||||
      if ([".jpg", ".png", ".gif"].includes(e.postfix.toLowerCase())) {
 | 
			
		||||
        uni.previewImage({
 | 
			
		||||
          current: e.url,
 | 
			
		||||
          urls: [e.url]
 | 
			
		||||
        })
 | 
			
		||||
      } else {
 | 
			
		||||
        this.previewFile({...e})
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(opt){
 | 
			
		||||
      this.id = opt.id;
 | 
			
		||||
      this.flag = opt.flag;
 | 
			
		||||
      this.getDetail();
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      ...mapActions(['previewFile', 'injectJWeixin']),
 | 
			
		||||
      preFile(e) {
 | 
			
		||||
        if([".jpg",".png",".gif"].includes(e.postfix.toLowerCase())){
 | 
			
		||||
          uni.previewImage({
 | 
			
		||||
            current: e.url,
 | 
			
		||||
            urls: [e.url]
 | 
			
		||||
          })
 | 
			
		||||
        }else {
 | 
			
		||||
          this.previewFile({...e})
 | 
			
		||||
    getDetail() {
 | 
			
		||||
      this.$http.post("/app/appannouncement/detail", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          id: this.id,
 | 
			
		||||
          detail: this.flag
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      getDetail() {
 | 
			
		||||
        this.$http.post("/app/appannouncement/detail", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            id: this.id,
 | 
			
		||||
            detail: this.flag
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res=>{
 | 
			
		||||
          if(res && res.data){
 | 
			
		||||
            this.detailObj = res.data;
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      handleClick() {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url:"/pages/notification/components/read?id=" + this.id,
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          this.detailObj = res.data;
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
    handleClick() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/notification/components/read?id=" + this.id,
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .detail {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
    padding-bottom: 140px;
 | 
			
		||||
.detail {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #F5F5F5;
 | 
			
		||||
  padding-bottom: 140px;
 | 
			
		||||
 | 
			
		||||
    ::v-deep .content {
 | 
			
		||||
      padding: 0;
 | 
			
		||||
  ::v-deep .content {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .card {
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    margin-bottom: 8px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 16px 32px;
 | 
			
		||||
 | 
			
		||||
    header {
 | 
			
		||||
      font-size: 40px;
 | 
			
		||||
      font-weight: 600;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      line-height: 64px;
 | 
			
		||||
      letter-spacing: 1px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      margin-bottom: 8px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 16px 32px;
 | 
			
		||||
 | 
			
		||||
      header {
 | 
			
		||||
        font-size: 40px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        line-height: 64px;
 | 
			
		||||
        letter-spacing: 1px;
 | 
			
		||||
    .u-row {
 | 
			
		||||
      & > div {
 | 
			
		||||
        border-radius: 50%;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        font-size: 22px;
 | 
			
		||||
        font-weight: bold;
 | 
			
		||||
        color: #FFFFFF;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-row {
 | 
			
		||||
        & > div {
 | 
			
		||||
          border-radius: 50%;
 | 
			
		||||
          text-align: center;
 | 
			
		||||
          font-size: 22px;
 | 
			
		||||
          font-weight: bold;
 | 
			
		||||
          color: #FFFFFF;
 | 
			
		||||
      & > span:first-child {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #999999;;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > span:last-child {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #343D65;
 | 
			
		||||
        margin-left: 16px;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .title {
 | 
			
		||||
        width: 490px;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        text-overflow: ellipsis;
 | 
			
		||||
        white-space: nowrap;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .right {
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        color: #666666;
 | 
			
		||||
 | 
			
		||||
        .arrow {
 | 
			
		||||
          width: 16px;
 | 
			
		||||
          height: 16px;
 | 
			
		||||
          border-top: 3px solid #CCCCCC;
 | 
			
		||||
          border-right: 3px solid #CCCCCC;
 | 
			
		||||
          transform: rotate(45deg);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      position: relative;
 | 
			
		||||
      height: 80px;
 | 
			
		||||
 | 
			
		||||
      &:after {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        height: 1px;
 | 
			
		||||
        background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
        content: "";
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        left: 0;
 | 
			
		||||
        bottom: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > span {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      line-height: 48px;
 | 
			
		||||
      letter-spacing: 1px;
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .label {
 | 
			
		||||
      height: 80px;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
 | 
			
		||||
      & > em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .file {
 | 
			
		||||
      height: 128px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
      border: 1px solid #CCCCCC;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 0 16px;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
      & > .u-row {
 | 
			
		||||
        height: 100%;
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          width: 476px;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: center;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;;
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
        }
 | 
			
		||||
          & > img {
 | 
			
		||||
            flex-shrink: 0;
 | 
			
		||||
            width: 96px;
 | 
			
		||||
            height: 96px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #343D65;
 | 
			
		||||
          margin-left: 16px;
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .title {
 | 
			
		||||
          width: 490px;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
          text-overflow: ellipsis;
 | 
			
		||||
          white-space: nowrap;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          color: #666666;
 | 
			
		||||
 | 
			
		||||
          .arrow {
 | 
			
		||||
            width: 16px;
 | 
			
		||||
            height: 16px;
 | 
			
		||||
            border-top: 3px solid #CCCCCC;
 | 
			
		||||
            border-right: 3px solid #CCCCCC;
 | 
			
		||||
            transform: rotate(45deg);
 | 
			
		||||
          & > span {
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            display: inline-block;
 | 
			
		||||
            line-height: 44px;
 | 
			
		||||
            overflow: hidden;
 | 
			
		||||
            text-overflow: ellipsis;
 | 
			
		||||
            display: -webkit-box;
 | 
			
		||||
            -webkit-box-orient: vertical;
 | 
			
		||||
            -webkit-line-clamp: 2;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item {
 | 
			
		||||
        position: relative;
 | 
			
		||||
        height: 80px;
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          height: 1px;
 | 
			
		||||
          background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
          content: "";
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
        & > span {
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      & > span {
 | 
			
		||||
    .active {
 | 
			
		||||
      background-color: #F3F6F9;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > text {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      color: #649EFD;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .progress {
 | 
			
		||||
      height: 12px;
 | 
			
		||||
      background: #F2F4FC;
 | 
			
		||||
      border-radius: 12px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      margin: 16px 0 64px 0;
 | 
			
		||||
 | 
			
		||||
      .pro-active {
 | 
			
		||||
        height: 12px;
 | 
			
		||||
        background: #639EFD;
 | 
			
		||||
        border-radius: 12px;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        left: 0;
 | 
			
		||||
        top: 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    em {
 | 
			
		||||
      font-style: normal;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      color: #1365DD;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ::v-deep .u-collapse {
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
      &:after {
 | 
			
		||||
        content: "";
 | 
			
		||||
        width: 718px;
 | 
			
		||||
        height: 1px;
 | 
			
		||||
        background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        left: 0;
 | 
			
		||||
        bottom: 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-collapse-head {
 | 
			
		||||
        padding: 40px 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-collapse-content {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
        letter-spacing: 1px;
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .label {
 | 
			
		||||
        height: 80px;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 16px;
 | 
			
		||||
 | 
			
		||||
        & > em {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .file {
 | 
			
		||||
        height: 128px;
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
        border: 1px solid #CCCCCC;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 0 16px;
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
        & > .u-row {
 | 
			
		||||
          height: 100%;
 | 
			
		||||
 | 
			
		||||
          .left {
 | 
			
		||||
            width: 476px;
 | 
			
		||||
            display: flex;
 | 
			
		||||
            align-items: center;
 | 
			
		||||
 | 
			
		||||
            & > img {
 | 
			
		||||
              flex-shrink: 0;
 | 
			
		||||
              width: 96px;
 | 
			
		||||
              height: 96px;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            & > span {
 | 
			
		||||
              font-size: 32px;
 | 
			
		||||
              color: #333333;
 | 
			
		||||
              display: inline-block;
 | 
			
		||||
              line-height: 44px;
 | 
			
		||||
              overflow: hidden;
 | 
			
		||||
              text-overflow: ellipsis;
 | 
			
		||||
              display: -webkit-box;
 | 
			
		||||
              -webkit-box-orient: vertical;
 | 
			
		||||
              -webkit-line-clamp: 2;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span {
 | 
			
		||||
            font-size: 28px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .active {
 | 
			
		||||
        background-color: #F3F6F9;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > text {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #649EFD;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .progress {
 | 
			
		||||
        height: 12px;
 | 
			
		||||
        background: #F2F4FC;
 | 
			
		||||
        border-radius: 12px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        margin: 16px 0 64px 0;
 | 
			
		||||
 | 
			
		||||
        .pro-active {
 | 
			
		||||
          height: 12px;
 | 
			
		||||
          background: #639EFD;
 | 
			
		||||
          border-radius: 12px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          top: 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      ::v-deep .u-collapse {
 | 
			
		||||
        position: relative;
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          content: "";
 | 
			
		||||
          width: 718px;
 | 
			
		||||
          height: 1px;
 | 
			
		||||
          background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .u-collapse-head {
 | 
			
		||||
          padding: 40px 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .u-collapse-content {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
          letter-spacing: 1px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .footer {
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      background: #1365DD;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      font-size: 36px;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .footer {
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    background: #1365DD;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    font-size: 36px;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@
 | 
			
		||||
    <div class="body">
 | 
			
		||||
      <div class="item" v-for="(item,index) in (current==0 ? list.read : list.unRead)" :key="index">
 | 
			
		||||
        <u-avatar :src="item.avatar" mode="square" size="76"></u-avatar>
 | 
			
		||||
        <span class="name">{{item.name}}</span>
 | 
			
		||||
        <span class="name">{{ item.name }}</span>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <AiBack/>
 | 
			
		||||
@@ -14,80 +14,80 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
  import AiTopFixed from "../../../components/AiTopFixed";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
import AiTopFixed from "../../../components/AiTopFixed";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "read",
 | 
			
		||||
    components: {AiBack, AiTopFixed},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        current: 0,
 | 
			
		||||
        id: null,
 | 
			
		||||
        list: [],
 | 
			
		||||
      }
 | 
			
		||||
export default {
 | 
			
		||||
  name: "read",
 | 
			
		||||
  components: {AiBack, AiTopFixed},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      current: 0,
 | 
			
		||||
      id: null,
 | 
			
		||||
      list: [],
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(opt) {
 | 
			
		||||
    this.id = opt.id;
 | 
			
		||||
    this.getList();
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$http.post("/app/appannouncementreader/list-unread", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          id: this.id
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          this.list = res.data;
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(opt) {
 | 
			
		||||
      this.id = opt.id;
 | 
			
		||||
    change(val) {
 | 
			
		||||
      this.current = val;
 | 
			
		||||
      this.getList();
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      getList() {
 | 
			
		||||
        this.$http.post("/app/appannouncementreader/list-unread",null,{
 | 
			
		||||
          params:{
 | 
			
		||||
            id:this.id
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            this.list = res.data;
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      change(val) {
 | 
			
		||||
        this.current = val;
 | 
			
		||||
        this.getList();
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    computed: {
 | 
			
		||||
      tabs() {
 | 
			
		||||
        return [
 | 
			
		||||
          {name: this.list?.read?.length + "人已读"},
 | 
			
		||||
          {name: this.list?.unRead?.length + "人未读"},
 | 
			
		||||
        ];
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    tabs() {
 | 
			
		||||
      return [
 | 
			
		||||
        {name: this.list?.read?.length + "人已读"},
 | 
			
		||||
        {name: this.list?.unRead?.length + "人未读"},
 | 
			
		||||
      ];
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .read {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
.read {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #F5F5F5;
 | 
			
		||||
 | 
			
		||||
    ::v-deep .content{
 | 
			
		||||
      padding: 0 !important;
 | 
			
		||||
    }
 | 
			
		||||
  ::v-deep .content {
 | 
			
		||||
    padding: 0 !important;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .body {
 | 
			
		||||
      padding: 16px 0;
 | 
			
		||||
  .body {
 | 
			
		||||
    padding: 16px 0;
 | 
			
		||||
 | 
			
		||||
     .item {
 | 
			
		||||
        height: 120px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
       align-items: center;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 0 50px;
 | 
			
		||||
        background-color: #ffffff;
 | 
			
		||||
        border-bottom: 1px solid #eeeeee;
 | 
			
		||||
    .item {
 | 
			
		||||
      height: 120px;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 0 50px;
 | 
			
		||||
      background-color: #ffffff;
 | 
			
		||||
      border-bottom: 1px solid #eeeeee;
 | 
			
		||||
 | 
			
		||||
        & > .name{
 | 
			
		||||
          font-size: 36px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          line-height: 50px;
 | 
			
		||||
          margin-left: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      & > .name {
 | 
			
		||||
        font-size: 36px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        line-height: 50px;
 | 
			
		||||
        margin-left: 32px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -8,13 +8,15 @@
 | 
			
		||||
        <template v-if="!item.imgUrl">
 | 
			
		||||
          <label>
 | 
			
		||||
            <b v-if="index==0 && item.readStatus==0"></b>
 | 
			
		||||
            <div class="tag" v-if="index==1" :style="color(item.status)">{{$dict.getLabel("announcementStatus",item.status)}}</div>
 | 
			
		||||
            {{item.title}}
 | 
			
		||||
            <div class="tag" v-if="index==1" :style="color(item.status)">
 | 
			
		||||
              {{ $dict.getLabel("announcementStatus", item.status) }}
 | 
			
		||||
            </div>
 | 
			
		||||
            {{ item.title }}
 | 
			
		||||
          </label>
 | 
			
		||||
          <u-gap height="16"></u-gap>
 | 
			
		||||
          <span class="info">
 | 
			
		||||
            <text>{{item.releaseUserName}}</text>
 | 
			
		||||
            <text>{{item.releaseTime}}</text>
 | 
			
		||||
            <text>{{ item.releaseUserName }}</text>
 | 
			
		||||
            <text>{{ item.releaseTime }}</text>
 | 
			
		||||
          </span>
 | 
			
		||||
        </template>
 | 
			
		||||
        <template v-else>
 | 
			
		||||
@@ -22,13 +24,15 @@
 | 
			
		||||
            <div class="left">
 | 
			
		||||
              <label>
 | 
			
		||||
                <b v-if="index==0 && item.readStatus==0"></b>
 | 
			
		||||
                <div class="tag" v-if="index==1" :style="color(item.status)">{{$dict.getLabel("announcementStatus",item.status)}}</div>
 | 
			
		||||
                {{item.title}}
 | 
			
		||||
                <div class="tag" v-if="index==1" :style="color(item.status)">
 | 
			
		||||
                  {{ $dict.getLabel("announcementStatus", item.status) }}
 | 
			
		||||
                </div>
 | 
			
		||||
                {{ item.title }}
 | 
			
		||||
              </label>
 | 
			
		||||
              <u-gap height="16"></u-gap>
 | 
			
		||||
              <span class="info">
 | 
			
		||||
                <text>{{item.releaseUserName}}</text>
 | 
			
		||||
                <text>{{item.releaseTime}}</text>
 | 
			
		||||
                <text>{{ item.releaseUserName }}</text>
 | 
			
		||||
                <text>{{ item.releaseTime }}</text>
 | 
			
		||||
              </span>
 | 
			
		||||
            </div>
 | 
			
		||||
            <img :src="item.imgUrl" alt="">
 | 
			
		||||
@@ -46,7 +50,7 @@
 | 
			
		||||
          <div class="colum" v-for="(item,index) in optList" :key="index" @click="handleOpt(item)">
 | 
			
		||||
            <u-icon :name="item.icon" size="100" :custom-style="{backgroundColor:'#fff',borderRadius:'16px'}"></u-icon>
 | 
			
		||||
            <u-gap height="16"></u-gap>
 | 
			
		||||
            {{item.name}}
 | 
			
		||||
            {{ item.name }}
 | 
			
		||||
          </div>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <div class="btn" @click="show=false">关闭</div>
 | 
			
		||||
@@ -59,296 +63,297 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiAdd from "../../components/AiAdd";
 | 
			
		||||
  import AiEmpty from "../../components/AiEmpty";
 | 
			
		||||
  import AiTopFixed from "../../components/AiTopFixed";
 | 
			
		||||
import AiAdd from "../../components/AiAdd";
 | 
			
		||||
import AiEmpty from "../../components/AiEmpty";
 | 
			
		||||
import AiTopFixed from "../../components/AiTopFixed";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "notification",
 | 
			
		||||
    components: {AiAdd, AiEmpty,AiTopFixed},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        index: 0,
 | 
			
		||||
        show: false,
 | 
			
		||||
        modal: false,
 | 
			
		||||
        content: "",
 | 
			
		||||
        current: 1,
 | 
			
		||||
        dataList: [],
 | 
			
		||||
        detail: {},
 | 
			
		||||
        status: "加载更多",
 | 
			
		||||
      }
 | 
			
		||||
export default {
 | 
			
		||||
  name: "notification",
 | 
			
		||||
  components: {AiAdd, AiEmpty, AiTopFixed},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      index: 0,
 | 
			
		||||
      show: false,
 | 
			
		||||
      modal: false,
 | 
			
		||||
      content: "",
 | 
			
		||||
      current: 1,
 | 
			
		||||
      dataList: [],
 | 
			
		||||
      detail: {},
 | 
			
		||||
      status: "加载更多",
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad() {
 | 
			
		||||
    this.$dict.load("announcementStatus");
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  computed: {
 | 
			
		||||
    tabs() {
 | 
			
		||||
      return [{name: "最新公告"}, {name: "公告管理"}];
 | 
			
		||||
    },
 | 
			
		||||
    optList() {
 | 
			
		||||
      return [
 | 
			
		||||
        {
 | 
			
		||||
          name: "详情",
 | 
			
		||||
          icon: this.$cdn + "notice/yl.png",
 | 
			
		||||
          val: 0,
 | 
			
		||||
          show: true,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          name: "撤回",
 | 
			
		||||
          icon: this.$cdn + "notice/ch.png",
 | 
			
		||||
          val: 1,
 | 
			
		||||
          show: this.detail?.status == 1,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          name: "发布",
 | 
			
		||||
          icon: this.$cdn + "notice/fb.png",
 | 
			
		||||
          val: 2,
 | 
			
		||||
          show: this.detail?.status == 0,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          name: "编辑",
 | 
			
		||||
          icon: this.$cdn + "notice/bj.png",
 | 
			
		||||
          val: 3,
 | 
			
		||||
          show: this.detail?.status == 0 || this.detail?.status == 3,
 | 
			
		||||
        }, {
 | 
			
		||||
          name: "删除",
 | 
			
		||||
          icon: this.$cdn + "notice/sc.png",
 | 
			
		||||
          val: 4,
 | 
			
		||||
          show: true,
 | 
			
		||||
        }
 | 
			
		||||
      ].filter(e => e.show)
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onLoad(){
 | 
			
		||||
      this.$dict.load("announcementStatus");
 | 
			
		||||
  methods: {
 | 
			
		||||
    changeState() {
 | 
			
		||||
      this.$http.post(this.content == '删除' ? '/app/appannouncement/delete' : "/app/appannouncement/update-status", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          [this.content == '删除' ? 'ids' : 'id']: this.detail.id
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.$u.toast(this.content + "成功");
 | 
			
		||||
          this.getList();
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    computed: {
 | 
			
		||||
      tabs() {
 | 
			
		||||
        return [{name: "最新公告"},{name: "公告管理"}];
 | 
			
		||||
      },
 | 
			
		||||
      optList(){
 | 
			
		||||
        return [
 | 
			
		||||
          {
 | 
			
		||||
            name: "详情",
 | 
			
		||||
            icon: this.$cdn + "notice/yl.png",
 | 
			
		||||
            val: 0,
 | 
			
		||||
            show: true,
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            name: "撤回",
 | 
			
		||||
            icon: this.$cdn + "notice/ch.png",
 | 
			
		||||
            val: 1,
 | 
			
		||||
            show: this.detail?.status == 1,
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            name: "发布",
 | 
			
		||||
            icon: this.$cdn + "notice/fb.png",
 | 
			
		||||
            val: 2,
 | 
			
		||||
            show: this.detail?.status == 0,
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            name: "编辑",
 | 
			
		||||
            icon: this.$cdn + "notice/bj.png",
 | 
			
		||||
            val: 3,
 | 
			
		||||
            show: this.detail?.status == 0 || this.detail?.status == 3,
 | 
			
		||||
          }, {
 | 
			
		||||
            name: "删除",
 | 
			
		||||
            icon: this.$cdn + "notice/sc.png",
 | 
			
		||||
            val: 4,
 | 
			
		||||
            show: true,
 | 
			
		||||
          }
 | 
			
		||||
        ].filter(e=>e.show)
 | 
			
		||||
      }
 | 
			
		||||
    confirm() {
 | 
			
		||||
      this.show = false;
 | 
			
		||||
      this.changeState();
 | 
			
		||||
    },
 | 
			
		||||
    handleOpt(item) {
 | 
			
		||||
      this.content = {
 | 
			
		||||
        1: "撤回",
 | 
			
		||||
        2: "发布",
 | 
			
		||||
        4: "删除",
 | 
			
		||||
      }[item.val];
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      changeState(){
 | 
			
		||||
        this.$http.post(this.content =='删除' ? '/app/appannouncement/delete' : "/app/appannouncement/update-status",null,{
 | 
			
		||||
          params: {
 | 
			
		||||
            [this.content =='删除' ? 'ids' : 'id']:this.detail.id
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res=>{
 | 
			
		||||
          if(res.code==0){
 | 
			
		||||
            this.$u.toast(this.content + "成功");
 | 
			
		||||
            this.getList();
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      confirm(){
 | 
			
		||||
      if (item.val == 0) {
 | 
			
		||||
        this.show = false;
 | 
			
		||||
        this.changeState();
 | 
			
		||||
      },
 | 
			
		||||
      handleOpt(item){
 | 
			
		||||
        this.content = {
 | 
			
		||||
          1: "撤回",
 | 
			
		||||
          2: "发布",
 | 
			
		||||
          4: "删除",
 | 
			
		||||
        }[item.val];
 | 
			
		||||
        return uni.navigateTo({
 | 
			
		||||
          url: "/pages/notification/components/detail?id=" + this.detail.id
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        if (item.val == 0) {
 | 
			
		||||
          this.show = false;
 | 
			
		||||
          return uni.navigateTo({
 | 
			
		||||
            url: "/pages/notification/components/detail?id=" + this.detail.id
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
      if ([1, 2, 4].includes(item.val)) {
 | 
			
		||||
        return this.modal = true;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        if ([1,2,4].includes(item.val)) {
 | 
			
		||||
          return this.modal = true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if(item.val==3){
 | 
			
		||||
          this.show = false;
 | 
			
		||||
          return uni.navigateTo({
 | 
			
		||||
            url:"/pages/notification/components/add?id=" + this.detail.id + "&flag=" + false
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      color(status){
 | 
			
		||||
        return [
 | 
			
		||||
          {backgroundColor:"rgba(255,136,34,0.1)",color:"#FF8822"},
 | 
			
		||||
          {backgroundColor:"rgba(34,102,255,0.1)",color:"#2266FF"},
 | 
			
		||||
          {backgroundColor:"rgba(102,102,102,0.1)",color:"#666666"},
 | 
			
		||||
          {backgroundColor:"rgba(255,136,34,0.1)",color:"#FF8822"}
 | 
			
		||||
          ][status];
 | 
			
		||||
      },
 | 
			
		||||
      handeClick(item) {
 | 
			
		||||
        this.detail = item;
 | 
			
		||||
        if (this.index == 1) {
 | 
			
		||||
          this.show = true;
 | 
			
		||||
        }else {
 | 
			
		||||
          uni.navigateTo({
 | 
			
		||||
            url: "/pages/notification/components/detail?id=" + this.detail.id + "&flag=" + true
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      add(){
 | 
			
		||||
      if (item.val == 3) {
 | 
			
		||||
        this.show = false;
 | 
			
		||||
        return uni.navigateTo({
 | 
			
		||||
          url: "/pages/notification/components/add?id=" + this.detail.id + "&flag=" + false
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    color(status) {
 | 
			
		||||
      return [
 | 
			
		||||
        {backgroundColor: "rgba(255,136,34,0.1)", color: "#FF8822"},
 | 
			
		||||
        {backgroundColor: "rgba(34,102,255,0.1)", color: "#2266FF"},
 | 
			
		||||
        {backgroundColor: "rgba(102,102,102,0.1)", color: "#666666"},
 | 
			
		||||
        {backgroundColor: "rgba(255,136,34,0.1)", color: "#FF8822"}
 | 
			
		||||
      ][status];
 | 
			
		||||
    },
 | 
			
		||||
    handeClick(item) {
 | 
			
		||||
      this.detail = item;
 | 
			
		||||
      if (this.index == 1) {
 | 
			
		||||
        this.show = true;
 | 
			
		||||
      } else {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/notification/components/add"
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      change(val) {
 | 
			
		||||
        this.index = val;
 | 
			
		||||
        this.current = 1;
 | 
			
		||||
        this.getList()
 | 
			
		||||
      },
 | 
			
		||||
      getList() {
 | 
			
		||||
        this.$http.post(this.index ==0 ? "/app/appannouncement/list-latest" : "/app/appannouncement/list-mgr", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            size: 10,
 | 
			
		||||
            current: this.current
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            if (this.current > 1 && this.current > res.data.pages) {
 | 
			
		||||
              this.status = "已经到底啦"
 | 
			
		||||
            }
 | 
			
		||||
            this.dataList = this.current > 1 ? [...this.dataList, ...res.data.records] : res.data.records
 | 
			
		||||
          }
 | 
			
		||||
          url: "/pages/notification/components/detail?id=" + this.detail.id + "&flag=" + true
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onShow() {
 | 
			
		||||
      this.current = 1;
 | 
			
		||||
      this.getList();
 | 
			
		||||
    add() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/notification/components/add"
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onReachBottom() {
 | 
			
		||||
      this.current = this.current + 1;
 | 
			
		||||
    change(val) {
 | 
			
		||||
      this.index = val;
 | 
			
		||||
      this.current = 1;
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$http.post(this.index == 0 ? "/app/appannouncement/list-latest" : "/app/appannouncement/list-mgr", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          size: 10,
 | 
			
		||||
          current: this.current
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          if (this.current > 1 && this.current > res.data.pages) {
 | 
			
		||||
            this.status = "已经到底啦"
 | 
			
		||||
          }
 | 
			
		||||
          this.dataList = this.current > 1 ? [...this.dataList, ...res.data.records] : res.data.records
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onShow() {
 | 
			
		||||
    this.current = 1;
 | 
			
		||||
    this.getList();
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onReachBottom() {
 | 
			
		||||
    this.current = this.current + 1;
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .notification {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
    padding-bottom: 32px;
 | 
			
		||||
.notification {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #F5F5F5;
 | 
			
		||||
  padding-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
    ::v-deep .content{
 | 
			
		||||
      padding: 0 !important;
 | 
			
		||||
    }
 | 
			
		||||
  ::v-deep .content {
 | 
			
		||||
    padding: 0 !important;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .body {
 | 
			
		||||
  .body {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      height: 208px;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      flex-direction: column;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
      background-color: #ffffff;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
      .card {
 | 
			
		||||
        height: 208px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 32px;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
        background-color: #ffffff;
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
        &:last-child{
 | 
			
		||||
          margin-bottom: 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > label {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
          text-overflow: ellipsis;
 | 
			
		||||
          display: -webkit-box;
 | 
			
		||||
          -webkit-box-orient: vertical;
 | 
			
		||||
          -webkit-line-clamp: 2;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          line-height: 44px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        b {
 | 
			
		||||
          display: inline-block;
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          width: 16px;
 | 
			
		||||
          height: 16px;
 | 
			
		||||
          border-radius: 50%;
 | 
			
		||||
          background: #FF4466;
 | 
			
		||||
          margin-right: 8px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .tag{
 | 
			
		||||
          width: 96px;
 | 
			
		||||
          height: 44px;
 | 
			
		||||
          display: inline-block;
 | 
			
		||||
          border-radius: 8px;
 | 
			
		||||
          margin-right: 16px;
 | 
			
		||||
          font-size: 26px;
 | 
			
		||||
          font-weight: 400;
 | 
			
		||||
          line-height: 46px;
 | 
			
		||||
          text-align: center;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .info {
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          line-height: 40px;
 | 
			
		||||
 | 
			
		||||
          & > text:first-child {
 | 
			
		||||
            margin-right: 32px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > .has-pic {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
 | 
			
		||||
          & > .left {
 | 
			
		||||
            display: flex;
 | 
			
		||||
            flex-direction: column;
 | 
			
		||||
            justify-content: space-between;
 | 
			
		||||
 | 
			
		||||
            & > label {
 | 
			
		||||
              overflow: hidden;
 | 
			
		||||
              text-overflow: ellipsis;
 | 
			
		||||
              display: -webkit-box;
 | 
			
		||||
              -webkit-box-orient: vertical;
 | 
			
		||||
              -webkit-line-clamp: 2;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
          & > img{
 | 
			
		||||
            width: 192px;
 | 
			
		||||
            height: 144px;
 | 
			
		||||
            flex-shrink: 0;
 | 
			
		||||
            margin-left: 32px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        margin-bottom: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .popup-wrap {
 | 
			
		||||
      height: 368px;
 | 
			
		||||
      background-color: #F7F7F7;
 | 
			
		||||
 | 
			
		||||
      .btn{
 | 
			
		||||
        height: 96px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
      & > label {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        text-overflow: ellipsis;
 | 
			
		||||
        display: -webkit-box;
 | 
			
		||||
        -webkit-box-orient: vertical;
 | 
			
		||||
        -webkit-line-clamp: 2;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        background-color: #ffffff;
 | 
			
		||||
        line-height: 44px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > .u-row {
 | 
			
		||||
        height: 272px;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 0 46px;
 | 
			
		||||
      b {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        width: 16px;
 | 
			
		||||
        height: 16px;
 | 
			
		||||
        border-radius: 50%;
 | 
			
		||||
        background: #FF4466;
 | 
			
		||||
        margin-right: 8px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        & > .colum {
 | 
			
		||||
      .tag {
 | 
			
		||||
        width: 96px;
 | 
			
		||||
        height: 44px;
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
        margin-right: 16px;
 | 
			
		||||
        font-size: 26px;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        line-height: 46px;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        line-height: 40px;
 | 
			
		||||
 | 
			
		||||
        & > text:first-child {
 | 
			
		||||
          margin-right: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > .has-pic {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
 | 
			
		||||
        & > .left {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          flex-direction: column;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: center;
 | 
			
		||||
          font-size: 26px;
 | 
			
		||||
          color: #666666;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
 | 
			
		||||
          & > label {
 | 
			
		||||
            overflow: hidden;
 | 
			
		||||
            text-overflow: ellipsis;
 | 
			
		||||
            display: -webkit-box;
 | 
			
		||||
            -webkit-box-orient: vertical;
 | 
			
		||||
            -webkit-line-clamp: 2;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > img {
 | 
			
		||||
          width: 192px;
 | 
			
		||||
          height: 144px;
 | 
			
		||||
          flex-shrink: 0;
 | 
			
		||||
          margin-left: 32px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .popup-wrap {
 | 
			
		||||
    height: 368px;
 | 
			
		||||
    background-color: #F7F7F7;
 | 
			
		||||
 | 
			
		||||
    .btn {
 | 
			
		||||
      height: 96px;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      background-color: #ffffff;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > .u-row {
 | 
			
		||||
      height: 272px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 0 46px;
 | 
			
		||||
 | 
			
		||||
      & > .colum {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        font-size: 26px;
 | 
			
		||||
        color: #666666;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,11 +3,11 @@
 | 
			
		||||
    <div class="info">
 | 
			
		||||
      <div class="info-top">
 | 
			
		||||
        <div class="left">
 | 
			
		||||
          <image src="/static/images/avatar.png" />
 | 
			
		||||
          <image src="/static/images/avatar.png"/>
 | 
			
		||||
          <h2>{{ info.name || info.phone }}</h2>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="right">
 | 
			
		||||
          <image src="/static/images/phone.png" />
 | 
			
		||||
          <image src="/static/images/phone.png"/>
 | 
			
		||||
          <p>拨打电话</p>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -55,7 +55,7 @@
 | 
			
		||||
        <div class="info-item">
 | 
			
		||||
          <label>图片:</label>
 | 
			
		||||
          <div class="imgs">
 | 
			
		||||
            <image v-for="(item, index) in 6" :key="index" src="/static/images/avatar.png" />
 | 
			
		||||
            <image v-for="(item, index) in 6" :key="index" src="/static/images/avatar.png"/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -68,183 +68,184 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  export default {
 | 
			
		||||
    name: 'detail',
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'detail',
 | 
			
		||||
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        info: {},
 | 
			
		||||
        id: '',
 | 
			
		||||
        pageShow: false
 | 
			
		||||
      }
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      info: {},
 | 
			
		||||
      id: '',
 | 
			
		||||
      pageShow: false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    uni.showLoading()
 | 
			
		||||
    this.id = query.id
 | 
			
		||||
 | 
			
		||||
    this.getInfo(query.id)
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    linkTo() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: '/pages/povertyMonitor/Form'
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.id = query.id
 | 
			
		||||
    getInfo(id) {
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.info = res.data
 | 
			
		||||
 | 
			
		||||
      this.getInfo(query.id)
 | 
			
		||||
    },
 | 
			
		||||
          this.pageShow = true
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      linkTo () {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: '/pages/povertyMonitor/Form'
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getInfo (id) {
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/queryDetailById?id=${id}`).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.info = res.data
 | 
			
		||||
 | 
			
		||||
            this.pageShow = true
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .detail {
 | 
			
		||||
    padding-bottom: 122rpx;
 | 
			
		||||
.detail {
 | 
			
		||||
  padding-bottom: 122 rpx;
 | 
			
		||||
 | 
			
		||||
    * {
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
    }
 | 
			
		||||
  * {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .footer {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      z-index: 1;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
  .footer {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    z-index: 1;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
      flex: 1;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      line-height: 112px;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      color: #FF4466;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
 | 
			
		||||
      &:last-child {
 | 
			
		||||
        color: #fff;
 | 
			
		||||
        background: #3192F4;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .info {
 | 
			
		||||
    background: #fff;
 | 
			
		||||
 | 
			
		||||
    .info-top {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      height: 136px;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-bottom: 1px solid #D8DDE6;
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
 | 
			
		||||
        image {
 | 
			
		||||
          width: 80px;
 | 
			
		||||
          height: 80px;
 | 
			
		||||
          margin-right: 16px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-size: 36px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .right {
 | 
			
		||||
        text-align: center;
 | 
			
		||||
 | 
			
		||||
        image {
 | 
			
		||||
          width: 64px;
 | 
			
		||||
          height: 64px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        p {
 | 
			
		||||
          color: #3D94FB;
 | 
			
		||||
          font-size: 24px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .result {
 | 
			
		||||
    margin-top: 20px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
 | 
			
		||||
    .result-top {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      height: 96px;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
      border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        color: #2EA222;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .info-item__wrapper {
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
 | 
			
		||||
    .info-item {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      margin-bottom: 12px;
 | 
			
		||||
 | 
			
		||||
      label {
 | 
			
		||||
        flex-shrink: 0;
 | 
			
		||||
        width: 150px;
 | 
			
		||||
        line-height: 1.3;
 | 
			
		||||
        text-align: right;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 30 rpx;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        line-height: 112px;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        color: #FF4466;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        background: #fff;
 | 
			
		||||
        line-height: 1.3;
 | 
			
		||||
        text-align: justify;
 | 
			
		||||
        color: #343D65;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        &:last-child {
 | 
			
		||||
          color: #fff;
 | 
			
		||||
          background: #3192F4;
 | 
			
		||||
      .imgs {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
 | 
			
		||||
        image {
 | 
			
		||||
          width: 160px;
 | 
			
		||||
          height: 160px;
 | 
			
		||||
          margin-right: 16px;
 | 
			
		||||
          margin-bottom: 16px;
 | 
			
		||||
          border-radius: 4px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .info {
 | 
			
		||||
      background: #fff;
 | 
			
		||||
 | 
			
		||||
      .info-top {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        height: 136px;
 | 
			
		||||
        padding: 0 32px;
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-bottom: 1px solid #D8DDE6;
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          image {
 | 
			
		||||
            width: 80px;
 | 
			
		||||
            height: 80px;
 | 
			
		||||
            margin-right: 16px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          h2 {
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            font-size: 36px;
 | 
			
		||||
            font-weight: 600;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          text-align: center;
 | 
			
		||||
          image {
 | 
			
		||||
            width: 64px;
 | 
			
		||||
            height: 64px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          p {
 | 
			
		||||
            color: #3D94FB;
 | 
			
		||||
            font-size: 24px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .result {
 | 
			
		||||
      margin-top: 20px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
 | 
			
		||||
      .result-top {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        height: 96px;
 | 
			
		||||
        padding: 0 32px;
 | 
			
		||||
        border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #333;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          color: #2EA222;
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    .info-item__wrapper {
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
 | 
			
		||||
      .info-item {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        margin-bottom: 12px;
 | 
			
		||||
 | 
			
		||||
        label {
 | 
			
		||||
          flex-shrink: 0;
 | 
			
		||||
          width: 150px;
 | 
			
		||||
          line-height: 1.3;
 | 
			
		||||
          text-align: right;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 30rpx;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          flex: 1;
 | 
			
		||||
          line-height: 1.3;
 | 
			
		||||
          text-align: justify;
 | 
			
		||||
          color: #343D65;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .imgs {
 | 
			
		||||
          flex: 1;
 | 
			
		||||
 | 
			
		||||
          image {
 | 
			
		||||
            width: 160px;
 | 
			
		||||
            height: 160px;
 | 
			
		||||
            margin-right: 16px;
 | 
			
		||||
            margin-bottom: 16px;
 | 
			
		||||
            border-radius: 4px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      } 
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -24,89 +24,89 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiUploader from '@/components/AiUploader'
 | 
			
		||||
import AiUploader from '@/components/AiUploader'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        result: '',
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      result: '',
 | 
			
		||||
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiUploader
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  components: {
 | 
			
		||||
    AiUploader
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .form {
 | 
			
		||||
    padding-bottom: 120px;
 | 
			
		||||
.form {
 | 
			
		||||
  padding-bottom: 120px;
 | 
			
		||||
 | 
			
		||||
    div {
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
    }
 | 
			
		||||
  div {
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
    background: #fff;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .form-item {
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
  .form-item {
 | 
			
		||||
    padding: 32px;
 | 
			
		||||
 | 
			
		||||
      .form-item__title {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 34px;
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-weight: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        i {
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .form-type {
 | 
			
		||||
    .form-item__title {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
      margin-bottom: 34px;
 | 
			
		||||
 | 
			
		||||
      h2 {
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-weight: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
      i {
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .btn {
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      z-index: 11;
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      line-height: 112px;
 | 
			
		||||
      margin: 0;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      background: #3192F4;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .form-type {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
 | 
			
		||||
    h2 {
 | 
			
		||||
      font-weight: normal;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    z-index: 11;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    line-height: 112px;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
    font-size: 32px;
 | 
			
		||||
    background: #3192F4;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,9 @@
 | 
			
		||||
      <div class="item" v-for="(item, index) in list" :key="index" hover-class="bg-hover" @click="toDetail(item.id)">
 | 
			
		||||
        <div class="item-top">
 | 
			
		||||
          <h2>{{ item.name || item.phone }}</h2>
 | 
			
		||||
          <span :style="{color: item.riskEliminationMethod ? '#2EA222' : '#FF4466'}">{{ item.riskEliminationMethod ? '已解除' : '未解除' }}</span>
 | 
			
		||||
          <span :style="{color: item.riskEliminationMethod ? '#2EA222' : '#FF4466'}">{{
 | 
			
		||||
              item.riskEliminationMethod ? '已解除' : '未解除'
 | 
			
		||||
            }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <p>{{ item.addressArea }} {{ item.address }}</p>
 | 
			
		||||
        <div class="item-bottom">家庭收入</div>
 | 
			
		||||
@@ -19,191 +21,192 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiEmpty from '@/components/AiEmpty/AiEmpty'
 | 
			
		||||
  export default {
 | 
			
		||||
    name: 'list',
 | 
			
		||||
import AiEmpty from '@/components/AiEmpty/AiEmpty'
 | 
			
		||||
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        list: [],
 | 
			
		||||
        isMore: false,
 | 
			
		||||
        current: 1,
 | 
			
		||||
        currIndex: 0
 | 
			
		||||
      }
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'list',
 | 
			
		||||
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      list: [],
 | 
			
		||||
      isMore: false,
 | 
			
		||||
      current: 1,
 | 
			
		||||
      currIndex: 0
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  components: {
 | 
			
		||||
    AiEmpty
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  created() {
 | 
			
		||||
    uni.showLoading()
 | 
			
		||||
    this.$nextTick(() => {
 | 
			
		||||
      this.getList()
 | 
			
		||||
    })
 | 
			
		||||
    uni.$on('reload', () => {
 | 
			
		||||
      this.reload()
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    changeTab(index) {
 | 
			
		||||
      this.currIndex = index
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiEmpty
 | 
			
		||||
    toDetail(id) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: `/pages/Monitor/Detail?id=${id}&isFrom=1`
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    created () {
 | 
			
		||||
    reload() {
 | 
			
		||||
      this.isMore = false
 | 
			
		||||
      this.current = 1
 | 
			
		||||
 | 
			
		||||
      this.getList()
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.getList()
 | 
			
		||||
      })
 | 
			
		||||
      uni.$on('reload', () => {
 | 
			
		||||
        this.reload()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      changeTab (index) {
 | 
			
		||||
        this.currIndex = index
 | 
			
		||||
      },
 | 
			
		||||
    getList() {
 | 
			
		||||
      if (this.isMore) return
 | 
			
		||||
 | 
			
		||||
      toDetail (id) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: `/pages/Monitor/Detail?id=${id}&isFrom=1`
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      reload() {
 | 
			
		||||
        this.isMore = false
 | 
			
		||||
        this.current = 1
 | 
			
		||||
 | 
			
		||||
        this.getList()
 | 
			
		||||
        uni.showLoading()
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getList() {
 | 
			
		||||
        if (this.isMore) return
 | 
			
		||||
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/list`, null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            current: this.current,
 | 
			
		||||
            size: 15,
 | 
			
		||||
            status: 2
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            if (this.current > 1) {
 | 
			
		||||
              this.list = [...this.list, ...res.data.records]
 | 
			
		||||
            } else {
 | 
			
		||||
              this.list = res.data.records
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            uni.hideLoading()
 | 
			
		||||
 | 
			
		||||
            if (res.data.records.length < 10) {
 | 
			
		||||
              this.isMore = true
 | 
			
		||||
 | 
			
		||||
              return false
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            this.current = this.current + 1
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/list`, null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          current: this.current,
 | 
			
		||||
          size: 15,
 | 
			
		||||
          status: 2
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          if (this.current > 1) {
 | 
			
		||||
            this.list = [...this.list, ...res.data.records]
 | 
			
		||||
          } else {
 | 
			
		||||
            uni.hideLoading()
 | 
			
		||||
            this.list = res.data.records
 | 
			
		||||
          }
 | 
			
		||||
        }).catch(() => {
 | 
			
		||||
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
          if (res.data.records.length < 10) {
 | 
			
		||||
            this.isMore = true
 | 
			
		||||
 | 
			
		||||
            return false
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          this.current = this.current + 1
 | 
			
		||||
        } else {
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        }
 | 
			
		||||
      }).catch(() => {
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .list {
 | 
			
		||||
    padding: 30px 0 120px;
 | 
			
		||||
.list {
 | 
			
		||||
  padding: 30px 0 120px;
 | 
			
		||||
 | 
			
		||||
    .tab {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      top: 0;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      z-index: 1;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 96px;
 | 
			
		||||
      padding: 0 60px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-bottom: 1px solid #D4D4D4;
 | 
			
		||||
  .tab {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    z-index: 1;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 96px;
 | 
			
		||||
    padding: 0 60px;
 | 
			
		||||
    background: #FFFFFF;
 | 
			
		||||
    border-bottom: 1px solid #D4D4D4;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
    * {
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
      * {
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        position: relative;
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        height: 96rpx;
 | 
			
		||||
        line-height: 96rpx;
 | 
			
		||||
        color: #000000;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
 | 
			
		||||
        &::after {
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
          left: 50%;
 | 
			
		||||
          width: 192px;
 | 
			
		||||
          height: 6px;
 | 
			
		||||
          background: transparent;
 | 
			
		||||
          transform: translateX(-50%);
 | 
			
		||||
          content: ' ';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &.active {
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
 | 
			
		||||
          &::after {
 | 
			
		||||
            background: #1365DD;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .list-wrapper {
 | 
			
		||||
      .item {
 | 
			
		||||
        margin: 0 32px 32px;
 | 
			
		||||
        padding-bottom: 10px;
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-radius: 16px;
 | 
			
		||||
    span {
 | 
			
		||||
      position: relative;
 | 
			
		||||
      flex: 1;
 | 
			
		||||
      height: 96 rpx;
 | 
			
		||||
      line-height: 96 rpx;
 | 
			
		||||
      color: #000000;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
 | 
			
		||||
        .item-bottom {
 | 
			
		||||
          height: 94px;
 | 
			
		||||
          line-height: 94px;
 | 
			
		||||
          padding: 0 32px;
 | 
			
		||||
          border-top: 1px solid #DDDDDD;
 | 
			
		||||
          color: #3975C6;
 | 
			
		||||
          font-size: 26px;
 | 
			
		||||
        }
 | 
			
		||||
      &::after {
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        bottom: 0;
 | 
			
		||||
        left: 50%;
 | 
			
		||||
        width: 192px;
 | 
			
		||||
        height: 6px;
 | 
			
		||||
        background: transparent;
 | 
			
		||||
        transform: translateX(-50%);
 | 
			
		||||
        content: ' ';
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        .item-top {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
          margin-bottom: 16px;
 | 
			
		||||
          padding: 32px 32px 0;
 | 
			
		||||
      &.active {
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
 | 
			
		||||
          h2 {
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
            font-weight: 700;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          span {
 | 
			
		||||
            color: #FFBB00;
 | 
			
		||||
 | 
			
		||||
            &.status0 {
 | 
			
		||||
              color: #FF4466;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            &.status1 {
 | 
			
		||||
              color: 已解除风险;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        p {
 | 
			
		||||
          line-height: 1.4;
 | 
			
		||||
          margin-bottom: 32rpx;
 | 
			
		||||
          padding: 0 32px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 26px;
 | 
			
		||||
        &::after {
 | 
			
		||||
          background: #1365DD;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .list-wrapper {
 | 
			
		||||
    .item {
 | 
			
		||||
      margin: 0 32px 32px;
 | 
			
		||||
      padding-bottom: 10px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-radius: 16px;
 | 
			
		||||
 | 
			
		||||
      .item-bottom {
 | 
			
		||||
        height: 94px;
 | 
			
		||||
        line-height: 94px;
 | 
			
		||||
        padding: 0 32px;
 | 
			
		||||
        border-top: 1px solid #DDDDDD;
 | 
			
		||||
        color: #3975C6;
 | 
			
		||||
        font-size: 26px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item-top {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        margin-bottom: 16px;
 | 
			
		||||
        padding: 32px 32px 0;
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          font-weight: 700;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          color: #FFBB00;
 | 
			
		||||
 | 
			
		||||
          &.status0 {
 | 
			
		||||
            color: #FF4466;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &.status1 {
 | 
			
		||||
            color: 已解除风险;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      p {
 | 
			
		||||
        line-height: 1.4;
 | 
			
		||||
        margin-bottom: 32 rpx;
 | 
			
		||||
        padding: 0 32px;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        font-size: 26px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -33,297 +33,297 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import echarts from 'echarts'
 | 
			
		||||
import echarts from 'echarts'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: 'statistics',
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'statistics',
 | 
			
		||||
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        chart1: null,
 | 
			
		||||
        chart2: null,
 | 
			
		||||
        chart3: null,
 | 
			
		||||
        chart4: null,
 | 
			
		||||
        info: {}
 | 
			
		||||
      }
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      chart1: null,
 | 
			
		||||
      chart2: null,
 | 
			
		||||
      chart3: null,
 | 
			
		||||
      chart4: null,
 | 
			
		||||
      info: {}
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  mounted() {
 | 
			
		||||
    window.scrollTo(0, 0)
 | 
			
		||||
    // this.chart1 = echarts.init(document.getElementById('chart1'))
 | 
			
		||||
    this.chart4 = echarts.init(document.getElementById('chart4'))
 | 
			
		||||
    this.chart2 = echarts.init(document.getElementById('chart2'))
 | 
			
		||||
    this.chart3 = echarts.init(document.getElementById('chart3'))
 | 
			
		||||
    this.$dict.load(['fpType', 'fpRiskEliminationMethod'])
 | 
			
		||||
    this.getInfo()
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    getInfo() {
 | 
			
		||||
      this.$http.post(`/app/apppreventionreturntopoverty/statistics-h5`).then(res => {
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.info = res.data
 | 
			
		||||
          this.initChart2(res.data.byxzMap)
 | 
			
		||||
          this.initChart3(res.data.byxcMap)
 | 
			
		||||
          this.initChart4(res.data.fxxcCount, res.data.fxyjCount)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    mounted () {
 | 
			
		||||
      window.scrollTo(0,0)
 | 
			
		||||
      // this.chart1 = echarts.init(document.getElementById('chart1'))
 | 
			
		||||
      this.chart4 = echarts.init(document.getElementById('chart4'))
 | 
			
		||||
      this.chart2 = echarts.init(document.getElementById('chart2'))
 | 
			
		||||
      this.chart3 = echarts.init(document.getElementById('chart3'))
 | 
			
		||||
      this.$dict.load(['fpType', 'fpRiskEliminationMethod'])
 | 
			
		||||
      this.getInfo()
 | 
			
		||||
    initChart1() {
 | 
			
		||||
      const option = {
 | 
			
		||||
        tooltip: {
 | 
			
		||||
          trigger: 'item',
 | 
			
		||||
          formatter: '{a} <br/>{b} : {c}%'
 | 
			
		||||
        },
 | 
			
		||||
        color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
        series: [
 | 
			
		||||
          {
 | 
			
		||||
            name: 'Funnel',
 | 
			
		||||
            type: 'funnel',
 | 
			
		||||
            left: '0%',
 | 
			
		||||
            top: 0,
 | 
			
		||||
            bottom: 0,
 | 
			
		||||
            width: '100%',
 | 
			
		||||
            min: 0,
 | 
			
		||||
            max: 100,
 | 
			
		||||
            minSize: '0%',
 | 
			
		||||
            maxSize: '100%',
 | 
			
		||||
            sort: 'descending',
 | 
			
		||||
            gap: 2,
 | 
			
		||||
            label: {
 | 
			
		||||
              show: true,
 | 
			
		||||
              position: 'inside'
 | 
			
		||||
            },
 | 
			
		||||
            labelLine: {
 | 
			
		||||
              length: 10,
 | 
			
		||||
              lineStyle: {
 | 
			
		||||
                width: 1,
 | 
			
		||||
                type: 'solid'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            itemStyle: {
 | 
			
		||||
              borderColor: '#fff',
 | 
			
		||||
              borderWidth: 1
 | 
			
		||||
            },
 | 
			
		||||
            emphasis: {
 | 
			
		||||
              label: {
 | 
			
		||||
                fontSize: 20
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            data: [
 | 
			
		||||
              {value: 60, name: '总上报'},
 | 
			
		||||
              {value: 40, name: '纳入监测'},
 | 
			
		||||
              {value: 20, name: '已处理'}
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.chart1.setOption(option)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      getInfo () {
 | 
			
		||||
        this.$http.post(`/app/apppreventionreturntopoverty/statistics-h5`).then(res => {
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.info = res.data
 | 
			
		||||
            this.initChart2(res.data.byxzMap)
 | 
			
		||||
            this.initChart3(res.data.byxcMap)
 | 
			
		||||
            this.initChart4(res.data.fxxcCount, res.data.fxyjCount)
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      initChart1 () {
 | 
			
		||||
        const option = {
 | 
			
		||||
          tooltip: {
 | 
			
		||||
            trigger: 'item',
 | 
			
		||||
            formatter: '{a} <br/>{b} : {c}%'
 | 
			
		||||
          },
 | 
			
		||||
          color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
          series: [
 | 
			
		||||
            {
 | 
			
		||||
              name: 'Funnel',
 | 
			
		||||
              type: 'funnel',
 | 
			
		||||
              left: '0%',
 | 
			
		||||
              top: 0,
 | 
			
		||||
              bottom: 0,
 | 
			
		||||
              width: '100%',
 | 
			
		||||
              min: 0,
 | 
			
		||||
              max: 100,
 | 
			
		||||
              minSize: '0%',
 | 
			
		||||
              maxSize: '100%',
 | 
			
		||||
              sort: 'descending',
 | 
			
		||||
              gap: 2,
 | 
			
		||||
    initChart2(data) {
 | 
			
		||||
      const values = data.map(item => {
 | 
			
		||||
        return {
 | 
			
		||||
          value: item.typeCount,
 | 
			
		||||
          name: this.$dict.getLabel('fpType', item.type)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
      const option = {
 | 
			
		||||
        tooltip: {
 | 
			
		||||
          trigger: 'item'
 | 
			
		||||
        },
 | 
			
		||||
        grid: {
 | 
			
		||||
          left: '0%',
 | 
			
		||||
          right: '0%',
 | 
			
		||||
          bottom: '0%',
 | 
			
		||||
          top: '40px',
 | 
			
		||||
          containLabel: true
 | 
			
		||||
        },
 | 
			
		||||
        color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
        series: [
 | 
			
		||||
          {
 | 
			
		||||
            name: '本月纳入监测人群属性分析',
 | 
			
		||||
            type: 'pie',
 | 
			
		||||
            radius: ['40%', '70%'],
 | 
			
		||||
            emphasis: {
 | 
			
		||||
              label: {
 | 
			
		||||
                show: true,
 | 
			
		||||
                position: 'inside'
 | 
			
		||||
              },
 | 
			
		||||
              labelLine: {
 | 
			
		||||
                length: 10,
 | 
			
		||||
                lineStyle: {
 | 
			
		||||
                  width: 1,
 | 
			
		||||
                  type: 'solid'
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              itemStyle: {
 | 
			
		||||
                borderColor: '#fff',
 | 
			
		||||
                borderWidth: 1
 | 
			
		||||
              },
 | 
			
		||||
              emphasis: {
 | 
			
		||||
                label: {
 | 
			
		||||
                  fontSize: 20
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              data: [
 | 
			
		||||
                { value: 60, name: '总上报' },
 | 
			
		||||
                { value: 40, name: '纳入监测' },
 | 
			
		||||
                { value: 20, name: '已处理' }
 | 
			
		||||
              ]
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.chart1.setOption(option)
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      initChart2 (data) {
 | 
			
		||||
        const values = data.map(item => {
 | 
			
		||||
          return {
 | 
			
		||||
            value: item.typeCount,
 | 
			
		||||
            name: this.$dict.getLabel('fpType', item.type)
 | 
			
		||||
                fontSize: '40',
 | 
			
		||||
                fontWeight: 'bold'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            data: values
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        const option = {
 | 
			
		||||
          tooltip: {
 | 
			
		||||
            trigger: 'item'
 | 
			
		||||
          },
 | 
			
		||||
          grid: {
 | 
			
		||||
            left: '0%',
 | 
			
		||||
            right: '0%',
 | 
			
		||||
            bottom: '0%',
 | 
			
		||||
            top: '40px',
 | 
			
		||||
            containLabel: true
 | 
			
		||||
          },
 | 
			
		||||
          color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
          series: [
 | 
			
		||||
            {
 | 
			
		||||
              name: '本月纳入监测人群属性分析',
 | 
			
		||||
              type: 'pie',
 | 
			
		||||
              radius: ['40%', '70%'],
 | 
			
		||||
              emphasis: {
 | 
			
		||||
                label: {
 | 
			
		||||
                  show: true,
 | 
			
		||||
                  fontSize: '40',
 | 
			
		||||
                  fontWeight: 'bold'
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              data: values
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.chart2.setOption(option)
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      initChart3 (data) {
 | 
			
		||||
        const values = data.map(item => {
 | 
			
		||||
          return {
 | 
			
		||||
            value: item.typeCount,
 | 
			
		||||
            name: this.$dict.getLabel('fpRiskEliminationMethod', item.risk_elimination_method)
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        const option = {
 | 
			
		||||
          tooltip: {
 | 
			
		||||
            trigger: 'item'
 | 
			
		||||
          },
 | 
			
		||||
          grid: {
 | 
			
		||||
            left: '0%',
 | 
			
		||||
            right: '0%',
 | 
			
		||||
            bottom: '0%',
 | 
			
		||||
            top: '40px',
 | 
			
		||||
            containLabel: true
 | 
			
		||||
          },
 | 
			
		||||
          color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
          series: [
 | 
			
		||||
            {
 | 
			
		||||
              name: '本月纳入监测人群属性分析',
 | 
			
		||||
              type: 'pie',
 | 
			
		||||
              radius: ['40%', '70%'],
 | 
			
		||||
              emphasis: {
 | 
			
		||||
                label: {
 | 
			
		||||
                  show: true,
 | 
			
		||||
                  fontSize: '40',
 | 
			
		||||
                  fontWeight: 'bold'
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              data: values
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.chart3.setOption(option)
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      initChart4 (x, y) {
 | 
			
		||||
        const option = {
 | 
			
		||||
          tooltip: {
 | 
			
		||||
            trigger: 'item'
 | 
			
		||||
          },
 | 
			
		||||
          color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
          series: [
 | 
			
		||||
            {
 | 
			
		||||
              name: '',
 | 
			
		||||
              type: 'funnel',
 | 
			
		||||
              left: '0%',
 | 
			
		||||
              top: 0,
 | 
			
		||||
              bottom: 0,
 | 
			
		||||
              width: '100%',
 | 
			
		||||
              min: 0,
 | 
			
		||||
              max: 100,
 | 
			
		||||
              minSize: '0%',
 | 
			
		||||
              maxSize: '100%',
 | 
			
		||||
              sort: 'descending',
 | 
			
		||||
              gap: 2,
 | 
			
		||||
              label: {
 | 
			
		||||
                show: true,
 | 
			
		||||
                position: 'inside'
 | 
			
		||||
              },
 | 
			
		||||
              labelLine: {
 | 
			
		||||
                length: 10,
 | 
			
		||||
                lineStyle: {
 | 
			
		||||
                  width: 1,
 | 
			
		||||
                  type: 'solid'
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              itemStyle: {
 | 
			
		||||
                borderColor: '#fff',
 | 
			
		||||
                borderWidth: 1
 | 
			
		||||
              },
 | 
			
		||||
              emphasis: {
 | 
			
		||||
                label: {
 | 
			
		||||
                  fontSize: 20
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              data: [
 | 
			
		||||
                { value: y, name: '纳入监测' },
 | 
			
		||||
                { value: x, name: '消除监测' }
 | 
			
		||||
              ]
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.chart4.setOption(option)
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.chart2.setOption(option)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    initChart3(data) {
 | 
			
		||||
      const values = data.map(item => {
 | 
			
		||||
        return {
 | 
			
		||||
          value: item.typeCount,
 | 
			
		||||
          name: this.$dict.getLabel('fpRiskEliminationMethod', item.risk_elimination_method)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
      const option = {
 | 
			
		||||
        tooltip: {
 | 
			
		||||
          trigger: 'item'
 | 
			
		||||
        },
 | 
			
		||||
        grid: {
 | 
			
		||||
          left: '0%',
 | 
			
		||||
          right: '0%',
 | 
			
		||||
          bottom: '0%',
 | 
			
		||||
          top: '40px',
 | 
			
		||||
          containLabel: true
 | 
			
		||||
        },
 | 
			
		||||
        color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
        series: [
 | 
			
		||||
          {
 | 
			
		||||
            name: '本月纳入监测人群属性分析',
 | 
			
		||||
            type: 'pie',
 | 
			
		||||
            radius: ['40%', '70%'],
 | 
			
		||||
            emphasis: {
 | 
			
		||||
              label: {
 | 
			
		||||
                show: true,
 | 
			
		||||
                fontSize: '40',
 | 
			
		||||
                fontWeight: 'bold'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            data: values
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.chart3.setOption(option)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    initChart4(x, y) {
 | 
			
		||||
      const option = {
 | 
			
		||||
        tooltip: {
 | 
			
		||||
          trigger: 'item'
 | 
			
		||||
        },
 | 
			
		||||
        color: ['#2896FF', '#09DBFE', '#61FDB9', '#FFBB69', '#8429FF', '#ea7ccc'],
 | 
			
		||||
        series: [
 | 
			
		||||
          {
 | 
			
		||||
            name: '',
 | 
			
		||||
            type: 'funnel',
 | 
			
		||||
            left: '0%',
 | 
			
		||||
            top: 0,
 | 
			
		||||
            bottom: 0,
 | 
			
		||||
            width: '100%',
 | 
			
		||||
            min: 0,
 | 
			
		||||
            max: 100,
 | 
			
		||||
            minSize: '0%',
 | 
			
		||||
            maxSize: '100%',
 | 
			
		||||
            sort: 'descending',
 | 
			
		||||
            gap: 2,
 | 
			
		||||
            label: {
 | 
			
		||||
              show: true,
 | 
			
		||||
              position: 'inside'
 | 
			
		||||
            },
 | 
			
		||||
            labelLine: {
 | 
			
		||||
              length: 10,
 | 
			
		||||
              lineStyle: {
 | 
			
		||||
                width: 1,
 | 
			
		||||
                type: 'solid'
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            itemStyle: {
 | 
			
		||||
              borderColor: '#fff',
 | 
			
		||||
              borderWidth: 1
 | 
			
		||||
            },
 | 
			
		||||
            emphasis: {
 | 
			
		||||
              label: {
 | 
			
		||||
                fontSize: 20
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            data: [
 | 
			
		||||
              {value: y, name: '纳入监测'},
 | 
			
		||||
              {value: x, name: '消除监测'}
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.chart4.setOption(option)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
  .statistics {
 | 
			
		||||
    padding: 40px 0 120px;
 | 
			
		||||
.statistics {
 | 
			
		||||
  padding: 40px 0 120px;
 | 
			
		||||
 | 
			
		||||
    .block {
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      top: 0;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      z-index: 1;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 140px;
 | 
			
		||||
      background: #3975C6;
 | 
			
		||||
    }
 | 
			
		||||
  .block {
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    z-index: 1;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 140px;
 | 
			
		||||
    background: #3975C6;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .charts-wrapper {
 | 
			
		||||
      position: relative;
 | 
			
		||||
      z-index: 1;
 | 
			
		||||
      padding: 0 32px;
 | 
			
		||||
  .charts-wrapper {
 | 
			
		||||
    position: relative;
 | 
			
		||||
    z-index: 1;
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
 | 
			
		||||
      .total {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        height: 200px;
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
    .total {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      height: 200px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
 | 
			
		||||
        .total-item {
 | 
			
		||||
          flex: 1;
 | 
			
		||||
          text-align: center;
 | 
			
		||||
      .total-item {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
 | 
			
		||||
        h2 {
 | 
			
		||||
          font-size: 64px;
 | 
			
		||||
          color: #3192F4;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        p {
 | 
			
		||||
          margin-top: 10px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:last-child {
 | 
			
		||||
          h2 {
 | 
			
		||||
            font-size: 64px;
 | 
			
		||||
            color: #3192F4;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          p {
 | 
			
		||||
            margin-top: 10px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
            font-size: 28px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          &:last-child {
 | 
			
		||||
            h2 {
 | 
			
		||||
              color: #F09535;
 | 
			
		||||
            }
 | 
			
		||||
            color: #F09535;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      .charts {
 | 
			
		||||
        margin-top: 32px;
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
    .charts {
 | 
			
		||||
      margin-top: 32px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
 | 
			
		||||
        & > h2 {
 | 
			
		||||
          height: 96px;
 | 
			
		||||
          line-height: 96px;
 | 
			
		||||
          padding: 0 32px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
        }
 | 
			
		||||
      & > h2 {
 | 
			
		||||
        height: 96px;
 | 
			
		||||
        line-height: 96px;
 | 
			
		||||
        padding: 0 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        border-bottom: 1px solid #DDDDDD;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        & > div {
 | 
			
		||||
          width: 686px;
 | 
			
		||||
          margin: 0 auto;
 | 
			
		||||
          padding: 32px 0;
 | 
			
		||||
        }
 | 
			
		||||
      & > div {
 | 
			
		||||
        width: 686px;
 | 
			
		||||
        margin: 0 auto;
 | 
			
		||||
        padding: 32px 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -12,78 +12,78 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import Statistics from './components/Statistics.vue'
 | 
			
		||||
  import List from './components/List.vue'
 | 
			
		||||
import Statistics from './components/Statistics.vue'
 | 
			
		||||
import List from './components/List.vue'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        currIndex: 0
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      currIndex: 0
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      List,
 | 
			
		||||
      Statistics
 | 
			
		||||
    },
 | 
			
		||||
  components: {
 | 
			
		||||
    List,
 | 
			
		||||
    Statistics
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    computed: {
 | 
			
		||||
      tabBar () {
 | 
			
		||||
        const link = icon => `${this.$cdn}askform/${icon}.png`
 | 
			
		||||
        return [
 | 
			
		||||
          {text: "预警监控", iconPath: "bdlb1", selectedIconPath: "bdlb2" },
 | 
			
		||||
          {text: "数据统计", iconPath: "xjxm1", selectedIconPath: "xjxm2" }
 | 
			
		||||
        ].map(e => ({
 | 
			
		||||
          ...e,
 | 
			
		||||
          iconPath: link(e.iconPath),
 | 
			
		||||
          selectedIconPath: link(e.selectedIconPath)
 | 
			
		||||
        }))
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  computed: {
 | 
			
		||||
    tabBar() {
 | 
			
		||||
      const link = icon => `${this.$cdn}askform/${icon}.png`
 | 
			
		||||
      return [
 | 
			
		||||
        {text: "预警监控", iconPath: "bdlb1", selectedIconPath: "bdlb2"},
 | 
			
		||||
        {text: "数据统计", iconPath: "xjxm1", selectedIconPath: "xjxm2"}
 | 
			
		||||
      ].map(e => ({
 | 
			
		||||
        ...e,
 | 
			
		||||
        iconPath: link(e.iconPath),
 | 
			
		||||
        selectedIconPath: link(e.selectedIconPath)
 | 
			
		||||
      }))
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onLoad () {
 | 
			
		||||
      uni.$on('reload', () => {
 | 
			
		||||
        if (this.currIndex === 0) {
 | 
			
		||||
          this.$refs.list.reload()
 | 
			
		||||
        } else {
 | 
			
		||||
          this.$refs.addList.getList()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onReachBottom() {
 | 
			
		||||
  onLoad() {
 | 
			
		||||
    uni.$on('reload', () => {
 | 
			
		||||
      if (this.currIndex === 0) {
 | 
			
		||||
        this.$refs.list.getList()
 | 
			
		||||
        this.$refs.list.reload()
 | 
			
		||||
      } else {
 | 
			
		||||
        this.$refs.addList.getList()
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onReachBottom() {
 | 
			
		||||
    if (this.currIndex === 0) {
 | 
			
		||||
      this.$refs.list.getList()
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .povertyMonitor {
 | 
			
		||||
    .footer {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      z-index: 11;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
.povertyMonitor {
 | 
			
		||||
  .footer {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    z-index: 11;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 98px;
 | 
			
		||||
 | 
			
		||||
    div {
 | 
			
		||||
      flex: 1;
 | 
			
		||||
      height: 98px;
 | 
			
		||||
      line-height: 98px;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
 | 
			
		||||
      div {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        height: 98px;
 | 
			
		||||
        line-height: 98px;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        background: #fff;
 | 
			
		||||
 | 
			
		||||
        &.active {
 | 
			
		||||
          color: #fff;
 | 
			
		||||
          background: #3192F4;
 | 
			
		||||
        }
 | 
			
		||||
      &.active {
 | 
			
		||||
        color: #fff;
 | 
			
		||||
        background: #3192F4;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -142,8 +142,8 @@ export default {
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    handleWechat({userId,type}) {
 | 
			
		||||
      this.injectJWeixin('openUserProfile').then(()=>{
 | 
			
		||||
    handleWechat({userId, type}) {
 | 
			
		||||
      this.injectJWeixin('openUserProfile').then(() => {
 | 
			
		||||
        this.wxInvoke(['openUserProfile', {
 | 
			
		||||
          type,
 | 
			
		||||
          userid: userId
 | 
			
		||||
 
 | 
			
		||||
@@ -194,6 +194,7 @@ export default {
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.info {
 | 
			
		||||
  padding-bottom: 130px;
 | 
			
		||||
 | 
			
		||||
  .certBtn {
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
    background: $uni-color-primary;
 | 
			
		||||
 
 | 
			
		||||
@@ -12,17 +12,20 @@
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="radio-content">
 | 
			
		||||
        <div class="title">素材标题</div>
 | 
			
		||||
        <textarea rows="2" placeholder="请输入(30字以内)" v-model="name" style="width:100%;height:80px;" maxlength="30"></textarea>
 | 
			
		||||
        <textarea rows="2" placeholder="请输入(30字以内)" v-model="name" style="width:100%;height:80px;"
 | 
			
		||||
                  maxlength="30"></textarea>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div v-else>
 | 
			
		||||
      <div class="radio-content mar-b16">
 | 
			
		||||
        <div class="title">素材标题</div>
 | 
			
		||||
        <textarea rows="2" placeholder="请输入(30字以内)" v-model="name" style="width:100%;height:80px;" maxlength="30"></textarea>
 | 
			
		||||
        <textarea rows="2" placeholder="请输入(30字以内)" v-model="name" style="width:100%;height:80px;"
 | 
			
		||||
                  maxlength="30"></textarea>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="radio-content">
 | 
			
		||||
        <div class="title">文本内容</div>
 | 
			
		||||
        <textarea rows="8" placeholder="请输入文本内容(12000字以内)" v-model="content" style="width:100%;height:300px;" maxlength="12000"></textarea>
 | 
			
		||||
        <textarea rows="8" placeholder="请输入文本内容(12000字以内)" v-model="content" style="width:100%;height:300px;"
 | 
			
		||||
                  maxlength="12000"></textarea>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="btn" @click="confirm">确认</div>
 | 
			
		||||
@@ -31,97 +34,100 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from "@/components/AiBack";
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "addPlay",
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        type: '1',
 | 
			
		||||
        file: null,
 | 
			
		||||
        name: '',
 | 
			
		||||
        content: ''
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
import AiBack from "@/components/AiBack";
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiBack
 | 
			
		||||
    },
 | 
			
		||||
export default {
 | 
			
		||||
  name: "addPlay",
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      type: '1',
 | 
			
		||||
      file: null,
 | 
			
		||||
      name: '',
 | 
			
		||||
      content: ''
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      this.type = query.type
 | 
			
		||||
      uni.$on('record', e => {
 | 
			
		||||
        this.file = e
 | 
			
		||||
  components: {
 | 
			
		||||
    AiBack
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    this.type = query.type
 | 
			
		||||
    uni.$on('record', e => {
 | 
			
		||||
      this.file = e
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    toRecord() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: `/pages/resourcesManage/recording`
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      toRecord () {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: `/pages/resourcesManage/recording`
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
    dataURLtoFile(dataurl, filename) {
 | 
			
		||||
      var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1]
 | 
			
		||||
      var bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n)
 | 
			
		||||
 | 
			
		||||
      dataURLtoFile (dataurl, filename) {
 | 
			
		||||
        var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1]
 | 
			
		||||
        var bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n)
 | 
			
		||||
 | 
			
		||||
        while (n--){
 | 
			
		||||
          u8arr[n] = bstr.charCodeAt(n)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return new File([u8arr], filename, {type:mime})
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      confirm () {
 | 
			
		||||
        if (!this.file && this.type === '1') {
 | 
			
		||||
          return this.$u.toast('请选择音频文件')
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!this.name) {
 | 
			
		||||
          return this.$u.toast('请输入素材标题')
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!this.content && this.type === '3') {
 | 
			
		||||
          return this.$u.toast('请输入文本内容')
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        uni.showLoading()
 | 
			
		||||
        let formData = {}
 | 
			
		||||
        formData = new FormData()
 | 
			
		||||
        if (this.type === '1') {
 | 
			
		||||
          formData.append('file', this.dataURLtoFile(this.file, this.name + '.mp3'))
 | 
			
		||||
          formData.append('type', this.type)
 | 
			
		||||
          formData.append('content', this.content)
 | 
			
		||||
          formData.append('name', this.name)
 | 
			
		||||
        } else {
 | 
			
		||||
          formData.append('type', this.type)
 | 
			
		||||
          formData.append('content', this.content)
 | 
			
		||||
          formData.append('name', this.name)
 | 
			
		||||
        }
 | 
			
		||||
        this.$http.post(`/app/appdlbresource/addResourceWithFile`, formData).then((res) => {
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
          if (res.code === 0) {
 | 
			
		||||
            this.$u.toast('添加成功')
 | 
			
		||||
            uni.$emit('getList')
 | 
			
		||||
            uni.navigateBack({
 | 
			
		||||
              delta: 1
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
        }).catch(res => {
 | 
			
		||||
          this.$u.toast(res)
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      while (n--) {
 | 
			
		||||
        u8arr[n] = bstr.charCodeAt(n)
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      return new File([u8arr], filename, {type: mime})
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    confirm() {
 | 
			
		||||
      if (!this.file && this.type === '1') {
 | 
			
		||||
        return this.$u.toast('请选择音频文件')
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (!this.name) {
 | 
			
		||||
        return this.$u.toast('请输入素材标题')
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (!this.content && this.type === '3') {
 | 
			
		||||
        return this.$u.toast('请输入文本内容')
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      uni.showLoading()
 | 
			
		||||
      let formData = {}
 | 
			
		||||
      formData = new FormData()
 | 
			
		||||
      if (this.type === '1') {
 | 
			
		||||
        formData.append('file', this.dataURLtoFile(this.file, this.name + '.mp3'))
 | 
			
		||||
        formData.append('type', this.type)
 | 
			
		||||
        formData.append('content', this.content)
 | 
			
		||||
        formData.append('name', this.name)
 | 
			
		||||
      } else {
 | 
			
		||||
        formData.append('type', this.type)
 | 
			
		||||
        formData.append('content', this.content)
 | 
			
		||||
        formData.append('name', this.name)
 | 
			
		||||
      }
 | 
			
		||||
      this.$http.post(`/app/appdlbresource/addResourceWithFile`, formData).then((res) => {
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
        if (res.code === 0) {
 | 
			
		||||
          this.$u.toast('添加成功')
 | 
			
		||||
          uni.$emit('getList')
 | 
			
		||||
          uni.navigateBack({
 | 
			
		||||
            delta: 1
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
      }).catch(res => {
 | 
			
		||||
        this.$u.toast(res)
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.addPlay {
 | 
			
		||||
  padding-bottom: 128px;
 | 
			
		||||
  .content{
 | 
			
		||||
 | 
			
		||||
  .content {
 | 
			
		||||
    padding-left: 32px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    .item{
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      padding: 34px 0;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
@@ -132,49 +138,57 @@
 | 
			
		||||
      display: flex;
 | 
			
		||||
      color: #333;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      .label{
 | 
			
		||||
 | 
			
		||||
      .label {
 | 
			
		||||
        width: 198px;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
      .value{
 | 
			
		||||
 | 
			
		||||
      .value {
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        width: calc(100% - 198px);
 | 
			
		||||
        padding-right: 32px;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        text-align: right;
 | 
			
		||||
 | 
			
		||||
        img{
 | 
			
		||||
        img {
 | 
			
		||||
          width: 32px;
 | 
			
		||||
          height: 32px;
 | 
			
		||||
          vertical-align: middle;
 | 
			
		||||
          margin-left: 6px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      .color-999{
 | 
			
		||||
 | 
			
		||||
      .color-999 {
 | 
			
		||||
        color: #999;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .radio-content{
 | 
			
		||||
 | 
			
		||||
  .radio-content {
 | 
			
		||||
    padding: 34px 32px 38px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    .title{
 | 
			
		||||
 | 
			
		||||
    .title {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      font-family: PingFangSC-Regular, PingFang SC;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      color: #333;
 | 
			
		||||
      line-height: 44px;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
      span{
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        font-size: 24px;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .mar-b16{
 | 
			
		||||
 | 
			
		||||
  .mar-b16 {
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
  }
 | 
			
		||||
  .btn{
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
@@ -189,4 +203,4 @@
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -118,423 +118,432 @@
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script> 
 | 
			
		||||
  import AiBack from "@/components/AiBack";
 | 
			
		||||
  import Recorder from 'recorder-core'
 | 
			
		||||
  import 'recorder-core/src/engine/mp3'
 | 
			
		||||
  import 'recorder-core/src/engine/mp3-engine'
 | 
			
		||||
  import stopImg from './img/stop-img.png'
 | 
			
		||||
  import microphone from './img/microphone.png'
 | 
			
		||||
  import playImg from './img/play-icon.png'
 | 
			
		||||
<script>
 | 
			
		||||
import AiBack from "@/components/AiBack";
 | 
			
		||||
import Recorder from 'recorder-core'
 | 
			
		||||
import 'recorder-core/src/engine/mp3'
 | 
			
		||||
import 'recorder-core/src/engine/mp3-engine'
 | 
			
		||||
import stopImg from './img/stop-img.png'
 | 
			
		||||
import microphone from './img/microphone.png'
 | 
			
		||||
import playImg from './img/play-icon.png'
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: 'recording',
 | 
			
		||||
    data () {
 | 
			
		||||
      return {
 | 
			
		||||
        isRecording: false,
 | 
			
		||||
        progress: 0,
 | 
			
		||||
        microphone,
 | 
			
		||||
        playImg,
 | 
			
		||||
        stopImg,
 | 
			
		||||
        isPlay: false,
 | 
			
		||||
        isStop: false,
 | 
			
		||||
        blobFile: null,
 | 
			
		||||
        time: '00:00:00',
 | 
			
		||||
        counterDownTime: 0,
 | 
			
		||||
        recorder: null,
 | 
			
		||||
        counterDownTimeout: null,
 | 
			
		||||
        timingTimeout: null,
 | 
			
		||||
        audioSrc: '',
 | 
			
		||||
        audio: null,
 | 
			
		||||
        duration: 0
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'recording',
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      isRecording: false,
 | 
			
		||||
      progress: 0,
 | 
			
		||||
      microphone,
 | 
			
		||||
      playImg,
 | 
			
		||||
      stopImg,
 | 
			
		||||
      isPlay: false,
 | 
			
		||||
      isStop: false,
 | 
			
		||||
      blobFile: null,
 | 
			
		||||
      time: '00:00:00',
 | 
			
		||||
      counterDownTime: 0,
 | 
			
		||||
      recorder: null,
 | 
			
		||||
      counterDownTimeout: null,
 | 
			
		||||
      timingTimeout: null,
 | 
			
		||||
      audioSrc: '',
 | 
			
		||||
      audio: null,
 | 
			
		||||
      duration: 0
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  components: {
 | 
			
		||||
    AiBack
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  mounted() {
 | 
			
		||||
    this.$nextTick(() => {
 | 
			
		||||
      this.audio = document.querySelector('audio')
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    record() {
 | 
			
		||||
      if (!this.isRecording) {
 | 
			
		||||
        this.duration = 0
 | 
			
		||||
        this.recorder = Recorder({
 | 
			
		||||
          type: 'mp3',
 | 
			
		||||
          sampleRate: 16000,
 | 
			
		||||
          bitRate: 16,
 | 
			
		||||
          onProcess(buffers, powerLevel, bufferDuration, bufferSampleRate, newBufferIdx, asyncEnd) {
 | 
			
		||||
            //可利用extensions/waveview.js扩展实时绘制波形
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        this.recorder.open(() => {
 | 
			
		||||
          this.recorder.start()
 | 
			
		||||
          this.isRecording = true
 | 
			
		||||
          this.timing()
 | 
			
		||||
        }, (msg, isUserNotAllow) => {
 | 
			
		||||
          // this.$u.toast(`${isUserNotAllow ? '请同意授权' : msg}`)
 | 
			
		||||
        })
 | 
			
		||||
      } else {
 | 
			
		||||
        this.stop()
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiBack
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    mounted () {
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.audio = document.querySelector('audio')
 | 
			
		||||
    blobToDataURI(blob) {
 | 
			
		||||
      return new Promise((resolve) => {
 | 
			
		||||
        var reader = new FileReader()
 | 
			
		||||
        reader.readAsDataURL(blob)
 | 
			
		||||
        reader.onload = function (e) {
 | 
			
		||||
          resolve(e.target.result)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      record () {
 | 
			
		||||
        if (!this.isRecording) {
 | 
			
		||||
          this.duration = 0
 | 
			
		||||
          this.recorder = Recorder({
 | 
			
		||||
            type: 'mp3',
 | 
			
		||||
            sampleRate: 16000,
 | 
			
		||||
            bitRate: 16,
 | 
			
		||||
            onProcess (buffers, powerLevel, bufferDuration, bufferSampleRate, newBufferIdx, asyncEnd) {
 | 
			
		||||
              //可利用extensions/waveview.js扩展实时绘制波形
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
 | 
			
		||||
          this.recorder.open(() => {
 | 
			
		||||
            this.recorder.start()
 | 
			
		||||
            this.isRecording = true
 | 
			
		||||
            this.timing()
 | 
			
		||||
          }, (msg, isUserNotAllow) => {
 | 
			
		||||
            // this.$u.toast(`${isUserNotAllow ? '请同意授权' : msg}`)
 | 
			
		||||
          })
 | 
			
		||||
        } else {
 | 
			
		||||
          this.stop()
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      blobToDataURI (blob) {
 | 
			
		||||
        return new Promise((resolve) => {
 | 
			
		||||
          var reader = new FileReader()
 | 
			
		||||
          reader.readAsDataURL(blob)
 | 
			
		||||
          reader.onload = function (e) {
 | 
			
		||||
            resolve(e.target.result)
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      save () {
 | 
			
		||||
        if (!this.blobFile) {
 | 
			
		||||
          return this.$u.toast(`请录音`)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.blobToDataURI(this.blobFile).then(res => {
 | 
			
		||||
          uni.$emit('record', res)
 | 
			
		||||
          uni.navigateBack({
 | 
			
		||||
            delta: 1
 | 
			
		||||
          })
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      onAudioEnd () {
 | 
			
		||||
        this.isPlay = false
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      stop () {
 | 
			
		||||
        this.isRecording = false
 | 
			
		||||
        this.isStop = true
 | 
			
		||||
        clearTimeout(this.timingTimeout)
 | 
			
		||||
        this.recorder.stop((blob, duration) => {
 | 
			
		||||
          this.blobFile = blob
 | 
			
		||||
          
 | 
			
		||||
          var durationObj = this.$dayjs.duration(this.counterDownTime * 1000)
 | 
			
		||||
          this.duration = this.counterDownTime
 | 
			
		||||
          var hours = durationObj.hours() > 9 ? durationObj.hours() : '0' + durationObj.hours()
 | 
			
		||||
          var min = durationObj.minutes() > 9 ? durationObj.minutes() : '0' + durationObj.minutes()
 | 
			
		||||
          var seconds = durationObj.seconds() > 9 ? durationObj.seconds() : '0' + durationObj.seconds()
 | 
			
		||||
 | 
			
		||||
          this.time = hours + ':' + min + ':' + seconds
 | 
			
		||||
          console.log(blob, (window.URL|| webkitURL).createObjectURL(blob), '时长:' + duration + 'ms')
 | 
			
		||||
          this.recorder.close()
 | 
			
		||||
          this.recorder = null
 | 
			
		||||
        }, msg => {
 | 
			
		||||
          console.log('录音失败:' + msg)
 | 
			
		||||
          this.recorder.close()
 | 
			
		||||
          this.recorder = null
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      play () {
 | 
			
		||||
        if (!this.isPlay) {
 | 
			
		||||
          this.playAudio()
 | 
			
		||||
          this.counterDown()
 | 
			
		||||
        } else {
 | 
			
		||||
          this.isPlay = false
 | 
			
		||||
          clearTimeout(this.counterDownTimeout)
 | 
			
		||||
          this.audio.pause()
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      playAudio () {
 | 
			
		||||
        this.isPlay = true
 | 
			
		||||
        if (!this.audioSrc) {
 | 
			
		||||
          this.audioSrc = (window.URL||webkitURL).createObjectURL(this.blobFile)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.audio.play()
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      recodeStop () {
 | 
			
		||||
        this.recorder.stop((blob, duration) => {
 | 
			
		||||
          this.restart()
 | 
			
		||||
          this.blobFile = blob
 | 
			
		||||
          console.log(blob, (window.URL|| webkitURL).createObjectURL(blob), '时长:' + duration + 'ms')
 | 
			
		||||
          this.recorder.close()
 | 
			
		||||
          this.recorder = null
 | 
			
		||||
        }, msg => {
 | 
			
		||||
          console.log('录音失败:' + msg)
 | 
			
		||||
          this.recorder.close()
 | 
			
		||||
          this.recorder = null
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      restart () {
 | 
			
		||||
        this.time = '00:00:00'
 | 
			
		||||
        this.progress = 0
 | 
			
		||||
        this.blobFile = null
 | 
			
		||||
        this.isPlay = false
 | 
			
		||||
        this.isRecording = false
 | 
			
		||||
        clearTimeout(this.counterDownTimeout)
 | 
			
		||||
        clearTimeout(this.timingTimeout)
 | 
			
		||||
        this.counterDownTime = 0
 | 
			
		||||
        this.audioSrc = ''
 | 
			
		||||
        this.isStop = false
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      counterDown () {
 | 
			
		||||
        if (this.counterDownTime === -1) {
 | 
			
		||||
          clearTimeout(this.counterDownTimeout)
 | 
			
		||||
          this.counterDownTime = this.duration
 | 
			
		||||
 | 
			
		||||
          return false
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        var durationObj = this.$dayjs.duration(this.counterDownTime * 1000)
 | 
			
		||||
        var hours = durationObj.hours() > 9 ? durationObj.hours() : '0' + durationObj.hours()
 | 
			
		||||
        var min = durationObj.minutes() > 9 ? durationObj.minutes() : '0' + durationObj.minutes()
 | 
			
		||||
        var seconds = durationObj.seconds() > 9 ? durationObj.seconds() : '0' + durationObj.seconds()
 | 
			
		||||
 | 
			
		||||
        this.time = hours + ':' + min + ':' + seconds
 | 
			
		||||
        this.counterDownTime --
 | 
			
		||||
        this.counterDownTimeout = setTimeout(() => {
 | 
			
		||||
          this.counterDown()
 | 
			
		||||
        }, 1000)
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      timing () {
 | 
			
		||||
        this.progress = ((this.counterDownTime / 120) * 100).toFixed(2) > 100 ? 101 : ((this.counterDownTime / 120) * 100).toFixed(2)
 | 
			
		||||
        var durationObj = this.$dayjs.duration(this.counterDownTime * 1000)
 | 
			
		||||
        var hours = durationObj.hours() > 9 ? durationObj.hours() : '0' + durationObj.hours()
 | 
			
		||||
        var min = durationObj.minutes() > 9 ? durationObj.minutes() : '0' + durationObj.minutes()
 | 
			
		||||
        var seconds = durationObj.seconds() > 9 ? durationObj.seconds() : '0' + durationObj.seconds()
 | 
			
		||||
 | 
			
		||||
        this.time = hours + ':' + min + ':' + seconds
 | 
			
		||||
        this.counterDownTime ++
 | 
			
		||||
        this.timingTimeout = setTimeout(() => {
 | 
			
		||||
          this.timing()
 | 
			
		||||
        }, 1000)
 | 
			
		||||
    save() {
 | 
			
		||||
      if (!this.blobFile) {
 | 
			
		||||
        return this.$u.toast(`请录音`)
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.blobToDataURI(this.blobFile).then(res => {
 | 
			
		||||
        uni.$emit('record', res)
 | 
			
		||||
        uni.navigateBack({
 | 
			
		||||
          delta: 1
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onAudioEnd() {
 | 
			
		||||
      this.isPlay = false
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    stop() {
 | 
			
		||||
      this.isRecording = false
 | 
			
		||||
      this.isStop = true
 | 
			
		||||
      clearTimeout(this.timingTimeout)
 | 
			
		||||
      this.recorder.stop((blob, duration) => {
 | 
			
		||||
        this.blobFile = blob
 | 
			
		||||
 | 
			
		||||
        var durationObj = this.$dayjs.duration(this.counterDownTime * 1000)
 | 
			
		||||
        this.duration = this.counterDownTime
 | 
			
		||||
        var hours = durationObj.hours() > 9 ? durationObj.hours() : '0' + durationObj.hours()
 | 
			
		||||
        var min = durationObj.minutes() > 9 ? durationObj.minutes() : '0' + durationObj.minutes()
 | 
			
		||||
        var seconds = durationObj.seconds() > 9 ? durationObj.seconds() : '0' + durationObj.seconds()
 | 
			
		||||
 | 
			
		||||
        this.time = hours + ':' + min + ':' + seconds
 | 
			
		||||
        console.log(blob, (window.URL || webkitURL).createObjectURL(blob), '时长:' + duration + 'ms')
 | 
			
		||||
        this.recorder.close()
 | 
			
		||||
        this.recorder = null
 | 
			
		||||
      }, msg => {
 | 
			
		||||
        console.log('录音失败:' + msg)
 | 
			
		||||
        this.recorder.close()
 | 
			
		||||
        this.recorder = null
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    play() {
 | 
			
		||||
      if (!this.isPlay) {
 | 
			
		||||
        this.playAudio()
 | 
			
		||||
        this.counterDown()
 | 
			
		||||
      } else {
 | 
			
		||||
        this.isPlay = false
 | 
			
		||||
        clearTimeout(this.counterDownTimeout)
 | 
			
		||||
        this.audio.pause()
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    playAudio() {
 | 
			
		||||
      this.isPlay = true
 | 
			
		||||
      if (!this.audioSrc) {
 | 
			
		||||
        this.audioSrc = (window.URL || webkitURL).createObjectURL(this.blobFile)
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.audio.play()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    recodeStop() {
 | 
			
		||||
      this.recorder.stop((blob, duration) => {
 | 
			
		||||
        this.restart()
 | 
			
		||||
        this.blobFile = blob
 | 
			
		||||
        console.log(blob, (window.URL || webkitURL).createObjectURL(blob), '时长:' + duration + 'ms')
 | 
			
		||||
        this.recorder.close()
 | 
			
		||||
        this.recorder = null
 | 
			
		||||
      }, msg => {
 | 
			
		||||
        console.log('录音失败:' + msg)
 | 
			
		||||
        this.recorder.close()
 | 
			
		||||
        this.recorder = null
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    restart() {
 | 
			
		||||
      this.time = '00:00:00'
 | 
			
		||||
      this.progress = 0
 | 
			
		||||
      this.blobFile = null
 | 
			
		||||
      this.isPlay = false
 | 
			
		||||
      this.isRecording = false
 | 
			
		||||
      clearTimeout(this.counterDownTimeout)
 | 
			
		||||
      clearTimeout(this.timingTimeout)
 | 
			
		||||
      this.counterDownTime = 0
 | 
			
		||||
      this.audioSrc = ''
 | 
			
		||||
      this.isStop = false
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    counterDown() {
 | 
			
		||||
      if (this.counterDownTime === -1) {
 | 
			
		||||
        clearTimeout(this.counterDownTimeout)
 | 
			
		||||
        this.counterDownTime = this.duration
 | 
			
		||||
 | 
			
		||||
        return false
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      var durationObj = this.$dayjs.duration(this.counterDownTime * 1000)
 | 
			
		||||
      var hours = durationObj.hours() > 9 ? durationObj.hours() : '0' + durationObj.hours()
 | 
			
		||||
      var min = durationObj.minutes() > 9 ? durationObj.minutes() : '0' + durationObj.minutes()
 | 
			
		||||
      var seconds = durationObj.seconds() > 9 ? durationObj.seconds() : '0' + durationObj.seconds()
 | 
			
		||||
 | 
			
		||||
      this.time = hours + ':' + min + ':' + seconds
 | 
			
		||||
      this.counterDownTime--
 | 
			
		||||
      this.counterDownTimeout = setTimeout(() => {
 | 
			
		||||
        this.counterDown()
 | 
			
		||||
      }, 1000)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    timing() {
 | 
			
		||||
      this.progress = ((this.counterDownTime / 120) * 100).toFixed(2) > 100 ? 101 : ((this.counterDownTime / 120) * 100).toFixed(2)
 | 
			
		||||
      var durationObj = this.$dayjs.duration(this.counterDownTime * 1000)
 | 
			
		||||
      var hours = durationObj.hours() > 9 ? durationObj.hours() : '0' + durationObj.hours()
 | 
			
		||||
      var min = durationObj.minutes() > 9 ? durationObj.minutes() : '0' + durationObj.minutes()
 | 
			
		||||
      var seconds = durationObj.seconds() > 9 ? durationObj.seconds() : '0' + durationObj.seconds()
 | 
			
		||||
 | 
			
		||||
      this.time = hours + ':' + min + ':' + seconds
 | 
			
		||||
      this.counterDownTime++
 | 
			
		||||
      this.timingTimeout = setTimeout(() => {
 | 
			
		||||
        this.timing()
 | 
			
		||||
      }, 1000)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  uni-page-body{
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
uni-page-body {
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.recording {
 | 
			
		||||
  height: 100vh;
 | 
			
		||||
  overflow-y: hidden;
 | 
			
		||||
 | 
			
		||||
  .content {
 | 
			
		||||
    padding-top: 310px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
 | 
			
		||||
    img {
 | 
			
		||||
      width: 406px;
 | 
			
		||||
      height: 306px;
 | 
			
		||||
      margin-bottom: 48px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .text {
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      color: #999;
 | 
			
		||||
      line-height: 42px;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .recording {
 | 
			
		||||
    height: 100vh;
 | 
			
		||||
    overflow-y: hidden;
 | 
			
		||||
 | 
			
		||||
    .content{
 | 
			
		||||
      padding-top: 310px;
 | 
			
		||||
  .footer {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 168px;
 | 
			
		||||
    background: #F6F8FC;
 | 
			
		||||
    padding: 20px 86px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
    span {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      width: 160px;
 | 
			
		||||
      height: 64px;
 | 
			
		||||
      background: #4E8EEE;
 | 
			
		||||
      border-radius: 32px;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      color: #fff;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      img{
 | 
			
		||||
        width: 406px;
 | 
			
		||||
        height: 306px;
 | 
			
		||||
        margin-bottom: 48px;
 | 
			
		||||
      }
 | 
			
		||||
      .text{
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #999;
 | 
			
		||||
        line-height: 42px;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    .footer{
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 168px;
 | 
			
		||||
      background: #F6F8FC;
 | 
			
		||||
      padding: 20px 86px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      span{
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        width: 160px;
 | 
			
		||||
        height: 64px;
 | 
			
		||||
        background: #4E8EEE;
 | 
			
		||||
        border-radius: 32px;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #fff;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        line-height: 64px;
 | 
			
		||||
        vertical-align: top;
 | 
			
		||||
        margin-top: 30px;
 | 
			
		||||
      }
 | 
			
		||||
      img{
 | 
			
		||||
        width: 128px;
 | 
			
		||||
        height: 128px;
 | 
			
		||||
        margin: 0 64px;
 | 
			
		||||
      }
 | 
			
		||||
      line-height: 64px;
 | 
			
		||||
      vertical-align: top;
 | 
			
		||||
      margin-top: 30px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .recording-content {
 | 
			
		||||
      position: relative;
 | 
			
		||||
      overflow: hidden;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .stop-content {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      flex-direction: column;
 | 
			
		||||
      height: calc(100% - 168px);
 | 
			
		||||
 | 
			
		||||
      .header-line {
 | 
			
		||||
        width: 380px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .time {
 | 
			
		||||
        margin-top: 0;
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-top {
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      top: 16px;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      height: 6px;
 | 
			
		||||
      background: url(./img/top.png) repeat-x;
 | 
			
		||||
      background-size: auto 6px;
 | 
			
		||||
    }
 | 
			
		||||
    .time{
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      margin-top: 208px;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      font-size: 96px;
 | 
			
		||||
      color: #000000;
 | 
			
		||||
      line-height: 134px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .progress {
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      top: 16px;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      width: 2px;
 | 
			
		||||
    img {
 | 
			
		||||
      width: 128px;
 | 
			
		||||
      height: 128px;
 | 
			
		||||
      background: #3477EE;
 | 
			
		||||
      margin: 0 64px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .recording-content {
 | 
			
		||||
    position: relative;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .stop-content {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    flex-direction: column;
 | 
			
		||||
    height: calc(100% - 168px);
 | 
			
		||||
 | 
			
		||||
    .header-line {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      max-width: 100%;
 | 
			
		||||
      height: 128px;
 | 
			
		||||
      line-height: 128px;
 | 
			
		||||
      margin-top: 16px;
 | 
			
		||||
      overflow: hidden;
 | 
			
		||||
      width: 380px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .animation {
 | 
			
		||||
      animation: note 0.24s ease-in-out;
 | 
			
		||||
      animation-iteration-count: infinite;
 | 
			
		||||
      animation-direction: alternate;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      width: 6px;
 | 
			
		||||
      height: 16px;
 | 
			
		||||
      margin: 0 6px;
 | 
			
		||||
      border: none;
 | 
			
		||||
      border-radius: 4px;
 | 
			
		||||
      background-color: #3476EE;
 | 
			
		||||
    }
 | 
			
		||||
    .header-line span.line1 {
 | 
			
		||||
      animation-delay: -1s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line2 {
 | 
			
		||||
      animation-delay: -0.9s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line3 {
 | 
			
		||||
      animation-delay: -0.8s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line4 {
 | 
			
		||||
      animation-delay: -0.7s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line5 {
 | 
			
		||||
      animation-delay: -0.6s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line6 {
 | 
			
		||||
      animation-delay: -0.5s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line7 {
 | 
			
		||||
      animation-delay: -0.4s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line8 {
 | 
			
		||||
      animation-delay: -0.4s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line9 {
 | 
			
		||||
      animation-delay: -0.2s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line10 {
 | 
			
		||||
      animation-delay: -0.1s;
 | 
			
		||||
    }
 | 
			
		||||
    .header-line span.line11 {
 | 
			
		||||
      animation-delay: -1s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line12 {
 | 
			
		||||
      animation-delay: -0.9s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line13 {
 | 
			
		||||
      animation-delay: -0.8s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line14 {
 | 
			
		||||
      animation-delay: -0.7s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line15 {
 | 
			
		||||
      animation-delay: -0.6s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line16 {
 | 
			
		||||
      animation-delay: -0.5s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line17 {
 | 
			
		||||
      animation-delay: -0.4s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line18 {
 | 
			
		||||
      animation-delay: -0.3s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line19 {
 | 
			
		||||
      animation-delay: -0.2s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .header-line span.line20 {
 | 
			
		||||
      animation-delay: -0.1s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @keyframes note {
 | 
			
		||||
      from {
 | 
			
		||||
        transform: scaleY(1);
 | 
			
		||||
      }
 | 
			
		||||
      to {
 | 
			
		||||
        transform: scaleY(4);
 | 
			
		||||
      }
 | 
			
		||||
    .time {
 | 
			
		||||
      margin-top: 0;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-top {
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    top: 16px;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    height: 6px;
 | 
			
		||||
    background: url(./img/top.png) repeat-x;
 | 
			
		||||
    background-size: auto 6px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .time {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    margin-top: 208px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    font-size: 96px;
 | 
			
		||||
    color: #000000;
 | 
			
		||||
    line-height: 134px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .progress {
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    top: 16px;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    width: 2px;
 | 
			
		||||
    height: 128px;
 | 
			
		||||
    background: #3477EE;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    max-width: 100%;
 | 
			
		||||
    height: 128px;
 | 
			
		||||
    line-height: 128px;
 | 
			
		||||
    margin-top: 16px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .animation {
 | 
			
		||||
    animation: note 0.24s ease-in-out;
 | 
			
		||||
    animation-iteration-count: infinite;
 | 
			
		||||
    animation-direction: alternate;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span {
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    width: 6px;
 | 
			
		||||
    height: 16px;
 | 
			
		||||
    margin: 0 6px;
 | 
			
		||||
    border: none;
 | 
			
		||||
    border-radius: 4px;
 | 
			
		||||
    background-color: #3476EE;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line1 {
 | 
			
		||||
    animation-delay: -1s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line2 {
 | 
			
		||||
    animation-delay: -0.9s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line3 {
 | 
			
		||||
    animation-delay: -0.8s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line4 {
 | 
			
		||||
    animation-delay: -0.7s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line5 {
 | 
			
		||||
    animation-delay: -0.6s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line6 {
 | 
			
		||||
    animation-delay: -0.5s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line7 {
 | 
			
		||||
    animation-delay: -0.4s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line8 {
 | 
			
		||||
    animation-delay: -0.4s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line9 {
 | 
			
		||||
    animation-delay: -0.2s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line10 {
 | 
			
		||||
    animation-delay: -0.1s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line11 {
 | 
			
		||||
    animation-delay: -1s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line12 {
 | 
			
		||||
    animation-delay: -0.9s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line13 {
 | 
			
		||||
    animation-delay: -0.8s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line14 {
 | 
			
		||||
    animation-delay: -0.7s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line15 {
 | 
			
		||||
    animation-delay: -0.6s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line16 {
 | 
			
		||||
    animation-delay: -0.5s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line17 {
 | 
			
		||||
    animation-delay: -0.4s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line18 {
 | 
			
		||||
    animation-delay: -0.3s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line19 {
 | 
			
		||||
    animation-delay: -0.2s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .header-line span.line20 {
 | 
			
		||||
    animation-delay: -0.1s;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @keyframes note {
 | 
			
		||||
    from {
 | 
			
		||||
      transform: scaleY(1);
 | 
			
		||||
    }
 | 
			
		||||
    to {
 | 
			
		||||
      transform: scaleY(4);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,8 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="resourcesManage">
 | 
			
		||||
    <div class="tab">
 | 
			
		||||
      <u-tabs :list="tab" :is-scroll="false" :current="currIndex" @change="change" height="96" :bar-style="barStyle"></u-tabs>
 | 
			
		||||
      <u-tabs :list="tab" :is-scroll="false" :current="currIndex" @change="change" height="96"
 | 
			
		||||
              :bar-style="barStyle"></u-tabs>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="record" v-if="currIndex == 0">
 | 
			
		||||
      <div class="item" v-for="(item, index) in list" :key="index" @click="choose(item)">
 | 
			
		||||
@@ -21,161 +22,167 @@
 | 
			
		||||
    <u-popup v-model="isShow" mode="bottom">
 | 
			
		||||
      <div class="audio">
 | 
			
		||||
        <AiVideo :src="url" autoplay></AiVideo>
 | 
			
		||||
			  <!-- <audio :src="url" ref="audio" :controls="true" :name="autioName" style="display: block;"></audio> -->
 | 
			
		||||
        <!-- <audio :src="url" ref="audio" :controls="true" :name="autioName" style="display: block;"></audio> -->
 | 
			
		||||
      </div>
 | 
			
		||||
		</u-popup>
 | 
			
		||||
    </u-popup>
 | 
			
		||||
    <AiBack></AiBack>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script> 
 | 
			
		||||
  import AiVideo from '@/components/AiVideo'
 | 
			
		||||
  import AiBack from "@/components/AiBack";
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "resourcesManage",
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        tab: [{ name: '音频素材' }, { name: '文本素材' }],
 | 
			
		||||
        list: [],
 | 
			
		||||
        currIndex: 0,
 | 
			
		||||
        current: 1,
 | 
			
		||||
        isChoose: false,
 | 
			
		||||
        isMore: false,
 | 
			
		||||
        isShow: false,
 | 
			
		||||
        url: '',
 | 
			
		||||
        autioName: '',
 | 
			
		||||
        audio: null,
 | 
			
		||||
        barStyle: {width:'98px', bottom: '-3px', left: '-38px'}
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
<script>
 | 
			
		||||
import AiVideo from '@/components/AiVideo'
 | 
			
		||||
import AiBack from "@/components/AiBack";
 | 
			
		||||
 | 
			
		||||
    components: {
 | 
			
		||||
      AiBack,
 | 
			
		||||
      AiVideo
 | 
			
		||||
    },
 | 
			
		||||
export default {
 | 
			
		||||
  name: "resourcesManage",
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      tab: [{name: '音频素材'}, {name: '文本素材'}],
 | 
			
		||||
      list: [],
 | 
			
		||||
      currIndex: 0,
 | 
			
		||||
      current: 1,
 | 
			
		||||
      isChoose: false,
 | 
			
		||||
      isMore: false,
 | 
			
		||||
      isShow: false,
 | 
			
		||||
      url: '',
 | 
			
		||||
      autioName: '',
 | 
			
		||||
      audio: null,
 | 
			
		||||
      barStyle: {width: '98px', bottom: '-3px', left: '-38px'}
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    onLoad (query) {
 | 
			
		||||
      this.isChoose = query.isChoose ? true : false
 | 
			
		||||
      this.getList()
 | 
			
		||||
      uni.$on('getList', e => {
 | 
			
		||||
        this.isMore = false
 | 
			
		||||
        this.list = []
 | 
			
		||||
        this.current = 1
 | 
			
		||||
  components: {
 | 
			
		||||
    AiBack,
 | 
			
		||||
    AiVideo
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.getList()
 | 
			
		||||
        })
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    this.isChoose = query.isChoose ? true : false
 | 
			
		||||
    this.getList()
 | 
			
		||||
    uni.$on('getList', e => {
 | 
			
		||||
      this.isMore = false
 | 
			
		||||
      this.list = []
 | 
			
		||||
      this.current = 1
 | 
			
		||||
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.getList()
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    change(index) {
 | 
			
		||||
      this.isMore = false
 | 
			
		||||
      this.list = []
 | 
			
		||||
      this.current = 1
 | 
			
		||||
      this.currIndex = index
 | 
			
		||||
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.getList()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      change(index) {
 | 
			
		||||
        this.isMore = false
 | 
			
		||||
        this.list = []
 | 
			
		||||
        this.current = 1
 | 
			
		||||
        this.currIndex = index
 | 
			
		||||
 | 
			
		||||
        this.$nextTick(() => {
 | 
			
		||||
          this.getList()
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      add () {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: `/pages/resourcesManage/addPlay?type=${this.currIndex === 0 ? 1 : 3}`
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      choose (item) {
 | 
			
		||||
        if (!this.isChoose) {
 | 
			
		||||
          console.log(item.url)
 | 
			
		||||
          this.url = item.url
 | 
			
		||||
          this.isShow = true
 | 
			
		||||
 | 
			
		||||
          return false
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        uni.$emit('choose', {
 | 
			
		||||
          mediaId: item.id,
 | 
			
		||||
          mediaName: item.name
 | 
			
		||||
        })
 | 
			
		||||
        uni.navigateBack({
 | 
			
		||||
          delta: 1
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getList () {
 | 
			
		||||
        if (this.isMore) return
 | 
			
		||||
 | 
			
		||||
        this.$http.post(`/app/appdlbresource/list`, null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            ...this.search,
 | 
			
		||||
            type: this.currIndex === 0 ? 1 : 3,
 | 
			
		||||
            current: this.current,
 | 
			
		||||
            size: 10
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            if (this.current > 1) {
 | 
			
		||||
              this.list = [...this.list, ...res.data.records]
 | 
			
		||||
            } else {
 | 
			
		||||
              this.list = res.data.records
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            uni.hideLoading()
 | 
			
		||||
 | 
			
		||||
            if (res.data.records.length < 10) {
 | 
			
		||||
              this.isMore = true
 | 
			
		||||
 | 
			
		||||
              return false
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            this.current = this.current + 1
 | 
			
		||||
          } else {
 | 
			
		||||
            uni.hideLoading()
 | 
			
		||||
          }
 | 
			
		||||
        }).catch(() => {
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    add() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: `/pages/resourcesManage/addPlay?type=${this.currIndex === 0 ? 1 : 3}`
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onReachBottom() {
 | 
			
		||||
      this.getList()
 | 
			
		||||
    choose(item) {
 | 
			
		||||
      if (!this.isChoose) {
 | 
			
		||||
        console.log(item.url)
 | 
			
		||||
        this.url = item.url
 | 
			
		||||
        this.isShow = true
 | 
			
		||||
 | 
			
		||||
        return false
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      uni.$emit('choose', {
 | 
			
		||||
        mediaId: item.id,
 | 
			
		||||
        mediaName: item.name
 | 
			
		||||
      })
 | 
			
		||||
      uni.navigateBack({
 | 
			
		||||
        delta: 1
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getList() {
 | 
			
		||||
      if (this.isMore) return
 | 
			
		||||
 | 
			
		||||
      this.$http.post(`/app/appdlbresource/list`, null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          ...this.search,
 | 
			
		||||
          type: this.currIndex === 0 ? 1 : 3,
 | 
			
		||||
          current: this.current,
 | 
			
		||||
          size: 10
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          if (this.current > 1) {
 | 
			
		||||
            this.list = [...this.list, ...res.data.records]
 | 
			
		||||
          } else {
 | 
			
		||||
            this.list = res.data.records
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
 | 
			
		||||
          if (res.data.records.length < 10) {
 | 
			
		||||
            this.isMore = true
 | 
			
		||||
 | 
			
		||||
            return false
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          this.current = this.current + 1
 | 
			
		||||
        } else {
 | 
			
		||||
          uni.hideLoading()
 | 
			
		||||
        }
 | 
			
		||||
      }).catch(() => {
 | 
			
		||||
        uni.hideLoading()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onReachBottom() {
 | 
			
		||||
    this.getList()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.resourcesManage {
 | 
			
		||||
  padding-bottom: 128px;
 | 
			
		||||
  .tab{
 | 
			
		||||
 | 
			
		||||
  .tab {
 | 
			
		||||
    border-bottom: 1px solid #ddd;
 | 
			
		||||
    margin-bottom: 4px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .audio {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 400rpx;
 | 
			
		||||
    height: 400 rpx;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 104rpx 0 46rpx;
 | 
			
		||||
    padding: 104 rpx 0 46 rpx;
 | 
			
		||||
 | 
			
		||||
    audio {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .record{
 | 
			
		||||
  .record {
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    .item{
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      border-bottom: 1px solid #ddd;
 | 
			
		||||
      padding: 32px 30px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      img{
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        width: 56px;
 | 
			
		||||
        height: 56px;
 | 
			
		||||
        margin-right: 14px;
 | 
			
		||||
      }
 | 
			
		||||
      .info{
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        width: calc(100% - 70px);
 | 
			
		||||
        line-height: 44px;
 | 
			
		||||
        font-size: 34px;
 | 
			
		||||
@@ -192,34 +199,41 @@
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .record-text{
 | 
			
		||||
     background-color: #fff;
 | 
			
		||||
    .item{
 | 
			
		||||
 | 
			
		||||
  .record-text {
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      border-bottom: 1px solid #ddd;
 | 
			
		||||
      padding: 32px 30px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      div{
 | 
			
		||||
 | 
			
		||||
      div {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        font-family: PingFangSC-Medium, PingFang SC;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
        color: #333;
 | 
			
		||||
        overflow: hidden; 
 | 
			
		||||
        text-overflow:ellipsis; 
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        text-overflow: ellipsis;
 | 
			
		||||
        white-space: nowrap;
 | 
			
		||||
        margin-bottom: 12px;
 | 
			
		||||
        .color-0063E5{
 | 
			
		||||
 | 
			
		||||
        .color-0063E5 {
 | 
			
		||||
          color: #0063E5;
 | 
			
		||||
        }
 | 
			
		||||
        .color-FF8100{
 | 
			
		||||
 | 
			
		||||
        .color-FF8100 {
 | 
			
		||||
          color: #FF8100;
 | 
			
		||||
        }
 | 
			
		||||
        .color-FF4466{
 | 
			
		||||
 | 
			
		||||
        .color-FF4466 {
 | 
			
		||||
          color: #FF4466;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      p{
 | 
			
		||||
 | 
			
		||||
      p {
 | 
			
		||||
        font-family: PingFangSC-Regular, PingFang SC;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        color: #666;
 | 
			
		||||
@@ -235,7 +249,8 @@
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .add-img{
 | 
			
		||||
 | 
			
		||||
  .add-img {
 | 
			
		||||
    width: 120px;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 120px;
 | 
			
		||||
 
 | 
			
		||||
@@ -15,28 +15,25 @@
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script> 
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  name: "talking",
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    
 | 
			
		||||
    return {}
 | 
			
		||||
  },
 | 
			
		||||
  methods: {},
 | 
			
		||||
  mounted() {
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
uni-page-body{
 | 
			
		||||
uni-page-body {
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.talking {
 | 
			
		||||
  .header{
 | 
			
		||||
  .header {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 128px;
 | 
			
		||||
    background: #F6F8FC;
 | 
			
		||||
@@ -44,41 +41,49 @@ uni-page-body{
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    p{
 | 
			
		||||
 | 
			
		||||
    p {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333;
 | 
			
		||||
      line-height: 44px;
 | 
			
		||||
      span{
 | 
			
		||||
 | 
			
		||||
      span {
 | 
			
		||||
        color: #1174FE;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    img{
 | 
			
		||||
 | 
			
		||||
    img {
 | 
			
		||||
      width: 32px;
 | 
			
		||||
      height: 32px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .content{
 | 
			
		||||
 | 
			
		||||
  .content {
 | 
			
		||||
    margin-top: 224px;
 | 
			
		||||
    .time{
 | 
			
		||||
 | 
			
		||||
    .time {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      font-size: 96px;
 | 
			
		||||
      color: #000000;
 | 
			
		||||
      line-height: 134px;
 | 
			
		||||
    }
 | 
			
		||||
    img{
 | 
			
		||||
 | 
			
		||||
    img {
 | 
			
		||||
      width: 406px;
 | 
			
		||||
      height: 306px;
 | 
			
		||||
      margin: 0 0 48px 172px;
 | 
			
		||||
    }
 | 
			
		||||
    .text{
 | 
			
		||||
 | 
			
		||||
    .text {
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      color: #999;
 | 
			
		||||
      line-height: 42px;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .footer{
 | 
			
		||||
 | 
			
		||||
  .footer {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
@@ -87,10 +92,11 @@ uni-page-body{
 | 
			
		||||
    background: #F6F8FC;
 | 
			
		||||
    padding: 20px 310px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    img{
 | 
			
		||||
 | 
			
		||||
    img {
 | 
			
		||||
      width: 128px;
 | 
			
		||||
      height: 128px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -38,9 +38,9 @@
 | 
			
		||||
        <u-row justify="between">
 | 
			
		||||
          <u-row>
 | 
			
		||||
            <img
 | 
			
		||||
              class="avatar"
 | 
			
		||||
              :src="item.portrait ? item.portrait : $cdn + 'other/tx.png'"
 | 
			
		||||
              alt=""/>
 | 
			
		||||
                class="avatar"
 | 
			
		||||
                :src="item.portrait ? item.portrait : $cdn + 'other/tx.png'"
 | 
			
		||||
                alt=""/>
 | 
			
		||||
            <div class="wrap">
 | 
			
		||||
              <span class="name">{{ item.nickName }}</span>
 | 
			
		||||
              <span class="date">{{ item.createTime }}</span>
 | 
			
		||||
@@ -48,7 +48,7 @@
 | 
			
		||||
          </u-row>
 | 
			
		||||
          <u-row>
 | 
			
		||||
            <u-icon :name="$cdn + 'Location2@2x.png'" :custom-style="{width:'20px',height:'20px'}"></u-icon>
 | 
			
		||||
            <span class="date">{{item.areaName}}</span>
 | 
			
		||||
            <span class="date">{{ item.areaName }}</span>
 | 
			
		||||
          </u-row>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <div class="content">
 | 
			
		||||
@@ -141,7 +141,7 @@ export default {
 | 
			
		||||
          status: this.currentType,
 | 
			
		||||
          reportType: this.reportIndex == 6 ? null : this.reportIndex,
 | 
			
		||||
          address: this.keyword,
 | 
			
		||||
          areaId:this.user?.areaId
 | 
			
		||||
          areaId: this.user?.areaId
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res?.code == 0) {
 | 
			
		||||
 
 | 
			
		||||
@@ -30,12 +30,13 @@
 | 
			
		||||
      <text class="title">事件描述</text>
 | 
			
		||||
      <div class="content">{{ detail.explain }}</div>
 | 
			
		||||
      <div class="photos">
 | 
			
		||||
        <img :src="item.url" alt="" v-for="(item,index) in detail.files" :key="index" @click.stop="previewImage(detail.files,index)">
 | 
			
		||||
        <img :src="item.url" alt="" v-for="(item,index) in detail.files" :key="index"
 | 
			
		||||
             @click.stop="previewImage(detail.files,index)">
 | 
			
		||||
      </div>
 | 
			
		||||
      <template v-if="detail.handleResult">
 | 
			
		||||
        <u-row justify="space-between" class="result">
 | 
			
		||||
          <text class="title">处理结果</text>
 | 
			
		||||
          <text>{{detail.integral|formt}}</text>
 | 
			
		||||
          <text>{{ detail.integral|formt }}</text>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <div class="content">{{ detail.handleResult }}</div>
 | 
			
		||||
        <div class="photos">
 | 
			
		||||
@@ -93,7 +94,7 @@ export default {
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    previewImage(data,index) {
 | 
			
		||||
    previewImage(data, index) {
 | 
			
		||||
      uni.previewImage({
 | 
			
		||||
        urls: data.map(e => e.url),
 | 
			
		||||
        current: data[index].url
 | 
			
		||||
@@ -117,8 +118,8 @@ export default {
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  filters:{
 | 
			
		||||
    formt(val){
 | 
			
		||||
  filters: {
 | 
			
		||||
    formt(val) {
 | 
			
		||||
      return +val > 0 ? `+${val}` : val
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -5,8 +5,8 @@
 | 
			
		||||
      <div class="select" @click="handleSelect">
 | 
			
		||||
        {{
 | 
			
		||||
          selected
 | 
			
		||||
            ? `${selected.familyName}家 剩余积分:${selected.familyIntegral}分`
 | 
			
		||||
            : '请选择'
 | 
			
		||||
              ? `${selected.familyName}家 剩余积分:${selected.familyIntegral}分`
 | 
			
		||||
              : '请选择'
 | 
			
		||||
        }}
 | 
			
		||||
        <u-icon name="arrow-right" color="#E2E2E2" size="28"></u-icon>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -16,15 +16,15 @@
 | 
			
		||||
 | 
			
		||||
    <scroll-view scroll-y class="category-wrap">
 | 
			
		||||
      <div
 | 
			
		||||
        class="category-item"
 | 
			
		||||
        v-for="(item, index) in categoryList"
 | 
			
		||||
        :key="index"
 | 
			
		||||
          class="category-item"
 | 
			
		||||
          v-for="(item, index) in categoryList"
 | 
			
		||||
          :key="index"
 | 
			
		||||
      >
 | 
			
		||||
        <img class="category-img" :src="parseObj(item.photo)" alt="" />
 | 
			
		||||
        <img class="category-img" :src="parseObj(item.photo)" alt=""/>
 | 
			
		||||
        <div class="category-info">
 | 
			
		||||
          <label class="hidden">{{ item.merchandiseName }}</label>
 | 
			
		||||
          <span class="score"
 | 
			
		||||
            >{{ item.costIntegral }}
 | 
			
		||||
          >{{ item.costIntegral }}
 | 
			
		||||
            <span>积分</span>
 | 
			
		||||
          </span>
 | 
			
		||||
          <div class="wrap">×{{ item.merchandiseNumber }}</div>
 | 
			
		||||
@@ -35,13 +35,13 @@
 | 
			
		||||
      <div class="sum">
 | 
			
		||||
        <span>共{{ totalCount }}件商品</span>
 | 
			
		||||
        <span
 | 
			
		||||
          >合计:{{ totalScore }}
 | 
			
		||||
        >合计:{{ totalScore }}
 | 
			
		||||
          <span>积分</span>
 | 
			
		||||
        </span>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="btn" @click="hanldeSubmit">确认领取</div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <back />
 | 
			
		||||
    <back/>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
@@ -50,7 +50,7 @@ import Back from '../../components/AiBack'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'balance',
 | 
			
		||||
  components: { Back },
 | 
			
		||||
  components: {Back},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      selected: null,
 | 
			
		||||
@@ -81,7 +81,7 @@ export default {
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    uri() {
 | 
			
		||||
      return this.$cdn+'other/' + 'line.png'
 | 
			
		||||
      return this.$cdn + 'other/' + 'line.png'
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
@@ -95,39 +95,39 @@ export default {
 | 
			
		||||
          title: '请选择结算对象',
 | 
			
		||||
          icon: 'none'
 | 
			
		||||
        })
 | 
			
		||||
      let { memberId, familyId } = this.selected
 | 
			
		||||
      let {memberId, familyId} = this.selected
 | 
			
		||||
      this.$http
 | 
			
		||||
        .post(`/app/appvillagerintegralshoporder/addOrder`, {
 | 
			
		||||
          shopId: this.categoryList[0].shopId,
 | 
			
		||||
          memberId,
 | 
			
		||||
          familyId,
 | 
			
		||||
          orderIntegral: this.totalScore,
 | 
			
		||||
          merchandiseList: this.categoryList.map(e => {
 | 
			
		||||
            return {
 | 
			
		||||
              ...e,
 | 
			
		||||
              merchandiseId: e.id
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
        })
 | 
			
		||||
        .then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            uni.navigateTo({
 | 
			
		||||
              url: '/pages/supermarket/components/resultPage/resultPage'
 | 
			
		||||
            })
 | 
			
		||||
          } else {
 | 
			
		||||
            uni.navigateTo({
 | 
			
		||||
              url:
 | 
			
		||||
                '/pages/supermarket/components/resultPage/resultPage?flag=' +
 | 
			
		||||
                false
 | 
			
		||||
            })
 | 
			
		||||
      .post(`/app/appvillagerintegralshoporder/addOrder`, {
 | 
			
		||||
        shopId: this.categoryList[0].shopId,
 | 
			
		||||
        memberId,
 | 
			
		||||
        familyId,
 | 
			
		||||
        orderIntegral: this.totalScore,
 | 
			
		||||
        merchandiseList: this.categoryList.map(e => {
 | 
			
		||||
          return {
 | 
			
		||||
            ...e,
 | 
			
		||||
            merchandiseId: e.id
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch(e => {
 | 
			
		||||
          uni.showToast({
 | 
			
		||||
            title: e || '网络异常',
 | 
			
		||||
            icon: 'none'
 | 
			
		||||
      })
 | 
			
		||||
      .then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          uni.navigateTo({
 | 
			
		||||
            url: '/pages/supermarket/components/resultPage/resultPage'
 | 
			
		||||
          })
 | 
			
		||||
        } else {
 | 
			
		||||
          uni.navigateTo({
 | 
			
		||||
            url:
 | 
			
		||||
                '/pages/supermarket/components/resultPage/resultPage?flag=' +
 | 
			
		||||
                false
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
      .catch(e => {
 | 
			
		||||
        uni.showToast({
 | 
			
		||||
          title: e || '网络异常',
 | 
			
		||||
          icon: 'none'
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    handleSelect() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
@@ -142,6 +142,7 @@ export default {
 | 
			
		||||
.balance {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #ffffff;
 | 
			
		||||
 | 
			
		||||
  .operate {
 | 
			
		||||
    height: 120px;
 | 
			
		||||
    display: flex;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,69 +1,72 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="result-page">
 | 
			
		||||
    <img :src="imgSrc" alt="">
 | 
			
		||||
    <text>{{text}}</text>
 | 
			
		||||
    <u-button type="primary" :custom-style="{width:'100%',borderRadius:'4px',marginTop:'48px'}" @click="goBack">{{btnText}}</u-button>
 | 
			
		||||
    <text>{{ text }}</text>
 | 
			
		||||
    <u-button type="primary" :custom-style="{width:'100%',borderRadius:'4px',marginTop:'48px'}" @click="goBack">
 | 
			
		||||
      {{ btnText }}
 | 
			
		||||
    </u-button>
 | 
			
		||||
    <back></back>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import Back from "../../../../components/AiBack";
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "result-page",
 | 
			
		||||
    components: {Back},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        flag: true
 | 
			
		||||
      }
 | 
			
		||||
import Back from "../../../../components/AiBack";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "result-page",
 | 
			
		||||
  components: {Back},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      flag: true
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(val) {
 | 
			
		||||
    if (val.flag) {
 | 
			
		||||
      this.flag = val.flag
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    goBack() {
 | 
			
		||||
      uni.navigateBack({
 | 
			
		||||
        delta: 3
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    text() {
 | 
			
		||||
      return this.flag ? '领取成功!' : '领取失败!请联系管理员处理'
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(val) {
 | 
			
		||||
      if (val.flag) {
 | 
			
		||||
        this.flag = val.flag
 | 
			
		||||
      }
 | 
			
		||||
    btnText() {
 | 
			
		||||
      return this.flag ? '确定' : '我知道了'
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      goBack() {
 | 
			
		||||
        uni.navigateBack({
 | 
			
		||||
          delta:3
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    computed: {
 | 
			
		||||
      text(){
 | 
			
		||||
        return this.flag ? '领取成功!' : '领取失败!请联系管理员处理'
 | 
			
		||||
      },
 | 
			
		||||
      btnText(){
 | 
			
		||||
        return this.flag ? '确定' : '我知道了'
 | 
			
		||||
      },
 | 
			
		||||
      imgSrc(){
 | 
			
		||||
        return this.flag ? (this.$cdn+'other/' + 'kztcg.png') : (this.$cdn+'other/' + 'kztsb.png')
 | 
			
		||||
      }
 | 
			
		||||
    imgSrc() {
 | 
			
		||||
      return this.flag ? (this.$cdn + 'other/' + 'kztcg.png') : (this.$cdn + 'other/' + 'kztsb.png')
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .result-page {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #ffffff;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-direction: column;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    padding: 96px ;
 | 
			
		||||
.result-page {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #ffffff;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-direction: column;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  padding: 96px;
 | 
			
		||||
 | 
			
		||||
    img {
 | 
			
		||||
      width: 192px;
 | 
			
		||||
      height: 192px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    text{
 | 
			
		||||
      font-size: 36px;
 | 
			
		||||
      font-weight: 800;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      line-height: 50px;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
    }
 | 
			
		||||
  img {
 | 
			
		||||
    width: 192px;
 | 
			
		||||
    height: 192px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  text {
 | 
			
		||||
    font-size: 36px;
 | 
			
		||||
    font-weight: 800;
 | 
			
		||||
    color: #333333;
 | 
			
		||||
    line-height: 50px;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -5,8 +5,8 @@
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="result-body">
 | 
			
		||||
      <div class="res-item" v-if="result" @click="selected">
 | 
			
		||||
        <span>{{result.familyName}}家</span>
 | 
			
		||||
        <span>剩余积分:{{result.familyIntegral}}分</span>
 | 
			
		||||
        <span>{{ result.familyName }}家</span>
 | 
			
		||||
        <span>剩余积分:{{ result.familyIntegral }}分</span>
 | 
			
		||||
      </div>
 | 
			
		||||
      <span class="placeholder" v-else>请通过搜索“
 | 
			
		||||
        <strong>手机号或身份证号</strong>
 | 
			
		||||
@@ -20,101 +20,101 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import back from "../../components/AiBack";
 | 
			
		||||
import back from "../../components/AiBack";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "search",
 | 
			
		||||
    components: {back},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        keyword: "",
 | 
			
		||||
        show: false,
 | 
			
		||||
        result: null,
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      selected() {
 | 
			
		||||
        uni.navigateBack({
 | 
			
		||||
          delta: 1,
 | 
			
		||||
          success: () => {
 | 
			
		||||
            uni.$emit('selected',this.result)
 | 
			
		||||
          },
 | 
			
		||||
          fail: (err) => {
 | 
			
		||||
            console.error(err)
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      search() {
 | 
			
		||||
        if (this.keyword == "") {
 | 
			
		||||
          return uni.showToast({
 | 
			
		||||
            title: "请输入搜索关键字",
 | 
			
		||||
            icon: 'none'
 | 
			
		||||
          })
 | 
			
		||||
export default {
 | 
			
		||||
  name: "search",
 | 
			
		||||
  components: {back},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      keyword: "",
 | 
			
		||||
      show: false,
 | 
			
		||||
      result: null,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    selected() {
 | 
			
		||||
      uni.navigateBack({
 | 
			
		||||
        delta: 1,
 | 
			
		||||
        success: () => {
 | 
			
		||||
          uni.$emit('selected', this.result)
 | 
			
		||||
        },
 | 
			
		||||
        fail: (err) => {
 | 
			
		||||
          console.error(err)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.$http.post(`/app/appresident/queryFamilyByPhone`, null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            phone: this.keyword
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            this.result = res.data
 | 
			
		||||
          }
 | 
			
		||||
        }).catch(e => {
 | 
			
		||||
          this.result = null
 | 
			
		||||
          uni.showToast({
 | 
			
		||||
            title: e,
 | 
			
		||||
            icon: 'none'
 | 
			
		||||
          })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    search() {
 | 
			
		||||
      if (this.keyword == "") {
 | 
			
		||||
        return uni.showToast({
 | 
			
		||||
          title: "请输入搜索关键字",
 | 
			
		||||
          icon: 'none'
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      confirm() {
 | 
			
		||||
        this.show = false
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.$http.post(`/app/appresident/queryFamilyByPhone`, null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          phone: this.keyword
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          this.result = res.data
 | 
			
		||||
        }
 | 
			
		||||
      }).catch(e => {
 | 
			
		||||
        this.result = null
 | 
			
		||||
        uni.showToast({
 | 
			
		||||
          title: e,
 | 
			
		||||
          icon: 'none'
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    confirm() {
 | 
			
		||||
      this.show = false
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .search {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #ffffff;
 | 
			
		||||
 | 
			
		||||
    .search-wrap {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 24px 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .result-body {
 | 
			
		||||
 | 
			
		||||
      .res-item {
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        border-bottom: 1px solid #F5F5F5;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 0 56px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
 | 
			
		||||
        & > span {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .placeholder {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        margin-top: 144px;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
 | 
			
		||||
        & > strong {
 | 
			
		||||
          color: #135AB8;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
.search {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #ffffff;
 | 
			
		||||
 | 
			
		||||
  .search-wrap {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 24px 32px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .result-body {
 | 
			
		||||
 | 
			
		||||
    .res-item {
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      border-bottom: 1px solid #F5F5F5;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 0 56px;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
 | 
			
		||||
      & > span {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .placeholder {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      margin-top: 144px;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      color: #999999;
 | 
			
		||||
 | 
			
		||||
      & > strong {
 | 
			
		||||
        color: #135AB8;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@
 | 
			
		||||
        <scroll-view scroll-y style="height: 100%;">
 | 
			
		||||
          <div class="nav-left-item" v-for="(val, key, index) in list" :style="active(key)" :key="index"
 | 
			
		||||
               @click="clickSort(key,index)">
 | 
			
		||||
            {{key}}分区
 | 
			
		||||
            {{ key }}分区
 | 
			
		||||
            <u-badge size="mini" :count="sortCountList[index]" absolute :offset="[5,5]"></u-badge>
 | 
			
		||||
          </div>
 | 
			
		||||
        </scroll-view>
 | 
			
		||||
@@ -14,17 +14,17 @@
 | 
			
		||||
        <scroll-view scroll-y style="height: 100%;">
 | 
			
		||||
          <div class="category-item" v-for="(item,index) in categoryList" :key="index">
 | 
			
		||||
            <img
 | 
			
		||||
              :src="parseObj(item.photo)"
 | 
			
		||||
              class="category-img" alt="">
 | 
			
		||||
                :src="parseObj(item.photo)"
 | 
			
		||||
                class="category-img" alt="">
 | 
			
		||||
            <div class="category-info">
 | 
			
		||||
              <label class="hidden">{{item.merchandiseName}}</label>
 | 
			
		||||
              <span class="score">{{item.costIntegral}}
 | 
			
		||||
              <label class="hidden">{{ item.merchandiseName }}</label>
 | 
			
		||||
              <span class="score">{{ item.costIntegral }}
 | 
			
		||||
                <span>积分</span>
 | 
			
		||||
              </span>
 | 
			
		||||
              <div class="wrap">
 | 
			
		||||
                <div class="lxc-count">
 | 
			
		||||
                  <div class="less" @click="less(item,index)">-</div>
 | 
			
		||||
                  <div class="num">{{item.merchandiseNumber}}</div>
 | 
			
		||||
                  <div class="num">{{ item.merchandiseNumber }}</div>
 | 
			
		||||
                  <div class="less" @click="add(item,index)">+</div>
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
@@ -34,8 +34,8 @@
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="footer">
 | 
			
		||||
        <div class="sum">
 | 
			
		||||
          <span>共{{totalCount}}件商品</span>
 | 
			
		||||
          <span>合计:{{totalScore}}
 | 
			
		||||
          <span>共{{ totalCount }}件商品</span>
 | 
			
		||||
          <span>合计:{{ totalScore }}
 | 
			
		||||
          <span>积分</span>
 | 
			
		||||
        </span>
 | 
			
		||||
        </div>
 | 
			
		||||
@@ -47,291 +47,294 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiEmpty from "../../components/AiEmpty";
 | 
			
		||||
  import {mapState} from "vuex";
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "supermarket",
 | 
			
		||||
    components: {AiEmpty},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        list: {},
 | 
			
		||||
        idx: 0,
 | 
			
		||||
        totalScore: 0,
 | 
			
		||||
        sortCountList: [],
 | 
			
		||||
        mark: 0,
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
import AiEmpty from "../../components/AiEmpty";
 | 
			
		||||
import {mapState} from "vuex";
 | 
			
		||||
 | 
			
		||||
    onLoad() {
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
export default {
 | 
			
		||||
  name: "supermarket",
 | 
			
		||||
  components: {AiEmpty},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      list: {},
 | 
			
		||||
      idx: 0,
 | 
			
		||||
      totalScore: 0,
 | 
			
		||||
      sortCountList: [],
 | 
			
		||||
      mark: 0,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    watch: {
 | 
			
		||||
      list: {
 | 
			
		||||
        handler(val) {
 | 
			
		||||
          let sum = 0
 | 
			
		||||
          Object.keys(val).map(e=>{
 | 
			
		||||
            val[e].map(p=>{
 | 
			
		||||
              if (p.merchandiseNumber != 0) {
 | 
			
		||||
                sum += (p.merchandiseNumber) * (p.costIntegral)
 | 
			
		||||
              }
 | 
			
		||||
            })
 | 
			
		||||
          })
 | 
			
		||||
          this.totalScore = sum
 | 
			
		||||
        },
 | 
			
		||||
        immediate: true,
 | 
			
		||||
        deep: true
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  onLoad() {
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
    computed: {
 | 
			
		||||
      ...mapState(['user']),
 | 
			
		||||
      totalCount() {
 | 
			
		||||
        return this.sortCountList.reduce((pre, cur) => (pre + cur), 0)
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      categoryList() {
 | 
			
		||||
        return this.idx == 0 ? this.list[Object.keys(this.list)[0]] : this.list[this.idx]
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      handleSubmit() {
 | 
			
		||||
        if (this.totalCount == 0) {
 | 
			
		||||
          return uni.showToast({
 | 
			
		||||
            title: "您还没有选择商品",
 | 
			
		||||
            icon: 'none'
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
        let filter = []
 | 
			
		||||
        Object.keys(this.list).map(e => {
 | 
			
		||||
          this.list[e].map(p => {
 | 
			
		||||
            if (p.merchandiseNumber > 0) {
 | 
			
		||||
              filter.push(p)
 | 
			
		||||
  watch: {
 | 
			
		||||
    list: {
 | 
			
		||||
      handler(val) {
 | 
			
		||||
        let sum = 0
 | 
			
		||||
        Object.keys(val).map(e => {
 | 
			
		||||
          val[e].map(p => {
 | 
			
		||||
            if (p.merchandiseNumber != 0) {
 | 
			
		||||
              sum += (p.merchandiseNumber) * (p.costIntegral)
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
        })
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/supermarket/balance?category=" + JSON.stringify(filter)
 | 
			
		||||
        })
 | 
			
		||||
        this.totalScore = sum
 | 
			
		||||
      },
 | 
			
		||||
      active(key) {
 | 
			
		||||
        const flag = key == this.idx
 | 
			
		||||
        return {
 | 
			
		||||
          borderLeft: flag ? '3px solid #1D58FE' : '',
 | 
			
		||||
          background: flag ? 'linear-gradient(270deg, #FFFFFF 0%, #FFFFFF 77%, #E7EAFA 100%)' : ''
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      add(item, index) {
 | 
			
		||||
        this.list[this.idx][index]["merchandiseNumber"] = this.list[this.idx][index]["merchandiseNumber"] + 1
 | 
			
		||||
        this.$set(this.sortCountList, this.mark, this.list[this.idx]?.reduce((pre,curr)=>{
 | 
			
		||||
          return (pre + curr.merchandiseNumber)
 | 
			
		||||
        },0))
 | 
			
		||||
      },
 | 
			
		||||
      less(item, index) {
 | 
			
		||||
        if (item.merchandiseNumber > 0) {
 | 
			
		||||
          this.list[this.idx][index]["merchandiseNumber"] = this.list[this.idx][index]["merchandiseNumber"] - 1
 | 
			
		||||
          this.$set(this.sortCountList, this.mark, this.list[this.idx]?.reduce((pre,curr)=>{
 | 
			
		||||
            return (pre + curr.merchandiseNumber)
 | 
			
		||||
          },0))
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      clickSort(key, index) {
 | 
			
		||||
        this.mark = index
 | 
			
		||||
        this.idx = key.toString()
 | 
			
		||||
      },
 | 
			
		||||
      parseObj(json) {
 | 
			
		||||
        return JSON.parse(json || '[]')[0]?.url
 | 
			
		||||
      },
 | 
			
		||||
      getList() {
 | 
			
		||||
        this.$http.post(`/app/appvillagerintegralmerchandise/listByIntegral`, null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            areaId: this.user?.areaId
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            Object.keys(res.data).map(e => {
 | 
			
		||||
              res.data[e].map(p => {
 | 
			
		||||
                p.merchandiseNumber = 0
 | 
			
		||||
              })
 | 
			
		||||
            })
 | 
			
		||||
            this.list = res.data
 | 
			
		||||
            this.idx = Object.keys(res.data)[0]
 | 
			
		||||
            this.sortCountList = Array(Object.keys(res.data).length).fill(0)
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
      immediate: true,
 | 
			
		||||
      deep: true
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  computed: {
 | 
			
		||||
    ...mapState(['user']),
 | 
			
		||||
    totalCount() {
 | 
			
		||||
      return this.sortCountList.reduce((pre, cur) => (pre + cur), 0)
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
    categoryList() {
 | 
			
		||||
      return this.idx == 0 ? this.list[Object.keys(this.list)[0]] : this.list[this.idx]
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    handleSubmit() {
 | 
			
		||||
      if (this.totalCount == 0) {
 | 
			
		||||
        return uni.showToast({
 | 
			
		||||
          title: "您还没有选择商品",
 | 
			
		||||
          icon: 'none'
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
      let filter = []
 | 
			
		||||
      Object.keys(this.list).map(e => {
 | 
			
		||||
        this.list[e].map(p => {
 | 
			
		||||
          if (p.merchandiseNumber > 0) {
 | 
			
		||||
            filter.push(p)
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/supermarket/balance?category=" + JSON.stringify(filter)
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    active(key) {
 | 
			
		||||
      const flag = key == this.idx
 | 
			
		||||
      return {
 | 
			
		||||
        borderLeft: flag ? '3px solid #1D58FE' : '',
 | 
			
		||||
        background: flag ? 'linear-gradient(270deg, #FFFFFF 0%, #FFFFFF 77%, #E7EAFA 100%)' : ''
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    add(item, index) {
 | 
			
		||||
      this.list[this.idx][index]["merchandiseNumber"] = this.list[this.idx][index]["merchandiseNumber"] + 1
 | 
			
		||||
      this.$set(this.sortCountList, this.mark, this.list[this.idx]?.reduce((pre, curr) => {
 | 
			
		||||
        return (pre + curr.merchandiseNumber)
 | 
			
		||||
      }, 0))
 | 
			
		||||
    },
 | 
			
		||||
    less(item, index) {
 | 
			
		||||
      if (item.merchandiseNumber > 0) {
 | 
			
		||||
        this.list[this.idx][index]["merchandiseNumber"] = this.list[this.idx][index]["merchandiseNumber"] - 1
 | 
			
		||||
        this.$set(this.sortCountList, this.mark, this.list[this.idx]?.reduce((pre, curr) => {
 | 
			
		||||
          return (pre + curr.merchandiseNumber)
 | 
			
		||||
        }, 0))
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    clickSort(key, index) {
 | 
			
		||||
      this.mark = index
 | 
			
		||||
      this.idx = key.toString()
 | 
			
		||||
    },
 | 
			
		||||
    parseObj(json) {
 | 
			
		||||
      return JSON.parse(json || '[]')[0]?.url
 | 
			
		||||
    },
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$http.post(`/app/appvillagerintegralmerchandise/listByIntegral`, null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          areaId: this.user?.areaId
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          Object.keys(res.data).map(e => {
 | 
			
		||||
            res.data[e].map(p => {
 | 
			
		||||
              p.merchandiseNumber = 0
 | 
			
		||||
            })
 | 
			
		||||
          })
 | 
			
		||||
          this.list = res.data
 | 
			
		||||
          this.idx = Object.keys(res.data)[0]
 | 
			
		||||
          this.sortCountList = Array(Object.keys(res.data).length).fill(0)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  uni-page-body{
 | 
			
		||||
    background-color: #ffffff;
 | 
			
		||||
  }
 | 
			
		||||
uni-page-body {
 | 
			
		||||
  background-color: #ffffff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  .supermarket {
 | 
			
		||||
    background-color: #ffffff;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    padding-bottom: 104px;
 | 
			
		||||
.supermarket {
 | 
			
		||||
  background-color: #ffffff;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  justify-content: space-between;
 | 
			
		||||
  padding-bottom: 104px;
 | 
			
		||||
 | 
			
		||||
    .nav-left {
 | 
			
		||||
      width: 168px;
 | 
			
		||||
      height: 100%;
 | 
			
		||||
  .nav-left {
 | 
			
		||||
    width: 168px;
 | 
			
		||||
    height: 100%;
 | 
			
		||||
 | 
			
		||||
      .nav-left-item {
 | 
			
		||||
        height: 104px;
 | 
			
		||||
        background: #FAF9FB;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        border-top: 1px solid #D8E5FF;
 | 
			
		||||
        border-left: 2px solid transparent;
 | 
			
		||||
        position: relative;
 | 
			
		||||
 | 
			
		||||
        &:nth-last-child {
 | 
			
		||||
          border-bottom: 1px solid #D8E5FF;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .nav-right {
 | 
			
		||||
      width: calc(100% - 168px - 24px);
 | 
			
		||||
      height: 100%;
 | 
			
		||||
 | 
			
		||||
      .category-item {
 | 
			
		||||
        height: 264px;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 28px 32px 44px 30px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
 | 
			
		||||
        .category-img {
 | 
			
		||||
          width: 192px;
 | 
			
		||||
          height: 192px;
 | 
			
		||||
          border: 1px solid #F6F6F6;
 | 
			
		||||
          flex-shrink: 0;
 | 
			
		||||
          margin-right: 30px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .category-info {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          flex-direction: column;
 | 
			
		||||
          justify-content: space-between;
 | 
			
		||||
 | 
			
		||||
          & > label {
 | 
			
		||||
            font-size: 30px;
 | 
			
		||||
            font-weight: 800;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            line-height: 42px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          .score {
 | 
			
		||||
            font-size: 40px;
 | 
			
		||||
            font-weight: 600;
 | 
			
		||||
            color: #FA4A51;
 | 
			
		||||
            line-height: 40px;
 | 
			
		||||
 | 
			
		||||
            & > span {
 | 
			
		||||
              font-size: 24px;
 | 
			
		||||
              color: #FA4A51;
 | 
			
		||||
              margin-left: 8px;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          .wrap {
 | 
			
		||||
            display: flex;
 | 
			
		||||
            justify-content: flex-end;
 | 
			
		||||
            .lxc-count{
 | 
			
		||||
              display: flex;
 | 
			
		||||
              align-items: center;
 | 
			
		||||
              justify-content: center;
 | 
			
		||||
              .less{
 | 
			
		||||
                width: 40px;
 | 
			
		||||
                height: 40px;
 | 
			
		||||
                font-size: 20px;
 | 
			
		||||
                display: flex;
 | 
			
		||||
                align-items: center;
 | 
			
		||||
                justify-content: center;
 | 
			
		||||
                font-size: 36px;
 | 
			
		||||
                font-weight: 500;
 | 
			
		||||
                color: #333333;
 | 
			
		||||
              }
 | 
			
		||||
 | 
			
		||||
              .num{
 | 
			
		||||
                width: 89px;
 | 
			
		||||
                height: 61px;
 | 
			
		||||
                display: flex;
 | 
			
		||||
                align-items: center;
 | 
			
		||||
                justify-content: center;
 | 
			
		||||
                background: #F6F6F6;
 | 
			
		||||
                border-radius: 10px;
 | 
			
		||||
                font-size: 28px;
 | 
			
		||||
                font-weight: 400;
 | 
			
		||||
                color: #333333;
 | 
			
		||||
                margin: 0 16px;
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .footer {
 | 
			
		||||
    .nav-left-item {
 | 
			
		||||
      height: 104px;
 | 
			
		||||
      background: #FAF9FB;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      background-color: #ffffff;
 | 
			
		||||
      z-index: 100;
 | 
			
		||||
      height: 104px;
 | 
			
		||||
      box-shadow: 0px -2px 8px 0px rgba(214, 214, 214, 0.5);
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      border-top: 1px solid #D8E5FF;
 | 
			
		||||
      border-left: 2px solid transparent;
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
      .sum {
 | 
			
		||||
        width: calc(100% - 212px);
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 30px;
 | 
			
		||||
      &:nth-last-child {
 | 
			
		||||
        border-bottom: 1px solid #D8E5FF;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .nav-right {
 | 
			
		||||
    width: calc(100% - 168px - 24px);
 | 
			
		||||
    height: 100%;
 | 
			
		||||
 | 
			
		||||
    .category-item {
 | 
			
		||||
      height: 264px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 28px 32px 44px 30px;
 | 
			
		||||
      display: flex;
 | 
			
		||||
 | 
			
		||||
      .category-img {
 | 
			
		||||
        width: 192px;
 | 
			
		||||
        height: 192px;
 | 
			
		||||
        border: 1px solid #F6F6F6;
 | 
			
		||||
        flex-shrink: 0;
 | 
			
		||||
        margin-right: 30px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .category-info {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
 | 
			
		||||
        & > span:nth-child(1), span:nth-child(2) {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          font-weight: 400;
 | 
			
		||||
          color: #F94246;
 | 
			
		||||
        & > label {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          font-weight: 800;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          line-height: 42px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .score {
 | 
			
		||||
          font-size: 40px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
          color: #FA4A51;
 | 
			
		||||
          line-height: 40px;
 | 
			
		||||
 | 
			
		||||
          & > span {
 | 
			
		||||
            font-size: 24px;
 | 
			
		||||
            margin-left: 12px;
 | 
			
		||||
            color: #FA4A51;
 | 
			
		||||
            margin-left: 8px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .btn {
 | 
			
		||||
        width: 212px;
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        background-color: #1365DD;
 | 
			
		||||
        font-size: 36px;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
        color: #FFFFFF;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
        .wrap {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          justify-content: flex-end;
 | 
			
		||||
 | 
			
		||||
    .hidden {
 | 
			
		||||
      overflow: hidden;
 | 
			
		||||
      text-overflow: ellipsis;
 | 
			
		||||
      display: -webkit-box;
 | 
			
		||||
      -webkit-box-orient: vertical;
 | 
			
		||||
      -webkit-line-clamp: 2;
 | 
			
		||||
          .lxc-count {
 | 
			
		||||
            display: flex;
 | 
			
		||||
            align-items: center;
 | 
			
		||||
            justify-content: center;
 | 
			
		||||
 | 
			
		||||
            .less {
 | 
			
		||||
              width: 40px;
 | 
			
		||||
              height: 40px;
 | 
			
		||||
              font-size: 20px;
 | 
			
		||||
              display: flex;
 | 
			
		||||
              align-items: center;
 | 
			
		||||
              justify-content: center;
 | 
			
		||||
              font-size: 36px;
 | 
			
		||||
              font-weight: 500;
 | 
			
		||||
              color: #333333;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            .num {
 | 
			
		||||
              width: 89px;
 | 
			
		||||
              height: 61px;
 | 
			
		||||
              display: flex;
 | 
			
		||||
              align-items: center;
 | 
			
		||||
              justify-content: center;
 | 
			
		||||
              background: #F6F6F6;
 | 
			
		||||
              border-radius: 10px;
 | 
			
		||||
              font-size: 28px;
 | 
			
		||||
              font-weight: 400;
 | 
			
		||||
              color: #333333;
 | 
			
		||||
              margin: 0 16px;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .footer {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    background-color: #ffffff;
 | 
			
		||||
    z-index: 100;
 | 
			
		||||
    height: 104px;
 | 
			
		||||
    box-shadow: 0px -2px 8px 0px rgba(214, 214, 214, 0.5);
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
 | 
			
		||||
    .sum {
 | 
			
		||||
      width: calc(100% - 212px);
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 30px;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
 | 
			
		||||
      & > span:nth-child(1), span:nth-child(2) {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        color: #F94246;
 | 
			
		||||
 | 
			
		||||
        & > span {
 | 
			
		||||
          font-size: 24px;
 | 
			
		||||
          margin-left: 12px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .btn {
 | 
			
		||||
      width: 212px;
 | 
			
		||||
      height: 100%;
 | 
			
		||||
      background-color: #1365DD;
 | 
			
		||||
      font-size: 36px;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .hidden {
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
    text-overflow: ellipsis;
 | 
			
		||||
    display: -webkit-box;
 | 
			
		||||
    -webkit-box-orient: vertical;
 | 
			
		||||
    -webkit-line-clamp: 2;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <picker @change="change" :value="form.type" range-key="dictName" :range="$dict.getDict('workTaskType')">
 | 
			
		||||
            <u-row>
 | 
			
		||||
              <div v-if="form.type!=null" class="value">{{$dict.getDict('workTaskType')[form.type]["dictName"]}}</div>
 | 
			
		||||
              <div v-if="form.type!=null" class="value">{{ $dict.getDict('workTaskType')[form.type]["dictName"] }}</div>
 | 
			
		||||
              <div v-else class="placeholder">请选择</div>
 | 
			
		||||
              <div class="arrow"></div>
 | 
			
		||||
            </u-row>
 | 
			
		||||
@@ -41,7 +41,7 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <picker @change="dateChange" mode="date" :value="form.lastTime" :start="startDate" :end="endDate">
 | 
			
		||||
            <u-row>
 | 
			
		||||
              <div v-if="form.lastTime!=null" class="value">{{form.lastTime}}</div>
 | 
			
		||||
              <div v-if="form.lastTime!=null" class="value">{{ form.lastTime }}</div>
 | 
			
		||||
              <div v-else class="placeholder">请选择</div>
 | 
			
		||||
              <div class="arrow" v-if="form.lastTime==null"></div>
 | 
			
		||||
              <div class="clear" v-else @click.stop="form.lastTime = null"></div>
 | 
			
		||||
@@ -56,8 +56,8 @@
 | 
			
		||||
          </div>
 | 
			
		||||
          <u-row @click="handleSelectUser(0)" style="justify-content: flex-end">
 | 
			
		||||
            <div v-if="form.userInfoList.length" class="value">
 | 
			
		||||
              已选择<em>{{form.userInfoList.slice(0,2).map(e=>e.name).join("、")}}</em>等
 | 
			
		||||
              <em>{{form.userInfoList.length}}</em>人
 | 
			
		||||
              已选择<em>{{ form.userInfoList.slice(0, 2).map(e => e.name).join("、") }}</em>等
 | 
			
		||||
              <em>{{ form.userInfoList.length }}</em>人
 | 
			
		||||
            </div>
 | 
			
		||||
            <div v-else class="placeholder">请选择</div>
 | 
			
		||||
            <div class="arrow"></div>
 | 
			
		||||
@@ -69,8 +69,8 @@
 | 
			
		||||
          <div class="left" style="line-height: 22px;">督办人</div>
 | 
			
		||||
          <u-row @click="handleSelectUser(1)" style="justify-content: flex-end">
 | 
			
		||||
            <div v-if="form.checkUserList.length" class="value">
 | 
			
		||||
              已选择<em>{{form.checkUserList.slice(0,2).map(e=>e.name).join("、")}}</em>等
 | 
			
		||||
              <em>{{form.checkUserList.length}}</em>人
 | 
			
		||||
              已选择<em>{{ form.checkUserList.slice(0, 2).map(e => e.name).join("、") }}</em>等
 | 
			
		||||
              <em>{{ form.checkUserList.length }}</em>人
 | 
			
		||||
            </div>
 | 
			
		||||
            <div v-else class="placeholder">请选择</div>
 | 
			
		||||
            <div class="arrow"></div>
 | 
			
		||||
@@ -82,8 +82,8 @@
 | 
			
		||||
          <div class="left" style="line-height: 22px;">抄送人</div>
 | 
			
		||||
          <u-row @click="handleSelectUser(2)" style="justify-content: flex-end">
 | 
			
		||||
            <div v-if="form.sendUserList.length" class="value">
 | 
			
		||||
              已选择<em>{{form.sendUserList.slice(0,2).map(e=>e.name).join("、")}}</em>等
 | 
			
		||||
              <em>{{form.sendUserList.length}}</em>人
 | 
			
		||||
              已选择<em>{{ form.sendUserList.slice(0, 2).map(e => e.name).join("、") }}</em>等
 | 
			
		||||
              <em>{{ form.sendUserList.length }}</em>人
 | 
			
		||||
            </div>
 | 
			
		||||
            <div v-else class="placeholder">请选择</div>
 | 
			
		||||
            <div class="arrow"></div>
 | 
			
		||||
@@ -106,220 +106,220 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
  import AiSelectEnterprise from "../../../components/AiSelectEnterprise";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
import AiSelectEnterprise from "../../../components/AiSelectEnterprise";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "create",
 | 
			
		||||
    components: {AiBack, AiSelectEnterprise},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        index: null,
 | 
			
		||||
        userSelect: false,
 | 
			
		||||
        selectList: [],
 | 
			
		||||
        form: {
 | 
			
		||||
          parentTaskCode: null,
 | 
			
		||||
          type: null,
 | 
			
		||||
          taskTitle: "",
 | 
			
		||||
          taskDescription: "",
 | 
			
		||||
          lastTime: null,
 | 
			
		||||
          userInfoList: [],
 | 
			
		||||
          checkUserList: [],
 | 
			
		||||
          sendUserList: [],
 | 
			
		||||
          isNofity: 0
 | 
			
		||||
        },
 | 
			
		||||
        currentClick: null,
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(opt) {
 | 
			
		||||
      if (opt.taskCode) {
 | 
			
		||||
        this.form.parentTaskCode = opt.taskCode
 | 
			
		||||
      }
 | 
			
		||||
      this.$dict.load("workTaskType")
 | 
			
		||||
    },
 | 
			
		||||
    computed: {
 | 
			
		||||
      startDate() {
 | 
			
		||||
        return this.getDate('start');
 | 
			
		||||
export default {
 | 
			
		||||
  name: "create",
 | 
			
		||||
  components: {AiBack, AiSelectEnterprise},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      index: null,
 | 
			
		||||
      userSelect: false,
 | 
			
		||||
      selectList: [],
 | 
			
		||||
      form: {
 | 
			
		||||
        parentTaskCode: null,
 | 
			
		||||
        type: null,
 | 
			
		||||
        taskTitle: "",
 | 
			
		||||
        taskDescription: "",
 | 
			
		||||
        lastTime: null,
 | 
			
		||||
        userInfoList: [],
 | 
			
		||||
        checkUserList: [],
 | 
			
		||||
        sendUserList: [],
 | 
			
		||||
        isNofity: 0
 | 
			
		||||
      },
 | 
			
		||||
      endDate() {
 | 
			
		||||
        return this.getDate('end');
 | 
			
		||||
      }
 | 
			
		||||
      currentClick: null,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(opt) {
 | 
			
		||||
    if (opt.taskCode) {
 | 
			
		||||
      this.form.parentTaskCode = opt.taskCode
 | 
			
		||||
    }
 | 
			
		||||
    this.$dict.load("workTaskType")
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    startDate() {
 | 
			
		||||
      return this.getDate('start');
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      handleCreate() {
 | 
			
		||||
        if (this.form.type==null) return this.$u.toast("请选择任务类型")
 | 
			
		||||
        if (!this.form.taskTitle) return this.$u.toast("请输入任务标题")
 | 
			
		||||
        if (!this.form.taskDescription) return this.$u.toast("请输入任务说明")
 | 
			
		||||
        if (this.form.lastTime==null) return this.$u.toast("请选择截止日期")
 | 
			
		||||
        if (!this.form.userInfoList.length) return this.$u.toast("请选择执行人")
 | 
			
		||||
    endDate() {
 | 
			
		||||
      return this.getDate('end');
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    handleCreate() {
 | 
			
		||||
      if (this.form.type == null) return this.$u.toast("请选择任务类型")
 | 
			
		||||
      if (!this.form.taskTitle) return this.$u.toast("请输入任务标题")
 | 
			
		||||
      if (!this.form.taskDescription) return this.$u.toast("请输入任务说明")
 | 
			
		||||
      if (this.form.lastTime == null) return this.$u.toast("请选择截止日期")
 | 
			
		||||
      if (!this.form.userInfoList.length) return this.$u.toast("请选择执行人")
 | 
			
		||||
 | 
			
		||||
        this.$http.post("/app/appworktaskinfo/addOrUpdate", {
 | 
			
		||||
          ...this.form,
 | 
			
		||||
          lastTime:this.form.lastTime + " 23:59:59"
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            this.$u.toast("创建成功")
 | 
			
		||||
            this.$refs["aiBack"].back()
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      handleSelectUser(status) {
 | 
			
		||||
        this.currentClick = status
 | 
			
		||||
        if (this.currentClick == 0 && this.form.userInfoList.length) {
 | 
			
		||||
          this.selectList = this.form.userInfoList
 | 
			
		||||
        } else if (this.currentClick == 1 && this.form.checkUserList.length) {
 | 
			
		||||
          this.selectList = this.form.checkUserList
 | 
			
		||||
        } else if (this.currentClick == 2 && this.form.sendUserList.length) {
 | 
			
		||||
          this.selectList = this.form.sendUserList
 | 
			
		||||
      this.$http.post("/app/appworktaskinfo/addOrUpdate", {
 | 
			
		||||
        ...this.form,
 | 
			
		||||
        lastTime: this.form.lastTime + " 23:59:59"
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.$u.toast("创建成功")
 | 
			
		||||
          this.$refs["aiBack"].back()
 | 
			
		||||
        }
 | 
			
		||||
        this.userSelect = true
 | 
			
		||||
      },
 | 
			
		||||
      dateChange(e) {
 | 
			
		||||
        let date = this.getDate({format: true});
 | 
			
		||||
        if (new Date(date).getTime() > new Date(e.target.value).getTime()) {
 | 
			
		||||
          this.form.lastTime = null
 | 
			
		||||
          return this.$u.toast("截止时间不能小于当前时间")
 | 
			
		||||
        }
 | 
			
		||||
        this.form.lastTime = e.target.value
 | 
			
		||||
      },
 | 
			
		||||
      getDate(type) {
 | 
			
		||||
        const date = new Date();
 | 
			
		||||
        let year = date.getFullYear();
 | 
			
		||||
        let month = date.getMonth() + 1;
 | 
			
		||||
        let day = date.getDate();
 | 
			
		||||
 | 
			
		||||
        if (type === 'start') {
 | 
			
		||||
          year = year - 60;
 | 
			
		||||
        } else if (type === 'end') {
 | 
			
		||||
          year = year + 2;
 | 
			
		||||
        }
 | 
			
		||||
        month = month > 9 ? month : '0' + month;
 | 
			
		||||
        day = day > 9 ? day : '0' + day;
 | 
			
		||||
        return `${year}-${month}-${day}`;
 | 
			
		||||
      },
 | 
			
		||||
      change(e) {
 | 
			
		||||
        this.form.type = e.detail.value
 | 
			
		||||
      },
 | 
			
		||||
      userChange(e) {
 | 
			
		||||
        if (this.currentClick == 0) {
 | 
			
		||||
          this.form.userInfoList = e
 | 
			
		||||
        } else if (this.currentClick == 1) {
 | 
			
		||||
          this.form.checkUserList = e
 | 
			
		||||
        } else if (this.currentClick == 2) {
 | 
			
		||||
          this.form.sendUserList = e
 | 
			
		||||
        }
 | 
			
		||||
        this.selectList = []
 | 
			
		||||
      }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
    handleSelectUser(status) {
 | 
			
		||||
      this.currentClick = status
 | 
			
		||||
      if (this.currentClick == 0 && this.form.userInfoList.length) {
 | 
			
		||||
        this.selectList = this.form.userInfoList
 | 
			
		||||
      } else if (this.currentClick == 1 && this.form.checkUserList.length) {
 | 
			
		||||
        this.selectList = this.form.checkUserList
 | 
			
		||||
      } else if (this.currentClick == 2 && this.form.sendUserList.length) {
 | 
			
		||||
        this.selectList = this.form.sendUserList
 | 
			
		||||
      }
 | 
			
		||||
      this.userSelect = true
 | 
			
		||||
    },
 | 
			
		||||
    dateChange(e) {
 | 
			
		||||
      let date = this.getDate({format: true});
 | 
			
		||||
      if (new Date(date).getTime() > new Date(e.target.value).getTime()) {
 | 
			
		||||
        this.form.lastTime = null
 | 
			
		||||
        return this.$u.toast("截止时间不能小于当前时间")
 | 
			
		||||
      }
 | 
			
		||||
      this.form.lastTime = e.target.value
 | 
			
		||||
    },
 | 
			
		||||
    getDate(type) {
 | 
			
		||||
      const date = new Date();
 | 
			
		||||
      let year = date.getFullYear();
 | 
			
		||||
      let month = date.getMonth() + 1;
 | 
			
		||||
      let day = date.getDate();
 | 
			
		||||
 | 
			
		||||
      if (type === 'start') {
 | 
			
		||||
        year = year - 60;
 | 
			
		||||
      } else if (type === 'end') {
 | 
			
		||||
        year = year + 2;
 | 
			
		||||
      }
 | 
			
		||||
      month = month > 9 ? month : '0' + month;
 | 
			
		||||
      day = day > 9 ? day : '0' + day;
 | 
			
		||||
      return `${year}-${month}-${day}`;
 | 
			
		||||
    },
 | 
			
		||||
    change(e) {
 | 
			
		||||
      this.form.type = e.detail.value
 | 
			
		||||
    },
 | 
			
		||||
    userChange(e) {
 | 
			
		||||
      if (this.currentClick == 0) {
 | 
			
		||||
        this.form.userInfoList = e
 | 
			
		||||
      } else if (this.currentClick == 1) {
 | 
			
		||||
        this.form.checkUserList = e
 | 
			
		||||
      } else if (this.currentClick == 2) {
 | 
			
		||||
        this.form.sendUserList = e
 | 
			
		||||
      }
 | 
			
		||||
      this.selectList = []
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .create-sub-task {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
.create-sub-task {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #F5F5F5;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  padding: 16px 0 140px 0;
 | 
			
		||||
 | 
			
		||||
  .card {
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 16px 0 140px 0;
 | 
			
		||||
    padding: 32px 34px;
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 32px 34px;
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
    .left {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      line-height: 48px;
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
      & > em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
 | 
			
		||||
        & > em {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #FF4466;
 | 
			
		||||
        }
 | 
			
		||||
        color: #FF4466;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      .value {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
    .value {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
 | 
			
		||||
        & > em {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .placeholder {
 | 
			
		||||
      & > em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .arrow {
 | 
			
		||||
        width: 16px;
 | 
			
		||||
        height: 16px;
 | 
			
		||||
        border-top: 5px solid #CCCCCC;
 | 
			
		||||
        border-right: 5px solid #CCCCCC;
 | 
			
		||||
        transform: rotate(45deg);
 | 
			
		||||
        margin-left: 8px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .clear {
 | 
			
		||||
        width: 32px;
 | 
			
		||||
        height: 32px;
 | 
			
		||||
        border-radius: 50%;
 | 
			
		||||
        background-color: #CCCCCC;
 | 
			
		||||
        margin-left: 8px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
 | 
			
		||||
        &:before {
 | 
			
		||||
          content: "";
 | 
			
		||||
          width: 4px;
 | 
			
		||||
          height: 24px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 50%;
 | 
			
		||||
          top: 50%;
 | 
			
		||||
          transform: translate(-50%, -50%) rotate(-45deg);
 | 
			
		||||
          background-color: #FFFFFF;
 | 
			
		||||
          border-radius: 4px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          content: "";
 | 
			
		||||
          width: 4px;
 | 
			
		||||
          height: 24px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 50%;
 | 
			
		||||
          top: 50%;
 | 
			
		||||
          transform: translate(-50%, -50%) rotate(45deg);
 | 
			
		||||
          background-color: #FFFFFF;
 | 
			
		||||
          border-radius: 4px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      textarea {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .border {
 | 
			
		||||
      border-top: 1px solid rgba(216, 221, 230, 0.5);
 | 
			
		||||
      border-bottom: 1px solid rgba(216, 221, 230, 0.5);
 | 
			
		||||
    .placeholder {
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      color: #999999;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .footer {
 | 
			
		||||
      height: 112px;
 | 
			
		||||
    .arrow {
 | 
			
		||||
      width: 16px;
 | 
			
		||||
      height: 16px;
 | 
			
		||||
      border-top: 5px solid #CCCCCC;
 | 
			
		||||
      border-right: 5px solid #CCCCCC;
 | 
			
		||||
      transform: rotate(45deg);
 | 
			
		||||
      margin-left: 8px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .clear {
 | 
			
		||||
      width: 32px;
 | 
			
		||||
      height: 32px;
 | 
			
		||||
      border-radius: 50%;
 | 
			
		||||
      background-color: #CCCCCC;
 | 
			
		||||
      margin-left: 8px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
      &:before {
 | 
			
		||||
        content: "";
 | 
			
		||||
        width: 4px;
 | 
			
		||||
        height: 24px;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        left: 50%;
 | 
			
		||||
        top: 50%;
 | 
			
		||||
        transform: translate(-50%, -50%) rotate(-45deg);
 | 
			
		||||
        background-color: #FFFFFF;
 | 
			
		||||
        border-radius: 4px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      &:after {
 | 
			
		||||
        content: "";
 | 
			
		||||
        width: 4px;
 | 
			
		||||
        height: 24px;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        left: 50%;
 | 
			
		||||
        top: 50%;
 | 
			
		||||
        transform: translate(-50%, -50%) rotate(45deg);
 | 
			
		||||
        background-color: #FFFFFF;
 | 
			
		||||
        border-radius: 4px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    textarea {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      background: #1365DD;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      font-size: 36px;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .border {
 | 
			
		||||
    border-top: 1px solid rgba(216, 221, 230, 0.5);
 | 
			
		||||
    border-bottom: 1px solid rgba(216, 221, 230, 0.5);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .footer {
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    background: #1365DD;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    font-size: 36px;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -6,43 +6,43 @@
 | 
			
		||||
    </ai-top-fixed>
 | 
			
		||||
    <template v-if="index==0">
 | 
			
		||||
      <div class="card">
 | 
			
		||||
        <header>{{detail.taskTitle}}</header>
 | 
			
		||||
        <header>{{ detail.taskTitle }}</header>
 | 
			
		||||
        <u-gap height="16"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>任务类型:</span>
 | 
			
		||||
          <span>{{$dict.getLabel("workTaskType",detail.type)}}</span>
 | 
			
		||||
          <span>{{ $dict.getLabel("workTaskType", detail.type) }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>开始时间:</span>
 | 
			
		||||
          <span>{{detail.createTime}}</span>
 | 
			
		||||
          <span>{{ detail.createTime }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>截止时间:</span>
 | 
			
		||||
          <span style="color:#1365DD">{{detail.lastTime}}</span>
 | 
			
		||||
          <span style="color:#1365DD">{{ detail.lastTime }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>剩余时间:</span>
 | 
			
		||||
          <span style="color:#1365DD">{{detail.overTimeStatus}}</span>
 | 
			
		||||
          <span style="color:#1365DD">{{ detail.overTimeStatus }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>任务状态:</span>
 | 
			
		||||
          <span>{{$dict.getLabel("workTaskDoStatus",detail.status)}}</span>
 | 
			
		||||
          <span>{{ $dict.getLabel("workTaskDoStatus", detail.status) }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <span>执行说明:</span>
 | 
			
		||||
          <span>{{detail.doDescription}}</span>
 | 
			
		||||
          <span>{{ detail.doDescription }}</span>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="16"></u-gap>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="card" style="padding-top: 0">
 | 
			
		||||
        <div class="label">任务说明</div>
 | 
			
		||||
        <u-read-more close-text="展开" color="#999999" show-height="300">
 | 
			
		||||
          <span>{{detail.taskDescription}}</span>
 | 
			
		||||
          <span>{{ detail.taskDescription }}</span>
 | 
			
		||||
        </u-read-more>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="card" style="padding-top: 0" v-if="detail.fileList && detail.fileList.length">
 | 
			
		||||
@@ -51,9 +51,9 @@
 | 
			
		||||
          <u-row justify="between">
 | 
			
		||||
            <label class="left">
 | 
			
		||||
              <img :src="$cdn + 'common/appendix.png'" alt="">
 | 
			
		||||
              <span>{{item.name}}.{{item.postfix}}</span>
 | 
			
		||||
              <span>{{ item.name }}.{{ item.postfix }}</span>
 | 
			
		||||
            </label>
 | 
			
		||||
            <span>{{(item.size/1024).toFixed(2)}}KB</span>
 | 
			
		||||
            <span>{{ (item.size / 1024).toFixed(2) }}KB</span>
 | 
			
		||||
          </u-row>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -63,26 +63,27 @@
 | 
			
		||||
      <template v-if="['0','1'].includes(isMine)">
 | 
			
		||||
        <div class="card">
 | 
			
		||||
          <div class="label">我的进度</div>
 | 
			
		||||
          <text>已完成{{detail.myUserInfo.percent}}%</text>
 | 
			
		||||
          <text>已完成{{ detail.myUserInfo.percent }}%</text>
 | 
			
		||||
          <div class="progress">
 | 
			
		||||
            <div class="pro-active" :style="{width:detail.myUserInfo.percent + '%'}"></div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="card" v-if="detail.processList.length">
 | 
			
		||||
          <u-collapse>
 | 
			
		||||
            <u-collapse-item :title="item.createDate && item.createDate.split(' ')[0]" v-for="(item, index) in detail.processList" :key="index">
 | 
			
		||||
            <u-collapse-item :title="item.createDate && item.createDate.split(' ')[0]"
 | 
			
		||||
                             v-for="(item, index) in detail.processList" :key="index">
 | 
			
		||||
              <template slot="info">
 | 
			
		||||
                完成到<em>{{item.percent}}%</em>
 | 
			
		||||
                完成到<em>{{ item.percent }}%</em>
 | 
			
		||||
              </template>
 | 
			
		||||
              {{item.remarks}}
 | 
			
		||||
              {{ item.remarks }}
 | 
			
		||||
            </u-collapse-item>
 | 
			
		||||
          </u-collapse>
 | 
			
		||||
        </div>
 | 
			
		||||
      </template>
 | 
			
		||||
      <template v-else>
 | 
			
		||||
        <div class="card" v-for="(item,index) in detail.userInfoList" :key="index">
 | 
			
		||||
          <div class="label">{{item.userName}}</div>
 | 
			
		||||
          <text>已完成{{item.percent}}%</text>
 | 
			
		||||
          <div class="label">{{ item.userName }}</div>
 | 
			
		||||
          <text>已完成{{ item.percent }}%</text>
 | 
			
		||||
          <div class="progress">
 | 
			
		||||
            <div class="pro-active" :style="{width:item.percent + '%'}"></div>
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -93,8 +94,8 @@
 | 
			
		||||
    <template v-if="index==2">
 | 
			
		||||
      <div class="card" v-if="list.length">
 | 
			
		||||
        <u-row justify="between" v-for="(item,index) in list" :key="index" class="item" @click="subDetail(item)">
 | 
			
		||||
          <label class="title">{{item.taskTitle}}</label>
 | 
			
		||||
          <label class="right">{{item.percent}}%
 | 
			
		||||
          <label class="title">{{ item.taskTitle }}</label>
 | 
			
		||||
          <label class="right">{{ item.percent }}%
 | 
			
		||||
            <div class="arrow"></div>
 | 
			
		||||
          </label>
 | 
			
		||||
        </u-row>
 | 
			
		||||
@@ -103,342 +104,344 @@
 | 
			
		||||
    </template>
 | 
			
		||||
 | 
			
		||||
    <ai-back></ai-back>
 | 
			
		||||
    <div class="footer" v-if="index==1 && detail.myUserInfo.taskRole == 1 &&  detail.myUserInfo.doStatus==0" @click="handleClick">去完成</div>
 | 
			
		||||
    <div class="footer" v-if="index==1 && detail.myUserInfo.taskRole == 1 &&  detail.myUserInfo.doStatus==0"
 | 
			
		||||
         @click="handleClick">去完成
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="footer" v-if="index==2" @click="createSubTask">创建子任务</div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiTopFixed from "../../../components/AiTopFixed";
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
  import AiEmpty from "../../../components/AiEmpty";
 | 
			
		||||
  import {mapActions} from "vuex";
 | 
			
		||||
import AiTopFixed from "../../../components/AiTopFixed";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
import AiEmpty from "../../../components/AiEmpty";
 | 
			
		||||
import {mapActions} from "vuex";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "detail",
 | 
			
		||||
    components: {AiTopFixed, AiBack,AiEmpty},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        current: 1,
 | 
			
		||||
        index: 0,
 | 
			
		||||
        id: null,
 | 
			
		||||
        taskCode: null,
 | 
			
		||||
        isMine: null,
 | 
			
		||||
        detail: {},
 | 
			
		||||
        list: [],
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(opt) {
 | 
			
		||||
      this.id = opt.id
 | 
			
		||||
      this.taskCode = opt.taskCode
 | 
			
		||||
      this.isMine = opt.isMine
 | 
			
		||||
      this.$dict.load("workTaskType", "workTaskDoStatus")
 | 
			
		||||
    },
 | 
			
		||||
    computed: {
 | 
			
		||||
      tabs() {
 | 
			
		||||
        return [
 | 
			
		||||
          {name: "信息"},
 | 
			
		||||
          {name: "进度"},
 | 
			
		||||
          {name: "子任务"},
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      ...mapActions(['previewFile', 'injectJWeixin']),
 | 
			
		||||
      preFile(e) {
 | 
			
		||||
        if([".jpg",".png",".gif"].includes(e.postfix.toLowerCase())){
 | 
			
		||||
          uni.previewImage({
 | 
			
		||||
            current: e.url,
 | 
			
		||||
            urls: [e.url]
 | 
			
		||||
          })
 | 
			
		||||
        }else {
 | 
			
		||||
          this.previewFile({ ...e})
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      getDetail() {
 | 
			
		||||
        this.$http.post("/app/appworktaskinfo/queryDetailById", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            id: this.id
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            this.detail = res.data
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      getList(){
 | 
			
		||||
        this.$http.post("/app/appworktaskinfo/list", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            parentTaskCode: this.detail.taskCode,
 | 
			
		||||
            size: 999,
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            this.list = res.data.records
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      createSubTask() {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/workTask/components/create?taskCode=" + this.taskCode
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      subDetail({id}) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/workTask/components/subDetail?id=" + id
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      handleClick() {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/workTask/components/finish?taskCode=" + this.detail.taskCode + "&percent=" + this.detail.myUserInfo.percent
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      change(e) {
 | 
			
		||||
        this.index = e
 | 
			
		||||
        if (e == 2) {
 | 
			
		||||
          this.getList()
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    onShow(){
 | 
			
		||||
      this.getDetail()
 | 
			
		||||
      this.getList()
 | 
			
		||||
export default {
 | 
			
		||||
  name: "detail",
 | 
			
		||||
  components: {AiTopFixed, AiBack, AiEmpty},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      current: 1,
 | 
			
		||||
      index: 0,
 | 
			
		||||
      id: null,
 | 
			
		||||
      taskCode: null,
 | 
			
		||||
      isMine: null,
 | 
			
		||||
      detail: {},
 | 
			
		||||
      list: [],
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(opt) {
 | 
			
		||||
    this.id = opt.id
 | 
			
		||||
    this.taskCode = opt.taskCode
 | 
			
		||||
    this.isMine = opt.isMine
 | 
			
		||||
    this.$dict.load("workTaskType", "workTaskDoStatus")
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    tabs() {
 | 
			
		||||
      return [
 | 
			
		||||
        {name: "信息"},
 | 
			
		||||
        {name: "进度"},
 | 
			
		||||
        {name: "子任务"},
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    ...mapActions(['previewFile', 'injectJWeixin']),
 | 
			
		||||
    preFile(e) {
 | 
			
		||||
      if ([".jpg", ".png", ".gif"].includes(e.postfix.toLowerCase())) {
 | 
			
		||||
        uni.previewImage({
 | 
			
		||||
          current: e.url,
 | 
			
		||||
          urls: [e.url]
 | 
			
		||||
        })
 | 
			
		||||
      } else {
 | 
			
		||||
        this.previewFile({...e})
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    getDetail() {
 | 
			
		||||
      this.$http.post("/app/appworktaskinfo/queryDetailById", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          id: this.id
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          this.detail = res.data
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$http.post("/app/appworktaskinfo/list", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          parentTaskCode: this.detail.taskCode,
 | 
			
		||||
          size: 999,
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          this.list = res.data.records
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    createSubTask() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/workTask/components/create?taskCode=" + this.taskCode
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    subDetail({id}) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/workTask/components/subDetail?id=" + id
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    handleClick() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/workTask/components/finish?taskCode=" + this.detail.taskCode + "&percent=" + this.detail.myUserInfo.percent
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    change(e) {
 | 
			
		||||
      this.index = e
 | 
			
		||||
      if (e == 2) {
 | 
			
		||||
        this.getList()
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onShow() {
 | 
			
		||||
    this.getDetail()
 | 
			
		||||
    this.getList()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .detail {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
    padding-bottom: 140px;
 | 
			
		||||
.detail {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #F5F5F5;
 | 
			
		||||
  padding-bottom: 140px;
 | 
			
		||||
 | 
			
		||||
    ::v-deep .content {
 | 
			
		||||
      padding: 0;
 | 
			
		||||
  ::v-deep .content {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .card {
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    margin-bottom: 8px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 16px 32px;
 | 
			
		||||
 | 
			
		||||
    header {
 | 
			
		||||
      font-size: 40px;
 | 
			
		||||
      font-weight: 600;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      line-height: 64px;
 | 
			
		||||
      letter-spacing: 1px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      margin-bottom: 8px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 16px 32px;
 | 
			
		||||
 | 
			
		||||
      header {
 | 
			
		||||
        font-size: 40px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        line-height: 64px;
 | 
			
		||||
        letter-spacing: 1px;
 | 
			
		||||
    .u-row {
 | 
			
		||||
      & > div {
 | 
			
		||||
        background-color: #2266FF;
 | 
			
		||||
        border-radius: 50%;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        font-size: 22px;
 | 
			
		||||
        font-weight: bold;
 | 
			
		||||
        color: #FFFFFF;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-row {
 | 
			
		||||
        & > div {
 | 
			
		||||
          background-color: #2266FF;
 | 
			
		||||
          border-radius: 50%;
 | 
			
		||||
          text-align: center;
 | 
			
		||||
          font-size: 22px;
 | 
			
		||||
          font-weight: bold;
 | 
			
		||||
          color: #FFFFFF;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: center;
 | 
			
		||||
        }
 | 
			
		||||
      & > span:first-child {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #999999;;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;;
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
        }
 | 
			
		||||
      & > span:last-child {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #343D65;
 | 
			
		||||
        margin-left: 16px;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #343D65;
 | 
			
		||||
          margin-left: 16px;
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
        }
 | 
			
		||||
      .title {
 | 
			
		||||
        width: 490px;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        text-overflow: ellipsis;
 | 
			
		||||
        white-space: nowrap;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
        .title {
 | 
			
		||||
          width: 490px;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
          text-overflow: ellipsis;
 | 
			
		||||
          white-space: nowrap;
 | 
			
		||||
        }
 | 
			
		||||
      .right {
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
        .arrow {
 | 
			
		||||
          width: 16px;
 | 
			
		||||
          height: 16px;
 | 
			
		||||
          border-top: 3px solid #CCCCCC;
 | 
			
		||||
          border-right: 3px solid #CCCCCC;
 | 
			
		||||
          transform: rotate(45deg);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
      &:after {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        height: 1px;
 | 
			
		||||
        background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
        content: "";
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        left: 0;
 | 
			
		||||
        bottom: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > span {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      line-height: 48px;
 | 
			
		||||
      letter-spacing: 1px;
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .label {
 | 
			
		||||
      height: 80px;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
 | 
			
		||||
      & > em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .file {
 | 
			
		||||
      height: 128px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
      border: 1px solid #CCCCCC;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 0 16px;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
      & > .u-row {
 | 
			
		||||
        height: 100%;
 | 
			
		||||
 | 
			
		||||
        .left {
 | 
			
		||||
          width: 476px;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          .arrow {
 | 
			
		||||
            width: 16px;
 | 
			
		||||
            height: 16px;
 | 
			
		||||
            border-top: 3px solid #CCCCCC;
 | 
			
		||||
            border-right: 3px solid #CCCCCC;
 | 
			
		||||
            transform: rotate(45deg);
 | 
			
		||||
          & > img {
 | 
			
		||||
            flex-shrink: 0;
 | 
			
		||||
            width: 96px;
 | 
			
		||||
            height: 96px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span {
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            display: inline-block;
 | 
			
		||||
            line-height: 44px;
 | 
			
		||||
            overflow: hidden;
 | 
			
		||||
            text-overflow: ellipsis;
 | 
			
		||||
            display: -webkit-box;
 | 
			
		||||
            -webkit-box-orient: vertical;
 | 
			
		||||
            -webkit-line-clamp: 2;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item {
 | 
			
		||||
        position: relative;
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          height: 1px;
 | 
			
		||||
          background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
          content: "";
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
        & > span {
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      & > span {
 | 
			
		||||
    .active {
 | 
			
		||||
      background-color: #F3F6F9;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > text {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      color: #649EFD;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .progress {
 | 
			
		||||
      height: 12px;
 | 
			
		||||
      background: #F2F4FC;
 | 
			
		||||
      border-radius: 12px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      margin: 16px 0 64px 0;
 | 
			
		||||
 | 
			
		||||
      .pro-active {
 | 
			
		||||
        height: 12px;
 | 
			
		||||
        background: #639EFD;
 | 
			
		||||
        border-radius: 12px;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        left: 0;
 | 
			
		||||
        top: 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    em {
 | 
			
		||||
      font-style: normal;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      color: #1365DD;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ::v-deep .u-collapse {
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
      &:after {
 | 
			
		||||
        content: "";
 | 
			
		||||
        width: 718px;
 | 
			
		||||
        height: 1px;
 | 
			
		||||
        background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        left: 0;
 | 
			
		||||
        bottom: 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-collapse-head {
 | 
			
		||||
        padding: 40px 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-collapse-content {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
        letter-spacing: 1px;
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .label {
 | 
			
		||||
        height: 80px;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 16px;
 | 
			
		||||
 | 
			
		||||
        & > em {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .file {
 | 
			
		||||
        height: 128px;
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
        border: 1px solid #CCCCCC;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 0 16px;
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
        & > .u-row {
 | 
			
		||||
          height: 100%;
 | 
			
		||||
 | 
			
		||||
          .left {
 | 
			
		||||
            width: 476px;
 | 
			
		||||
            display: flex;
 | 
			
		||||
            align-items: center;
 | 
			
		||||
 | 
			
		||||
            & > img {
 | 
			
		||||
              flex-shrink: 0;
 | 
			
		||||
              width: 96px;
 | 
			
		||||
              height: 96px;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            & > span {
 | 
			
		||||
              font-size: 32px;
 | 
			
		||||
              color: #333333;
 | 
			
		||||
              display: inline-block;
 | 
			
		||||
              line-height: 44px;
 | 
			
		||||
              overflow: hidden;
 | 
			
		||||
              text-overflow: ellipsis;
 | 
			
		||||
              display:-webkit-box;
 | 
			
		||||
              -webkit-box-orient:vertical;
 | 
			
		||||
              -webkit-line-clamp:2;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          & > span {
 | 
			
		||||
            font-size: 28px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .active {
 | 
			
		||||
        background-color: #F3F6F9;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > text {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #649EFD;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .progress {
 | 
			
		||||
        height: 12px;
 | 
			
		||||
        background: #F2F4FC;
 | 
			
		||||
        border-radius: 12px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        margin: 16px 0 64px 0;
 | 
			
		||||
 | 
			
		||||
        .pro-active {
 | 
			
		||||
          height: 12px;
 | 
			
		||||
          background: #639EFD;
 | 
			
		||||
          border-radius: 12px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          top: 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      ::v-deep .u-collapse {
 | 
			
		||||
        position: relative;
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          content: "";
 | 
			
		||||
          width: 718px;
 | 
			
		||||
          height: 1px;
 | 
			
		||||
          background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .u-collapse-head {
 | 
			
		||||
          padding: 40px 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .u-collapse-content {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
          letter-spacing: 1px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .footer {
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      background: #1365DD;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      font-size: 36px;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .footer {
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    background: #1365DD;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    font-size: 36px;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,25 +4,25 @@
 | 
			
		||||
      <u-row justify="between">
 | 
			
		||||
        <div class="left">
 | 
			
		||||
          <u-avatar :src="detail.avatar" v-if="detail.avatar"></u-avatar>
 | 
			
		||||
          <div class="avatar" v-else>{{detail.name && detail.name.substr(-2)}}</div>
 | 
			
		||||
          <div class="avatar" v-else>{{ detail.name && detail.name.substr(-2) }}</div>
 | 
			
		||||
          <div class="info">
 | 
			
		||||
            <div class="name">{{detail.name}}</div>
 | 
			
		||||
            <div class="status">{{$dict.getLabel("workTaskRole",detail.taskRole)}}</div>
 | 
			
		||||
            <div class="name">{{ detail.name }}</div>
 | 
			
		||||
            <div class="status">{{ $dict.getLabel("workTaskRole", detail.taskRole) }}</div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
<!--        <div class="btn">-->
 | 
			
		||||
<!--          <img src="../static/tx.png" alt="">催办提醒-->
 | 
			
		||||
<!--        </div>-->
 | 
			
		||||
        <!--        <div class="btn">-->
 | 
			
		||||
        <!--          <img src="../static/tx.png" alt="">催办提醒-->
 | 
			
		||||
        <!--        </div>-->
 | 
			
		||||
      </u-row>
 | 
			
		||||
      <u-gap height="32"></u-gap>
 | 
			
		||||
      <u-row>
 | 
			
		||||
        <div class="label">完成时间:</div>
 | 
			
		||||
        <div class="value">{{detail.finishTime}}</div>
 | 
			
		||||
        <div class="value">{{ detail.finishTime }}</div>
 | 
			
		||||
      </u-row>
 | 
			
		||||
      <u-gap height="16"></u-gap>
 | 
			
		||||
      <u-row>
 | 
			
		||||
        <div class="label">逾期时间:</div>
 | 
			
		||||
        <div class="value" style="color: #FF4466">{{detail.overTimeStatus}}</div>
 | 
			
		||||
        <div class="value" style="color: #FF4466">{{ detail.overTimeStatus }}</div>
 | 
			
		||||
      </u-row>
 | 
			
		||||
      <u-gap height="30"></u-gap>
 | 
			
		||||
    </div>
 | 
			
		||||
@@ -31,9 +31,9 @@
 | 
			
		||||
      <u-collapse v-for="(item,index) in detail.processList" :key="index">
 | 
			
		||||
        <u-collapse-item :title="item.createDate && item.createDate.split(' ')[0]">
 | 
			
		||||
          <template slot="info">
 | 
			
		||||
            完成到<em>{{item.percent}}%</em>
 | 
			
		||||
            完成到<em>{{ item.percent }}%</em>
 | 
			
		||||
          </template>
 | 
			
		||||
          {{item.remarks}}
 | 
			
		||||
          {{ item.remarks }}
 | 
			
		||||
        </u-collapse-item>
 | 
			
		||||
      </u-collapse>
 | 
			
		||||
    </div>
 | 
			
		||||
@@ -42,145 +42,145 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "finishDetail",
 | 
			
		||||
    components: {AiBack},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        id: null,
 | 
			
		||||
        detail: {},
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(opt) {
 | 
			
		||||
      this.id = opt.id
 | 
			
		||||
      this.$dict.load("workTaskRole").then(_=>this.getDetail())
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      getDetail() {
 | 
			
		||||
        this.$http.post("/app/appworktaskuserinfo/queryDetailById", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            id: this.id
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            this.detail = res.data;
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
export default {
 | 
			
		||||
  name: "finishDetail",
 | 
			
		||||
  components: {AiBack},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      id: null,
 | 
			
		||||
      detail: {},
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(opt) {
 | 
			
		||||
    this.id = opt.id
 | 
			
		||||
    this.$dict.load("workTaskRole").then(_ => this.getDetail())
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    getDetail() {
 | 
			
		||||
      this.$http.post("/app/appworktaskuserinfo/queryDetailById", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          id: this.id
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          this.detail = res.data;
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .finish-detail {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
.finish-detail {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #F5F5F5;
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 18px 32px;
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      margin-bottom: 8px;
 | 
			
		||||
  .card {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 18px 32px;
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    margin-bottom: 8px;
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
    .left {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
 | 
			
		||||
        .avatar {
 | 
			
		||||
          width: 80px;
 | 
			
		||||
          height: 80px;
 | 
			
		||||
          border-radius: 50%;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
          color: #FFFFFF;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: center;
 | 
			
		||||
          background: #2266FF;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .info {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          flex-direction: column;
 | 
			
		||||
          margin-left: 16px;
 | 
			
		||||
 | 
			
		||||
          .name {
 | 
			
		||||
            font-size: 32px;
 | 
			
		||||
            font-weight: 400;
 | 
			
		||||
            color: #333333;
 | 
			
		||||
            line-height: 44px;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          .status {
 | 
			
		||||
            font-size: 24px;
 | 
			
		||||
            font-weight: 400;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
            line-height: 34px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .btn {
 | 
			
		||||
      .avatar {
 | 
			
		||||
        width: 80px;
 | 
			
		||||
        height: 80px;
 | 
			
		||||
        border-radius: 50%;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
        color: #FFFFFF;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
 | 
			
		||||
        & > img {
 | 
			
		||||
          width: 40px;
 | 
			
		||||
          height: 40px;
 | 
			
		||||
        }
 | 
			
		||||
        background: #2266FF;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .label {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        font-family: PingFangSC-Regular, PingFang SC;
 | 
			
		||||
        color: #999999;
 | 
			
		||||
        line-height: 42px;
 | 
			
		||||
      }
 | 
			
		||||
      .info {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        flex-direction: column;
 | 
			
		||||
        margin-left: 16px;
 | 
			
		||||
 | 
			
		||||
      .value {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        color: #343D65;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      ::v-deep .u-collapse {
 | 
			
		||||
        position: relative;
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          content: "";
 | 
			
		||||
          width: 718px;
 | 
			
		||||
          height: 1px;
 | 
			
		||||
          background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .u-collapse-head {
 | 
			
		||||
          padding: 40px 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .u-collapse-content {
 | 
			
		||||
        .name {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          font-weight: 400;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
          letter-spacing: 1px;
 | 
			
		||||
          line-height: 44px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .status {
 | 
			
		||||
          font-size: 24px;
 | 
			
		||||
          font-weight: 400;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          line-height: 34px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .btn {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      color: #1365DD;
 | 
			
		||||
 | 
			
		||||
      & > img {
 | 
			
		||||
        width: 40px;
 | 
			
		||||
        height: 40px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .label {
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      font-family: PingFangSC-Regular, PingFang SC;
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      line-height: 42px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .value {
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      color: #343D65;
 | 
			
		||||
      line-height: 48px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    em {
 | 
			
		||||
      font-style: normal;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      color: #1365DD;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ::v-deep .u-collapse {
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
      &:after {
 | 
			
		||||
        content: "";
 | 
			
		||||
        width: 718px;
 | 
			
		||||
        height: 1px;
 | 
			
		||||
        background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        left: 0;
 | 
			
		||||
        bottom: 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-collapse-head {
 | 
			
		||||
        padding: 40px 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-collapse-content {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
        letter-spacing: 1px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,58 +3,58 @@
 | 
			
		||||
    <div class="card">
 | 
			
		||||
      <header>
 | 
			
		||||
        <em>[子任务]</em>
 | 
			
		||||
        {{detail.taskTitle}}
 | 
			
		||||
        {{ detail.taskTitle }}
 | 
			
		||||
      </header>
 | 
			
		||||
      <u-gap height="16"></u-gap>
 | 
			
		||||
      <u-row>
 | 
			
		||||
        <span>任务类型:</span>
 | 
			
		||||
        <span>{{$dict.getLabel("workTaskType",detail.type)}}</span>
 | 
			
		||||
        <span>{{ $dict.getLabel("workTaskType", detail.type) }}</span>
 | 
			
		||||
      </u-row>
 | 
			
		||||
      <u-gap height="8"></u-gap>
 | 
			
		||||
      <u-row>
 | 
			
		||||
        <span>开始时间:</span>
 | 
			
		||||
        <span>{{detail.createTime}}</span>
 | 
			
		||||
        <span>{{ detail.createTime }}</span>
 | 
			
		||||
      </u-row>
 | 
			
		||||
      <u-gap height="8"></u-gap>
 | 
			
		||||
      <u-row>
 | 
			
		||||
        <span>截止时间:</span>
 | 
			
		||||
        <span>{{detail.lastTime}}</span>
 | 
			
		||||
        <span>{{ detail.lastTime }}</span>
 | 
			
		||||
      </u-row>
 | 
			
		||||
      <u-gap height="8"></u-gap>
 | 
			
		||||
      <u-row>
 | 
			
		||||
        <span>剩余时间:</span>
 | 
			
		||||
        <span style="color:#1365DD">{{detail.overTimeStatus}}</span>
 | 
			
		||||
        <span style="color:#1365DD">{{ detail.overTimeStatus }}</span>
 | 
			
		||||
      </u-row>
 | 
			
		||||
      <u-gap height="8"></u-gap>
 | 
			
		||||
      <u-row>
 | 
			
		||||
        <span>任务状态:</span>
 | 
			
		||||
        <span style="color:#1365DD">{{$dict.getLabel("workTaskDoStatus",detail.status)}}</span>
 | 
			
		||||
        <span style="color:#1365DD">{{ $dict.getLabel("workTaskDoStatus", detail.status) }}</span>
 | 
			
		||||
      </u-row>
 | 
			
		||||
      <u-gap height="16"></u-gap>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="card" style="padding-top: 0">
 | 
			
		||||
      <div class="label">任务说明</div>
 | 
			
		||||
      <u-read-more close-text="展开" color="#999999" show-height="300">
 | 
			
		||||
        <span>{{detail.taskDescription}}</span>
 | 
			
		||||
        <span>{{ detail.taskDescription }}</span>
 | 
			
		||||
      </u-read-more>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="card">
 | 
			
		||||
      <div class="label">当前进度</div>
 | 
			
		||||
      <text>已完成{{detail.percent}}%</text>
 | 
			
		||||
      <text>已完成{{ detail.percent }}%</text>
 | 
			
		||||
      <div class="progress">
 | 
			
		||||
        <div class="pro-active" :style="{width:detail.percent + '%'}"></div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="card" style="padding-top: 0" v-if="detail.userInfoList && detail.userInfoList.length">
 | 
			
		||||
      <div class="label title">任务完成进度(<i>{{count}}</i>/{{detail.userInfoList.length}})</div>
 | 
			
		||||
      <div class="label title">任务完成进度(<i>{{ count }}</i>/{{ detail.userInfoList.length }})</div>
 | 
			
		||||
      <u-row justify="between" v-for="(item,index) in detail.userInfoList" :key="index" @click="finishDetail(item)">
 | 
			
		||||
        <div>{{item.userName && item.userName.substr(-2)}}</div>
 | 
			
		||||
        <div>{{ item.userName && item.userName.substr(-2) }}</div>
 | 
			
		||||
        <u-row justify="between" class="item">
 | 
			
		||||
          <text class="name">{{item.userName}}</text>
 | 
			
		||||
          <text class="name">{{ item.userName }}</text>
 | 
			
		||||
          <label class="right">
 | 
			
		||||
            <span>已完成{{item.percent}}%</span>
 | 
			
		||||
            <span>已完成{{ item.percent }}%</span>
 | 
			
		||||
            <label class="arrow"></label>
 | 
			
		||||
          </label>
 | 
			
		||||
        </u-row>
 | 
			
		||||
@@ -75,267 +75,267 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiBack from "../../../components/AiBack";
 | 
			
		||||
import AiBack from "../../../components/AiBack";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "subDetail",
 | 
			
		||||
    components: {AiBack},
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        id: null,
 | 
			
		||||
        detail: {},
 | 
			
		||||
        show: false,
 | 
			
		||||
        content: "",
 | 
			
		||||
        idx: null,
 | 
			
		||||
        count: 0,
 | 
			
		||||
      }
 | 
			
		||||
export default {
 | 
			
		||||
  name: "subDetail",
 | 
			
		||||
  components: {AiBack},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      id: null,
 | 
			
		||||
      detail: {},
 | 
			
		||||
      show: false,
 | 
			
		||||
      content: "",
 | 
			
		||||
      idx: null,
 | 
			
		||||
      count: 0,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(opt) {
 | 
			
		||||
    this.id = opt.id
 | 
			
		||||
    this.$dict.load("workTaskType", "workTaskDoStatus").then(_ => this.getDetail())
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    finishDetail({id}) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/workTask/components/finishDetail?id=" + id
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(opt) {
 | 
			
		||||
      this.id = opt.id
 | 
			
		||||
      this.$dict.load("workTaskType", "workTaskDoStatus").then(_ => this.getDetail())
 | 
			
		||||
    confirm() {
 | 
			
		||||
      this.$http.post(this.idx == 0 ? "/app/appworktaskinfo/stopOrFinish" : "/app/appworktaskuserinfo/sendMesage", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          id: this.id,
 | 
			
		||||
          status: this.idx == 0 ? 2 : null
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.$u.toast(this.idx == 0 ? "关闭成功" : "催办成功")
 | 
			
		||||
          this.getDetail()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    methods: {
 | 
			
		||||
      finishDetail({id}){
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url:"/pages/workTask/components/finishDetail?id=" + id
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      confirm() {
 | 
			
		||||
        this.$http.post(this.idx == 0 ? "/app/appworktaskinfo/stopOrFinish" : "/app/appworktaskuserinfo/sendMesage", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            id: this.id,
 | 
			
		||||
            status: this.idx == 0 ? 2 : null
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            this.$u.toast(this.idx == 0 ? "关闭成功" : "催办成功")
 | 
			
		||||
            this.getDetail()
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      getDetail() {
 | 
			
		||||
        this.$http.post("/app/appworktaskinfo/queryDetailById", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            id: this.id
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            this.detail = res.data
 | 
			
		||||
            this.count = res.data?.userInfoList?.reduce((pre,cur)=>{
 | 
			
		||||
              return pre + (cur.percent==100 ? 1 : 0)
 | 
			
		||||
            },0)
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
    getDetail() {
 | 
			
		||||
      this.$http.post("/app/appworktaskinfo/queryDetailById", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          id: this.id
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          this.detail = res.data
 | 
			
		||||
          this.count = res.data?.userInfoList?.reduce((pre, cur) => {
 | 
			
		||||
            return pre + (cur.percent == 100 ? 1 : 0)
 | 
			
		||||
          }, 0)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .sub-detail {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    overflow-x: hidden;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
    padding-bottom: 140px;
 | 
			
		||||
.sub-detail {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  overflow-x: hidden;
 | 
			
		||||
  background-color: #F5F5F5;
 | 
			
		||||
  padding-bottom: 140px;
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      background-color: #FFFFFF;
 | 
			
		||||
      margin-bottom: 8px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 16px 32px;
 | 
			
		||||
  .card {
 | 
			
		||||
    background-color: #FFFFFF;
 | 
			
		||||
    margin-bottom: 8px;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 16px 32px;
 | 
			
		||||
 | 
			
		||||
      header {
 | 
			
		||||
    header {
 | 
			
		||||
      font-size: 40px;
 | 
			
		||||
      font-weight: 600;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      line-height: 64px;
 | 
			
		||||
      letter-spacing: 1px;
 | 
			
		||||
 | 
			
		||||
      & > em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
        font-size: 40px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        line-height: 64px;
 | 
			
		||||
        letter-spacing: 1px;
 | 
			
		||||
 | 
			
		||||
        & > em {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
          font-size: 40px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .u-row {
 | 
			
		||||
        flex: 1;
 | 
			
		||||
        margin-left: 16px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        .item {
 | 
			
		||||
          height: 112px;
 | 
			
		||||
 | 
			
		||||
          &:after {
 | 
			
		||||
            width: 622px;
 | 
			
		||||
            height: 2px;
 | 
			
		||||
            content: "";
 | 
			
		||||
            position: absolute;
 | 
			
		||||
            left: 0;
 | 
			
		||||
            bottom: 0;
 | 
			
		||||
            background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > div {
 | 
			
		||||
          width: 80px;
 | 
			
		||||
          height: 80px;
 | 
			
		||||
          background-color: #4E8EEE;
 | 
			
		||||
          border-radius: 50%;
 | 
			
		||||
          text-align: center;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          font-weight: bold;
 | 
			
		||||
          color: #FFFFFF;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          justify-content: center;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span:first-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;;
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span:last-child {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #343D65;
 | 
			
		||||
          margin-left: 16px;
 | 
			
		||||
          line-height: 48px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .name {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          font-weight: 400;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .title {
 | 
			
		||||
          width: 490px;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
          overflow: hidden;
 | 
			
		||||
          text-overflow: ellipsis;
 | 
			
		||||
          white-space: nowrap;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .right {
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          align-items: center;
 | 
			
		||||
 | 
			
		||||
          .arrow {
 | 
			
		||||
            width: 16px;
 | 
			
		||||
            height: 16px;
 | 
			
		||||
            border-top: 3px solid #CCCCCC;
 | 
			
		||||
            border-right: 3px solid #CCCCCC;
 | 
			
		||||
            transform: rotate(45deg);
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > text {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #649EFD;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .progress {
 | 
			
		||||
        height: 12px;
 | 
			
		||||
        background: #F2F4FC;
 | 
			
		||||
        border-radius: 12px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        margin: 16px 0 80px 0;
 | 
			
		||||
 | 
			
		||||
        .pro-active {
 | 
			
		||||
          height: 12px;
 | 
			
		||||
          background: #639EFD;
 | 
			
		||||
          border-radius: 12px;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          top: 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > span {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
        letter-spacing: 1px;
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .label {
 | 
			
		||||
        height: 80px;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        margin-bottom: 16px;
 | 
			
		||||
 | 
			
		||||
        & > em {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > i {
 | 
			
		||||
          font-style: normal;
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          color: #2EA222;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .title {
 | 
			
		||||
        font-weight: bold;
 | 
			
		||||
        height: 96px;
 | 
			
		||||
        border-bottom: 1px solid rgba(216, 221, 230, 0.5);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .footer {
 | 
			
		||||
      height: 112px;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      position: fixed;
 | 
			
		||||
      left: 0;
 | 
			
		||||
      bottom: 0;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
      font-size: 36px;
 | 
			
		||||
      color: #FFFFFF;
 | 
			
		||||
    .u-row {
 | 
			
		||||
      flex: 1;
 | 
			
		||||
      margin-left: 16px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        width: 48px;
 | 
			
		||||
        height: 48px;
 | 
			
		||||
        margin-right: 8px;
 | 
			
		||||
 | 
			
		||||
      .item {
 | 
			
		||||
        height: 112px;
 | 
			
		||||
 | 
			
		||||
        &:after {
 | 
			
		||||
          width: 622px;
 | 
			
		||||
          height: 2px;
 | 
			
		||||
          content: "";
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
          background-color: rgba(216, 221, 230, 0.5);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > div:first-child, div:last-child {
 | 
			
		||||
        width: 50%;
 | 
			
		||||
        height: 100%;
 | 
			
		||||
      & > div {
 | 
			
		||||
        width: 80px;
 | 
			
		||||
        height: 80px;
 | 
			
		||||
        background-color: #4E8EEE;
 | 
			
		||||
        border-radius: 50%;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        font-weight: bold;
 | 
			
		||||
        color: #FFFFFF;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > div:first-child {
 | 
			
		||||
        color: #666666;
 | 
			
		||||
      & > span:first-child {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #999999;;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > div:last-child {
 | 
			
		||||
        background: #1365DD;
 | 
			
		||||
      & > span:last-child {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        color: #343D65;
 | 
			
		||||
        margin-left: 16px;
 | 
			
		||||
        line-height: 48px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .name {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        font-weight: 400;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .title {
 | 
			
		||||
        width: 490px;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        text-overflow: ellipsis;
 | 
			
		||||
        white-space: nowrap;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .right {
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
 | 
			
		||||
        .arrow {
 | 
			
		||||
          width: 16px;
 | 
			
		||||
          height: 16px;
 | 
			
		||||
          border-top: 3px solid #CCCCCC;
 | 
			
		||||
          border-right: 3px solid #CCCCCC;
 | 
			
		||||
          transform: rotate(45deg);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > text {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      color: #649EFD;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .progress {
 | 
			
		||||
      height: 12px;
 | 
			
		||||
      background: #F2F4FC;
 | 
			
		||||
      border-radius: 12px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      margin: 16px 0 80px 0;
 | 
			
		||||
 | 
			
		||||
      .pro-active {
 | 
			
		||||
        height: 12px;
 | 
			
		||||
        background: #639EFD;
 | 
			
		||||
        border-radius: 12px;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        left: 0;
 | 
			
		||||
        top: 0;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > span {
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      line-height: 48px;
 | 
			
		||||
      letter-spacing: 1px;
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .label {
 | 
			
		||||
      height: 80px;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #333333;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
 | 
			
		||||
      & > em {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #1365DD;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > i {
 | 
			
		||||
        font-style: normal;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        color: #2EA222;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .title {
 | 
			
		||||
      font-weight: bold;
 | 
			
		||||
      height: 96px;
 | 
			
		||||
      border-bottom: 1px solid rgba(216, 221, 230, 0.5);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .footer {
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    background: #FFFFFF;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    font-size: 36px;
 | 
			
		||||
    color: #FFFFFF;
 | 
			
		||||
 | 
			
		||||
    img {
 | 
			
		||||
      width: 48px;
 | 
			
		||||
      height: 48px;
 | 
			
		||||
      margin-right: 8px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > div:first-child, div:last-child {
 | 
			
		||||
      width: 50%;
 | 
			
		||||
      height: 100%;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      justify-content: center;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > div:first-child {
 | 
			
		||||
      color: #666666;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    & > div:last-child {
 | 
			
		||||
      background: #1365DD;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -5,24 +5,24 @@
 | 
			
		||||
    </ai-top-fixed>
 | 
			
		||||
    <div class="list" v-if="list.length">
 | 
			
		||||
      <div class="card" v-for="(item,index) in list" :key="index" @click="handleClick(item)">
 | 
			
		||||
        <header>{{item.taskTitle}}</header>
 | 
			
		||||
        <header>{{ item.taskTitle }}</header>
 | 
			
		||||
        <u-gap height="24"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <text>任务类型:</text>
 | 
			
		||||
          <text>{{$dict.getLabel("workTaskType",item.type)}}</text>
 | 
			
		||||
          <text>{{ $dict.getLabel("workTaskType", item.type) }}</text>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <text>截止时间:</text>
 | 
			
		||||
          <text>{{item.lastTime}}</text>
 | 
			
		||||
          <text>{{ item.lastTime }}</text>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="8"></u-gap>
 | 
			
		||||
        <u-row>
 | 
			
		||||
          <text>剩余时间:</text>
 | 
			
		||||
          <text :style="{color:item.isOverTime==1?'#FF4466':'#1365DD'}">{{item.overTimeStatus}}</text>
 | 
			
		||||
          <text :style="{color:item.isOverTime==1?'#FF4466':'#1365DD'}">{{ item.overTimeStatus }}</text>
 | 
			
		||||
        </u-row>
 | 
			
		||||
        <u-gap height="24"></u-gap>
 | 
			
		||||
        <span>已完成{{item.percent}}%</span>
 | 
			
		||||
        <span>已完成{{ item.percent }}%</span>
 | 
			
		||||
        <u-gap height="16"></u-gap>
 | 
			
		||||
        <div class="progress">
 | 
			
		||||
          <div class="active" :style="{width: item.percent + '%'}"></div>
 | 
			
		||||
@@ -37,186 +37,186 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
  import AiTopFixed from "../../components/AiTopFixed";
 | 
			
		||||
  import AiAdd from "../../components/AiAdd";
 | 
			
		||||
  import AiEmpty from "../../components/AiEmpty";
 | 
			
		||||
import AiTopFixed from "../../components/AiTopFixed";
 | 
			
		||||
import AiAdd from "../../components/AiAdd";
 | 
			
		||||
import AiEmpty from "../../components/AiEmpty";
 | 
			
		||||
 | 
			
		||||
  export default {
 | 
			
		||||
    name: "workTask",
 | 
			
		||||
    components: {AiTopFixed, AiAdd, AiEmpty},
 | 
			
		||||
    data() {
 | 
			
		||||
export default {
 | 
			
		||||
  name: "workTask",
 | 
			
		||||
  components: {AiTopFixed, AiAdd, AiEmpty},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      index: 0,
 | 
			
		||||
      current: 1,
 | 
			
		||||
      list: [],
 | 
			
		||||
      status: "加载更多",
 | 
			
		||||
      userSelect: false,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    tabs() {
 | 
			
		||||
      return [
 | 
			
		||||
        {name: "我执行的"},
 | 
			
		||||
        {name: "我完成的"},
 | 
			
		||||
        {name: "我发起的"},
 | 
			
		||||
        {name: "我督办的"},
 | 
			
		||||
        {name: "抄送我的"},
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad() {
 | 
			
		||||
    this.$dict.load("workTaskType")
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    tag(status) {
 | 
			
		||||
      return {
 | 
			
		||||
        index: 0,
 | 
			
		||||
        current: 1,
 | 
			
		||||
        list: [],
 | 
			
		||||
        status: "加载更多",
 | 
			
		||||
        userSelect: false,
 | 
			
		||||
      }
 | 
			
		||||
        "0": "common/1jxz.png",
 | 
			
		||||
        "1": "common/1ywc.png",
 | 
			
		||||
        "2": "common/1ygb.png"
 | 
			
		||||
      }[status]
 | 
			
		||||
    },
 | 
			
		||||
    computed: {
 | 
			
		||||
      tabs() {
 | 
			
		||||
        return [
 | 
			
		||||
          {name: "我执行的"},
 | 
			
		||||
          {name: "我完成的"},
 | 
			
		||||
          {name: "我发起的"},
 | 
			
		||||
          {name: "我督办的"},
 | 
			
		||||
          {name: "抄送我的"},
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onLoad() {
 | 
			
		||||
      this.$dict.load("workTaskType")
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    methods: {
 | 
			
		||||
      tag(status) {
 | 
			
		||||
        return {
 | 
			
		||||
          "0": "common/1jxz.png",
 | 
			
		||||
          "1": "common/1ywc.png",
 | 
			
		||||
          "2": "common/1ygb.png"
 | 
			
		||||
        }[status]
 | 
			
		||||
      },
 | 
			
		||||
      handleClick(item) {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/workTask/components/detail?id=" + item.id + "&taskCode=" + item.taskCode + "&isMine=" + this.index
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
      add() {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: "/pages/workTask/components/create"
 | 
			
		||||
        })
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      change(e) {
 | 
			
		||||
        this.index = e
 | 
			
		||||
        this.current = 1
 | 
			
		||||
        this.getList()
 | 
			
		||||
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      map(index) {
 | 
			
		||||
        return {
 | 
			
		||||
          "0": {
 | 
			
		||||
            taskRole: 1,
 | 
			
		||||
            status: 0,
 | 
			
		||||
          },
 | 
			
		||||
          "1": {
 | 
			
		||||
            taskRole: 1,
 | 
			
		||||
            status: 1,
 | 
			
		||||
          },
 | 
			
		||||
          "2": {
 | 
			
		||||
            taskRole: 0,
 | 
			
		||||
          },
 | 
			
		||||
          "3": {
 | 
			
		||||
            taskRole: 2,
 | 
			
		||||
          },
 | 
			
		||||
          "4": {
 | 
			
		||||
            taskRole: 3,
 | 
			
		||||
          }
 | 
			
		||||
        }[index]
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      getList() {
 | 
			
		||||
        this.$http.post("/app/appworktaskinfo/list", null, {
 | 
			
		||||
          params: {
 | 
			
		||||
            ...this.map(this.index),
 | 
			
		||||
            size: 10,
 | 
			
		||||
            current: this.current
 | 
			
		||||
          }
 | 
			
		||||
        }).then(res => {
 | 
			
		||||
          if (res && res.data) {
 | 
			
		||||
            if (this.current > 1 && this.current > res.data.pages) {
 | 
			
		||||
              this.status = "已经到底啦"
 | 
			
		||||
            }
 | 
			
		||||
            this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onReachBottom() {
 | 
			
		||||
      this.current = this.current + 1;
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    onShow() {
 | 
			
		||||
      uni.pageScrollTo({
 | 
			
		||||
        duration: 0,
 | 
			
		||||
        scrollTop: 0
 | 
			
		||||
    handleClick(item) {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/workTask/components/detail?id=" + item.id + "&taskCode=" + item.taskCode + "&isMine=" + this.index
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    add() {
 | 
			
		||||
      uni.navigateTo({
 | 
			
		||||
        url: "/pages/workTask/components/create"
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    change(e) {
 | 
			
		||||
      this.index = e
 | 
			
		||||
      this.current = 1
 | 
			
		||||
      this.getList()
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    map(index) {
 | 
			
		||||
      return {
 | 
			
		||||
        "0": {
 | 
			
		||||
          taskRole: 1,
 | 
			
		||||
          status: 0,
 | 
			
		||||
        },
 | 
			
		||||
        "1": {
 | 
			
		||||
          taskRole: 1,
 | 
			
		||||
          status: 1,
 | 
			
		||||
        },
 | 
			
		||||
        "2": {
 | 
			
		||||
          taskRole: 0,
 | 
			
		||||
        },
 | 
			
		||||
        "3": {
 | 
			
		||||
          taskRole: 2,
 | 
			
		||||
        },
 | 
			
		||||
        "4": {
 | 
			
		||||
          taskRole: 3,
 | 
			
		||||
        }
 | 
			
		||||
      }[index]
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$http.post("/app/appworktaskinfo/list", null, {
 | 
			
		||||
        params: {
 | 
			
		||||
          ...this.map(this.index),
 | 
			
		||||
          size: 10,
 | 
			
		||||
          current: this.current
 | 
			
		||||
        }
 | 
			
		||||
      }).then(res => {
 | 
			
		||||
        if (res && res.data) {
 | 
			
		||||
          if (this.current > 1 && this.current > res.data.pages) {
 | 
			
		||||
            this.status = "已经到底啦"
 | 
			
		||||
          }
 | 
			
		||||
          this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onReachBottom() {
 | 
			
		||||
    this.current = this.current + 1;
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onShow() {
 | 
			
		||||
    uni.pageScrollTo({
 | 
			
		||||
      duration: 0,
 | 
			
		||||
      scrollTop: 0
 | 
			
		||||
    })
 | 
			
		||||
    this.current = 1
 | 
			
		||||
    this.getList()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
  .work-task {
 | 
			
		||||
    min-height: 100%;
 | 
			
		||||
    background-color: #F5F5F5;
 | 
			
		||||
    padding-bottom: 32px;
 | 
			
		||||
.work-task {
 | 
			
		||||
  min-height: 100%;
 | 
			
		||||
  background-color: #F5F5F5;
 | 
			
		||||
  padding-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
    ::v-deep .content {
 | 
			
		||||
      padding: 0;
 | 
			
		||||
    }
 | 
			
		||||
  ::v-deep .content {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    .list {
 | 
			
		||||
  .list {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 32px 32px 0 32px;
 | 
			
		||||
 | 
			
		||||
    .card {
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      padding: 32px 32px 0 32px;
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      margin-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
      .card {
 | 
			
		||||
        background: #FFFFFF;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        padding: 32px;
 | 
			
		||||
      & > header {
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        font-weight: 600;
 | 
			
		||||
        color: #333333;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > .u-row {
 | 
			
		||||
        text {
 | 
			
		||||
          font-size: 30px;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          line-height: 42px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > span {
 | 
			
		||||
        font-size: 26px;
 | 
			
		||||
        color: #649EFD;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .progress {
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        height: 4px;
 | 
			
		||||
        background: #F0F1F2;
 | 
			
		||||
        border-radius: 2px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
 | 
			
		||||
        & > header {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
          color: #333333;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > .u-row {
 | 
			
		||||
          text {
 | 
			
		||||
            font-size: 30px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
            line-height: 42px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > span {
 | 
			
		||||
          font-size: 26px;
 | 
			
		||||
          color: #649EFD;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .progress {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          height: 4px;
 | 
			
		||||
          background: #F0F1F2;
 | 
			
		||||
          border-radius: 2px;
 | 
			
		||||
          position: relative;
 | 
			
		||||
 | 
			
		||||
          .active {
 | 
			
		||||
            position: absolute;
 | 
			
		||||
            left: 0;
 | 
			
		||||
            top: 0;
 | 
			
		||||
            height: 4px;
 | 
			
		||||
            background: #639EFD;
 | 
			
		||||
            border-radius: 2px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        & > img {
 | 
			
		||||
          width: 112px;
 | 
			
		||||
          height: 112px;
 | 
			
		||||
        .active {
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          top: 0;
 | 
			
		||||
          right: 0;
 | 
			
		||||
          height: 4px;
 | 
			
		||||
          background: #639EFD;
 | 
			
		||||
          border-radius: 2px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      & > img {
 | 
			
		||||
        width: 112px;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        top: 0;
 | 
			
		||||
        right: 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,8 @@
 | 
			
		||||
              <span class="icon">*</span>
 | 
			
		||||
              <span> 审批意见:</span>
 | 
			
		||||
            </span>
 | 
			
		||||
            <textarea :maxlength="150" placeholder="请输入审批意见" v-model="opinion" class="textarea" clearable="false"> </textarea>
 | 
			
		||||
            <textarea :maxlength="150" placeholder="请输入审批意见" v-model="opinion" class="textarea"
 | 
			
		||||
                      clearable="false"> </textarea>
 | 
			
		||||
            <div class="clearn" @click="clearn">清空内容</div>
 | 
			
		||||
            <div class="msg_length">
 | 
			
		||||
              <span class="font">{{ opinion.length }}</span>
 | 
			
		||||
@@ -26,7 +27,8 @@
 | 
			
		||||
                <span class="icon" v-if="item.mustFill == 1">*</span>
 | 
			
		||||
                <span> {{ item.fieldName }}:</span>
 | 
			
		||||
              </span>
 | 
			
		||||
              <textarea :maxlength="150" placeholder="请输入审批意见" v-model="item.fieldValue" class="textarea" clearable="false"> </textarea>
 | 
			
		||||
              <textarea :maxlength="150" placeholder="请输入审批意见" v-model="item.fieldValue" class="textarea"
 | 
			
		||||
                        clearable="false"> </textarea>
 | 
			
		||||
              <div class="clearn" @click="clearn">清空内容</div>
 | 
			
		||||
              <div class="msg_length">
 | 
			
		||||
                <span class="font">{{ item.fieldValue.length }}</span>
 | 
			
		||||
@@ -42,7 +44,8 @@
 | 
			
		||||
                <span> {{ item.fieldName }}:</span>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div class="left">
 | 
			
		||||
                <u-input type="text" @click="timeSelect(index)" class="right" placeholder="请选择" disabled v-model="item.fieldValue"></u-input>
 | 
			
		||||
                <u-input type="text" @click="timeSelect(index)" class="right" placeholder="请选择" disabled
 | 
			
		||||
                         v-model="item.fieldValue"></u-input>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
@@ -56,7 +59,8 @@
 | 
			
		||||
        <!-- 单个文件最大10MB.zip、.rar、.doc、.docx、.xls、.xlsx、.ppt、.pptx、.pdf、.txt、.jpg、.png格式 -->
 | 
			
		||||
        <div class="upload">
 | 
			
		||||
          <div class="info">
 | 
			
		||||
            <ai-uploader multiple @list="(v) => (annex = v)" :limit="9" action="/admin/file/add2" type="file" placeholder="添加文件" preview />
 | 
			
		||||
            <ai-uploader multiple @list="(v) => (annex = v)" :limit="9" action="/admin/file/add2" type="file"
 | 
			
		||||
                         placeholder="添加文件" preview/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -67,7 +71,7 @@
 | 
			
		||||
        <text class="img_text">(最多9张)</text>
 | 
			
		||||
        <div class="upload">
 | 
			
		||||
          <div class="info">
 | 
			
		||||
            <ai-uploader multiple @list="(v) => (picture = v)" :limit="9" :size="2097152" preview />
 | 
			
		||||
            <ai-uploader multiple @list="(v) => (picture = v)" :limit="9" :size="2097152" preview/>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@@ -76,8 +80,8 @@
 | 
			
		||||
    <div class="btn" @click="btn">确定</div>
 | 
			
		||||
 | 
			
		||||
    <!-- 日期选择器 -->
 | 
			
		||||
    <u-calendar v-model="show" :mode="mode" @change="calendar" />
 | 
			
		||||
    <back />
 | 
			
		||||
    <u-calendar v-model="show" :mode="mode" @change="calendar"/>
 | 
			
		||||
    <back/>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
@@ -119,9 +123,11 @@ export default {
 | 
			
		||||
  // 监听
 | 
			
		||||
  watch: {},
 | 
			
		||||
  // 实例创建后
 | 
			
		||||
  onShow() {},
 | 
			
		||||
  onShow() {
 | 
			
		||||
  },
 | 
			
		||||
  // 实例渲染后
 | 
			
		||||
  mounted() {},
 | 
			
		||||
  mounted() {
 | 
			
		||||
  },
 | 
			
		||||
  // 方法
 | 
			
		||||
  methods: {
 | 
			
		||||
    timeSelect(index) {
 | 
			
		||||
@@ -139,23 +145,23 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$http
 | 
			
		||||
        .post(`/app/approv-alapply-info/approval-popup?type=${this.type}&id=${this.objid}`)
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            res.data.fieldInfos.map((item) => {
 | 
			
		||||
              if (item.fieldDataType == 1) {
 | 
			
		||||
                item.fieldValue = ''
 | 
			
		||||
              }
 | 
			
		||||
      .post(`/app/approv-alapply-info/approval-popup?type=${this.type}&id=${this.objid}`)
 | 
			
		||||
      .then((res) => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          res.data.fieldInfos.map((item) => {
 | 
			
		||||
            if (item.fieldDataType == 1) {
 | 
			
		||||
              item.fieldValue = ''
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
              if (item.fieldType == 3) {
 | 
			
		||||
                this.list.push(item)
 | 
			
		||||
              }
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch(() => {
 | 
			
		||||
          // this.$u.toast(err)
 | 
			
		||||
        })
 | 
			
		||||
            if (item.fieldType == 3) {
 | 
			
		||||
              this.list.push(item)
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
      .catch(() => {
 | 
			
		||||
        // this.$u.toast(err)
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    // 提交确定
 | 
			
		||||
    btn() {
 | 
			
		||||
@@ -169,15 +175,15 @@ export default {
 | 
			
		||||
      // var isConfirm = true
 | 
			
		||||
 | 
			
		||||
      if (
 | 
			
		||||
        this.list.some((item) => {
 | 
			
		||||
          if (item.mustFill == 1 && !item.fieldValue) {
 | 
			
		||||
            uni.showToast({
 | 
			
		||||
              title: item.fieldName + '为必填',
 | 
			
		||||
              icon: 'none',
 | 
			
		||||
            })
 | 
			
		||||
            return true
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
          this.list.some((item) => {
 | 
			
		||||
            if (item.mustFill == 1 && !item.fieldValue) {
 | 
			
		||||
              uni.showToast({
 | 
			
		||||
                title: item.fieldName + '为必填',
 | 
			
		||||
                icon: 'none',
 | 
			
		||||
              })
 | 
			
		||||
              return true
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
      )
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
@@ -208,27 +214,27 @@ export default {
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      this.$http
 | 
			
		||||
        .post(`/app/approv-alapply-info/approval`, params)
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            uni.navigateTo({
 | 
			
		||||
              url: `/pages/workonline/truemsg?flag=1`,
 | 
			
		||||
            })
 | 
			
		||||
            this.getList()
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
      .post(`/app/approv-alapply-info/approval`, params)
 | 
			
		||||
      .then((res) => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          uni.navigateTo({
 | 
			
		||||
            url: `/pages/workonline/truemsg?flag=0`,
 | 
			
		||||
            url: `/pages/workonline/truemsg?flag=1`,
 | 
			
		||||
          })
 | 
			
		||||
          //  this.$u.toast(err)
 | 
			
		||||
          uni.showToast({
 | 
			
		||||
            title: e,
 | 
			
		||||
            icon: 'none',
 | 
			
		||||
          })
 | 
			
		||||
          // this.$u.toast(err || '网络异常')
 | 
			
		||||
          this.getList()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
      .catch((e) => {
 | 
			
		||||
        uni.navigateTo({
 | 
			
		||||
          url: `/pages/workonline/truemsg?flag=0`,
 | 
			
		||||
        })
 | 
			
		||||
        //  this.$u.toast(err)
 | 
			
		||||
        uni.showToast({
 | 
			
		||||
          title: e,
 | 
			
		||||
          icon: 'none',
 | 
			
		||||
        })
 | 
			
		||||
        // this.$u.toast(err || '网络异常')
 | 
			
		||||
        this.getList()
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    data(e) {
 | 
			
		||||
      this.files.push(e)
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,8 @@
 | 
			
		||||
        <p>审批通过:</p>
 | 
			
		||||
        <div class="save">
 | 
			
		||||
          <div style="display:inline">[{{ this.list.tableInfo.tableName }}]已签署完成,</div>
 | 
			
		||||
          <ai-image preview :file="list.pdfFile" style="display:inline-block;margin-left:4px ;"><span class="clicksave">点击查看和保存</span> </ai-image>
 | 
			
		||||
          <ai-image preview :file="list.pdfFile" style="display:inline-block;margin-left:4px ;"><span class="clicksave">点击查看和保存</span>
 | 
			
		||||
          </ai-image>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
@@ -19,7 +20,8 @@
 | 
			
		||||
          <div class="people_msg">
 | 
			
		||||
            <!-- 圆形头像 -->
 | 
			
		||||
            <div class="avatar">
 | 
			
		||||
              <span v-if="list.createUserAvatar"><img :src="list.createUserAvatar" alt="" style="width: 100%;height: 100%;border-radius:50%"/></span>
 | 
			
		||||
              <span v-if="list.createUserAvatar"><img :src="list.createUserAvatar" alt=""
 | 
			
		||||
                                                      style="width: 100%;height: 100%;border-radius:50%"/></span>
 | 
			
		||||
              <span v-else> {{ $formatName(list.createUserName) }}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
@@ -40,7 +42,7 @@
 | 
			
		||||
 | 
			
		||||
          <!-- 已通过 -->
 | 
			
		||||
          <div class="people_status_agree" v-if="list.approvalStatus == 1">
 | 
			
		||||
            <img src="./components/people_status_agree.png" alt="" />
 | 
			
		||||
            <img src="./components/people_status_agree.png" alt=""/>
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          <!-- 被驳回 -->
 | 
			
		||||
@@ -72,7 +74,7 @@
 | 
			
		||||
            <div class="item_info">
 | 
			
		||||
              <span class="annexs">附件资料:</span>
 | 
			
		||||
              <div class="img_text" v-for="(item, indexs) in list.annexs" :key="indexs">
 | 
			
		||||
                <ai-image :src="item.annexFile.url" preview />
 | 
			
		||||
                <ai-image :src="item.annexFile.url" preview/>
 | 
			
		||||
                <span class="text">{{ item.annexName }}</span>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
@@ -81,23 +83,27 @@
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <!-- tabs栏 -->
 | 
			
		||||
      <u-tabs class="tabs" :list="list_tabs" height="96" active-color="#1365dd" inactive-color="#999" bar-width="374" font-size="30" :is-scroll="false" :current="current" @change="change"></u-tabs>
 | 
			
		||||
      <u-tabs class="tabs" :list="list_tabs" height="96" active-color="#1365dd" inactive-color="#999" bar-width="374"
 | 
			
		||||
              font-size="30" :is-scroll="false" :current="current" @change="change"></u-tabs>
 | 
			
		||||
 | 
			
		||||
      <!-- 表单申请的折叠窗 -->
 | 
			
		||||
      <div style="background-color:#fff">
 | 
			
		||||
        <div v-if="current == 0" class="collapse">
 | 
			
		||||
          <u-collapse event-type="close" :arrow="true" :accordion="true">
 | 
			
		||||
            <u-collapse-item v-if="item.length > 0" v-for="(item, index) in inforlist" :title="item[0].groupName" :key="index">
 | 
			
		||||
            <u-collapse-item v-if="item.length > 0" v-for="(item, index) in inforlist" :title="item[0].groupName"
 | 
			
		||||
                             :key="index">
 | 
			
		||||
              <div v-for="(items, indexs) in item" :key="indexs">
 | 
			
		||||
                <div class="item_msg">
 | 
			
		||||
                  <!-- 左 -->
 | 
			
		||||
                  <span class="msg_lef">{{ items.fieldName }}</span>
 | 
			
		||||
                  <!-- 右 -->
 | 
			
		||||
                  <!-- 字典值 items.dictionaryCode -->
 | 
			
		||||
                  <span class="msg_lright" v-if="items.fieldDataType != 5">{{ $dict.getLabel(items.dictionaryCode, items.fieldValue) }}</span>
 | 
			
		||||
                  <span class="msg_lright" v-if="items.fieldDataType != 5">{{
 | 
			
		||||
                      $dict.getLabel(items.dictionaryCode, items.fieldValue)
 | 
			
		||||
                    }}</span>
 | 
			
		||||
                  <span class="msg_lright" v-else>
 | 
			
		||||
                    <span v-for="(itemL, indexL) in items.fieldValue" :key="indexL"
 | 
			
		||||
                      >{{ $dict.getLabel(items.dictionaryCode, itemL) }}
 | 
			
		||||
                    >{{ $dict.getLabel(items.dictionaryCode, itemL) }}
 | 
			
		||||
                      <span v-if="indexL < items.fieldValue.length - 1">,</span>
 | 
			
		||||
                    </span>
 | 
			
		||||
                  </span>
 | 
			
		||||
@@ -120,12 +126,13 @@
 | 
			
		||||
              <div class="item-left-ava-icon">
 | 
			
		||||
                <!-- 头像 -->
 | 
			
		||||
                <div class="avatar" v-if="item.userName">
 | 
			
		||||
                  <span v-if="item.stepAvatar"><img :src="item.stepAvatar" alt="" style="width: 100%;height: 100%;border-radius:50%"/></span>
 | 
			
		||||
                  <span v-if="item.stepAvatar"><img :src="item.stepAvatar" alt=""
 | 
			
		||||
                                                    style="width: 100%;height: 100%;border-radius:50%"/></span>
 | 
			
		||||
                  <span v-else> {{ $formatName(item.userName) }}</span>
 | 
			
		||||
                </div>
 | 
			
		||||
 | 
			
		||||
                <div class="avatar" v-else-if="item.title == '抄送'">
 | 
			
		||||
                  <img src="./components/Profile_Picture.png" alt="" />
 | 
			
		||||
                  <img src="./components/Profile_Picture.png" alt=""/>
 | 
			
		||||
                </div>
 | 
			
		||||
 | 
			
		||||
                <div class="avatar" v-else>
 | 
			
		||||
@@ -134,14 +141,14 @@
 | 
			
		||||
 | 
			
		||||
                <!-- 图标 发起 抄送和审批通过图标 -->
 | 
			
		||||
                <div class="icon-yes" v-if="item.stepType == 1 || item.stepType == 0 || item.stepType == 3">
 | 
			
		||||
                  <img src="./components/agree.png" alt="" />
 | 
			
		||||
                  <img src="./components/agree.png" alt=""/>
 | 
			
		||||
                </div>
 | 
			
		||||
 | 
			
		||||
                <!-- 审批拒绝图标 -->
 | 
			
		||||
                <div class="" v-else-if="item.stepType == 2"></div>
 | 
			
		||||
 | 
			
		||||
                <div class="icon-no" v-else>
 | 
			
		||||
                  <img src="./components/clearn.png" />
 | 
			
		||||
                  <img src="./components/clearn.png"/>
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
 | 
			
		||||
@@ -191,7 +198,8 @@
 | 
			
		||||
                  <div class="examine_docx1">
 | 
			
		||||
                    <!-- 图片 -->
 | 
			
		||||
                    <div class="examine_img" v-if="item.pictureFiles && item.pictureFiles.length > 0" style="">
 | 
			
		||||
                      <ai-image preview :src="pic.url" v-for="pic in item.pictureFiles" :key="pic.id" style="width: 65px;height: 75px;float: left;margin-left: 6px;margin-bottom: 4px;overflow: hidden;" />
 | 
			
		||||
                      <ai-image preview :src="pic.url" v-for="pic in item.pictureFiles" :key="pic.id"
 | 
			
		||||
                                style="width: 65px;height: 75px;float: left;margin-left: 6px;margin-bottom: 4px;overflow: hidden;"/>
 | 
			
		||||
                    </div>
 | 
			
		||||
 | 
			
		||||
                    <!-- 附件资料 -->
 | 
			
		||||
@@ -214,7 +222,8 @@
 | 
			
		||||
                  <div class="examine_docx1">
 | 
			
		||||
                    <!-- 图片 -->
 | 
			
		||||
                    <div class="examine_img" v-if="item.pictureFiles && item.pictureFiles.length > 0" style="">
 | 
			
		||||
                      <ai-image preview :src="pic.url" v-for="pic in item.pictureFiles" :key="pic.id" style="width: 69px;height: 75px;float: left;margin-left: 4px;margin-bottom: 4px;overflow: hidden;" />
 | 
			
		||||
                      <ai-image preview :src="pic.url" v-for="pic in item.pictureFiles" :key="pic.id"
 | 
			
		||||
                                style="width: 69px;height: 75px;float: left;margin-left: 4px;margin-bottom: 4px;overflow: hidden;"/>
 | 
			
		||||
                    </div>
 | 
			
		||||
 | 
			
		||||
                    <!-- 附件资料 -->
 | 
			
		||||
@@ -244,18 +253,18 @@
 | 
			
		||||
      <div class="agree" @click="agree(1)">同意</div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <back />
 | 
			
		||||
    <back/>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import back from '../../components/AiBack'
 | 
			
		||||
import AiImage from '../../components/AiImage'
 | 
			
		||||
import { mapActions } from 'vuex'
 | 
			
		||||
import {mapActions} from 'vuex'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'workonlineDetail',
 | 
			
		||||
  components: { AiImage, back },
 | 
			
		||||
  components: {AiImage, back},
 | 
			
		||||
  computed: {
 | 
			
		||||
    canApproval() {
 | 
			
		||||
      return this.listType == 0
 | 
			
		||||
@@ -345,20 +354,20 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
    agree(type) {
 | 
			
		||||
      this.$http
 | 
			
		||||
        .post(`/app/approv-alapply-info/approval-popup?type=${type}&id=${this.objid}`)
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            uni.navigateTo({
 | 
			
		||||
              url: `/pages/workonline/approvalopinion?id=${this.objid}&type=${type}`,
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
        .catch((e) => {
 | 
			
		||||
          uni.showToast({
 | 
			
		||||
            title: e,
 | 
			
		||||
            icon: 'none',
 | 
			
		||||
      .post(`/app/approv-alapply-info/approval-popup?type=${type}&id=${this.objid}`)
 | 
			
		||||
      .then((res) => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          uni.navigateTo({
 | 
			
		||||
            url: `/pages/workonline/approvalopinion?id=${this.objid}&type=${type}`,
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
      .catch((e) => {
 | 
			
		||||
        uni.showToast({
 | 
			
		||||
          title: e,
 | 
			
		||||
          icon: 'none',
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,10 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="closemsg">
 | 
			
		||||
    <img :src="imgSrc" alt="" />
 | 
			
		||||
    <img :src="imgSrc" alt=""/>
 | 
			
		||||
    <text>{{ text }}</text>
 | 
			
		||||
    <u-button type="primary" :custom-style="{ width: '100%', borderRadius: '4px', marginTop: '48px' }" @click="goBack">{{ btnText }} </u-button>
 | 
			
		||||
    <u-button type="primary" :custom-style="{ width: '100%', borderRadius: '4px', marginTop: '48px' }" @click="goBack">
 | 
			
		||||
      {{ btnText }}
 | 
			
		||||
    </u-button>
 | 
			
		||||
    <back></back>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -12,7 +14,7 @@ import back from '../../components/AiBack'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'CloseMsg',
 | 
			
		||||
  components: { back },
 | 
			
		||||
  components: {back},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      flag: true,
 | 
			
		||||
@@ -38,7 +40,7 @@ export default {
 | 
			
		||||
      return this.flag ? '确定' : '我知道了'
 | 
			
		||||
    },
 | 
			
		||||
    imgSrc() {
 | 
			
		||||
      return this.flag ? this.$cdn+'other/' + 'kztcg.png' : this.$cdn+'other/' + 'kztsb.png'
 | 
			
		||||
      return this.flag ? this.$cdn + 'other/' + 'kztcg.png' : this.$cdn + 'other/' + 'kztsb.png'
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,8 @@
 | 
			
		||||
  <div class="workonline">
 | 
			
		||||
    <!-- 顶部搜索 -->
 | 
			
		||||
    <div class="search">
 | 
			
		||||
      <u-search class="serach_content" placeholder="请输入标题" :show-action="false" v-model="keyword" @clear="search" @search="search"></u-search>
 | 
			
		||||
      <u-search class="serach_content" placeholder="请输入标题" :show-action="false" v-model="keyword" @clear="search"
 | 
			
		||||
                @search="search"></u-search>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <u-tabs :list="list" :is-scroll="false" :current="currentType" @change="change"></u-tabs>
 | 
			
		||||
@@ -22,10 +23,14 @@
 | 
			
		||||
              <span class="item_info">审批进度:</span>
 | 
			
		||||
 | 
			
		||||
              <!-- 申请类型 ing -->
 | 
			
		||||
              <span class="business_status" v-if="item.approvalStatus == 0"> {{ $dict.getLabel('listApprovalStatusHb', item.approvalStatus) }}</span>
 | 
			
		||||
              <span class="business_status" v-if="item.approvalStatus == 0"> {{
 | 
			
		||||
                  $dict.getLabel('listApprovalStatusHb', item.approvalStatus)
 | 
			
		||||
                }}</span>
 | 
			
		||||
 | 
			
		||||
              <!-- end -->
 | 
			
		||||
              <span class="business_status_blue" v-if="item.approvalStatus == 1"> {{ $dict.getLabel('listApprovalStatusHb', item.approvalStatus) }}</span>
 | 
			
		||||
              <span class="business_status_blue" v-if="item.approvalStatus == 1"> {{
 | 
			
		||||
                  $dict.getLabel('listApprovalStatusHb', item.approvalStatus)
 | 
			
		||||
                }}</span>
 | 
			
		||||
 | 
			
		||||
              <!-- false -->
 | 
			
		||||
              <span class="business_status_gray" v-if="item.approvalStatus == 2">
 | 
			
		||||
@@ -49,11 +54,11 @@
 | 
			
		||||
 | 
			
		||||
        <span class="icon">
 | 
			
		||||
          <!-- ing -->
 | 
			
		||||
          <img src="./components/ing.png" alt="" v-if="item.approvalStatus == 0" />
 | 
			
		||||
          <img src="./components/ing.png" alt="" v-if="item.approvalStatus == 0"/>
 | 
			
		||||
          <!-- end -->
 | 
			
		||||
          <img src="./components/end.png" alt="" v-if="item.approvalStatus == 1" />
 | 
			
		||||
          <img src="./components/end.png" alt="" v-if="item.approvalStatus == 1"/>
 | 
			
		||||
          <!-- false -->
 | 
			
		||||
          <img src="./components/reject.png" alt="" v-if="item.approvalStatus == 2" />
 | 
			
		||||
          <img src="./components/reject.png" alt="" v-if="item.approvalStatus == 2"/>
 | 
			
		||||
        </span>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
@@ -69,10 +74,10 @@ export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      list: [
 | 
			
		||||
        { name: '待我审批', type: 0 },
 | 
			
		||||
        { name: '我已审批', type: 1 },
 | 
			
		||||
        { name: '抄送我的', type: 3 },
 | 
			
		||||
        { name: '超时督办', type: 4 },
 | 
			
		||||
        {name: '待我审批', type: 0},
 | 
			
		||||
        {name: '我已审批', type: 1},
 | 
			
		||||
        {name: '抄送我的', type: 3},
 | 
			
		||||
        {name: '超时督办', type: 4},
 | 
			
		||||
      ],
 | 
			
		||||
      currentType: 0, // 0待我审批 1已审批 2抄送我的 3超时
 | 
			
		||||
      keyword: '',
 | 
			
		||||
@@ -95,7 +100,8 @@ export default {
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
  // 实例渲染后
 | 
			
		||||
  mounted() {},
 | 
			
		||||
  mounted() {
 | 
			
		||||
  },
 | 
			
		||||
  // 方法
 | 
			
		||||
  methods: {
 | 
			
		||||
    getList() {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user