index.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <template>
  2. <order-page ref="pageRef" :pageConfig="pageConfig">
  3. <template #toolbar>
  4. <el-button
  5. type="warning"
  6. plain
  7. class="ele-btn-icon"
  8. v-permission="'recycleOrder:search:batchAudit'"
  9. @click="handleBatchAudit"
  10. >
  11. 批量初审
  12. </el-button>
  13. <el-button
  14. type="success"
  15. plain
  16. class="ele-btn-icon"
  17. :icon="DownloadOutlined"
  18. v-permission="'recycleOrder:search:batchAuditComplete'"
  19. @click="handleBatchAuditComplete"
  20. >
  21. 批量审核完成
  22. </el-button>
  23. </template>
  24. <template #action="{ row }">
  25. <div>
  26. <el-button
  27. type="success"
  28. link
  29. v-permission="'recycleOrder:search:detail'"
  30. @click="toOrderDetail(row)"
  31. >
  32. [订单详情]
  33. </el-button>
  34. <el-button
  35. type="warning"
  36. link
  37. v-permission="'recycleOrder:search:log'"
  38. @click="openOrderLog(row)"
  39. >
  40. [订单日志]
  41. </el-button>
  42. <el-button
  43. type="danger"
  44. link
  45. v-permission="'recycleOrder:search:cancel'"
  46. @click="cancelOrder(row)"
  47. >
  48. [取消订单]
  49. </el-button>
  50. <el-button
  51. type="primary"
  52. link
  53. v-permission="'recycleOrder:search:fallback'"
  54. @click="fallbackOrder(row)"
  55. >
  56. [回退状态]
  57. </el-button>
  58. <el-button
  59. type="success"
  60. link
  61. v-permission="'recycleOrder:search:materialPickup'"
  62. @click="materialPickup(row)"
  63. >
  64. [确认收货]
  65. </el-button>
  66. <el-button
  67. type="warning"
  68. link
  69. v-permission="'recycleOrder:search:userTag'"
  70. @click="openEditUserTag(row)"
  71. >
  72. [用户标签]
  73. </el-button>
  74. <el-button
  75. type="success"
  76. link
  77. v-permission="'recycleOrder:search:sendSMS'"
  78. @click="handleSendSMS(row)"
  79. >
  80. [推送短信]
  81. </el-button>
  82. <el-button
  83. type="info"
  84. link
  85. v-permission="'recycleOrder:search:smsLog'"
  86. @click="handleSmsLog(row)"
  87. >
  88. [短信记录]
  89. </el-button>
  90. </div>
  91. </template>
  92. <order-log ref="orderLogRef" />
  93. <userBindTag ref="userTagRef" />
  94. <audit-screenshot ref="auditScreenshotRef"></audit-screenshot>
  95. <afterSalesPayment ref="paymentRef" />
  96. <applyforOrderClaim ref="claimRef"></applyforOrderClaim>
  97. <sendSMS ref="smsRef"></sendSMS>
  98. <orderSmsLog ref="smsLogRef"></orderSmsLog>
  99. </order-page>
  100. </template>
  101. <script setup>
  102. import { ref, reactive } from 'vue';
  103. import { ElMessageBox } from 'element-plus/es';
  104. import { EleMessage } from 'ele-admin-plus/es';
  105. import { DownloadOutlined } from '@/components/icons';
  106. import OrderPage from '@/views/recycleOrder/components/order-page.vue';
  107. import { useDictData } from '@/utils/use-dict-data';
  108. import { useRouter } from 'vue-router';
  109. //订单日志
  110. import orderLog from '@/views/recycleOrder/components/order-log.vue';
  111. //用户标签
  112. import userBindTag from '@/views/recycleOrder/components/user-bind-tag.vue';
  113. //推送短信
  114. import sendSMS from '@/views/recycleOrder/components/send-SMS.vue';
  115. //短信记录
  116. import orderSmsLog from '@/views/recycleOrder/components/order-sms-log.vue'
  117. defineOptions({ name: 'recycleOrderAwaitAudit' });
  118. let router = useRouter();
  119. /** 页面组件实例 */
  120. const pageRef = ref(null);
  121. const pageConfig = reactive({
  122. pageUrl: '',
  123. exportUrl: '',
  124. fileName: '待审核订单',
  125. cacheKey: 'awaitAuditTable'
  126. });
  127. //批量初审
  128. function handleBatchAudit() {
  129. pageRef.value?.operatBatch({
  130. title: '确认批量初审?',
  131. url: '/recycleOrder/batchAudit'
  132. });
  133. }
  134. //批量审核完成
  135. function handleBatchAuditComplete() {
  136. pageRef.value?.operatBatch({
  137. title: '确认批量审核完成?',
  138. url: '/recycleOrder/batchAudit'
  139. });
  140. }
  141. //订单详情
  142. function toOrderDetail(row) {
  143. router.push({ path: '/recycleOrder/detail', query: { id: row.postId } });
  144. }
  145. //订单日志
  146. const orderLogRef = ref(null);
  147. function openOrderLog(row) {
  148. console.log(row, orderLogRef.value, 'row');
  149. orderLogRef.value?.handleOpen(row);
  150. }
  151. //用户绑定标签
  152. const userTagRef = ref(null);
  153. function openEditUserTag(row) {
  154. userTagRef.value?.handleOpen(row);
  155. }
  156. function messageBoxConfirm({ message, url, row }) {
  157. ElMessageBox.confirm(message, '提示', {
  158. confirmButtonText: '确定',
  159. cancelButtonText: '关闭',
  160. type: 'warning'
  161. }).then(() => {
  162. console.log(row, 'row');
  163. });
  164. }
  165. //取消订单
  166. function cancelOrder(row) {
  167. messageBoxConfirm({ message: '确认取消?', url: '', row });
  168. }
  169. //回退状态
  170. function fallbackOrder(row) {
  171. messageBoxConfirm({ message: '确认回退状态?', url: '', row });
  172. }
  173. //物流揽件
  174. function materialPickup(row) {
  175. messageBoxConfirm({ message: '确认物流揽件?', url: '', row });
  176. }
  177. //短信记录
  178. const smsLogRef = ref(null);
  179. function handleSmsLog(row) {
  180. smsLogRef.value?.handleOpen(row);
  181. }
  182. //推送短信
  183. const smsRef = ref(null);
  184. function handleSendSMS(row) {
  185. smsRef.value?.handleOpen(row);
  186. }
  187. </script>