member-fee.tsx 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import { NAlert, NButton, NForm, NFormItemGi, NGrid, NInput, useMessage } from 'naive-ui'
  2. import { defineComponent, reactive, ref, shallowRef } from 'vue'
  3. import { getVipPriceSettings, setVipPriceSettings } from '../../api'
  4. import styles from './index.module.less'
  5. export default defineComponent({
  6. name: 'member-fee',
  7. setup() {
  8. const forms = reactive({ id: 0, originalPrice: 0, salePrice: 0 }) as any
  9. const beforeData: any = shallowRef({}) // 储存原始数据
  10. const formsRef = ref()
  11. const btnLoading = ref(false)
  12. const message = useMessage()
  13. const getList = async () => {
  14. try {
  15. const { data } = await getVipPriceSettings({ page: 1, rows: 999, cardTypes: ['VIP'] })
  16. const rows = data.rows[0]
  17. forms.id = rows.id
  18. forms.originalPrice = rows.originalPrice
  19. forms.salePrice = rows.salePrice
  20. console.log(forms)
  21. // beforeData.value = { ...forms }
  22. } catch {}
  23. }
  24. // // 数组进行对比
  25. // const dataCompare = (beforeData: any, afterData: any) => {
  26. // const changeDate: any = []
  27. // for (let key in beforeData) {
  28. // if (beforeData[key] != afterData[key]) {
  29. // changeDate.push({
  30. // id: key,
  31. // paramValue: afterData[key]
  32. // })
  33. // }
  34. // }
  35. // return changeDate || []
  36. // }
  37. const onSubmit = async () => {
  38. formsRef.value.validate(async (errors: any) => {
  39. if (errors) return
  40. try {
  41. const res = await setVipPriceSettings({ ...forms })
  42. } catch (e) {
  43. console.log(e)
  44. }
  45. message.success('保存成功')
  46. })
  47. }
  48. getList()
  49. return () => (
  50. <>
  51. <NForm ref={formsRef} labelPlacement="left" model={forms} requireMarkPlacement="left">
  52. <NAlert title="会员价格" showIcon={false} bordered={false} style="margin-bottom: 12px;" />
  53. <NGrid class={styles.pl13} cols={1}>
  54. <NFormItemGi
  55. label="会员原价"
  56. path="originalPrice"
  57. rule={[
  58. {
  59. required: true,
  60. pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
  61. message: '请输正确的会员原价',
  62. trigger: ['blur', 'input']
  63. }
  64. ]}
  65. >
  66. <NInput class={[styles.w140, styles.mr14]} v-model:value={forms.originalPrice}>
  67. {{ suffix: () => '元' }}
  68. </NInput>
  69. </NFormItemGi>
  70. </NGrid>
  71. <NGrid class={styles.pl13} cols={1}>
  72. <NFormItemGi
  73. label="会员售价"
  74. path="salePrice"
  75. rule={[
  76. {
  77. required: true,
  78. pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
  79. message: '请输正确的入会员售价',
  80. trigger: ['blur', 'input']
  81. }
  82. ]}
  83. >
  84. <NInput class={[styles.w140, styles.mr14]} v-model:value={forms.salePrice}>
  85. {{ suffix: () => '元' }}
  86. </NInput>
  87. </NFormItemGi>
  88. </NGrid>
  89. </NForm>
  90. <NButton
  91. type="primary"
  92. onClick={onSubmit}
  93. loading={btnLoading.value}
  94. //v-auth="vipPriceSettings/update1623234797500751874"
  95. >
  96. 保存设置
  97. </NButton>
  98. </>
  99. )
  100. }
  101. })