create-upload.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ComponentHelper::loadComponentView('com-export-dialog');
  4. ?>
  5. <template id="create-upload">
  6. <el-dialog title="app上传" v-model="visible" :visible.sync="visible" width="800" @close="$emit('close')" :close-on-click-modal="false">
  7. <el-form :model="form" size="small" ref="form" label-width="150px" :loading="getConfLoading">
  8. <el-form-item label="版本号" prop="version">
  9. <el-input v-model="form.version"></el-input>
  10. </el-form-item>
  11. <el-form-item label="版本号数字" prop="version_num">
  12. <el-input v-model="form.version_num"></el-input>
  13. </el-form-item>
  14. <el-form-item label="选择app类型" prop="apptype">
  15. <el-select v-model="form.app_type" placeholder="请选择" size="small">
  16. <el-option
  17. v-for="(item, index) in apptype"
  18. :key="index"
  19. :label="item"
  20. :value="index">
  21. </el-option>
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="上传app安装包">
  25. <com-upload class="flex flex-y-center"
  26. v-loading="uploading"
  27. :disabled="uploading"
  28. :fields="upload_type"
  29. accept = ".apk, .ipa, .pxl, .deb, .wgt"
  30. @start="handleStart"
  31. @success="handleSuccess"
  32. @complete="handleComplete"
  33. :max="1"
  34. style="width: 40%;float: left;margin-right: 20px;">
  35. <el-input size="small" :disabled="true" v-model="attachments[0].name" class="input-with-select">
  36. <el-button slot="append">选择文件</el-button>
  37. </el-input>
  38. </com-upload>
  39. </el-form-item>
  40. <el-form-item label="更新说明" prop="content">
  41. <el-input type="textarea" v-model="form.content" rows="4" size="small"></el-input>
  42. </el-form-item>
  43. <el-form-item label="是否强制更新" prop="edition_force">
  44. <el-radio-group v-model="form.edition_force">
  45. <el-radio :label="0">否</el-radio>
  46. <el-radio :label="1">是</el-radio>
  47. </el-radio-group>
  48. </el-form-item>
  49. <el-form-item label="更新类型" prop="package_type">
  50. <el-radio-group v-model="form.package_type">
  51. <el-radio :label="0">整包升级</el-radio>
  52. <el-radio :label="1">wgt升级</el-radio>
  53. </el-radio-group>
  54. </el-form-item>
  55. </el-form>
  56. <span slot="footer" class="dialog-footer">
  57. <el-button type="primary" :loading="btnLoading" style="margin-bottom: 10px;" size="small" @click="addTask">提交</el-button>
  58. </span>
  59. </el-dialog>
  60. </template>
  61. <script>
  62. Vue.component('create-upload', {
  63. template: '#create-upload',
  64. props: {
  65. apptype: Object
  66. },
  67. data() {
  68. return {
  69. visible: false,
  70. getConfLoading: false,
  71. btnLoading: false,
  72. is_docker_deploy: 0,
  73. form: {
  74. app_type: '',
  75. version_num: '',
  76. version: '',
  77. content: '',
  78. download_url: '',
  79. edition_force: 0,
  80. package_type: 0,
  81. },
  82. upload_type: {upload_type:'files'},
  83. uploading: false,
  84. attachments: [{name: ''}],
  85. accessUploadType: ['txt'],
  86. }
  87. },
  88. created() {
  89. console.log(this.apptype);
  90. // this.getMiniProgramConfig()
  91. },
  92. methods: {
  93. async open(mode = 'add') {
  94. this.mode = mode;
  95. this.visible = true;
  96. return this;
  97. },
  98. // getMiniProgramConfig() {
  99. // let self = this;
  100. // let params = {
  101. // r: 'mall/app/create-upload',
  102. // }
  103. // self.getConfLoading = true;
  104. // request({
  105. // params: params,
  106. // method: 'get',
  107. // }).then(e => {
  108. // self.getConfLoading = false;
  109. // if (e.data.code == 0) {
  110. // self.form.upload_secret_key = e.data.data.upload_secret_key;
  111. // self.form.app_id = e.data.data.app_id;
  112. // self.form.api_domain = e.data.data.api_domain;
  113. // self.form.static_domain = e.data.data.static_domain;
  114. // self.is_docker_deploy = e.data.data.is_docker_deploy;
  115. // } else {
  116. // self.$message.error(e.data.msg);
  117. // }
  118. // }).catch(e => {
  119. // self.$message.error(e.data.msg);
  120. // self.getConfLoading = false;
  121. // });
  122. // },
  123. addTask(){
  124. this.btnLoading = true;
  125. request({
  126. params: {
  127. r: 'mall/app/version-list'//团长添加//'plugin/stock/mall/stock/edit',
  128. },
  129. method: 'post',
  130. data: this.form
  131. }).then(response => {
  132. this.btnLoading = false;
  133. if (response.data.code == 0) {
  134. this.$message.success('添加成功');
  135. this.$emit('success')
  136. } else {
  137. this.$message.error(response.data.msg);
  138. }
  139. }).catch(response => {
  140. this.btnLoading = false;
  141. });
  142. },
  143. handleStart(files) {
  144. this.uploading = true;
  145. },
  146. handleSuccess(file) {
  147. if (file.response && file.response.data && file.response.data.code === 0) {
  148. const newItem = {
  149. url: file.response.data.data.url,
  150. name: file.response.data.data.name,
  151. };
  152. this.attachments.unshift(newItem);
  153. }
  154. },
  155. handleComplete(files) {
  156. this.form.download_url = this.attachments[0].url;
  157. this.uploading = false;
  158. },
  159. }
  160. });
  161. </script>