WXL
2024-09-11 b5a56d53e44c426fa188ba3e4e1db3eb779e2fd9
src/views/followvisit/tasklist/index.vue
@@ -12,12 +12,18 @@
        label-width="98px"
      >
        <el-form-item label="任务名称">
          <el-input v-model="topqueryParams.name"></el-input>
          <el-input
            v-model="topqueryParams.taskName"
            @keyup.enter.native="handleQuery"
          ></el-input>
        </el-form-item>
        <el-form-item label="审核人">
          <el-input v-model="topqueryParams.name"></el-input>
        <el-form-item label="创建人">
          <el-input
            v-model="topqueryParams.createBy"
            @keyup.enter.native="handleQuery"
          ></el-input>
        </el-form-item>
        <el-form-item label="审核时间">
        <el-form-item label="创建时间">
          <el-date-picker
            v-model="dateRange"
            style="width: 240px"
@@ -28,32 +34,17 @@
            end-placeholder="结束日期"
          ></el-date-picker>
        </el-form-item>
        <el-form-item label="随访类型" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
            <el-option
              v-for="item in topicoptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        <el-form-item label="服务项目" prop="status">
          <el-input
            v-model="topqueryParams.templatename"
            @keyup.enter.native="handleQuery"
          ></el-input>
        </el-form-item>
        <el-form-item label="模版" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
        <el-form-item label="任务状态" prop="status">
          <el-select v-model="topqueryParams.sendState" placeholder="请选择">
            <el-option
              v-for="item in topicoptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="门诊随访状态" prop="status">
          <el-select v-model="topqueryParams.topic" placeholder="请选择">
            <el-option
              v-for="item in topicoptions"
              v-for="item in dict.type.task_status"
              :key="item.value"
              :label="item.label"
              :value="item.value"
@@ -125,19 +116,18 @@
              :columns="columns"
            ></right-toolbar> -->
      <el-table v-loading="loading" :data="userList">
        <el-table-column
        <!-- <el-table-column
          label="序号"
          fixed
          align="center"
          key="taskid"
          prop="taskid"
        />
        /> -->
        <el-table-column
          label="任务名称"
          fixed
          align="center"
          sortable
          key="taskName"
          prop="taskName"
          :show-overflow-tooltip="true"
@@ -147,6 +137,12 @@
          align="center"
          key="taskDesc"
          prop="taskDesc"
        />
        <el-table-column
          label="服务项目"
          align="center"
          key="templatename"
          prop="templatename"
        />
        <el-table-column
          label="待执行/总任务"
@@ -174,7 +170,7 @@
          width="160"
        >
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.createTime) }}</span>
            <span>{{ formatTime(scope.row.createTime) }}</span>
          </template>
        </el-table-column>
        <el-table-column
@@ -209,18 +205,10 @@
                ><i class="el-icon-s-promotion"></i>任务发起</span
              ></el-button
            >
            <el-button
              v-if="scope.row.sendState == 1 || scope.row.sendState == 3"
              size="medium"
              type="text"
              @click="immediateExecution(scope.row)"
              ><span class="button-lj"
                ><i class="el-icon-s-promotion"></i>立即执行</span
              ></el-button
            >
            <el-button size="medium" type="text" @click="newAdd(scope.row)"
              ><span class="button-xj"
                ><i class="el-icon-circle-plus-outline"></i>依照新增</span
                ><i class="el-icon-circle-plus-outline"></i>任务终止</span
              ></el-button
            >
            <el-button
@@ -275,49 +263,59 @@
      width="50%"
      :before-close="handleClose"
    >
      <div style="font-size: 20px; color: red; margin-bottom: 20px">
        请确认任务"{{ taskform.taskName }}"的执行时间
      </div>
      <div
        style="font-size: 18px; margin-bottom: 20px"
        v-if="taskform.showDate"
      >
        执行日期:<span
          style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
          >{{ taskform.showDate[0] }} 至 {{ taskform.showDate[1] }}</span
        >
      </div>
      <div
        style="font-size: 18px; margin-bottom: 20px"
        v-if="taskform.showTimeMorn[0]"
      >
        第一时间段:<span
          style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
          >{{ taskform.showTimeMorn[0] }} 至
          {{ taskform.showTimeMorn[1] }}</span
        >
      </div>
      <div
        style="font-size: 18px; margin-bottom: 20px"
        v-if="taskform.showTimeNight[0]"
      >
        第二时间段:<span
          style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
          >{{ taskform.showTimeNight[0] }} 至
          {{ taskform.showTimeNight[1] }}</span
        >
      </div>
      <div
        style="font-size: 18px; margin-bottom: 20px"
        v-if="taskform.showTimeNoon[0]"
      >
        第三时间段:<span
          style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
          >{{ taskform.showTimeNoon[0] }} 至
          {{ taskform.showTimeNoon[1] }}</span
        >
      </div>
      <div style="text-align: right">
      <el-tabs type="border-card" v-model="activname">
        <el-tab-pane>
          <span slot="label"><i class="el-icon-date"></i> 正常发起</span>
          <div style="font-size: 20px; color: red; margin-bottom: 20px">
            请确认任务"{{ taskform.taskName }}"的执行时间
          </div>
          <div
            style="font-size: 18px; margin-bottom: 20px"
            v-if="taskform.showDate"
          >
            执行日期:<span
              style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
              >{{ taskform.showDate[0] }} 至 {{ taskform.showDate[1] }}</span
            >
          </div>
          <div
            style="font-size: 18px; margin-bottom: 20px"
            v-if="taskform.showTimeMorn[0]"
          >
            第一时间段:<span
              style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
              >{{ taskform.showTimeMorn[0] }} 至
              {{ taskform.showTimeMorn[1] }}</span
            >
          </div>
          <div
            style="font-size: 18px; margin-bottom: 20px"
            v-if="taskform.showTimeNight[0]"
          >
            第二时间段:<span
              style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
              >{{ taskform.showTimeNight[0] }} 至
              {{ taskform.showTimeNight[1] }}</span
            >
          </div>
          <div
            style="font-size: 18px; margin-bottom: 20px"
            v-if="taskform.showTimeNoon[0]"
          >
            第三时间段:<span
              style="font-size: 18px; color: #2376b7; margin-bottom: 20px"
              >{{ taskform.showTimeNoon[0] }} 至
              {{ taskform.showTimeNoon[1] }}</span
            >
          </div>
        </el-tab-pane>
        <el-tab-pane label="立即执行">
          <div style="font-size: 20px; color: red; margin-bottom: 20px">
            此操作将立即发起并执行任务:{{ taskform.taskName }},请谨慎操作!
          </div>
        </el-tab-pane>
      </el-tabs>
      <div style="text-align: right; margin: 20px 0">
        <el-button style="margin-right: 20px" @click="taskformVisible = false"
          >取 消</el-button
        >
@@ -354,6 +352,7 @@
  Questionnairetasksponsor,
  TaskTemplateSendExecution,
} from "@/api/AiCentre/index";
import store from "@/store";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -416,30 +415,40 @@
      taskoptions: [
        {
          value: "1",
          label: "宣教服务",
          label: "监测评估",
        },
        {
          value: "2",
          label: "门诊随访",
        },
        {
          value: "3",
          label: "出院随访",
        },
        {
          value: "3",
          label: "门诊随访",
        },
        {
          value: "4",
          label: "复诊服务",
          label: "宣教关怀",
        },
        {
          value: "5",
          label: "体检通知",
          label: "复诊管理",
        },
        {
          value: "6",
          label: "问卷服务",
          label: "满意度调查",
        },
        {
          value: "7",
          label: "患者报告",
        },
        {
          value: "8",
          label: "其他通知",
        },
      ],
      tasktopic: "2", //新增类型
      activname: "",
      value: [],
      list: [],
      loading: false,
@@ -537,6 +546,7 @@
      topqueryParams: {
        pageNum: 1,
        pageSize: 10,
        type: 3,
        userName: undefined,
        tagid: undefined,
        topic: undefined,
@@ -612,10 +622,14 @@
  },
  watch: {},
  created() {
    this.tasktopic = this.$route.query.tasktopic
      ? this.$route.query.tasktopic
      : this.tasktopic;
    this.getList();
    this.getConfigKey("sys.user.initPassword").then((response) => {
      this.initPassword = response.msg;
    });
    // this.taskoptions = store.getters.Serviceauthority;
  },
  // 搜索
  mounted() {
@@ -627,39 +641,38 @@
    /** 查询任务列表 */
    getList() {
      this.loading = true;
      this.tasktopic = this.$route.query.tasktopic
        ? this.$route.query.tasktopic
        : this.tasktopic;
      if (this.tasktopic == 1) {
        this.topqueryParams.type = 3;
        this.TaskOperation.taskType = 3;
      } else if (this.tasktopic == 2) {
        this.topqueryParams.type = 1;
        this.TaskOperation.taskType = 1;
      } else if (this.tasktopic == 3) {
        this.topqueryParams.type = 1;
        this.TaskOperation.taskType = 1;
      } else if (this.tasktopic == 4) {
        this.topqueryParams.type = 1;
        this.TaskOperation.taskType = 1;
      } else if (this.tasktopic == 5) {
        this.topqueryParams.type = 1;
      let type = this.$route.query.type;
        this.TaskOperation.taskType = 1;
      } else if (this.tasktopic == 6) {
      this.topqueryParams.serviceType = Number(this.tasktopic);
      this.topqueryParams.type = Number(this.type);
      if (
        this.tasktopic == 2 ||
        this.tasktopic == 3 ||
        this.tasktopic == 1 ||
        this.tasktopic == 7 ||
        this.tasktopic == 6
      ) {
        this.topqueryParams.type = 2;
        this.TaskOperation.taskType = 2;
      } else if (this.tasktopic == 4 || this.tasktopic == 8) {
        this.topqueryParams.type = 3;
        this.TaskOperation.taskType = 3;
      } else if (this.tasktopic == 5) {
        this.topqueryParams.type = 1;
        this.TaskOperation.taskType = 1;
      }
      this.topqueryParams.typename = this.findLabelByValue(
        this.taskoptions,
        this.tasktopic
      // this.topqueryParams.typename = this.findLabelByValue(
      //   this.taskoptions,
      //   this.tasktopic
      // );
      getTasklist(this.addDateRange(this.topqueryParams, this.dateRange)).then(
        (response) => {
          this.userList = response.rows;
          this.total = response.total;
          this.$forceUpdate();
          this.loading = false;
        }
      );
      getTasklist(this.topqueryParams).then((response) => {
        this.userList = response.rows;
        this.total = response.total;
        this.$forceUpdate();
        this.loading = false;
      });
    },
    // 查看门诊随访详情
    Referencequestion(row) {
@@ -739,65 +752,85 @@
    },
    /** 新增按钮操作 */
    handleAdd() {
      const typename = this.findLabelByValue(this.taskoptions, this.tasktopic);
      if (
        this.tasktopic == 2 ||
        this.tasktopic == 3 ||
        this.tasktopic == 4 ||
        this.tasktopic == 5
      ) {
      if (this.topqueryParams.type == 1) {
        this.$router.push({
          path: "/followvisit/particty",
          query: { type: 1, typename: typename },
          query: {
            type: this.topqueryParams.type,
            serviceType: this.tasktopic,
          },
        });
      } else if (this.tasktopic == 6) {
      } else if (this.topqueryParams.type == 2) {
        this.$router.push({
          path: "/followvisit/QuestionnaireTask",
          query: { type: 2, typename: typename },
          query: {
            type: this.topqueryParams.type,
            serviceType: this.tasktopic,
          },
        });
      } else if (this.tasktopic == 1) {
      } else if (this.topqueryParams.type == 3) {
        this.$router.push({
          path: "/followvisit/Missioncreation",
          query: { type: 3, typename: typename },
          query: {
            type: this.topqueryParams.type,
            serviceType: this.tasktopic,
          },
        });
      }
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      // this.$router.push({
      //   path: "/followvisit/particty",
      //   query: { type: this.tasktopic, id: row.taskid },
      // });
      if (
        this.tasktopic == 2 ||
        this.tasktopic == 3 ||
        this.tasktopic == 4 ||
        this.tasktopic == 5
      ) {
      if (this.topqueryParams.type == 1) {
        this.$router.push({
          path: "/followvisit/particty",
          query: { type: 1, id: row.taskid },
          query: {
            id: row.taskid,
            type: this.topqueryParams.type,
            serviceType: this.tasktopic,
          },
        });
      } else if (this.tasktopic == 6) {
      } else if (this.topqueryParams.type == 2) {
        this.$router.push({
          path: "/followvisit/QuestionnaireTask",
          query: { type: 2, id: row.taskid },
          query: {
            id: row.taskid,
            type: this.topqueryParams.type,
            serviceType: this.tasktopic,
          },
        });
      } else if (this.tasktopic == 1) {
      } else if (this.topqueryParams.type == 3) {
        this.$router.push({
          path: "/followvisit/Missioncreation",
          query: { type: 3, id: row.taskid },
          query: {
            id: row.taskid,
            type: this.topqueryParams.type,
            serviceType: this.tasktopic,
          },
        });
      }
    },
    // 删除任务
    deletefn() {},
    deletefn(row) {
      this.$modal
        .confirm(
          '是否删除任务名称为"' +
            row.taskName +
            '"的数据项,删除后不可撤回!是否继续'
        )
        .then(() => {
          delTaskInfo(row.taskid).then((res) => {
            if (res.code == 200) {
              this.getList();
              this.$modal.msgSuccess("删除成功");
            }
          });
        })
        .catch(() => {});
    },
    // 任务发起
    sponsor(row) {
      console.log(row, "任务信息");
      this.taskform = row;
      console.log(12);
      if (this.taskform.showDate && this.taskform.sendType != 2) {
        this.taskform.showDate = this.taskform.showDate.split(",");
      }
@@ -843,15 +876,19 @@
    },
    // 确认发起
    confirmSponsor(row) {
      this.TaskOperation.taskId = row.taskid;
      this.TaskOperation.sendState = 2;
      TaskTemplateSendExecution(this.TaskOperation).then((res) => {
        if (res.code == 200) {
          this.$modal.msgSuccess("任务已成功加入执行队列");
          this.taskformVisible = false;
          this.getList();
        }
      });
      if (this.activname == 0) {
        this.TaskOperation.taskId = row.taskid;
        this.TaskOperation.sendState = 2;
        TaskTemplateSendExecution(this.TaskOperation).then((res) => {
          if (res.code == 200) {
            this.$modal.msgSuccess("任务已成功加入执行队列");
            this.taskformVisible = false;
            this.getList();
          }
        });
      } else if (this.activname == 1) {
        this.immediateExecution(row);
      }
    },
    // 立即执行
@@ -885,22 +922,21 @@
      this.$modal
        .confirm("是否依照当前任务创建新任务?")
        .then(() => {
          if (
            this.tasktopic == 2 ||
            this.tasktopic == 3 ||
            this.tasktopic == 4 ||
            this.tasktopic == 5
          ) {
          if (this.tasktopic == 5) {
            this.$router.push({
              path: "/followvisit/particty",
              query: { type: 1, id: row.taskid, nhh: 1 },
            });
          } else if (this.tasktopic == 6) {
          } else if (
            this.tasktopic == 2 ||
            this.tasktopic == 3 ||
            this.tasktopic == 6
          ) {
            this.$router.push({
              path: "/followvisit/QuestionnaireTask",
              query: { type: 2, id: row.taskid, nhh: 1 },
            });
          } else if (this.tasktopic == 1) {
          } else if (this.tasktopic == 8 || this.tasktopic == 4) {
            this.$router.push({
              path: "/followvisit/Missioncreation",
              query: { type: 3, id: row.taskid, nhh: 1 },