index.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <template>
  2. <div class="mainContentBox">
  3. <avue-crud
  4. ref="crudRef"
  5. v-model:search="search"
  6. v-model="form"
  7. :data="data"
  8. :option="option"
  9. v-model:page="page"
  10. @row-save="createRow"
  11. @row-update="updateRow"
  12. @row-del="deleteRow"
  13. @search-change="searchChange"
  14. @search-reset="resetChange"
  15. @size-change="dataList"
  16. @current-change="dataList"
  17. @selection-change="selectionChange"
  18. >
  19. <template #menu-left="{ size }">
  20. <el-button
  21. :disabled="toDeleteIds.length < 1"
  22. type="danger"
  23. icon="el-icon-delete"
  24. :size="size"
  25. @click="multipleDelete"
  26. >删除</el-button
  27. >
  28. </template>
  29. </avue-crud>
  30. </div>
  31. </template>
  32. <script setup>
  33. import { ref, getCurrentInstance } from "vue";
  34. import { useCrud } from "@/hooks/userCrud";
  35. import ButtonPermKeys from "@/common/configs/buttonPermission";
  36. import { useCommonStoreHook } from "@/store";
  37. import dictDataUtil from "@/common/configs/dictDataUtil";
  38. const { isShowTable, tableType } = toRefs(useCommonStoreHook());
  39. const test = () => {
  40. isShowTable.value = true;
  41. tableType.value = tableType.value == 1 ? 2 : 1;
  42. };
  43. // 传入一个url,后面不带/
  44. const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
  45. useCrud({
  46. src: "/api/v1/device",
  47. });
  48. const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
  49. const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
  50. const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
  51. // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
  52. // const permission = reactive({
  53. // delBtn: checkPerm(buttonPermission.PLAN.BTNS.order_del),
  54. // addBtn: checkPerm(buttonPermission.PLAN.BTNS.order_add),
  55. // editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
  56. // menu: true,
  57. // });
  58. const crudRef = ref(null); //crudRef.value 获取avue-crud对象
  59. // 设置表格列或者其他自定义的option
  60. option.value = Object.assign(option.value, {
  61. delBtn: false,
  62. selection: true,
  63. column: [
  64. {
  65. label: "设备编号",
  66. prop: "deviceNo",
  67. search: true,
  68. rules: [
  69. {
  70. required: true,
  71. message: "设备编号不能为空",
  72. trigger: "trigger",
  73. },
  74. ],
  75. },
  76. {
  77. label: "设备名称",
  78. prop: "deviceName",
  79. search: true,
  80. rules: [
  81. {
  82. required: true,
  83. message: "设备名称不能为空",
  84. trigger: "trigger",
  85. },
  86. ],
  87. },
  88. {
  89. label: "设备类型",
  90. prop: "deviceType",
  91. type: "select",
  92. search: true,
  93. dicUrl:
  94. dictDataUtil.request_url +
  95. dictDataUtil.TYPE_CODE.device_type,
  96. props: {
  97. label: "dictLabel",
  98. value: "dictValue",
  99. },
  100. rules: [
  101. {
  102. required: true,
  103. message: "设备类型不能为空",
  104. trigger: "trigger",
  105. },
  106. ],
  107. },
  108. {
  109. label: "设备状态",
  110. prop: "state",
  111. type: "select",
  112. search: true,
  113. dicUrl:
  114. dictDataUtil.request_url +
  115. dictDataUtil.TYPE_CODE.device_status,
  116. props: {
  117. label: "dictLabel",
  118. value: "dictValue",
  119. },
  120. rules: [
  121. {
  122. required: true,
  123. message: "设备状态不能为空",
  124. trigger: "trigger",
  125. },
  126. ],
  127. },
  128. {
  129. label: "负责人",
  130. prop: "head",
  131. rules: [
  132. {
  133. required: true,
  134. message: "负责人不能为空",
  135. trigger: "trigger",
  136. },
  137. ],
  138. },
  139. {
  140. label: "供应厂商",
  141. prop: "manufacturer",
  142. },
  143. {
  144. label: "所在车间",
  145. prop: "workshop",
  146. },
  147. {
  148. label: "所在工位",
  149. prop: "station",
  150. },
  151. {
  152. label: "规格",
  153. prop: "specifications",
  154. },
  155. {
  156. label: "品牌",
  157. prop: "brand",
  158. },
  159. ],
  160. });
  161. onMounted(() => {
  162. // console.log("crudRef", crudRef)
  163. dataList();
  164. });
  165. </script>