AppVersionManager.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <template>
  2. <el-card style="margin: 15px">
  3. <el-form ref="editform" :rules="rules" label-width="130px" :model="formmodel">
  4. <el-row>
  5. <el-col :span="12">
  6. <el-form-item label="APK文件上传">
  7. <el-upload
  8. class="upload-demo"
  9. drag
  10. :action="`${uploadServer}/ncs/app_version/upload`"
  11. :show-file-list="false"
  12. :on-success="uploaded"
  13. :before-upload="handleShopLogoBefore"
  14. >
  15. <i class="el-icon-upload" />
  16. <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  17. <div slot="tip" class="el-upload__tip">只能上传APK文件</div>
  18. </el-upload>
  19. </el-form-item>
  20. <el-form-item label="版本数字" prop="version_no">
  21. <el-input-number v-model="formmodel.version_no" :min="1" :max="1000" placeholder="请输入版本数字" />
  22. <!-- <el-input v-model="formmodel.version_no" type="number" clearable :maxlength="100" placeholder="请输入版本信息" />-->
  23. </el-form-item>
  24. <el-form-item label="版本信息" prop="version_code">
  25. <el-input v-model="formmodel.version_code" clearable :maxlength="100" placeholder="请输入版本信息" />
  26. </el-form-item>
  27. <el-form-item label="文件路径" prop="ver_filepath">
  28. <el-input v-model="formmodel.app_path" clearable readonly placeholder="文件路径" />
  29. </el-form-item>
  30. </el-col>
  31. </el-row>
  32. <el-form-item align="center" class="margin-top-sm">
  33. <el-button type="success" @click="handlerFormSubmit">保存设置</el-button>
  34. </el-form-item>
  35. </el-form>
  36. </el-card>
  37. </template>
  38. <script>
  39. import { serverUrl } from '@/utils/domain'
  40. import * as API_Device from '@/api/ncs_device'
  41. export default {
  42. name: 'AppVersionManager',
  43. props: {
  44. deviceType: {
  45. type: Number,
  46. default: null
  47. },
  48. partId: {
  49. type: Number,
  50. default: null
  51. }
  52. },
  53. data() {
  54. return {
  55. formmodel: {
  56. app_path: ''
  57. },
  58. rules: {
  59. version_no: [
  60. { required: true, message: '版本数字不能为空', trigger: 'blur' }
  61. ],
  62. version_code: [
  63. { required: true, message: '版本信息不能为空', trigger: 'blur' }
  64. ],
  65. app_path: [
  66. { required: true, message: '请上传APK文件', trigger: 'blur' }
  67. ]
  68. },
  69. uploadServer: serverUrl
  70. }
  71. },
  72. mounted() {
  73. this.getAppVersion()
  74. },
  75. methods: {
  76. /** 上传成功后的钩子 更换图片 置空存储数组*/
  77. uploaded(response) {
  78. // this.formmodel.app_path = response
  79. this.$set(this.formmodel, 'app_path', response)
  80. },
  81. /** 文件上传之前的校验 */
  82. handleShopLogoBefore(file) {
  83. const isImg = file.type === 'application/vnd.android.package-archive'
  84. const ext = file.name.substring(file.name.lastIndexOf('.') + 1).toLowerCase() === 'apk'
  85. const isapk = isImg || ext
  86. if (!isapk) {
  87. this.$message.error('只能上传APK文件!')
  88. }
  89. return isapk
  90. },
  91. getAppVersion() {
  92. const params = {
  93. partid: this.partId,
  94. devicetype: this.deviceType
  95. }
  96. API_Device.getAPPVersion(params).then(res => {
  97. this.formmodel = { ...res }
  98. })
  99. },
  100. /** 新增 提交表单 */
  101. handlerFormSubmit() {
  102. this.$refs['editform'].validate((valid) => {
  103. if (valid) {
  104. /** 设置app版本信息 */
  105. this.formmodel.part_id = this.partId
  106. this.formmodel.device_type = this.deviceType
  107. API_Device.setAPPVersion(this.formmodel).then(res => {
  108. this.formmodel = { ...res }
  109. this.$message.success('保存成功!')
  110. }).catch(response => {
  111. this.$message.error(response.message)
  112. })
  113. }
  114. })
  115. }
  116. }
  117. }
  118. </script>
  119. <style scoped>
  120. </style>