From 21c2a7c125a5d07ad87fd7a266a697f61d0fdefd Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期一, 30 三月 2026 10:02:11 +0800
Subject: [PATCH] Merge branch 'Dev' of http://101.37.171.70:10101/r/~jhz/STUWMS into Dev

---
 pages/ZLGL/OA_WorkLink/OA_WorkLinkBillQuery.vue |  253 ++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 240 insertions(+), 13 deletions(-)

diff --git a/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillQuery.vue b/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillQuery.vue
index 90d94b8..7dfca05 100644
--- a/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillQuery.vue
+++ b/pages/ZLGL/OA_WorkLink/OA_WorkLinkBillQuery.vue
@@ -1,5 +1,45 @@
 <template>
     <view>
+        <view class="page-header">
+            <view class="search-item">
+                <view class="left">鏃ユ湡闂撮殧</view>
+                <view class="right">
+                    <picker mode="selector" :value="curDateGap" :range="dateRangePicker"
+                        @change="onDateRangePickerChangeHandler">
+                        <input disabled v-model="curDateGap" placeholder="璇烽�夋嫨鏃ユ湡闂撮殧" />
+                        <view class="picker-overlay"></view>
+                    </picker>
+
+                </view>
+            </view>
+            <view class="search-item">
+                <view class="left">寮�濮嬫棩鏈�</view>
+                <view class="right">
+                    <uni-datetime-picker :clear-icon="false" type="date" v-model="startDate"
+                        :disabled="!enableCustomDateRange">
+                        <view class="datetime-picker-inner"
+                            :class="enableCustomDateRange?'font__enable':'font__disable'">
+                            <text>{{ startDate }}</text>
+                        </view>
+                    </uni-datetime-picker>
+                </view>
+            </view>
+            <view class="search-item">
+                <view class="left">缁撴潫鏃ユ湡</view>
+                <view class="right">
+                    <uni-datetime-picker :clear-icon="false" type="date" v-model="endDate"
+                        :disabled="!enableCustomDateRange">
+                        <view class="datetime-picker-inner"
+                            :class="enableCustomDateRange?'font__enable':'font__disable'">{{ endDate }}</view>
+                    </uni-datetime-picker>
+                </view>
+            </view>
+
+            <view class="button-groups">
+                <button type="default" size="mini" class="btn-c" @tap.stop="onSearchClickHandler">鏌ヨ</button>
+                <button type="default" size="mini" class="btn-a" @tap.stop="onResetClickHandler">閲嶇疆</button>
+            </view>
+        </view>
         <view class="tabs" id="tabs">
             <view :class="tabs == 0 ? 'on':''" @tap="switchTab(0)">鏈娑堟伅</view>
             <view :class="tabs == 1 ? 'on':''" @tap="switchTab(1)">鎴戞帴鏀剁殑</view>
@@ -8,6 +48,9 @@
         </view>
 
         <!-- 宸ヤ綔鑱旂郴鍗� 鍒楄〃 -->
+        <view>
+
+        </view>
         <view class="list" v-for="(item,index) in BillsDisplay" :key="index">
             <uni-card :title="item.鍒跺崟鏃ユ湡.substr(0,10)" :extra="item.鍗曟嵁鍙�" style="margin: 10px;"
                 @tap="showDetail = showDetail==index?-1:index">
@@ -61,7 +104,13 @@
                 </view>
             </uni-card>
         </view>
-        <view class="over" v-if="BillsDisplay.length == 0">鏆傛棤鏁版嵁</view>
+        <template v-if="BillsDisplay.length == 0">
+            <view class="over">鏆傛棤鏁版嵁</view>
+        </template>
+        <template v-else>
+            <view class="over" v-if="!readCompelete">姝e湪鑾峰彇鏁版嵁...</view>
+            <view class="over" v-if="readCompelete">娌℃湁鏇村鏁版嵁...</view>
+        </template>
     </view>
 </template>
 
@@ -78,6 +127,12 @@
         name: 'OA_WorkLinkBillQuery',
         data() {
             return {
+                dateRangePicker: ["浠绘剰闂撮殧", "浠婂ぉ", "杩戜袱澶�", "杩戜笁澶�", "杩戝洓澶�", "杩戜簲澶�", "杩戝叚澶�", "杩戜竷澶�", "杩�30澶�"],
+                curDateGap: "杩戜竷澶�",
+                enableCustomDateRange: false,
+                startDate: dayjs(new Date()).subtract(7, 'day').format('YYYY-MM-DD'),
+                endDate: dayjs(new Date()).format('YYYY-MM-DD'),
+
                 dayjs,
                 CommonUtils,
                 tabs: 0,
@@ -86,14 +141,83 @@
                 sWhere: "",
                 showDetail: -1,
                 operations: -1,
+                readCompelete: false,
+
+                page: 1,
+                size: 20,
+
             };
         },
+        // 瑙﹀簳鍔犺浇
+        onReachBottom() {
+            this.page++;
+            this.switchTab(this.tabs)
+        },
         methods: {
+            onDateRangePickerChangeHandler({
+                detail
+            }) {
+                this.enableCustomDateRange = false
+                this.curDateGap = this.dateRangePicker[detail.value]
+                let date = new Date()
+                switch (this.curDateGap) {
+                    case "浠婂ぉ":
+                        this.startDate = dayjs(date).format("YYYY-MM-DD")
+                        break;
+                    case "杩戜竴澶�":
+                        this.startDate = dayjs(date).subtract(1, 'day').format("YYYY-MM-DD")
+                        break;
+                    case "杩戜袱澶�":
+                        this.startDate = dayjs(date).subtract(2, 'day').format("YYYY-MM-DD")
+                        break;
+                    case "杩戜笁澶�":
+                        this.startDate = dayjs(date).subtract(3, 'day').format("YYYY-MM-DD")
+                        break;
+                    case "杩戝洓澶�":
+                        this.startDate = dayjs(date).subtract(4, 'day').format("YYYY-MM-DD")
+                        break;
+                    case "杩戜簲澶�":
+                        this.startDate = dayjs(date).subtract(5, 'day').format("YYYY-MM-DD")
+                        break;
+                    case "杩戝叚澶�":
+                        this.startDate = dayjs(date).subtract(6, 'day').format("YYYY-MM-DD")
+                        break;
+                    case "杩戜竷澶�":
+                        this.startDate = dayjs(date).subtract(7, 'day').format("YYYY-MM-DD")
+                        break;
+                    case "杩�30澶�":
+                        this.startDate = dayjs(date).subtract(30, 'day').format("YYYY-MM-DD")
+                        break;
+                }
+                if (this.curDateGap == '浠绘剰闂撮殧') {
+                    this.enableCustomDateRange = true
+                }
+            },
+            onSearchClickHandler() {
+                this.BillsDisplay = []
+                this.switchTab(this.tabs)
+            },
+            onResetClickHandler() {
+                this.dateRangePicker = ["浠绘剰闂撮殧", "浠婂ぉ", "杩戜袱澶�", "杩戜笁澶�", "杩戝洓澶�", "杩戜簲澶�", "杩戝叚澶�", "杩戜竷澶�", "杩�30澶�"],
+                    this.curDateGap = "杩戜竷澶�",
+                    this.enableCustomDateRange = false,
+                    this.startDate = dayjs(new Date()).subtract(7, 'day').format('YYYY-MM-DD'),
+                    this.endDate = dayjs(new Date()).format('YYYY-MM-DD'),
+                    this.onSearchClickHandler()
+            },
             switchTab(tabIndex) {
-                this.tabs = tabIndex
+                if(tabIndex == this.tabs){
+                    
+                }else {
+                    this.tabs = tabIndex
+                    this.BillsDisplay= []
+                    this.page = 1
+                }
+                this.sWhere = ''
                 switch (tabIndex) {
                     case 0:
-                        this.sWhere = ` and (鎺ユ敹浜� = '${getUserInfo()['HEmpName']}' or 鎶勯�佹帴鏀朵汉 = '${getUserInfo()['HEmpName']}') and 闃呰鐘舵�� = '鏈槄'`
+                        this.sWhere =
+                            ` and (鎶勯�佹帴鏀朵汉 = '${getUserInfo()['HEmpName']}') and 闃呰鐘舵�� = '鏈槄'`
                         break;
                     case 1:
                         this.sWhere = ` and 鎺ユ敹浜� = '${getUserInfo()['HEmpName']}'`
@@ -110,12 +234,20 @@
                 this.getWorkLinkList()
             },
             async getWorkLinkList() {
+                this.sWhere +=
+                    ` and 鏃ユ湡 >= CONVERT(VARCHAR(10), '${this.startDate}', 23) and 鏃ユ湡 <= CONVERT(VARCHAR(10), '${this.endDate}', 23)`
                 try {
+                    // TODO: 璋冩暣涓哄瓨鍌ㄨ繃绋嬪垎椤垫帴鍙�
                     let res = await CommonUtils.doRequest2Async({
-                        url: 'Sc_MESTransFerWorkBill/GetOA_WorkLinkBillList',
+                        url: 'Sc_MESTransFerWorkBill/GetOA_WorkLinkBillListProcess',
                         data: {
-                            sWhere: this.sWhere,
-                            user: getUserInfo()["Czymc"]
+                            // sWhere: this.sWhere,
+                            beginDate: this.startDate,
+                            endDate: this.endDate,
+                            type: this.tabs + 1,
+                            user: getUserInfo()["HEmpName"] || getUserInfo()["Czymc"],
+                            page: this.page,
+                            size: this.size
                         }
                     })
 
@@ -127,8 +259,16 @@
                     } = res.data
                     if (count == 1) {
                         console.log('data: ', data);
-
-                        this.BillsDisplay = data
+                        if(data.length == 0) {
+                            // 褰撹幏鍙栫殑鏁版嵁闀垮害涓�0鏃讹紝琛ㄧず棰勫厛澧炲姞鐨勯〉鏁颁笉瀵癸紝闇�瑕佸噺鍘�
+                            if(this.page > 1) {
+                                this.page-- 
+                            }
+                        }
+                        if(data.length == 0 || data.length <= this.size) {
+                            this.readCompelete = true
+                        }
+                        this.BillsDisplay.push(...data) 
 
 
                         let fieldList = CommonUtils.fieldListFilterRole({
@@ -159,7 +299,7 @@
                 }
             },
             displayDetail(item) {
-                console.log('item: ',item);
+                console.log('item: ', item);
                 uni.showModal({
                     title: `${item["涓婚"]}`,
                     content: `${item["鍐呭"]}`,
@@ -188,7 +328,7 @@
                         Message
                     } = res.data
                     if (count == 1) {
-                        this.switchTab(this.tabs)
+                        this.onSearchClickHandler()
                     } else {
                         CommonUtils.showTips({
                             title: '娓╅Θ鎻愮ず',
@@ -204,13 +344,13 @@
             },
             reply(item) {
                 uni.navigateTo({
-                    url: `/pages/ZLGL/OA_WorkLink/OA_WorkLinkBill?HInterID=${item.hmainid}`
-                    + `&HEntryID=${item.HEntryID}&operationType=5`
+                    url: `/pages/ZLGL/OA_WorkLink/OA_WorkLinkBill?HInterID=${item.hmainid}` +
+                        `&HEntryID=${item.HEntryID}&operationType=5`
                 })
             }
         },
         onShow() {
-            this.switchTab(0)
+            this.onSearchClickHandler()
         }
     }
 </script>
@@ -269,4 +409,91 @@
             color: #888;
         }
     }
+
+    .page-header {
+        display: flex;
+        box-sizing: border-box;
+        padding: 20rpx;
+        flex-direction: column;
+        gap: 10rpx;
+        font-size: 32rpx;
+
+        .search-item {
+            display: flex;
+            flex-direction: row;
+            gap: 10rpx;
+            justify-content: center;
+            align-items: center;
+
+            .left {
+                width: 4em;
+            }
+
+            .right {
+                flex: 1;
+                position: relative;
+                border-radius: 22rpx;
+                border: 1px solid #acacac;
+                display: flex;
+                padding: 4rpx 10rpx;
+
+                picker {
+                    width: 100%;
+                }
+            }
+        }
+
+        input {
+            width: inherit;
+            padding: 8rpx 20rpx;
+            font-size: 30rpx;
+        }
+
+        .datetime-picker-inner {
+            padding: 8rpx 20rpx;
+            font-size: 30rpx;
+            display: flex;
+            align-items: center;
+        }
+
+        .font__enable {
+            color: #000;
+        }
+
+        .font__disable {
+            color: #cccccc;
+        }
+    }
+
+    .button-groups {
+        box-sizing: border-box;
+        padding: 10rpx 0 0 0;
+        display: flex;
+        flex-direction: row;
+        gap: 10rpx;
+        justify-content: space-between;
+
+        button {
+            border-radius: 50rpx;
+            width: 180rpx;
+            height: 66rpx;
+            line-height: 66rpx;
+            font-size: 28rpx;
+        }
+
+        .btn-a {
+            background-color: #acacac;
+            color: #fff;
+        }
+
+        .btn-b {
+            background-color: #41a863;
+            color: #fff;
+        }
+
+        .btn-c {
+            background-color: #3a78ff;
+            color: #fff;
+        }
+    }
 </style>
\ No newline at end of file

--
Gitblit v1.9.1