| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | <template>  <ul v-if="data">    <li v-for="(item, itemIdx) in data" :key="item.itemCode">     <uni-row class="checklist-item">        <uni-col :span="3">          <template v-if="item.itemType === 1"></template>          <text style="padding-left: 8px;" v-else />        </uni-col>        <uni-col :span="2">          <text>{{ itemIdx + 1 }}</text>        </uni-col>        <uni-col :span="18">          <text>{{ item.itemTitle }}</text>        </uni-col>      </uni-row>      <checklist-item :data="item.children" @change="changePoint" />      <ul class="point-container">        <li v-for="(point, pointIdx) in item.pointList" :key="point.pointCode" class="checklist-point" @click="changePoint(point)">          <uni-row>            <uni-col :span="2">              <text> {{ pointIdx + 1 }}</text>            </uni-col>            <uni-col :span="18">              <text > {{ point.pointContent }} </text>			  <view class="uni-rate-container">				  <text>评价</text>			  	<uni-rate v-model="formData.score" />			  </view>            </uni-col>          </uni-row>        </li>      </ul>    </li>  </ul></template><script>import ChecklistItem from '@/components/ChecklistItem.vue'export default {  name: 'ChecklistItem',  props: {	value:{		type:[String,Number]	},	      data: {      type: Array,      default:()=>[]    }  },  components:{  	ChecklistItem  },  methods: {	changePoint(item){		this.$emit("input", item.pointId);		this.$emit("change",item);	}  }}</script><style lang="scss" scoped>ul {  padding-left: 20upx!important;  list-style-type: none;  .uni-col-3{    min-height: 1px;  }} .checklist-item {    color: #F7F7F7;    padding: 20upx 0;    line-height: 1; } .checklist-point {   padding-top: 20upx;   line-height: 1; }.uni-rate-container{	display: flex;	justify-content: flex-start;	align-items: center;	padding-top: 16upx;}</style>
 |