Kaynağa Gözat

附加检验申请功能的迁移

lidie 2 yıl önce
ebeveyn
işleme
c22aba1ee3

+ 6 - 0
src/router/routes.js

@@ -324,6 +324,12 @@ const frameCustom = [
         meta: { title: '延迟报告查询' },
         component: _import('/platform/bpmn/report/delayReport')
       },
+      {
+        path: 'addiInspect/index',
+        name: 'addiInspect',
+        meta: { title: '附加检验申请' },
+        component: _import('/platform/bpmn/addiInspect/index')
+      },
       {
         path: 'communication/communicationList',
         name: 'communicationList',

+ 517 - 0
src/views/platform/bpmn/addiInspect/index.vue

@@ -0,0 +1,517 @@
+<template>
+  <div :class="{'ibps-fixed-toolbar':checkMode}">
+    <van-sticky>
+      <van-nav-bar :title="generateTitle($route.name,$route.params.title||$route.meta.title)"
+        :left-text="$t('common.button.back')" left-arrow @click-left="$router.push({ name: 'dashboard' })" />
+      <van-search v-model="subject" show-action placeholder="请输入搜索关键词" @search="onSearch">
+        <template #left>
+          <van-icon name="bars" :class="{'ibps-active':$utils.isNotEmpty(typeId)}" class="ibps-pr-5"
+            @click="clickType" />
+        </template>
+        <template #action>
+          <!-- <van-icon name="filter-o" :class="{'ibps-active':stateActive}" @click="clickMoreSearch" /> -->
+        </template>
+      </van-search>
+    </van-sticky>
+    <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
+      <van-list v-model="loading" :finished="finished" @load="loadData">
+        <van-checkbox-group v-model="checkedIds">
+          <van-cell v-for="(item,index) in listData" :key="item.id+index"
+            :title="item.yang_pin_bian_hao==''?'/':item.yang_pin_bian_hao==null?'/':item.yang_pin_bian_hao"
+            @click="onClick(item,index)">
+            <template slot="icon">
+              <van-checkbox v-if="checkMode" ref="checkboxes" :name="item.id" class="ibps-mr-10" />
+              <van-icon name="coupon-o" size="1.5rem" color="#1E90FF" style="margin-right: 0.5rem;" />
+            </template>
+            <!-- <span>{{ item.bao_gao_shi_jian|bian_zhi_shi_jian }}</span> -->
+            <template #label>
+              <van-row class="delayShow">
+                <van-col span="6">申请人:</van-col>
+                <van-col
+                  span="17">{{item.shen_qing_ren_zh==''?'/':item.shen_qing_ren_zh==null?'/':item.shen_qing_ren_zh}}</van-col>
+              </van-row>
+              <van-row class="delayShow">
+                <van-col span="6">申请科室:</van-col>
+                <van-col span="17">{{item.ke_shi_zh==''?'/':item.ke_shi_zh==null?'/':item.ke_shi_zh}}</van-col>
+              </van-row>
+              <van-row class="delayShow">
+                <van-col span="6">申请时间:</van-col>
+                <van-col
+                  span="17">{{item.shen_qing_shi_jia==''?'/':item.shen_qing_shi_jia==null?'/':item.shen_qing_shi_jia}}</van-col>
+              </van-row>
+            </template>
+          </van-cell>
+        </van-checkbox-group>
+        <!-- <ibps-list-result-page :result-type="resultType" :error-type="errorType" :result-message="resultMessage" /> -->
+      </van-list>
+    </van-pull-refresh>
+
+    <ibps-toolbar v-show="checkMode" :actions="mainActions" />
+
+    <!-- <ibps-more-search :show="moreSearchPopup" :search-forms="searchForms" @callback="onMoreSearch"
+      @close="show => moreSearchPopup = show" @reset-form="resetForm" /> -->
+
+    <ibps-type-tree v-model="typeTreePopup" title="流程分类" category-key="FLOW_TYPE" @node-click="clickTypeNode"
+      @close="visible => typeTreePopup = visible" />
+    <!-- 遮罩层 -->
+    <template>
+      <van-popup v-model="ReachBottomShow" @close="onClose" ref="examPopup" :style="{  height: '100%',width:'100%'}"
+        position="bottom">
+        <div style="width: 100%; padding: 3% 0; text-align: center;  color: #303030;border-bottom: 1px solid #ebe8e8;">
+          <van-row>
+            <van-col span="4"><van-icon name="cross" size="20px" @click="onClose" /></van-col>
+            <van-col span="16" style="margin:1% auto 0;">报告详情</van-col>
+          </van-row>
+        </div>
+
+        <div style="width: 90%;margin: 1% auto;">
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">申请人:</van-col>
+            <van-col
+              span="14">{{oralPopup.shen_qing_ren_zh==''?'/':oralPopup.shen_qing_ren_zh==null?'/':oralPopup.shen_qing_ren_zh}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">样品编号:</van-col>
+            <van-col
+              span="14">{{oralPopup.yang_pin_bian_hao==''?'/':oralPopup.yang_pin_bian_hao==null?'/':oralPopup.yang_pin_bian_hao}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">申请科室:</van-col>
+            <van-col
+              span="14">{{oralPopup.ke_shi_zh==''?'/':oralPopup.ke_shi_zh==null?'/':oralPopup.ke_shi_zh}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">科室类型:</van-col>
+            <van-col
+              span="14">{{oralPopup.ke_shi_lei_xing_==''?'/':oralPopup.ke_shi_lei_xing_==null?'/':oralPopup.ke_shi_lei_xing_}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">申请时间:</van-col>
+            <van-col
+              span="14">{{oralPopup.shen_qing_shi_jia==''?'/':oralPopup.shen_qing_shi_jia==null?'/':oralPopup.shen_qing_shi_jia}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">登记人员:</van-col>
+            <van-col
+              span="14">{{oralPopup.dengjirenyuan==null?'/':oralPopup.dengjirenyuan==null?'/':oralPopup.dengjirenyuan}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">申请内容:</van-col>
+            <van-col
+              span="14">{{oralPopup.shenqingneirong==''?'/':oralPopup.shenqingneirong==null?'/':oralPopup.shenqingneirong}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">接收人员:</van-col>
+            <van-col
+              span="14">{{oralPopup.jieshourenyuan==''?'/':oralPopup.jieshourenyuan==null?'/':oralPopup.jieshourenyuan}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">附加检验时限:</van-col>
+            <van-col span="14">
+              <div style="max-height: 200px;overflow-y: auto;">
+                {{oralPopup.jian_yan_shi_xian==''?'/':oralPopup.jian_yan_shi_xian==null?'/':oralPopup.jian_yan_shi_xian}}
+              </div>
+            </van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">样品质量数量评估结果:</van-col>
+            <van-col
+              span="14">{{oralPopup.deng_ji_ren_yuan_==''?'/':oralPopup.deng_ji_ren_yuan_==null?'/':oralPopup.deng_ji_ren_yuan_}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">申请凭证送达情况:</van-col>
+            <van-col
+              span="14">{{oralPopup.song_da_qing_kuan==''?'/':oralPopup.song_da_qing_kuan==null?'/':oralPopup.song_da_qing_kuan}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">登记部门:</van-col>
+            <van-col
+              span="14">{{oralPopup.bianzhibumen==''?'/':oralPopup.bianzhibumen==null?'/':oralPopup.bianzhibumen}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">申请凭证送达的时间:</van-col>
+            <van-col
+              span="14">{{oralPopup.song_da_shi_jian_==''?'/':oralPopup.song_da_shi_jian_==null?'/':oralPopup.song_da_shi_jian_}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">登记人员:</van-col>
+            <van-col
+              span="14">{{oralPopup.bianzhiren==''?'/':oralPopup.bianzhiren==null?'/':oralPopup.bianzhiren}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">申请凭证送达人员:</van-col>
+            <van-col
+              span="14">{{oralPopup.song_da_ren_yuan_==''?'/':oralPopup.song_da_ren_yuan_==null?'/':oralPopup.song_da_ren_yuan_}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">登记时间:</van-col>
+            <van-col
+              span="14">{{oralPopup.bian_zhi_shi_jian==''?'/':oralPopup.bian_zhi_shi_jian==null?'/':oralPopup.bian_zhi_shi_jian}}</van-col>
+          </van-row>
+          <van-row class="showPopups">
+            <van-col span="10" class="leftPopups">备注:</van-col>
+            <van-col span="14">{{oralPopup.bei_zhu_==''?'/':oralPopup.bei_zhu_==null?'/':oralPopup.bei_zhu_}}</van-col>
+          </van-row>
+        </div>
+      </van-popup>
+    </template>
+    <van-divider v-if="footText">到底了</van-divider>
+    <van-empty v-if="noData" description="暂无数据" />
+    <!-- <ibps-bpmn-formrender-dialog :visible="formrenderVisible" :title="formrenderTitle" :pro-inst-id="proInstId"
+      :def-id="defId" @close="visible => formrenderVisible = visible" @callback="onSearch" /> -->
+  </div>
+
+</template>
+<script>
+  import IbpsUploader from '@/business/platform/file/uploader'
+  import { mapState } from 'vuex'
+  import { myDraft, removeDraft } from '@/api/platform/office/bpmInitiated'
+
+  import ActionUtils from '@/utils/action'
+  import i18n from '@/utils/i18n'
+  import random from '@/mixins/random'
+  import bpmnStatus from '@/mixins/bpmnStatus'
+
+  import IbpsMoreSearch from '@/components/ibps-more-search'
+  import IbpsTypeTree from '@/business/platform/cat/type/tree'
+  import IbpsAvatar from '@/components/ibps-avatar'
+  import IbpsToolbar from '@/components/ibps-toolbar'
+  import IbpsListResultPage from '@/components/ibps-list-result-page'
+  import IbpsBpmnFormrenderDialog from '@/business/platform/bpmn/form/dialog'
+
+  export default {
+    components: {
+      IbpsMoreSearch,
+      IbpsTypeTree,
+      IbpsAvatar,
+      IbpsToolbar,
+      IbpsListResultPage,
+      IbpsBpmnFormrenderDialog,
+      IbpsUploader
+    },
+    mixins: [random, bpmnStatus],
+    data() {
+      return {
+        id: '',
+        footText: false,
+        noData: false,
+        oralPopup: '',
+        ReachBottomShow: false,
+        stateActive: false,
+        moreSearchPopup: false,
+        typeTreePopup: false,
+        searchForms: {
+          forms: [
+            { prop: 'Q^subject_^SL', label: '事务名称', fieldType: 'text' },
+            // { prop: 'Q^proc_def_name_^SL', label: '事务说明', fieldType: 'text' },
+            { prop: 'Q^inst.subject_^SL', label: '事务说明', fieldType: 'text' },
+            { prop: ['Q^create_time_^DL', 'Q^create_time_^DG'], label: '创建时间', fieldType: 'dateRange', options: { datefmt: 'yyyy-MM-dd' } }
+          ]
+        },
+
+        subject: '',
+        typeId: '',
+        moreParams: {},
+
+        listData: [],
+        pagination: {},
+        sorts: {},
+
+        loading: false,
+        finished: false,
+        refreshing: false,
+        resultType: 'init',
+        errorType: null,
+        resultMessage: null,
+
+        checkMode: false,
+        checkedIds: [],
+        mainActions: [{
+          'name': this.$t('common.button.remove'),
+          'type': 'danger',
+          'callback': this.onRemove
+        }],
+
+        proInstId: '',
+        defId: '',
+        formrenderVisible: false,
+        formrenderTitle: '',
+        current: 0,
+      }
+    },
+
+    computed: {
+      ...mapState('ibps/user', [
+        'info'
+      ]),
+      rightText() {
+        return this.checkMode ? this.$t('common.button.cancel') : this.$t('common.button.manage')
+      },
+      selectedIds() {
+        return this.checkedIds.join(',')
+      }
+    },
+    methods: {
+      generateTitle(name, title) { // generateTitle by vue-i18n
+        return i18n.generateTitle(name, title)
+      },
+      /**
+       * 加载数据
+       * 
+      */
+      async loadData() {
+        this.loading = true
+        await this.getPositionobj()
+        let page = 0
+        if (this.current === 0) {
+          page = 0
+        } else {
+          page = this.current * 10
+        }
+        const key = this.subject
+        let sql = `select t_fjjysqdjb.*,m.bianzhibumen,m.shenqingneirong,m.bianzhiren,m.dengjirenyuan,m.jieshourenyuan from t_fjjysqdjb LEFT JOIN (select g.*,h.jieshourenyuan from (select e.*,f.dengjirenyuan from (select c.*,d.bianzhiren from (select a.*,b.shenqingneirong from (select t.id_ ,group_concat(u.name_ order by find_in_set(u.id_,t.bian_zhi_bu_men_)) as bianzhibumen  from t_fjjysqdjb as t inner join ibps_party_position as u on find_in_set(u.id_,t.bian_zhi_bu_men_)>0 group by t.id_ ORDER BY  t.create_time_ DESC) as a LEFT JOIN (select t.id_ ,group_concat(u.jian_yan_xiang_mu order by find_in_set(u.id_,t.shen_qing_nei_ron)) as shenqingneirong from t_fjjysqdjb as t inner join t_nlfwb as u on find_in_set(u.id_,t.shen_qing_nei_ron)>0 group by t.id_ ORDER BY  t.create_time_ DESC) as b on a.id_ =b.id_) as c LEFT JOIN (select t.id_ ,u.NAME_ as bianzhiren from t_fjjysqdjb as t inner join ibps_party_employee as u on find_in_set(u.id_,t.bian_zhi_ren_)>0 group by t.id_ ORDER BY  t.create_time_ DESC) as d on c.id_ = d.id_) as e LEFT JOIN (select t.id_ ,u.NAME_ as dengjirenyuan from t_fjjysqdjb as t inner join ibps_party_employee as u on find_in_set(u.id_,t.deng_ji_ren_)>0 group by t.id_ ORDER BY  t.create_time_ DESC) as f on e.id_ = f.id_) as g LEFT JOIN (select t.id_ ,u.NAME_ as jieshourenyuan from t_fjjysqdjb as t inner join ibps_party_employee as u on find_in_set(u.id_,t.jie_shou_ren_yuan)>0 group by t.id_ ORDER BY  t.create_time_ DESC) as h on g.id_ = h.id_) as m on t_fjjysqdjb.id_ = m.id_ where find_in_set(t_fjjysqdjb.bian_zhi_bu_men_,'${this.positionObj}') and t_fjjysqdjb.yang_pin_bian_hao LIKE '%` + key + `%' ORDER BY t_fjjysqdjb.create_time_ DESC LIMIT ${page},10`
+        this.$common.request('sql', sql).then(res => {
+          if (this.current == 0 && res.variables.data.length == 0) {
+            this.finished = true;
+            this.noData = true
+            this.footText = false
+          }
+          // console.log("res获取到的数据", res);
+          ActionUtils.handleListData(this, res.variables)
+          let data = res.variables.data
+          this.listData.push(...data)
+          if (this.listData.length != 0 && (this.listData.length) % 10 != 0) {
+            this.footText = true
+            this.finished = true;
+            return
+          } else {
+            this.current++
+          }
+          this.loading = false
+        })
+      },
+      // 获取positionobj数据
+      async getPositionobj() {
+        if (this.info && this.info.positions && this.info.positions.length > 0) {
+          let posiList = []
+          this.info.positions.forEach(item => {
+            let obj = `${item.id}.`
+            let objList = item.path.split(obj)
+            objList.forEach(it => {
+              posiList.push(it)
+            })
+          })
+          let position = this.info.positions.map(item => {
+            return item.id
+          })
+          let posiSql = ``
+          position.forEach((item, index) => {
+            if (index == 0) {
+              let obj = `path_ like '%${item}%'`
+              posiSql += obj
+            } else {
+              let obj = `or path_ like '%${item}%'`
+              posiSql += obj
+            }
+          })
+          let sql = `select * from ibps_party_entity where party_type_ = 'position' and (${posiSql})`
+          await this.$common.request('sql', sql).then(res => {
+            if (res.state == '200') {
+              const data = res.variables.data
+              if (data.length > 0) {
+                data.forEach(item => {
+                  posiList.push(item.ID_)
+                })
+                // 数组去空值
+                posiList = posiList.filter(item => item)
+                // 部门上下级的id去重
+                let positionSet = Array.from(new Set(posiList))
+                this.positionObj = positionSet.join(",")
+              } else {
+                this.positionObj = ''
+              }
+            }
+          })
+        } else {
+          this.positionObj = ''
+        }
+      },
+      /**
+       * 获取格式化参数
+       */
+      getSearcFormData() {
+        let params = {}
+        if (this.$utils.isNotEmpty(this.subject)) {
+          params['Q^subject_^SL'] = this.subject
+        }
+        if (this.$utils.isNotEmpty(this.moreParams)) {
+          params = Object.assign(params, this.moreParams)
+        }
+        return ActionUtils.formatParams(
+          params,
+          this.pagination,
+          this.sorts)
+      },
+      /**
+       * 下拉刷新
+       */
+      onRefresh() {
+        this.footText = false
+        this.refreshing = true
+        this.finished = false
+        this.loading = true
+        this.onSearch()
+      },
+      /**
+       * 查询
+       */
+      onSearch() {
+        this.stateActive = false
+        ActionUtils.initListData(this)
+        this.loadData()
+      },
+      /**
+       * 高级查询
+       */
+      onMoreSearch(params) {
+        if (this.$utils.isNotEmpty(this.typeId)) {
+          params['Q^type_id_^SL'] = this.typeId
+        }
+        this.moreParams = params
+        this.onSearch()
+        if (this.$utils.isNotEmpty(params)) {
+          this.stateActive = true
+        }
+      },
+      /**
+       * 弹窗更多查询条件
+       */
+      clickMoreSearch() {
+        this.moreSearchPopup = true
+        this.stateActive = false
+      },
+      /**
+       * 重置表单
+       */
+      resetForm() {
+        this.typeId = ''
+      },
+      getTaskDesc(v) {
+        if (!v.includes('#')) {
+          return ''
+        }
+        return v.split('#')[1] || ''
+      },
+      // 点击左边显示
+      clickType() {
+        this.typeTreePopup = true
+      },
+      clickTypeNode(data) {
+        this.typeId = data.id
+        this.onMoreSearch({})
+      },
+      onClick(item, index) {
+        this.id = item.id_
+        this.ReachBottomShow = true
+        this.oralPopup = item
+      },
+      onRefreshPage() {
+        this.checkedIds = []
+        this.checkMode = false
+        this.onRefresh()
+      },
+      toCheckMode() {
+        if (this.$utils.isEmpty(this.listData)) {
+          return
+        }
+        if (this.checkMode) {
+          // this.show = true
+          this.checkedIds = []
+        }
+        this.checkMode = !this.checkMode
+      },
+      onRemove() {
+        if (this.checkedIds.length === 0) {
+          this.$notify({
+            type: 'warning',
+            message: this.$t('common.dialog.selectedRecords')
+          })
+          return
+        }
+        this.$dialog.confirm({
+          title: this.$t('common.dialog.warn'),
+          message: this.$t('common.operate.makeSure')
+        }).then(() => {
+          removeDraft({ ids: this.selectedIds }).then(response => {
+            this.$notify({
+              type: 'success',
+              message: '删除草稿成功!'
+            })
+            this.onRefreshPage()
+          }).catch((e) => {
+            console.error(e)
+          })
+        })
+      },
+      onClose() {
+        this.ReachBottomShow = false
+      },
+
+      //   lookPosition(str) {
+      //     return new Promise((resolve, reject) => {
+      //       let sql = `select * from ibps_party_entity where find_in_set(ID_,'${str}') order by DEPTH_`
+      //       this.$getCommon.getRepust('sql', sql).then(res => {
+      //         const data = res.data.variables.data
+      //         if (data.length > 0) {
+      //           data.forEach(item => {
+      //             item.id = item.ID_
+      //             item.name = item.NAME_
+      //             item.path = item.PATH_
+      //             item.text = item.NAME_
+      //           })
+      //           uni.setStorageSync('mainPosition', data[0])
+      //           uni.setStorageSync('positionList', data)
+      //           this.getPosition(data).then(res => {
+      //             console.log("获得什么数据啊data", data);
+      //             resolve(data)
+      //           })
+
+      //         } else {
+      //           resolve(data)
+      //         }
+
+      //       }).catch(err => {
+      //         reject(err)
+      //       })
+      //     })
+
+      //   },
+    }
+
+  }
+</script>
+<style lang="scss" scoped>
+  .showPopups {
+    margin: 4% 0;
+    color: #888;
+    font-size: 14px;
+
+    .leftPopups {
+      color: #555;
+      font-size: 15px;
+    }
+  }
+
+  .delayShow {
+    margin: 2% 0;
+    /* font-size: 16px; */
+  }
+
+  ::v-deep .van-cell__title {
+    width: 65%;
+
+    .van-cell__label {
+      overflow-wrap: break-word;
+    }
+  }
+</style>

+ 1 - 2
src/views/platform/bpmn/my-test/index.vue

@@ -2,8 +2,7 @@
   <div :class="{'ibps-fixed-toolbar':checkMode}">
     <van-sticky>
       <van-nav-bar :title="generateTitle($route.name,$route.params.title||$route.meta.title)"
-        :left-text="$t('common.button.back')" :right-text="$utils.isNotEmpty(listData)?rightText:''" left-arrow
-        @click-left="$router.push({ name: 'dashboard' })" @click-right="toCheckMode()" />
+        :left-text="$t('common.button.back')" left-arrow @click-left="$router.push({ name: 'dashboard' })" />
       <van-search v-model="subject" show-action placeholder="请输入搜索关键词" @search="onSearch">
         <template #left>
           <van-icon name="bars" :class="{'ibps-active':$utils.isNotEmpty(typeId)}" class="ibps-pr-5"

+ 1 - 2
src/views/platform/bpmn/report/delayReport.vue

@@ -2,8 +2,7 @@
   <div :class="{'ibps-fixed-toolbar':checkMode}">
     <van-sticky>
       <van-nav-bar :title="generateTitle($route.name,$route.params.title||$route.meta.title)"
-        :left-text="$t('common.button.back')" :right-text="$utils.isNotEmpty(listData)?rightText:''" left-arrow
-        @click-left="$router.push({ name: 'dashboard' })" @click-right="toCheckMode()" />
+        :left-text="$t('common.button.back')" left-arrow @click-left="$router.push({ name: 'dashboard' })" />
       <van-search v-model="subject" show-action placeholder="请输入搜索关键词" @search="onSearch">
         <template #left>
           <van-icon name="bars" :class="{'ibps-active':$utils.isNotEmpty(typeId)}" class="ibps-pr-5"

+ 1 - 2
src/views/platform/bpmn/report/oralReport.vue

@@ -2,8 +2,7 @@
   <div :class="{'ibps-fixed-toolbar':checkMode}">
     <van-sticky>
       <van-nav-bar :title="generateTitle($route.name,$route.params.title||$route.meta.title)"
-        :left-text="$t('common.button.back')" :right-text="$utils.isNotEmpty(listData)?rightText:''" left-arrow
-        @click-left="$router.push({ name: 'dashboard' })" @click-right="toCheckMode()" />
+        :left-text="$t('common.button.back')" left-arrow @click-left="$router.push({ name: 'dashboard' })" />
       <van-search v-model="subject" show-action placeholder="请输入搜索关键词" @search="onSearch">
         <template #left>
           <van-icon name="bars" :class="{'ibps-active':$utils.isNotEmpty(typeId)}" class="ibps-pr-5"