WXL
2024-09-11 b5a56d53e44c426fa188ba3e4e1db3eb779e2fd9
src/views/followvisit/record/detailpage/index.vue
@@ -2,33 +2,178 @@
  <!-- 聊连页面记录 -->
  <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">
          <!-- <span>患者服务详情</span> -->
          <div class="headline">
              <div>患者服务详情</div>
              <div style="margin-left: 20px">
                    <el-button
                    v-if="!Whetherall"
                      type="primary"
                      @click="getTaskservelist()"
                    >查看患者全部服务</el-button>
                    <el-button
                    v-else
                      type="success"
                      @click="getTaskservelist(taskid)"
                    >查看患者本次服务信息</el-button>
              </div>
            </div>
          <!-- <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="finishtime"
            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">
            <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">备选项2</el-radio>
                  <el-radio v-model="radio" label="3">备选项3</el-radio>
                  <el-radio v-model="radio" label="4">备选项4</el-radio>
          <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>
@@ -36,30 +181,25 @@
        </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>
@@ -68,30 +208,96 @@
</template>
<script>
import { getsearchrResults, getTaskservelist } from "@/api/AiCentre/index";
export default {
  data() {
    return {
      radio: "1",
      userid: "",
      input: "",
      input: "今天身体还不错",
      radio: "2",
      taskname: "",
      tableDatatop: [], //题目表
      Whetherall:false, //是否全部记录展示
      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.getsearchrResults();
    this.getTaskservelist(this.taskid);
  },
  methods: {},
  methods: {
    // 获取问卷数据
    getsearchrResults() {
      getsearchrResults({
        taskid: this.taskid,
        patid: this.patid,
      }).then((res) => {
        if (res.code === 200) {
          this.tableDatatop = res.data.scriptResult.script;
          this.tableDatatop.forEach((item) => {
            if (item.scriptResult && item.scriptType != 2) {
              item.scriptResult = JSON.parse(item.scriptResult);
            } else if (item.scriptResult && item.scriptType == 2) {
              item.scriptResult = item.scriptResult.split("&");
            }
          });
          this.taskname = res.data.taskName;
        }
      });
    },
    // 获取患者记录
    getTaskservelist(taskid) {
      if (taskid) {
        this.Whetherall=false;
      }else{
        this.Whetherall=true;
      }
      getTaskservelist({
        patid: this.patid,
        taskid: taskid,
      }).then((res) => {
        if (res.code == 200) {
          this.logsheetlist = res.rows;
        }
      });
    },
    Seedetails(row) {
      this.$modal.confirm('是否查看任务为"' + optionids + '"的服务项?').then(function () {
        }).then(() => {
          this.getList();
        }).catch(() => { });
    },
  },
};
</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);
@@ -127,6 +333,45 @@
    }
  }
}
.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;
    }
  }
}
.headline {
    font-size: 24px;
    height: 40px;
    border-left: 5px solid #41a1be;
    padding-left: 5px;
    margin-bottom: 10px;
    display: flex;
    // justify-content: space-between;
    .Add-details {
      font-size: 18px;
      color: #02a7f0;
      cursor: pointer;
    }
  }
::v-deep.offside-value .el-radio__label {
  color: #fff;
}