| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- <template>
- <div id="">
- <search-box-new
- ref="searchBox"
- :formData="formData"
- :formList="formList"
- @search="search"
- @init="init"
- />
- <table-list
- rowKey="categoryId"
- ref="tableList"
- :tableSets="tableSet"
- :tableData="tableData"
- :navText="navText"
- :loading="loading"
- @addClick="addClick"
- >
- <template slot="customize">
- <el-button type="warning" @click="remove"> 批量删除 </el-button>
- </template>
- <template slot="status" slot-scope="props">
- <el-switch
- v-model="props.scope.row.status"
- active-color="#13ce66"
- inactive-color="#ff4949"
- :active-value="1"
- :inactive-value="0"
- @change="statusChange($event, props.scope.row)"
- >
- </el-switch>
- </template>
- <template slot="btn" slot-scope="props">
- <el-button type="text" @click="addClick(props.scope.row, 1)"
- >编辑</el-button
- ><el-button type="text" @click="addClick(props.scope.row, 2)"
- >添加</el-button
- ><el-button type="text" @click="del(props.scope.row)">删除</el-button>
- </template>
- </table-list>
- <pagination
- :total="total"
- :pageSize.sync="formData.pageSize"
- :currentPage.sync="formData.pageNum"
- @search="search"
- />
- <dislog
- :dialogVisible.sync="dialogVisible"
- @search="search"
- :treeData="treeData"
- ></dislog>
- </div>
- </template>
- <script>
- import { mapGetters } from "vuex";
- import dislog from "./dislog.vue";
- import searchBoxNew from "@/components/searchBoxNew";
- import tableList from "@/components/tableList";
- import pagination from "@/components/pagination";
- export default {
- name: "GoodsClassification",
- components: { searchBoxNew, tableList, pagination, dislog },
- data() {
- return {
- loading: false,
- navText: {
- title: "商品分类",
- index: 0,
- ch: "条",
- num: true,
- choice: true,
- addHide: false,
- custom: false,
- openCheckMore: true,
- },
- formList: [
- {
- prop: "merId",
- placeholder: "请选择合作商户",
- scope: "merList",
- },
- {
- prop: "storeId",
- placeholder: "请选择商户店铺",
- scope: "storeList",
- },
- {
- prop: "storeName",
- placeholder: "输入分类名称",
- },
- ],
- formData: {},
- tableSet: [
- {
- label: "分类名称",
- prop: "categoryName",
- hidden: true,
- },
- {
- label: "合作商户",
- prop: "merName",
- hidden: true,
- },
- {
- label: "商户店铺",
- prop: "storeName",
- hidden: true,
- },
- {
- label: "启用状态",
- prop: "status",
- hidden: true,
- scope: "slot",
- slotName: "status",
- },
- {
- label: "创建时间",
- prop: "createTime",
- hidden: true,
- scope: "aTimeList",
- },
- ],
- tableData: [],
- total: 0,
- dialogVisible: false,
- treeData: {},
- };
- },
- created() {
- this.search(2);
- },
- methods: {
- remove() {
- if (this.$refs.tableList.allCheckData.length === 0) {
- this.$message.error("请勾选数据");
- return;
- }
- this.$confirm("确定批量删除选中的数据吗?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
- .then(() => {
- this.$api
- .mallgoodscategorybatchdel(
- this.$refs.tableList.allCheckData.map((i) => i.categoryId)
- )
- .then(() => {
- this.$message.success("批量删除成功");
- this.$store.commit("CATEGORYTREELIST");
- this.search(3);
- });
- })
- .catch(() => {});
- },
- addClick(data, status) {
- if (data) {
- var datas = JSON.parse(JSON.stringify(data));
- if (status === 2) {
- datas.parentId = datas.categoryId;
- datas.categoryId = null;
- datas.categoryName = null;
- datas.status = 1;
- }
- this.treeData = datas;
- } else {
- this.treeData = {
- merId: "",
- storeId: "",
- parentId: "",
- categoryName: "",
- status: 1,
- };
- }
- this.dialogVisible = true;
- },
- search(v) {
- this.loading = true;
- if (v === 2) {
- this.formData = {
- pageSize: 10,
- pageNum: 1,
- status: "0,1",
- };
- this.$nextTick(() => {
- this.$refs.tableList.clearMoreActive();
- });
- }
- if (v === 3) {
- this.$nextTick(() => {
- this.$refs.tableList.clearMoreActive();
- });
- }
- this.$api
- .mallgoodscategorylist(this.formData)
- .then((res) => {
- this.tableData = res.rows;
- this.total = res.total;
- this.navText.index = res.total;
- })
- .finally(() => {
- this.loading = false;
- });
- },
- statusChange(e, row) {
- this.$api
- .editmallgoodscategorysave({ categoryId: row.categoryId, status: e })
- .then((res) => {
- this.$message.success("操作成功");
- this.$store.commit("CATEGORYTREELIST");
- row.status = e;
- })
- .catch(() => {
- return (row.status = e ? 0 : 1);
- });
- },
- init() {
- this.search(2);
- },
- del(v) {
- this.$confirm("确定删除此内容?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning",
- })
- .then(() => {
- this.$api.mallgoodscategorybatchdel([v.categoryId]).then((res) => {
- this.$message.success("删除成功");
- this.$store.commit("CATEGORYTREELIST");
- this.search(3);
- });
- })
- .catch(() => {});
- },
- },
- };
- </script>
- <style lang="scss" scoped></style>
|