yxh
2023-06-29 0243fa63313ebf928894a86a8b4e465465c42ecf
src/views/repositoryai/verbaltrick/index.vue
@@ -56,10 +56,10 @@
      <div class="leftvlue-top">
        <el-tabs v-model="topactiveName" @tab-click="tophandleClick">
          <el-tab-pane name="Local">
            <span class="mulsz" slot="label">本地话术库 </span>
            <span class="mulsz" slot="label">普通话术库 </span>
          </el-tab-pane>
          <el-tab-pane name="sharing">
            <span class="mulsz" slot="label">共享话术库 </span>
            <span class="mulsz" slot="label">特定话术库 </span>
          </el-tab-pane>
        </el-tabs>
      </div>
@@ -75,7 +75,7 @@
              v-show="showSearch"
              label-width="98px"
            >
              <el-form-item label="话术名称" prop="userName">
              <el-form-item label="话术主旨" prop="userName">
                <el-input
                  v-model="queryParams.userName"
                  placeholder="请输入"
@@ -84,13 +84,36 @@
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="适用疾病" prop="status">
                <el-cascader
                  v-model="queryParams.status"
                  :options="optionss"
                  :props="propss"
              <el-form-item label="关联指标" prop="userName">
                <el-input
                  v-model="queryParams.userName"
                  placeholder="请输入"
                  clearable
                ></el-cascader>
                  style="width: 200px"
                  @keyup.enter.native="handleQuery"
                />
              </el-form-item>
              <el-form-item label="语言" prop="status">
                <el-select v-model="queryParams.status" placeholder="请选择">
                  <el-option
                    v-for="item in languagelist"
                    :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="queryParams.status" placeholder="请选择">
                  <el-option
                    v-for="item in qyoptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
              <el-form-item>
@@ -138,11 +161,6 @@
              <!-- <el-col :span="1.5"> </el-col> -->
            </el-row>
            <!-- <right-toolbar
          :showSearch.sync="showSearch"
          @queryTable="getList"
          :columns="columns"
        ></right-toolbar> -->
            <el-table
              v-loading="loading"
              :data="userList"
@@ -155,82 +173,84 @@
                align="center"
                key="userId"
                prop="userId"
                v-if="columns[0].visible"
              />
              <el-table-column
                label="话术名称"
                label="主旨"
                align="center"
                key="userName"
                prop="userName"
                v-if="columns[1].visible"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="版本"
                label="问题文本"
                align="center"
                key="nickName"
                prop="nickName"
                v-if="columns[2].visible"
                width="400"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="适用疾病"
                label="问题语音"
                align="center"
                key="aphonenumber"
                prop="aphonenumber"
                v-if="columns[4].visible"
                width="120"
                width="400"
              /><el-table-column
                label="话术描述"
                label="关联指标"
                align="center"
                key="bphonenumber"
                prop="bphonenumber"
                v-if="columns[4].visible"
                width="120"
              />
              <el-table-column
                label="最近编辑"
                label="指标选项"
                align="center"
                key="cphonenumber"
                prop="cphonenumber"
                v-if="columns[4].visible"
                key="bphonenumber"
                prop="bphonenumber"
                width="120"
              />
              <el-table-column
                label="语言"
                align="center"
                key="indicator"
                prop="indicator"
                width="120"
              />
              <el-table-column label="是否启用" align="center" key="status">
                <template slot-scope="scope">
                  <el-switch
                    v-model="scope.row.status"
                    active-value="0"
                    inactive-value="1"
                    @change="handleStatusChange(scope.row)"
                  ></el-switch>
                </template>
              </el-table-column>
              <el-table-column
                label="操作"
                align="center"
                width="300"
                width="200"
                class-name="small-padding fixed-width"
              >
                <template slot-scope="scope">
                  <el-button
                    size="medium"
                    type="text"
                    @click="goQRCode(scope.row)"
                    v-hasPermi="['system:user:edit']"
                  >
                    <span class="button-text"
                      ><i class="el-icon-edit"></i>二维码</span
                    ></el-button
                  >
                  <el-button
                    size="medium"
                    type="text"
                    @click="ViewQuestionnaire(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-textck"
                      ><i class="el-icon-edit"></i>查看</span
                    ></el-button
                  >
                  <el-button
                    size="medium"
                    type="text"
                    @click="handleUpdate(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-textxg"
                      ><i class="el-icon-edit"></i>修改</span
                      ><i class="el-icon-edit-outline"></i>修改</span
                    ></el-button
                  >
                  <el-button
                    size="medium"
                    type="text"
                    @click="compileUpdate(scope.row)"
                    v-hasPermi="['system:user:edit']"
                    ><span class="button-bji"
                      ><i class="el-icon-edit"></i>编辑话术</span
                    ></el-button
                  >
                  <el-button
@@ -239,7 +259,7 @@
                    @click="handleDelete(scope.row)"
                    v-hasPermi="['system:user:remove']"
                    ><span class="button-textsc"
                      ><i class="el-icon-edit"></i>删除</span
                      ><i class="el-icon-delete-solid"></i>删除</span
                    ></el-button
                  >
                </template>
@@ -259,84 +279,142 @@
        <!-- 添加或修改话术配置对话框 -->
        <el-dialog
          :title="title"
          :visible.sync="open"
          :visible.sync="indexopen"
          width="900px"
          append-to-body
        >
          <el-form ref="form" :model="form" :rules="rules" label-width="100px">
          <el-form
            ref="form"
            :model="indexform"
            :rules="rules"
            label-width="100px"
          >
            <el-row>
              <el-col :span="12">
                <el-form-item label="姓名" prop="nickName">
                  <el-input
                    v-model="form.nickName"
                    placeholder="请输入姓名"
                    maxlength="30"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="性别" prop="deptId">
                  <el-select v-model="form.sex" placeholder="请选择性别">
              <el-col :span="24">
                <el-form-item label="语言" prop="deptId">
                  <el-select
                    v-model="indexform.language"
                    placeholder="请选择语言"
                  >
                    <el-option
                      v-for="dict in dict.type.sys_user_sex"
                      :key="dict.value"
                      :label="dict.label"
                      :value="dict.value"
                      v-for="index in languagelist"
                      :key="index.value"
                      :label="index.label"
                      :value="index.value"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="证件类型" prop="phonenumber">
              <el-col :span="24">
                <el-form-item label="话术主旨" prop="nickName">
                  <el-input
                    v-model="form.phonenumber"
                    placeholder="请选择证件类型"
                    maxlength="11"
                    v-model="indexform.nickName"
                    placeholder="请输入话术主旨"
                    maxlength="80"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="证件号" prop="email">
                </el-form-item> </el-col
            ></el-row>
            <el-row>
              <el-col :span="24">
                <div
                  style="display: flex; margin-left: 100px; margin-bottom: 10px"
                >
                  <div class="tsgname" @click="tsgnameto()">医院名称</div>
                  <div class="tsgname" @click="tsgnameto()">医院电话</div>
                  <div class="tsgname" @click="tsgnameto()">医院姓名</div>
                  <div class="tsgname" @click="tsgnameto()">随访姓名</div>
                  <div class="tsgname" @click="tsgnameto()">随访电话</div>
                  <div class="tsgname" @click="tsgnameto()">性别</div>
                  <div class="tsgname" @click="tsgnameto()">年龄</div>
                  <div class="tsgname" @click="tsgnameto()">地址</div>
                </div>
              </el-col></el-row
            >
            <el-row>
              <el-col :span="24">
                <el-form-item label="话术文本" prop="verbaltricktext">
                  <el-input v-model="indexform.userName" maxlength="30" />
                </el-form-item> </el-col
            ></el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="话术语音" prop="verbaltrickyy">
                  <el-input v-model="indexform.userName" maxlength="30" />
                </el-form-item> </el-col
            ></el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="无匹配文本" prop="matchtext">
                  <el-input v-model="indexform.userName" maxlength="30" />
                </el-form-item> </el-col
            ></el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="无匹配语音" prop="matchyy">
                  <el-input v-model="indexform.userName" maxlength="30" />
                </el-form-item> </el-col
            ></el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="无声文本" prop="silenttext">
                  <el-input v-model="indexform.userName" maxlength="30" />
                </el-form-item> </el-col
            ></el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="无声语音" prop="silentyy">
                  <el-input v-model="indexform.userName" maxlength="30" />
                </el-form-item> </el-col
            ></el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="通用库文本" prop="librarytext">
                  <el-input v-model="indexform.userName" maxlength="30" />
                </el-form-item> </el-col
            ></el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="通用库语音" prop="libraryy">
                  <el-input v-model="indexform.userName" maxlength="30" />
                </el-form-item> </el-col
            ></el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="听不清文本" prop="vaguetext">
                  <el-input v-model="indexform.userName" maxlength="30" />
                </el-form-item> </el-col
            ></el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="听不清语音" prop="vagueyy">
                  <el-input v-model="indexform.userName" maxlength="30" />
                </el-form-item> </el-col
            ></el-row>
            <el-row>
              <el-col :span="24">
                <el-form-item label="话术规则" prop="email">
                  <el-input
                    v-model="form.email"
                    placeholder="请输入证件号"
                    maxlength="50"
                  />
                    v-model="indexform.remark"
                    type="textarea"
                    placeholder="请输入内容"
                  ></el-input>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="本人手机号" prop="userName">
                  <el-input
                    v-model="form.userName"
                    placeholder="请输入手机号"
                    maxlength="30"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="亲属手机号" prop="password">
                  <el-input
                    v-model="form.password"
                    placeholder="请输入亲属手机号"
                    type="password"
                    maxlength="20"
                    show-password
                  />
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="12">
                <el-form-item label="患者标签">
                  <el-cascader
                    :options="optionss"
                    :props="propss"
                    clearable
                  ></el-cascader>
              <el-col :span="24">
                <el-form-item label="是否启用">
                  <el-radio-group v-model="indexform.qystatus">
                    <el-radio
                      v-for="item in qyoptions"
                      :key="item.value"
                      :label="item.value"
                      >{{ item.label }}</el-radio
                    >
                  </el-radio-group>
                </el-form-item>
              </el-col>
            </el-row>
@@ -345,7 +423,7 @@
              <el-col :span="24">
                <el-form-item label="备注">
                  <el-input
                    v-model="form.remark"
                    v-model="indexform.remark"
                    type="textarea"
                    placeholder="请输入内容"
                  ></el-input>
@@ -395,15 +473,6 @@
        <el-button type="primary" @click="deletefenlei">确 定</el-button>
      </span>
    </el-dialog>
    <!-- 二维码展示弹框 -->
    <el-dialog width="30%" :visible.sync="goQRCodeVisible">
      <div class="qrcode-dialo">
        <div class="qrcode-text">
          {{ namequestionnaire }}<span>{{ haoquestionnaire }}</span>
        </div>
        <div class="qrcode-img"></div>
      </div>
    </el-dialog>
  </div>
</template>
@@ -451,11 +520,12 @@
      userList: [
        {
          userid: 1,
          userName: "三号话术",
          nickName: "1.2.4",
          aphonenumber: "关节炎症",
          bphonenumber: "很棒",
          cphonenumber: "2022-12-12 ",
          userName: "血常规、尿常规",
          nickName: "贫血",
          aphonenumber: "(?!不.*|没.*|未.*)^.*([贫平凭血]|贫血|评学|评学),10",
          bphonenumber: "选择",
          cphonenumber: "普通话",
          status: "0",
        },
      ],
      // 弹出层标题
@@ -468,31 +538,37 @@
      postOptions: [],
      // 角色选项
      roleOptions: [],
      // 表单参数
      form: {},
      // 添加、修改参数
      indexform: {},
      numberlb: 22,
      numberlbs: 2,
      sidecolumnform: {}, //添加类别表单
      dialogFormVisible: false, //添加类别弹框
      goQRCodeVisible: false, //二维码弹框
      sidecolumnval: "", //类别搜索
      indexopen: false, //弹框展示否
      propss: { multiple: true },
      optionss: [
      languagelist: [
        {
          value: 1,
          label: "东南",
          label: "普通话",
        },
        {
          value: 2,
          label: "西北",
          label: "粤语",
        },
        {
          value: 3,
          label: "仨仨仨",
          label: "英语",
        },
      ], //语言列表
      qyoptions: [
        {
          value: 1,
          label: "启用",
        },
        {
          value: 4,
          label: "六飒飒飒",
          value: 2,
          label: "关闭",
        },
      ],
      //类别列表
@@ -528,20 +604,10 @@
        deptId: undefined,
        IDnumber: undefined,
      },
      // 列信息
      columns: [
        { key: 0, label: `用户编号`, visible: true },
        { key: 1, label: `用户名称`, visible: true },
        { key: 2, label: `用户昵称`, visible: true },
        { key: 3, label: `部门`, visible: true },
        { key: 4, label: `手机号码`, visible: true },
        { key: 5, label: `状态`, visible: true },
        { key: 6, label: `创建时间`, visible: true },
      ],
      // 表单校验
      rules: {
        userName: [
          { required: true, message: "用户名称不能为空", trigger: "blur" },
          { required: true, message: "主旨不能为空", trigger: "blur" },
          {
            min: 2,
            max: 20,
@@ -639,20 +705,39 @@
        this.deletefenl = row.title;
      }
    },
    compileUpdate(row) {
      this.$router.push({
        path: "/repositoryai/verbaltrick/particulars/",
        query: { id: "1" },
      });
    },
    // 题目状态修改
    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";
        });
    },
    //搜索类别
    sidecolumnss() {},
    // 便捷标签
    tsgnameto() {},
    // 切换共享/本地
    tophandleClick() {},
    // 取消按钮
    cancel() {
      this.open = false;
      this.indexopen = false;
      this.reset();
    },
    goQRCode(row) {
      this.goQRCodeVisible = true;
      this.namequestionnaire = row.userName;
      this.haoquestionnaire = row.nickName;
    },
    // 表单重置
    reset() {
      this.form = {
@@ -692,23 +777,15 @@
    },
    /** 新增按钮操作 */
    handleAdd() {
      this.$router.push({
        path: "/knowledge/questionnaire/compilequer/",
      });
      this.reset();
      this.title = "新增话术";
      this.indexopen = true;
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      this.$router.push({
        path: "/knowledge/questionnaire/compilequer/",
        query: { id: "1" },
      });
    },
    // 查看话术
    ViewQuestionnaire() {
      this.$router.push({
        path: "/knowledge/questionnaire/examine/",
        query: { id: "1" },
      });
      this.reset();
      this.title = "修改话术";
      this.indexopen = true;
    },
    // 修改分类弹框
    popoveramend(tagcategoryid) {
@@ -724,13 +801,13 @@
          if (this.form.userId != undefined) {
            updateUser(this.form).then((response) => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.indexopen = false;
              this.getList();
            });
          } else {
            addUser(this.form).then((response) => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.indexopen = false;
              this.getList();
            });
          }
@@ -815,6 +892,21 @@
    height: 400px;
  }
}
.tsgname {
  width: 90px;
  margin-right: 10px;
  text-align: center;
  cursor: pointer;
  height: 40px;
  line-height: 40px;
  background: #7799fa;
  color: #ffff;
  font-size: 18px;
  border-radius: 5px;
}
.tsgname:hover {
  background: #3366f5;
}
::v-deep.el-tabs--left,
.el-tabs--right {
  overflow: hidden;
@@ -851,7 +943,7 @@
.button-text {
  color: rgb(70, 204, 238);
}
.button-textck {
.button-bji {
  color: rgb(39, 167, 67);
}
.button-textxg {