Vue

HTML

<script src="https://cdn.jsdelivr.net/npm/vue@2.7.8/dist/vue.js"></script>
<div id="app">
  <div v-for="(item, index) in options">

      <label :for="'l' + item.name">{{ item.name }}</label>
      <input @click="selected = item.id" type="radio" :id="'l' + item.name" name="internalFinish" v-model="item.selected" :value="true">

      <div v-if="selected == item.id">
          <p>Accordion Open</p>
      </div>

  </div>
</div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#app {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  transition: all 0.2s;
}

li {
  margin: 8px 0;
}

h2 {
  font-weight: bold;
  margin-bottom: 15px;
}

del {
  color: rgba(0, 0, 0, 0.3);
}

Vue

new Vue({
  el: "#app",
  data: {
    options : [
      { 
          name          : 'Plasterboard with Skim Finish',
          range         : false,
          selected      : false,
          selectedValue : 0,
          id: 1
      },
      { 
          name          : 'Plasterboard on Dabs',
          range         : { min : 0, max : 100},
          selected      : false,
          selectedValue : 0,
          id: 2
      },
      { 
          name          : 'Plaster Finish',
          range         : { min : 60, max : 100},
          selected      : false,
          selectedValue : 0,
          id: 3
      },
  	],
    selected: 0
  }
})