index.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <template>
  2. <normalTable
  3. :is-select="false"
  4. :sequence="true"
  5. rowKey="w_functionid"
  6. ref="list"
  7. size="small"
  8. :param="param"
  9. :columns="utils.TBLayout('serveTable')"
  10. >
  11. <template #tb_cell="{ data }">
  12. <div v-if="data.column.dataIndex == 'isasyn'">
  13. {{ data.record.isasyn ? "异步" : "同步" }}
  14. </div>
  15. <div
  16. v-else-if="data.column.dataIndex == 'func'"
  17. style="display: flex; align-items: center"
  18. >
  19. <span>{{ data.record.func }}</span>
  20. <a-tag
  21. color="blue"
  22. size="small"
  23. v-if="data.record.issystem"
  24. style="margin-left: 10px"
  25. >系统</a-tag
  26. >
  27. </div>
  28. <div v-else-if="data.column.dataIndex == 'w_dataparamids'">
  29. <a-tag
  30. color="blue"
  31. v-for="item in data.record.dataparam"
  32. :key="item.w_functionid"
  33. >{{ item.paramname }}</a-tag
  34. >
  35. </div>
  36. <div v-else>
  37. {{ data.record[data.column.dataIndex] }}
  38. </div>
  39. </template>
  40. <template #operation>
  41. <div style="display: flex; margin-bottom: 16px">
  42. <div style="margin-right: 16px">
  43. <span>调用方式:</span>
  44. <a-select
  45. ref="select"
  46. v-model:value="param.content.where.isasyn"
  47. placeholder="选择调用方式"
  48. style="width: 200px"
  49. @change="
  50. param.content.pageNumber = 1;
  51. $refs.list.listData();
  52. "
  53. allowClear
  54. >
  55. <a-select-option value="0">同步</a-select-option>
  56. <a-select-option value="1">异步</a-select-option>
  57. </a-select>
  58. </div>
  59. </div>
  60. </template>
  61. </normalTable>
  62. </template>
  63. <script setup>
  64. import listTemp from "@/components/listTemplate/index.vue";
  65. import normalTable from "@/template/normalTable/index.vue";
  66. import customBtn from "@/components/customHandleBtn/index.vue";
  67. import Edit from "./modules/Edit.vue";
  68. import { useBaseStore } from "@/stores/modules/base";
  69. import { ref, defineProps, defineEmits, onMounted } from "vue";
  70. import { useRouter } from "vue-router";
  71. import Api from "@/api/api";
  72. import utils from "@/utils/utils";
  73. let list = ref();
  74. let base = useBaseStore();
  75. let router = useRouter();
  76. let emit = defineEmits([]);
  77. let props = defineProps(["data", "disabled", "mode"]);
  78. let param = ref({
  79. id: 20230613162702,
  80. content: {
  81. ownertable: "w_device",
  82. ownerid: router.currentRoute.value.query.id,
  83. pageNumber: 1,
  84. pageSize: 20,
  85. mode: props.mode,
  86. where: {
  87. condition: "",
  88. isasyn: undefined,
  89. },
  90. },
  91. });
  92. let searchType = ref([
  93. { label: "搜索", key: "condition", type: "input" },
  94. {
  95. label: "调用方式",
  96. key: "isasyn",
  97. type: "select",
  98. dataSource: [
  99. { remarks: "同步", value: "同步" },
  100. { remarks: "异步", value: "异步" },
  101. ],
  102. },
  103. ]);
  104. let typeList = ref([]);
  105. onMounted(async () => {
  106. let res = await base.optiontypeselect("datatype");
  107. typeList.value = res.data;
  108. console.log(typeList.value);
  109. });
  110. let getList = () => {
  111. list.value.listData();
  112. };
  113. defineExpose({
  114. param,
  115. getList,
  116. });
  117. </script>
  118. <style scoped>
  119. </style>