|  | @@ -99,11 +99,52 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        emit('update:value', result)
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    // 修改题目逻辑
 | 
	
		
			
				|  |  | +    const onSelectAnswer = (item: any) => {
 | 
	
		
			
				|  |  | +      // 判断是否已经选中了
 | 
	
		
			
				|  |  | +      if (item.checked) return
 | 
	
		
			
				|  |  | +      const result: any = []
 | 
	
		
			
				|  |  | +      state.options.forEach((option: any) => {
 | 
	
		
			
				|  |  | +        const originOption = answers.value.find(
 | 
	
		
			
				|  |  | +          (child: any) => child.examinationQuestionAnswerId === option.rightIndex
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +        result.push({
 | 
	
		
			
				|  |  | +          answerId: option.index,
 | 
	
		
			
				|  |  | +          answer: option.leftValue,
 | 
	
		
			
				|  |  | +          answerExtra: originOption.questionAnswer
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      const rightOption = answers.value[state.options.length]
 | 
	
		
			
				|  |  | +      result.push({
 | 
	
		
			
				|  |  | +        answerId: item.examinationQuestionAnswerId,
 | 
	
		
			
				|  |  | +        answer: item.questionAnswer,
 | 
	
		
			
				|  |  | +        answerExtra: rightOption.questionExtra
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      emit('update:value', result)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      initOptions()
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const answers = computed(() => {
 | 
	
		
			
				|  |  | +      const list: any = props.data.answers || []
 | 
	
		
			
				|  |  | +      const value: any = props.value || []
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      list.forEach((item: any) => {
 | 
	
		
			
				|  |  | +        const tempIndex = value.findIndex(
 | 
	
		
			
				|  |  | +          (c: any) => c.answerId === item.examinationQuestionAnswerId
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +        if (tempIndex !== -1) {
 | 
	
		
			
				|  |  | +          item.checked = tempIndex !== -1 ? true : false
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      return list
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  |      const initOptions = () => {
 | 
	
		
			
				|  |  |        const answers = props.data.answers || []
 | 
	
		
			
				|  |  |        const userAnswer = props.data.userAnswer || [] // 用户填写的答案
 | 
	
		
			
				|  |  | +      state.options = []
 | 
	
		
			
				|  |  |        if (userAnswer.length > 0) {
 | 
	
		
			
				|  |  | -        userAnswer.forEach((answer: any) => {
 | 
	
		
			
				|  |  | +        userAnswer.forEach((answer: any, index: any) => {
 | 
	
		
			
				|  |  |            const rightOption = answers.find(
 | 
	
		
			
				|  |  |              (child: any) => answer.answerId === child.examinationQuestionAnswerId
 | 
	
		
			
				|  |  |            )
 | 
	
	
		
			
				|  | @@ -111,6 +152,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |              (child: any) => answer.answerExtra === child.questionExtra
 | 
	
		
			
				|  |  |            )
 | 
	
		
			
				|  |  |            const tmp = {
 | 
	
		
			
				|  |  | +            itemIndex: index,
 | 
	
		
			
				|  |  |              index: answer.answerId, // 左边的值
 | 
	
		
			
				|  |  |              leftValue: answer.answer, // 左边的值
 | 
	
		
			
				|  |  |              rightValue: answer.answerExtra, // 右边的值
 | 
	
	
		
			
				|  | @@ -118,29 +160,28 @@ export default defineComponent({
 | 
	
		
			
				|  |  |              rightType: rightOption.questionExtraTypeCode || 'TXT', // 右边类型
 | 
	
		
			
				|  |  |              rightIndex: rightValue ? rightValue.examinationQuestionAnswerId : ''
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          console.log(tmp, '1212')
 | 
	
		
			
				|  |  | -          state.options.push(tmp)
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -        const resultValue: any = []
 | 
	
		
			
				|  |  | -        answers.forEach((answer: any) => {
 | 
	
		
			
				|  |  | -          const tmp = {
 | 
	
		
			
				|  |  | -            index: answer.examinationQuestionAnswerId, // 左边的值
 | 
	
		
			
				|  |  | -            leftValue: answer.questionAnswer, // 左边的值
 | 
	
		
			
				|  |  | -            rightValue: answer.questionExtra, // 右边的值
 | 
	
		
			
				|  |  | -            leftType: answer.questionAnswerTypeCode || 'TXT', // 左边类型
 | 
	
		
			
				|  |  | -            rightType: answer.questionExtraTypeCode || 'TXT' // 右边类型
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -          resultValue.push({
 | 
	
		
			
				|  |  | -            answerId: answer.examinationQuestionAnswerId,
 | 
	
		
			
				|  |  | -            answer: answer.questionAnswer,
 | 
	
		
			
				|  |  | -            answerExtra: answer.questionExtra
 | 
	
		
			
				|  |  | -          })
 | 
	
		
			
				|  |  |            state.options.push(tmp)
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | -        // 进页面就默认初始化答案
 | 
	
		
			
				|  |  | -        // emit('update:value', resultValue)
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | +      //  else {
 | 
	
		
			
				|  |  | +      //   const resultValue: any = []
 | 
	
		
			
				|  |  | +      //   answers.forEach((answer: any) => {
 | 
	
		
			
				|  |  | +      //     const tmp = {
 | 
	
		
			
				|  |  | +      //       index: answer.examinationQuestionAnswerId, // 左边的值
 | 
	
		
			
				|  |  | +      //       leftValue: answer.questionAnswer, // 左边的值
 | 
	
		
			
				|  |  | +      //       rightValue: answer.questionExtra, // 右边的值
 | 
	
		
			
				|  |  | +      //       leftType: answer.questionAnswerTypeCode || 'TXT', // 左边类型
 | 
	
		
			
				|  |  | +      //       rightType: answer.questionExtraTypeCode || 'TXT' // 右边类型
 | 
	
		
			
				|  |  | +      //     }
 | 
	
		
			
				|  |  | +      //     resultValue.push({
 | 
	
		
			
				|  |  | +      //       answerId: answer.examinationQuestionAnswerId,
 | 
	
		
			
				|  |  | +      //       answer: answer.questionAnswer,
 | 
	
		
			
				|  |  | +      //       answerExtra: answer.questionExtra
 | 
	
		
			
				|  |  | +      //     })
 | 
	
		
			
				|  |  | +      //     state.options.push(tmp)
 | 
	
		
			
				|  |  | +      //   })
 | 
	
		
			
				|  |  | +      //   // 进页面就默认初始化答案
 | 
	
		
			
				|  |  | +      // }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      onMounted(() => {
 | 
	
	
		
			
				|  | @@ -164,19 +205,40 @@ export default defineComponent({
 | 
	
		
			
				|  |  |              }}
 | 
	
		
			
				|  |  |            />
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -          <div class={[styles.unitAnswers, 'van-hairline--top']}>
 | 
	
		
			
				|  |  | -            <div class={styles.sortReset}>
 | 
	
		
			
				|  |  | -              <span class={styles.tips}>请长按拖拽答案进行排序</span>
 | 
	
		
			
				|  |  | +          <div class={[styles.unitAnswers]}>
 | 
	
		
			
				|  |  | +            {answers.value.map((item: any, index: number) => (
 | 
	
		
			
				|  |  | +              <div
 | 
	
		
			
				|  |  | +                class={[styles.unitAnswer, item.checked && styles.active]}
 | 
	
		
			
				|  |  | +                onClick={() => onSelectAnswer(item)}
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +                <div class={styles.answerContent}>
 | 
	
		
			
				|  |  | +                  <span class={styles.option}>{labelOptions[index + 1]}.</span>
 | 
	
		
			
				|  |  | +                  {item.questionAnswerTypeCode === AnswerType.IMAGE && (
 | 
	
		
			
				|  |  | +                    <div class={styles.value}>
 | 
	
		
			
				|  |  | +                      <Image src={item.questionAnswer} />
 | 
	
		
			
				|  |  | +                    </div>
 | 
	
		
			
				|  |  | +                  )}
 | 
	
		
			
				|  |  | +                  {item.questionAnswerTypeCode === AnswerType.TXT && (
 | 
	
		
			
				|  |  | +                    <div class={styles.value}>{item.questionAnswer}</div>
 | 
	
		
			
				|  |  | +                  )}
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                {props.showRate && <div class={styles.answerChoice}>{item.selectRate}%人选择</div>}
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            ))}
 | 
	
		
			
				|  |  | +            <div class={[styles.sortReset, 'van-hairline--top']}>
 | 
	
		
			
				|  |  | +              <span class={styles.tips}>我的回答(可拖拽)</span>
 | 
	
		
			
				|  |  |                <Button
 | 
	
		
			
				|  |  |                  type="primary"
 | 
	
		
			
				|  |  |                  round
 | 
	
		
			
				|  |  |                  disabled={props.readOnly}
 | 
	
		
			
				|  |  |                  onClick={() => {
 | 
	
		
			
				|  |  |                    const ids: any = []
 | 
	
		
			
				|  |  | -                  const answers = props.data.answers || []
 | 
	
		
			
				|  |  | +                  const answers = state.options || []
 | 
	
		
			
				|  |  | +                  // console.log(answers, 'reset')
 | 
	
		
			
				|  |  |                    answers.forEach((item: any) => {
 | 
	
		
			
				|  |  | -                    ids.push(item.examinationQuestionAnswerId)
 | 
	
		
			
				|  |  | +                    ids.push(item.itemIndex)
 | 
	
		
			
				|  |  |                    })
 | 
	
		
			
				|  |  | +                  console.log(ids)
 | 
	
		
			
				|  |  |                    state.sortable.sort(
 | 
	
		
			
				|  |  |                      ids.sort((a: any, b: any) => a - b),
 | 
	
		
			
				|  |  |                      true
 | 
	
	
		
			
				|  | @@ -192,7 +254,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                {state.options.map((item: any) => (
 | 
	
		
			
				|  |  |                  <>
 | 
	
		
			
				|  |  |                    {item.leftType === AnswerType.TXT && (
 | 
	
		
			
				|  |  | -                    <Tag class={[styles.items]} data-id={item.index}>
 | 
	
		
			
				|  |  | +                    <Tag class={[styles.items]} data-id={item.itemIndex}>
 | 
	
		
			
				|  |  |                        {item.leftValue}
 | 
	
		
			
				|  |  |                      </Tag>
 | 
	
		
			
				|  |  |                    )}
 |