company-form.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <template>
  2. <div>
  3. <el-dialog v-model="state.showDialog" destroy-on-close :title="title" draggable :close-on-click-modal="false"
  4. :close-on-press-escape="false" width="30%">
  5. <el-form ref="formRef" :model="form" size="default" label-width="80px">
  6. <el-row :gutter="35">
  7. <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
  8. <p>默认分成比例</p>
  9. <p>修改所有项目默认的分成比例(抽成金额精确到小数点后一位)</p>
  10. </el-col>
  11. <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
  12. <el-form-item label="分成比例" prop="drawRatio"
  13. :rules="[{ required: true, message: '请输入分成比例', trigger: ['blur', 'change'] }]">
  14. <el-input v-model="form.drawRatio" autocomplete="off" >
  15. <template v-slot:append>%</template>
  16. </el-input>
  17. </el-form-item>
  18. </el-col>
  19. <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
  20. <el-form-item label="生效日期" prop="effectDate" :rules="[{ required: true, message: '请输入生效日期', trigger: ['blur', 'change'] }]">
  21. <el-date-picker type="date" v-model="form.effectDate" placeholder="选择日期" format="YYYY-MM-DD"
  22. class="w100">
  23. </el-date-picker>
  24. </el-form-item>
  25. </el-col>
  26. </el-row>
  27. </el-form>
  28. <template #footer>
  29. <span class="dialog-footer">
  30. <el-button @click="onCancel" size="default">取 消</el-button>
  31. <el-button type="primary" @click="onSure" size="default" :loading="state.sureLoading">确 定</el-button>
  32. </span>
  33. </template>
  34. </el-dialog>
  35. </div>
  36. </template>
  37. <script lang="ts" setup name="admin/projectprice/companyform">
  38. // import { stat } from 'fs'
  39. import { reactive, toRefs, ref } from 'vue'
  40. import { CompanyDrawInput } from '/@/api/admin/data-contracts'
  41. import { ProjectPriceApi } from '/@/api/admin/ProjectPrice'
  42. import eventBus from '/@/utils/mitt'
  43. import { formatDate } from '/@/utils/formatTime'
  44. defineProps({
  45. title: {
  46. type: String,
  47. default: '',
  48. },
  49. })
  50. const formRef = ref()
  51. const state = reactive({
  52. value2:'',
  53. showDialog: false,
  54. sureLoading: false,
  55. form: {} as CompanyDrawInput
  56. })
  57. const { form } = toRefs(state)
  58. // 打开对话框
  59. const open = async () => {
  60. state.form = {} as CompanyDrawInput
  61. state.showDialog = true
  62. }
  63. // 取消
  64. const onCancel = () => {
  65. state.showDialog = false
  66. }
  67. // 确定
  68. const onSure = () => {
  69. formRef.value.validate(async (valid: boolean) => {
  70. if (!valid) return
  71. let dn= formatDate(state.form.effectDate,"YYYY-mm-dd");
  72. state.form.effectDate=dn
  73. state.sureLoading = true
  74. let res = {} as any
  75. res = await new ProjectPriceApi().updateCompany(state.form, { showSuccessMessage: true }).catch(() => {
  76. state.sureLoading = false
  77. })
  78. state.sureLoading = false
  79. if (res?.success) {
  80. eventBus.emit('refreshCompanyDraw')
  81. state.showDialog = false
  82. }
  83. })
  84. }
  85. defineExpose({
  86. open,
  87. })
  88. </script>