index.html 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. {include file="/shopro/common/script" /}
  2. <div id="index" class="customer-service-index panel panel-default panel-intro" v-cloak>
  3. <el-container class="panel-block">
  4. <el-header class="sa-header">
  5. <div class="sa-title sa-flex sa-row-between">
  6. <div class="sa-title-left">
  7. <div class="left-name">客服管理</div>
  8. <sa-filter-condition v-model="state.filter" @filter-delete="onChangeFilter">
  9. </sa-filter-condition>
  10. </div>
  11. <div class="sa-title-right">
  12. <el-button class="sa-button-refresh" icon="RefreshRight" @click="getData"></el-button>
  13. <el-button class="sa-button-refresh" icon="Search" @click="onOpenFilter"></el-button>
  14. {if $auth->check('shopro/chat/customer_service/add')}
  15. <el-button icon="Plus" type="primary" @click="onAdd">添加</el-button>
  16. {/if}
  17. </div>
  18. </div>
  19. </el-header>
  20. <el-main class="sa-main">
  21. <el-table height="100%" class="sa-table" :data="state.data" stripe @selection-change="onChangeSelection"
  22. @sort-change="onChangeSort">
  23. <el-table-column type="selection" width="48"></el-table-column>
  24. <el-table-column prop="id" label="ID" min-width="90" sortable="custom"> </el-table-column>
  25. <el-table-column label="客服名称" min-width="180">
  26. <template #default="scope">
  27. <div class="sa-flex">
  28. <el-avatar class="mr-2" :size="32" :src="Fast.api.cdnurl(scope.row.avatar)">
  29. <img src="/assets/addons/shopro/img/default-avatar.png" />
  30. </el-avatar>
  31. <div class="sa-table-line-1">
  32. {{ scope.row.name || '-' }}
  33. </div>
  34. </div>
  35. </template>
  36. </el-table-column>
  37. <el-table-column label="所属管理员" min-width="100">
  38. <template #default="scope">
  39. <div class="sa-table-line-1">
  40. {{ scope.row.auth_model?.username || '-' }}
  41. </div>
  42. </template>
  43. </el-table-column>
  44. <el-table-column label="客服分类" min-width="100">
  45. <template #default="scope">
  46. <div class="sa-table-line-1">
  47. {{ scope.row.room_name || '-' }}
  48. </div>
  49. </template>
  50. </el-table-column>
  51. <el-table-column label="最优接待人数" min-width="120">
  52. <template #default="scope">
  53. <div class="sa-table-line-1">
  54. {{ scope.row.max_num || 0 }}
  55. </div>
  56. </template>
  57. </el-table-column>
  58. <el-table-column label="状态" min-width="70">
  59. <template #default="scope">
  60. <el-tag :type="scope.row.status == 'online' ? 'success' : 'info'">
  61. {{ scope.row.status_text }}
  62. </el-tag>
  63. </template>
  64. </el-table-column>
  65. <el-table-column label="上次服务时间" width="172">
  66. <template #default="scope">
  67. {{ scope.row.last_time || '-' }}
  68. </template>
  69. </el-table-column>
  70. <el-table-column label="更新时间" width="172">
  71. <template #default="scope">
  72. {{ scope.row.updatetime || '-' }}
  73. </template>
  74. </el-table-column>
  75. <el-table-column fixed="right" label="操作" min-width="120">
  76. <template #default="scope">
  77. {if $auth->check('shopro/chat/customer_service/edit')}
  78. <el-button type="primary" link @click="onEdit(scope.row.id)">编辑</el-button>
  79. {/if}
  80. <el-popconfirm width="fit-content" confirm-button-text="确认" cancel-button-text="取消"
  81. title="确认删除这条记录?" @confirm="onDelete(scope.row.id)">
  82. <template #reference>
  83. {if $auth->check('shopro/chat/customer_service/delete')}
  84. <el-button type="danger" link>删除</el-button>
  85. {/if}
  86. </template>
  87. </el-popconfirm>
  88. </template>
  89. </el-table-column>
  90. </el-table>
  91. </el-main>
  92. <el-footer class="sa-footer sa-flex sa-row-between sa-flex-wrap">
  93. <div class="sa-batch sa-flex">
  94. <div class="tip">
  95. 已选择 <span>{{batchHandle.data.length}}</span> 项</div>
  96. <div class="sa-flex">
  97. {if $auth->check('shopro/chat/customer_service/delete')}
  98. <el-button type="danger" :disabled="!batchHandle.data.length" @click="onBatchHandle('delete')">删除
  99. </el-button>
  100. {/if}
  101. </div>
  102. </div>
  103. <sa-pagination v-model="pagination" @pagination-change="getData"></sa-pagination>
  104. </el-footer>
  105. </el-container>
  106. <sa-filter v-model="state.filter" @filter-change="onChangeFilter"></sa-filter>
  107. </div>