table.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <scTable ref="table" :apiObj="list.apiObj" :params="searchKey" @selectionChange="selectionChange" row-key="id">
  3. <el-table-column type="selection" width="50" fixed="left"></el-table-column>
  4. <el-table-column label="组织ID" width="300" prop="id" fixed="left">
  5. <template #default="scope">
  6. {{ scope.row.account_id?scope.row.account_id:'-' }}
  7. </template>
  8. </el-table-column>
  9. <el-table-column label="组织名称" prop="category_id">
  10. <template #default="scope">
  11. {{ scope.row.account_name?scope.row.account_name:'-' }}
  12. </template>
  13. </el-table-column>
  14. <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
  15. <el-table-column label="操作" width="200" align="left" fixed="right">
  16. <template #default="scope">
  17. <el-button-group>
  18. <el-button type="danger" text size="small" @click="table_close(scope.row)">同步账户</el-button>
  19. </el-button-group>
  20. </template>
  21. </el-table-column>
  22. </scTable>
  23. </template>
  24. <script>
  25. export default {
  26. data(){
  27. return {
  28. list: {
  29. apiObj: this.$API.account.group
  30. },
  31. dataSelect:[],
  32. dataSelectFull:[],
  33. searchKey:{}
  34. }
  35. },
  36. methods: {
  37. table_close(data){
  38. this.$confirm(`发起同步后,预计1-2分钟后数据会自动更新,可在账户列表中查看`, '提示', {
  39. type: 'warning'
  40. }).then(async ()=>{
  41. var loading = this.$loading()
  42. var resp = await this.$API.account.sync.post({"id":data.account_id});
  43. loading.close();
  44. if (resp.code == 0) {
  45. return this.$message.error(resp.msg);
  46. }
  47. this.$message.success(resp.msg);
  48. this.$emit("success");
  49. }).catch(()=>{})
  50. },
  51. refresh(){
  52. this.$refs.table.refresh()
  53. },
  54. upData(data){
  55. this.$refs.table.upData(data)
  56. },
  57. handleSuccess(){
  58. this.$refs.table.refresh()
  59. },
  60. sortChange(event){
  61. if (event.order) {
  62. var data = {
  63. "field":event.prop,
  64. "order":event.order
  65. }
  66. this.$refs.table.upData(data)
  67. } else {
  68. this.$refs.table.reload(this.searchKey)
  69. }
  70. return ;
  71. },
  72. selectionChange(event){
  73. this.dataSelect = [];
  74. var arr = [];
  75. var arrCompany = [];
  76. event.forEach(function(val,index){
  77. arr[index] = val.id;
  78. arrCompany[index] = val;
  79. });
  80. this.dataSelectFull = arrCompany;
  81. this.dataSelect = arr;
  82. this.$emit("success",this.dataSelect);
  83. this.$emit("successFull",this.dataSelectFull);
  84. },
  85. table_passwd(row){
  86. this.$nextTick(() => {
  87. this.$refs.userPasswd.open("edit").setData(row)
  88. })
  89. }
  90. }
  91. }
  92. </script>
  93. <style>
  94. .goods-img{display: flex;gap: 5px;}
  95. .goods-img .name span{display: block;}
  96. .goods-img .name span.dec{color: #999;font-size: 12px;}
  97. .goods-price,.price{display: flex;align-items: center;gap: 5px;font-size: 14px;}
  98. .goods-price .del{text-decoration: line-through;}
  99. .goods-price span{background-color: #fff !important;
  100. border: 1px solid #d3d9e0 !important;
  101. border-radius: 4px;
  102. box-sizing: border-box;
  103. color: #6c737a !important;
  104. display: inline-flex;
  105. flex: none;
  106. font-size: 12px;
  107. line-height: 18px !important;
  108. padding: 1px 6px !important;text-decoration: none;}
  109. .flex{display: flex;align-items: center;gap: 5px;}
  110. </style>