access.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <template>
  2. <el-dialog
  3. :title="title"
  4. :visible.sync="dialogVisible"
  5. width="50%"
  6. >
  7. <div>
  8. <el-form ref="ruleForm" :model="formData" :rules="rules" label-width="100px">
  9. <el-form-item label="客户名称">
  10. <oc-selector v-model="formData.ocId" placeholder="输入客户名称" prop="ocId" />
  11. </el-form-item>
  12. <el-form-item label="APP ID">
  13. <el-input v-model="formData.accessAppId" placeholder="输入APP ID" prop="accessAppId" />
  14. </el-form-item>
  15. <el-form-item label="APP URL">
  16. <el-input v-model="formData.accessUrl" placeholder="输入APP URL" prop="accessUrl" />
  17. </el-form-item>
  18. <el-form-item label="APP Key">
  19. <el-input v-model="formData.accessAppKey" placeholder="输入APP KEY" prop="accessAppKey" />
  20. </el-form-item>
  21. <el-form-item label="APP Secret">
  22. <el-input v-model="formData.accessAppSecret" placeholder="输入APP SECRET" prop="accessAppSecret" />
  23. </el-form-item>
  24. <el-form-item label="Token">
  25. <el-input v-model="formData.accessToken" placeholder="输入Token" prop="accessToken" />
  26. </el-form-item>
  27. <el-form-item label="说明">
  28. <el-input v-model="formData.remark" type="textarea" placeholder="输入说明" :rows="10" prop="remark" />
  29. </el-form-item>
  30. </el-form>
  31. </div>
  32. <span slot="footer" class="dialog-footer">
  33. <el-button @click="dialogVisible = false">取 消</el-button>
  34. <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
  35. </span>
  36. </el-dialog>
  37. </template>
  38. <script>
  39. import { ACTION_ADD, ACTION_UPDATE } from '@/utils/actionType'
  40. import { getAccessById, createAccess, updateAccess } from '@/api/system/accessApi'
  41. import { OcSelector } from '@/components'
  42. export default {
  43. name: 'ClientApiAccess',
  44. components: { OcSelector },
  45. props: {
  46. title: {
  47. type: String,
  48. default: ''
  49. }
  50. },
  51. data() {
  52. return {
  53. dialogVisible: false,
  54. actionType: '',
  55. formData: {
  56. accessId: undefined,
  57. ocId: undefined,
  58. accessAppId: '',
  59. accessUrl: '',
  60. accessAppKey: '',
  61. accessAppSecret: '',
  62. accessToken: '',
  63. status: 0,
  64. remark: ''
  65. },
  66. rules: {
  67. ocId: [
  68. { required: true, message: '请选择单位', trigger: 'blur' }
  69. ],
  70. accessAppId: [
  71. { required: true, message: '请填写接入应用 APP ID', trigger: 'blur' }
  72. ],
  73. accessUrl: [
  74. { required: true, message: '请填写接入应用Url', trigger: 'blur' }
  75. ],
  76. accessAppKey: [
  77. { required: true, message: '请填写接入应用APP Key', trigger: 'blur' }
  78. ],
  79. accessAppSecret: [
  80. { required: false, message: '请填写接入应用APP Secret', trigger: 'blur' }
  81. ],
  82. accessToken: [
  83. { required: false, message: '请填写接入应用APP Token', trigger: 'blur' }
  84. ],
  85. remark: [
  86. { required: false, pattern: /^\d{0,511}$/, message: '长度小于511', trigger: 'blur' }
  87. ]
  88. }
  89. }
  90. },
  91. methods: {
  92. // Show Add Model
  93. showAddModel() {
  94. this.actionType = ACTION_ADD
  95. this.resetFormData()
  96. this.dialogVisible = true
  97. },
  98. // Show Edit Model
  99. showEditModel(accessId) {
  100. this.actionType = ACTION_UPDATE
  101. this.resetFormData()
  102. this.dialogVisible = true
  103. getAccessById(accessId).then((resp) => {
  104. const { code, data, msg } = resp
  105. if (code === 200) {
  106. this.formData = data
  107. } else {
  108. this.$message.error(msg)
  109. }
  110. }).catch((error) => {
  111. console.log(error)
  112. })
  113. },
  114. // Reset Form Data
  115. resetFormData() {
  116. this.formData = {
  117. accessId: undefined,
  118. ocId: undefined,
  119. accessAppId: '',
  120. accessUrl: '',
  121. accessAppKey: '',
  122. accessAppSecret: '',
  123. accessToken: '',
  124. status: 0,
  125. remark: ''
  126. }
  127. },
  128. // Submit
  129. submitForm(formName) {
  130. this.$refs[formName].validate((valid) => {
  131. if (valid) {
  132. this.handleCommand()
  133. } else {
  134. console.log('error submit!!')
  135. return false
  136. }
  137. })
  138. },
  139. // Handle Command
  140. handleCommand() {
  141. const actionType = this.actionType
  142. switch (actionType) {
  143. case ACTION_ADD:
  144. createAccess(this.formData).then((resp) => {
  145. const { code, msg } = resp
  146. if (code === 200) {
  147. this.dialogVisible = false
  148. this.$message.success(msg)
  149. this.formSuccess()
  150. } else {
  151. this.$message.error(msg)
  152. }
  153. }).catch((error) => {
  154. console.log(error)
  155. })
  156. break
  157. case ACTION_UPDATE:
  158. updateAccess(this.formData).then((resp) => {
  159. const { code, msg } = resp
  160. if (code === 200) {
  161. this.dialogVisible = false
  162. this.$message.success(msg)
  163. this.formSuccess()
  164. } else {
  165. this.$message.error(msg)
  166. }
  167. }).catch((error) => {
  168. console.log(error)
  169. })
  170. break
  171. }
  172. },
  173. // Report
  174. formSuccess() {
  175. this.$emit('formSuccess')
  176. }
  177. }
  178. }
  179. </script>
  180. <style lang="scss" scoped>
  181. </style>