Parcourir la source

图书推送 erp 的 log 记录

ylong il y a 7 mois
Parent
commit
86cb08817d

+ 7 - 0
src/views/marketing/ipMrakup/index.vue

@@ -57,6 +57,13 @@
 
         .ip-markup-tabs {
             margin: 16px;
+            height: calc(100vh - 110px);
+            overflow: hidden;
+            .el-tab-pane {
+                height: 100%;
+                display: flex;
+                flex-direction: column;
+            }
             :deep(.el-tabs__header) {
                 margin-bottom: 0;
             }

+ 61 - 0
src/views/recycle/bookPushErpLog/components/book-base-info.vue

@@ -0,0 +1,61 @@
+<template>
+    <div class="recycle-order-number flex flex-col items-start ml-6">
+        <div class="common-text cursor-pointer">
+            <el-text type="primary" @click="handleClick(row)">{{
+                row.bookName
+            }}</el-text>
+        </div>
+        <div class="flex justify-between items-start">
+            <div class="flex flex-col items-start" style="min-width: 240px">
+                <div class="common-text">
+                    <el-text>ISBN:</el-text>
+                    <el-text>{{ row.isbn }}</el-text>
+                </div>
+                <div class="common-text">
+                    <el-text>作 者:</el-text>
+                    <el-text>{{ row.author || '-' }} </el-text>
+                </div>
+                <div class="common-text">
+                    <el-text>出版社:</el-text>
+                    <el-text>{{ row.publish || '-' }}</el-text>
+                </div>
+            </div>
+            <div class="flex flex-col items-start ml-20">
+                <div class="common-text">
+                    <el-text>定价:</el-text>
+                    <el-text>¥ {{ row.price }}</el-text>
+                </div>
+                <div class="common-text">
+                    <el-text>出版时间:</el-text>
+                    <el-text
+                        >{{
+                            row.pubDate
+                                ? dayjs(row.pubDate).format('YYYY-MM-DD')
+                                : '-'
+                        }}
+                    </el-text>
+                </div>
+                <div class="common-text">
+                    <el-text>装帧:</el-text>
+                    <el-text>{{ row.bookPack || '暂无' }}</el-text>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script setup>
+    import { dayjs } from 'element-plus';
+    const emit = defineEmits(['click']);
+
+    const props = defineProps({
+        row: {
+            type: Object,
+            default: () => {}
+        }
+    });
+
+    function handleClick(row) {
+        emit('click', row);
+    }
+</script>

+ 47 - 0
src/views/recycle/bookPushErpLog/components/book-push-erp-log-search.vue

@@ -0,0 +1,47 @@
+<template>
+    <ele-card :body-style="{ paddingBottom: '8px' }">
+        <ProSearch
+            :items="formItems"
+            ref="searchRef"
+            @search="search"
+            :initKeys="initKeys"
+        />
+    </ele-card>
+</template>
+
+<script setup>
+    import { reactive, ref, defineEmits } from 'vue';
+    import ProSearch from '@/components/CommonPage/ProSearch2.vue';
+
+    const emit = defineEmits(['search']);
+
+    const formItems = reactive([
+        {
+            type: 'datetimerange',
+            label: '更新时间',
+            prop: 'time',
+            props: {
+                format: 'YYYY-MM-DD HH:mm:ss',
+                valueFormat: 'YYYY-MM-DD HH:mm:ss',
+                onChange: (value) => {
+                    initKeys.startTime = value ? value[0] : '';
+                    initKeys.endTime = value ? value[1] : '';
+                    searchRef.value?.setData(initKeys);
+                }
+            },
+            colProps: {
+                span: 6
+            }
+        }
+    ]);
+
+    const initKeys = reactive({
+        startTime: '',
+        endTime: ''
+    });
+
+    const searchRef = ref(null);
+    function search(data) {
+        emit('search', { ...data });
+    }
+</script>

+ 86 - 0
src/views/recycle/bookPushErpLog/index.vue

@@ -0,0 +1,86 @@
+<template>
+    <ele-page flex-table>
+        <book-push-erp-log-search @search="reload" />
+        <common-table ref="pageRef" :pageConfig="pageConfig" :columns="columns">
+            <template #toolbar>
+                <el-button
+                    type="primary"
+                    @click="handleExport"
+                    v-permission="'recycle:bookPushErpLog:export'"
+                    >导出</el-button
+                >
+            </template>
+            <template #cover="{ row }">
+                <el-image
+                    style="width: 80px; height: 100px"
+                    fit="cover"
+                    :src="row.cover"
+                    :preview-src-list="[row.cover]"
+                    :initial-index="0"
+                    preview-teleported
+                />
+            </template>
+            <template #baseInfo="{ row }">
+                <book-base-info :row="row" />
+            </template>
+        </common-table>
+    </ele-page>
+</template>
+
+<script setup>
+    import { ref, reactive } from 'vue';
+    import CommonTable from '@/components/CommonPage/CommonTable.vue';
+    import BookPushErpLogSearch from './components/book-push-erp-log-search.vue';
+    import BookBaseInfo from './components/book-base-info.vue';
+
+    const columns = ref([
+        {
+            type: 'selection',
+            columnKey: 'selection',
+            width: 50,
+            align: 'center',
+            fixed: 'left'
+        },
+        {
+            label: '商品图',
+            prop: 'cover',
+            slot: 'cover',
+            align: 'center'
+        },
+        {
+            label: '商品名称',
+            prop: 'baseInfo',
+            slot: 'baseInfo',
+            align: 'left',
+            minWidth: 320
+        },
+        {
+            label: '商品编码',
+            prop: 'bookCode',
+            align: 'center'
+        },
+
+        {
+            label: '更新时间',
+            prop: 'createTime',
+            align: 'center',
+            width: 180
+        }
+    ]);
+
+    const pageRef = ref(null);
+    const pageConfig = reactive({
+        pageUrl: '/book/stock/getBookPushErpLogList',
+        exportUrl: '/book/stock/exportBookPushErpLogList',
+        fileName: '图书推送ERP日志',
+        cacheKey: 'book-push-erp-log'
+    });
+
+    function reload(where) {
+        pageRef.value?.reload(where);
+    }
+
+    function handleExport() {
+        pageRef.value?.exportData();
+    }
+</script>