Explorar el Código

1.封装返回组件BackBar
2.新增页面大中型我的订单

GouGengquan hace 1 mes
padre
commit
3561494970

+ 5 - 0
src/api/major.js

@@ -13,4 +13,9 @@ export function getMajorTodoDetail(params) {
 // 大中型新增订单
 export function add(params) {
     return request.post(`major`, params)
+}
+
+// 大中型我的订单
+export function myOrder(params) {
+    return request.get(`majorProduction/myOrder`, { params: params })
 }

+ 28 - 0
src/components/BackBar/index.vue

@@ -0,0 +1,28 @@
+<template>
+  <van-nav-bar :title="title" :left-text="lefttext" left-arrow @click-left="onClickLeft()" class="back-bar" />
+  <!-- 顶一下高度,不然bar脱离文档流了会遮挡内容 -->
+  <div style="margin-bottom:46px"></div>
+</template>
+
+<script>
+export default {
+  props: {
+    title: String,
+    lefttext: String,
+  },
+  methods: {
+    onClickLeft() {
+      history.back();
+    },
+  },
+};
+</script>
+
+<style scoped>
+.back-bar {
+  height:46px;
+  position: fixed;
+  top: 0;
+  width: 100%;
+}
+</style>

+ 5 - 0
src/main.js

@@ -10,6 +10,8 @@ import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
 import Vant from 'vant';
 import 'vant/lib/index.css'
 
+import BackBar from './components/BackBar/index.vue';
+
 const pinia = createPinia()
 // pinia数据持久化
 pinia.use(piniaPluginPersistedstate)
@@ -21,4 +23,7 @@ for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
   app.component(key, component)
 }
 
+// 自定义返回bar组件注册
+app.component('BackBar', BackBar);
+
 app.use(router).use(pinia).use(Vant).mount('#app')

+ 9 - 0
src/router/index.js

@@ -25,6 +25,7 @@ import PersonalPlaceOrderView from '@/views/personal/placeOrder.vue'
 import MajorIndex from '@/views/major/index.vue'
 import MajorTodoDetailView from '@/views/major/todoDetail.vue'
 import MajorPlaceOrder from '@/views/major/placeOrder.vue'
+import MajorMyOrder from '@/views/major/myOrder.vue'
 
 // 土规业务
 import LandIndex from '@/views/land/index.vue'
@@ -158,6 +159,14 @@ const routes = [
               title: '大中型业务下单'
             },
           },
+          {
+            path: 'myOrder',
+            component: MajorMyOrder,
+            name: 'majorMyOrderView',
+            meta: {
+              title: '我的订单-大中型'
+            },
+          },
         ]
       },
       // 土规业务

+ 1 - 4
src/views/assets/placeOrder.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <van-nav-bar title="资产业务下单" left-text="返回" left-arrow @click-left="onClickLeft()" />
+    <BackBar title="资产业务下单" lefttext="返回" />
     <div class="form-style">
       <van-form @submit="addAssetsOrder()" label-width="8.7em">
         <van-cell-group inset>
@@ -251,9 +251,6 @@ export default {
     this.changeCustomerType();
   },
   methods: {
-    onClickLeft() {
-      history.back();
-    },
     // 获取部门下拉列表
     getAllotDepartment() {
       allot('ASSET_BUSINESS').then((res) => {

+ 1 - 4
src/views/assets/todoDetail.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <van-nav-bar title="待办处理-资产" left-text="返回" left-arrow @click-left="onClickLeft()" />
+    <BackBar title="待办处理-资产" lefttext="返回" />
     <van-form>
       <van-cell-group inset>
         <van-field label="项目编号" v-model="assets.orderId" name="orderId" readonly />
@@ -50,9 +50,6 @@ export default {
     this.getCurrentNode();
   },
   methods: {
-    onClickLeft() {
-      history.back();
-    },
     // 获取待办详情
     getTodoDetail() {
       if (this.assets.id) {

+ 1 - 1
src/views/home/home.vue

@@ -69,7 +69,7 @@
         </svg>
         <div class="icon-word">正在进行</div>
       </div>
-      <div class="icon-area">
+      <div class="icon-area" @click="goBench('/index/major/myOrder')">
         <svg t="1748250501503" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2184" id="mx_n_1748250501504" width="48" height="48">
           <path
             d="M810.666667 1024H213.333333c-117.333333 0-213.333333-96-213.333333-213.333333V213.333333C0 96 96 0 213.333333 0h597.333334c117.333333 0 213.333333 96 213.333333 213.333333v597.333334c0 117.333333-96 213.333333-213.333333 213.333333z"

+ 1 - 4
src/views/land/placeOrder.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <van-nav-bar title="土规业务下单" left-text="返回" left-arrow @click-left="onClickLeft()" />
+    <BackBar title="土规业务下单" lefttext="返回" />
     <div class="form-style">
       <van-form @submit="addLandOrder()">
         <van-cell-group inset>
@@ -157,9 +157,6 @@ export default {
     this.getAllUser();
   },
   methods: {
-    onClickLeft() {
-      history.back();
-    },
     // 获取项目类型
     getCateColumns() {
       simpleType('项目类型').then((res) => {

+ 121 - 0
src/views/major/myOrder.vue

@@ -0,0 +1,121 @@
+<template>
+  <div>
+    <BackBar title="我的订单-大中型" lefttext="返回" />
+    <van-search v-model="listQuery.keyword" placeholder="请输入搜索关键词" @search="onSearch()" />
+    <van-pull-refresh v-model="loading" @refresh="onRefresh()">
+      <van-list v-model:loading="loading" :finished="finished" finished-text="还没有订单" @load="getMyOrder()">
+        <div class="card" v-for="item in listData" :key="item.id">
+          <h3>
+            <van-icon name="link-o" />
+            &nbsp;{{ item.orderId }}
+          </h3>
+          <p class="productionNo" v-if="item.productionNo">
+            <van-icon name="coupon-o" />
+            &nbsp;
+            {{ item.productionNo }}
+          </p>
+          <p class="projectName">
+            <van-icon name="location-o" />
+            &nbsp;{{ item.orderName }}
+          </p>
+          <p>
+            <van-tag type="primary" size="medium">
+              {{ item.production ? (item.production === 'REPORT' ? '报告' : (item.production === 'STATEMENT' ? '意见书' :
+              '复评函'
+              )) : '订单' }}
+            </van-tag>&nbsp;
+            <van-tag type="success" size="medium">{{ item.clienteleName }}</van-tag>&nbsp;
+            <van-tag type="success" :color="item.repertoryState === '未入库' ? '#969799' : ''" size="medium">{{ item.repertoryState }}</van-tag>&nbsp;
+            <van-tag type="success" :color="!item.delivery ? '#969799' : ''" size="medium">{{ item.delivery ? '已送达' : '未送达' }}</van-tag>&nbsp;
+            <van-tag type="success" :color="item.edeclareResult === null ? '#969799' : ''" size="medium">{{ item.edeclareResult==null ? '未申报' : item.edeclareResult }}</van-tag>
+          </p>
+        </div>
+      </van-list>
+    </van-pull-refresh>
+    <van-back-top right="10vw" bottom="10vh" />
+  </div>
+</template>
+
+<script>
+import { myOrder } from '@/api/major';
+
+export default {
+  data() {
+    return {
+      loading: false,
+      listData: [],
+      finished: false,
+      listQuery: {
+        // 当前页数
+        current: 1,
+        // 查询关键字
+        keyword: null,
+      },
+    };
+  },
+  created() {
+    this.getMyOrder();
+  },
+  methods: {
+    onClickLeft() {
+      history.back();
+    },
+    // 大中型待办列表刷新
+    onRefresh() {
+      this.listQuery.current = 1;
+      this.finished = false;
+      this.listData = [];
+      this.getMyOrder();
+    },
+    // 大中型待办列表关键字搜索
+    onSearch() {
+      this.listQuery.current = 1;
+      this.finished = false;
+      this.listData = [];
+      this.getMyOrder();
+    },
+    // 获取我的大中型订单
+    getMyOrder() {
+      this.loading = true;
+      myOrder(this.listQuery).then((res) => {
+        if (res.code == 200) {
+          if (res.data.records) {
+            this.listData = this.listData.concat(res.data.records);
+          }
+          // 判断是否还有下一页
+          if (res.data.pages > this.listQuery.current) {
+            // 服务端返回的总页数大于当前页数, 将当前页数+1
+            this.listQuery.current++;
+          } else {
+            // 反之停止加载
+            this.finished = true;
+          }
+        }
+        this.loading = false;
+      });
+    },
+  },
+};
+</script>
+
+<style scoped>
+.card {
+  background-color: white;
+  border-radius: 12px;
+  box-shadow: 2px 2px 2px 2px rgba(0, 0, 0, 0.1);
+  padding: 16px;
+  margin: 10px;
+}
+
+.productionNo {
+  width: 100%;
+  font-size: 14px;
+}
+
+.projectName {
+  width: 100%;
+  /* overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis; */
+}
+</style>

+ 1 - 4
src/views/major/placeOrder.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <van-nav-bar title="大中型业务下单" left-text="返回" left-arrow @click-left="onClickLeft()" />
+    <BackBar title="大中型业务下单" lefttext="返回" />
     <div class="form-style">
       <van-form @submit="addMajorOrder()">
         <van-cell-group inset>
@@ -297,9 +297,6 @@ export default {
     this.changeCustomerType();
   },
   methods: {
-    onClickLeft() {
-      history.back();
-    },
     // 清空项目类型
     clearType() {
       this.major.specialType = null;

+ 1 - 4
src/views/major/todoDetail.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <van-nav-bar title="待办处理-大中型" left-text="返回" left-arrow @click-left="onClickLeft()" />
+    <BackBar title="待办处理-大中型" lefttext="返回" />
     <van-form>
       <van-cell-group inset>
         <van-field label="项目编号" v-model="major.orderId" name="orderId" readonly />
@@ -51,9 +51,6 @@ export default {
     this.getTodoDetail();
   },
   methods: {
-    onClickLeft() {
-      history.back();
-    },
     // 获取待办详情
     getTodoDetail() {
       if (this.major.id) {

+ 1 - 4
src/views/personal/placeOrder.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <van-nav-bar title="个贷业务下单" left-text="返回" left-arrow @click-left="onClickLeft()" />
+    <BackBar title="个贷业务下单" lefttext="返回" />
     <div class="form-style">
       <van-form @submit="addPersonalOrder()">
         <van-cell-group inset>
@@ -179,9 +179,6 @@ export default {
     this.personal.clientManager = this.userStore.userInfo.name;
   },
   methods: {
-    onClickLeft() {
-      history.back();
-    },
     // 客户类型改变的触发
     changeCustomerType(val) {
       // 清空客户信息

+ 1 - 4
src/views/personal/todoDetail.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <van-nav-bar title="待办处理-个贷" left-text="返回" left-arrow @click-left="onClickLeft()" />
+    <BackBar title="待办处理-个贷" lefttext="返回" />
     <van-form>
       <van-cell-group inset>
         <van-field label="项目编号" v-model="personal.orderId" name="orderId" readonly />
@@ -56,9 +56,6 @@ export default {
     this.getCurrentNode();
   },
   methods: {
-    onClickLeft() {
-      history.back();
-    },
     // 获取待办详情
     getTodoDetail() {
       if (this.personal.id) {