From a59ff44b2eaa7020f0529632d9ec064c4dc38e27 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 28 四月 2026 22:08:46 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/gtzxinglijicun

---
 admin/src/components/business/OperaShopInfoWindow.vue |  269 ++++++++++++++++++++++++-----------------------------
 1 files changed, 122 insertions(+), 147 deletions(-)

diff --git a/admin/src/components/business/OperaShopInfoWindow.vue b/admin/src/components/business/OperaShopInfoWindow.vue
index f272d7d..78edb32 100644
--- a/admin/src/components/business/OperaShopInfoWindow.vue
+++ b/admin/src/components/business/OperaShopInfoWindow.vue
@@ -1,9 +1,9 @@
 <template>
   <GlobalWindow
-    :title="title"
-    :withFooter="false"
-    :visible.sync="visible"
-    width="80%"
+      :title="title"
+      :withFooter="false"
+      :visible.sync="visible"
+      width="calc(100% - 255px )"
   >
     <div class="store-header" v-if="storeInfo">
       <div class="store-header-left">
@@ -39,61 +39,109 @@
 
     <el-tabs v-model="activeTab" class="store-tabs">
       <el-tab-pane label="闂ㄥ簵涓氱哗" name="performance">
-        <el-form ref="searchForm" :model="searchForm" inline>
-          <el-form-item label="浜ゆ槗鍙�" prop="orderNo">
-            <el-input v-model="searchForm.orderNo" clearable placeholder="璇疯緭鍏ヤ氦鏄撳彿"></el-input>
+        <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
+          <el-form-item label="璁㈠崟缂栧彿" prop="code">
+            <el-input v-model="searchForm.code" style="width: 150px;" clearable placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" @keypress.enter.native="search"></el-input>
           </el-form-item>
-          <el-form-item label="鏀舵敮绫诲瀷" prop="optType">
-            <el-select v-model="searchForm.optType" clearable placeholder="璇烽�夋嫨绫诲瀷">
+          <el-form-item label="鐗╁搧淇℃伅" prop="goodsInfo">
+            <el-input v-model="searchForm.goodsInfo" style="width: 150px;" clearable placeholder="璇疯緭鍏ョ墿鍝佷俊鎭�" @keypress.enter.native="search"></el-input>
+          </el-form-item>
+          <el-form-item label="璁㈠崟鐘舵��" prop="status">
+            <el-select v-model="searchForm.status" clearable style="width: 150px;" placeholder="璇烽�夋嫨璁㈠崟鐘舵��" @change="search">
               <el-option label="鍏ㄩ儴" value=""></el-option>
-              <el-option label="鏀跺叆" :value="1"></el-option>
-              <el-option label="鏀嚭" :value="-1"></el-option>
+              <el-option label="寰呮敮浠�" :value="0"></el-option>
+              <el-option label="寰呭瘎瀛�" :value="1"></el-option>
+              <el-option label="宸插瘎瀛�" :value="2"></el-option>
+              <el-option label="宸叉帴鍗�" :value="3"></el-option>
+              <el-option label="娲鹃�佷腑" :value="4"></el-option>
+              <el-option label="宸插埌搴�/宸查�佽揪" :value="5"></el-option>
+              <el-option label="宸插畬鎴�" :value="7"></el-option>
+              <el-option label="宸插彇娑�" :value="99"></el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="鏀舵敮鏃堕棿" prop="createTime">
-            <el-date-picker type="daterange" v-model="searchForm.createTime" clearable value-format="yyyy-MM-dd HH:mm:ss"
-              range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" />
+          <el-form-item label="缁撶畻鐘舵��" prop="settlementStatus">
+            <el-select v-model="searchForm.settlementStatus" style="width: 150px;" clearable placeholder="璇烽�夋嫨缁撶畻鐘舵��" @change="search">
+              <el-option label="寰呯粨绠�" :value="0"></el-option>
+              <el-option label="宸茬粨绠�" :value="1"></el-option>
+            </el-select>
           </el-form-item>
-          <section>
-            <el-button type="primary" @click="search">鏌ヨ</el-button>
+          <el-form-item label="鍒涘缓鏃堕棿" prop="createTime1">
+            <el-date-picker type="daterange" v-model="searchForm.createTime1" clearable value-format="yyyy-MM-dd"
+                            range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" @change="handleDateChange" />
+          </el-form-item>
+          <section style="display: inline-block">
+            <el-button type="primary" @click="search">鎼滅储</el-button>
             <el-button @click="reset">閲嶇疆</el-button>
             <el-button :loading="isWorking.export" @click="exportExcel">瀵煎嚭</el-button>
           </section>
         </el-form>
 
-        <el-table :data="tableData.list" border stripe v-loading="isWorking.search" class="performance-table">
-          <el-table-column label="鏀跺叆/鏀嚭" min-width="100px">
+        <!--
+                <div class="statistics">
+                  <span>璁㈠崟鏁帮細{{ statistics.orderCount }}</span>
+                  <span>璁㈠崟鎬讳环锛毬{ (statistics.orderAmount / 100).toFixed(2) }}</span>
+                  <span>缁撶畻鎬讳环锛毬{ (statistics.settleAmount / 100).toFixed(2) }}</span>
+                </div>
+        -->
+
+        <el-table :data="tableData.list" stripe>
+          <el-table-column prop="code" label="璁㈠崟缂栧彿" min-width="160px">
             <template slot-scope="{row}">
-              <span :class="row.optType === 1 ? 'income' : 'expense'">{{ row.optType === 1 ? '鏀跺叆' : '鏀嚭' }}</span>
+              <span class="bluestate" @click="$refs.operaOrderDetail.open(row)">{{ row.code }}</span>
             </template>
           </el-table-column>
-          <el-table-column prop="amount" label="閲戦锛堝厓锛�" min-width="100px">
+          <el-table-column prop="goodsInfo" label="鐗╁搧淇℃伅" min-width="180px" show-overflow-tooltip></el-table-column>
+          <el-table-column prop="isUrgent" label="璁㈠崟绾у埆" min-width="80px">
+            <template slot-scope="{row}"><span v-if="row.type ===1">{{ row.isUrgent === 1?'鏋侀�熻揪':'鏍囬�熻揪' }}</span></template>
+          </el-table-column>
+          <el-table-column label="鐗╁搧淇濊垂锛堝厓锛�" min-width="120px">
+            <template slot-scope="{row}">楼{{ (row.declaredFee / 100).toFixed(2) }}</template>
+          </el-table-column>
+          <el-table-column label="鐗╁搧淇濊垂锛堝厓锛�" min-width="120px">
+            <template slot-scope="{row}">楼{{ (row.declaredFee / 100).toFixed(2) }}</template>
+          </el-table-column>
+          <el-table-column label="鍩虹鏈嶅姟璐癸紙鍏冿級" min-width="120px">
+            <template slot-scope="{row}">楼{{ (row.price / 100).toFixed(2) }}</template>
+          </el-table-column>
+          <el-table-column label="璁㈠崟鎬讳环锛堝厓锛�" min-width="120px">
+            <template slot-scope="{row}">楼{{ (row.totalAmount / 100).toFixed(2) }}</template>
+          </el-table-column>
+          <el-table-column label="瀹炰粯鐜伴噾锛堝厓锛�" min-width="120px">
+            <template slot-scope="{row}">楼{{ (row.payAmount / 100).toFixed(2) }}</template>
+          </el-table-column>
+          <el-table-column label="鍔犳�ヨ垂锛堝厓锛�" min-width="120px">
+            <template slot-scope="{row}"><span v-if="row.type ===1 ">楼{{ (row.urgentAmount / 100).toFixed(2) }}</span></template>
+          </el-table-column>
+          <el-table-column label="閫�娆鹃噾棰濓紙鍏冿級" min-width="120px">
+            <template slot-scope="{row}">楼{{ (row.refundAmount / 100).toFixed(2) }}</template>
+          </el-table-column>
+          <el-table-column label="瓒呮椂閲戦" min-width="100px">
+            <template slot-scope="{row}">楼{{ (row.overdueAmount / 100).toFixed(2) }}</template>
+          </el-table-column>
+          <el-table-column label="寮傚父閲戦" min-width="100px">
+            <template slot-scope="{row}">楼{{ (row.exceptionAmount / 100).toFixed(2) }}</template>
+          </el-table-column>
+          <el-table-column  prop="statusDesc"  label="璁㈠崟鐘舵��" min-width="100px">
             <template slot-scope="{row}">
-              <span :class="row.optType === 1 ? 'income' : 'expense'">{{ row.amount }}</span>
+            <span :style="{ color: row.status <7 ? '#e6a23c' :  (row.status ===7 ? '#67c23a' : 'grey' )}">
+              {{ row.statusDesc }}
+            </span>
             </template>
           </el-table-column>
-          <el-table-column prop="createTime" label="鏀舵敮鏃堕棿" min-width="160px"></el-table-column>
-          <el-table-column label="涓氬姟绫诲瀷" min-width="100px">
+          <el-table-column  label="缁撶畻鐘舵��" min-width="100px">
             <template slot-scope="{row}">
-              <span v-if="row.type === 0">瀹屾垚璁㈠崟</span>
-              <span v-if="row.type === 1">鎻愮幇鏀嚭</span>
-              <span v-if="row.type === 2">鎻愮幇閫�鍥�</span>
-              <span v-if="row.type === 3">骞冲彴濂栧姳</span>
+            <span :style="{ color: row.settlementStatus === 1 ? '#67c23a' : '#e6a23c' }">
+              {{ row.settlementStatus === 1 ? '宸茬粨绠�' : '鏈粨绠�' }}
+            </span>
             </template>
           </el-table-column>
-          <el-table-column prop="orderNo" label="浜ゆ槗鍙�" min-width="180px"></el-table-column>
-          <el-table-column label="鐘舵��" min-width="100px">
-            <template slot-scope="{row}">
-              <span :class="row.vaildStatus === 1 ? 'status-success' : 'status-pending'">
-                {{ row.vaildStatus === 1 ? '宸插埌璐�' : '鎻愮幇涓�' }}
-              </span>
-            </template>
-          </el-table-column>
+          <el-table-column prop="payTime" label="鏀粯鏃堕棿" min-width="150px"> </el-table-column>
+          <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="150px"> </el-table-column>
         </el-table>
         <pagination
-          @size-change="handleSizeChange"
-          @current-change="handlePageChange"
-          :pagination="tableData.pagination"
+            @size-change="handleSizeChange"
+            @current-change="handlePageChange"
+            :pagination="tableData.pagination"
         ></pagination>
       </el-tab-pane>
 
@@ -112,6 +160,10 @@
               </div>
               <div class="info-row">
                 <span class="label">闂ㄥ簵鐘舵�侊細</span>
+                <span class="value">{{ storeInfo.status === 1 ? '绂佺敤' : '鍚敤' }}</span>
+              </div>
+              <div class="info-row">
+                <span class="label">瀹℃壒鐘舵�侊細</span>
                 <span class="value">{{ storeInfo.auditStatus === 0 ? '寰呭鎵�' : storeInfo.auditStatus === 1 ? '瀹℃壒閫氳繃' : '瀹℃壒鏈�氳繃' }}</span>
               </div>
               <div class="info-row">
@@ -162,7 +214,7 @@
             <template v-else>
               <div class="image-item-row">
                 <span class="label">韬唤璇佹闈細</span>
-                <el-image :src="storeInfo.idcardImg" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImg]">
+                <el-image v-if="storeInfo.idcardImgUrl" :src="storeInfo.idcardImgUrl" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgUrl]">
                   <div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
                 </el-image>
               </div>
@@ -221,142 +273,65 @@
         </div>
       </el-tab-pane>
     </el-tabs>
+    <OperaOrderDetail ref="operaOrderDetail"  @success="handlePageChange"  />
   </GlobalWindow>
 </template>
 
 <script>
-import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
 import Pagination from '@/components/common/Pagination'
 import { detail } from '@/api/business/shopInfo'
+import BaseTable from '@/components/base/BaseTable'
+import OperaOrderDetail from '@/components/business/OperaOrderDetail'
 import { fetchList, exportExcel } from '@/api/business/revenue'
 export default {
   name: 'OperaShopInfoWindow',
-  extends: BaseOpera,
-  components: { GlobalWindow, Pagination },
+  extends: BaseTable,
+  components: { GlobalWindow, Pagination,OperaOrderDetail },
   data () {
     return {
       activeTab: 'performance',
-      storeInfo: null,
+      storeInfo: {},
+      visible:false,
       searchForm: {
         orderNo: '',
-        optType: 0,
-        createTime: '',
-        memberId: '',
-        memberType: 2
-      },
-      tableData: {
-        list: [],
-        pagination: {
-          pageIndex: 1,
-          pageSize: 10,
-          total: 0
-        }
-      },
-      isWorking: {
-        search: false,
-        export: false
+        goodsInfo: '',
+        createTime1: '',
+        startTime: '',
+        endTime: '',
+        orderStatus: '',
+        shopId: null,
+        settleStatus: ''
       },
       defaultAvatar: 'https://cube.elemecdn.com/3/c7/9d47156420e4e9c6e2c1f6d6e6e6e6e6.jpeg'
     }
   },
   created () {
     this.config({
-      api: '/business/shopInfo',
+      api: '/business/orderManagement',
       'field.id': 'id'
     })
   },
   methods: {
+    handleDateChange (val) {
+      this.searchForm.createStartTime = val ? val[0] : ''
+      this.searchForm.createEndTime = val ? val[1] : ''
+      this.search()
+    },
     open (title, row) {
       this.searchForm.memberId = row.id
       detail(row.id)
-        .then(res => {
-          this.storeInfo = res
-          this.activeTab = 'performance'
-          this.searchForm = {
-            orderNo: '',
-            optType: '',
-            createTime: '',
-            memberId: '',
-            memberType: 2
-          }
-          this.title = title
-          this.visible = true
-          this.search()
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-    },
-    search () {
-      this.isWorking.search = true
-      const data = {
-        capacity: this.tableData.pagination.pageSize,
-        page: this.tableData.pagination.pageIndex,
-        model: {
-          orderNo: this.searchForm.orderNo,
-          optType: this.searchForm.optType,
-          startTime: this.searchForm.createTime?.[0] || '',
-          endTime: this.searchForm.createTime?.[1] || '',
-          memberId: this.searchForm.memberId,
-          memberType: this.searchForm.memberType || ''
-        }
-      }
-      fetchList(data)
-        .then(res => {
-          this.tableData.list = res.list || []
-          this.tableData.pagination.total = res.total || 0
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.isWorking.search = false
-        })
-    },
-    reset () {
-      this.searchForm = {
-        orderNo: '',
-        optType: '',
-        createTime: '',
-        memberId: '',
-        memberType: 2
-      }
-      this.search()
-    },
-    handleSizeChange (pageSize) {
-      this.tableData.pagination.pageSize = pageSize
-      this.search()
-    },
-    handlePageChange (pageIndex) {
-      this.tableData.pagination.pageIndex = pageIndex
-      this.search()
-    },
-    exportExcel () {
-      this.isWorking.export = true
-      const data = {
-        capacity: 999999,
-        page: this.tableData.pagination.pageIndex,
-        model: {
-          orderNo: this.searchForm.orderNo,
-          optType: this.searchForm.optType,
-          startTime: this.searchForm.createTime?.[0] || '',
-          endTime: this.searchForm.createTime?.[1] || '',
-          memberId: this.searchForm.memberId,
-          memberType: this.searchForm.memberType || ''
-        }
-      }
-      exportExcel(data)
-        .then(res => {
-          this.download(res)
-          this.$tip.apiSuccess('瀵煎嚭鎴愬姛')
-        })
-        .catch(e => {
-          this.$tip.apiFailed(e)
-        })
-        .finally(() => {
-          this.isWorking.export = false
-        })
+          .then(res => {
+            this.storeInfo = res
+            this.activeTab = 'performance'
+            this.title = title
+            this.visible = true
+            this.searchForm.shopId = row.id
+            this.search()
+          })
+          .catch(e => {
+            this.$tip.apiFailed(e)
+          })
     }
   }
 }

--
Gitblit v1.9.3