WXL
2024-09-12 2c4c416bf7950c72ffa2543a218e4fd993ee2af2
src/views/followvisit/record/detailpage/index.vue
@@ -3,34 +3,47 @@
  <div class="Followupdetailspage">
    <div class="Followuserinfo">
      <div>
        <div class="userinfo-text">{{ sendname }}<span>患者服务详情详情</span>
        <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-table :data="logsheetlist" style="width: 100%">
          <el-table-column
            prop="sendname"
            align="center"
            label="姓名"
          >
          <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="sendstate"
            align="center"
            label="服务状态"
          >
          </el-table-column>
          <el-table-column
            prop="updateTime"
            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
            prop="taskName"
            align="center"
            width="200"
            show-overflow-tooltip
            label="任务名称"
          >
          </el-table-column>
          <el-table-column
            prop="templatename"
@@ -48,25 +61,25 @@
            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-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>
@@ -77,78 +90,94 @@
            ><i class="el-icon-notebook-1"></i> 问卷随访结果</span
          >
          <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)"
            <div class="title">{{ taskname ? taskname : "问卷" }}</div>
            <div class="preview-left">
              <!-- 单选 -->
              <div
                class="topic-dev"
                v-for="(item, index) in tableDatatop"
                :key="item.aaa"
              >
                <el-radio
                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
                <div
                  class="scriptTopic-dev"
                  :key="index"
                  :label="items.optioncontent"
                  >{{ items.optioncontent }}</el-radio
                  v-if="item.scriptType == 1"
                >
              </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"
                  <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"
                >
                  {{ 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 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>
          <!-- 填空 -->
          <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"
@@ -157,7 +186,8 @@
          <div class="borderdiv">
            <div>
              <div class="leftside">
                <i class="el-icon-phone-outline"></i><span>您今天身体情况怎么样</span>
                <i class="el-icon-phone-outline"></i
                ><span>您今天身体情况怎么样</span>
              </div>
              <div class="offside">
                <i class="el-icon-user"></i>
@@ -178,11 +208,7 @@
</template>
<script>
import {
  getsearchrResult,
  getTaskservelist,
} from "@/api/AiCentre/index";
import { getsearchrResults, getTaskservelist } from "@/api/AiCentre/index";
export default {
  data() {
    return {
@@ -190,50 +216,68 @@
      userid: "",
      input: "今天身体还不错",
      radio: "2",
      taskname:'',
      tableDatatop: [],//题目表
      logsheetlist:[],
      sendname:null,
      serviceType:null,
      taskid:null,
      patid:null,
      taskname: "",
      tableDatatop: [], //题目表
      Whetherall:false, //是否全部记录展示
      logsheetlist: [],
      sendname: null,
      serviceType: null,
      taskid: null,
      patid: null,
    };
  },
  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();
    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: {
    // 获取问卷数据
    getsearchrResult(){
      getsearchrResult({
        taskid:this.taskid,
        patid:this.patid,
    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(){
    getTaskservelist(taskid) {
      if (taskid) {
        this.Whetherall=false;
      }else{
        this.Whetherall=true;
      }
      getTaskservelist({
        patid:this.patid,
        patid: this.patid,
        taskid: taskid,
      }).then((res) => {
        if (res.code == 200) {
          this.logsheetlist = res.rows;
        }
      });
    },
    Seedetails(){},
    Seedetails(row) {
      this.$modal.confirm('是否查看任务为"' + optionids + '"的服务项?').then(function () {
        }).then(() => {
          this.getList();
        }).catch(() => { });
    },
  },
};
</script>
@@ -290,15 +334,15 @@
  }
}
.CONTENT {
    padding: 10px;
    .title {
      font-size: 22px;
      font-weight: bold;
      margin-bottom: 20px;
      text-align: center;
    }
  padding: 10px;
  .title {
    font-size: 22px;
    font-weight: bold;
    margin-bottom: 20px;
    text-align: center;
  }
  .preview-left {
}
.preview-left {
  margin: 20px;
  //   margin: 20px;
  padding: 30px;
@@ -314,6 +358,20 @@
    }
  }
}
.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;
}