version.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <template>
  2. <a-card title="算子版本" >
  3. <table-pro
  4. :service="OperatorController.versionPage"
  5. :serviceParams="{aiId}"
  6. ref="tableProDom"
  7. :columns="columns"
  8. @add="openModal"
  9. >
  10. <template #render="{column, record}" >
  11. <template v-if="column.key === 'action'" >
  12. <a @click="del(record)">删除</a>
  13. </template>
  14. </template>
  15. </table-pro>
  16. </a-card>
  17. <modal-pro
  18. label='新增算子版本'
  19. :open="state.visible"
  20. @cancel="closeModal"
  21. @ok="submmit"
  22. >
  23. <a-form style="width: 100%;" :labelCol="{span: 3}" :wrapperCol="{span: 14}" >
  24. <a-form-item label="算子ID" v-bind="validateInfos.aiId" extra="仅支持小写字母、数字、中划线,64字符以内,小写字母开头" >
  25. <InputTsx allowClear placeholder="请输入算子ID" v-model:value="versionState.aiId" />
  26. </a-form-item>
  27. <a-form-item label="CPU架构" >
  28. <a-radio-group v-model:value="versionState.architecture" button-style="solid">
  29. <a-radio-button value="x86">x86</a-radio-button>
  30. <a-radio-button value="arm">arm</a-radio-button>
  31. </a-radio-group>
  32. </a-form-item>
  33. <a-form-item label="芯片品牌" >
  34. <a-radio-group v-model:value="versionState.brand" button-style="solid">
  35. <a-radio-button value="英伟达">英伟达</a-radio-button>
  36. <a-radio-button value="昆仑">昆仑</a-radio-button>
  37. </a-radio-group>
  38. </a-form-item>
  39. <a-form-item label="芯片型号" >
  40. <InputTsx allowClear placeholder="请输入芯片型号" v-model:value="versionState.chipModel" />
  41. </a-form-item>
  42. <a-form-item label="版本地址" >
  43. <InputTsx allowClear placeholder="请输入版本地址" v-model:value="versionState.aiVersionPkgUrl" />
  44. </a-form-item>
  45. </a-form>
  46. </modal-pro>
  47. </template>
  48. <script lang='ts' setup >
  49. import { OperatorController } from '@/controller'
  50. import { reactive, ref } from 'vue'
  51. import { useRoute } from 'vue-router'
  52. import { Form } from 'ant-design-vue'
  53. import { InputTsx } from '@/components/MicroComponents'
  54. const route = useRoute()
  55. const aiId = route.query.aiId
  56. const tableProDom = ref()
  57. const columns = [
  58. {
  59. title: '算子版本',
  60. dataIndex: 'aiVersion',
  61. key: 'aiVersion'
  62. },
  63. {
  64. title: 'CPU架构',
  65. dataIndex: 'architecture',
  66. key: 'architecture'
  67. },
  68. {
  69. title: '芯片品牌',
  70. dataIndex: 'brand',
  71. key: 'brand'
  72. },
  73. {
  74. title: '芯片型号',
  75. dataIndex: 'chipModel',
  76. key: 'chipModel'
  77. },
  78. {
  79. title: '版本地址',
  80. dataIndex: 'aiVersionPkgUrl',
  81. key: 'aiVersionPkgUrl'
  82. },
  83. {
  84. title: '版本说明',
  85. dataIndex: 'aiVersionComment',
  86. key: 'aiVersionComment'
  87. },
  88. {
  89. title: '操作',
  90. dataIndex: 'action',
  91. key: 'action'
  92. }
  93. ]
  94. const useForm = Form.useForm
  95. const state = reactive({
  96. visible: false
  97. })
  98. const versionState = reactive<CVS.OperatorVersion>({
  99. aiVersionPkgUrl: '',
  100. architecture: 'x86',
  101. brand: '英伟达',
  102. chipModel: '',
  103. aiVersion: '',
  104. aiVersionComment: ''
  105. })
  106. const { resetFields, validate, validateInfos } = useForm(versionState, {
  107. })
  108. const openModal = () => {
  109. state.visible = true
  110. }
  111. const closeModal = () => {
  112. state.visible = false
  113. }
  114. const submmit = () => {
  115. validate().then(async () => {
  116. await OperatorController.addVersion(versionState)
  117. closeModal()
  118. resetFields({})
  119. tableProDom.value.reload()
  120. }).catch(() => {})
  121. }
  122. const del = async (record: CVS.OperatorVersion) => {
  123. await OperatorController.delVersion(record.id!)
  124. tableProDom.value.reload()
  125. }
  126. </script>
  127. <style lang='less' scoped >
  128. </style>