浏览代码

no message

aXin-0810 9 月之前
父节点
当前提交
7ef82922c1

+ 285 - 0
src/packageMine/pages/repairSettle/detail.vue

@@ -0,0 +1,285 @@
+<template>
+  <view class="app-container">
+    <view class="top-container">
+      <view class="title">
+        <view class="left">工单信息</view>
+        <view class="right">{{ detailData.issueStatus | statusFilter }}</view>
+      </view>
+      <view class="main">
+        <view
+          >工单编号:{{ detailData.dispatchOrderNo }} <text @tap="copy(detailData.dispatchOrderNo)">复制</text></view
+        >
+        <view>预约时间:{{ detailData.reportDate }}</view>
+        <view>完工时间:{{ detailData.repairDate }}</view>
+        <view>用户姓名:{{ detailData.userName }}</view>
+        <view>地址信息:{{ detailData.gpsAddr }}</view>
+      </view>
+    </view>
+
+    <view class="cardOne list">
+      <view class="title">
+        <text class="title-lt">维修设备</text>
+        <text class="title-rt">{{ detailData.orderStatus }}</text>
+      </view>
+      <view class="con">
+        <view class="list-con">
+          <text class="text">内机机型:</text>
+          <text class="content">{{ detailData.inMachineDescribe }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">外机机型:</text>
+          <text class="content">{{ detailData.outMachineDescribe }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">维修费用:</text>
+          <text class="content">{{ detailData.repairFee }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">故障现象:</text>
+          <text class="content">{{ detailData.faultPhenomenon }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">故障分析:</text>
+          <text class="content">{{ detailData.faultAnalysis }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">维修内容:</text>
+          <text class="content">{{ detailData.repairDetail }}</text>
+        </view>
+      </view>
+    </view>
+    <view class="cardOne list">
+      <view class="title">
+        <text class="title-lt">收入明细说明</text>
+      </view>
+      <view class="con">
+        <view class="list-con">
+          <text class="text">维修费用:</text>
+          <text class="content">{{ detailData.repairFee }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">交通费用:</text>
+          <text class="content">{{ detailData.trafficFee }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">住宿费用:</text>
+          <text class="content">{{ detailData.accommodationFee }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">吊装费用:</text>
+          <text class="content">{{ detailData.liftingFee }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">其他费用:</text>
+          <text class="content">{{ detailData.otherFee }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text" style="color: #ff6200">总费用:</text>
+          <text class="content" style="color: #ff6200">{{ detailData.totalFee }}</text>
+        </view>
+      </view>
+    </view>
+    <view class="cardOne list" v-if="detailData.issueStatus !== 1">
+      <view class="title">
+        <text class="title-lt">银行卡信息</text>
+      </view>
+      <view class="con">
+        <view class="list-con">
+          <text class="text">用户名:</text>
+          <text class="content">{{ detailData.bankAccountName }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">银行卡号:</text>
+          <text class="content">{{ detailData.bankAccount }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">开户行:</text>
+          <text class="content">{{ detailData.depositBank }}</text>
+        </view>
+        <view class="list-con">
+          <text class="text">发放时间:</text>
+          <text class="content">{{ detailData.issueTime }}</text>
+        </view>
+      </view>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  filters: {
+    statusFilter(val) {
+      const MAP = {
+        1: '待发放',
+        2: '已发放',
+        3: '银行受理中'
+      }
+      return MAP[val]
+    }
+  },
+  data() {
+    return {
+      salaryNo: null,
+      summaryBatchNo: null,
+      id: null,
+      type: null,
+      detailData: {}
+    }
+  },
+
+  onLoad({ salaryNo, summaryBatchNo, id, type }) {
+    this.salaryNo = salaryNo
+    this.summaryBatchNo = summaryBatchNo
+    this.type = type
+    this.id = id
+
+    const { websit_number, number } = this.$store.state.userInfo.websit_worker
+    this.websitNumber = websit_number
+    this.workerNumber = number
+
+    this.getDetail()
+  },
+
+  methods: {
+    getDetail() {
+      let url = ''
+      if (this.type == 1) {
+        url = '/daily/mywallet/repair/detail'
+      } else if (this.type == 2) {
+        url = '/daily/mywallet/repair/month/detail'
+      } else {
+        url = '/daily/mywallet/not/issue/list'
+      }
+      this.$axios({
+        url,
+        method: 'get',
+        params: {
+          workerNumber: this.workerNumber,
+          salaryNo: this.salaryNo || '',
+          summaryBatchNo: this.summaryBatchNo || '',
+          id: this.id || ''
+        },
+        isLoading: 1
+      }).then(res => {
+        this.detailData = res.data[0]
+      })
+    },
+
+    copy(val) {
+      uni.setClipboardData({
+        data: val,
+        success: function () {
+          uni.showToast({
+            title: '复制成功'
+          })
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.top-container {
+  background: #ffffff;
+  padding: 10rpx 30rpx 0;
+  .title {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    height: 80rpx;
+    border-bottom: 1px solid #eaeaea;
+    margin-bottom: 20rpx;
+    .left {
+      font-size: 32rpx;
+      color: #333333;
+      font-weight: 600;
+    }
+    .right {
+      font-size: 28rpx;
+      color: #ff6200;
+    }
+  }
+  .main {
+    padding-bottom: 20rpx;
+    view {
+      display: flex;
+      align-items: center;
+      margin-bottom: 15rpx;
+      line-height: 32rpx;
+      text {
+        width: 60rpx;
+        height: 30rpx;
+        background: #6da7ff;
+        border-radius: 4rpx;
+        font-size: 20rpx;
+        color: #ffffff;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        margin-left: 20rpx;
+      }
+    }
+  }
+}
+
+.card {
+  margin-top: 20rpx;
+  padding: 20rpx;
+  border: 1px solid #eaeaea;
+  border-radius: 20rpx;
+  .title {
+    margin-bottom: 10rpx;
+  }
+  .list-con {
+    display: flex;
+    justify-content: space-between;
+    height: 50rpx;
+    .text {
+      line-height: 50rpx;
+      flex-shrink: 0;
+    }
+    .content {
+      line-height: 50rpx;
+    }
+  }
+}
+
+.list {
+  margin-top: 20rpx;
+}
+
+.cardOne {
+  padding: 30rpx;
+  background-color: #fff;
+
+  .title {
+    display: flex;
+    justify-content: space-between;
+    border-bottom: 1px solid #eaeaea;
+    padding-bottom: 20rpx;
+    .title-lt {
+      font-weight: 600;
+      font-size: 32rpx;
+    }
+    .title-rt {
+      color: #ff6200;
+      font-size: 28rpx;
+    }
+  }
+
+  .con {
+    margin-top: 20rpx;
+    .list-con {
+      display: flex;
+      .text {
+        line-height: 50rpx;
+        flex-shrink: 0;
+      }
+      .content {
+        line-height: 50rpx;
+      }
+    }
+  }
+}
+</style>

+ 252 - 0
src/packageMine/pages/repairSettle/detailed.vue

@@ -0,0 +1,252 @@
+<template>
+  <view class="page">
+    <view class="search-container">
+      <view class="input-con">
+        <view class="input">
+          <image src="/static/image/search.png" mode=""></image>
+          <input
+            v-model="keyword"
+            @confirm="searchList"
+            confirm-type="search"
+            class="f28_302"
+            type="text"
+            placeholder="输入工单编号或者用户名称进行搜索"
+          />
+        </view>
+      </view>
+    </view>
+
+    <view class="list-container">
+      <view class="item" v-for="(item, index) in dataList" :key="index" @tap.stop="toDetail(item.id)">
+        <view class="main">
+          <view class="row">
+            <text class="label number">工单单号</text>
+            <text class="value number">{{ item.dispatchOrderNo }}</text>
+          </view>
+          <view class="row">
+            <text class="label">预约时间</text>
+            <text class="value">{{ item.reportDate }}</text>
+          </view>
+          <view class="row">
+            <text class="label">完工时间</text>
+            <text class="value">{{ item.repairDate }}</text>
+          </view>
+          <view class="row">
+            <text class="label">用户姓名</text>
+            <text class="value">{{ item.userName }}</text>
+          </view>
+          <view class="row">
+            <text class="label">总费用</text>
+            <text class="value">{{ item.totalFee }}</text>
+          </view>
+        </view>
+      </view>
+    </view>
+
+    <view v-if="dataList.length <= 0" class="no-text">
+      <image src="/static/image/no-data.png"></image>
+      <view class="texts">暂无数据</view>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      salaryNo: null,
+      summaryBatchNo: null,
+      type: null,
+      keyword: '',
+      dataList: []
+    }
+  },
+
+  // 下拉刷新
+  onPullDownRefresh() {
+    this.getList()
+  },
+
+  onLoad({ salaryNo, summaryBatchNo, type }) {
+    this.salaryNo = salaryNo
+    this.summaryBatchNo = summaryBatchNo
+    this.type = type
+
+    const { websit_number, number } = this.$store.state.userInfo.websit_worker
+    this.websitNumber = websit_number
+    this.workerNumber = number
+
+    this.getList()
+  },
+
+  methods: {
+    // 获取列表
+    getList() {
+      let url = ''
+      let params = {}
+      if (this.type == 1) {
+        url = '/daily/mywallet/repair/detail'
+        params = {
+          workerNumber: this.workerNumber,
+          salaryNo: this.salaryNo || '',
+          summaryBatchNo: this.summaryBatchNo || '',
+          q: this.keyword
+        }
+      } else if (this.type == 2) {
+        url = '/daily/mywallet/repair/month/detail'
+        params = {
+          workerNumber: this.workerNumber,
+          salaryNo: this.salaryNo || '',
+          summaryBatchNo: this.summaryBatchNo || '',
+          q: this.keyword
+        }
+      } else {
+        url = '/daily/mywallet/not/issue/list'
+        params = {
+          workerNumber: this.workerNumber,
+          salaryNo: this.salaryNo || '',
+          summaryBatchNo: this.summaryBatchNo || '',
+          q: this.keyword,
+          install: false
+        }
+      }
+
+      this.$axios({
+        url,
+        method: 'get',
+        params,
+        isLoading: 1
+      })
+        .then(res => {
+          this.dataList = res.data
+        })
+        .finally(() => {
+          uni.stopPullDownRefresh()
+        })
+    },
+
+    searchList() {
+      this.getList()
+    },
+
+    toDetail(id) {
+      uni.navigateTo({
+        url:
+          '/packageMine/pages/repairSettle/detail?salaryNo=' +
+          (this.salaryNo || '') +
+          '&summaryBatchNo=' +
+          (this.summaryBatchNo || '') +
+          '&id=' +
+          id +
+          '&type=' +
+          this.type
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.page {
+}
+
+.search-container {
+  background-color: #ffffff;
+  width: 100%;
+  border-bottom: 2rpx solid #e5e5e5;
+  padding: 0 30rpx;
+
+  .input-con {
+    @include flex_ac;
+    height: 88rpx;
+    width: 100%;
+
+    .input {
+      @include flex_ac;
+      flex: 1;
+      padding: 0 24rpx;
+      height: 64rpx;
+      background: #f7f7f7;
+      border-radius: 32rpx;
+
+      input {
+        flex: 1;
+      }
+
+      image {
+        width: 28rpx;
+        height: 28rpx;
+        margin-right: 16rpx;
+      }
+    }
+  }
+}
+
+.list-container {
+  padding: 30rpx 30rpx 0;
+
+  .item {
+    margin-bottom: 20rpx;
+
+    &:last-child {
+      margin-bottom: 0;
+    }
+
+    .date {
+      font-size: 30rpx;
+      color: #666666;
+      margin-bottom: 10rpx;
+    }
+
+    .main {
+      color: #666666;
+      background: #ffffff;
+      padding: 15rpx 30rpx;
+      border-radius: 20rpx;
+
+      .row {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        height: 60rpx;
+
+        .label {
+          font-size: 28rpx;
+          color: #666666;
+        }
+
+        .value {
+          font-size: 28rpx;
+          color: #333333;
+
+          &.orange {
+            color: #e95505;
+          }
+        }
+
+        .number {
+          color: #333333;
+        }
+      }
+    }
+  }
+}
+
+.no-text {
+  height: 100%;
+  width: 100%;
+  margin-top: 50rpx;
+  text-align: center;
+
+  image {
+    width: 450rpx;
+    height: 250rpx;
+    margin-bottom: 40rpx;
+  }
+
+  .texts {
+    color: #cccccc;
+    font-size: 28rpx;
+  }
+}
+</style>

+ 342 - 0
src/packageMine/pages/repairSettle/list.vue

@@ -0,0 +1,342 @@
+<template>
+  <view class="s_page">
+    <view class="nav-con">
+      <view :class="currentTab === 1 ? 'current' : ''" class="item" @click="changeTabs(1)"><text>日报</text></view>
+      <view :class="currentTab === 2 ? 'current' : ''" class="item" @click="changeTabs(2)"><text>月报</text></view>
+    </view>
+
+    <view class="date-container" v-if="currentTab === 1">
+      <view class="date" @tap="isShowDatePicker = true">
+        <picker
+          class="picker"
+          mode="date"
+          :value="currentDate"
+          start="1900-01-01"
+          end="2400-12-31"
+          @change="changeDate"
+        >
+          <view class="text">{{ currentDate }}</view>
+        </picker>
+        <image src="@/static/image/calendar.png" mode=""></image>
+      </view>
+    </view>
+    <view class="date-container" v-if="currentTab === 2">
+      <view class="date" @tap="isShowDatePicker = true">
+        <picker
+          class="picker"
+          mode="date"
+          :value="currentDate"
+          start="1900-01-01"
+          end="2400-12-31"
+          @change="changeDate"
+          fields="month"
+        >
+          <view class="text">{{ currentDate }}</view>
+        </picker>
+        <image src="@/static/image/calendar.png" mode=""></image>
+      </view>
+    </view>
+
+    <view class="list-container" v-if="currentTab === 1">
+      <view class="item" v-for="(item, index) in dataList" :key="index" @tap.stop="toDetailed(1, item.salaryNo)">
+        <view class="date" v-if="item.issueTime">
+          {{ Number(item.issueTime.slice(5, 7)) }}月{{ Number(item.issueTime.slice(8, 10)) }}日</view
+        >
+        <view class="main">
+          <view class="row">
+            <text class="label">工资条编号</text>
+            <text class="value">{{ item.salaryNo }}</text>
+          </view>
+          <view class="row">
+            <text class="label">发放月份</text>
+            <text class="value">{{ item.issueMonth }}</text>
+          </view>
+          <view class="row">
+            <text class="label">发放时间</text>
+            <text class="value">{{ item.issueTime }}</text>
+          </view>
+          <view class="row">
+            <text class="label">维修结算费用</text>
+            <text class="value">{{ item.repairTotalAmount }}</text>
+          </view>
+          <view class="row">
+            <text class="label">工伤、残保费用扣除</text>
+            <text class="value">{{ item.totalEmpCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">暂扣款10%</text>
+            <text class="value">{{ item.withholdCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">需扣回费用</text>
+            <text class="value">{{ item.reduceCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">增减费用</text>
+            <text class="value">{{ item.inCrDecrCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">应发费用</text>
+            <text class="value">{{ item.issueCost }}</text>
+          </view>
+        </view>
+      </view>
+    </view>
+
+    <view class="list-container" v-if="currentTab === 2">
+      <view class="item" v-for="(item, index) in dataList" :key="index" @tap.stop="toDetailed(2, item.summaryBatchNo)">
+        <view class="date" v-if="item.issueTime">
+          {{ Number(item.issueTime.slice(0, 4)) }}年{{ Number(item.issueTime.slice(5, 7)) }}月</view
+        >
+        <view class="main">
+          <view class="row">
+            <text class="label">维修结算费用总额</text>
+            <text class="value">{{ item.repairTotalAmount }}</text>
+          </view>
+          <view class="row">
+            <text class="label">需扣回费用</text>
+            <text class="value">{{ item.shouldReduceCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">增减费用</text>
+            <text class="value">{{ item.incrDecrCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">月度计税费用总额</text>
+            <text class="value">{{ item.taxToatalCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">工伤保险</text>
+            <text class="value">{{ item.shouldEmpInsuranceCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">残保金</text>
+            <text class="value">{{ item.shouldResidualInsuranceCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">服务费</text>
+            <text class="value">{{ item.serviceCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">个税金额</text>
+            <text class="value">{{ item.incomeCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">应发工资总额</text>
+            <text class="value">{{ item.issueCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">日结累计已发</text>
+            <text class="value">{{ item.dailySendCost }}</text>
+          </view>
+          <view class="row">
+            <text class="label">月度实发工资</text>
+            <text class="value">{{ item.monthSendCost }}</text>
+          </view>
+        </view>
+      </view>
+    </view>
+
+    <view v-if="dataList.length <= 0" class="no-text">
+      <image src="/static/image/no-data.png"></image>
+      <view class="texts">暂无数据</view>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      dataList: [],
+      currentTab: 1,
+      isShowDatePicker: false,
+      currentDate: '请选择日期'
+    }
+  },
+
+  // 下拉刷新
+  onPullDownRefresh() {
+    this.getList()
+  },
+
+  onLoad() {
+    const { websit_number, number } = this.$store.state.userInfo.websit_worker
+    this.websitNumber = websit_number
+    this.workerNumber = number
+
+    this.getList()
+  },
+
+  methods: {
+    // 获取列表
+    getList() {
+      this.$axios({
+        url: this.currentTab === 1 ? '/daily/mywallet/issue/list' : '/daily/mywallet/issue/monthlist',
+        method: 'get',
+        params: {
+          workerNumber: this.workerNumber,
+          date: this.currentDate == '请选择日期' ? '' : this.currentDate,
+          install: false
+        },
+        isLoading: 1
+      })
+        .then(res => {
+          this.dataList = res.data
+        })
+        .finally(() => {
+          uni.stopPullDownRefresh()
+        })
+    },
+
+    toDetailed(type, No) {
+      if (type === 1) {
+        uni.navigateTo({
+          url: '/packageMine/pages/repairSettle/detailed?salaryNo=' + No + '&type=' + type
+        })
+      } else {
+        uni.navigateTo({
+          url: '/packageMine/pages/repairSettle/detailed?summaryBatchNo=' + No + '&type=' + type
+        })
+      }
+    },
+
+    // 切换tab
+    changeTabs(value) {
+      this.currentTab = value
+      this.currentDate = '请选择日期'
+      this.getList()
+    },
+
+    // 切换日期
+    changeDate(e) {
+      this.currentDate = e.detail.value
+      this.getList()
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.s_page {
+  .nav-con {
+    @include flex_abs;
+
+    .item {
+      @include flex_abc;
+      width: 50%;
+      height: 80rpx;
+      font-size: 32rpx;
+      color: #666666;
+
+      text {
+        @include flex_abc;
+        width: 150rpx;
+        height: 80rpx;
+        border-bottom: 2px solid #f7f7f7;
+      }
+
+      &.current {
+        color: #6da7ff;
+
+        text {
+          border-bottom: 2px solid #6da7ff;
+        }
+      }
+    }
+  }
+}
+
+.date-container {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+  height: 80rpx;
+  padding: 0 30rpx;
+
+  .date {
+    height: 48rpx;
+    background: #ffffff;
+    border-radius: 8rpx;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding: 0 20rpx;
+
+    .picker {
+      width: 150rpx;
+    }
+
+    .text {
+      font-size: 24rpx;
+      color: #666666;
+    }
+
+    image {
+      width: 28rpx;
+      height: 30rpx;
+      display: block;
+    }
+  }
+}
+
+.list-container {
+  padding: 0 30rpx 30rpx;
+
+  .item {
+    margin-top: 20rpx;
+
+    .date {
+      font-size: 30rpx;
+      color: #666666;
+      margin-bottom: 10rpx;
+    }
+
+    .main {
+      color: #666666;
+      background: #ffffff;
+      padding: 15rpx 30rpx;
+      border-radius: 20rpx;
+
+      .row {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        height: 60rpx;
+
+        .label {
+          font-size: 28rpx;
+          color: #666666;
+        }
+
+        .value {
+          font-size: 28rpx;
+          color: #333333;
+
+          &.orange {
+            color: #e95505;
+          }
+        }
+      }
+    }
+  }
+}
+
+.no-text {
+  height: 100%;
+  width: 100%;
+  margin-top: 50rpx;
+  text-align: center;
+
+  image {
+    width: 450rpx;
+    height: 250rpx;
+    margin-bottom: 40rpx;
+  }
+
+  .texts {
+    color: #cccccc;
+    font-size: 28rpx;
+  }
+}
+</style>

+ 98 - 0
src/packageMine/pages/wodeanwei.vue

@@ -0,0 +1,98 @@
+<template>
+  <view>
+    <view class="list-container">
+      <view class="item" @tap.stop="toUrl('/packageMine/pages/mySecurityFee')">
+        <view class="left">
+          <image :src="'/static/image/icon_1.png'" mode="aspectFill"></image>
+          <view class="f32_666">我的按维费用</view>
+        </view>
+        <view class="right">
+          <image src="/static/image/right.png" mode="aspectFill"></image>
+        </view>
+      </view>
+    </view>
+
+    <view class="list-container">
+      <view class="item" @tap.stop="toUrl('/packageMine/pages/repairSettle/list')">
+        <view class="left">
+          <image :src="'/static/image/icon_3.png'" mode="aspectFill"></image>
+          <view class="f32_666">维修结算费用明细(已发放)</view>
+        </view>
+        <view class="right">
+          <image src="/static/image/right.png" mode="aspectFill"></image>
+        </view>
+      </view>
+      <view class="item" @tap.stop="toUrl('/packageMine/pages/repairSettle/detailed?type=' + 0)">
+        <view class="left">
+          <image :src="'/static/image/icon_3.png'" mode="aspectFill"></image>
+          <view class="f32_666">维修结算费用明细(未发放)</view>
+        </view>
+        <view class="right">
+          <image src="/static/image/right.png" mode="aspectFill"></image>
+        </view>
+      </view>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {}
+  },
+  onShow() {},
+  methods: {
+    toUrl(url) {
+      if (!url) {
+        return uni.showToast({
+          title: '功能开发中',
+          icon: 'none',
+          duration: 1500
+        })
+      }
+      uni.navigateTo({
+        url
+      })
+    }
+  }
+}
+</script>
+
+<style scoped lang="scss">
+.list-container {
+  margin: 30rpx 30rpx 0;
+  background: #ffffff;
+  border-radius: 15rpx;
+  padding: 0 30rpx;
+
+  .item {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    height: 100rpx;
+    border-bottom: 1px solid #eaeaea;
+
+    &:last-child {
+      border: none;
+    }
+
+    .left {
+      display: flex;
+      align-items: center;
+
+      image {
+        width: 40rpx;
+        height: 40rpx;
+        margin-right: 28rpx;
+      }
+    }
+
+    .right {
+      image {
+        width: 30rpx;
+        height: 30rpx;
+      }
+    }
+  }
+}
+</style>

+ 24 - 0
src/pages.json

@@ -390,6 +390,30 @@
           }
         },
         {
+          "path": "/pages/wodeanwei",
+          "style": {
+            "navigationBarTitleText": "我的安维费"
+          }
+        },
+        {
+          "path": "pages/repairSettle/detail",
+          "style": {
+            "navigationBarTitleText": "详情"
+          }
+        },
+        {
+          "path": "/pages/repairSettle/detailed",
+          "style": {
+            "navigationBarTitleText": "明细"
+          }
+        },
+        {
+          "path": "/pages/repairSettle/list",
+          "style": {
+            "navigationBarTitleText": "维修费用结算"
+          }
+        },
+        {
           "path": "pages/securityFeeDetails",
           "style": {
             "navigationBarTitleText": "费用明细"

+ 1 - 1
src/pages/mine/index.vue

@@ -348,7 +348,7 @@ export default {
         {
           name: '我的安维费',
           icon: 'icon-kehu',
-          link: '/packageMine/pages/mySecurityFee',
+          link: '/packageMine/pages/wodeanwei',
           show: this.isWorkerUser
         }
       ]

二进制
src/static/images/calendar.png


二进制
src/static/images/icon_1.png


二进制
src/static/images/icon_3.png


二进制
src/static/images/no-data.png


二进制
src/static/images/nodata.png


二进制
src/static/images/right.png


二进制
src/static/images/search.png