<template> <div class="storeSet pagePadding"> <div v-if="powers && powers.length > 0 && powers.some((item) => item == '001')" > <ex-table v-loading="loading" :table="table" :data="tableData" :columns="columns" :page="pageInfo" :size="size" @page-curr-change="handlePageChange" @page-size-change="handleSizeChange" @screen-reset=" pageInfo.curr = 1; parmValue.page = 1; searchList(); " @screen-submit=" pageInfo.curr = 1; parmValue.page = 1; searchList(); " > <template #table-header="{}"> <div style="width: 100%"> <el-row style="padding: 0 0 0 80px"> <el-col :span="24"> <el-col :span="4" style="width: 120px"> <el-select :size="searchSize" v-model="parmValue.status" filterable clearable placeholder="账号状态" style="width: 100%" @change=" pageInfo.curr = 1; parmValue.page = 1; searchList(); " > <el-option v-for="item in statusList" :key="'status' + item.code" :label="item.name" :value="item.code" /> </el-select> </el-col> <el-col :span="4" style="width: 150px; padding: 0 0 0 10px"> <el-input :size="searchSize" v-model="parmValue.name" :maxlength="40" placeholder="业务员姓名" /> </el-col> <el-col :span="4" style="width: 160px; padding: 0 0 0 10px"> <el-input :size="searchSize" v-model="parmValue.username" :maxlength="40" placeholder="手机号" /> </el-col> <el-col :span="4" style="width: 54px"> <el-button :size="searchSize" type="primary" class="fr" icon="el-icon-search" @click="searchList" /></el-col> <el-col :span="4" style="width: 66px" > <el-button type="warning" class="fr" :size="searchSize" @click="restSearch" > 重置 </el-button> </el-col> <el-col :span="3" style="width: 66px; float: right" > <el-button :size="searchSize" type="primary" style="float: right; margin-left: 5px" @click="searchList" > 刷新 </el-button> </el-col> </el-col> </el-row> </div> </template> <template #status="{ scope }"> <el-tag :size="tablebtnSize" :type="scope.row.status == '0' ? 'warning' : ''" v-text=" (statusOptions.find((item) => item.id == scope.row.status) || {}) .label || '--' " ></el-tag> </template> <template #operation="{ scope }"> <el-tooltip v-if="powers.some((item) => item == '020')" effect="dark" content="重置密码" placement="top" > <i class="el-icon-refresh-left tb-icon" @click="openPasswordModal(scope.row.id, false)" ></i> </el-tooltip> <el-tooltip v-if="powers.some((item) => item == '007')" effect="dark" content="详情" placement="top" > <i class="el-icon-view tb-icon" @click="openModal(scope.row.id, true, scope.row)" ></i> </el-tooltip> <el-tooltip v-if="powers.some((item) => item == '005')" effect="dark" content="修改" placement="top" > <i class="el-icon-edit tb-icon" @click="openModal(scope.row.id, false, scope.row)" ></i> </el-tooltip> <el-tooltip v-if=" powers.some((item) => item == '004') && scope.row.status === '1' " effect="dark" content="禁用" placement="top" > <i class="el-icon-video-pause tb-icon" @click="statusConfirm(scope.row.id, scope.row.status)" ></i> </el-tooltip> <el-tooltip v-if=" powers.some((item) => item == '004') && scope.row.status === '0' " effect="dark" content="启用" placement="top" > <i class="el-icon-video-play tb-icon" @click="statusConfirm(scope.row.id, scope.row.status)" ></i> </el-tooltip> </template> </ex-table> <add-edit :id="modelId" :sitem="sitem" :show-model="showModel" :is-detail="isDetail" @refresh="searchList" @cancel="showModel = false" /> </div> <div v-else> <no-auth></no-auth> </div> <add-edit :showModel="showModel" :id="modelId" :isDetail="isDetail" @refresh="searchList" @cancel="showModel = false" ></add-edit> </div> </template> <script> import mixinPage from "@/mixins/elPaginationHandle"; import resToken from "@/mixins/resToken"; import ExTable from "@/components/ExTableNew.vue"; import statusList from "@/assets/js/statusList"; import asyncRequest from "@/apis/service/purchaseIn/storeSet"; import addEdit from "./addEdit"; import { mapGetters } from "vuex"; export default { name: "storeSet", mixins: [mixinPage, resToken], components: { addEdit, ExTable, }, computed: { ...mapGetters(["tablebtnSize", "searchSize", "size"]), powers() { let tran = this.$store.getters.btnList.find( (item) => item.menu_route == "storeSet" ) || {}; if (tran && tran.action && tran.action.length > 0) { return tran.action; } else { return []; } }, }, data() { return { sitem: null, // 状态 statusOptions: [ { id: "0", label: "禁用" }, { id: "1", label: "启用" }, ], statusList: statusList, loading: true, showModel: false, isDetail: false, modelId: 0, parmValue: { name: "", // 业务员名字 username: "", // 账号 status: "", // page: 1, // 页码 size: 15, // 每页显示条数 }, tableData: [], passwordModel: false, passwordModelId: 0, isPasswordDetail: false, // 表格 - 数据 tableData: [], // 表格 - 参数 table: { stripe: true, border: true, _defaultHeader_: ["setcol"], }, // 表格 - 分页 pageInfo: { size: 15, curr: 1, total: 0, }, // 表格 - 列参数 columns: [ { prop: "nickname", label: "真实姓名", }, { prop: "role_name", label: "角色名称", }, { prop: "mobile", label: "联系电话", }, { prop: "email", label: "邮箱", }, { prop: "status", label: "状态", _slot_: "status", width: "80px", }, { prop: "addtime", label: "创建时间", sortable: true, }, { prop: "", label: "操作", fixed: "right", _noset_: true, _slot_: "operation", }, ], }; }, mounted() { this.searchList(); }, methods: { restSearch() { this.parmValue = { name: "", // 业务员名字 username: "", // 账号 status: "", // page: 1, // 页码 size: 10, // 每页显示条数 }; this.searchList(); }, openModal(id, isDetail, sitem) { this.showModel = true; this.modelId = id; this.isDetail = isDetail; this.sitem = sitem; }, async deleteById(id, status) { await this.$confirm("确定要删除?", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", }) .then(async () => { const model = { id: id, status: status === "1" ? "0" : "1", }; const res = await asyncRequest.status(model); if (res && res.code === 0) { this.$notify.success({ title: "删除成功", message: "", }); this.searchList(); } else if (res && res.code >= 100 && res.code <= 104) { await this.logout(); } else { this.$message.warning(res.message); } }) .catch(() => { console.log("取消"); }); }, async searchList() { this.loading = true; const res = await asyncRequest.list(this.parmValue); if (res && res.code === 0 && res.data) { this.tableData = res.data.list; this.pageInfo.total = Number(res.data.count); } else if (res && res.code >= 100 && res.code <= 104) { await this.logout(); } else { this.tableData = []; this.pageInfo.total = 0; } this.loading = false; }, async statusConfirm(id, status) { let str = status === "1" ? "禁用" : "启用"; await this.$confirm("确定要改为" + str + "?", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", }) .then(async () => { this.loading = true; const model = { id: id, status: status === "1" ? "0" : "1", }; const res = await asyncRequest.status(model); if (res && res.code === 0) { this.loading = false; this.$notify.success({ title: "状态修改成功!", message: "", }); await this.searchList(); } else if (res && res.code >= 100 && res.code <= 104) { await this.logout(); } else { this.$message.warning(res.message); } }) .catch(() => { console.log("取消"); }); }, }, }; </script> <style lang="scss" scoped> .storeSet { } </style>