From 46fecd0d5b011f508d4ec70456f95dba193aa782 Mon Sep 17 00:00:00 2001
From: 如洲 陈 <1278080563@qq.com>
Date: 星期五, 19 九月 2025 10:28:32 +0800
Subject: [PATCH] 巡检已提交显示修改
---
pages/QC/XJ/List.vue | 1052 +++++++++++++++++++++++++++++-----------------------------
store/index.js | 2
2 files changed, 527 insertions(+), 527 deletions(-)
diff --git a/pages/QC/XJ/List.vue b/pages/QC/XJ/List.vue
index 8e19351..94ab1ca 100644
--- a/pages/QC/XJ/List.vue
+++ b/pages/QC/XJ/List.vue
@@ -1,553 +1,553 @@
<template>
- <view class="inspection-app">
- <!-- 鍒锋柊椤甸潰鍚庣殑椤堕儴鎻愮ず妗� -->
- <view class="tips" :class="{ 'tips-ani': tipShow }">鍒锋柊鎴愬姛</view>
-
- <!-- 椤堕儴绛涢�夊尯 -->
- <view class="filter-section">
- <view class="filter-controls" style="margin-bottom: 5px;">
- <view class="status-tabs">
- <button :class="['tab-button', current === 0 ? 'active' : '']"
- @click="onClickItem({currentIndex: 0})">鏈彁浜�({{uncheckedCount}})</button>
- <button :class="['tab-button', current === 1 ? 'active' : '']"
- @click="onClickItem({currentIndex: 1})">宸叉彁浜�({{checkedCount}})</button>
- </view>
- </view>
+ <view class="inspection-app">
+ <!-- 鍒锋柊椤甸潰鍚庣殑椤堕儴鎻愮ず妗� -->
+ <view class="tips" :class="{ 'tips-ani': tipShow }">鍒锋柊鎴愬姛</view>
- <view class="filter-controls" style="margin-bottom: 5px;">
- <view class="dropdown-filter">
- <picker @change="onLineChange" :value="lineIndex" :range="lineOptions">
- <view class="picker">{{lineOptions[lineIndex]}}</view>
- </picker>
+ <!-- 椤堕儴绛涢�夊尯 -->
+ <view class="filter-section">
+ <view class="filter-controls" style="margin-bottom: 5px;">
+ <view class="status-tabs">
+ <button :class="['tab-button', current === 0 ? 'active' : '']"
+ @click="onClickItem({currentIndex: 0})">鏈彁浜�({{uncheckedCount}})</button>
+ <button :class="['tab-button', current === 1 ? 'active' : '']"
+ @click="onClickItem({currentIndex: 1})">宸叉彁浜{checkedCount > 0 ? '(' + checkedCount + ')' : ''}}</button>
+ </view>
</view>
- <view class="dropdown-filter">
- <picker @change="onOptionsChange" :value="optionsIndex" :range="options">
- <view class="picker">{{options[optionsIndex]}}</view>
- </picker>
- </view>
- <view class="search-container">
- <input class="search-input" v-model="searchValue" :placeholder="'璇疯緭鍏�'+options[optionsIndex]"
- @confirm="handleSearch" />
- <button class="search-button" @click="handleSearch">鎼滅储</button>
+
+ <view class="filter-controls" style="margin-bottom: 5px;">
+ <view class="dropdown-filter">
+ <picker @change="onLineChange" :value="lineIndex" :range="lineOptions">
+ <view class="picker">{{lineOptions[lineIndex]}}</view>
+ </picker>
+ </view>
+ <view class="dropdown-filter">
+ <picker @change="onOptionsChange" :value="optionsIndex" :range="options">
+ <view class="picker">{{options[optionsIndex]}}</view>
+ </picker>
+ </view>
+ <view class="search-container">
+ <input class="search-input" v-model="searchValue" :placeholder="'璇疯緭鍏�'+options[optionsIndex]"
+ @confirm="handleSearch" />
+ <button class="search-button" @click="handleSearch">鎼滅储</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">
- <view class="card-title">妫�楠屽崟鍙�: {{item.releaseNo}}</view>
- <view class="status" :class="{'status-pending': item.fsubmit === 0 || item.fsubmit == null, 'status-pass': item.fsubmit === 1 && item.fcheckResu === '鍚堟牸', 'status-fail': item.fsubmit === 1 && item.fcheckResu === '涓嶅悎鏍�'}">
- {{(item.fsubmit === 0 || item.fsubmit == null) ? '鏈彁浜�' : (item.fcheckResu ? item.fcheckResu : '宸叉彁浜�')}}
- </view>
- </view>
-
- <view class="card-body">
- <view class="info-row">
- <view class="info-item">
- <view class="info-label">鐗╂枡淇℃伅</view>
- <view class="info-content">{{item.itemNo}} | {{item.itemName}}<br>{{item.itemModel}}</view>
+
+ <!-- 妫�楠屽崟鍒楄〃 -->
+ <view class="inspection-list">
+ <!-- 妫�楠屽崟鍗$墖 -->
+ <view class="inspection-card" v-for="item in data" :key="item.id"
+ @click="navigateToDetail(item)">
+ <view class="card-header">
+ <view class="card-title">妫�楠屽崟鍙�: {{item.releaseNo}}</view>
+ <view class="status" :class="{'status-pending': item.fsubmit === 0 || item.fsubmit == null, 'status-pass': item.fsubmit === 1 && item.fcheckResu === '鍚堟牸', 'status-fail': item.fsubmit === 1 && item.fcheckResu === '涓嶅悎鏍�'}">
+ {{(item.fsubmit === 0 || item.fsubmit == null) ? '鏈彁浜�' : (item.fcheckResu ? item.fcheckResu : '宸叉彁浜�')}}
</view>
</view>
-
- <view class="info-row">
- <view class="info-item">
- <view class="info-label">浜х嚎</view>
- <view class="info-content">{{item.daa020}}</view>
+
+ <view class="card-body">
+ <view class="info-row">
+ <view class="info-item">
+ <view class="info-label">鐗╂枡淇℃伅</view>
+ <view class="info-content">{{item.itemNo}} | {{item.itemName}}<br>{{item.itemModel}}</view>
+ </view>
</view>
- <view class="info-item">
- <view class="info-label">宸ュ崟鏁伴噺</view>
- <view class="info-content highlight">{{item.planQty}}</view>
+
+ <view class="info-row">
+ <view class="info-item">
+ <view class="info-label">浜х嚎</view>
+ <view class="info-content">{{item.daa020}}</view>
+ </view>
+ <view class="info-item">
+ <view class="info-label">宸ュ崟鏁伴噺</view>
+ <view class="info-content highlight">{{item.planQty}}</view>
+ </view>
+ </view>
+
+ <view class="info-row">
+ <view class="info-item">
+ <view class="info-label">鍒涘缓浜�</view>
+ <view class="info-content">{{item.createBy}}</view>
+ </view>
+ <view class="info-item" v-if="item.fcheckBy">
+ <view class="info-label">妫�楠屼汉</view>
+ <view class="info-content">{{item.fcheckBy}}</view>
+ </view>
+ </view>
+
+ <view class="meta-info">
+ <view class="meta-item">{{item.createDate}}</view>
+ <view class="meta-item">鍒涘缓浜�: {{item.createBy}}</view>
+ <view class="meta-item" v-if="item.fcheckResu">妫�楠岀粨鏋�: {{item.fcheckResu}}</view>
</view>
</view>
-
- <view class="info-row">
- <view class="info-item">
- <view class="info-label">鍒涘缓浜�</view>
- <view class="info-content">{{item.createBy}}</view>
- </view>
- <view class="info-item" v-if="item.fcheckBy">
- <view class="info-label">妫�楠屼汉</view>
- <view class="info-content">{{item.fcheckBy}}</view>
- </view>
+
+ <view class="card-actions">
+ <button class="primary">{{(item.fsubmit === 0 || item.fsubmit == null) ? '缁х画妫�楠�' : '鏌ョ湅璇︽儏'}}</button>
</view>
-
- <view class="meta-info">
- <view class="meta-item">{{item.createDate}}</view>
- <view class="meta-item">鍒涘缓浜�: {{item.createBy}}</view>
- <view class="meta-item" v-if="item.fcheckResu">妫�楠岀粨鏋�: {{item.fcheckResu}}</view>
- </view>
- </view>
-
- <view class="card-actions">
- <button class="primary">{{(item.fsubmit === 0 || item.fsubmit == null) ? '缁х画妫�楠�' : '鏌ョ湅璇︽儏'}}</button>
</view>
</view>
+
+ <!-- 娣诲姞鎸夐挳 - 宸查殣钘� -->
</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, // 鏄惁鏄剧ず椤堕儴鎻愮ず妗�
- searchValue: '',
- uncheckedCount: 0,
- checkedCount: '宸插畬鎴�',
- optionsIndex: 0,
- options: ['鐗╂枡缂栧彿', '鐗╂枡鍚嶇О', '妫�楠屽崟鍙�'],
- lineIndex: 0,
- lineOptions: ['鍏ㄩ儴浜х嚎'],
- lineData: []
- };
- },
- onLoad() {
- //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
- this.loadLineData();
- this.init();
- },
- methods: {
- //鍔犺浇浜х嚎鏁版嵁
- loadLineData() {
- this.$post({
- url: "/XJ/getLineAll",
- data: {}
- }).then(res => {
- if (res.data && res.data.tbBillList) {
- this.lineData = res.data.tbBillList;
- this.lineOptions = ['鍏ㄩ儴浜х嚎', ...res.data.tbBillList.map(item => item.lineName)];
- }
- }).catch(error => {
- console.error('鍔犺浇浜х嚎鏁版嵁澶辫触:', error);
- });
- },
- //浜х嚎閫夋嫨鍙樺寲
- onLineChange(e) {
- this.lineIndex = e.detail.value;
- this.pageIndex = 1;
- this.data = [];
- this.init();
- },
- //鎼滅储閫夐」鍙樺寲
- onOptionsChange(e) {
- this.optionsIndex = e.detail.value;
- // 鏍规嵁閫夋嫨鐨勯�夐」璁剧疆鎼滅储瀛楁
- const fieldMap = {
- 0: 'itemNo', // 鐗╂枡缂栧彿
- 1: 'itemName', // 鐗╂枡鍚嶇О
- 2: 'releaseNo' // 妫�楠屽崟鍙�
+ </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, // 鏄惁鏄剧ず椤堕儴鎻愮ず妗�
+ searchValue: '',
+ uncheckedCount: 0,
+ checkedCount: 0,
+ optionsIndex: 0,
+ options: ['鐗╂枡缂栧彿', '鐗╂枡鍚嶇О', '妫�楠屽崟鍙�'],
+ lineIndex: 0,
+ lineOptions: ['鍏ㄩ儴浜х嚎'],
+ lineData: []
};
- this.selectedField = fieldMap[this.optionsIndex];
},
- handleSearch() {
+ onLoad() {
+ //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢
+ this.loadLineData();
+ this.init();
+ },
+ methods: {
+ //鍔犺浇浜х嚎鏁版嵁
+ loadLineData() {
+ this.$post({
+ url: "/XJ/getLineAll",
+ data: {}
+ }).then(res => {
+ if (res.data && res.data.tbBillList) {
+ this.lineData = res.data.tbBillList;
+ this.lineOptions = ['鍏ㄩ儴浜х嚎', ...res.data.tbBillList.map(item => item.lineName)];
+ }
+ }).catch(error => {
+ console.error('鍔犺浇浜х嚎鏁版嵁澶辫触:', error);
+ });
+ },
+ //浜х嚎閫夋嫨鍙樺寲
+ onLineChange(e) {
+ this.lineIndex = e.detail.value;
+ this.pageIndex = 1;
+ this.data = [];
+ this.init();
+ },
+ //鎼滅储閫夐」鍙樺寲
+ onOptionsChange(e) {
+ this.optionsIndex = e.detail.value;
+ // 鏍规嵁閫夋嫨鐨勯�夐」璁剧疆鎼滅储瀛楁
+ const fieldMap = {
+ 0: 'itemNo', // 鐗╂枡缂栧彿
+ 1: 'itemName', // 鐗╂枡鍚嶇О
+ 2: 'releaseNo' // 妫�楠屽崟鍙�
+ };
+ this.selectedField = fieldMap[this.optionsIndex];
+ },
+ handleSearch() {
+ this.pageIndex = 1;
+ this.data = [];
+ this.init();
+ },
+ init() {
+ let fsubmit = null;
+ if (this.current === 0) {
+ fsubmit = 0; // 鏈彁浜�
+ } else if (this.current === 1) {
+ fsubmit = 1; // 宸叉彁浜�
+ }
+
+ if (this.isLoading) return; // 濡傛灉姝e湪鍔犺浇鍒欎笉缁х画鎵ц
+
+ this.isLoading = true;
+
+ //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢 - 鍙栨秷鐢ㄦ埛鏉冮檺鎺у埗鍜屼骇绾胯繃婊わ紝鎵�鏈変汉閮藉彲浠ョ湅鍒版墍鏈夎〃鍗�
+ this.$post({
+ url: "/XJ/GetPage",
+ data: {
+ pageIndex: this.pageIndex,
+ limit: this.limit,
+ fsubmit: fsubmit,
+ searchValue: this.searchValue,
+ SelectedIndex: this.optionsIndex
+ }
+ }).then(res => {
+ console.log('API鍝嶅簲鏁版嵁:', res);
+ console.log('褰撳墠鏍囩椤�:', this.current, 'FSUBMIT鍙傛暟:', fsubmit);
+
+ if (this.pageIndex === 1) {
+ // 濡傛灉鏄涓�椤碉紝鐩存帴瑕嗙洊鍘熸暟鎹�
+ this.data = res.data.tbBillList;
+ console.log('鍔犺浇鐨勬暟鎹�:', this.data);
+ // 鎵撳嵃姣忔潯鏁版嵁鐨凢SUBMIT鐘舵��
+ this.data.forEach((item, index) => {
+ console.log(`鏁版嵁${index}: ID=${item.id}, FSUBMIT=${item.fsubmit}, FcheckResu=${item.fcheckResu}`);
+ });
+ } 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; // 缁撴潫鍔犺浇
+
+ // 鏇存柊璁℃暟 - 鍙傝�僑J鐨勫疄鐜版柟寮�
+ if (this.current === 1) {
+ this.checkedCount = this.totalCount;
+ } else {
+ this.uncheckedCount = this.totalCount;
+ }
+ }).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();
+ }
+ },
+ navigateToDetail(item) {
+ uni.navigateTo({
+ url: 'Add?id=' + item.id + '&releaseNo=' + item.releaseNo
+ });
+ }
+ },
+ /**
+ * 涓嬫媺鍒锋柊鍥炶皟鍑芥暟
+ */
+ onPullDownRefresh() {
+ this.pageIndex = 1;
+ //閲嶆柊鎵ц涓�閬嶆煡璇�
+ this.init();
+ this.tipShow = true;
+ //鍏抽棴鍔ㄧ敾
+ uni.stopPullDownRefresh();
+
+ setTimeout(() => {
+ this.tipShow = false;
+ }, 3000);
+ },
+ /**
+ * 涓婃媺鍔犺浇鍥炶皟鍑芥暟
+ */
+ onReachBottom() {
+ if (this.noData || this.isLoading) return;
+ this.pageIndex++;
+ this.init(); // 鍔犺浇鏇村鏁版嵁
+ },
+ onShow() {
+ //姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉�
this.pageIndex = 1;
this.data = [];
this.init();
- },
- init() {
- let fsubmit = null;
- if (this.current === 0) {
- fsubmit = 0; // 鏈彁浜�
- } else if (this.current === 1) {
- fsubmit = 1; // 宸叉彁浜�
- }
-
- if (this.isLoading) return; // 濡傛灉姝e湪鍔犺浇鍒欎笉缁х画鎵ц
-
- this.isLoading = true;
-
- //椤甸潰鍔犺浇鏃惰皟鐢ㄧ殑浜嬩欢 - 鍙栨秷鐢ㄦ埛鏉冮檺鎺у埗鍜屼骇绾胯繃婊わ紝鎵�鏈変汉閮藉彲浠ョ湅鍒版墍鏈夎〃鍗�
- this.$post({
- url: "/XJ/GetPage",
- data: {
- pageIndex: this.pageIndex,
- limit: this.limit,
- fsubmit: fsubmit,
- searchValue: this.searchValue,
- SelectedIndex: this.optionsIndex
- }
- }).then(res => {
- console.log('API鍝嶅簲鏁版嵁:', res);
- console.log('褰撳墠鏍囩椤�:', this.current, 'FSUBMIT鍙傛暟:', fsubmit);
-
- if (this.pageIndex === 1) {
- // 濡傛灉鏄涓�椤碉紝鐩存帴瑕嗙洊鍘熸暟鎹�
- this.data = res.data.tbBillList;
- console.log('鍔犺浇鐨勬暟鎹�:', this.data);
- // 鎵撳嵃姣忔潯鏁版嵁鐨凢SUBMIT鐘舵��
- this.data.forEach((item, index) => {
- console.log(`鏁版嵁${index}: ID=${item.id}, FSUBMIT=${item.fsubmit}, FcheckResu=${item.fcheckResu}`);
- });
- } else {
- if (res.data.tbBillList.length > 0) {
- // 濡傛灉鏄笅涓�椤碉紝杩藉姞鏂版暟鎹�
- this.data = [...this.data, ...res.data.tbBillList];
- }
- }
- this.totalCount = res.totalCount;
- this.totalPage = Math.ceil(this.totalCount / this.limit);
-
- this.noData = this.pageIndex >= this.totalPage;
- this.isLoading = false; // 缁撴潫鍔犺浇
-
- // 鏇存柊璁℃暟 - 鍙傝�僑J鐨勫疄鐜版柟寮�
- if (this.current === 1) {
- this.checkedCount = '宸插畬鎴愶紙' + this.totalCount + '锛�';
- } else {
- this.uncheckedCount = this.totalCount;
- }
- }).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();
- }
- },
- navigateToDetail(item) {
- uni.navigateTo({
- url: 'Add?id=' + item.id + '&releaseNo=' + item.releaseNo
- });
}
- },
- /**
- * 涓嬫媺鍒锋柊鍥炶皟鍑芥暟
- */
- onPullDownRefresh() {
- this.pageIndex = 1;
- //閲嶆柊鎵ц涓�閬嶆煡璇�
- this.init();
- this.tipShow = true;
- //鍏抽棴鍔ㄧ敾
- uni.stopPullDownRefresh();
-
- setTimeout(() => {
- this.tipShow = false;
- }, 3000);
- },
- /**
- * 涓婃媺鍔犺浇鍥炶皟鍑芥暟
- */
- onReachBottom() {
- if (this.noData || this.isLoading) return;
- this.pageIndex++;
- this.init(); // 鍔犺浇鏇村鏁版嵁
- },
- onShow() {
- //姣忔杩涘叆椤甸潰閮戒細鎵ц鐨勬柟娉�
- this.pageIndex = 1;
- this.data = [];
- 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: 0;
-}
-
-/* 鎼滅储妗嗘牱寮� */
-.search-container {
- display: flex;
- flex: 1;
- margin: 0 10px;
- height: 36px;
-}
-
-.search-input {
- flex: 1;
- padding: 8px 12px;
- border: 1px solid #ddd;
- border-radius: 4px 0 0 4px;
- font-size: 14px;
- background-color: white;
-}
-
-.search-button {
- padding: 0 12px;
- border: 1px solid #3498db;
- border-radius: 0 4px 4px 0;
- background: linear-gradient(135deg, #3498db, #2980b9);
- color: white;
- font-size: 14px;
- margin: 0;
- cursor: pointer;
- transition: all 0.3s ease;
-}
-
-.search-button:hover {
- background: linear-gradient(135deg, #2980b9, #1f618d);
- transform: translateY(-1px);
- box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
-}
-
-.search-button:active {
- transform: translateY(0);
-}
-
-.filter-controls {
- display: flex;
- flex-wrap: wrap;
- gap: 5px;
-}
-
-.dropdown-filter {
- min-width: 70px;
-}
-
-.picker {
- padding: 8px 12px;
- border: 1px solid #ddd;
- border-radius: 4px;
- background-color: white;
- font-size: 14px;
- min-width: 120px;
-}
-
-.status-tabs {
- display: flex;
- border-radius: 4px;
- overflow: hidden;
- background-color: #ecf0f1;
- flex: 1;
- min-width: 200px;
-}
-
-.tab-button {
- padding: 0px 16px;
- border: none;
- background: none;
- font-size: 14px;
- transition: all 0.3s;
- margin: 0;
- height: 35px;
-}
-
-.tab-button.active {
- background: linear-gradient(135deg, #3498db, #2980b9);
- color: white;
- box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
-}
-
-/* 妫�楠屽崟鍒楄〃 */
-.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 ease;
- border: 1px solid rgba(52, 152, 219, 0.1);
-}
-
-.inspection-card:hover {
- transform: translateY(-2px);
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
- border-color: rgba(52, 152, 219, 0.3);
-}
-
-.card-header {
- padding: 16px;
- border-bottom: 1px solid #eee;
- display: flex;
- align-items: center;
- background: linear-gradient(135deg, #f8f9fa, #e9ecef);
-}
-
-.card-title {
- font-size: 16px;
- font-weight: 600;
- flex: 1;
- margin: 0 8px;
- color: #2c3e50;
-}
-
-.status {
- font-size: 12px;
- padding: 4px 8px;
- border-radius: 6px;
- font-weight: 500;
- letter-spacing: 0.3px;
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-}
-
-.status-pending {
- background: linear-gradient(135deg, #f39c12, #e67e22);
- color: white;
-}
-
-.status-pass {
- background: linear-gradient(135deg, #27ae60, #229954);
- color: white;
-}
-
-.status-fail {
- background: linear-gradient(135deg, #e74c3c, #c0392b);
- 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: #e74c3c;
- 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: linear-gradient(135deg, #3498db, #2980b9);
- color: white;
- border-color: #2980b9;
- box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
- transition: all 0.3s ease;
-}
-
-button.primary:hover {
- background: linear-gradient(135deg, #2980b9, #1f618d);
- transform: translateY(-1px);
- box-shadow: 0 4px 8px rgba(52, 152, 219, 0.4);
-}
-
-button.primary:active {
- transform: translateY(0);
-}
-
-
-/* 鍝嶅簲寮忚璁� */
-@media (min-width: 768px) {
+
+ /* 椤堕儴绛涢�夊尯 */
+ .filter-section {
+ margin-bottom: 0;
+ }
+
+ /* 鎼滅储妗嗘牱寮� */
+ .search-container {
+ display: flex;
+ flex: 1;
+ margin: 0 10px;
+ height: 36px;
+ }
+
+ .search-input {
+ flex: 1;
+ padding: 8px 12px;
+ border: 1px solid #ddd;
+ border-radius: 4px 0 0 4px;
+ font-size: 14px;
+ background-color: white;
+ }
+
+ .search-button {
+ padding: 0 12px;
+ border: 1px solid #3498db;
+ border-radius: 0 4px 4px 0;
+ background: linear-gradient(135deg, #3498db, #2980b9);
+ color: white;
+ font-size: 14px;
+ margin: 0;
+ cursor: pointer;
+ transition: all 0.3s ease;
+ }
+
+ .search-button:hover {
+ background: linear-gradient(135deg, #2980b9, #1f618d);
+ transform: translateY(-1px);
+ box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
+ }
+
+ .search-button:active {
+ transform: translateY(0);
+ }
+
+ .filter-controls {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 5px;
+ }
+
+ .dropdown-filter {
+ min-width: 70px;
+ }
+
+ .picker {
+ padding: 8px 12px;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ background-color: white;
+ font-size: 14px;
+ min-width: 120px;
+ }
+
+ .status-tabs {
+ display: flex;
+ border-radius: 4px;
+ overflow: hidden;
+ background-color: #ecf0f1;
+ flex: 1;
+ min-width: 200px;
+ }
+
+ .tab-button {
+ padding: 0px 16px;
+ border: none;
+ background: none;
+ font-size: 14px;
+ transition: all 0.3s;
+ margin: 0;
+ height: 35px;
+ }
+
+ .tab-button.active {
+ background: linear-gradient(135deg, #3498db, #2980b9);
+ color: white;
+ box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
+ }
+
+ /* 妫�楠屽崟鍒楄〃 */
.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 ease;
+ border: 1px solid rgba(52, 152, 219, 0.1);
+ }
+
+ .inspection-card:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
+ border-color: rgba(52, 152, 219, 0.3);
+ }
+
+ .card-header {
+ padding: 16px;
+ border-bottom: 1px solid #eee;
+ display: flex;
+ align-items: center;
+ background: linear-gradient(135deg, #f8f9fa, #e9ecef);
+ }
+
+ .card-title {
+ font-size: 16px;
+ font-weight: 600;
+ flex: 1;
+ margin: 0 8px;
+ color: #2c3e50;
+ }
+
+ .status {
+ font-size: 12px;
+ padding: 4px 8px;
+ border-radius: 6px;
+ font-weight: 500;
+ letter-spacing: 0.3px;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+ }
+
+ .status-pending {
+ background: linear-gradient(135deg, #f39c12, #e67e22);
+ color: white;
+ }
+
+ .status-pass {
+ background: linear-gradient(135deg, #27ae60, #229954);
+ color: white;
+ }
+
+ .status-fail {
+ background: linear-gradient(135deg, #e74c3c, #c0392b);
+ color: white;
+ }
+
+ .card-body {
+ padding: 16px;
+ }
+
.info-row {
- flex-direction: row;
+ display: flex;
+ margin-bottom: 12px;
+ gap: 16px;
}
-}
-
-@media (min-width: 300px) {
- .inspection-list {
- display: grid;
- grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
+
+ .info-item {
+ flex: 1;
}
-
- .info-row {
- flex-direction: row;
+
+ .info-label {
+ display: block;
+ font-size: 12px;
+ color: #7f8c8d;
+ margin-bottom: 4px;
}
-}
-
-/* 鍒锋柊鎻愮ず鏍峰紡 */
-.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;
-}
-</style>
\ No newline at end of file
+
+ .info-content {
+ font-size: 14px;
+ color: #2c3e50;
+ line-height: 1.5;
+ }
+
+ .highlight {
+ font-weight: 600;
+ color: #e74c3c;
+ 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: linear-gradient(135deg, #3498db, #2980b9);
+ color: white;
+ border-color: #2980b9;
+ box-shadow: 0 2px 4px rgba(52, 152, 219, 0.3);
+ transition: all 0.3s ease;
+ }
+
+ button.primary:hover {
+ background: linear-gradient(135deg, #2980b9, #1f618d);
+ transform: translateY(-1px);
+ box-shadow: 0 4px 8px rgba(52, 152, 219, 0.4);
+ }
+
+ button.primary:active {
+ transform: translateY(0);
+ }
+
+
+ /* 鍝嶅簲寮忚璁� */
+ @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;
+ }
+ }
+
+ /* 鍒锋柊鎻愮ず鏍峰紡 */
+ .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;
+ }
+ </style>
\ No newline at end of file
diff --git a/store/index.js b/store/index.js
index f9c07da..49e3c8c 100644
--- a/store/index.js
+++ b/store/index.js
@@ -16,7 +16,7 @@
// },
{
name: '鏈湴璋冭瘯',
- url: 'http://localhost:5184/api'
+ url: 'http://localhost:10054/api'
},
{
name: '姝e紡鍦板潃',
--
Gitblit v1.9.3