detail.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <!-- 活动管理 说明书管理详情 -->
  2. <template>
  3. <div class="app-container">
  4. <el-form
  5. :model="form"
  6. ref="form"
  7. :rules="rules"
  8. label-width="110px"
  9. :disabled="disabled"
  10. >
  11. <el-form-item label="说明书名称:" prop="name">
  12. <el-input v-model="form.name" placeholder="请输入协议名称" />
  13. </el-form-item>
  14. <el-form-item label="设备分类:" prop="categoryName">
  15. <el-select v-model="form.categoryName" placeholder="请选择设备分类">
  16. <el-option
  17. v-for="item in categoryOptions"
  18. :key="item.value"
  19. :label="item.label"
  20. :value="item.label"
  21. />
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="二维码图片:" prop="codeUrl">
  25. <Upload
  26. listType="picture-card"
  27. :url="form.codeUrl"
  28. @upload="uploadCode($event, 'codeUrl')"
  29. :disabled="disabled"
  30. />
  31. </el-form-item>
  32. <el-form-item label="说明书文件:" prop="fileUrl">
  33. <el-row type="flex" justify="space-between">
  34. <el-col :span="16">
  35. <el-input
  36. v-model="form.fileUrl"
  37. placeholder="请输入或上传下载路径"
  38. />
  39. </el-col>
  40. <el-col :span="6">
  41. <Upload @upload="upload" style="float: right" />
  42. </el-col>
  43. </el-row>
  44. </el-form-item>
  45. </el-form>
  46. <div class="form-btn">
  47. <el-button @click="cancel">取消</el-button>
  48. <el-button v-if="!disabled" type="primary" @click="getSubmit"
  49. >确定</el-button
  50. >
  51. </div>
  52. </div>
  53. </template>
  54. <script>
  55. import { add, detail, edit } from "@/api/operation/explain";
  56. import { devCategoryMixin, devTypeMixin } from "@/mixin/index";
  57. export default {
  58. mixins: [devTypeMixin, devCategoryMixin],
  59. data() {
  60. return {
  61. // 表单
  62. form: {
  63. fileUrl: "",
  64. },
  65. // 只读
  66. disabled: false,
  67. // 是否强制
  68. typeOptions: [
  69. {
  70. value: 0,
  71. label: "否",
  72. },
  73. {
  74. value: 1,
  75. label: "是",
  76. },
  77. ],
  78. // 校验
  79. rules: {
  80. name: [{ required: true, message: "请输入协议名称", trigger: "blur" }],
  81. categoryName: [
  82. { required: true, message: "请选择设备类型", trigger: "change" },
  83. ],
  84. codeUrl: [
  85. {
  86. required: true,
  87. message: "请上传二维码图片",
  88. trigger: "change",
  89. },
  90. ],
  91. fileUrl: [
  92. { required: true, message: "请上传下载路径", trigger: "blur" },
  93. ],
  94. },
  95. };
  96. },
  97. mounted() {
  98. this.form.id = this.$route.query.id;
  99. this.form.state = this.$route.query.state;
  100. this.disabled = Boolean(this.$route.query.boolean == 1);
  101. this.getCateGory(1);
  102. this.getDetail();
  103. },
  104. methods: {
  105. // 详情
  106. getDetail() {
  107. if (this.form.state != 0) {
  108. detail(this.form.id).then((res) => {
  109. if (res.code === 0) {
  110. this.form = res.data;
  111. }
  112. });
  113. }
  114. },
  115. // 上传
  116. uploadCode(e) {
  117. this.form.codeUrl = e.file;
  118. },
  119. // 上传
  120. upload(e) {
  121. this.form.fileUrl = e.file;
  122. },
  123. // 取消
  124. cancel() {
  125. this.$tab.closeOpenPage("/operation/explain");
  126. // this.$router.go(-1);
  127. },
  128. // 确定
  129. getSubmit() {
  130. if (this.categoryOptions) {
  131. for (var i = 0; i < this.categoryOptions.length; i++) {
  132. if (this.form.categoryName === this.categoryOptions[i].label) {
  133. this.form.categoryId = this.categoryOptions[i].value;
  134. break;
  135. }
  136. }
  137. }
  138. if (this.$route.query.state == 0) {
  139. add(this.form).then((res) => {
  140. if (res.code === 0) {
  141. this.$message.success("添加成功!");
  142. this.cancel();
  143. }
  144. });
  145. } else {
  146. edit(this.form).then((res) => {
  147. if (res.code === 0) {
  148. this.$message.success("修改成功!");
  149. this.cancel();
  150. }
  151. });
  152. }
  153. },
  154. },
  155. };
  156. </script>
  157. <style lang="scss" scoped>
  158. .el-form {
  159. width: 500px;
  160. }
  161. </style>