sms-config-app-edit.tsx 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. import {defineComponent, onMounted, reactive, ref} from "vue";
  2. import {NButton, NForm, NFormItem, NFormItemGi, NGrid, NInput, NSelect, NSpace, useDialog, useMessage} from "naive-ui";
  3. import {musicSheetApplicationExtendUpdate, smsAppConfigUpdate, smsConfigRemove, smsConfigSave, smsConfigStatus, smsConfigUpdate, ssmsAppConfigSave} from "@views/music-library/api";
  4. import {sysApplicationPage} from "@views/menu-manage/api";
  5. export default defineComponent({
  6. name: 'sms-config-app-edit',
  7. props: {
  8. editMode: {
  9. type: String,
  10. required: true
  11. },
  12. smsConfigId: {
  13. type: Number,
  14. required: true
  15. },
  16. rowData: {
  17. type: Object,
  18. required: false
  19. },
  20. appData: {
  21. type: Array as any,
  22. required: true
  23. }
  24. },
  25. emits: ['close', 'getList'],
  26. setup(props, {slots, attrs, emit}) {
  27. const btnLoading = ref(false)
  28. const forms = reactive({
  29. appKey: null as any,
  30. sign: null,
  31. extendData: null,
  32. })
  33. const formsRef = ref()
  34. const state = reactive({
  35. rowData: null as any,
  36. musicSheetCategories: [] as any,
  37. })
  38. onMounted(async () => {
  39. state.rowData = props.rowData
  40. if (props.editMode == 'edit' && props.rowData) {
  41. forms.appKey = state.rowData.appKey
  42. forms.sign = state.rowData.sign
  43. forms.extendData = state.rowData.extendData
  44. }
  45. })
  46. const onSubmit = async () => {
  47. formsRef.value.validate(async (error: any) => {
  48. if (error) return false
  49. btnLoading.value = true
  50. try {
  51. let res;
  52. if (props.editMode == 'add') {
  53. res = await ssmsAppConfigSave(
  54. {
  55. ...forms,
  56. sysConfigId: props.smsConfigId
  57. }
  58. ) as any;
  59. } else {
  60. res = await smsAppConfigUpdate(
  61. {
  62. ...forms,
  63. id: state.rowData.id
  64. }
  65. ) as any;
  66. }
  67. if (res && res.code === 200) {
  68. emit('close')
  69. emit('getList')
  70. }
  71. } catch (error) {
  72. }
  73. btnLoading.value = false
  74. })
  75. }
  76. return () => {
  77. return (
  78. <div style="background: #fff; padding-top: 12px">
  79. <NForm
  80. ref={formsRef}
  81. labelPlacement="top"
  82. model={forms}
  83. label-placement="left"
  84. label-width="100"
  85. >
  86. <NGrid cols={2}>
  87. <NFormItemGi
  88. label="应用"
  89. path="appKey"
  90. rule={[
  91. {
  92. required: true,
  93. message: '请输入平台名称'
  94. }
  95. ]}
  96. >
  97. <NSelect
  98. placeholder="请选择平台"
  99. v-model:value={forms.appKey}
  100. options={props.appData}
  101. filterable
  102. />
  103. </NFormItemGi>
  104. <NFormItemGi
  105. label="签名"
  106. path="sign"
  107. rule={[
  108. {
  109. required: true,
  110. message: '请输入签名'
  111. }
  112. ]}
  113. >
  114. <NInput
  115. v-model:value={forms.sign}
  116. placeholder="请输入签名"
  117. clearable
  118. />
  119. </NFormItemGi>
  120. </NGrid>
  121. <NGrid cols={1}>
  122. <NFormItemGi
  123. label="拓展参数"
  124. path="extendData"
  125. rule={[
  126. {
  127. required: false,
  128. message: '请输入拓展参数'
  129. }
  130. ]}
  131. >
  132. <NInput
  133. v-model:value={forms.extendData}
  134. placeholder="请输入拓展参数"
  135. autosize={{minRows: 3}}
  136. type={'textarea'}
  137. />
  138. </NFormItemGi>
  139. </NGrid>
  140. </NForm>
  141. <NSpace justify="end">
  142. <NButton onClick={() => emit('close')}>取消</NButton>
  143. <NButton type="primary" onClick={onSubmit}
  144. loading={btnLoading.value}
  145. disabled={btnLoading.value}
  146. >
  147. 保存
  148. </NButton>
  149. </NSpace>
  150. </div>
  151. )
  152. }
  153. }
  154. })