edit.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. <?php
  2. /**
  3. * @link:http://www.gdqijianshi.com/
  4. * @copyright: Copyright (c) 2020 广东七件事集团
  5. * Created by PhpStorm
  6. * Author: ganxiaohao
  7. * Date: 2020-04-20
  8. * Time: 15:38
  9. */
  10. ?>
  11. <div id="app" v-cloak>
  12. <el-card v-loading="dataLoading" class="box-card" shadow="never"
  13. style="border:0" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  14. <div slot="header">
  15. <span>小程序基础设置</span>
  16. <div style="float: right; margin: -5px 0">
  17. <el-button class="button-item" :loading="btnLoading" type="primary" @click="submit('ruleForm')"
  18. size="small">
  19. 保存
  20. </el-button>
  21. <!-- <el-button class="button-item" :loading="btnLoadings" type="primary" @click="submitWechat()"-->
  22. <!-- size="small">-->
  23. <!-- 上传小程序文件-->
  24. <!-- </el-button>-->
  25. <!-- <el-button class="button-item" :loading="btnLoading" type="primary" @click="checkImg()"-->
  26. <!-- size="small">-->
  27. <!-- 查看-->
  28. <!-- </el-button>-->
  29. </div>
  30. </div>
  31. <div class="form-body">
  32. <el-form :model="ruleForm" :rules="rules" size="small" ref="ruleForm" label-width="150px">
  33. <el-row>
  34. <el-col :span="24">
  35. <el-form-item label="小程序名称" prop="name">
  36. <el-input v-model="ruleForm.name"></el-input>
  37. </el-form-item>
  38. <el-form-item label="小程序原始ID" prop="original_id">
  39. <el-input v-model="ruleForm.original_id"></el-input>
  40. </el-form-item>
  41. <el-form-item label="小程序app_id" prop="app_id">
  42. <el-input v-model="ruleForm.app_id"></el-input>
  43. </el-form-item>
  44. <el-form-item label="小程序secret" prop="secret">
  45. <el-input @focus="hidden.secret = false" v-if="hidden.secret" readonly placeholder="已隐藏内容,点击查看或编辑"></el-input>
  46. <el-input v-else v-model.trim="ruleForm.secret"></el-input>
  47. </el-form-item>
  48. <el-form-item label="小程序上传密钥" prop="upload_secret_key">
  49. <el-input type="textarea" v-model="ruleForm.upload_secret_key" :autosize="{minRows: 4, maxRows: 10}"></el-input>
  50. </el-form-item>
  51. <el-form-item label="小程序授权清除">
  52. <el-button size="small" @click="clearAuth">执行</el-button>
  53. </el-form-item>
  54. <!-- <el-form-item label="版本号" prop="version">-->
  55. <!-- <el-input v-model="ruleForm.version"></el-input>-->
  56. <!-- </el-form-item>-->
  57. <!-- <el-form-item label="描述" prop="desc">-->
  58. <!-- <el-input v-model="ruleForm.desc"></el-input>-->
  59. <!-- </el-form-item>-->
  60. <!-- <el-form-item label="是否带直播" prop="desc">-->
  61. <!-- <el-radio-group v-model="ruleForm.is_live" size="small">-->
  62. <!-- <el-radio :label="0" border>否</el-radio>-->
  63. <!-- <el-radio :label="1" border>是</el-radio>-->
  64. <!-- </el-radio-group>-->
  65. <!-- </el-form-item>-->
  66. <!-- <el-form-item label="密钥文件" prop="secret_key_file">-->
  67. <!-- <el-col :span="10">-->
  68. <!-- <el-input v-model="ruleForm.secret_key_file" :placeholder="ruleForm.secret_key_file" :disabled="true"></el-input>-->
  69. <!-- </el-col>-->
  70. <!-- <el-col :span="4">-->
  71. <!-- <input ref="secret_key_file" type="file" accept=".key" :multiple="multiple" style="display: none"-->
  72. <!-- @change="handleChange">-->
  73. <!-- <el-button size="small" @click="uploadPem('secret_key_file')">上传文件</el-button>-->
  74. <!-- </el-col>-->
  75. <!-- </el-form-item>-->
  76. </el-col>
  77. </el-row>
  78. </el-form>
  79. </div>
  80. </el-card>
  81. <el-dialog v-loading="posterLoading" title="体验版" :visible.sync="sharePop" width="5%" center :close-on-click-modal="false">
  82. <div class="share-pop-model" flex>
  83. <div style="width: 180px; height: 180px;background: #F2F2F2;margin-left: 170px;" flex="main:center cross:center">
  84. <el-image style="width: 144px; height: 144px;" :src="qrcode" center></el-image>
  85. </div>
  86. </div>
  87. </el-dialog>
  88. </div>
  89. <script>
  90. new Vue({
  91. el: '#app',
  92. data() {
  93. return {
  94. hidden: {
  95. app_id: true,
  96. secret: true,
  97. original_id: true,
  98. // mch_id: false,
  99. // pay_secret: true,
  100. // cert_pem: true,
  101. // key_pem: true,
  102. },
  103. dataLoading: false,
  104. rules: {
  105. name: [
  106. {required: true, message: '请输入小程序名称', trigger: 'change'},
  107. ],
  108. app_id: [
  109. {required: true, message: '请输入app_id', trigger: 'change'},
  110. ],
  111. original_id: [
  112. {required: true, message: '请输入原始ID', trigger: 'change'},
  113. ],
  114. secret: [
  115. {required: true, message: '请输入secret', trigger: 'change'},
  116. ],
  117. },
  118. btnLoading: false,
  119. btnLoadings: false,
  120. cardLoading: false,
  121. mini_program: '',
  122. ruleForm: {
  123. name: '',
  124. app_id: '',
  125. secret: '',
  126. original_id: '',
  127. version: '',
  128. desc: '',
  129. secret_key_file: '',
  130. is_live: 0,
  131. upload_secret_key:'',
  132. index_url: '',
  133. },
  134. pem_value: '',
  135. qrcode:'',
  136. sharePop:false,
  137. posterLoading: false,
  138. };
  139. },
  140. created() {
  141. this.loadData();
  142. },
  143. methods: {
  144. loadData() {
  145. this.loading = true;
  146. request({
  147. params: {
  148. r: 'mall/mini-program/edit',
  149. },
  150. }).then(e => {
  151. this.loading = false;
  152. if (e.data.code === 0) {
  153. if (!isEmpty(e.data.data.mini_program)) {
  154. this.ruleForm = e.data.data.mini_program;
  155. }
  156. } else {
  157. this.$message.error(e.data.msg);
  158. }
  159. }).catch(e => {
  160. });
  161. },
  162. qrcodePicUrl(e) {
  163. if (e.length) {
  164. this.ruleForm.qrcode = e[0].url;
  165. }
  166. },
  167. submit(formName) {
  168. this.$refs[formName].validate((valid) => {
  169. let self = this;
  170. if (valid) {
  171. self.btnLoading = true;
  172. request({
  173. params: {
  174. r: 'mall/mini-program/edit'
  175. },
  176. method: 'post',
  177. data: {
  178. form: self.ruleForm,
  179. }
  180. }).then(e => {
  181. self.btnLoading = false;
  182. if (e.data.code === 0) {
  183. self.$message.success(e.data.msg);
  184. } else {
  185. self.$message.error(e.data.msg);
  186. }
  187. }).catch(e => {
  188. self.$message.error(e.data.msg);
  189. self.btnLoading = false;
  190. });
  191. } else {
  192. console.log('error submit!!');
  193. return false;
  194. }
  195. });
  196. },
  197. submitWechat() {
  198. let self = this;
  199. self.btnLoadings = true;
  200. request({
  201. params: {
  202. r: 'mall/mini-program/upload-wechat'
  203. },
  204. method: 'post',
  205. }).then(e => {
  206. self.btnLoadings = false;
  207. if (e.data.code === 0) {
  208. self.$message.success(e.data.msg);
  209. } else {
  210. self.$message.error(e.data.msg);
  211. }
  212. }).catch(e => {
  213. self.$message.error(e.data.msg);
  214. self.btnLoadings = false;
  215. });
  216. },
  217. checkImg() {
  218. let self = this;
  219. //this.sharePop = true;
  220. window.open('http://1.14.248.220/' + self.ruleForm.app_id +".jpg")
  221. return;
  222. this.qrcode = 'http://1.14.248.220/' + self.ruleForm.app_id +".jpg";
  223. return false;
  224. },
  225. uploadPem(key) {
  226. this.pem_value = key;
  227. this.$refs[key].value = null;
  228. this.$refs[key].click();
  229. },
  230. handleChange(e){
  231. var rawFiles = e.target.files;
  232. if (rawFiles.length > 1) {
  233. this.$message.error('最多一次只能上传一个文件。')
  234. return;
  235. }
  236. let file = {
  237. _complete: false,
  238. response: null,
  239. rawFile: rawFiles[0],
  240. };
  241. let formData = new FormData();
  242. const params = {};
  243. params['r'] = 'mall/file/upload';
  244. for (let i in this.params) {
  245. params[i] = this.params[i];
  246. }
  247. for (let i in this.fields) {
  248. formData.append(i, this.fields[i]);
  249. }
  250. formData.append('file', file.rawFile, file.rawFile.name);
  251. this.$request({
  252. headers: {'Content-Type': 'multipart/form-data'},
  253. params: params,
  254. method: 'post',
  255. data: formData,
  256. }).then(e => {
  257. if (e.data.code === 0) {
  258. console.log(e.data.path);
  259. this.ruleForm.secret_key_file = e.data.data.path;
  260. this.$message.success('上传成功');
  261. } else {
  262. this.$message.error(e.data.msg);
  263. }
  264. }).catch(e => {
  265. this.$message.error('上传失败');
  266. });
  267. },
  268. // 清除微信授权
  269. clearAuth(){
  270. this.$confirm('此操作不能恢复,确定执行吗?', '提示', {
  271. confirmButtonText: '确定',
  272. cancelButtonText: '取消',
  273. type: 'warning'
  274. }).then(() => {
  275. request({
  276. params: {
  277. r: 'mall/user/clear-auth'
  278. },
  279. method: 'post',
  280. data: {
  281. platform: 'mp-wx',
  282. }
  283. }).then(res => {
  284. this.$message.success("清除成功");
  285. }).catch(e => {
  286. this.$message.error("清除失败");
  287. });
  288. })
  289. },
  290. }
  291. });
  292. </script>