|
@@ -0,0 +1,511 @@
|
|
|
+<template>
|
|
|
+ <div class="supplierBrand">
|
|
|
+ <div class="supplierBrand_show_box" v-if="powers.some((i) => i == '001')">
|
|
|
+ <div class="rule-view">
|
|
|
+ <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 0px">
|
|
|
+ <el-col :span="24">
|
|
|
+ <div class="fl" style="height: 28px; line-height: 28px;display:flex">
|
|
|
+ <search-supplier
|
|
|
+ style="margin-right:10px;width:260px"
|
|
|
+ :size="'mini'"
|
|
|
+ :value="parmValue.supplierNo"
|
|
|
+ :disabled="false"
|
|
|
+ :placeholder="'供应商名称'"
|
|
|
+ :is-detail="true"
|
|
|
+ :no-disabled="true"
|
|
|
+ @searchChange="supplierChange"
|
|
|
+ />
|
|
|
+
|
|
|
+ <el-select v-model="parmValue.status" style="margin-right: 10px;width:90px" size="mini" clearable placeholder="状态"
|
|
|
+ @change="pageInfo.curr = 1;parmValue.page = 1;searchList();"
|
|
|
+ >
|
|
|
+ <el-option label="启用" value="1" />
|
|
|
+ <el-option label="禁用" value="0" />
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <el-input v-model="parmValue.creater" style="margin-right: 10px;width:120px" size="mini" placeholder="创建人" clearable
|
|
|
+ @change="pageInfo.curr = 1;parmValue.page = 1;searchList();"
|
|
|
+ />
|
|
|
+
|
|
|
+ <period-date-picker
|
|
|
+ :start="parmValue.start"
|
|
|
+ :end="parmValue.end"
|
|
|
+ :type="1"
|
|
|
+ :width="'135px'"
|
|
|
+ :size="searchSize"
|
|
|
+ @timeReturned="timeReturned($event)"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ class="fr"
|
|
|
+ style="margin: 0 0 0 10px"
|
|
|
+ :size="searchSize"
|
|
|
+ @click="searchList"
|
|
|
+ >
|
|
|
+ 刷新
|
|
|
+ </el-button>
|
|
|
+
|
|
|
+ <el-button
|
|
|
+ type="warning"
|
|
|
+ style="margin: 0 0 0 10px"
|
|
|
+ :size="searchSize"
|
|
|
+ class="fr"
|
|
|
+ @click="restSearch"
|
|
|
+ >
|
|
|
+ 重置
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="powers.some((i) => i == '003')"
|
|
|
+ type="success"
|
|
|
+ class="fr"
|
|
|
+ style="margin: 0 0 0 10px"
|
|
|
+ :size="searchSize"
|
|
|
+ @click="openModal(-1, 'add')"
|
|
|
+ >
|
|
|
+ 添加
|
|
|
+ </el-button></el-col
|
|
|
+ >
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template #status="{ scope }">
|
|
|
+ <el-tag
|
|
|
+ :size="tablebtnSize"
|
|
|
+ :type="scope.row.status == '0' ? 'warning' : ''"
|
|
|
+ v-text="
|
|
|
+ (options2.find((item) => item.id == scope.row.status) || {}).name || '--'
|
|
|
+ "
|
|
|
+ ></el-tag>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template #operation="{ scope }">
|
|
|
+ <!-- <el-tooltip
|
|
|
+ effect="dark"
|
|
|
+ content="详情"
|
|
|
+ v-if="powers.some((i) => i == '007')"
|
|
|
+ placement="top"
|
|
|
+ >
|
|
|
+ <i
|
|
|
+ class="el-icon-view tb-icon"
|
|
|
+ @click="openModal(scope.row.id, 'view')"
|
|
|
+ ></i>
|
|
|
+ </el-tooltip>
|
|
|
+ <el-tooltip
|
|
|
+ effect="dark"
|
|
|
+ content="修改"
|
|
|
+ v-if="powers.some((i) => i == '005') && scope.row.status + '' === '0'"
|
|
|
+ placement="top"
|
|
|
+ >
|
|
|
+ <i
|
|
|
+ class="el-icon-edit tb-icon"
|
|
|
+ @click="openModal(scope.row.id, 'edit')"
|
|
|
+ ></i> </el-tooltip > -->
|
|
|
+ <el-tooltip
|
|
|
+ v-if="powers.some((i) => i == '004') && scope.row.status + '' === '1'"
|
|
|
+ effect="dark"
|
|
|
+ content="禁用"
|
|
|
+ placement="top"
|
|
|
+ >
|
|
|
+ <i
|
|
|
+ class="el-icon-video-pause tb-icon"
|
|
|
+ @click="changeStatus(scope.row.id, scope.row.status)"
|
|
|
+ ></i>
|
|
|
+ </el-tooltip>
|
|
|
+ <el-tooltip
|
|
|
+ v-if="powers.some((i) => i == '004') && scope.row.status + '' === '0'"
|
|
|
+ effect="dark"
|
|
|
+ content="启用"
|
|
|
+ placement="top"
|
|
|
+ >
|
|
|
+ <i
|
|
|
+ class="el-icon-video-play tb-icon"
|
|
|
+ @click="changeStatus(scope.row.id, scope.row.status)"
|
|
|
+ ></i> </el-tooltip
|
|
|
+ >
|
|
|
+ <!-- <el-tooltip
|
|
|
+ effect="dark"
|
|
|
+ content="删除"
|
|
|
+ placement="top"
|
|
|
+ v-if="powers.some((i) => i == '006') && scope.row.status + '' === '0'"
|
|
|
+ >
|
|
|
+ <i class="el-icon-delete tb-icon" @click="deleteItem(scope.row.id)"></i>
|
|
|
+ </el-tooltip> -->
|
|
|
+ </template>
|
|
|
+ </ex-table>
|
|
|
+ <add-edit
|
|
|
+ :id="modelId"
|
|
|
+ :type="isDetail"
|
|
|
+ :showModel="showModel"
|
|
|
+ :sitem="sitem"
|
|
|
+ @cancel="showModel = false"
|
|
|
+ @refresh="(showModel = false), searchList()"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <no-auth v-else></no-auth>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import asyncRequest from "@/apis/service/serviceParam/supplierCat";
|
|
|
+import { statusList } from "@/assets/js/statusList";
|
|
|
+import mixinPage from "@/mixins/elPaginationHandle";
|
|
|
+import { mapGetters } from "vuex";
|
|
|
+import supplierlist from "./supplierlist";
|
|
|
+import addEdit from "./addEdit";
|
|
|
+import resToken from "@/mixins/resToken";
|
|
|
+import columns from "./columns";
|
|
|
+export default {
|
|
|
+ name: "supplierBrand",
|
|
|
+ mixins: [mixinPage, resToken],
|
|
|
+ components: {
|
|
|
+ supplierlist,
|
|
|
+ addEdit,
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ //组件SIZE设置
|
|
|
+ ...mapGetters(["tablebtnSize", "searchSize", "size"]),
|
|
|
+ powers() {
|
|
|
+ const tran =
|
|
|
+ this.$store.getters.btnList.find((item) => item.menu_route == "supplierBrand") ||
|
|
|
+ {};
|
|
|
+ const { action } = tran ?? {};
|
|
|
+ return action ?? [];
|
|
|
+ },
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ statusList: statusList,
|
|
|
+ options1: [
|
|
|
+ { id: "0", name: "长期" },
|
|
|
+ { id: "1", name: "非长期" },
|
|
|
+ ],
|
|
|
+ options2: [
|
|
|
+ { id: "0", name: "禁用" },
|
|
|
+ { id: "1", name: "启用" },
|
|
|
+ ],
|
|
|
+ showModel: false,
|
|
|
+ modelSitem: null,
|
|
|
+ modelId: "",
|
|
|
+ modelType: "",
|
|
|
+ selectLoading: false,
|
|
|
+ loading: true,
|
|
|
+ showModelThis: false,
|
|
|
+ parmValue: {
|
|
|
+ supplierNo: [],
|
|
|
+ start:"",
|
|
|
+ end:"",
|
|
|
+ status: "",
|
|
|
+ creater: "", // 供应商code
|
|
|
+ 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,
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ mounted(){
|
|
|
+ this.searchList();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ supplierChange(e){
|
|
|
+ const { code } = e;
|
|
|
+ this.parmValue.supplierNo = code ? [code] : [];
|
|
|
+ this.searchList();
|
|
|
+ },
|
|
|
+ restSearch() {
|
|
|
+ // 表格 - 分页
|
|
|
+ this.pageInfo = { size: 15, curr: 1, total: 0 };
|
|
|
+ this.parmValue.page = 1;
|
|
|
+ this.parmValue.size = 15;
|
|
|
+ this.parmValue.supplierNo = [];
|
|
|
+ this.parmValue.start = "";
|
|
|
+ this.parmValue.end = "";
|
|
|
+ this.parmValue.status = "";
|
|
|
+ this.parmValue.creater = "";
|
|
|
+ this.searchList();
|
|
|
+ },
|
|
|
+ openModal(id, isDetail) {
|
|
|
+ this.modelId = id;
|
|
|
+ this.isDetail = isDetail;
|
|
|
+ this.showModel = true;
|
|
|
+ },
|
|
|
+
|
|
|
+ gotoEdit(row, type) {
|
|
|
+ const { status } = row;
|
|
|
+ if (type === "005" && status + '' === "1") {
|
|
|
+ this.$message.warning("禁用后,才可以修改!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.routeGoto("supplierBrandDetail", {
|
|
|
+ id: row.code,
|
|
|
+ type: "edit",
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 启用/禁用
|
|
|
+ * @param {String} id id
|
|
|
+ * @param {String} status 0-禁用 1-启用
|
|
|
+ */
|
|
|
+ async changeStatus(id, status) {
|
|
|
+ await this.$confirm(`确定要改为${status + '' === "1" ? "禁用" : "启用"}?`, {
|
|
|
+ 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.loading = false;
|
|
|
+ this.$message.warning(res.message);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ console.log("取消");
|
|
|
+ });
|
|
|
+ },
|
|
|
+ async deleteItem(id) {
|
|
|
+ await this.$confirm("确定要删除?", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(async () => {
|
|
|
+ const model = {
|
|
|
+ id: id,
|
|
|
+ };
|
|
|
+ const res = await asyncRequest.delete(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 timeReturned(e) {
|
|
|
+ if (e.startTime !== "") {
|
|
|
+ this.parmValue.start = e.startTime;
|
|
|
+ } else {
|
|
|
+ this.parmValue.start = "";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (e.endTime !== "") {
|
|
|
+ this.parmValue.end = e.endTime;
|
|
|
+ } else {
|
|
|
+ this.parmValue.end = "";
|
|
|
+ }
|
|
|
+
|
|
|
+ await this.searchList();
|
|
|
+ },
|
|
|
+ // 刷新表格
|
|
|
+ async searchList() {
|
|
|
+ if (
|
|
|
+ (this.parmValue.start !== "" && this.parmValue.end === "") ||
|
|
|
+ (this.parmValue.start === "" && this.parmValue.end !== "")
|
|
|
+ ) {
|
|
|
+ this.$message.warning("时间区间不完整!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.loading = true;
|
|
|
+ const { code, data, message } = await asyncRequest.list({
|
|
|
+ ...this.parmValue,
|
|
|
+ supplierNo:Array.isArray(this.parmValue.supplierNo) ? this.parmValue.supplierNo[0] : ""
|
|
|
+ });
|
|
|
+
|
|
|
+ let scode = parseInt(code + "");
|
|
|
+ if (scode === 0) {
|
|
|
+ const { list, count } = data;
|
|
|
+ this.tableData = list;
|
|
|
+ this.pageInfo.total = Number(count + "");
|
|
|
+ } else if (scode >= 100 && scode <= 104) {
|
|
|
+ await this.logout();
|
|
|
+ } else {
|
|
|
+ this.tableData = [];
|
|
|
+ this.pageInfo.total = 0;
|
|
|
+ }
|
|
|
+ this.loading = false;
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+@import "~@/styles/mixin.scss";
|
|
|
+.supplierBrand {
|
|
|
+ position: relative;
|
|
|
+ width: 100%;
|
|
|
+ height: calc(100vh - 50px);
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ .supplierBrand_show_box {
|
|
|
+ // position: relative;
|
|
|
+ // height: calc(100% - 50px);
|
|
|
+ // min-height: calc(100% - 50px);
|
|
|
+
|
|
|
+ display: relative;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ // height: calc(100vh - 50px);
|
|
|
+ // overflow: hidden;
|
|
|
+ // text-align: left;
|
|
|
+ //左侧
|
|
|
+ .role-list {
|
|
|
+ height: 100%;
|
|
|
+ overflow-y: auto;
|
|
|
+ width: 320px;
|
|
|
+ // padding: 8px 16px;
|
|
|
+ min-height: 100%;
|
|
|
+ flex-shrink: 0;
|
|
|
+ border-right: 2px solid #dfe6ec;
|
|
|
+ @include scrollBar();
|
|
|
+ &::after {
|
|
|
+ content: "";
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ right: 0;
|
|
|
+ height: 100%;
|
|
|
+ width: 2px;
|
|
|
+ background-color: #e4e7ed;
|
|
|
+ z-index: 1;
|
|
|
+ }
|
|
|
+ .role-list__title {
|
|
|
+ color: #b4b6c0;
|
|
|
+ line-height: 32px;
|
|
|
+ }
|
|
|
+ .role-list__item {
|
|
|
+ position: relative;
|
|
|
+ white-space: nowrap;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ overflow: hidden;
|
|
|
+ height: 32px;
|
|
|
+ line-height: 32px;
|
|
|
+ padding-left: 8px;
|
|
|
+ color: rgb(48, 49, 51);
|
|
|
+ cursor: pointer;
|
|
|
+ i {
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ line-height: 32px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .role-list__item.active {
|
|
|
+ color: #6954f0;
|
|
|
+ background: #f7f7f7;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //右侧
|
|
|
+ .rule-view {
|
|
|
+ width:100%;
|
|
|
+ // height: calc(100% - 50px);
|
|
|
+ // width: calc(100% - 320px);
|
|
|
+ overflow-y: auto;
|
|
|
+ padding: 10px 16px;
|
|
|
+ @include scrollBar();
|
|
|
+ .rule-list {
|
|
|
+ border-right: 1px solid #dfe6ec;
|
|
|
+ .title {
|
|
|
+ padding: 18px 18px 12px 18px;
|
|
|
+ border-bottom: 1px dashed #dfe6ec;
|
|
|
+ font-size: 15px;
|
|
|
+ color: #000;
|
|
|
+ }
|
|
|
+ .main {
|
|
|
+ padding: 18px 18px 12px 18px;
|
|
|
+ border-bottom: 1px solid #dfe6ec;
|
|
|
+ }
|
|
|
+ .main-title {
|
|
|
+ width: 80px;
|
|
|
+ }
|
|
|
+ .main-item {
|
|
|
+ width: calc(100% - 80px);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .rule-bottom {
|
|
|
+ padding: 10px 18px 8px 0;
|
|
|
+ background: #fff;
|
|
|
+ width: calc(100% - 200px);
|
|
|
+ position: absolute;
|
|
|
+ text-align: right;
|
|
|
+ bottom: 0;
|
|
|
+ right: 0;
|
|
|
+ &::before {
|
|
|
+ content: "";
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ right: 0;
|
|
|
+ height: 2px;
|
|
|
+ width: 100%;
|
|
|
+ background-color: #e4e7ed;
|
|
|
+ z-index: 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|