index.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <template>
  2. <div class="desc-wrap-BasicTable">
  3. <BasicTable @register="registerTable"> </BasicTable>
  4. </div>
  5. </template>
  6. <script lang="ts">
  7. import { defineComponent, onMounted } from 'vue';
  8. import {
  9. BasicTable,
  10. useTable,
  11. TableAction,
  12. BasicColumn,
  13. TableImg,
  14. FormProps,
  15. } from '/@/components/Table';
  16. import { useI18n } from '/@/hooks/web/useI18n';
  17. import { usePermissionStore } from '/@/store/modules/permission';
  18. import { dincrementList, cameraIncrementLog } from '/@/api/equity';
  19. export default defineComponent({
  20. components: {
  21. BasicTable,
  22. TableAction,
  23. TableImg,
  24. },
  25. setup() {
  26. const { t } = useI18n();
  27. const permissionStore = usePermissionStore();
  28. const { getCheckPerm } = permissionStore;
  29. onMounted(() => {
  30. // console.log(router.currentRoute.value.params.id);
  31. });
  32. const columns: BasicColumn[] = [
  33. {
  34. title: t('routes.equity.operationType'),
  35. dataIndex: 'operationType',
  36. width: 80,
  37. customRender: ({ record }) => {
  38. return t(`routes.equity.operation.${record.operationType || 0}`);
  39. },
  40. },{
  41. title: t('routes.device.snCode'),
  42. dataIndex: 'snCode',
  43. width: 100,
  44. },
  45. {
  46. title: t('routes.equity.operationUserName'),
  47. dataIndex: 'operationUserName',
  48. ellipsis: false,
  49. width: 120,
  50. customRender: ({ record }) => {
  51. return record.operationUserName || t('routes.equity.platform');
  52. },
  53. },
  54. {
  55. title: t('routes.equity.operationTime'),
  56. dataIndex: 'createTime',
  57. width: 180,
  58. },
  59. {
  60. title: t('routes.equity.Type'),
  61. dataIndex: 'validTimeType',
  62. width: 180,
  63. customRender({ record }) {
  64. if(record.validTimeType==2 || record.validTimeType==3){
  65. return '-'
  66. }
  67. return record.validTimeType==0 ?t('routes.equity.equityType.0'):record.validTimeType==1? t('routes.equity.equityType.3') : '-';
  68. },
  69. },
  70. {
  71. title: t('routes.equity.incrementId'),
  72. dataIndex: 'incrementId',
  73. width: 180,
  74. customRender({ record }) {
  75. if(record.validTimeType==2 || record.validTimeType==3){
  76. return '-'
  77. }
  78. return record.incrementId ? record.incrementId : '-';
  79. },
  80. },
  81. ];
  82. const searchForm: Partial<FormProps> = {
  83. labelWidth: 120,
  84. autoAdvancedLine: 1,
  85. actionColOptions: {
  86. span: 24,
  87. },
  88. schemas: [
  89. {
  90. field: 'operationType',
  91. component: 'Select',
  92. label: t('routes.equity.operationType'),
  93. colProps: {
  94. xl: 7,
  95. xxl: 7,
  96. },
  97. componentProps: {
  98. options: [
  99. {
  100. label: t('routes.equity.operation.0'),
  101. value: 0,
  102. key: '0',
  103. },{
  104. label: t('routes.equity.operation.1'),
  105. value: 1,
  106. key: '1',
  107. },{
  108. label: t('routes.equity.operation.2'),
  109. value: 2,
  110. key: '2',
  111. },{
  112. label: t('routes.equity.operation.3'),
  113. value: 3,
  114. key: '3',
  115. }
  116. ],
  117. },
  118. },{
  119. field: 'snCode',
  120. component: 'Input',
  121. label: t('routes.device.snCode'),
  122. colProps: {
  123. xl: 7,
  124. xxl: 7,
  125. },
  126. },
  127. {
  128. field: 'incrementTypeId',
  129. component: 'ApiSelect',
  130. label: t('routes.equity.Type'),
  131. componentProps: {
  132. maxLength: 50,
  133. api: async function () {
  134. const list = await dincrementList();
  135. return list.map((ele) => {
  136. return { name: t(`routes.finance.equityType.${ele.validTimeType}`), value: ele.id };
  137. });
  138. },
  139. numberToString: true,
  140. labelField: 'name',
  141. valueField: 'value',
  142. immediate: true,
  143. },
  144. colProps: {
  145. xl: 7,
  146. xxl: 7,
  147. },
  148. },
  149. {
  150. field: 'operationUserName',
  151. component: 'Input',
  152. label: t('routes.equity.operationUserName'),
  153. colProps: {
  154. xl: 7,
  155. xxl: 7,
  156. },
  157. },
  158. {
  159. field: 'timeList',
  160. label: t('routes.equity.operationTime'),
  161. component: 'RangePicker',
  162. componentProps: {
  163. maxLength: 100,
  164. format: 'YYYY-MM-DD',
  165. valueFormat: 'YYYY-MM-DD',
  166. showTime: true,
  167. },
  168. colProps: {
  169. xl: 7,
  170. xxl: 7,
  171. },
  172. },
  173. ],
  174. };
  175. const [registerTable, { reload }] = useTable({
  176. api: cameraIncrementLog,
  177. columns: columns,
  178. useSearchForm: true,
  179. formConfig: searchForm,
  180. showTableSetting: true,
  181. showIndexColumn: false,
  182. rowKey: 'id',
  183. beforeFetch: (T) => {
  184. if (T.ctivated) {
  185. T.activatedStartTime = T.ctivated[0];
  186. T.activatedEndTime = T.ctivated[1];
  187. }
  188. return T;
  189. },
  190. fetchSetting: {
  191. pageField: 'pageNum',
  192. sizeField: 'pageSize',
  193. listField: 'list',
  194. totalField: 'total',
  195. },
  196. canResize: false,
  197. });
  198. return {
  199. registerTable,
  200. reload,
  201. getCheckPerm,
  202. };
  203. },
  204. });
  205. </script>
  206. <style lang="less" scoped>
  207. .desc-wrap-BasicTable {
  208. background-color: #f0f2f5;
  209. .vben-basic-table-form-container {
  210. padding: 0;
  211. }
  212. }
  213. </style>