WXL
2024-01-16 ad70f145e8bea957b41043b4a1e37ce37cc5ed1e
src/views/patient/propaganda/particty.vue
@@ -35,7 +35,14 @@
            </div>
            <div class="jic-value">
              <el-form ref="form" :model="form" label-width="105px">
                <el-form-item label="发送时间:">
                <el-form-item label="模版名称:">
                  <el-input
                    style="width: 220px"
                    v-model="form.bt"
                    placeholder="请在下方选择"
                  />
                </el-form-item>
                <el-form-item label="发送时间:" v-if="currenttype != 2">
                  <el-date-picker
                    v-model="form.name"
                    type="date"
@@ -43,11 +50,12 @@
                  >
                  </el-date-picker>
                </el-form-item>
                <el-form-item label="发送时间段:">
                <el-form-item label="发送时间段:" v-if="currenttype != 2">
                  <el-checkbox-group v-model="checkList">
                    <el-checkbox label="上午(8:30-11:30)"></el-checkbox>
                    <el-checkbox label="下午(14:30-16:30)"></el-checkbox>
                    <el-checkbox label="夜间(18:30-20:30)"></el-checkbox>
                    <el-checkbox label="不定时"></el-checkbox>
                  </el-checkbox-group>
                </el-form-item>
                <el-form-item label="服务形式">
@@ -61,8 +69,8 @@
                </el-form-item>
                <el-form-item label="组织形式">
                  <el-radio-group v-model="form.radio">
                    <el-radio :label="3">单人</el-radio>
                    <el-radio :label="6">多人</el-radio>
                    <el-radio :label="3">单人宣教</el-radio>
                    <el-radio :label="6">多人集中宣教</el-radio>
                  </el-radio-group>
                </el-form-item>
                <el-form-item label="语音模版" prop="region">
@@ -91,14 +99,92 @@
                    v-show="showSearch"
                    label-width="98px"
                  >
                    <el-form-item label="宣教主题">
                    <el-form-item label="宣教主题" v-if="currenttype == 1">
                      <el-input v-model="topqueryParams.name"></el-input>
                    </el-form-item>
                    <el-form-item label="适用疾病">
                    <el-form-item
                      label="随访名称"
                      v-if="currenttype == 2 || currenttype == 3"
                    >
                      <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">
                    <el-form-item
                      label="宣教类型"
                      prop="status"
                      v-if="currenttype == 1"
                    >
                      <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"
                    >
                      <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="请选择"
@@ -163,7 +249,7 @@
                    @handleUpdate="handleUpdate"
                    @handleSelectionChange="handleSelectionChange"
                    :currentList="userList"
                    :tableLabel="tableLabelxj"
                    :tableLabel="tableLabel"
                    :controlsc="false"
                    :multiplechoice="false"
                  />
@@ -190,6 +276,54 @@
        <el-alert title="在本阶段选择宣教病人" type="success" effect="dark">
        </el-alert>
        <div class="leftvlue-jbxx">
          <div class="examine-jic">
            <div class="headline">
              <div>变量匹配量参</div>
            </div>
            <div class="examine-jic">
              <div class="jic-value">
                <el-row :gutter="20">
                  <el-table :data="variableList" style="width: 100%">
                    <el-table-column
                      prop="variablename"
                      align="center"
                      label="变量名称"
                    >
                    </el-table-column>
                    <el-table-column
                      prop="character"
                      align="center"
                      label="匹配符"
                    >
                    </el-table-column>
                    <el-table-column label="替换值" align="center">
                      <template slot-scope="scope">
                        <el-input
                          v-model="scope.row.Replacementvalue"
                          placeholder="请输入内容"
                        ></el-input>
                      </template>
                    </el-table-column>
                    <el-table-column label="操作" align="center">
                      <template slot-scope="scope">
                        <el-button
                          size="mini"
                          @click="variableEdit(scope.$index, scope.row)"
                          >编辑</el-button
                        >
                        <el-button
                          size="mini"
                          type="danger"
                          @click="variableDelete(scope.$index, scope.row)"
                          >删除</el-button
                        >
                      </template>
                    </el-table-column>
                  </el-table>
                </el-row>
              </div>
            </div>
          </div>
          <div class="examine-jic">
            <div class="headline">
              <div>患者列表</div>
@@ -457,10 +591,17 @@
</template>
<script>
import { listsvr_prjtask, Addpatienttask } from "@/api/smartorpor/svr_prjtask";
import { listpat_archive } from "@/api/smartorpor/pat_archive";
import { listsvr_prjtaskline } from "@/api/smartorpor/svr_prjtaskline";
import { messagelistpatient } from "@/api/patient/homepage";
import {
  getTaskpatient,
  getlibrarylist,
  getFollowuplist,
  getQtemplatelist,
  edithetask,
  addhetask,
  gethetaskinfo,
  delhetaskinfo,
} from "@/api/AiCentre/index";
import SFtable from "@/components/SFtable"; //表格组件
export default {
@@ -469,6 +610,7 @@
    return {
      title: "宣教内容列表",
      currenttype: 1, //1宣教2门诊3出院4复诊5体检6问卷
      id: "",
      Editprogress: 1, //编辑进度
      loading: false, // 遮罩层
      patientloading: false, // 遮罩层
@@ -481,44 +623,52 @@
        { label: "性别", width: "", prop: "sex" },
        { label: "年龄", width: "", prop: "age" },
        { label: "就诊科室", width: "", prop: "impTemplate" },
        { label: "入院日期", width: "", prop: "create_time" },
        { label: "创建人", width: "", prop: "update_by" },
        { label: "入院日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "update_by" },
      ],
      tableLabelxj: [
        { label: "宣教名称", width: "", prop: "name" },
        { label: "宣教模版", width: "", prop: "impTemplate" },
        { label: "创建日期", width: "", prop: "create_time" },
        { label: "创建人", width: "", prop: "update_by" },
        { label: "宣教名称", width: "", prop: "preachname" },
        { label: "宣教描述", width: "", prop: "note" },
        { label: "宣教形式", width: "", prop: "playType" },
        { label: "适用方式", width: "", prop: "suitway" },
        { label: "创建日期", width: "", prop: "uploadTime" },
        { label: "创建人(缺)", width: "", prop: "update_by" },
      ],
      tableLabelmz: [
        { label: "随访名称", width: "118", prop: "name" },
        { label: "随访名称", width: "118", prop: "templateName" },
        { label: "随访模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "create_time" },
        { label: "创建人", width: "130", prop: "update_by" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
      ],
      tableLabelcy: [
        { label: "随访名称", width: "118", prop: "name" },
        { label: "随访名称", width: "118", prop: "templateName" },
        { label: "随访计划", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "create_time" },
        { label: "创建人", width: "130", prop: "update_by" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
      ],
      tableLabelfz: [
        { label: "通知名称", width: "118", prop: "name" },
        { label: "通知名称", width: "118", prop: "templateName" },
        { label: "通知模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "create_time" },
        { label: "创建人", width: "130", prop: "update_by" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
      ],
      tableLabeltj: [
        { label: "通知名称", width: "118", prop: "name" },
        { label: "通知模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "create_time" },
        { label: "创建人", width: "130", prop: "update_by" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
      ],
      tableLabelwj: [
        { label: "问卷名称", width: "118", prop: "name" },
        { label: "问卷模版", width: "130", prop: "impTemplate" },
        { label: "创建日期", width: "136", prop: "create_time" },
        { label: "创建人", width: "130", prop: "update_by" },
        { label: "创建日期", width: "136", prop: "uploadTime" },
        { label: "创建人(缺)", width: "130", prop: "update_by" },
      ],
      // 变量
      tableLabelvariable: [
        { label: "变量名称", width: "", prop: "variablename" },
        { label: "匹配符", width: "", prop: "character" },
        { label: "替换值", width: "", prop: "Replacementvalue" },
      ],
      topqueryParams: {
        pageNum: 1, //
@@ -548,6 +698,23 @@
      userList: [], //模版列表
      patientuserList: [], //选择患者列表
      sonuserList: [], //选中患者列表
      variableList: [
        {
          variablename: "姓名",
          character: "${name}",
          Replacementvalue: "龙傲天",
        },
        {
          variablename: "地址",
          character: "${dzz}",
          Replacementvalue: "龙宫",
        },
        {
          variablename: "电话",
          character: "${dhh}",
          Replacementvalue: "八个八",
        },
      ], //变量列表
      tasktopic: null, //新增类型
      form: {
        name: "",
@@ -559,36 +726,18 @@
        resource: "",
        desc: "",
      },
      options: [
        {
          value: "选项1",
          label: "黄金糕",
        },
        {
          value: "选项2",
          label: "双皮奶",
        },
        {
          value: "选项5",
          label: "北京烤鸭",
        },
      ],
      taskoptions: [
        {
          value: "1",
          label: "通知",
          label: "出院病人",
        },
        {
          value: "2",
          label: "随访",
          label: "门诊病人",
        },
        {
          value: "3",
          label: "问卷",
        },
        {
          value: "4",
          label: "宣教",
          label: "体检病人",
        },
      ],
      quote: false,
@@ -597,14 +746,24 @@
  components: { SFtable },
  created() {
    this.id = this.$route.query.id;
    this.Addsubtask();
    this.Getsubtask();
    this.Acquisitiontype();
  },
  methods: {
    // 获取当前类型
    Acquisitiontype() {
      let queryParams = {
        pageNum: 1,
        pageSize: 10,
        isavailable: "",
      };
      getTaskpatient({ allhosp: 1 }).then((res) => {
        console.log(res);
      });
      this.currenttype = this.$route.query.type;
      console.log(this.currenttype);
      if (this.currenttype == 1) {
@@ -618,24 +777,46 @@
          "短信",
          "微信公众号",
          "微信小程序",
          "支付宝",
          "智能小程序",
          "钉钉",
        ];
        getlibrarylist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 2) {
        this.title = "随访内容列表";
        this.tableLabel = this.tableLabelmz;
        this.checkboxlist = ["当面", "纸质", "电话", "短信", "微信公众号"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 3) {
        this.title = "随访计划列表";
        this.tableLabel = this.tableLabelcy;
        this.checkboxlist = ["当面", "纸质", "电话", "短信", "微信公众号"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 4) {
        this.title = "通知内容列表";
        this.tableLabel = this.tableLabelfz;
        this.checkboxlist = ["电话", "短信", "微信公众号"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 5) {
        this.title = "通知内容列表";
        this.tableLabel = this.tableLabeltj;
        this.checkboxlist = ["纸质", "电话", "短信", "微信公众号"];
        getFollowuplist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      } else if (this.currenttype == 6) {
        this.title = "问卷内容列表";
        this.tableLabel = this.tableLabelwj;
@@ -649,6 +830,10 @@
          "微信小程序",
          "钉钉",
        ];
        getQtemplatelist(queryParams).then((response) => {
          this.userList = response.rows;
          this.total = response.total;
        });
      }
    },
    // 下一步
@@ -719,9 +904,9 @@
      let objictpint = {};
      objictpint.patientes = this.ids;
      objictpint.pguid = 2;
      Addpatienttask(objictpint).then((res) => {
        console.log(res);
      });
      // Addpatienttask(objictpint).then((res) => {
      //   console.log(res);
      // });
      this.dialogVisiblepatient = false;
    },
@@ -735,7 +920,13 @@
        console.log(this.userList);
      });
    },
    /** 查询患者列表 */
    // 变量---------------
    variableEdit(index, row) {
      console.log(index, row);
    },
    variableDelete(index, row) {
      console.log(index, row);
    },
  },
};
</script>