WXL
2024-07-05 fdf8b9cc7995c8d2022ac512c48a7567f6d2af9a
src/views/patient/propaganda/particty.vue
@@ -47,13 +47,14 @@
                        style="width: 220px"
                        :disabled="true"
                        v-model="form.templatename"
                        placeholder="请在下列选择"
                        placeholder="点击右侧选择"
                      /> </el-form-item
                  ></el-col>
                  <el-col :span="4">
                    <el-button
                      type="primary"
                      icon="el-icon-edit"
                      @click="drawermb = true"
                      circle
                    ></el-button>
                  </el-col>
@@ -168,195 +169,6 @@
              </el-form>
            </div>
          </div>
          <div class="examine-jic">
            <div class="headline">
              <div>{{ title }}</div>
            </div>
            <div class="examine-jic">
              <div class="jic-value">
                <el-row :gutter="20">
                  <!--用户数据-->
                  <el-form
                    :model="topqueryParams"
                    ref="queryForm"
                    size="small"
                    :inline="true"
                    v-show="showSearch"
                    label-width="98px"
                  >
                    <el-form-item
                      label="宣教主题"
                      v-if="currenttype == 1 || currenttype == 8"
                    >
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item
                      label="随访名称"
                      v-if="
                        currenttype == 2 || currenttype == 3 || currenttype == 7
                      "
                    >
                      <el-input
                        v-model="topqueryParams.name"
                      ></el-input> </el-form-item
                    ><el-form-item
                      label="通知名称"
                      v-if="currenttype == 4 || currenttype == 5"
                    >
                      <el-input
                        v-model="topqueryParams.name"
                      ></el-input> </el-form-item
                    ><el-form-item label="体检套餐" v-if="currenttype == 5">
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item label="问卷主题" v-if="currenttype == 6">
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item label="适用疾病" v-if="currenttype != 5">
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item
                      label="宣教类型"
                      prop="status"
                      v-if="currenttype == 1 || currenttype == 8"
                    >
                      <el-select
                        v-model="topqueryParams.topic"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in taskoptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option>
                      </el-select>
                    </el-form-item>
                    <el-form-item
                      label="通知类型"
                      prop="status"
                      v-if="currenttype == 4 || currenttype == 5"
                    >
                      <el-select
                        v-model="topqueryParams.topic"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in taskoptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option>
                      </el-select>
                    </el-form-item>
                    <el-form-item
                      label="随访类型"
                      prop="status"
                      v-if="
                        currenttype == 2 || currenttype == 3 || currenttype == 7
                      "
                    >
                      <el-select
                        v-model="topqueryParams.topic"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in taskoptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value"
                        >
                        </el-option>
                      </el-select>
                    </el-form-item>
                    <el-form-item
                      label="问卷类型"
                      prop="status"
                      v-if="currenttype == 6"
                    >
                      <el-select
                        v-model="topqueryParams.topic"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in taskoptions"
                          :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.topica"
                        placeholder="请选择"
                      >
                        <el-option
                          v-for="item in taskoptions"
                          :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.topicd"
                        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>
                      <el-button
                        type="primary"
                        icon="el-icon-search"
                        size="medium"
                        @click="handleQuery"
                        >搜索</el-button
                      >
                      <el-button
                        icon="el-icon-refresh"
                        size="medium"
                        @click="resetQuery"
                        >重置</el-button
                      >
                    </el-form-item>
                  </el-form>
                  <el-divider></el-divider>
                  <!-- 选择模版列表 -->
                  <SFtable
                    @selectfn="selectfn"
                    :currentList="userList"
                    :tableLabel="tableLabel"
                    :controlsc="false"
                    :multiplechoice="false"
                    :typeinfo="1"
                  />
                  <pagination
                    v-show="total > 0"
                    :total="total"
                    :page.sync="topqueryParams.pageNum"
                    :limit.sync="topqueryParams.pageSize"
                    @pagination="Acquisitiontype"
                  />
                </el-row>
              </div>
            </div>
          </div>
        </div>
        <el-button type="success" @click="nextstep('ruleForm')">{{
          quote ? "立即创建" : "任务详情配置"
@@ -366,7 +178,7 @@
      <!-- 任务详情 -->
      <div v-if="Editprogress == 2">
        <el-alert title="在本阶段选择宣教病人" type="success" effect="dark">
        <el-alert title="在本阶段选择随访病人" type="success" effect="dark">
        </el-alert>
        <div class="leftvlue-jbxx">
          <div class="examine-jic">
@@ -700,6 +512,152 @@
        <el-button type="primary" @click="previewFn">确认使用</el-button>
      </span>
    </el-dialog>
    <el-drawer
      title="随访内容列表"
      :visible.sync="drawermb"
      direction="rtl"
      size="50%"
    >
      <div class="headline"></div>
      <div class="examine-jic">
        <div class="jic-value">
          <el-row :gutter="20">
            <!--用户数据-->
            <el-form
              :model="topqueryParams"
              ref="queryForm"
              size="small"
              :inline="true"
              v-show="showSearch"
              label-width="98px"
            >
              <el-form-item
                label="随访主题"
                v-if="currenttype == 1 || currenttype == 8"
              >
                <el-input v-model="topqueryParams.name"></el-input>
              </el-form-item>
              <el-form-item
                label="随访名称"
                v-if="currenttype == 2 || currenttype == 3 || currenttype == 7"
              >
                <el-input
                  v-model="topqueryParams.name"
                ></el-input> </el-form-item
              ><el-form-item
                label="通知名称"
                v-if="currenttype == 4 || currenttype == 5"
              >
                <el-input v-model="topqueryParams.name"></el-input>
              </el-form-item>
              <el-form-item
                label="随访类型"
                prop="status"
                v-if="currenttype == 1 || currenttype == 8"
              >
                <el-select v-model="topqueryParams.topic" placeholder="请选择">
                  <el-option
                    v-for="item in taskoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item
                label="通知类型"
                prop="status"
                v-if="currenttype == 4 || currenttype == 5"
              >
                <el-select v-model="topqueryParams.topic" placeholder="请选择">
                  <el-option
                    v-for="item in taskoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item
                label="随访类型"
                prop="status"
                v-if="currenttype == 2 || currenttype == 3 || currenttype == 7"
              >
                <el-select v-model="topqueryParams.topic" placeholder="请选择">
                  <el-option
                    v-for="item in taskoptions"
                    :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.topica" placeholder="请选择">
                  <el-option
                    v-for="item in taskoptions"
                    :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.topicd" 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>
                <el-button
                  type="primary"
                  icon="el-icon-search"
                  size="medium"
                  @click="handleQuery"
                  >搜索</el-button
                >
                <el-button
                  icon="el-icon-refresh"
                  size="medium"
                  @click="resetQuery"
                  >重置</el-button
                >
              </el-form-item>
            </el-form>
            <el-divider></el-divider>
            <!-- 选择模版列表 -->
            <SFtable
              @selectfn="selectfn"
              :currentList="userList"
              :tableLabel="tableLabel"
              :controlsc="false"
              :multiplechoice="false"
              :typeinfo="1"
            />
            <pagination
              v-show="total > 0"
              :total="total"
              :page.sync="topqueryParams.pageNum"
              :limit.sync="topqueryParams.pageSize"
              @pagination="Acquisitiontype"
            />
          </el-row>
        </div>
      </div>
    </el-drawer>
  </div>
</template>
@@ -726,8 +684,8 @@
  name: "ServiceDetails",
  data() {
    return {
      title: "宣教内容列表",
      currenttype: 1, //1宣教2门诊3出院4复诊5体检6问卷
      title: "随访内容列表",
      currenttype: 1, //1随访2门诊3出院4复诊5体检6问卷
      id: "", //
      previewid: "", //任务模版传递id
      libName: "",
@@ -735,6 +693,7 @@
      allpids: [],
      libId: null, //模板库模版id
      Editprogress: 1, //编辑进度
      drawermb: false, //选择模版弹窗
      previewtf: false, //预览
      loading: false, // 遮罩层
      patientloading: false, // 遮罩层
@@ -754,9 +713,9 @@
        { label: "创建人(缺)", width: "", prop: "update_by" },
      ],
      tableLabelxj: [
        { label: "宣教名称", width: "", prop: "preachname" },
        { label: "宣教描述", width: "", prop: "note" },
        { label: "宣教形式", width: "", prop: "playType" },
        { label: "随访名称", width: "", prop: "preachname" },
        { label: "随访描述", width: "", prop: "note" },
        { label: "随访形式", width: "", prop: "playType" },
        { label: "适用方式", width: "", prop: "suitway" },
        { label: "修改日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "updateBy" },
@@ -768,13 +727,13 @@
        { label: "创建人(缺)", width: "", prop: "updateBy" },
      ],
      tableLabelcy: [
        { label: "随访名称", width: "", prop: "templateName" },
        { label: "随访名称", width: "", prop: "templatename" },
        { label: "随访计划", width: "", prop: "impTemplate" },
        { label: "修改日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "updateBy" },
      ],
      tableLabelfz: [
        { label: "通知名称", width: "", prop: "templateName" },
        { label: "通知名称", width: "", prop: "templatename" },
        { label: "通知模版", width: "", prop: "impTemplate" },
        { label: "修改日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "updateBy" },
@@ -807,6 +766,8 @@
        { label: "支付宝", value: 7 },
        { label: "智能小程序", value: 8 },
        { label: "钉钉", value: 9 },
        { label: "线下(纸质)", value: 10 },
        { label: "线上(短信/钉钉的文本、问卷链接)", value: 11 },
      ],
      // 时间处理
      daytime: [], //日期
@@ -915,7 +876,8 @@
  created() {
    this.id = this.$route.query.id;
    this.form.hospType = this.$route.query.type;
    this.form.type = this.$route.query.type;
    this.form.typename = this.$route.query.typename;
    this.listDept();
    this.Acquisitiontype();
    this.Getdetails();
@@ -959,49 +921,14 @@
      };
      this.currenttype = this.$route.query.type;
      console.log(this.currenttype, "1");
      if (this.currenttype == 1 || this.currenttype == 8) {
        // 医技宣教,普通宣教
        this.title = "宣教内容列表";
        this.tableLabel = this.tableLabelxj;
        this.checkboxlist = ["多媒体", "纸质"];
        getlibrarylist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (
        this.currenttype == 2 ||
        this.currenttype == 3 ||
        this.currenttype == 7
      ) {
        // 出院、门诊、专病随访
        this.title = "随访内容列表";
        this.tableLabel = this.tableLabelmz;
        this.checkboxlist = ["纸质", "多媒体", "电话", "微信公众号"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 4 || this.currenttype == 5) {
        // 复诊、体检通知
        this.title = "通知内容列表";
        this.tableLabel = this.tableLabelfz;
        this.checkboxlist = ["线下", "AI语音外呼", "人工电话", "短信"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 6) {
        this.title = "问卷内容列表";
        this.tableLabel = this.tableLabelwj;
        this.checkboxlist = [
          "线下(纸质)",
          "线上(短信/钉钉的文本、问卷链接)",
        ];
        getQtemplatelist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      }
      // 出院、门诊、专病随访
      this.title = "随访内容列表";
      this.tableLabel = this.tableLabelmz;
      this.checkboxlist = ["纸质", "多媒体", "电话", "微信公众号"];
      getFollowuplist(queryParams).then((response) => {
        this.userList = response.rows;
        this.total = response.total;
      });
    },
    nextstep() {
      if (this.Editprogress <= 3) {
@@ -1012,7 +939,6 @@
    submitForm(formName) {
      // this.form.preachform = this.checkList.join(",");
      this.formatFn(1);
      this.form.hospType = this.currenttype;
      const filteredArray = this.variableList.filter(
        (item) =>
          item.name !== "姓名" && item.name !== "电话" && item.name !== "地址"
@@ -1039,34 +965,20 @@
    // 确认选择模版放入任务模版
    selectfn(row, type) {
      // 模版情况下获取模版信息
      if (type == 1) {
        if (
          this.currenttype == 2 ||
          this.currenttype == 4 ||
          this.currenttype == 3 ||
          currenttype == 5 ||
          currenttype == 7
        ) {
          this.libName = row.templateName;
          this.libId = row.id;
        } else if (this.currenttype == 1) {
          this.libName = row.preachname;
          this.libId = row.id;
      console.log(row, "选择模版");
      this.libName = row.templateName;
      this.libId = row.id;
      getvFollowup({ id: row.id }).then((res) => {
        if (res.code == 200) {
          this.Tasktemplate = res.data;
          const data = res.data;
          this.questionList = data.ivrLibaTemplateScriptVOList;
          this.previewtf = true;
          this.previewid = data.id;
          console.log(this.questionList, "questionList");
          this.Variablehandling(data.ivrLibaTemplateScriptVOList, 1);
        }
        getvFollowup({ id: row.id }).then((res) => {
          if (res.code == 200) {
            this.Tasktemplate = res.data;
            const data = res.data;
            this.questionList = data.ivrLibaTemplateScriptVOList;
            this.previewtf = true;
            this.previewid = data.id;
            console.log(this.questionList, "questionList");
            this.Variablehandling(data.ivrLibaTemplateScriptVOList, 1);
          }
        });
      } else if (type == 2) {
      } else if (type == 3) {
      }
      });
    },
    // 处理问题层变量
    Variablehandling(arr, type) {
@@ -1350,14 +1262,17 @@
      this.Tasktemplate.tempDetpRelevances = null;
      this.Tasktemplate.libtemplateid = id;
      this.Tasktemplate.isoperation = 1;
      this.Tasktemplate.libtemplatename = this.Tasktemplate.templateName;
      this.Tasktemplate.libtemplatename = this.Tasktemplate.templatename;
      console.log(this.libName, this.libId);
      TaskTemplatecomit(this.Tasktemplate).then((response) => {
        console.log(response);
        this.previewtf = false;
        this.form.templateid = response.data;
        this.form.libtemplateid = this.libId;
        this.form.templatename = this.libName;
        this.$modal.msgSuccess("选择模版成功");
        console.log(this.form.templatename, "ss");
        this.$modal.msgSuccess("选择模版成功", this.form.templatename);
      });
    },
    // 处理服务形式
@@ -1423,6 +1338,7 @@
    0 0 6px 0 rgba(0, 0, 0, 0.04);
}
.examine-jic {
  margin: 20px;
  .headline {
    font-size: 24px;
    border-left: 5px solid #41a1be;