heimawl
2023-06-19 d9a869193fb1eeeabd8a3afbb5341a187684c3d0
src/views/system/label/index.vue
@@ -22,7 +22,7 @@
      </div>
      <div class="bottom-fl">
        <el-tabs tab-position="right">
          <el-tab-pane :label="`全部 (${numberlb})`"></el-tab-pane>
          <el-tab-pane :label="`全部 (${total})`"></el-tab-pane>
          <el-tab-pane
            class="tab-paness"
            :key="item.name"
@@ -30,15 +30,18 @@
          >
            <span slot="label">
              {{
                item.title + " (" + item.number + ")"
                item.categoryname + " (" + item.tagNum + ")"
              }}&nbsp&nbsp&nbsp<el-popover
                placement="top-start"
                width="100"
                trigger="hover"
              >
                <div style="text-align: center">
                  <el-button type="text" @click="popoveramend">修改</el-button
                  ><el-button type="text" @click="deleteVisible = true"
                  <el-button
                    type="text"
                    @click="popoveramend(item.tagcategoryid)"
                    >修改</el-button
                  ><el-button type="text" @click="deletefenlei(item)"
                    ><span style="color: rgb(173, 55, 55)"
                      >删除</span
                    ></el-button
@@ -47,8 +50,6 @@
                <i slot="reference" class="el-icon-share"></i> </el-popover
            ></span>
          </el-tab-pane>
          <el-tab-pane :label="`未分组(${numberlbs})`"></el-tab-pane>
        </el-tabs>
      </div>
    </div>
@@ -69,7 +70,7 @@
            >
              <el-form-item label="标签名称" prop="userName">
                <el-input
                  v-model="queryParams.userName"
                  v-model="queryParams.tagname"
                  placeholder="请输入"
                  clearable
                  style="width: 200px"
@@ -101,7 +102,7 @@
                  plain
                  icon="el-icon-plus"
                  size="medium"
                  @click="lstamendtagVisible = true"
                  @click="addladeltag"
                  v-hasPermi="['system:user:add']"
                  >新增</el-button
                >
@@ -152,41 +153,51 @@
              <el-table-column
                label="序号"
                align="center"
                key="userId"
                prop="userId"
                key="tagid"
                prop="tagid"
              />
              <el-table-column
                label="标签名称"
                align="center"
                key="userName"
                prop="userName"
                key="tagname"
                prop="tagname"
                :show-overflow-tooltip="true"
              />
              <el-table-column
                label="最近编辑"
                align="center"
                key="nickName"
                prop="nickName"
                :show-overflow-tooltip="true"
              />
                key="updateTime"
                prop="updateTime"
              >
                <template slot-scope="scope">
                  <span
                    >{{ scope.row.updateBy }}
                    <p>{{ scope.row.updateTime }}</p></span
                  >
                </template>
              </el-table-column>
              <el-table-column
                label="标签描述"
                align="center"
                key="aphonenumber"
                prop="aphonenumber"
                key="tagdescription"
                prop="tagdescription"
                width="120"
              />
              >
              </el-table-column>
              <el-table-column
                label="状态"
                align="center"
                key="aphonenumbers"
                prop="aphonenumbers"
                key="isupload"
                prop="isupload"
                width="120"
              >
                <template slot-scope="scope">
                  <el-switch
                    v-model="scope.row.delivery"
                    v-model="scope.row.isupload"
                    :active-value="1"
                    :inactive-value="0"
                    active-color="#13ce66"
                    @change="handleStatusChange(scope.row)"
                  ></el-switch>
                </template>
@@ -238,12 +249,12 @@
      width="30%"
      :visible.sync="dialogFormVisible"
    >
      <el-form :model="sidecolumnform">
      <el-form :model="classifyform">
        <el-form-item
          :label="amendtag ? '请输入新的类别名称' : '请输入类别名称'"
        >
          <el-input
            v-model="sidecolumnform.classesname"
            v-model="classifyform.categoryname"
            autocomplete="off"
          ></el-input>
        </el-form-item>
@@ -264,9 +275,7 @@
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="deleteVisible = false">取 消</el-button>
        <el-button type="primary" @click="deleteVisible = false"
          >确 定</el-button
        >
        <el-button type="primary" @click="deletefenlei">确 定</el-button>
      </span>
    </el-dialog>
    <!-- 修改/添加标签弹框 -->
@@ -277,38 +286,55 @@
    >
      <el-form ref="form" :model="tagform" label-width="80px">
        <el-form-item label="标签名称">
          <el-input v-model="tagform.name"></el-input>
          <el-input v-model="tagform.tagname"></el-input>
        </el-form-item>
        <el-form-item label="标签描述">
          <el-select
            v-model="tagform.tagcategoryid"
            placeholder="请选择标签分类"
          >
            <el-option
              v-for="item in editableTabs"
              :key="item.tagcategoryid"
              :label="item.categoryname"
              :value="item.tagcategoryid"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否启用">
          <el-switch v-model="tagform.delivery"></el-switch>
          <el-switch
            v-model="tagform.isupload"
            :active-value="1"
            :inactive-value="0"
            active-color="#13ce66"
          ></el-switch>
        </el-form-item>
        <el-form-item label="标签描述">
          <el-input type="textarea" v-model="tagform.desc"></el-input>
          <el-input type="textarea" v-model="tagform.tagdescription"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="lstamendtagVisible = false">取 消</el-button>
        <el-button type="primary" @click="submitsidecolumn">确 定</el-button>
        <el-button type="primary" @click="Maintenancetag">确 定</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import {
  listUser,
  getUser,
  delUser,
  addUser,
  updateUser,
} from "@/api/system/user";
import { addUser, updateUser } from "@/api/system/user";
import {
  toamendtag,
  addapitag,
  detailstag,
  deletetag,
  changetagcategory,
  toamendtagcategory,
  addtagcategory,
  deletetagcategory,
  listtag,
  tagclassifylist,
} from "@/api/system/label";
@@ -332,6 +358,7 @@
      multiple: true,
      // 显示搜索条件
      showSearch: true,
      idds: "", //分类id
      // 总条数
      total: 0,
      amendtag: false, //是否修改类别
@@ -341,23 +368,16 @@
      deletefenl: "高血压", //删除项
      //修改添加标签弹框数据
      tagform: {
        delivery: "",
        name: "",
        desc: "",
        isupload: "",
        tagname: "",
        tagcategoryid: "",
        tagdescription: "",
      },
      classifyform: {
        categoryname: "",
      },
      // 标签表格数据
      userList: [
        {
          userId: 1,
          userName: "三号",
          nickName: "1.2.4",
          aphonenumber: "关节炎症",
          delivery: true,
          aphonenumbers: "",
          bphonenumber: "很棒",
          cphonenumber: "2022-12-12 ",
        },
      ],
      userList: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
@@ -370,11 +390,10 @@
      roleOptions: [],
      // 表单参数
      form: {},
      forms: {
        name: "",
      },
      numberlb: 22,
      numberlbs: 2,
      sidecolumnform: {
        classesname: "",
      }, //添加类别表单
      dialogFormVisible: false, //添加、修改类别弹框
      lstamendtagVisible: false, //添加、修改标签弹框
      goQRCodeVisible: false, //二维码弹框
@@ -418,15 +437,12 @@
          number: "2",
        },
      ],
      // 查询参数
      // 查询标签列表参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        userName: undefined,
        phonenumber: undefined,
        status: undefined,
        deptId: undefined,
        IDnumber: undefined,
        tagname: undefined,
        tagdescription: undefined,
      },
      // 列信息
      columns: [
@@ -439,51 +455,51 @@
        { key: 6, label: `创建时间`, visible: true },
      ],
      // 表单校验
      rules: {
        userName: [
          { required: true, message: "标签名称不能为空", trigger: "blur" },
          {
            min: 2,
            max: 20,
            message: "标签名称长度必须介于 2 和 20 之间",
            trigger: "blur",
          },
        ],
        nickName: [
          { required: true, message: "标签昵称不能为空", trigger: "blur" },
        ],
        password: [
          { required: true, message: "标签密码不能为空", trigger: "blur" },
          {
            min: 5,
            max: 20,
            message: "标签密码长度必须介于 5 和 20 之间",
            trigger: "blur",
          },
        ],
        email: [
          {
            type: "email",
            message: "请输入正确的邮箱地址",
            trigger: ["blur", "change"],
          },
        ],
        phonenumber: [
          {
            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
            message: "请输入正确的手机号码",
            trigger: "blur",
          },
        ],
        IDnumber: [
          {
            pattern:
              /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/,
            message: "请输入正确的身份证号码",
            trigger: "blur",
          },
        ],
      },
      // rules: {
      //   userName: [
      //     { required: true, message: "标签名称不能为空", trigger: "blur" },
      //     {
      //       min: 2,
      //       max: 20,
      //       message: "标签名称长度必须介于 2 和 20 之间",
      //       trigger: "blur",
      //     },
      //   ],
      //   nickName: [
      //     { required: true, message: "标签昵称不能为空", trigger: "blur" },
      //   ],
      //   password: [
      //     { required: true, message: "标签密码不能为空", trigger: "blur" },
      //     {
      //       min: 5,
      //       max: 20,
      //       message: "标签密码长度必须介于 5 和 20 之间",
      //       trigger: "blur",
      //     },
      //   ],
      //   email: [
      //     {
      //       type: "email",
      //       message: "请输入正确的邮箱地址",
      //       trigger: ["blur", "change"],
      //     },
      //   ],
      //   phonenumber: [
      //     {
      //       pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
      //       message: "请输入正确的手机号码",
      //       trigger: "blur",
      //     },
      //   ],
      //   IDnumber: [
      //     {
      //       pattern:
      //         /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/,
      //       message: "请输入正确的身份证号码",
      //       trigger: "blur",
      //     },
      //   ],
      // },
    };
  },
  watch: {},
@@ -495,47 +511,112 @@
  methods: {
    /** 查询标签列表 */
    getList() {
      //   this.loading = true;
      let forms = {};
      forms.name = this.sidecolumnval;
      listtag(forms).then((response) => {
      listtag(this.addDateRange(this.queryParams)).then((response) => {
        console.log(response);
      });
      listUser().then((response) => {
        console.log(response);
        console.log(this.userList);
        this.total = response.total;
        this.userList = response.rows;
      });
    },
    // 获取标签分类
    gitclasify() {
      let forms = {};
      forms.name = this.sidecolumnval;
      tagclassifylist(forms).then((response) => {
        console.log(response);
      });
    },
    // 添加类别
    submitsidecolumn() {
      this.dialogFormVisible = false;
    /** 修改标签 */
    handleUpdate(row) {
      console.log(row, "修改标签");
      this.lstamendtagVisible = true;
      this.lstamendtag = true;
      this.tagform = {
        delivery: "",
        name: "",
        desc: "",
        isupload: row.isupload,
        tagname: row.tagname,
        tagcategoryid: row.tagcategoryid,
        tagdescription: row.tagdescription,
        tagid: row.tagid,
      };
    },
    // 修改弹框
    popoveramend() {
    addladeltag() {
      this.lstamendtagVisible = true;
      this.lstamendtag = false;
      this.tagform = {
        isupload: "",
        tagname: "",
        tagcategoryid: "",
        tagdescription: "",
        tagid: "",
      };
    },
    // 添加/修改标签
    Maintenancetag() {
      if (this.lstamendtag) {
        toamendtag(this.addDateRange(this.tagform)).then((response) => {
          console.log(response);
          this.getList();
        });
      } else {
        addapitag(this.addDateRange(this.tagform)).then((response) => {
          console.log(response);
          this.getList();
        });
      }
      this.tagform = {
        isupload: "",
        tagname: "",
        tagcategoryid: "",
        tagdescription: "",
        tagid: "",
      };
    },
    // 获取标签分类
    gitclasify() {
      tagclassifylist(this.addDateRange(this.forms)).then((response) => {
        console.log(response);
        this.numberlb = response.total;
        this.editableTabs = response.rows;
      });
    },
    // 添加/修改类别
    submitsidecolumn() {
      if (this.amendtag) {
        this.classifyform.tagcategoryid = this.idds;
        toamendtagcategory(this.addDateRange(this.classifyform)).then(
          (response) => {
            console.log(response);
            this.gitclasify();
          }
        );
      } else {
        addtagcategory(this.addDateRange(this.classifyform)).then(
          (response) => {
            console.log(response);
            this.gitclasify();
          }
        );
      }
      this.classifyform = {
        categoryname: "",
      };
      this.idds = "";
      this.dialogFormVisible = false;
    },
    //删除分类
    deletefenlei(row) {
      if (this.deleteVisible) {
        deletetagcategory(this.idds).then((response) => {
          console.log(response);
          this.gitclasify();
        });
        this.deleteVisible = false;
        this.idds = "";
      } else {
        this.deleteVisible = true;
        this.idds = row.tagcategoryid;
        this.deletefenl = row.categoryname;
      }
    },
    // 修改分类弹框
    popoveramend(tagcategoryid) {
      this.idds = tagcategoryid;
      this.amendtag = true;
      this.dialogFormVisible = true;
    },
    // 切换共享/本地
    tophandleClick() {},
    // 取消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // 表单重置
    reset() {
      this.form = {
@@ -556,17 +637,18 @@
    },
    // 标签状态修改
    handleStatusChange(row) {
      let text = row.status === "0" ? "启用" : "停用";
      console.log(row.isupload);
      let text = row.isupload === "0" ? "启用" : "停用";
      this.$modal
        .confirm('确认要"' + text + '""' + row.userName + '"标签吗?')
        .confirm('确认要"' + text + '""' + row.tagname + '"标签吗?')
        .then(function () {
          // return changeUserStatus(row.userId, row.status);
          return changetagcategory(row.tagid, row.isupload);
        })
        .then(() => {
          this.$modal.msgSuccess(text + "成功");
        })
        .catch(function () {
          row.status = row.status === "0" ? "1" : "0";
          row.isupload = row.isupload === "0" ? "1" : "0";
        });
    },
    /** 搜索按钮操作 */
@@ -578,33 +660,15 @@
    resetQuery() {
      this.dateRange = [];
      this.resetForm("queryForm");
      this.queryParams.deptId = undefined;
      this.queryParams.tagname = "";
      this.$refs.tree.setCurrentKey(null);
      this.handleQuery();
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map((item) => item.userId);
      this.ids = selection.map((item) => item.tagid);
      this.single = selection.length != 1;
      this.multiple = !selection.length;
    },
    /** 修改标签 */
    handleUpdate(row) {
      console.log(row, "修改标签");
      this.lstamendtagVisible = true;
      this.lstamendtag = true;
      this.tagform = {
        delivery: row.delivery,
        name: row.userName,
        desc: row.bphonenumber,
      };
    },
    // 查看问卷
    ViewQuestionnaire() {
      this.$router.push({
        path: "/knowledge/questionnaire/examine/",
        query: { id: "1" },
      });
    },
    /** 更新/修改提交按钮 */
@@ -630,16 +694,17 @@
    /** 删除按钮操作 */
    handleDelete(row) {
      console.log(row, "删除弹窗");
      const userIds = row.userId || this.ids;
      const aphonenumber = row.aphonenumber;
      const tagids = row.tagid || this.ids;
      console.log(tagids);
      const tagname = row.tagname;
      this.$modal
        .confirm(
          aphonenumber
            ? '是否确认删除标签名称为"' + aphonenumber + '"的数据项?'
          tagname
            ? '是否确认删除标签名称为"' + tagname + '"的数据项?'
            : "是否确认删除选中的数据项?"
        )
        .then(function () {
          return delUser(userIds);
          return deletetag(tagids);
        })
        .then(() => {
          this.getList();
@@ -650,7 +715,7 @@
    /** 导出按钮操作 */
    handleExport() {
      this.download(
        "basetag/export",
        "base/tag/export",
        {
          ...this.topqueryParams,
        },