1
0

4 Коммиты daeab1455b ... 05605acd26

Автор SHA1 Сообщение Дата
  furffico 05605acd26 feat(liveroomProd): 导入直播间商品 1 год назад
  furffico daeab1455b feat(liveroomProd): 导入直播间商品 1 год назад
  web 5dc3865dc9 Merge branch 'master' of http://36.155.115.98:3000/xuchang/LiveManageV 1 год назад
  web 369e9dc88e feat(liveroomList): 商品跳转记录 1 год назад

+ 1 - 0
package.json

@@ -16,6 +16,7 @@
     "dayjs": "^1.11.9",
     "element-ui": "2.15.7",
     "lodash": "4.17.20",
+    "moment": "^2.29.4",
     "qs": "^6.11.2",
     "svg-baker-runtime": "^1.4.7",
     "svg-sprite-loader": "3.7.3",

+ 90 - 0
pnpm-lock.yaml

@@ -22,6 +22,9 @@ dependencies:
   lodash:
     specifier: 4.17.20
     version: registry.npmmirror.com/lodash@4.17.20
+  moment:
+    specifier: ^2.29.4
+    version: registry.npmmirror.com/moment@2.29.4
   qs:
     specifier: ^6.11.2
     version: registry.npmmirror.com/qs@6.11.2
@@ -52,6 +55,9 @@ dependencies:
   vuex:
     specifier: 3.6.2
     version: registry.npmmirror.com/vuex@3.6.2(vue@2.7.14)
+  xlsx:
+    specifier: ^0.18.5
+    version: registry.npmmirror.com/xlsx@0.18.5
 
 devDependencies:
   '@types/crypto-js':
@@ -3314,6 +3320,13 @@ packages:
     engines: {node: '>= 10.0.0'}
     dev: true
 
+  registry.npmmirror.com/adler-32@1.3.1:
+    resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz}
+    name: adler-32
+    version: 1.3.1
+    engines: {node: '>=0.8'}
+    dev: false
+
   registry.npmmirror.com/ajv-errors@1.0.1(ajv@6.12.6):
     resolution: {integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv-errors/-/ajv-errors-1.0.1.tgz}
     id: registry.npmmirror.com/ajv-errors/1.0.1
@@ -4620,6 +4633,16 @@ packages:
     version: 0.12.0
     dev: true
 
+  registry.npmmirror.com/cfb@1.2.2:
+    resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz}
+    name: cfb
+    version: 1.2.2
+    engines: {node: '>=0.8'}
+    dependencies:
+      adler-32: registry.npmmirror.com/adler-32@1.3.1
+      crc-32: registry.npmmirror.com/crc-32@1.2.2
+    dev: false
+
   registry.npmmirror.com/chalk@1.1.3:
     resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz}
     name: chalk
@@ -4896,6 +4919,13 @@ packages:
     version: 1.0.0
     dev: true
 
+  registry.npmmirror.com/codepage@1.15.0:
+    resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz}
+    name: codepage
+    version: 1.15.0
+    engines: {node: '>=0.8'}
+    dev: false
+
   registry.npmmirror.com/collection-visit@1.0.0:
     resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz}
     name: collection-visit
@@ -5399,6 +5429,14 @@ packages:
     version: 1.9.3
     dev: false
 
+  registry.npmmirror.com/crc-32@1.2.2:
+    resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz}
+    name: crc-32
+    version: 1.2.2
+    engines: {node: '>=0.8'}
+    hasBin: true
+    dev: false
+
   registry.npmmirror.com/create-ecdh@4.0.4:
     resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz}
     name: create-ecdh
@@ -7441,6 +7479,13 @@ packages:
     engines: {node: '>= 0.6'}
     dev: true
 
+  registry.npmmirror.com/frac@1.1.2:
+    resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz}
+    name: frac
+    version: 1.1.2
+    engines: {node: '>=0.8'}
+    dev: false
+
   registry.npmmirror.com/fragment-cache@0.2.1:
     resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz}
     name: fragment-cache
@@ -10447,6 +10492,12 @@ packages:
       minimist: registry.npmmirror.com/minimist@1.2.8
     dev: true
 
+  registry.npmmirror.com/moment@2.29.4:
+    resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz}
+    name: moment
+    version: 2.29.4
+    dev: false
+
   registry.npmmirror.com/move-concurrently@1.0.1:
     resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz}
     name: move-concurrently
@@ -13327,6 +13378,15 @@ packages:
     version: 1.0.3
     dev: true
 
+  registry.npmmirror.com/ssf@0.11.2:
+    resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz}
+    name: ssf
+    version: 0.11.2
+    engines: {node: '>=0.8'}
+    dependencies:
+      frac: registry.npmmirror.com/frac@1.1.2
+    dev: false
+
   registry.npmmirror.com/sshpk@1.17.0:
     resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz}
     name: sshpk
@@ -15245,6 +15305,13 @@ packages:
       isexe: registry.npmmirror.com/isexe@2.0.0
     dev: true
 
+  registry.npmmirror.com/wmf@1.0.2:
+    resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz}
+    name: wmf
+    version: 1.0.2
+    engines: {node: '>=0.8'}
+    dev: false
+
   registry.npmmirror.com/word-wrap@1.2.3:
     resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz}
     name: word-wrap
@@ -15252,6 +15319,13 @@ packages:
     engines: {node: '>=0.10.0'}
     dev: true
 
+  registry.npmmirror.com/word@0.3.0:
+    resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/word/-/word-0.3.0.tgz}
+    name: word
+    version: 0.3.0
+    engines: {node: '>=0.8'}
+    dev: false
+
   registry.npmmirror.com/worker-farm@1.7.0:
     resolution: {integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/worker-farm/-/worker-farm-1.7.0.tgz}
     name: worker-farm
@@ -15373,6 +15447,22 @@ packages:
         optional: true
     dev: true
 
+  registry.npmmirror.com/xlsx@0.18.5:
+    resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz}
+    name: xlsx
+    version: 0.18.5
+    engines: {node: '>=0.8'}
+    hasBin: true
+    dependencies:
+      adler-32: registry.npmmirror.com/adler-32@1.3.1
+      cfb: registry.npmmirror.com/cfb@1.2.2
+      codepage: registry.npmmirror.com/codepage@1.15.0
+      crc-32: registry.npmmirror.com/crc-32@1.2.2
+      ssf: registry.npmmirror.com/ssf@0.11.2
+      wmf: registry.npmmirror.com/wmf@1.0.2
+      word: registry.npmmirror.com/word@0.3.0
+    dev: false
+
   registry.npmmirror.com/xml-name-validator@3.0.0:
     resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz}
     name: xml-name-validator

+ 28 - 6
src/components/base-table/base-table.vue

@@ -1,14 +1,18 @@
 <template>
-  <div class="table-wrap" v-loading='loading'>
+  <div class="table-wrap">
     <div class="table-page-search-wrapper" v-if="condition.length">
-      <el-form :inline="true" class="demo-form-inline" label-width='80px' size="small">
+      <el-form :inline="true" class="demo-form-inline" label-width="80px" size="small">
         <el-row :gutter='10'>
           <el-col :span='span' v-for='v in condition' :key='v.dataIndex'>
             <el-form-item :label="layout === 'include' ? '' : v.title" style="display: flex">
               <el-input v-model='queryParam[v.dataIndex]' :placeholder="layout === 'include' ? v.title : '请输入'"
                 v-if="v.type === 'input'" clearable />
-              <el-date-picker v-model='queryParam[v.dataIndex]' valueFormat="YYYY-MM-DD"
-                v-else-if="v.type === 'time-range'" :placeholder="layout === 'include' ? v.title : '请选择'" />
+              <el-date-picker v-model='queryParam[v.dataIndex]' v-else-if="v.type === 'daterange'"
+                value-format="yyyy-MM-dd" :placeholder="layout === 'include' ? v.title : '请选择'" type="daterange"
+                class="date-picker" />
+              <el-date-picker v-model='queryParam[v.dataIndex]' v-else-if="v.type === 'datetimerange'"
+                value-format="yyyy-MM-dd HH:mm:ss" :placeholder="layout === 'include' ? v.title : '请选择'"
+                type="datetimerange" class="date-picker" />
               <el-select v-model='queryParam[v.dataIndex]' :placeholder="layout === 'include' ? v.title : '请选择'"
                 :default-value='v.defaultValue' v-else-if="v.type === 'select'" clearable>
                 <el-option :value='v1.value' :label="v1.label" v-for='v1 in v.options' :key='v1.value'></el-option>
@@ -29,7 +33,7 @@
         </el-row>
       </el-form>
     </div>
-    <el-table :data='tableData' style="margin: 6px 0;" v-bind="$attrs" v-on='$listeners' ref='table'>
+    <el-table :data='tableData' style="margin: 6px 0;" v-bind="$attrs" v-on='$listeners' ref='table' v-loading='loading'>
       <el-table-column type="selection" width="55" v-if="isSelection">
       </el-table-column>
       <el-table-column v-bind='v' :prop='v.dataIndex' :label='v.title' v-for="(v, i) in columns" :key='i'>
@@ -195,4 +199,22 @@ export default {
 };
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.table-wrap {
+  .table-page-search-wrapper {
+    .demo-form-inline {
+      .date-picker {
+        width: 100%;
+      }
+
+      .table-page-search-submitButtons {}
+    }
+  }
+
+  span {}
+}
+
+::v-deep .el-form-item__content {
+  width: calc(100% - 80px);
+}
+</style>

+ 91 - 0
src/components/base-table/config.js

@@ -0,0 +1,91 @@
+export const order = {
+  columns: [
+    {
+      title: "编号",
+      dataIndex: "id",
+    },
+    {
+      title: "订单号",
+      dataIndex: "orderNo",
+    },
+    {
+      title: "下单人",
+      dataIndex: "addressName",
+    },
+    {
+      title: "订单金额",
+      dataIndex: "totalFee",
+    },
+    {
+      title: "支付方式",
+      dataIndex: "payType",
+    },
+    {
+      title: "订单状态",
+      dataIndex: "status",
+    },
+    {
+      title: "操作",
+      dataIndex: "action",
+      scopedSlots: { customRender: "action" },
+    },
+  ],
+  condition: [
+    {
+      title: "手机号",
+      dataIndex: "phone",
+      type: "input",
+    },
+    {
+      title: "订单状态",
+      dataIndex: "status",
+      type: "select",
+      defaultValue: '全部',
+      options: [
+        {
+          label: "全部",
+          value: "全部",
+        },
+        {
+          label: "待支付",
+          value: "待支付",
+        },
+        {
+          label: "已支付",
+          value: "已支付",
+        },
+      ],
+    },
+  ],
+}
+import dayjs from 'dayjs'
+export const liveroomProductJumpRecord = {
+  columns: [
+    {
+      title: "用户",
+      dataIndex: "phone",
+    },
+    {
+      title: "点击商品",
+      dataIndex: "name",
+    },
+    {
+      title: "商品链接",
+      dataIndex: "linkInfo",
+    },
+    {
+      title: "点击时间",
+      dataIndex: "createAt",
+      scopedSlots: {
+        customRender: (label, row, index) => `${dayjs(row.createAt).format("YYYY-MM-DD HH:mm:ss")}`
+      },
+    },
+  ],
+  condition: [
+    {
+      title: "时间",
+      dataIndex: "time",
+      type: "datetimerange",
+    },
+  ],
+}

+ 3 - 3
src/views/modules/liveroom/liveroomList-opbar.vue

@@ -16,9 +16,9 @@
         <el-button type="primary" size="small" disabled><icon-svg name="question" /></el-button>
       </el-tooltip>
       <el-tooltip effect="dark" content="商品跳转记录" placement="top" :enterable="false">
-        <el-button type="info" size="small" @click="$router.push(`/liveroom/liveroom-product-jump-record/${id}`)">
-          <icon-svg name="record" />
-        </el-button>
+        <el-button type="info" size="small"
+          @click="$router.push(`/liveroom/liveroom-product-jump-record/${id}?title=${data.title}`)"><icon-svg
+            name="record" /></el-button>
       </el-tooltip>
       <el-tooltip effect="dark" content="邀约码统计" placement="top" :enterable="false">
         <el-button type="info" size="small" disabled><icon-svg name="share" /></el-button>

+ 125 - 32
src/views/modules/liveroom/liveroomProductJumpRecord.vue

@@ -1,44 +1,137 @@
 <template>
-  <div>sss</div>
+    <div>
+        <BaseTable :columns='columns' :condition='condition' :queryFunction='queryFunction' ref="table"
+            paginationSize="mini"
+            :paginationText="{ currentPage: 'pageCurrent', total: 'countTotal', totalPage: 'pageCount', data: 'orderList' }"
+            size="small" :span="12">
+            <template slot="append-btn">
+                <el-button type="success" size="small" @click="exportFunction">导出</el-button>
+            </template>
+        </BaseTable>
+    </div>
 </template>
 
 <script>
+import * as tableConfig from '@/components/base-table/config.js'
 import BaseTable from "@/components/base-table/base-table.vue"
+import dayjs from "dayjs";
 export default {
     data() {
-    return {
-      columns: [],
-      condition: [],
-      queryParam: {},
-      queryFunction: params => new Promise((resolve, reject) => {
-        const formatParams = {
-          page: params.pageCurrent, ...params.query
+        return {
+            columns: tableConfig.liveroomProductJumpRecord.columns,
+            condition: tableConfig.liveroomProductJumpRecord.condition,
+            queryParam: {},
+            total: 0,
+            queryFunction: params => new Promise((resolve, reject) => {
+                let url = '/room/records'
+                let formatParams = {
+                    "roomId": parseInt(this.$route.params.id), //直播间 ID
+                    "page": params.pageCurrent, //当前第几页
+                    "limit": 10 //页面的大小
+                }
+                if (params.query.time) {
+                    url = '/room/search'
+                    formatParams.start = params.query.time[0]
+                    formatParams.end = params.query.time[1]
+                }
+                return this.$http({
+                    url,
+                    method: 'post',
+                    data: formatParams,
+                    params: formatParams
+                }).then(
+                    ({ data }) => {
+                        const formatData = {
+                            pageCurrent: params.pageCurrent,
+                            countTotal: data.total,
+                            pageCount: Math.ceil(data.total / 10),
+                            orderList: data.maiDiansList || []
+                        }
+                        url == '/room/records' && (this.total = data.total)
+                        resolve(formatData)
+                    }
+                ).catch(e => reject(e))
+            }),
         }
-        return this.$http({
-          url: '/order/index',
-          method: 'post',
-          data: formatParams,
-          params: formatParams
-        }).then(
-          ({ data }) => {
-            resolve(data)
-          }
-        ).catch(e => reject(e))
-      }),
-    }
-  },
-  components: { BaseTable,  },
-  mounted() {
-    console.log(this.$route.params.id);
-  },
-  methods: {
-    show(scope) {
-      this.$refs.dialog.show(scope.row)
     },
-  }
+    components: { BaseTable, },
+    mounted() {
+    },
+    methods: {
+        exportFunction() {
+            console.log(this.$route);
+            let formatParams = {
+                "roomId": parseInt(this.$route.params.id), //直播间 ID
+                "page": 1, //当前第几页
+                "limit": this.total //页面的大小
+            }
+            this.$http({
+                url: '/room/records',
+                method: 'post',
+                data: formatParams,
+                params: formatParams
+            }).then(
+                ({ data }) => {
+                    this.exportToCSVFile(data.maiDiansList)
+                }
+            )
+        },
+
+        exportToCSVFile(list) {
+            let header = '用户,商品名称,商品链接,点击时间\n';
+            let datas = list.map(ele => {
+                return `${ele.phone},${ele.name},${ele.linkInfo},${dayjs(ele.createAt).format("YYYY-MM-DD HH:mm:ss")}\n`;
+            });
+            let dataStrs = [header, ...datas].join('');
+            // 创建一个 Blob 对象
+            const blob = new Blob(['\uFEFF' + dataStrs], {
+                type: 'text/plain;charset=utf-8',
+            });
+            // 创建一个 a 标签
+            const link = document.createElement("a");
+            // 一个 URL,可以是任意协议的,不只是 HTTP 协议
+            // 这里创建了一个 Blob URL
+            // blob:http://localhost:1234/9b3be48e-9948-496d-8a2b-18d437eb46e0
+            link.href = URL.createObjectURL(blob);
+            console.log(link.href);
+
+            // 此属性表示用户下载文件而不是进行导航到 URL,这里指的为文件名
+            link.download = `商品跳转记录-${this.$route.query.title}直播间(苏州掌银客户专享).csv`;
+            link.click();
+            // 需要释放 URL
+            URL.revokeObjectURL(link.href);
+        },
+        exportList(list, title) {
+            //表格表头,导出表头
+            let tableHeader = [['#', '资产编号', '资产名称', '资产类别', '资产型号', "资产单价", "资产金额",
+                "生产厂家", "生产日期", "购买日期", "购买人", "状态", "库存数量"]]
+            list.forEach((item, index) => {
+                let rowData = []
+                //导出内容的字段
+                rowData = [
+                    index + 1,
+                    item.zcbh,
+                    item.zcmc,
+                    item.name,
+                    item.zcxh,
+                    item.zcdj,
+                    item.zcje,
+                    item.sccj,
+                    currencyFormatDate(item.scrq),
+                    currencyFormatDate(item.gmrq),
+                    item.gmr,
+                    item.sts,
+                    item.kcsl,
+                ]
+                tableHeader.push(rowData)
+            })
+            let wb = XLSX.utils.book_new()
+            let ws = XLSX.utils.aoa_to_sheet(tableHeader)
+            XLSX.utils.book_append_sheet(wb, ws, '资产设备基本信息') // 工作簿名称
+            XLSX.writeFile(wb, '商品跳转记录-老字号直播间(苏州掌银客户专享).xlsx') // 保存的文件名
+        }
+    }
 }
 </script>
 
-<style>
-
-</style>
+<style></style>

+ 2 - 2
src/views/modules/order/order.vue

@@ -14,8 +14,8 @@
 </template>
 
 <script>
-import BaseTable from "./order-BaseTable.vue"
-import * as tableConfig from '@/avue/crud/orderList'
+import BaseTable from "@/components/base-table/base-table.vue"
+import * as tableConfig from '@/components/base-table/config.js'
 import showDialog from "./showDialog.vue"
 export default {
   data() {

+ 4 - 2
src/views/modules/order/showDialog.vue

@@ -24,7 +24,7 @@
                 </BaseTable>
             </el-form-item>
             <el-form-item label="备注">
-                <el-input v-model="form.status" type="textarea" disabled></el-input>
+                <el-input v-model="form.remark" type="textarea" disabled></el-input>
             </el-form-item>
         </el-form>
     </el-dialog>
@@ -32,6 +32,7 @@
 
 <script>
 import BaseTable from "./order-BaseTable.vue"
+import dayjs from 'dayjs'
 export default {
     name: 'showDialog',
     components: { BaseTable, },
@@ -74,7 +75,7 @@ export default {
                 addressName: '',
                 addressPhone: '',
                 addressText: '',
-                beizhu: '',
+                remark: '',
                 orderItems: []
             },
             formLabelWidth: '120px'
@@ -94,6 +95,7 @@ export default {
                     Object.keys(this.form).forEach(key => {
                         this.form[key] = data[key]
                     })
+                    this.form.paidAt = dayjs(this.form.paidAt).format("YYYY-MM-DD HH:mm:ss")
                     this.loading = false
                 }
             )

+ 1 - 1
vue.config.js

@@ -47,7 +47,7 @@ module.exports = {
     devServer: {
       proxy: {
         // "^/user": {target: "http://192.168.58.137:10086"},
-        "^/(user|goods|goodsTypes|order|orderItem|rooms)/": { target: "http://127.0.0.1:10086" },
+        "^/(user|goods|goodsTypes|order|orderItem|rooms|room)/": { target: "http://192.168.43.46:10086" },
         "^/.*": { target: "http://116.63.32.160:8085" },
       },
     }