From 7c2192a2f000d94add173b77b6bd4c8c4fc6a5e4 Mon Sep 17 00:00:00 2001 From: xwt <2740516069@qq.com> Date: 星期三, 17 九月 2025 09:41:47 +0800 Subject: [PATCH] SJ穴模数 --- pages/QC/RKJ/List.vue | 832 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 416 insertions(+), 416 deletions(-) diff --git a/pages/QC/RKJ/List.vue b/pages/QC/RKJ/List.vue index 7758c2b..05350a0 100644 --- a/pages/QC/RKJ/List.vue +++ b/pages/QC/RKJ/List.vue @@ -1,441 +1,441 @@ <template> - <view class="inspection-app"> - <!-- 鍒锋柊椤甸潰鍚庣殑椤堕儴鎻愮ず妗� --> - <view class="tips" :class="{ 'tips-ani': tipShow }">鍒锋柊鎴愬姛</view> - - <!-- 椤堕儴绛涢�夊尯 --> - <view class="filter-section"> - <view class="filter-controls"> - <!-- 鐘舵�佸垏鎹㈡爣绛� --> - <view class="status-tabs"> - <button :class="['tab-button', current === 0 ? 'active' : '']" @click="onClickItem({currentIndex: 0})"> - {{items[0]}} - </button> - <button :class="['tab-button', current === 1 ? 'active' : '']" @click="onClickItem({currentIndex: 1})"> - {{items[1]}} - </button> + <view class="inspection-app"> + <!-- 鍒锋柊椤甸潰鍚庣殑椤堕儴鎻愮ず妗� --> + <view class="tips" :class="{ 'tips-ani': tipShow }">鍒锋柊鎴愬姛</view> + + <!-- 椤堕儴绛涢�夊尯 --> + <view class="filter-section"> + <view class="filter-controls"> + <!-- 鐘舵�佸垏鎹㈡爣绛� --> + <view class="status-tabs"> + <button :class="['tab-button', current === 0 ? 'active' : '']" @click="onClickItem({currentIndex: 0})"> + {{items[0]}} + </button> + <button :class="['tab-button', current === 1 ? 'active' : '']" @click="onClickItem({currentIndex: 1})"> + {{items[1]}} + </button> + </view> </view> </view> - </view> - - <!-- 妫�楠屽崟鍒楄〃 --> - <view class="inspection-list"> - <!-- 妫�楠屽崟鍗$墖 --> - <view class="inspection-card" v-for="item in data" :key="item.id" @click="navigateToDetail(item)"> - <view class="card-header"> - <text class="card-title">妫�楠屽崟鍙�: {{item.releaseNo}}</text> - <text class="status pass" v-if="item.fcheckResu === '鍚堟牸'">鍚堟牸</text> - <text class="status unqualified" v-if="item.fcheckResu === '涓嶅悎鏍�'">涓嶅悎鏍�</text> - <text class="status pending" v-if="!item.fcheckResu">寰呮楠�</text> - </view> - - <view class="card-body"> - <view class="info-row"> - <view class="info-item"> - <text class="info-label">閫佹鎵规鍙�</text> - <text class="info-content">{{item.billNo}}</text> + + <!-- 妫�楠屽崟鍒楄〃 --> + <view class="inspection-list"> + <!-- 妫�楠屽崟鍗$墖 --> + <view class="inspection-card" v-for="item in data" :key="item.id" @click="navigateToDetail(item)"> + <view class="card-header"> + <text class="card-title">妫�楠屽崟鍙�: {{item.releaseNo}}</text> + <text class="status pass" v-if="item.fcheckResu === '鍚堟牸'">鍚堟牸</text> + <text class="status unqualified" v-if="item.fcheckResu === '涓嶅悎鏍�'">涓嶅悎鏍�</text> + <text class="status pending" v-if="!item.fcheckResu">寰呮楠�</text> + </view> + + <view class="card-body"> + <view class="info-row"> + <view class="info-item"> + <text class="info-label">宸ュ崟鍙�</text> + <text class="info-content">{{item.billNo}}</text> + </view> + <view class="info-item"> + <text class="info-label">浜х嚎</text> + <text class="info-content">{{item.daa015}}</text> + </view> </view> - <view class="info-item"> - <text class="info-label">浜х嚎</text> - <text class="info-content">{{item.daa015}}</text> + + <view class="info-row"> + <view class="info-item"> + <text class="info-label">鐗╂枡淇℃伅</text> + <text class="info-content">{{item.itemNo}}<br>{{item.itemName}}</text> + </view> + <view class="info-item"> + <text class="info-label">浜у搧鍨嬪彿</text> + <text class="info-content">{{item.itemModel}}</text> + </view> + </view> + + <view class="info-row"> + <view class="info-item"> + <text class="info-label">閫佹鏁伴噺</text> + <text class="info-content highlight">{{item.quantity}}</text> + </view> + <view class="info-item"> + <text class="info-label">鍒涘缓浜�</text> + <text class="info-content">{{item.createBy}}</text> + </view> + </view> + + <view class="info-row"> + <view class="info-item"> + <text class="info-label">閫佹鎵规</text> + <text class="info-content">{{item.rbillNo}}</text> + </view> + <view class="info-item"> + <text class="info-label">妫�楠屼汉</text> + <text class="info-content">{{item.fcheckBy}}</text> + </view> + </view> + + <view class="meta-info"> + <text class="meta-item"> + <uni-icons type="calendar" size="14" color="#95a5a6"></uni-icons> + {{item.createDate}} + </text> + <text class="meta-item" v-if="item.fcheckResu"> + <uni-icons type="checkmarkempty" size="14" color="#95a5a6"></uni-icons> + 妫�娴嬬粨鏋�: {{item.fcheckResu}} + </text> </view> </view> - - <view class="info-row"> - <view class="info-item"> - <text class="info-label">鐗╂枡淇℃伅</text> - <text class="info-content">{{item.itemNo}}<br>{{item.itemName}}</text> - </view> - <view class="info-item"> - <text class="info-label">浜у搧鍨嬪彿</text> - <text class="info-content">{{item.itemModel}}</text> - </view> + + <view class="card-actions"> + <button class="primary" @click.stop="navigateToDetail(item)"> + {{current === 0 ? '寮�濮嬫楠�' : '鏌ョ湅璇︽儏'}} + </button> </view> - - <view class="info-row"> - <view class="info-item"> - <text class="info-label">閫佹鏁伴噺</text> - <text class="info-content highlight">{{item.quantity}}</text> - </view> - <view class="info-item"> - <text class="info-label">鎶ュ伐浜�</text> - <text class="info-content">{{item.bgr}}</text> - </view> - </view> - - <view class="info-row"> - <view class="info-item"> - <text class="info-label">妫�楠屼汉</text> - <text class="info-content">{{item.fcheckBy}}</text> - </view> - <view class="info-item"> - <text class="info-label">鍒涘缓浜�</text> - <text class="info-content">{{item.createBy}}</text> - </view> - </view> - - <view class="meta-info"> - <text class="meta-item"> - <uni-icons type="calendar" size="14" color="#95a5a6"></uni-icons> - {{item.createDate}} - </text> - <text class="meta-item" v-if="item.fcheckResu"> - <uni-icons type="checkmarkempty" size="14" color="#95a5a6"></uni-icons> - 妫�娴嬬粨鏋�: {{item.fcheckResu}} - </text> - </view> - </view> - - <view class="card-actions"> - <button class="primary" @click.stop="navigateToDetail(item)"> - {{current === 0 ? '寮�濮嬫楠�' : '鏌ョ湅璇︽儏'}} - </button> </view> </view> + + <!-- 鏂板鎸夐挳 --> + <view class="plus-button" @click="handleFabClick"> + + + </view> </view> - - <!-- 鏂板鎸夐挳 --> - <view class="plus-button" @click="handleFabClick"> - + - </view> - </view> -</template> - -<script> -export default { - components: {}, - data() { - return { - items: ['鏈彁浜�', '宸叉彁浜�'], - current: 0, - data: [], - pageIndex: 1, - limit: 20, - totalPage: 0, - totalCount: 0, - noData: false, // 娌℃湁鏇村鏁版嵁浜� - isLoading: false, // 鏄惁姝e湪鍔犺浇 - tipShow: false - }; - }, - onLoad() { - //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢 - this.init(); - }, - methods: { - init() { - - let result = "鏈畬鎴�"; - if (this.current == 1) { - result = "宸插畬鎴�"; - } - - if (this.isLoading) return; // 濡傛灉姝e湪鍔犺浇鍒欎笉缁х画鎵ц - - this.isLoading = true; - + </template> + + <script> + export default { + components: {}, + data() { + return { + items: ['鏈彁浜�', '宸叉彁浜�'], + current: 0, + data: [], + pageIndex: 1, + limit: 20, + totalPage: 0, + totalCount: 0, + noData: false, // 娌℃湁鏇村鏁版嵁浜� + isLoading: false, // 鏄惁姝e湪鍔犺浇 + tipShow: false + }; + }, + onLoad() { //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢 - this.$post({ - url: "/RKJ/getPage", - data: { - pageIndex: this.pageIndex, - limit: this.limit, - createUser: this.$loginInfo.account, - result: result - } - }).then(res => { - if (this.pageIndex === 1) { - // 濡傛灉鏄涓�椤碉紝鐩存帴瑕嗙洊鍘熸暟鎹� - this.data = res.data.tbBillList; - } else { + this.init(); + }, + methods: { + init() { - if (res.data.tbBillList.length > 0) { - // 濡傛灉鏄笅涓�椤碉紝杩藉姞鏂版暟鎹� - this.data = [...this.data, ...res.data.tbBillList]; + let fsubmit = null; // 榛樿鏌ヨ鎵�鏈夋湭鎻愪氦鐨勮褰曪紙鍖呮嫭fsubmit = 0鍜宖submit涓虹┖锛� + if (this.current == 1) { + fsubmit = "1"; // 宸叉彁浜� + } + + if (this.isLoading) return; // 濡傛灉姝e湪鍔犺浇鍒欎笉缁х画鎵ц + + this.isLoading = true; + + //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢 + this.$post({ + url: "/RKJ/getPage", + data: { + pageIndex: this.pageIndex, + limit: this.limit, + createUser: this.$loginInfo.account, + fsubmit: fsubmit } - + }).then(res => { + if (this.pageIndex === 1) { + // 濡傛灉鏄涓�椤碉紝鐩存帴瑕嗙洊鍘熸暟鎹� + this.data = res.data.tbBillList; + } else { + + if (res.data.tbBillList.length > 0) { + // 濡傛灉鏄笅涓�椤碉紝杩藉姞鏂版暟鎹� + this.data = [...this.data, ...res.data.tbBillList]; + } + + } + this.totalCount = res.data.totalCount; + this.totalPage = Math.ceil(this.totalCount / this.limit); + + this.noData = this.pageIndex >= this.totalPage; + this.isLoading = false; // 缁撴潫鍔犺浇 + }).catch(() => { + this.isLoading = false; // 鍑虹幇閿欒鏃剁粨鏉熷姞杞� + }); + }, + handleFabClick() { + uni.navigateTo({ + url: 'Add?id' + }); + }, + onClickItem(index) { + if (this.current !== index.currentIndex) { + this.current = index.currentIndex; + this.data = []; + this.pageIndex = 1; + this.init(); } - this.totalCount = res.data.totalCount; - this.totalPage = Math.ceil(this.totalCount / this.limit); - - this.noData = this.pageIndex >= this.totalPage; - this.isLoading = false; // 缁撴潫鍔犺浇 - }).catch(() => { - this.isLoading = false; // 鍑虹幇閿欒鏃剁粨鏉熷姞杞� - }); + }, + navigateToDetail(item) { + uni.navigateTo({ + url: 'Add?id=' + item.id + '&releaseNo=' + item.releaseNo + }); + }, }, - handleFabClick() { - uni.navigateTo({ - url: 'Add?id' - }); + /** + * 涓嬫媺鍒锋柊鍥炶皟鍑芥暟 + */ + onPullDownRefresh() { + this.pageIndex = 1; + //閲嶆柊鎵ц涓�閬嶆煡璇� + this.init(); + this.tipShow = true; + //鍏抽棴鍔ㄧ敾 + uni.stopPullDownRefresh(); + + setTimeout(function () { + this.tipShow = false; + }, 3000); }, - onClickItem(index) { - if (this.current !== index.currentIndex) { - this.current = index.currentIndex; - this.data = []; - this.pageIndex = 1; - this.init(); - } + /** + * 涓婃媺鍔犺浇鍥炶皟鍑芥暟 + */ + onReachBottom() { + if (this.noData || this.isLoading) return; + this.pageIndex++; + this.init(); // 鍔犺浇鏇村鏁版嵁 }, - navigateToDetail(item) { - uni.navigateTo({ - url: 'Add?id=' + item.id + '&releaseNo=' + item.releaseNo - }); - }, - }, - /** - * 涓嬫媺鍒锋柊鍥炶皟鍑芥暟 - */ - onPullDownRefresh() { - this.pageIndex = 1; - //閲嶆柊鎵ц涓�閬嶆煡璇� - this.init(); - this.tipShow = true; - //鍏抽棴鍔ㄧ敾 - uni.stopPullDownRefresh(); - - setTimeout(function () { - this.tipShow = false; - }, 3000); - }, - /** - * 涓婃媺鍔犺浇鍥炶皟鍑芥暟 - */ - onReachBottom() { - if (this.noData || this.isLoading) return; - this.pageIndex++; - this.init(); // 鍔犺浇鏇村鏁版嵁 - }, - onShow() { - //姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉� - this.pageIndex = 1; - this.data = []; - //this.current = 0 - this.init(); + onShow() { + //姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉� + this.pageIndex = 1; + this.data = []; + //this.current = 0 + this.init(); + } + }; + </script> + + <style scoped> + /* 鍩虹鏍峰紡閲嶇疆 */ + .inspection-app { + padding: 10px; + background-color: #f5f7fa; + min-height: 100vh; } -}; -</script> - -<style scoped> -/* 鍩虹鏍峰紡閲嶇疆 */ -.inspection-app { - padding: 10px; - background-color: #f5f7fa; - min-height: 100vh; -} - -/* 椤堕儴绛涢�夊尯 */ -.filter-section { - margin-bottom: 24px; -} - -.filter-controls { - display: flex; - justify-content: center; - align-items: center; -} - -.status-tabs { - display: flex; - border-radius: 4px; - overflow: hidden; - background-color: #ecf0f1; - width: 300px; -} - -.tab-button { - padding: 0px 16px; - border: none; - background: none; - font-size: 14px; - transition: all 0.3s; - margin: 0; - height: 35px; - flex: 1; -} - -.tab-button.active { - background-color: #3498db; - color: white; -} - -/* 妫�楠屽崟鍒楄〃 */ -.inspection-list { - display: flex; - flex-direction: column; - gap: 20px; -} - -/* 妫�楠屽崟鍗$墖 */ -.inspection-card { - background-color: white; - border-radius: 8px; - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); - overflow: hidden; - transition: all 0.3s; -} - -.card-header { - padding: 16px; - border-bottom: 1px solid #eee; - display: flex; - align-items: center; -} - -.card-title { - font-size: 16px; - font-weight: 600; - flex: 1; - margin: 0 8px; -} - -.status { - font-size: 12px; - padding: 4px 8px; - border-radius: 4px; - font-weight: 500; -} - -.status.pending { - background-color: #f39c12; - color: white; -} - -.status.pass { - background-color: #00cd00; - color: white; -} - -.status.unqualified { - background-color: #ff0000; - color: white; -} - -.card-body { - padding: 16px; -} - -.info-row { - display: flex; - margin-bottom: 12px; - gap: 16px; -} - -.info-item { - flex: 1; -} - -.info-label { - display: block; - font-size: 12px; - color: #7f8c8d; - margin-bottom: 4px; -} - -.info-content { - font-size: 14px; - color: #2c3e50; - line-height: 1.5; -} - -.highlight { - font-weight: 600; - color: #2c3e50; - font-size: 16px; -} - -.meta-info { - display: flex; - gap: 16px; - font-size: 12px; - color: #95a5a6; - margin-top: 12px; -} - -.meta-item { - display: flex; - align-items: center; - gap: 4px; -} - -.card-actions { - padding: 12px 16px; - border-top: 1px solid #eee; - display: flex; - gap: 8px; -} - -button { - padding: 8px 16px; - border: 1px solid #ddd; - border-radius: 4px; - background-color: white; - font-size: 14px; - transition: all 0.2s; - flex: 1; -} - -button.primary { - background-color: #3498db; - color: white; - border-color: #2980b9; -} - -.plus-button { - position: fixed; - bottom: 20px; - right: 20px; - width: 60px; - height: 60px; - border-radius: 50%; - background-color: #3498db; - color: #ffffff; - text-align: center; - line-height: 59px; - font-size: 24px; - cursor: pointer; - z-index: 1000; - margin-bottom: 35px; -} - -.tips { - color: #67c23a; - font-size: 14px; - line-height: 40px; - text-align: center; - background-color: #f0f9eb; - height: 0; - opacity: 0; - transform: translateY(-100%); - transition: all 0.3s; -} - -.tips-ani { - transform: translateY(0); - height: 40px; - opacity: 1; -} - -/* 鍝嶅簲寮忚璁� */ -@media (min-width: 768px) { + + /* 椤堕儴绛涢�夊尯 */ + .filter-section { + margin-bottom: 24px; + } + + .filter-controls { + display: flex; + justify-content: center; + align-items: center; + } + + .status-tabs { + display: flex; + border-radius: 4px; + overflow: hidden; + background-color: #ecf0f1; + width: 300px; + } + + .tab-button { + padding: 0px 16px; + border: none; + background: none; + font-size: 14px; + transition: all 0.3s; + margin: 0; + height: 35px; + flex: 1; + } + + .tab-button.active { + background-color: #3498db; + color: white; + } + + /* 妫�楠屽崟鍒楄〃 */ .inspection-list { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); + display: flex; + flex-direction: column; + gap: 20px; + } + + /* 妫�楠屽崟鍗$墖 */ + .inspection-card { + background-color: white; + border-radius: 8px; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); + overflow: hidden; + transition: all 0.3s; + } + + .card-header { + padding: 16px; + border-bottom: 1px solid #eee; + display: flex; + align-items: center; + } + + .card-title { + font-size: 16px; + font-weight: 600; + flex: 1; + margin: 0 8px; + } + + .status { + font-size: 12px; + padding: 4px 8px; + border-radius: 4px; + font-weight: 500; + } + + .status.pending { + background-color: #f39c12; + color: white; + } + + .status.pass { + background-color: #00cd00; + color: white; + } + + .status.unqualified { + background-color: #ff0000; + color: white; + } + + .card-body { + padding: 16px; } .info-row { - flex-direction: row; - } -} - -@media (min-width: 300px) { - .inspection-list { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + display: flex; + margin-bottom: 12px; + gap: 16px; } - .info-row { - flex-direction: row; + .info-item { + flex: 1; } -} -</style> \ No newline at end of file + + .info-label { + display: block; + font-size: 12px; + color: #7f8c8d; + margin-bottom: 4px; + } + + .info-content { + font-size: 14px; + color: #2c3e50; + line-height: 1.5; + } + + .highlight { + font-weight: 600; + color: #2c3e50; + font-size: 16px; + } + + .meta-info { + display: flex; + gap: 16px; + font-size: 12px; + color: #95a5a6; + margin-top: 12px; + } + + .meta-item { + display: flex; + align-items: center; + gap: 4px; + } + + .card-actions { + padding: 12px 16px; + border-top: 1px solid #eee; + display: flex; + gap: 8px; + } + + button { + padding: 8px 16px; + border: 1px solid #ddd; + border-radius: 4px; + background-color: white; + font-size: 14px; + transition: all 0.2s; + flex: 1; + } + + button.primary { + background-color: #3498db; + color: white; + border-color: #2980b9; + } + + .plus-button { + position: fixed; + bottom: 20px; + right: 20px; + width: 60px; + height: 60px; + border-radius: 50%; + background-color: #3498db; + color: #ffffff; + text-align: center; + line-height: 59px; + font-size: 24px; + cursor: pointer; + z-index: 1000; + margin-bottom: 35px; + } + + .tips { + color: #67c23a; + font-size: 14px; + line-height: 40px; + text-align: center; + background-color: #f0f9eb; + height: 0; + opacity: 0; + transform: translateY(-100%); + transition: all 0.3s; + } + + .tips-ani { + transform: translateY(0); + height: 40px; + opacity: 1; + } + + /* 鍝嶅簲寮忚璁� */ + @media (min-width: 768px) { + .inspection-list { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); + } + + .info-row { + flex-direction: row; + } + } + + @media (min-width: 300px) { + .inspection-list { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + } + + .info-row { + flex-direction: row; + } + } + </style> \ No newline at end of file -- Gitblit v1.9.3