OptimizerConfigModal.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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-number v-decorator="[ 'appType', {}]" />
  17. </a-form-item>
  18. <a-form-item
  19. :labelCol="labelCol"
  20. :wrapperCol="wrapperCol"
  21. label="媒体任务">
  22. <a-input-number v-decorator="[ 'mediaTask', {}]" />
  23. </a-form-item>
  24. <a-form-item
  25. :labelCol="labelCol"
  26. :wrapperCol="wrapperCol"
  27. label="personalTask">
  28. <a-input-number v-decorator="[ 'personalTask', {}]" />
  29. </a-form-item>
  30. <a-form-item
  31. :labelCol="labelCol"
  32. :wrapperCol="wrapperCol"
  33. label="媒体任务完成下的提成比例 (千分之n)">
  34. <a-input-number v-decorator="[ 'mediaTaskFinishRate', {}]" />
  35. </a-form-item>
  36. <a-form-item
  37. :labelCol="labelCol"
  38. :wrapperCol="wrapperCol"
  39. label="媒体任务未完成下的提成比例 (千分之n)">
  40. <a-input-number v-decorator="[ 'mediaTaskNoFinishRate', {}]" />
  41. </a-form-item>
  42. <a-form-item
  43. :labelCol="labelCol"
  44. :wrapperCol="wrapperCol"
  45. label="是否有效">
  46. <a-input-number v-decorator="[ 'enabled', {}]" />
  47. </a-form-item>
  48. </a-form>
  49. </a-spin>
  50. </a-modal>
  51. </template>
  52. <script>
  53. import { httpAction } from '@/api/manage'
  54. import pick from 'lodash.pick'
  55. import moment from "moment"
  56. export default {
  57. name: "OptimizerConfigModal",
  58. data () {
  59. return {
  60. title:"操作",
  61. visible: false,
  62. model: {},
  63. labelCol: {
  64. xs: { span: 24 },
  65. sm: { span: 5 },
  66. },
  67. wrapperCol: {
  68. xs: { span: 24 },
  69. sm: { span: 16 },
  70. },
  71. confirmLoading: false,
  72. form: this.$form.createForm(this),
  73. validatorRules:{
  74. },
  75. url: {
  76. add: "/ctop/optimizerConfig/add",
  77. edit: "/ctop/optimizerConfig/edit",
  78. },
  79. }
  80. },
  81. created () {
  82. },
  83. methods: {
  84. add () {
  85. this.edit({});
  86. },
  87. edit (record) {
  88. this.form.resetFields();
  89. this.model = Object.assign({}, record);
  90. this.visible = true;
  91. this.$nextTick(() => {
  92. this.form.setFieldsValue(pick(this.model,'appType','mediaTask','personalTask','mediaTaskFinishRate','mediaTaskNoFinishRate','enabled'))
  93. //时间格式化
  94. });
  95. },
  96. close () {
  97. this.$emit('close');
  98. this.visible = false;
  99. },
  100. handleOk () {
  101. const that = this;
  102. // 触发表单验证
  103. this.form.validateFields((err, values) => {
  104. if (!err) {
  105. that.confirmLoading = true;
  106. let httpurl = '';
  107. let method = '';
  108. if(!this.model.id){
  109. httpurl+=this.url.add;
  110. method = 'post';
  111. }else{
  112. httpurl+=this.url.edit;
  113. method = 'put';
  114. }
  115. let formData = Object.assign(this.model, values);
  116. //时间格式化
  117. console.log(formData)
  118. httpAction(httpurl,formData,method).then((res)=>{
  119. if(res.success){
  120. that.$message.success(res.message);
  121. that.$emit('ok');
  122. }else{
  123. that.$message.warning(res.message);
  124. }
  125. }).finally(() => {
  126. that.confirmLoading = false;
  127. that.close();
  128. })
  129. }
  130. })
  131. },
  132. handleCancel () {
  133. this.close()
  134. },
  135. }
  136. }
  137. </script>
  138. <style lang="less" scoped>
  139. </style>