WXL
2024-09-04 7eaee92ee52e1501480adbbe8a1af9ddecc04275
src/views/followvisit/record/detailpage/index.vue
@@ -1,48 +1,175 @@
<template>
  <!-- 聊连页面记录 -->
  <div class="Followupdetailspage">
    <div class="Followuserinfo">
      <div class="userinfo-text">随访详情</div>
      <div class="userinfo-value">
        <span><i class="el-icon-user-solid"></i>吴龙</span><span>男</span
        ><span><i class="el-icon-user-solid"></i>13803963330</span
        ><span>出院时间::2023-03-29 08:57:57</span>
      <div>
        <div class="userinfo-text">{{ sendname }}<span>患者服务详情详情</span>
          <!-- <el-button type="success">随访后短信</el-button> -->
        </div>
      </div>
      <div><el-button type="success">随访后短信</el-button></div>
      <div>
        <el-table :data="logsheetlist" style="width: 100%">
          <el-table-column
            prop="sendname"
            align="center"
            label="姓名"
          >
          </el-table-column>
          <el-table-column
            prop="sendstate"
            align="center"
            label="服务状态"
          >
          </el-table-column>
          <el-table-column
            prop="updateTime"
            align="center"
            label="完成时间"
            width="200"
            show-overflow-tooltip
          >
          </el-table-column>
          <el-table-column prop="taskName" align="center" width="200"
          show-overflow-tooltip label="任务名称">
          </el-table-column>
          <el-table-column
            prop="templatename"
            align="center"
            label="服务模板"
            width="200"
            show-overflow-tooltip
          >
          </el-table-column>
          <el-table-column
            prop="bankcardno"
            align="center"
            label="呼叫状态"
            width="210"
          >
          </el-table-column>
          <el-table-column
          label="操作"
          fixed="right"
          align="center"
          width="200"
          class-name="small-padding fixed-width"
        >
          <template slot-scope="scope">
            <el-button
              size="medium"
              type="text"
              @click="Seedetails(scope.row)"
              v-hasPermi="['system:user:edit']"
              ><span class="button-zx"
                ><i class="el-icon-s-order"></i>查看服务</span
              ></el-button
            >
          </template>
        </el-table-column>
        </el-table>
      </div>
    </div>
    <div>
      <el-tabs type="border-card">
        <el-tab-pane>
          <span class="mulsz" slot="label"
            ><i class="el-icon-headset"></i> 语音详情1</span
            ><i class="el-icon-notebook-1"></i> 问卷随访结果</span
          >
          <div class="borderdiv">语音详情1</div>
          <div class="CONTENT">
      <div class="title">{{ taskname ? taskname : "问卷" }}</div>
      <div class="preview-left">
        <!-- 单选 -->
        <div
          class="topic-dev"
          v-for="(item, index) in tableDatatop"
          :key="item.aaa"
        >
          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 1">
            <div class="dev-text">
              {{ index + 1 }}、[单选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-radio-group
                v-model="item.scriptResult"
                @change="handleOptionChange($event, index, item)"
              >
                <el-radio
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                  :key="index"
                  :label="items.optioncontent"
                  >{{ items.optioncontent }}</el-radio
                >
              </el-radio-group>
            </div>
            <div v-show="item.prompt">
              <el-alert :title="item.prompt" type="warning"> </el-alert>
            </div>
          </div>
          <!-- 多选 -->
          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 2">
            <div class="dev-text">
              {{ index + 1 }}、[多选]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-checkbox-group
                v-model="item.scriptResult"
                @change="updateScore($event, index, item)"
              >
                <el-checkbox
                  @change="$forceUpdate()"
                  v-for="(items, indexs) in item.svyLibTemplateTargetoptions"
                  :key="indexs"
                  :label="items.optioncontent"
                >
                  {{ items.optioncontent }}
                </el-checkbox>
              </el-checkbox-group>
            </div>
            <div v-show="item.prompt && item.scriptResult[0]">
              <el-alert :title="item.prompt" type="warning"> </el-alert>
            </div>
          </div>
          <!-- 填空 -->
          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 4">
            <div class="dev-text">
              {{ index + 1 }}、[问答]<span>{{ item.scriptContent }}</span>
            </div>
            <div class="dev-xx">
              <el-input
                type="textarea"
                :rows="2"
                placeholder="请输入答案"
                v-model="item.scriptResult"
                clearable
              >
              </el-input>
            </div>
          </div>
        </div>
      </div>
    </div>
        </el-tab-pane>
        <el-tab-pane>
          <span class="mulsz" slot="label"
            ><i class="el-icon-headset"></i> 语音详情2</span
          >
          <div class="borderdiv">语音详情2</div>
        </el-tab-pane>
        <el-tab-pane>
          <span class="mulsz" slot="label"
            ><i class="el-icon-notebook-1"></i> 语音信息</span
          >
          <div class="borderdiv">语音信息</div>
        </el-tab-pane>
        <el-tab-pane>
          <span class="mulsz" slot="label"
            ><i class="el-icon-phone-outline"></i> 外呼信息</span
          >
          <div class="borderdiv">外呼信息</div>
        </el-tab-pane>
        <el-tab-pane>
          <span class="mulsz" slot="label"
            ><i class="el-icon-s-operation"></i> 标签状态</span
            ><i class="el-icon-headset"></i> 语音随访详情</span
          >
          <div class="borderdiv">
            <el-radio v-model="radio" label="1">不处理</el-radio>
            <el-radio v-model="radio" label="2">继续跟踪</el-radio
            ><el-radio v-model="radio" label="3">通知医院就诊</el-radio>
            <div>
              <div class="leftside">
                <i class="el-icon-phone-outline"></i><span>您今天身体情况怎么样</span>
              </div>
              <div class="offside">
                <i class="el-icon-user"></i>
                <div class="offside-value">
                  <el-input v-model="input"></el-input>
                  <el-radio v-model="radio" label="1">很棒</el-radio>
                  <el-radio v-model="radio" label="2">还可以</el-radio>
                  <el-radio v-model="radio" label="3">不太好</el-radio>
                  <el-radio v-model="radio" label="4">比较差</el-radio>
                </div>
              </div>
            </div>
          </div>
        </el-tab-pane>
      </el-tabs>
@@ -51,28 +178,82 @@
</template>
<script>
import {
  getsearchrResult,
  getTaskservelist,
} from "@/api/AiCentre/index";
export default {
  data() {
    return {
      radio: "1",
      userid: "",
      input: "今天身体还不错",
      radio: "2",
      taskname:'',
      tableDatatop: [],//题目表
      logsheetlist:[],
      sendname:null,
      serviceType:null,
      taskid:null,
      patid:null,
    };
  },
  created() {},
  created() {
    this.taskid=this.$route.query.taskid;
    this.sendname=this.$route.query.sendname;
    this.patid=this.$route.query.patid;
    this.serviceType=this.$route.query.serviceType;
    this.getsearchrResult();
    this.getTaskservelist();
  },
  methods: {},
  methods: {
    // 获取问卷数据
    getsearchrResult(){
      getsearchrResult({
        taskid:this.taskid,
        patid:this.patid,
      }).then((res) => {
        if (res.code === 200) {
          this.tableDatatop = res.data.scriptResult.script;
          this.taskname = res.data.taskName;
        }
      });
    },
    // 获取患者记录
    getTaskservelist(){
      getTaskservelist({
        patid:this.patid,
      }).then((res) => {
        if (res.code == 200) {
          this.logsheetlist = res.rows;
        }
      });
    },
    Seedetails(){},
  },
};
</script>
<style lang="scss" scoped>
.Followupdetailspage {
  margin: 10px;
}
.Followuserinfo {
  margin: 20px 10px;
  display: flex;
  align-items: center;
  padding: 30px;
  background: #ffff;
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
    0 0 6px 0 rgba(0, 0, 0, 0.04);
  .userinfo-text {
    font-size: 20px;
    margin-right: 20px;
    margin-bottom: 10px;
  }
  .userinfo-value {
    color: rgb(15, 139, 211);
@@ -83,6 +264,58 @@
}
.borderdiv {
  min-height: 60vh;
  font-size: 20px;
  padding: 30px;
  .leftside {
    margin-bottom: 30px;
    span {
      width: 400px;
      margin-left: 20px;
      padding: 10px;
      color: #fff;
      background: rgb(110, 196, 247);
      border-radius: 10px;
    }
  }
  .offside {
    display: flex;
    flex-direction: row-reverse;
    .offside-value {
      padding: 10px;
      background: rgb(217, 173, 253);
      border-radius: 10px;
      color: #fff;
      margin-right: 20px;
    }
  }
}
.CONTENT {
    padding: 10px;
    .title {
      font-size: 22px;
      font-weight: bold;
      margin-bottom: 20px;
      text-align: center;
    }
  }
  .preview-left {
  margin: 20px;
  //   margin: 20px;
  padding: 30px;
  // background: #ffff;
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
    0 0 6px 0 rgba(0, 0, 0, 0.04);
  .topic-dev {
    margin-bottom: 25px;
    font-size: 20px !important;
    .dev-text {
      margin-bottom: 10px;
    }
  }
}
::v-deep.offside-value .el-radio__label {
  color: #fff;
}
.mulsz {
  font-size: 25px;