create-upload.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <template id="create-upload">
  2. <el-dialog title="小程序上传任务" v-model="visible" :visible.sync="visible" width="800" @close="$emit('close')" :close-on-click-modal="false">
  3. <el-form
  4. :model="form"
  5. size="small"
  6. ref="form"
  7. label-width="120px"
  8. :loading="getConfLoading"
  9. :rules="rules"
  10. >
  11. <el-form-item label="App Id" prop="app_id">
  12. <el-input v-model="form.app_id"></el-input>
  13. </el-form-item>
  14. <el-form-item label="版本号" prop="version">
  15. <el-input v-model="form.version"></el-input>
  16. </el-form-item>
  17. <el-form-item label="API接口域名" prop="api_domain">
  18. <el-input v-model="form.api_domain"></el-input>
  19. </el-form-item>
  20. <el-form-item label="资源接口域名" prop="static_domain">
  21. <el-input v-model="form.static_domain"></el-input>
  22. </el-form-item>
  23. <template v-if="Object.keys(addons_list).length > 0">
  24. <el-form-item label="是否安装插件" prop="is_live">
  25. <el-switch v-model="form.is_live" :active-value="1" :inactive-value="0"></el-switch>
  26. <div class="tips-text" v-if="form.is_live == 1">注意:如果您小程序后台并无以下插件请不要勾选,否则会导致小程序上传失败。</div>
  27. </el-form-item>
  28. <el-form-item v-if="form.is_live == 1" label="选择所需的插件" prop="plugins">
  29. <el-checkbox-group v-model="form.plugins" size="small">
  30. <el-checkbox :label="index" size="mini" border v-for="(item, index) in addons_list" :key="index">{{ item }}</el-checkbox>
  31. </el-checkbox-group>
  32. </el-form-item>
  33. </template>
  34. <el-form-item label="小程序上传密钥" prop="upload_secret_key">
  35. <el-input type="textarea" v-model="form.upload_secret_key" :autosize="{minRows: 4, maxRows: 10}"></el-input>
  36. </el-form-item>
  37. <el-form-item label="是否发布" prop="is_review">
  38. <el-switch v-model="form.is_review" :active-value="1" :inactive-value="0"></el-switch>
  39. </el-form-item>
  40. <el-form-item label="描述" prop="desc">
  41. <el-input type="textarea" v-model="form.desc"></el-input>
  42. </el-form-item>
  43. </el-form>
  44. <span slot="footer" class="dialog-footer">
  45. <el-button type="primary" :loading="btnLoading" size="small" @click="addTask">添加任务</el-button>
  46. </span>
  47. </el-dialog>
  48. </template>
  49. <script>
  50. Vue.component('create-upload', {
  51. template: '#create-upload',
  52. data() {
  53. return {
  54. visible: false,
  55. getConfLoading: false,
  56. btnLoading: false,
  57. is_docker_deploy: 0,
  58. is_install_wechat_live: false,
  59. is_install_enjoinpay: false,
  60. addons_list: [],
  61. form: {
  62. app_id:'',
  63. is_live: 0,
  64. upload_secret_key: '',
  65. version: '',
  66. desc: '',
  67. api_domain:'',
  68. static_domain:'',
  69. plugins: [],
  70. },
  71. rules: {
  72. app_id: [
  73. { required: true, message: '请输入App Id', trigger: 'blur' },
  74. ],
  75. version: [
  76. { required: true, message: '请输入版本号', trigger: 'blur' },
  77. ],
  78. api_domain: [
  79. { required: true, message: '请输入API接口域名', trigger: 'blur' },
  80. ],
  81. static_domain: [
  82. { required: true, message: '请输入资源接口域名', trigger: 'blur' },
  83. ],
  84. upload_secret_key: [
  85. { required: true, message: '请输入小程序上传密钥', trigger: 'blur' },
  86. ],
  87. },
  88. }
  89. },
  90. created() {
  91. this.getMiniProgramConfig()
  92. },
  93. methods: {
  94. async open(mode = 'add') {
  95. this.mode = mode;
  96. this.visible = true;
  97. return this;
  98. },
  99. getMiniProgramConfig() {
  100. let self = this;
  101. let params = {
  102. r: 'mall/mini-program/get-mini-program-config',
  103. }
  104. self.getConfLoading = true;
  105. request({
  106. params: params,
  107. method: 'get',
  108. }).then(e => {
  109. self.getConfLoading = false;
  110. if (e.data.code == 0) {
  111. self.form.upload_secret_key = e.data.data.upload_secret_key;
  112. self.form.app_id = e.data.data.app_id;
  113. self.form.api_domain = e.data.data.api_domain;
  114. self.form.static_domain = e.data.data.static_domain;
  115. self.form.version = e.data.data.version;
  116. self.is_docker_deploy = e.data.data.is_docker_deploy;
  117. self.addons_list = e.data.data.addons_list;
  118. } else {
  119. self.$message.error(e.data.msg);
  120. }
  121. }).catch(e => {
  122. self.$message.error(e.data.msg);
  123. self.getConfLoading = false;
  124. });
  125. },
  126. addTask() {
  127. this.$refs['form'].validate((valid) => {
  128. if (valid) {
  129. this.btnLoading = true;
  130. if (this.is_docker_deploy != 0) {
  131. this.$message.success('小程序上传大概需要1~3分钟,期间请耐心等候!');
  132. }
  133. request({
  134. params: {
  135. r: 'mall/mini-program/task'//团长添加//'plugin/stock/mall/stock/edit',
  136. },
  137. method: 'post',
  138. data: this.form
  139. }).then(response => {
  140. this.btnLoading = false;
  141. if (response.data.code == 0) {
  142. this.$message.success('添加成功');
  143. this.$emit('success')
  144. } else {
  145. this.$message.error(response.data.msg);
  146. }
  147. }).catch(response => {
  148. this.btnLoading = false;
  149. });
  150. } else {
  151. console.log('error submit!!');
  152. return false;
  153. }
  154. });
  155. }
  156. }
  157. });
  158. </script>