operate.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <template>
  2. <div class="app-list-content">
  3. <cl-crud class="liu-crud-wrap" @load="onLoad">
  4. <template #table-column-addTime="{scope}">
  5. <span>{{ scope.row.addTime | formatTime }}</span>
  6. </template>
  7. <!-- search -->
  8. <template #slot-sel-serch="{scope}">
  9. <el-form :inline="true" :model="form" class="demo-form-inline">
  10. <el-form-item label="员工">
  11. <el-select
  12. v-model="form.adminId"
  13. size="mini"
  14. placeholder="请选择"
  15. style="width: 150px;"
  16. :clearable="true"
  17. >
  18. <el-option
  19. v-for="(item, index) in staffList"
  20. :key="index"
  21. :label="item.adminName"
  22. :value="item.id"
  23. >{{ item.adminName }}</el-option
  24. >
  25. </el-select>
  26. </el-form-item>
  27. <el-form-item label="日期">
  28. <el-date-picker
  29. type="date"
  30. placeholder="选择开始日期"
  31. v-model="form.startTime"
  32. value-format="yyyy-MM-dd"
  33. style="width: 150px;"
  34. size="mini"
  35. ></el-date-picker>
  36. <span class="picker-separate">-</span>
  37. <el-date-picker
  38. type="date"
  39. placeholder="选择结束日期"
  40. v-model="form.endTime"
  41. value-format="yyyy-MM-dd"
  42. style="width: 150px;"
  43. size="mini"
  44. ></el-date-picker>
  45. </el-form-item>
  46. <el-form-item label="">
  47. <el-button type="primary" size="mini" @click="serchFn">确认</el-button>
  48. </el-form-item>
  49. </el-form>
  50. </template>
  51. </cl-crud>
  52. </div>
  53. </template>
  54. <script>
  55. export default {
  56. data() {
  57. return {
  58. // cl-crud
  59. app: null,
  60. // ======
  61. staffList: [],
  62. form: {
  63. adminId: '',
  64. startTime: '',
  65. endTime: ''
  66. }
  67. };
  68. },
  69. mounted() {
  70. this.getStaff();
  71. },
  72. methods: {
  73. // api
  74. getStaff() {
  75. this.$service.staff.list().then(res => {
  76. this.staffList = res.list;
  77. });
  78. },
  79. // operate
  80. serchFn() {
  81. this.app.refresh(this.form);
  82. },
  83. // crud
  84. onLoad({ ctx, app }) {
  85. this.app = app;
  86. let logHost = () => {
  87. return this.$service.single.log(this.form);
  88. };
  89. ctx.service({
  90. page: logHost
  91. })
  92. .set('table', {
  93. columns: [
  94. {
  95. prop: 'id',
  96. label: 'ID',
  97. align: 'center'
  98. },
  99. {
  100. prop: 'adminName',
  101. label: '操作者',
  102. align: 'center'
  103. },
  104. {
  105. prop: 'addTime',
  106. label: '操作日期',
  107. align: 'center'
  108. },
  109. {
  110. prop: 'ip',
  111. label: 'IP地址',
  112. align: 'center'
  113. },
  114. {
  115. prop: 'content',
  116. label: '操作记录',
  117. align: 'center',
  118. emptyText: '无'
  119. }
  120. ],
  121. // 操作列
  122. op: {
  123. visible: false, // 是否显示
  124. // 同 element-ui Table-column Attributes
  125. props: {
  126. width: 150,
  127. align: 'center',
  128. fixed: 'right',
  129. label: '操作'
  130. },
  131. // 布局,请移步 `layout`
  132. layout: []
  133. }
  134. })
  135. .set('layout', [
  136. ['slot-tabs'],
  137. ['slot-sel-serch', 'flex1', 'refresh-btn'],
  138. ['data-table'],
  139. ['flex1', 'pagination']
  140. ])
  141. .done();
  142. app.refresh(this.form);
  143. }
  144. }
  145. };
  146. </script>
  147. <style lang="scss" scoped>
  148. .demo-form-inline {
  149. .el-form-item {
  150. margin-bottom: 0;
  151. }
  152. /deep/.el-form-item__label {
  153. line-height: 28px !important;
  154. }
  155. /deep/.el-form-item__content {
  156. line-height: 28px;
  157. }
  158. .picker-separate {
  159. display: inline-block;
  160. margin: 0 10px;
  161. }
  162. }
  163. </style>