Данные переключателя не сохраняются в базе данных Postgres даже после сообщения об успешном выполнении

#postgresql #vue.js #antd #vuejs3 #antdv

Вопрос:

Привет, у меня есть эти переключатели, где я хочу сохранить их данные в формате json в моей базе данных Postgres . Это не отправляется, я получаю сообщение.успех, в котором говорится, что я это сделал, но когда я проверяю свою базу данных, ничего не происходит. Я точно не знаю, где я ошибаюсь, поэтому, если вы можете помочь, пожалуйста, поделитесь. PS: Я использую Ant Design vue, вот откуда берется «а». Я нажимаю на кнопку, и она открывает модальный режим, в котором у меня есть переключатели :

  <template #modalite="{ record }">
    <span>
      <a-button
        @click="showModalite(record)"
        class="btn btn-sm btn-light mr-2"
      >
        <i class="fe fe-edit mr-2" />
        Modalité 
      </a-button>
      
    </span>
  </template>
 

а вот мой код кнопок :

  <a-modal
  v-model:visible="visible"
  :width="500"
  @ok="ChangeModalite(modelInfo)"
>
 <div class="row">
     <a-radio-group name="radioGroup" v-model:value="traitement">
    <div class="col-md-6">Négociation directe</div>
    <div class="col-md-3">
      <a-radio value="Négociation directe"  v-model:checked="modalite.negociation" />
    </div>
    <div class="col-md-6">Appel à concurrence</div>
    <div class="col-md-3">
      <a-radio value="Appel à concurrence" v-model:checked="modalite.concurrence"/>
    </div>
     </a-radio-group>
  </div> 

  
</a-modal>
 

Сценарий :

 setup() {
const visible = ref(false)
 const traitement = ref('Négociation directe');
const modalite = ref({
  negociation:false,
  concurrence:false,
})
 const showModalite = (record) => {
  modelInfo.value = record
  modalite.value = { ...modalite.value, ...record.modalite }
  visible.value = true
}
  const ChangeModalite = (record) => {
  console.log(record.id ": " traitement.value)

  axios.patch('/prop/'   record.id,{
    modalite:modalite.value,
  })
  .then(()=>{
    record.modalite=modalite.value
      Object.assign(
        dataSource.value.filter((item) => record.id === item.id),
        record,
      )        
    message.success(`successfully updated !!`)
    visible.value = false
  })
  .catch((e)=>{
    message.warning("smthg wrong ")
  })
}

return {
  dataSource,
  modelInfo,
  showModalite,
  ChangeModalite,
  modalite,
  traitement,

   }
  },
         }
 

Итак, что происходит сейчас, так это то, что я получаю «последовательно обновленную» msg без реального обновления.где я что-то пропустил?

Ответ №1:

Я изменил тип с json на строку в своей БД, все работает нормально, когда я изменил эту строку : axios.patch('/prop/' record.id,{ modalite:modalite.value, }) на это axios.patch('/prop/' record.id,{ modalite:traitement.value, }) , так что данные обновляются, все еще не знаю, почему с типом json это не работает, но, по крайней мере, я нашел способ, если у вас есть объяснение или предложение, оно будет оценено .