su
su1124
2024-01-24 51123d5ad145745f855280783c01cc2906b693d0
src/views/hosp/extension/index.vue
@@ -1,44 +1,132 @@
<template>
    <div class="app-container">
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
    <el-form
      :model="queryParams"
      ref="queryForm"
      size="small"
      :inline="true"
      v-show="showSearch"
      label-width="68px"
    >
            <el-form-item label="客户姓名" prop="name">
                <el-input v-model="queryParams.name" placeholder="请输入客户姓名" clearable @keyup.enter.native="handleQuery" />
        <el-input
          v-model="queryParams.name"
          placeholder="请输入客户姓名"
          clearable
          @keyup.enter.native="handleQuery"
        />
            </el-form-item>
            <el-form-item label="体检号" prop="tjNum">
                <el-input v-model="queryParams.tjNum" placeholder="请输入体检号" clearable @keyup.enter.native="handleQuery" ref="inputName" @blur="handleQuery" />
        <el-input
          v-model="queryParams.tjNum"
          placeholder="请输入体检号"
          clearable
          @keyup.enter.native="handleQuery"
          ref="inputName"
          @blur="hb"
        />
            </el-form-item>
            <el-form-item label="登记时间">
                <el-date-picker clearable v-model="createTimeList" style="width: 240px" value-format="yyyy-MM-dd"
                    type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
                    :picker-options="pickerOptions"></el-date-picker>
        <el-date-picker
          clearable
          v-model="createTimeList"
          style="width: 240px"
          value-format="yyyy-MM-dd"
          type="daterange"
          range-separator="-"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          :picker-options="pickerOptions"
        ></el-date-picker>
            </el-form-item>
            <el-form-item label="延期时间">
                <el-date-picker clearable v-model="finishTimeList" type="daterange" range-separator="-"
                    start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions"
                    value-format="yyyy-MM-dd" placeholder="请选择体检完成时间" style="width: 240px">
        <el-date-picker
          clearable
          v-model="finishTimeList"
          type="daterange"
          range-separator="-"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          :picker-options="pickerOptions"
          value-format="yyyy-MM-dd"
          placeholder="请选择体检完成时间"
          style="width: 240px"
        >
                </el-date-picker>
            </el-form-item>
            <el-form-item>
                <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
        <el-button
          type="primary"
          icon="el-icon-search"
          size="mini"
          @click="handleQuery"
          >搜索</el-button
        >
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
          >重置</el-button
        >
            </el-form-item>
        </el-form>
        <el-row :gutter="10" class="mb8">
            <el-col :span="1.5">
                <el-button type="primary" size="mini" @click="transmittext" :disabled="multiple">批量发送短信</el-button>
                <el-button type="primary" size="mini" @click="transmit" :disabled="multiple">批量发送邮件</el-button>
        <el-button
          type="primary"
          size="mini"
          @click="transmittext"
          :disabled="multiple"
          >批量发送短信</el-button
        >
        <el-button
          type="primary"
          size="mini"
          @click="transmit"
          :disabled="multiple"
          >批量发送邮件</el-button
        >
            </el-col>
            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
      <right-toolbar
        :showSearch.sync="showSearch"
        @queryTable="getList"
      ></right-toolbar>
        </el-row>
        <template>
            <el-table border style="margin: 14px; width: 97%" v-loading="loading" :data="extensionList"
                @selection-change="handleSelectionChange">
                <el-table-column type="selection" width="55" align="center" height="10px" fixed="left" />
                <el-table-column label="序号" align="center" prop="newID" width="50px" fixed="left" height="10px" />
                <el-table-column label="姓名" align="center" prop="cusName" height="10px" />
                <el-table-column label="性别" align="center" prop="sex" width="55px" height="10px">
      <el-table
        border
        style="margin: 14px; width: 97%"
        v-loading="loading"
        :data="extensionList"
        @selection-change="handleSelectionChange"
      >
        <el-table-column
          type="selection"
          width="55"
          align="center"
          height="10px"
          fixed="left"
        />
        <el-table-column
          label="序号"
          align="center"
          prop="newID"
          width="50px"
          fixed="left"
          height="10px"
        />
        <el-table-column
          label="姓名"
          align="center"
          prop="cusName"
          height="10px"
        />
        <el-table-column
          label="性别"
          align="center"
          prop="sex"
          width="55px"
          height="10px"
        >
                    <template slot-scope="scope">
                        <span v-if="scope.row.sex == '0'">男</span>
                        <span v-if="scope.row.sex == '1'">女</span>
@@ -46,32 +134,67 @@
                    </template>
                </el-table-column>
                <el-table-column label="年龄" align="center" prop="age" height="10px" />
                <el-table-column label="电话" align="center" prop="phone" :show-overflow-tooltip="true" height="10px" />
        <el-table-column
          label="电话"
          align="center"
          prop="phone"
          :show-overflow-tooltip="true"
          height="10px"
        />
                <!-- <el-table-column label="团队/个人" align="center" prop="tjType" height="10px">
            <template slot-scope="scope">
              <span v-if="scope.row.tjType == '1'">个人</span>
              <span v-if="scope.row.tjType == '2'">团队</span>
            </template>
          </el-table-column> -->
                <el-table-column label="延期项目" align="center" prop="names" height="10px" :show-overflow-tooltip="true" />
                <el-table-column label="创建时间" align="center" prop="updateTime" width="155px" height="10px">
        <el-table-column
          label="延期项目"
          align="center"
          prop="names"
          height="10px"
          :show-overflow-tooltip="true"
        />
        <el-table-column
          label="创建时间"
          align="center"
          prop="updateTime"
          width="155px"
          height="10px"
        >
                    <template slot-scope="scope">
                        <span>{{ parseTime(scope.row.updateTime) }}</span>
                    </template>
                </el-table-column>
                <el-table-column label="延期时间" align="center" prop="yqTime" width="155px" height="10px">
        <el-table-column
          label="延期时间"
          align="center"
          prop="yqTime"
          width="155px"
          height="10px"
        >
                    <template slot-scope="scope">
                        <span>{{ parseTime(scope.row.yqTime) }}</span>
                    </template>
                </el-table-column>
                <el-table-column label="短信发送状态" align="center" prop="msgSend" height="10px"
                    :show-overflow-tooltip="true">
        <el-table-column
          label="短信发送状态"
          align="center"
          prop="msgSend"
          height="10px"
          :show-overflow-tooltip="true"
        >
                    <template slot-scope="scope">
                        <span v-if="scope.row.msgSend == '1'">已发送</span>
                        <span v-if="scope.row.msgSend == '0'">未发送</span>
                    </template>
                </el-table-column>
                <el-table-column label="邮件发送状态" align="center" prop="emilSend" height="10px" :show-overflow-tooltip="true">
        <el-table-column
          label="邮件发送状态"
          align="center"
          prop="emilSend"
          height="10px"
          :show-overflow-tooltip="true"
        >
                    <template slot-scope="scope">
                        <span v-if="scope.row.emilSend == '1'">已发送</span>
                        <span v-if="scope.row.emilSend == '0'">未发送</span>
@@ -82,56 +205,109 @@
        <div class="pag">
            <div class="pag1">
                <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
                    :limit.sync="queryParams.pageSize" @pagination="getList" />
        <pagination
          v-show="total > 0"
          :total="total"
          :page.sync="queryParams.pageNum"
          :limit.sync="queryParams.pageSize"
          @pagination="getList"
        />
            </div>
        </div>
        <el-drawer :title="title" :visible.sync="drawer" size="60%">
            <el-form :model="querytempType" ref="queryForm" size="small" :inline="true" label-width="68px"
                style="margin:0 20px">
      <el-form
        :model="querytempType"
        ref="queryForm"
        size="small"
        :inline="true"
        label-width="68px"
        style="margin: 0 20px"
      >
                <el-form-item label="模板类型" prop="tempType">
                    <el-select v-model="querytempType.tempType" filterable placeholder="请选择模板类型" clearable>
                        <el-option v-for="dict in dict.type.tj_send_type" :key="dict.value" :label="dict.label"
                            :value="dict.value" />
          <el-select
            v-model="querytempType.tempType"
            filterable
            placeholder="请选择模板类型"
            clearable
          >
            <el-option
              v-for="dict in dict.type.tj_send_type"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            />
                    </el-select>
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" icon="el-icon-search" size="mini" @click="handleTempType">搜索</el-button>
          <el-button
            type="primary"
            icon="el-icon-search"
            size="mini"
            @click="handleTempType"
            >搜索</el-button
          >
                </el-form-item>
            </el-form>
            <el-table v-loading="loading" ref="tb" :data="sendTemplateList" @selection-change="handleChange" border
                style="margin:0 20px;width:94%">
      <el-table
        v-loading="loading"
        ref="tb"
        :data="sendTemplateList"
        @selection-change="handleChange"
        border
        style="margin: 0 20px; width: 94%"
      >
                <el-table-column type="selection" width="45" align="center" />
                <el-table-column label="编号" align="center" prop="id" width="60" />
                <el-table-column label="模板标题" align="center" prop="tempTitle" width="100" />
        <el-table-column
          label="模板标题"
          align="center"
          prop="tempTitle"
          width="100"
        />
                <el-table-column label="模板内容" align="center" prop="tempContent" />
                <el-table-column label="模板类型" align="center" prop="tempType" width="100">
        <el-table-column
          label="模板类型"
          align="center"
          prop="tempType"
          width="100"
        >
                    <template slot-scope="scope">
                        <dict-tag :options="dict.type.tj_send_type" :value="scope.row.tempType" />
            <dict-tag
              :options="dict.type.tj_send_type"
              :value="scope.row.tempType"
            />
                    </template>
                </el-table-column>
            </el-table>
            <div class="pag">
                <div class="pag1">
                    <pagination v-show="total > 0" :total="total" :page.sync="querytempType.pageNum"
                        :limit.sync="querytempType.pageSize" @pagination="handleTempType" />
          <pagination
            v-show="total > 0"
            :total="total"
            :page.sync="querytempType.pageNum"
            :limit.sync="querytempType.pageSize"
            @pagination="handleTempType"
          />
                </div>
            </div>
            <div style="margin-left: 89%;">
                <el-button type="primary" v-if="mail == true" @click="sendingmail">发 送</el-button>
                <el-button type="primary" v-if="mail == false" @click="sendingtext">发 送</el-button>
      <div style="margin-left: 89%">
        <el-button type="primary" v-if="mail == true" @click="sendingmail"
          >发 送</el-button
        >
        <el-button type="primary" v-if="mail == false" @click="sendingtext"
          >发 送</el-button
        >
            </div>
        </el-drawer>
    </div>
</template>
   
<script>
import { getextensionlist,sendMessageOrEmail } from "@/api/hosp/extension";
import { listSendTemplate, } from "@/api/hosp/sendTemplate";
import { listSendTemplate } from "@/api/hosp/sendTemplate";
import ViewPdf from "@/components/ViewPdf";
import { queryCompany } from "@/api/team/tuanti";
export default {
@@ -139,7 +315,7 @@
        ViewPdf,
    },
    name: "Order",
    dicts: ['tj_send_type', 'sys_normal_disable'],
  dicts: ["tj_send_type", "sys_normal_disable"],
    data() {
        return {
            mail: true,
@@ -241,8 +417,7 @@
        dialogVisibles() {
            this.$message.error("请连接拨号器!");
        },
        handleClick(tab, event) {
        },
    handleClick(tab, event) {},
        //处理默认选中当前日期
        getNowTime() {
            var curDate = new Date().getTime();
@@ -262,26 +437,24 @@
            var d = time.getDate();
            return y + "-" + this.add0(m) + "-" + this.add0(d);
        },
        onSubmit() {
        },
    onSubmit() {},
        /** 查询体检记录列表 */
        getList() {
            this.loading = true;
            if (this.createTimeList) {
                this.queryParams.djbeginTime = this.createTimeList[0]
                this.queryParams.djendTime = this.createTimeList[1]
        this.queryParams.djbeginTime = this.createTimeList[0];
        this.queryParams.djendTime = this.createTimeList[1];
            } else {
                this.queryParams.djbeginTime = null
                this.queryParams.djendTime = null
        this.queryParams.djbeginTime = null;
        this.queryParams.djendTime = null;
            }
            if (this.finishTimeList) {
                this.queryParams.yqbeginTime = this.finishTimeList[0]
                this.queryParams.yqendTime = this.finishTimeList[1]
        this.queryParams.yqbeginTime = this.finishTimeList[0];
        this.queryParams.yqendTime = this.finishTimeList[1];
            } else {
                this.queryParams.yqbeginTime = null
                this.queryParams.yqendTime = null
        this.queryParams.yqbeginTime = null;
        this.queryParams.yqendTime = null;
            }
            getextensionlist(this.queryParams).then((response) => {
@@ -312,7 +485,7 @@
        // 搜索
        handleTempType() {
            this.loading = true;
            this.transmit()
      this.transmit();
        },
        // 取消按钮
        cancel() {
@@ -342,6 +515,11 @@
            };
            this.resetForm("form");
        },
    hb() {
      if (this.queryParams.tjNum != null) {
        this.handleQuery();
      }
    },
        /** 搜索按钮操作 */
        handleQuery() {
            this.queryParams.pageNum = 1;
@@ -360,9 +538,9 @@
            this.multiple = !selection.length;
        },
        handleChange(selection) {
            selection.forEach(item => {
                this.tempId = item.id
            })
      selection.forEach((item) => {
        this.tempId = item.id;
      });
            if (selection.length > 1) {
                let del_row = selection.shift();
@@ -372,11 +550,11 @@
        // 出现邮件弹框
        transmit() {
            this.drawer = true
            this.mail = true
            this.title = "选择邮件发送模板"
      this.drawer = true;
      this.mail = true;
      this.title = "选择邮件发送模板";
            this.loading = true;
            listSendTemplate(this.querytempType).then(response => {
      listSendTemplate(this.querytempType).then((response) => {
                this.sendTemplateList = response.rows;
                this.total = response.total;
                this.loading = false;
@@ -394,11 +572,11 @@
        },
        // 出现短信弹框
        transmittext() {
            this.drawer = true
            this.mail = false
            this.title = "选择短信发送模板"
      this.drawer = true;
      this.mail = false;
      this.title = "选择短信发送模板";
            this.loading = true;
            listSendTemplate(this.querytempType).then(response => {
      listSendTemplate(this.querytempType).then((response) => {
                this.sendTemplateList = response.rows;
                this.total = response.total;
                this.loading = false;
@@ -411,19 +589,18 @@
                let data = {
                    yqorderIds: this.ids,
                    tempId: this.tempId,
                    type:1
                }
          type: 1,
        };
                sendMessageOrEmail(data).then((res) => {
                    if (res.code === 200) {
                        this.$modal.msgSuccess("发送成功");
                        this.getList()
            this.getList();
                    }
                })
                this.drawer = false
        });
        this.drawer = false;
            } else {
                this.$modal.msgError("请选择邮件模板");
            }
        },
        // 发送短信
        sendingtext() {
@@ -431,15 +608,15 @@
                let data = {
                    yqorderIds: this.ids,
                    tempId: this.tempId,
                    type:2
                }
          type: 2,
        };
                sendMessageOrEmail(data).then((res) => {
                    if (res.code === 200) {
                        this.$modal.msgSuccess("发送成功");
                        this.getList()
            this.getList();
                    }
                })
                this.drawer = false
        });
        this.drawer = false;
            } else {
                this.$modal.msgError("请选择短信模板");
            }