WXL
2024-09-11 b5a56d53e44c426fa188ba3e4e1db3eb779e2fd9
src/views/followvisit/tasklist/FollowupDetails/index.vue
@@ -54,7 +54,7 @@
            <div class="headline">任务设置</div>
            <div class="jic-value">
              <el-form ref="form" :model="form" label-width="80px">
                <el-form-item label="引用模版" prop="desc">
                <el-form-item label="引用模板" prop="desc">
                  <el-cascader
                    class="demo-cascader"
                    v-model="form.templatevalue"
@@ -72,7 +72,7 @@
                  </el-select>
                  <div style="display: flex; margin-top: 20px">
                    <div class="PreviewTemplate" @click="PreviewTemplate()">
                      预览模版
                      预览模板
                    </div>
                    <el-button type="primary" @click="Acknowledgereference"
                      >确认引用</el-button
@@ -88,179 +88,7 @@
        }}</el-button>
        <el-button @click="resetForm('ruleForm')">重置</el-button>
      </div>
      <!-- 问卷设置 -->
      <!-- <div v-if="Editprogress == 2">
        <div class="leftvlue-jbxx">
          <div class="examine-jic">
            <div class="headline">方案设置</div>
            <div class="jic-value">
              <el-form ref="form" :model="form" label-width="105px">
                <el-form-item label="患者来源">
                  <el-select v-model="form.region" placeholder="请选择活动区域">
                    <el-option label="区域一" value="shanghai"></el-option>
                    <el-option label="区域二" value="beijing"></el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="出院科室" prop="desc">
                  <el-cascader
                    class="demo-cascader"
                    placeholder="包含"
                    v-model="form.templatevalue"
                    :options="options"
                    :props="{ expandTrigger: 'hover' }"
                  ></el-cascader>
                  <el-select v-model="form.data2" placeholder="请选择适用科室">
                    <el-option
                      v-for="item in options"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="出院病区" prop="desc">
                  <el-cascader
                    class="demo-cascader"
                    placeholder="不包含"
                    v-model="form.templatevalue"
                    :options="options"
                    :props="{ expandTrigger: 'hover' }"
                  ></el-cascader>
                  <el-select v-model="form.data2" placeholder="请选择适用科室">
                    <el-option
                      v-for="item in options"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="患者来源" prop="desc">
                  <el-cascader
                    class="demo-cascader"
                    placeholder="包含"
                    v-model="form.templatevalue"
                    :options="options"
                    :props="{ expandTrigger: 'hover' }"
                  ></el-cascader>
                  <el-select v-model="form.data2" placeholder="请选择适用科室">
                    <el-option
                      v-for="item in options"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="就诊科室" prop="desc">
                  <el-cascader
                    class="demo-cascader"
                    placeholder="包含"
                    v-model="form.templatevalue"
                    :options="options"
                    :props="{ expandTrigger: 'hover' }"
                  ></el-cascader>
                  <el-select v-model="form.data2" placeholder="请选择适用科室">
                    <el-option
                      v-for="item in options"
                      :key="item.value"
                      :label="item.label"
                      :value="item.value"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="重复计划处理:">
                  <el-radio-group v-model="form.resource">
                    <el-radio label="新计划自动结案"></el-radio>
                    <el-radio label="原计划自动结案"></el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-form-item label="过期任务处理:">
                  <el-radio-group v-model="form.resource">
                    <el-radio label="自动关闭"></el-radio>
                    <el-radio label="自动执行"></el-radio>
                    <el-radio label="人工处理"></el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-form-item  label="所有任务完成自动结案:" label-width="158px">
                  <el-radio-group v-model="form.resource">
                    <el-radio label="是"></el-radio>
                    <el-radio label="否"></el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-form-item label="">
                  <el-row gutter="5">
                    <el-col :span="8"
                      ><el-select v-model="form.value" placeholder="请选择自动结案方式">
                        <el-option
                          v-for="item in options"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option> </el-select
                    ></el-col>
                  </el-row>
                  <el-row gutter="5">
                    <el-col :span="6"
                      ><el-select v-model="form.value" placeholder="请选择患者状态">
                        <el-option
                          v-for="item in options"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option> </el-select
                    ></el-col>
                    <el-col :span="6"
                      ><el-select v-model="form.value" placeholder="请选择">
                        <el-option
                          v-for="item in options"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option> </el-select
                    ></el-col>
                  </el-row>
                  <el-row type="flex" gutter="5">
                    <el-col :span="6"
                      ><el-select v-model="form.value" placeholder="请选择">
                        <el-option
                          v-for="item in options"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option> </el-select
                    ></el-col>
                    <el-col :span="6"
                      ><el-select v-model="form.value" placeholder="请选择">
                        <el-option
                          v-for="item in options"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option> </el-select
                    ></el-col>
                  </el-row>
                </el-form-item>
              </el-form>
            </div>
          </div>
        </div>
        <el-button type="primary" @click="laststep()">上一步</el-button>
        <el-button type="success" @click="submitForm('ruleForm')"
          >下一步</el-button
        >
        <el-button @click="resetForm('ruleForm')">重置</el-button>
      </div> -->
      <!-- 任务详情 -->
      <div v-if="Editprogress == 2">
        <div class="leftvlue-jbxx">
@@ -310,7 +138,7 @@
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in topicoptions"
                          v-for="item in taskoptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
@@ -353,11 +181,11 @@
                  <el-row :gutter="10" class="mb8">
                    <el-col :span="1.5">
                      <el-select
                        v-model="topqueryParams.topic"
                        v-model="tasktopic"
                        placeholder="请选择新增类型"
                      >
                        <el-option
                          v-for="item in topicoptions"
                          v-for="item in taskoptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
@@ -371,23 +199,13 @@
                        plain
                        icon="el-icon-plus"
                        size="medium"
                        :disabled="!tasktopic"
                        @click="handleAdd"
                        v-hasPermi="['system:user:add']"
                        >新增</el-button
                      >
                    </el-col>
                    <el-col :span="1.5">
                      <el-button
                        type="success"
                        plain
                        icon="el-icon-edit"
                        size="medium"
                        :disabled="single"
                        @click="handleUpdate"
                        v-hasPermi="['system:user:edit']"
                        >修改</el-button
                      >
                    </el-col>
                    <el-col :span="1.5">
                      <el-button
                        type="danger"
@@ -410,7 +228,7 @@
            ></right-toolbar> -->
                  <el-table
                    v-loading="loading"
                    :data="sonuserList"
                    :data="userList"
                    @selection-change="handleSelectionChange"
                  >
                    <el-table-column
@@ -483,7 +301,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
@@ -611,7 +429,7 @@
            <el-form-item label="选择问卷:">
              <el-row :gutter="20">
                <el-col :span="6"
                  ><el-select v-model="form.region" placeholder="请选择模版">
                  ><el-select v-model="form.region" placeholder="请选择模板">
                    <el-option label="区域一" value="shanghai"></el-option>
                    <el-option
                      label="区域二"
@@ -716,7 +534,7 @@
                  ></el-col>
                </el-row>
              </el-form-item>
              <el-form-item label="Ai外呼模版">
              <el-form-item label="Ai外呼模板">
                <el-select v-model="form.value" placeholder="请选择">
                  <el-option
                    v-for="item in options"
@@ -763,12 +581,12 @@
                  <el-radio label="AI电话"></el-radio>
                </el-radio-group>
              </el-form-item>
              <el-form-item label="推送模版">
              <el-form-item label="推送模板">
                <el-row :gutter="20">
                  <el-col :span="6"
                    ><el-select
                      v-model="form.value"
                      placeholder="请选择短信模版"
                      placeholder="请选择短信模板"
                    >
                      <el-option
                        v-for="item in options"
@@ -781,7 +599,7 @@
                  <el-col :span="6"
                    ><el-select
                      v-model="form.value"
                      placeholder="请选择微信模版"
                      placeholder="请选择微信模板"
                    >
                      <el-option
                        v-for="item in options"
@@ -815,7 +633,7 @@
                <!--用户数据-->
                <el-form
                  :model="topqueryParams"
                  :model="deliverytopqueryParams"
                  ref="queryForm"
                  size="small"
                  :inline="true"
@@ -823,12 +641,12 @@
                  label-width="98px"
                >
                  <el-form-item label="任务名称">
                    <el-input v-model="topqueryParams.name"></el-input>
                    <el-input v-model="deliverytopqueryParams.name"></el-input>
                  </el-form-item>
                  <el-form-item label="任务类型" prop="status">
                    <el-select
                      v-model="topqueryParams.topic"
                      v-model="deliverytopqueryParams.topic"
                      placeholder="请选择"
                    >
                      <el-option
@@ -843,7 +661,7 @@
                  <el-form-item label="任务状态" prop="status">
                    <el-select
                      v-model="topqueryParams.topic"
                      v-model="deliverytopqueryParams.topic"
                      placeholder="请选择"
                    >
                      <el-option
@@ -934,11 +752,11 @@
                    prop="topicnumber"
                    width="120"
                    :show-overflow-tooltip="true"
                  >
                    <template slot-scope="scope">
                  />
                  <!-- <template slot-scope="scope">
                      <div>执行完成/执行失败</div>
                    </template>
                  </el-table-column>
                  </el-table-column> -->
                  <el-table-column
                    label="操作"
                    align="center"
@@ -987,6 +805,13 @@
                  </el-table-column>
                </el-table>
              </el-row>
              <pagination
                v-show="sontotal > 0"
                :total="sontotal"
                :page.sync="deliverytopqueryParams.pageNum"
                :limit.sync="deliverytopqueryParams.pageSize"
                @pagination="handleAdd"
              />
            </div>
          </div>
        </div>
@@ -1000,7 +825,7 @@
    </el-dialog>
    <!-- 添加患者 -->
    <el-dialog
      title="添加派发患者"
      title="选择患者"
      :visible.sync="dialogVisiblepatient"
      width="70%"
      :before-close="handleClosehz"
@@ -1010,7 +835,7 @@
          <el-row :gutter="20">
            <!--用户数据-->
            <el-form
              :model="topqueryParams"
              :model="patientqueryParams"
              ref="queryForm"
              size="small"
              :inline="true"
@@ -1018,10 +843,13 @@
              label-width="98px"
            >
              <el-form-item label="患者名称:">
                <el-input v-model="topqueryParams.name"></el-input>
                <el-input v-model="patientqueryParams.name"></el-input>
              </el-form-item>
              <el-form-item label="患者来源" prop="status">
                <el-select v-model="topqueryParams.topic" placeholder="请选择">
                <el-select
                  v-model="patientqueryParams.topic"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in topicoptions"
                    :key="item.value"
@@ -1032,7 +860,10 @@
                </el-select>
              </el-form-item>
              <el-form-item label="出院科室" prop="status">
                <el-select v-model="topqueryParams.topic" placeholder="请选择">
                <el-select
                  v-model="patientqueryParams.topic"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in topicoptions"
                    :key="item.value"
@@ -1044,7 +875,10 @@
              </el-form-item>
              <el-form-item label="出院病区" prop="status">
                <el-select v-model="topqueryParams.topic" placeholder="请选择">
                <el-select
                  v-model="patientqueryParams.topic"
                  placeholder="请选择"
                >
                  <el-option
                    v-for="item in topicoptions"
                    :key="item.value"
@@ -1072,45 +906,41 @@
            </el-form>
            <el-table
              v-loading="loading"
              :data="userList"
              v-loading="patientloading"
              :data="patientuserList"
              @selection-change="handleSelectionChange"
            >
              <el-table-column type="selection" width="50" align="center" />
              <el-table-column
                label="序号"
                align="center"
                key="userId"
                prop="userId"
                key="patid"
                prop="patid"
              />
              <el-table-column
                label="患者名称"
                align="center"
                sortable
                key="userName"
                prop="userName"
                key="name"
                prop="name"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="入院日期"
                label="患者来源"
                align="center"
                key="nickName"
                prop="nickName"
                key="sourcefrom"
                prop="sourcefrom"
              />
              <el-table-column
                label="执行状态"
                label="手机号码"
                align="center"
                key="topicnumber"
                prop="topicnumber"
                key="telcode"
                prop="telcode"
                width="120"
                :show-overflow-tooltip="true"
              >
                <template slot-scope="scope">
                  <div>执行完成/执行失败</div>
                </template>
              </el-table-column>
              />
              <el-table-column
                label="任务详情"
@@ -1142,11 +972,18 @@
              </el-table-column>
            </el-table>
          </el-row>
          <pagination
            v-show="patienttotal > 0"
            :total="patienttotal"
            :page.sync="patientqueryParams.pageNum"
            :limit.sync="patientqueryParams.pageSize"
            @pagination="handleAddpatient"
          />
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisiblepatient = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisiblepatient = false"
        <el-button type="primary" @click="AddDispatchpatients"
          >确定添加</el-button
        >
      </span>
@@ -1155,25 +992,31 @@
</template>
<script>
import {
  listsvr_prjtask,
  getsvr_prjtask,
  addsvr_prjtask,
  updatesvr_prjtask,
  delsvr_prjtask,
} from "@/api/smartorpor/svr_prjtask";
export default {
  data() {
    return {
      Editprogress: 2, //编辑进度
      loading: false, // 遮罩层
      patientloading: false, // 遮罩层
      dialogVisible: false, //任务详情弹框
      dialogVisiblepatient: false, //添加患者弹框
      topqueryParams: {},
      topqueryParams: {
        pageNum: 1, //
        pageSize: 10,
      },
      deliverytopqueryParams: {
        pageNum: 1, //
        pageSize: 10,
      },
      patientqueryParams: {
        pageNum: 1, //
        pageSize: 10,
      },
      topicoptions: [],
      showSearch: true, //
      total: 0, //
      sontotal: 0, //
      patienttotal: 0, //
      // 选中数组
      ids: [],
      // 非单个禁用
@@ -1182,7 +1025,9 @@
      multiple: true,
      // 用户表格数据
      userList: null,
      patientuserList: null,
      sonuserList: null,
      tasktopic: null, //新增类型
      form: {
        name: "",
        region: "",
@@ -1215,6 +1060,24 @@
          label: "北京烤鸭",
        },
      ],
      taskoptions: [
        {
          value: "1",
          label: "通知",
        },
        {
          value: "2",
          label: "随访",
        },
        {
          value: "3",
          label: "问卷",
        },
        {
          value: "4",
          label: "宣教",
        },
      ],
      quote: false,
    };
  },
@@ -1240,16 +1103,39 @@
      //   }
      // });
    },
    // 子任务一级弹框
    handleAdd() {
      this.multiple = true;
      // listsvr_prjtaskline(this.deliverytopqueryParams).then((response) => {
      //   console.log(response);
      //   this.sonuserList = response.rows;
      //   this.sontotal = response.total;
      //   this.loading = false;
      // });
      this.dialogVisible = true;
    },
    // 子任务二级弹框
    handleAddpatient() {
      console.log(this.multiple);
      // listpat_archive(this.patientqueryParams).then((response) => {
      //   console.log(response);
      //   this.patientuserList = response.rows;
      //   this.patienttotal = response.total;
      //   this.loading = false;
      // });
      this.dialogVisiblepatient = true;
    },
    handleUpdate() {},
    handleDelete() {},
    handleExport() {},
    handleSelectionChange() {},
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = null;
      this.ids = selection.map((item) => item.patid).join(",");
      // let result = this.ids.join(",");
      this.multiple = !selection.length;
      console.log(this.ids);
    },
    getList() {},
    handleQuery() {},
    resetQuery() {},
@@ -1267,7 +1153,7 @@
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
    // 预览模版
    // 预览模板
    PreviewTemplate() {},
    Acknowledgereference() {
      this.quote = true;
@@ -1275,21 +1161,34 @@
    // 新增子任务
    Addsubtask() {
      this.topqueryParams.pguid = 2;
      addsvr_prjtask(this.topqueryParams).then((res) => {
        console.log(res);
      });
      // addsvr_prjtask(this.topqueryParams).then((res) => {
      //   console.log(res);
      // });
    },
    // 新增派送患者
    AddDispatchpatients() {
      let objictpint = {};
      objictpint.patientes = this.ids;
      objictpint.pguid = 2;
      // Addpatienttask(objictpint).then((res) => {
      //   console.log(res);
      // });
      this.dialogVisiblepatient = false;
    },
    // 查询子任务列表
    Getsubtask() {
      this.topqueryParams.pguid = 2;
      console.log(this.topqueryParams);
      // this.topqueryParams.pid = this.$route.query.id;
      // console.log(this.topqueryParams.pid);
      listsvr_prjtask(this.topqueryParams).then((res) => {
        this.sonuserList = res.rows;
        console.log(this.sonuserList);
      });
      // listsvr_prjtask(this.topqueryParams).then((res) => {
      //   this.userList = res.rows;
      //   this.total = res.total;
      //   console.log(this.userList);
      // });
    },
    /** 查询患者列表 */
  },
};
</script>
@@ -1306,7 +1205,7 @@
  //   margin-top: 20px;
  margin: 20px;
  margin-bottom: 0;
  padding: 30px;
  padding: 20px;
  background: #edf1f7;
  border: 1px solid #dcdfe6;
  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),