alg-watch.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <template>
  2. <el-dialog :title=" '查看算法'" :close-on-click-modal="false" :visible.sync="visible" :before-close="cleanFileList">
  3. <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"
  4. label-width="80px" :disabled=true>
  5. <el-form-item label="算法名称" prop="algorithmName">
  6. <el-input v-model="dataForm.algorithmName" placeholder="请输入算法名称"></el-input>
  7. </el-form-item>
  8. <el-form-item label="类别" size="mini" prop="categoryId">
  9. <el-radio-group v-model="dataForm.categoryId">
  10. <el-radio v-for="category in categoryList" :key="category.categoryId" :label="category.categoryId">{{ category.categoryName }}
  11. </el-radio>
  12. </el-radio-group>
  13. </el-form-item>
  14. <el-form-item label="文件" size="mini">
  15. <el-upload class="upload-demo" action="https://jsonplaceholder.typicode.com/posts/" :on-preview="handlePreview"
  16. :on-remove="handleRemove" :before-remove="beforeRemove" multiple :limit="3" :on-exceed="handleExceed"
  17. :file-list="fileList">
  18. <el-button size="small" type="primary">点击上传</el-button>
  19. </el-upload>
  20. </el-form-item>
  21. <el-form-item label="描述信息" prop="remark">
  22. <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 6}" placeholder="请输入内容" v-model="dataForm.remark">
  23. </el-input>
  24. </el-form-item>
  25. <!-- <el-form-item label="状态" size="mini" prop="status">
  26. <el-radio-group v-model="dataForm.status">
  27. <el-radio :label="0">禁用</el-radio>
  28. <el-radio :label="1">正常</el-radio>
  29. </el-radio-group>
  30. </el-form-item> -->
  31. </el-form>
  32. <span slot="footer" class="dialog-footer">
  33. <el-button @click="visible = false,cleanFileList()">取消</el-button>
  34. <el-button type="primary" @click="visible = false,cleanFileList()">确定</el-button>
  35. </span>
  36. </el-dialog>
  37. </template>
  38. <script>
  39. import { MessageBox } from 'element-ui'
  40. import { Message } from "element-ui"
  41. export default {
  42. data() {
  43. return {
  44. visible: false,
  45. // 获取所有类别列表
  46. categoryList: [],
  47. dataForm: {
  48. id: 0,
  49. algorithmName: "",
  50. // 本模板的类别
  51. categoryId: 1,
  52. remark: "",
  53. },
  54. textarea2: "",
  55. fileList: [],
  56. dataRule: {
  57. algorithmName: [
  58. { required: true, message: "用户名不能为空", trigger: "blur" },
  59. ],
  60. },
  61. };
  62. },
  63. methods: {
  64. init(id) {
  65. this.dataForm.id = id || 0;
  66. this.fileList=[];
  67. this.$http({
  68. url: this.$http.adornUrl("/category/select"),
  69. method: "get",
  70. params: this.$http.adornParams(),
  71. })
  72. // 这块修改为获取类别
  73. .then(({ data }) => {
  74. this.categoryList = data && data.code === 0
  75. ? data.list.filter((item) => !item.categoryName.includes("文件"))
  76. : [];
  77. })
  78. .then(() => {
  79. this.visible = true;
  80. this.$nextTick(() => {
  81. this.$refs["dataForm"].resetFields();
  82. });
  83. })
  84. .then(() => {
  85. if (this.dataForm.id) {
  86. this.$http({
  87. url: this.$http.adornUrl(`/algs/info/${this.dataForm.id}`),
  88. method: "get",
  89. params: this.$http.adornParams(),
  90. }).then(({ data }) => {
  91. if (data && data.code === 0) {
  92. this.dataForm.algorithmName = data.algs.algorithmName;
  93. this.dataForm.categoryId = data.algs.categoryId;
  94. this.dataForm.remark = data.algs.remark;
  95. for(var i=0;i<data.fileList.length;i++){
  96. this.fileList.push({
  97. name:data.fileList[i].filename,
  98. url:''
  99. });
  100. }
  101. // 模板文件地址
  102. // this.dataForm.dfsUrlv = data.temp.dfsUrlv;
  103. }
  104. });
  105. }
  106. });
  107. },
  108. // 以下4个函数是文件上传功能的
  109. handleRemove(file, fileList) {
  110. console.log(file, fileList);
  111. },
  112. handlePreview(file) {
  113. },
  114. handleExceed(files, fileList) {
  115. Message.warning(
  116. `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
  117. files.length + fileList.length
  118. } 个文件`
  119. );
  120. },
  121. beforeRemove(file, fileList) {
  122. return MessageBox.confirm(`确定移除 ${file.name}?`);
  123. },
  124. cleanFileList(done){
  125. this.fileList=[];
  126. done();
  127. }
  128. },
  129. };
  130. </script>