index.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <template>
  2. <order-page ref="pageRef" :pageConfig="pageConfig">
  3. <template #toolbar>
  4. <el-radio-group @change="handleStatusChange" v-model="useStatus">
  5. <el-radio-button label="待处理订单" value="1" />
  6. <el-radio-button label="历史异常签收" value="2" />
  7. </el-radio-group>
  8. </template>
  9. <template #action="{ row }">
  10. <div>
  11. <el-button type="primary" link v-permission="'recycleLogistics:abnormalSign:agree'"
  12. @click="handleAgree(row)">
  13. [同意]
  14. </el-button>
  15. <el-button type="danger" link v-permission="'recycleLogistics:abnormalSign:reject'"
  16. @click="handleReject(row)">
  17. [驳回]
  18. </el-button>
  19. <el-button type="success" link v-permission="'recycleLogistics:abnormalSign:detail'"
  20. @click="toOrderDetail(row)">
  21. [订单详情]
  22. </el-button>
  23. <el-button type="warning" link v-permission="'recycleLogistics:abnormalSign:log'"
  24. @click="openOrderLog(row)">
  25. [订单日志]
  26. </el-button>
  27. <el-button type="danger" link v-permission="'recycleLogistics:abnormalSign:cancel'"
  28. @click="handleCancelOrder(row)">
  29. [取消订单]
  30. </el-button>
  31. <el-button type="primary" link v-permission="'recycleLogistics:abnormalSign:fallback'"
  32. @click="fallbackOrder(row)">
  33. [回退状态]
  34. </el-button>
  35. <el-button type="success" link v-permission="'recycleLogistics:abnormalSign:receive'"
  36. @click="handleLogisticsSigning(row)">
  37. [物流签收]
  38. </el-button>
  39. <el-button type="warning" link v-permission="'recycleLogistics:abnormalSign:userTag'"
  40. @click="openEditUserTag(row)">
  41. [用户标签]
  42. </el-button>
  43. <el-button type="danger" link v-permission="'recycleLogistics:abnormalSign:interception'"
  44. @click="applyForInterception(row)">
  45. [申请拦截退回]
  46. </el-button>
  47. </div>
  48. </template>
  49. <component :is="orderLog" ref="orderLogRef" />
  50. <component :is="orderDetail" ref="orderDetailRef" @refresh="pageRef.value?.reload()" />
  51. <userBindTag ref="userTagRef" />
  52. </order-page>
  53. </template>
  54. <script setup>
  55. import { ref, reactive, getCurrentInstance } from 'vue';
  56. import { ElMessageBox } from 'element-plus/es';
  57. import { EleMessage } from 'ele-admin-plus/es';
  58. import OrderPage from '@/views/recycleLogistics/components/order-page.vue';
  59. import { useRouter } from 'vue-router';
  60. import { useOrderOperation } from '@/utils/use-order-operation';
  61. //用户标签
  62. import userBindTag from '@/views/recycleOrder/components/user-bind-tag.vue';
  63. defineOptions({ name: 'abnormalSign' });
  64. let router = useRouter();
  65. const { proxy } = getCurrentInstance();
  66. /** 页面组件实例 */
  67. const pageRef = ref(null);
  68. //用户标签
  69. const userTagRef = ref(null);
  70. const useStatus = ref('1');
  71. function handleStatusChange() {
  72. pageRef.value.reload({ useStatus: useStatus.value });
  73. }
  74. const pageConfig = reactive({
  75. pageUrl: '/order/orderInfo/exceptionOrderList',
  76. exportUrl: '/order/orderInfo/exceptionOrderExport',
  77. fileName: '路由异常签收',
  78. cacheKey: 'abnormalSignTable',
  79. params: { status: '1' }
  80. });
  81. //用户绑定标签
  82. function openEditUserTag(row) {
  83. userTagRef.value?.handleOpen(row);
  84. }
  85. // 同意异常签收
  86. function handleAgree(row) {
  87. ElMessageBox.confirm('确认同意异常签收?', '提示', {
  88. confirmButtonText: '确定',
  89. cancelButtonText: '关闭',
  90. type: 'warning'
  91. }).then(() => {
  92. proxy.$http.post(`/order/orderInfo/agreeAbnormalSign/${row.orderId}`).then((res) => {
  93. if (res.data.code === 200) {
  94. EleMessage.success('操作成功');
  95. pageRef.value?.reload();
  96. } else {
  97. EleMessage.error(res.data.msg);
  98. }
  99. });
  100. });
  101. }
  102. // 驳回异常签收
  103. function handleReject(row) {
  104. ElMessageBox.confirm('确认驳回异常签收?', '提示', {
  105. confirmButtonText: '确定',
  106. cancelButtonText: '关闭',
  107. type: 'warning'
  108. }).then(() => {
  109. proxy.$http.post(`/order/orderInfo/rejectAbnormalSign/${row.orderId}`).then((res) => {
  110. if (res.data.code === 200) {
  111. EleMessage.success('操作成功');
  112. pageRef.value?.reload();
  113. } else {
  114. EleMessage.error(res.data.msg);
  115. }
  116. });
  117. });
  118. }
  119. const {
  120. handleCancelOrder,
  121. applyForInterception,
  122. handleLogisticsSigning,
  123. fallbackOrder,
  124. toOrderDetail,
  125. openOrderLog,
  126. orderLogRef,
  127. orderDetailRef,
  128. orderLog,
  129. orderDetail
  130. } = useOrderOperation(pageRef);
  131. </script>