BytedanceAppDownloadDetailPageModal.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <template>
  2. <a-modal
  3. :title="title"
  4. :width="800"
  5. :visible="visible"
  6. :confirmLoading="confirmLoading"
  7. @ok="handleOk"
  8. @cancel="handleCancel"
  9. cancelText="关闭">
  10. <a-spin :spinning="confirmLoading">
  11. <a-form :form="form">
  12. <a-form-item
  13. :labelCol="labelCol"
  14. :wrapperCol="wrapperCol"
  15. label="名称">
  16. <a-input placeholder="请输入名称" v-decorator="['name', {}]" />
  17. </a-form-item>
  18. <a-form-item
  19. :labelCol="labelCol"
  20. :wrapperCol="wrapperCol"
  21. label="应用下载链接">
  22. <a-input placeholder="请输入应用下载链接" v-decorator="['downloadUrl', {}]" />
  23. </a-form-item>
  24. <a-form-item
  25. :labelCol="labelCol"
  26. :wrapperCol="wrapperCol"
  27. label="应用名">
  28. <a-input placeholder="请输入应用名" v-decorator="['appName', {}]" />
  29. </a-form-item>
  30. </a-form>
  31. </a-spin>
  32. </a-modal>
  33. </template>
  34. <script>
  35. import { httpAction } from '@/api/manage'
  36. import pick from 'lodash.pick'
  37. import moment from "moment"
  38. export default {
  39. name: "BytedanceAppDownloadDetailPageModal",
  40. data () {
  41. return {
  42. title:"操作",
  43. visible: false,
  44. model: {},
  45. labelCol: {
  46. xs: { span: 24 },
  47. sm: { span: 5 },
  48. },
  49. wrapperCol: {
  50. xs: { span: 24 },
  51. sm: { span: 16 },
  52. },
  53. confirmLoading: false,
  54. form: this.$form.createForm(this),
  55. validatorRules:{
  56. },
  57. url: {
  58. add: "/ctop/bytedanceAppDownloadDetailPage/add",
  59. edit: "/ctop/bytedanceAppDownloadDetailPage/edit",
  60. },
  61. }
  62. },
  63. created () {
  64. },
  65. methods: {
  66. add () {
  67. this.edit({});
  68. },
  69. edit (record) {
  70. this.form.resetFields();
  71. this.model = Object.assign({}, record);
  72. this.visible = true;
  73. this.$nextTick(() => {
  74. this.form.setFieldsValue(pick(this.model,'name','downloadUrl','appName'))
  75. //时间格式化
  76. });
  77. },
  78. close () {
  79. this.$emit('close');
  80. this.visible = false;
  81. },
  82. handleOk () {
  83. const that = this;
  84. // 触发表单验证
  85. this.form.validateFields((err, values) => {
  86. if (!err) {
  87. that.confirmLoading = true;
  88. let httpurl = '';
  89. let method = '';
  90. if(!this.model.id){
  91. httpurl+=this.url.add;
  92. method = 'post';
  93. }else{
  94. httpurl+=this.url.edit;
  95. method = 'put';
  96. }
  97. let formData = Object.assign(this.model, values);
  98. //时间格式化
  99. console.log(formData)
  100. httpAction(httpurl,formData,method).then((res)=>{
  101. if(res.success){
  102. that.$message.success(res.message);
  103. that.$emit('ok');
  104. }else{
  105. that.$message.warning(res.message);
  106. }
  107. }).finally(() => {
  108. that.confirmLoading = false;
  109. that.close();
  110. })
  111. }
  112. })
  113. },
  114. handleCancel () {
  115. this.close()
  116. },
  117. }
  118. }
  119. </script>
  120. <style lang="less" scoped>
  121. </style>