|
|
@@ -1,336 +1,413 @@
|
|
|
<template>
|
|
|
- <ele-page flex-table>
|
|
|
- <book-search @search="reload"></book-search>
|
|
|
-
|
|
|
- <common-table
|
|
|
- ref="pageRef"
|
|
|
- :pageConfig="pageConfig"
|
|
|
- :columns="columns"
|
|
|
- :tools="false"
|
|
|
- >
|
|
|
- <template #toolbar>
|
|
|
- <el-radio-group @change="handleStatusChange" v-model="useStatus">
|
|
|
- <el-radio-button label="已加入回收书单(正在回收)" value="1" />
|
|
|
- <el-radio-button label="已加入回收书单(暂停回收)" value="2" />
|
|
|
- </el-radio-group>
|
|
|
-
|
|
|
- <span class="ml-8"></span>
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- plain
|
|
|
- v-permission="'recycle:specifiedBooks:batchRemoveBooklist'"
|
|
|
- @click="handleOptBooklist()"
|
|
|
- >
|
|
|
- 移除回收书单
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="danger"
|
|
|
- plain
|
|
|
- v-permission="'recycle:specifiedBooks:batchAddBooklist'"
|
|
|
- @click="handleOptBooklist()"
|
|
|
- >
|
|
|
- 加入回收书单
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- plain
|
|
|
- v-permission="'recycle:specifiedBooks:batchRemoveBlacklist'"
|
|
|
- @click="handleOptBlacklist()"
|
|
|
- >
|
|
|
- 批量移除黑名单
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="danger"
|
|
|
- plain
|
|
|
- v-permission="'recycle:specifiedBooks:batchAddBlacklist'"
|
|
|
- @click="handleOptBlacklist()"
|
|
|
- >
|
|
|
- 批量加黑名单
|
|
|
- </el-button>
|
|
|
-
|
|
|
- <el-button
|
|
|
- type="warning"
|
|
|
- plain
|
|
|
- v-permission="'recycle:specifiedBooks:batchPauseRecycle'"
|
|
|
- @click="handleOptRecycle()"
|
|
|
- >
|
|
|
- 暂停回收
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- plain
|
|
|
- v-permission="'recycle:specifiedBooks:batchStartRecycle'"
|
|
|
- @click="handleOptRecycle()"
|
|
|
- >
|
|
|
- 开启回收
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- plain
|
|
|
- v-permission="'recycle:specifiedBooks:batchAddDiscount'"
|
|
|
- @click="handleAddDiscount()"
|
|
|
- >
|
|
|
- 指定折扣加回收书单
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- plain
|
|
|
- v-permission="'recycle:specifiedBooks:batchAddSocial'"
|
|
|
- @click="handleOptType(1)"
|
|
|
- >
|
|
|
- 加社科库
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- plain
|
|
|
- v-permission="'recycle:specifiedBooks:batchAddTeach'"
|
|
|
- @click="handleOptType(2)"
|
|
|
- >
|
|
|
- 加教材库
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template #cover="{ row }">
|
|
|
- <el-image
|
|
|
- style="width: 90px; height: 120px; border-radius: 4px"
|
|
|
- fit="cover"
|
|
|
- :src="row.cover"
|
|
|
- />
|
|
|
- </template>
|
|
|
- <template #baseInfo="{ row }">
|
|
|
- <div class="flex justify-start items-center">
|
|
|
- <div style="flex: 2">
|
|
|
- <book-info :row="row"></book-info>
|
|
|
- </div>
|
|
|
- <div style="flex: 1.5; margin-left: 15px">
|
|
|
- <book-other-info :row="row"></book-other-info>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <template #stock="{ row }">
|
|
|
- <book-stock :row="row"></book-stock>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template #action="{ row }">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- link
|
|
|
- v-permission="'recycle:specifiedBooks:updateBook'"
|
|
|
- @click="handleUpdateBook(row)"
|
|
|
- >
|
|
|
- [编辑]
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- color="#192bbe"
|
|
|
- plain
|
|
|
- link
|
|
|
- v-permission="'recycle:specifiedBooks:setParams'"
|
|
|
- @click="handleSetParams(row)"
|
|
|
- >
|
|
|
- [设置独立参数]
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="warning"
|
|
|
- link
|
|
|
- v-permission="'recycle:specifiedBooks:addBlacklist'"
|
|
|
- @click="handleOptBlacklist(row)"
|
|
|
- >
|
|
|
- [加入黑名单]
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- link
|
|
|
- v-permission="'recycle:specifiedBooks:removeBlacklist'"
|
|
|
- @click="handleOptBlacklist(row)"
|
|
|
- >
|
|
|
- [移除黑名单]
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="danger"
|
|
|
- link
|
|
|
- v-permission="'recycle:specifiedBooks:pauseRecycle'"
|
|
|
- @click="handleOptRecycle(row)"
|
|
|
- >
|
|
|
- [暂停回收]
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- link
|
|
|
- v-permission="'recycle:specifiedBooks:startRecycle'"
|
|
|
- @click="handleOptRecycle(row)"
|
|
|
- >
|
|
|
- [开启回收]
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- link
|
|
|
- v-permission="'recycle:specifiedBooks:removeBooklist'"
|
|
|
- @click="handleOptBooklist(row)"
|
|
|
- >
|
|
|
- [移除回收书单]
|
|
|
- </el-button>
|
|
|
- <el-button
|
|
|
- type="danger"
|
|
|
- link
|
|
|
- v-permission="'recycle:specifiedBooks:addBooklist'"
|
|
|
- @click="handleOptBooklist(row)"
|
|
|
- >
|
|
|
- [加入回收书单]
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- </common-table>
|
|
|
-
|
|
|
- <books-edit ref="editRef"></books-edit>
|
|
|
- <set-params ref="paramsRef"></set-params>
|
|
|
- </ele-page>
|
|
|
+ <ele-page flex-table>
|
|
|
+ <book-search @search="reload"></book-search>
|
|
|
+
|
|
|
+ <common-table ref="pageRef" :pageConfig="pageConfig" :columns="columns" :tools="false">
|
|
|
+ <template #toolbar>
|
|
|
+ <el-radio-group @change="handleStatusChange" v-model="searchType">
|
|
|
+ <el-radio-button label="全部" value="0" />
|
|
|
+ <el-radio-button label="已加入回收书单(正在回收)" value="1" />
|
|
|
+ <el-radio-button label="已加入回收书单(暂停回收)" value="2" />
|
|
|
+ </el-radio-group>
|
|
|
+
|
|
|
+ <span class="ml-8"></span>
|
|
|
+ <el-button type="danger" plain v-permission="'recycle:specifiedBooks:batchAddBlacklist'"
|
|
|
+ @click="handleOptBlacklist()">
|
|
|
+ 加黑名单
|
|
|
+ </el-button>
|
|
|
+ <el-button type="warning" plain v-permission="'recycle:specifiedBooks:batchPauseRecycle'"
|
|
|
+ @click="handleOptRecycle(null, 2)">
|
|
|
+ 暂停回收
|
|
|
+ </el-button>
|
|
|
+ <el-button type="warning" plain v-permission="'recycle:specifiedBooks:batchStartRecycle'"
|
|
|
+ @click="handleOptRecycle(null, 1)">
|
|
|
+ 开启回收
|
|
|
+ </el-button>
|
|
|
+ <el-button type="success" plain v-permission="'recycle:specifiedBooks:batchAddSocial'"
|
|
|
+ @click="handleOptType(1)">
|
|
|
+ 加社科库
|
|
|
+ </el-button>
|
|
|
+ <el-button type="primary" plain v-permission="'recycle:specifiedBooks:batchAddTeach'"
|
|
|
+ @click="handleOptType(2)">
|
|
|
+ 加教材库
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template #cover="{ row }">
|
|
|
+ <el-image style="width: 90px; height: 120px; border-radius: 4px" fit="cover" :src="row.cover" />
|
|
|
+ </template>
|
|
|
+ <template #baseInfo="{ row }">
|
|
|
+ <div class="flex justify-start items-center">
|
|
|
+ <div style="flex: 2">
|
|
|
+ <book-info :row="row" @edit="handleUpdateBook" :showFormat="false"></book-info>
|
|
|
+ </div>
|
|
|
+ <div style="flex: 1.5; margin-left: 15px">
|
|
|
+ <book-other-info :row="row" showFormat></book-other-info>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template #stock="{ row }">
|
|
|
+ <book-stock :row="row"></book-stock>
|
|
|
+ </template>
|
|
|
+ <template #view="{ row }">
|
|
|
+ <div class="flex justify-start items-center flex-wrap book-btns">
|
|
|
+ <el-button color="#951d1d" @click="handleViewUrl(row, 'kw')">
|
|
|
+ 查看孔网
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#e99d42" @click="handleRecycleLog(row)">
|
|
|
+ 回收日志
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#f27606" @click="handleViewUrl(row, 'tb')">
|
|
|
+ 查看淘宝
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#0f7dc7" @click="handleSalesLog(row)">
|
|
|
+ 售价日志
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#399420" @click="handleViewUrl(row, 'db')">
|
|
|
+ 查看豆瓣
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#a4adb3" @click="handleViewUrl(row, 'dd')">
|
|
|
+ 查看当当
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template #action="{ row }">
|
|
|
+ <div class="flex justify-start items-center flex-wrap book-btns">
|
|
|
+ <el-button color="#7728f5" v-permission="'recycle:specifiedBooks:updateBook'"
|
|
|
+ @click="handleModifyDiscount(row)">
|
|
|
+ 修改回收折扣
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#333333" v-permission="'recycle:specifiedBooks:addBlacklist'"
|
|
|
+ @click="handleOptBlacklist(row)">
|
|
|
+ 加入黑名单
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#3ab54a" v-permission="'recycle:specifiedBooks:updateBook'"
|
|
|
+ @click="handleModifyMaxRecycle(row)">
|
|
|
+ 修改最大回收量
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#bd3124" v-permission="'recycle:specifiedBooks:pauseRecycle'"
|
|
|
+ @click="handleOptRecycle(row, 2)" v-if="row.recycleStatus == 1">
|
|
|
+ 暂停回收
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#bd3124" v-permission="'recycle:specifiedBooks:startRecycle'"
|
|
|
+ @click="handleOptRecycle(row, 1)" v-else>
|
|
|
+ 开启回收
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#e99d42" v-permission="'recycle:specifiedBooks:updateBook'"
|
|
|
+ @click="handleModifyOrderRecycle(row)">
|
|
|
+ 修改订单回收量
|
|
|
+ </el-button>
|
|
|
+ <el-button color="#4095e5" v-permission="'recycle:booklist:removeBooklist'"
|
|
|
+ @click="handleOptBooklist(row)">
|
|
|
+ 移除回收书单
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </common-table>
|
|
|
+
|
|
|
+ <books-edit ref="editRef"></books-edit>
|
|
|
+ <set-params ref="paramsRef" @refresh="reload"></set-params>
|
|
|
+ <add-discount ref="discountRef" @refresh="reload"></add-discount>
|
|
|
+ <orderRecycleLog ref="recycleLogRef" />
|
|
|
+ <orderSalesLog ref="salesLogRef" />
|
|
|
+ <modifyOrderRecycle ref="orderRecycleRef" @refresh="reload" />
|
|
|
+ <modifyMaxRecycle ref="maxRecycleRef" @refresh="reload" />
|
|
|
+ <modifyDiscount ref="modifyDiscountRef" @refresh="reload" />
|
|
|
+ </ele-page>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
- import { ref, reactive } from 'vue';
|
|
|
- import CommonTable from '@/components/CommonPage/CommonTable.vue';
|
|
|
- import booksEdit from '@/views/data/books/components/books-edit.vue';
|
|
|
- import bookSearch from '@/views/recycle/components/book-search.vue';
|
|
|
- import bookInfo from '@/views/recycle/components/book-info.vue';
|
|
|
- import bookOtherInfo from '@/views/recycle/components/book-other-info.vue';
|
|
|
- import bookStock from '@/views/recycle/components/book-stock.vue';
|
|
|
- import setParams from '@/views/recycle/components/set-params.vue';
|
|
|
- import { useDictData } from '@/utils/use-dict-data';
|
|
|
-
|
|
|
- defineOptions({ name: 'specifiedBookslist' });
|
|
|
- const [useStatusDicts] = useDictData(['use_status']);
|
|
|
-
|
|
|
- const useStatus = ref('1');
|
|
|
- function handleStatusChange(value) {
|
|
|
- pageRef.value.reload({ useStatus: value });
|
|
|
- }
|
|
|
-
|
|
|
- /** 表格列配置 */
|
|
|
- const columns = ref([
|
|
|
- {
|
|
|
- type: 'selection',
|
|
|
- columnKey: 'selection',
|
|
|
- width: 50,
|
|
|
- align: 'center',
|
|
|
- fixed: 'left'
|
|
|
- },
|
|
|
+import { ref, reactive } from 'vue';
|
|
|
+import CommonTable from '@/components/CommonPage/CommonTable.vue';
|
|
|
+import booksEdit from '@/views/data/books/components/books-edit.vue';
|
|
|
+import bookSearch from '@/views/recycle/components/book-search.vue';
|
|
|
+import bookInfo from '@/views/recycle/components/book-info.vue';
|
|
|
+import bookOtherInfo from '@/views/recycle/components/book-other-info.vue';
|
|
|
+import bookStock from '@/views/recycle/components/book-stock.vue';
|
|
|
+import setParams from '@/views/recycle/components/set-params.vue';
|
|
|
+import addDiscount from '@/views/recycle/components/add-discount.vue';
|
|
|
+import orderRecycleLog from '@/views/recycleOrder/detail/order-recycle-log.vue';
|
|
|
+import orderSalesLog from '@/views/recycleOrder/detail/order-sales-log.vue';
|
|
|
+import modifyOrderRecycle from '@/views/recycle/components/modify-order-recycle.vue';
|
|
|
+import modifyMaxRecycle from '@/views/recycle/components/modify-max-recycle.vue';
|
|
|
+import modifyDiscount from '@/views/recycle/components/modify-discount.vue';
|
|
|
+
|
|
|
+defineOptions({ name: 'specifiedBookslist' });
|
|
|
+
|
|
|
+const searchType = ref('0');
|
|
|
+function handleStatusChange(value) {
|
|
|
+ pageRef.value.reload({ searchType: value });
|
|
|
+}
|
|
|
+
|
|
|
+/** 表格列配置 */
|
|
|
+const columns = ref([
|
|
|
{
|
|
|
- label: '图片',
|
|
|
- prop: 'cover',
|
|
|
- width: 120,
|
|
|
- slot: 'cover'
|
|
|
+ type: 'selection',
|
|
|
+ columnKey: 'selection',
|
|
|
+ width: 50,
|
|
|
+ align: 'center',
|
|
|
+ fixed: 'left'
|
|
|
},
|
|
|
{
|
|
|
- label: '信息',
|
|
|
- prop: 'baseInfo',
|
|
|
- width: 540,
|
|
|
- slot: 'baseInfo'
|
|
|
+ label: '图片',
|
|
|
+ prop: 'cover',
|
|
|
+ width: 120,
|
|
|
+ slot: 'cover'
|
|
|
},
|
|
|
{
|
|
|
- label: '回收折扣',
|
|
|
- prop: 'discount',
|
|
|
- sortable: true,
|
|
|
- columnKey: 'discount'
|
|
|
+ label: '信息',
|
|
|
+ prop: 'baseInfo',
|
|
|
+ width: 500,
|
|
|
+ slot: 'baseInfo'
|
|
|
},
|
|
|
- { label: '回收价格', prop: 'price', sortable: true, columnKey: 'price' },
|
|
|
{
|
|
|
- label: '最大回收量',
|
|
|
- prop: 'maxRecycledAmount',
|
|
|
- sortable: true,
|
|
|
- columnKey: 'maxRecycledAmount'
|
|
|
+ label: '回收价格',
|
|
|
+ prop: 'recyclePrice',
|
|
|
+ sortable: true,
|
|
|
+ columnKey: 'recyclePrice',
|
|
|
+ minWidth: 100
|
|
|
},
|
|
|
{
|
|
|
- label: '总回收数量',
|
|
|
- prop: 'totalRecycledAmount',
|
|
|
- sortable: true,
|
|
|
- columnKey: 'totalRecycledAmount'
|
|
|
+ label: '最大回收量',
|
|
|
+ minWidth: 120,
|
|
|
+ prop: 'recycleMax',
|
|
|
+ sortable: true,
|
|
|
+ columnKey: 'recycleMax'
|
|
|
},
|
|
|
{
|
|
|
- label: '当前剩余回收量',
|
|
|
- prop: 'remainingRecycledAmount',
|
|
|
- sortable: true,
|
|
|
- columnKey: 'remainingRecycledAmount'
|
|
|
+ label: '当前剩余回收量',
|
|
|
+ minWidth: 140,
|
|
|
+ prop: 'restRecycleNum',
|
|
|
+ sortable: true,
|
|
|
+ columnKey: 'restRecycleNum'
|
|
|
},
|
|
|
{
|
|
|
- label: '销量',
|
|
|
- prop: 'salesVolume',
|
|
|
- sortable: true,
|
|
|
- columnKey: 'salesVolume'
|
|
|
+ label: '销量',
|
|
|
+ prop: 'salesNum',
|
|
|
+ sortable: true,
|
|
|
+ columnKey: 'salesNum'
|
|
|
},
|
|
|
{
|
|
|
- label: '库存',
|
|
|
- prop: 'stock',
|
|
|
- sortable: true,
|
|
|
- columnKey: 'stock',
|
|
|
- slot: 'stock'
|
|
|
+ label: '查看',
|
|
|
+ prop: 'view',
|
|
|
+ slot: 'view',
|
|
|
+ width: 234,
|
|
|
+ fixed: 'right'
|
|
|
},
|
|
|
{
|
|
|
- columnKey: 'action',
|
|
|
- label: '操作',
|
|
|
- width: 150,
|
|
|
- slot: 'action',
|
|
|
- fixed: 'right'
|
|
|
+ columnKey: 'action',
|
|
|
+ label: '操作',
|
|
|
+ width: 234,
|
|
|
+ slot: 'action',
|
|
|
+ fixed: 'right'
|
|
|
}
|
|
|
- ]);
|
|
|
+]);
|
|
|
|
|
|
- /** 页面组件实例 */
|
|
|
- const pageRef = ref(null);
|
|
|
+/** 页面组件实例 */
|
|
|
+const pageRef = ref(null);
|
|
|
|
|
|
- const pageConfig = reactive({
|
|
|
- pageUrl: '/book/bookInfo/list',
|
|
|
+const pageConfig = reactive({
|
|
|
+ pageUrl: '/book/bookRecycleInfo/designate/pageList',
|
|
|
fileName: '指定图书管理',
|
|
|
- cacheKey: 'specifiedBookslistTable'
|
|
|
- });
|
|
|
+ cacheKey: 'specifiedBookslistTable',
|
|
|
+ rowKey: 'isbn'
|
|
|
+});
|
|
|
|
|
|
- //刷新表格
|
|
|
- function reload(where) {
|
|
|
+//刷新表格
|
|
|
+function reload(where) {
|
|
|
pageRef.value?.reload(where);
|
|
|
- }
|
|
|
-
|
|
|
- //编辑
|
|
|
- const editRef = ref(null);
|
|
|
- function handleUpdateBook(row) {
|
|
|
- editRef.value?.handleOpen(row);
|
|
|
- }
|
|
|
- //设置参数
|
|
|
- const paramsRef = ref(null);
|
|
|
- function handleSetParams(row) {
|
|
|
+}
|
|
|
+
|
|
|
+//编辑
|
|
|
+const editRef = ref(null);
|
|
|
+function handleUpdateBook(row) {
|
|
|
+ let params = {
|
|
|
+ id: row.bookId
|
|
|
+ };
|
|
|
+ editRef.value?.handleOpen(params);
|
|
|
+}
|
|
|
+
|
|
|
+//设置参数
|
|
|
+const paramsRef = ref(null);
|
|
|
+function handleSetParams(row) {
|
|
|
paramsRef.value?.handleOpen(row);
|
|
|
- }
|
|
|
+}
|
|
|
|
|
|
- //回收书单操作
|
|
|
- function handleOptBooklist(row) {
|
|
|
+//黑名单操作
|
|
|
+function handleOptBlacklist(row) {
|
|
|
let selections = row ? [row] : pageRef.value?.getSelections();
|
|
|
- let ids = selections.map((item) => item.id).join(',');
|
|
|
- let url = `/book/bookInfo/removeById/${ids}`;
|
|
|
- let title = row ? '确认移除回收书单?' : '确认加入回收书单?';
|
|
|
- pageRef.value?.operatBatch({ title, method: 'post', url, row });
|
|
|
- }
|
|
|
- //黑名单操作
|
|
|
- function handleOptBlacklist(row) {
|
|
|
- let selections = row ? [row] : pageRef.value?.getSelections();
|
|
|
- let ids = selections.map((item) => item.id).join(',');
|
|
|
- let url = `/book/bookInfo/removeBlacklist/${ids}`;
|
|
|
- let title = row ? '确认移除黑名单?' : '确认加入黑名单?';
|
|
|
- pageRef.value?.operatBatch({ title, method: 'post', url, row });
|
|
|
- }
|
|
|
- //回收操作
|
|
|
- function handleOptRecycle(row) {
|
|
|
+ if (!selections || selections.length === 0) {
|
|
|
+ ElMessage.warning('请选择要操作的图书');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const isbnList = selections.map((item) => item.isbn);
|
|
|
+ const isBlacklist = row ? row.bookStatus === '3' : selections[0].bookStatus === '3';
|
|
|
+
|
|
|
+ const url = isBlacklist
|
|
|
+ ? '/book/bookRecycleInfo/removeBlackList'
|
|
|
+ : '/book/bookRecycleInfo/addBlackList';
|
|
|
+
|
|
|
+ const title = isBlacklist ? '确认移除黑名单?' : '确认加入黑名单?';
|
|
|
+
|
|
|
+ pageRef.value?.operatBatch({
|
|
|
+ title,
|
|
|
+ method: 'post',
|
|
|
+ url,
|
|
|
+ data: { isbnList },
|
|
|
+ row,
|
|
|
+ success: () => {
|
|
|
+ reload();
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+//回收操作
|
|
|
+function handleOptRecycle(row, status) {
|
|
|
let selections = row ? [row] : pageRef.value?.getSelections();
|
|
|
- let ids = selections.map((item) => item.id).join(',');
|
|
|
- let url = `/book/bookInfo/recycle/${ids}`;
|
|
|
- let title = '确认回收?';
|
|
|
- pageRef.value?.operatBatch({ title, method: 'post', url, row });
|
|
|
- }
|
|
|
- //类型操作
|
|
|
- function handleOptType(type) {
|
|
|
+ if (!selections || selections.length === 0) {
|
|
|
+ ElMessage.warning('请选择要操作的图书');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const isbnList = selections.map((item) => item.isbn);
|
|
|
+ const isStop = status === 2;
|
|
|
+
|
|
|
+ const url = isStop
|
|
|
+ ? '/book/bookRecycleInfo/stopRecycle'
|
|
|
+ : '/book/bookRecycleInfo/openRecycle';
|
|
|
+
|
|
|
+ const title = isStop ? '确认暂停回收?' : '确认开启回收?';
|
|
|
+
|
|
|
+ pageRef.value?.operatBatch({
|
|
|
+ title,
|
|
|
+ method: 'post',
|
|
|
+ url,
|
|
|
+ data: { isbnList },
|
|
|
+ row,
|
|
|
+ success: () => {
|
|
|
+ reload();
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+//类型操作
|
|
|
+function handleOptType(type) {
|
|
|
let selections = pageRef.value?.getSelections();
|
|
|
- let ids = selections.map((item) => item.id).join(',');
|
|
|
- let url = `/book/bookInfo/changeType/${ids}`;
|
|
|
- let title = type == 1 ? '确认加社科库?' : '确认加教材库?';
|
|
|
- pageRef.value?.operatBatch({ title, method: 'post', url, row });
|
|
|
- }
|
|
|
- //指定折扣
|
|
|
- function handleAddDiscount(){
|
|
|
-
|
|
|
- }
|
|
|
+ if (!selections || selections.length === 0) {
|
|
|
+ ElMessage.warning('请选择要操作的图书');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const isbnList = selections.map((item) => item.isbn);
|
|
|
+ const url = type == 1
|
|
|
+ ? '/book/bookRecycleInfo/changeBookTag2'
|
|
|
+ : '/book/bookRecycleInfo/changeBookTag1';
|
|
|
+ const title = type == 1 ? '确认加社科库?' : '确认加教材库?';
|
|
|
+
|
|
|
+ pageRef.value?.operatBatch({
|
|
|
+ title,
|
|
|
+ method: 'post',
|
|
|
+ url,
|
|
|
+ data: { isbnList },
|
|
|
+ success: () => {
|
|
|
+ reload();
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+//指定折扣
|
|
|
+const discountRef = ref(null);
|
|
|
+function handleAddDiscount() {
|
|
|
+ let selections = pageRef.value?.getSelections();
|
|
|
+ if (!selections || selections.length === 0) {
|
|
|
+ ElMessage.warning('请选择要操作的图书');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const isbnList = selections.map((item) => item.isbn);
|
|
|
+ discountRef.value?.handleOpen({ isbnList });
|
|
|
+}
|
|
|
+
|
|
|
+//查看当当、淘宝、豆瓣链接
|
|
|
+const handleViewUrl = (row, type) => {
|
|
|
+ let url = '';
|
|
|
+ if (type == 'dd') {
|
|
|
+ url = `https://search.dangdang.com/?key=${row.isbn}&act=input`;
|
|
|
+ } else if (type == 'tb') {
|
|
|
+ url = `https://s.taobao.com/search?page=1&q=${row.isbn}&sort=sale-desc&tab=all`;
|
|
|
+ } else if (type == 'db') {
|
|
|
+ url = `https://search.douban.com/book/subject_search?search_text=${row.isbn}`;
|
|
|
+ } else if (type == 'kw') {
|
|
|
+ url = `https://search.kongfz.com/product_result/?key=${row.isbn}&status=0&_stpmt=eyJzZWFyY2hfdHlwZSI6ImFjdGl2ZSJ9`;
|
|
|
+ }
|
|
|
+ window.open(url, '_blank');
|
|
|
+};
|
|
|
+
|
|
|
+//查看回收日志
|
|
|
+const recycleLogRef = ref();
|
|
|
+const handleRecycleLog = (row) => {
|
|
|
+ recycleLogRef.value?.handleOpen(row);
|
|
|
+};
|
|
|
+
|
|
|
+//移除回收书单操作
|
|
|
+function handleOptBooklist(row) {
|
|
|
+ let selections = row ? [row] : pageRef.value?.getSelections();
|
|
|
+ if (!selections || selections.length === 0) {
|
|
|
+ ElMessage.warning('请选择要操作的图书');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const isbnList = selections.map((item) => item.isbn);
|
|
|
+ const url = '/book/bookRecycleInfo/removeOut';
|
|
|
+ const title = '确认移除回收书单?';
|
|
|
+
|
|
|
+ pageRef.value?.operatBatch({
|
|
|
+ title,
|
|
|
+ method: 'post',
|
|
|
+ url,
|
|
|
+ data: { isbnList },
|
|
|
+ row,
|
|
|
+ success: () => {
|
|
|
+ reload();
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+//查看售价日志
|
|
|
+const salesLogRef = ref();
|
|
|
+const handleSalesLog = (row) => {
|
|
|
+ salesLogRef.value?.handleOpen(row);
|
|
|
+};
|
|
|
+
|
|
|
+//修改订单回收量
|
|
|
+const orderRecycleRef = ref();
|
|
|
+const handleModifyOrderRecycle = (row) => {
|
|
|
+ orderRecycleRef.value?.handleOpen(row);
|
|
|
+};
|
|
|
+
|
|
|
+//修改最大回收量
|
|
|
+const maxRecycleRef = ref();
|
|
|
+const handleModifyMaxRecycle = (row) => {
|
|
|
+ maxRecycleRef.value?.handleOpen(row);
|
|
|
+};
|
|
|
+
|
|
|
+//修改回收折扣
|
|
|
+const modifyDiscountRef = ref();
|
|
|
+const handleModifyDiscount = (row) => {
|
|
|
+ modifyDiscountRef.value?.handleOpen(row);
|
|
|
+};
|
|
|
</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.book-btns {
|
|
|
+ gap: 6px;
|
|
|
+ .el-button {
|
|
|
+ min-width: 100px;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #ffffff;
|
|
|
+ padding: 4px 6px;
|
|
|
+ margin-right: 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|