Add.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <template>
  2. <div class="hello">
  3. <Header> </Header>
  4. <el-container>
  5. <el-card class="center-card">
  6. <el-form status-icon label-width="0px" class="demo-ruleForm">
  7. <h2></h2>
  8. <el-form-item label="" >
  9. <el-radio v-model="item_type" label="1">{{$t('item_type1')}}</el-radio>
  10. <el-radio v-model="item_type" label="2">{{$t('item_type2')}}</el-radio>
  11. &nbsp;&nbsp;&nbsp;&nbsp;<a v-if="lang =='zh-cn'" href="https://www.showdoc.cc/page/65391" target="_blank"><i class="el-icon-question"></i></a>
  12. </el-form-item>
  13. <el-form-item label="" >
  14. <el-input type="text" auto-complete="off" :placeholder="$t('item_name')" v-model="item_name"></el-input>
  15. </el-form-item>
  16. <el-form-item label="" >
  17. <el-input type="text" auto-complete="off" :placeholder="$t('item_description')" v-model="item_description"></el-input>
  18. </el-form-item>
  19. <el-form-item label="" >
  20. <el-radio v-model="isOpenItem" :label="true">{{$t('Open_item')}}</el-radio>
  21. <el-radio v-model="isOpenItem" :label="false">{{$t('private_item')}}</el-radio>
  22. </el-form-item>
  23. <el-form-item label="" v-show="!isOpenItem" >
  24. <el-input type="password" auto-complete="off" v-model="password" :placeholder="$t('visit_password_placeholder')"></el-input>
  25. </el-form-item>
  26. <el-form-item label="" class="text-left">
  27. <el-checkbox v-model="show_copy" @change="show_copy_even">{{$t('copy_exists_item')}}</el-checkbox>
  28. <el-select v-model="copy_item_id" :placeholder="$t('please_choose')" v-if="show_copy" @change="choose_copy_item">
  29. <el-option
  30. v-for="item in itemList"
  31. :key="item.item_id"
  32. :label="item.item_name"
  33. :value="item.item_id">
  34. </el-option>
  35. </el-select>
  36. </el-form-item>
  37. <el-form-item v-if="lang =='zh-cn'" label="" style="text-align: left;margin-bottom:5px;margin-left:15px;margin-top:-25px;">
  38. <el-button type="text" @click="auto_doc">我要自动生成文档</el-button>
  39. &nbsp;&nbsp;&nbsp;
  40. </el-form-item>
  41. <el-form-item label="" >
  42. <el-button type="primary" style="width:100%;" @click="onSubmit" >{{$t('submit')}}</el-button>
  43. </el-form-item>
  44. <el-form-item label="" >
  45. <router-link to="/item/index">{{$t('goback')}}</router-link>
  46. </el-form-item>
  47. </el-form>
  48. </el-card>
  49. </el-container>
  50. <Footer> </Footer>
  51. </div>
  52. </template>
  53. <script>
  54. export default {
  55. name: 'Login',
  56. components : {
  57. },
  58. data () {
  59. return {
  60. item_type: '1',
  61. item_name: '',
  62. item_description:'',
  63. item_domain: '',
  64. password: '',
  65. show_copy:false,
  66. itemList:{},
  67. copy_item_id:"",
  68. lang:'',
  69. isOpenItem:true,
  70. }
  71. },
  72. methods: {
  73. get_item_list(){
  74. var that = this ;
  75. var url = DocConfig.server+'/api/item/myList';
  76. var params = new URLSearchParams();
  77. that.axios.get(url, params)
  78. .then(function (response) {
  79. if (response.data.error_code === 0 ) {
  80. //that.$message.success("加载成功");
  81. var json = response.data.data ;
  82. that.itemList = json ;
  83. }else{
  84. that.$alert(response.data.error_message);
  85. }
  86. });
  87. },
  88. choose_copy_item(item_id){
  89. for (var i = 0; i < this.itemList.length; i++) {
  90. if (item_id == this.itemList[i].item_id) {
  91. this.item_name = this.itemList[i].item_name+'--copy';
  92. this.item_description = this.itemList[i].item_description;
  93. };
  94. };
  95. },
  96. onSubmit() {
  97. var that = this ;
  98. var url = DocConfig.server+'/api/item/add';
  99. if (!this.isOpenItem && !this.password) {
  100. that.$alert(that.$t("private_item_passwrod"));
  101. return false;
  102. };
  103. var params = new URLSearchParams();
  104. params.append('item_type', this.item_type);
  105. params.append('item_name', this.item_name);
  106. params.append('password', this.password);
  107. params.append('item_domain', this.item_domain);
  108. params.append('copy_item_id', this.copy_item_id);
  109. params.append('item_description', this.item_description);
  110. that.axios.post(url, params)
  111. .then(function (response) {
  112. if (response.data.error_code === 0 ) {
  113. that.$router.push({path:'/item/index'});
  114. }else{
  115. that.$alert(response.data.error_message);
  116. }
  117. });
  118. },
  119. auto_doc(){
  120. var msg = '<p>如果你想自动化生成API文档,则可参考<a target="_bank" href="https://www.showdoc.cc/page/741656402509783">API文档</a></p>';
  121. msg += '<p>如果你想自动化生成数据字典,则可参考<a target="_bank" href="https://www.showdoc.cc/page/312209902620725">数据字典</a></p>';
  122. msg += '<p>如果你更自由地生成自己所需要的格式,则可参考<a target="_bank" href="https://www.showdoc.cc/page/102098">开放API</a></p>';
  123. this.$alert(msg, {
  124. dangerouslyUseHTMLString: true
  125. });
  126. }
  127. },
  128. mounted() {
  129. this.lang = DocConfig.lang ;
  130. this.get_item_list();
  131. /*给body添加类,设置背景色*/
  132. document.getElementsByTagName("body")[0].className="grey-bg";
  133. },
  134. beforeDestroy(){
  135. /*去掉添加的背景色*/
  136. document.body.removeAttribute("class","grey-bg");
  137. }
  138. }
  139. </script>
  140. <!-- Add "scoped" attribute to limit CSS to this component only -->
  141. <style scoped>
  142. .center-card a {
  143. font-size: 12px;
  144. }
  145. .center-card{
  146. text-align: center;
  147. width: 350px;
  148. }
  149. </style>