add.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <template>
  2. <el-dialog
  3. title="添加"
  4. :visible.sync="dialogVisible"
  5. width="70%"
  6. :before-close="handleClose"
  7. >
  8. <el-form ref="form" :model="form" label-width="80px">
  9. <el-form-item label="服务名称">
  10. <el-input v-model="form.name"></el-input>
  11. </el-form-item>
  12. <el-form-item label="数据来源">
  13. <el-select v-model="form.source" placeholder="请选择">
  14. <el-option label="SNP" value="DNA"></el-option>
  15. </el-select>
  16. </el-form-item>
  17. <el-form-item label="dataset">
  18. <el-upload
  19. class="upload-demo"
  20. action="string"
  21. drag
  22. :http-request="UploadImage"
  23. :on-change="fileChange"
  24. :file-list="fileList"
  25. multiple
  26. >
  27. <i class="el-icon-upload"></i>
  28. <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  29. </el-upload>
  30. </el-form-item>
  31. <el-form-item label="补充说明">
  32. <el-input type="textarea" v-model="form.desc"></el-input>
  33. </el-form-item>
  34. </el-form>
  35. <span slot="footer" class="dialog-footer">
  36. <el-button @click="dialogVisible = false">取 消</el-button>
  37. <el-button type="primary" @click="submit">确 定</el-button>
  38. </span>
  39. </el-dialog>
  40. </template>
  41. <script>
  42. import { createOrder, createService, uploadFile } from "@/api";
  43. import { mapState } from "vuex";
  44. const UploadFileApi = () => {};
  45. export default {
  46. name: "add",
  47. data() {
  48. return {
  49. title: "",
  50. dialogVisible: false,
  51. form: {
  52. name: "",
  53. isRunNow: false,
  54. source: "",
  55. runTime: "",
  56. delTime: "",
  57. },
  58. fileList: [],
  59. fileListID: [],
  60. };
  61. },
  62. computed: {
  63. ...mapState({
  64. userInfo: (state) => state.userInfo,
  65. }),
  66. },
  67. methods: {
  68. show() {
  69. this.dialogVisible = true;
  70. },
  71. handleClose(done) {
  72. this.$confirm("确认关闭?")
  73. .then((_) => {
  74. done();
  75. })
  76. .catch((_) => {});
  77. },
  78. onBeforeUploadImage(file) {
  79. // console.log("file", file);
  80. return true;
  81. // const isIMAGE = file.type === "image/jpeg" || "image/jpg" || "image/png";
  82. // const isLt1M = file.size / 1024 / 1024 < 1;
  83. // if (!isIMAGE) {
  84. // this.$message.error("上传文件只能是图片格式!");
  85. // }
  86. // if (!isLt1M) {
  87. // this.$message.error("上传文件大小不能超过 1MB!");
  88. // }
  89. // return isIMAGE && isLt1M;
  90. },
  91. UploadImage(param) {
  92. const formData = new FormData();
  93. formData.append("file", param.file);
  94. uploadFile(formData)
  95. .then((response) => {
  96. console.log(104, response);
  97. console.log("上传图片成功");
  98. if (response.code === 200) {
  99. this.fileListID.push(response.data);
  100. }
  101. param.onSuccess(); // 上传成功的图片会显示绿色的对勾
  102. // 但是我们上传成功了图片, fileList 里面的值却没有改变,还好有on-change指令可以使用
  103. })
  104. .catch((response) => {
  105. console.log("图片上传失败");
  106. param.onError();
  107. });
  108. },
  109. fileChange(file) {
  110. console.log(114, file);
  111. // this.$refs.upload.clearFiles(); // 清除文件对象
  112. // this.logo = file.raw; // 取出上传文件的对象,在其它地方也可以使用
  113. // this.fileList = [{ name: file.name, url: file.url }]; // 重新手动赋值filstList, 免得自定义上传成功了, 而fileList并没有动态改变, 这样每次都是上传一个对象
  114. },
  115. async submit() {
  116. console.log(this.form);
  117. console.log(140, this.userInfo);
  118. const params = {
  119. ...this.form,
  120. user_id: this.userInfo.id,
  121. fileListID: this.fileListID,
  122. };
  123. const res = await createService(params);
  124. console.log(139, res);
  125. // this.dialogVisible = false
  126. },
  127. },
  128. };
  129. </script>
  130. <style lang="less" scoped>
  131. .page-box {
  132. }
  133. </style>