WXL
2024-06-02 628fd01beea81bac2f0299472d528860ae07cf3f
src/views/followvisit/tasklist/index.vue
@@ -77,13 +77,23 @@
      <el-divider></el-divider>
      <el-row :gutter="10" class="mb8">
        <el-col :span="1.5">
          <el-select v-model="tasktopic" placeholder="请选择新增类型">
            <el-option
              v-for="item in taskoptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-col>
        <el-col :span="1.5">
          <el-button
            type="primary"
            plain
            icon="el-icon-plus"
            size="medium"
            @click="handleAdd"
            v-hasPermi="['system:user:add']"
            :disabled="!tasktopic"
            >新增</el-button
          >
        </el-col>
@@ -95,7 +105,6 @@
            size="medium"
            :disabled="single"
            @click="handleUpdate"
            v-hasPermi="['system:user:edit']"
            >修改</el-button
          >
        </el-col>
@@ -139,60 +148,44 @@
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="50" align="center" />
        <el-table-column label="序号" align="center" key="id" prop="id" />
        <el-table-column
          label="序号"
          fixed
          align="center"
          key="taskid"
          prop="taskid"
        />
        <el-table-column
          label="任务名称"
          fixed
          align="center"
          sortable
          key="name"
          prop="name"
          key="taskName"
          prop="taskName"
          :show-overflow-tooltip="true"
        />
        <el-table-column
          label="任务描述"
          align="center"
          key="describe"
          prop="describe"
          key="taskDesc"
          prop="taskDesc"
        />
        <el-table-column
          label="待执行/总任务"
          align="center"
          key="nickName"
          prop="nickName"
        />
        <el-table-column
          label="状态"
          align="center"
          key="phonenumber"
          prop="phonenumber"
          width="120"
        />
        <el-table-column
          label="审核人"
          align="center"
          key="create_by"
          prop="create_by"
          width="120"
          :show-overflow-tooltip="true"
        />
        <el-table-column
          label="审核时间"
          sortable
          align="center"
          prop="create_time"
          width="160"
        >
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.create_time) }}</span>
            <span>{{ scope.row.wfs }}/{{ scope.row.yfs }}</span>
          </template>
        </el-table-column>
        <el-table-column
          label="创建人"
          align="center"
          key="create_by"
          prop="create_by"
          key="createBy"
          prop="createBy"
          width="120"
          :show-overflow-tooltip="true"
        />
@@ -200,34 +193,67 @@
          label="创建时间"
          sortable
          align="center"
          prop="create_time"
          prop="createTime"
          width="160"
        >
          <template slot-scope="scope">
            <span>{{ parseTime(scope.row.create_time) }}</span>
            <span>{{ parseTime(scope.row.createTime) }}</span>
          </template>
        </el-table-column>
        <el-table-column
          label="状态"
          fixed="right"
          align="center"
          key="phonenumber"
          prop="phonenumber"
          width="120"
        />
        <el-table-column
          label="操作"
          fixed="right"
          align="center"
          width="120"
          class-name="small-padding fixed-width"
        >
          <template slot-scope="scope">
            <el-button
              v-if="scope.row.sendState == 1 || scope.row.sendState == 3"
              size="medium"
              type="text"
              @click="handleUpdate(scope.row)"
              v-hasPermi="['system:user:edit']"
              @click="sponsor(scope.row)"
              ><span class="button-zx"
                ><i class="el-icon-s-promotion"></i>开始执行</span
                ><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
              ></el-button
            >
            <el-button
              v-if="scope.row.sendState == 2"
              size="medium"
              type="text"
              @click="stop(scope.row)"
              ><span class="button-zt"
                ><i class="el-icon-circle-plus-outline"></i>暂停任务</span
              ></el-button
            >
          </template>
        </el-table-column>
        <el-table-column
          label="任务详情"
          fixed="right"
          align="center"
          width="200"
          class-name="small-padding fixed-width"
@@ -237,25 +263,12 @@
              size="medium"
              type="text"
              @click="handleUpdate(scope.row)"
              v-hasPermi="['system:user:edit']"
              ><span class="button-xq"
                ><i class="el-icon-s-data"></i>详情</span
              ></el-button
            >
            <!-- <el-button
              size="medium"
              type="text"
              @click="handleUpdate(scope.row)"
              v-hasPermi="['system:user:edit']"
              ><span class="button-bb"
                ><i class="el-icon-s-order"></i>报表</span
              ></el-button
            > -->
            <el-button
              size="medium"
              type="text"
              @click="handleUpdate(scope.row)"
              v-hasPermi="['system:user:edit']"
            <el-button size="medium" type="text" @click="deletefn(scope.row)"
              ><span class="button-sc"
                ><i class="el-icon-delete"></i>删除</span
              ></el-button
@@ -283,7 +296,7 @@
        <el-row :gutter="20">
          <el-col :span="12"
            ><el-form-item label="任务名称">
              <el-input v-model="form.name"></el-input> </el-form-item
              <el-input v-model="form.taskName"></el-input> </el-form-item
          ></el-col>
        </el-row>
        <el-row :gutter="20">
@@ -331,7 +344,6 @@
<script>
import {
  listUser,
  getUser,
  delUser,
  addUser,
@@ -340,12 +352,12 @@
  changeUserStatus,
} from "@/api/system/user";
import {
  listsvr_prj,
  getsvr_task,
  addsvr_task,
  updatesvr_task,
  delsvr_task,
} from "@/api/smartorpor/svr_task";
  getTasklist,
  getTaskInfo,
  Editsingletask,
  delTaskInfo,
  TaskTemplateSendExecution,
} from "@/api/AiCentre/index";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -388,6 +400,7 @@
      inputVisible: false,
      inputValue: "",
      previewVisible: false, //门诊随访预览弹框
      TaskOperation: {},
      radio: "",
      radios: [],
      previewtype: 2, //预览门诊随访类型
@@ -397,6 +410,33 @@
      previewvalue: {
        username: "这个医生对你怎么样",
      },
      taskoptions: [
        {
          value: "1",
          label: "宣教服务",
        },
        {
          value: "2",
          label: "门诊随访",
        },
        {
          value: "3",
          label: "出院随访",
        },
        {
          value: "4",
          label: "复诊服务",
        },
        {
          value: "5",
          label: "体检通知",
        },
        {
          value: "6",
          label: "问卷服务",
        },
      ],
      tasktopic: null, //新增类型
      value: [],
      list: [],
      loading: false,
@@ -581,17 +621,14 @@
    });
  },
  methods: {
    /** 查询门诊随访列表 */
    /** 查询任务列表 */
    getList() {
      this.loading = true;
      listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then(
        (response) => {
          console.log(response);
          this.userList = response.rows;
          this.total = response.total;
          this.loading = false;
        }
      );
      // this.loading = true;
      getTasklist(this.topqueryParams).then((response) => {
        this.userList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // 查看门诊随访详情
    Referencequestion(row) {
@@ -611,21 +648,7 @@
        this.options = [];
      }
    },
    // 门诊随访状态修改
    handleStatusChange(row) {
      let text = row.status === "0" ? "启用" : "停用";
      this.$modal
        .confirm('确认要"' + text + '""' + row.userName + '"用户吗?')
        .then(function () {
          return changeUserStatus(row.userId, row.status);
        })
        .then(() => {
          this.$modal.msgSuccess(text + "成功");
        })
        .catch(function () {
          row.status = row.status === "0" ? "1" : "0";
        });
    },
    // 取消按钮
    cancel() {
      this.addalteropen = false;
@@ -691,36 +714,49 @@
    /** 新增按钮操作 */
    handleAdd() {
      this.$router.push({
        path: "/followvisit/tasklist/FollowupDetails/",
        path: "/followvisit/particty",
        query: { type: this.tasktopic },
      });
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      // const userId = row.userId || this.ids;
      // this.$router.push({
      //   path: "/followvisit/tasklist/FollowupDetails/",
      //   query: { id: row.id },
      // });
      this.$router.push({
        path: "/followvisit/particty",
        query: { type: 2, },
        query: { type: row.hospType, id: row.taskid },
      });
    },
    /** 重置密码按钮操作 */
    handleResetPwd(row) {
      this.$prompt('请输入"' + row.userName + '"的新密码', "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        closeOnClickModal: false,
        inputPattern: /^.{5,20}$/,
        inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
      })
        .then(({ value }) => {
          resetUserPwd(row.userId, value).then((response) => {
            this.$modal.msgSuccess("修改成功,新密码是:" + value);
          });
        })
        .catch(() => {});
    // 删除任务
    deletefn() {},
    // 任务发起
    sponsor(row) {
      console.log(row, "任务信息");
      if (row.sendState != 2) {
        this.TaskOperation.taskId = row.taskid;
        this.TaskOperation.sendState = 2;
        TaskTemplateSendExecution(this.TaskOperation).then((res) => {});
      }
    },
    immediateExecution(row) {
      console.log(row, "任务信息");
      if (row.sendState != 2) {
        this.TaskOperation.taskId = row.taskid;
        this.TaskOperation.sendState = 2;
        this.TaskOperation.sendType = 2;
        TaskTemplateSendExecution(this.TaskOperation).then((res) => {});
      }
    },
    // 依照新增
    newAdd(row) {
      TaskTemplateSendExecution().then((res) => {});
    },
    // 暂停
    stop(row) {
      if (row.sendState == 2) {
        this.TaskOperation.taskId = row.taskId;
        this.TaskOperation.sendState = 3;
        TaskTemplateSendExecution().then((res) => {});
      }
    },
    /** 提交按钮 */
@@ -878,6 +914,24 @@
  border-radius: 1px;
  color: #ffffff;
}
.button-lj {
  background: #e9614f;
  padding: 5px;
  border-radius: 1px;
  color: #ffffff;
}
.button-xj {
  background: #815c94;
  padding: 5px;
  border-radius: 1px;
  color: #ffffff;
}
.button-zt {
  background: #f9c116;
  padding: 5px;
  border-radius: 1px;
  color: #ffffff;
}
::v-deep.el-radio-group {
  span {
@@ -885,6 +939,9 @@
  }
}
::v-deep.el-button + .el-button {
  margin-left: 0;
}
::v-deep.el-checkbox-group {
  span {
    font-size: 24px;