| New file |
| | |
| | | import service from "@/libs/axios"; |
| | | |
| | | |
| | | export const getPageList = (data) =>{ |
| | | return service({ |
| | | url: "/lmk/store-tag/page", |
| | | method: "GET", |
| | | params: data |
| | | }) |
| | | } |
| | | export const getTag = (data) =>{ |
| | | return service({ |
| | | url: "/lmk/store-tag/list", |
| | | method: "GET", |
| | | params: data |
| | | }) |
| | | } |
| | | export const addStoreTag =(data) =>{ |
| | | return service({ |
| | | url: "/lmk/store-tag", |
| | | method: "POST", |
| | | data: data |
| | | }) |
| | | } |
| | | export const bind =(data) =>{ |
| | | return service({ |
| | | url: "/lmk/store-tag/bind", |
| | | method: "POST", |
| | | data: data |
| | | }) |
| | | } |
| | | export const editTag = (data)=>{ |
| | | return service({ |
| | | url: "/lmk/store-tag", |
| | | method: "PUT", |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export const delTag = (data)=>{ |
| | | return service({ |
| | | url: "/lmk/store-tag/" + data, |
| | | method: "DELETE", |
| | | }) |
| | | } |
| | | export const removeBatch = (data) =>{ |
| | | return service({ |
| | | url: "/lmk/store-tag/batch", |
| | | method: "DELETE", |
| | | data:data |
| | | }) |
| | | } |
| | | |
| | | export const getStoreTagsById =(data) =>{ |
| | | return service({ |
| | | url: "/lmk/store-tag/storeTags/" + data, |
| | | method: "GET", |
| | | }) |
| | | } |
| | | |
| | | export const delTagByStoreTagRefId = (data)=>{ |
| | | return service({ |
| | | url: "/lmk/store-tag/delTagByStoreTagRefId/" + data, |
| | | method: "DELETE", |
| | | }) |
| | | } |
| | |
| | | </span> |
| | | </p> |
| | | <p class="item"> |
| | | <span class="label">店铺标签:</span> |
| | | <span class="info"> |
| | | <template v-if="tagList?.length > 0"> |
| | | <!-- 遍历标签列表 --> |
| | | <span v-for="(tag, index) in tagList" :key="tag.id"> |
| | | {{ tag.tagName }} |
| | | <button |
| | | style="width: 20px; height: 20px; line-height: 1; border: none; background: #f0f0f0; border-radius: 50%; cursor: pointer; margin-left: 4px; font-size: 12px; display: inline-flex; align-items: center; justify-content: center;" |
| | | @click.stop="handleDeleteTag(tag.id, index)" |
| | | title="删除标签" |
| | | > |
| | | × |
| | | </button> |
| | | <template v-if="index !== tagList.length - 1">、</template> |
| | | </span> |
| | | </template> |
| | | <template v-else>暂无标签</template> |
| | | </span> |
| | | </p> |
| | | <div style="display: flex;align-items: center;justify-content: center;"> |
| | | <Button type="primary" @click="addStoreTag(storeInfo)">新增标签</Button> |
| | | </div> |
| | | <p class="item"> |
| | | <span class="label">店铺简介:</span> |
| | | <span class="info"> |
| | | {{storeInfo.storeDesc?storeInfo.storeDesc:'暂未完善'}} |
| | |
| | | </Row> |
| | | </div> |
| | | </TabPane> |
| | | |
| | | <Modal |
| | | v-model="showModal" |
| | | title="新增标签" |
| | | width="800" |
| | | :mask-closable="false" |
| | | > |
| | | <Select v-model="tagForm.storeTagId" placeholder="请选择" @on-query-change="searchChange" filterable |
| | | clearable style="width: 150px"> |
| | | <Option v-for="item in tagOptions" :value="item.id" :key="item.id">{{ item.tagName }}</Option> |
| | | </Select> |
| | | <div slot="footer"> |
| | | <Button @click="showModal = false">取消</Button> |
| | | <Button type="primary" @click="handleSubmit" :loading="submitLoading">确定</Button> |
| | | </div> |
| | | </Modal> |
| | | </Tabs> |
| | | </Card> |
| | | |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { getTag,bind,getStoreTagsById,delTagByStoreTagRefId } from "@/api/store-tag" |
| | | import ossManage from "@/views/sys/oss-manage/ossManage"; |
| | | import * as RegExp from '@/libs/RegExp.js'; |
| | | import {getCategoryTree} from "@/api/goods"; |
| | |
| | | export default { |
| | | name: "member", |
| | | components: { |
| | | |
| | | ossManage, |
| | | }, |
| | | data() { |
| | | return { |
| | | tagOptions:[], |
| | | submitLoading:false, |
| | | tagForm:{ |
| | | storeId:null, |
| | | storeTagId:"", |
| | | }, |
| | | showModal:false, |
| | | id: "",//店铺id |
| | | categories: [], //店铺静音范围 |
| | | loading: true, // 表单加载状态 |
| | | storeInfo: {},//店铺信息 |
| | | storeInfo: { |
| | | },//店铺信息 |
| | | tagList:[], |
| | | checkAllGroup: [], //选中的经营分类 |
| | | selectDate: null, // 申请时间 |
| | | |
| | |
| | | }; |
| | | }, |
| | | methods: { |
| | | handleDeleteTag(storeTagRefId){ |
| | | console.log(storeTagRefId) |
| | | delTagByStoreTagRefId(storeTagRefId).then(res=>{ |
| | | if (res.code === 200){ |
| | | this.$Message.success("删除成功") |
| | | } |
| | | this.getStoreTags(); |
| | | }) |
| | | |
| | | }, |
| | | |
| | | getStoreTags(){ |
| | | getStoreTagsById(this.id).then(res =>{ |
| | | if (res.code === 200){ |
| | | this.$set(this, "tagList", res.data); |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | |
| | | searchChange(val){ |
| | | this.getStoreTag(val) |
| | | }, |
| | | getStoreTag(val){ |
| | | const params = { |
| | | tagName: '' |
| | | } |
| | | if (val) { |
| | | params.tagName = val; |
| | | } else { |
| | | params.tagName = '' |
| | | } |
| | | getTag(params).then(res =>{ |
| | | if (res.code ===200){ |
| | | this.tagOptions = res.data |
| | | } |
| | | }) |
| | | }, |
| | | handleSubmit(){ |
| | | if (this.tagForm.storeTagId === null || this.tagForm.storeTagId ===""){ |
| | | this.$Message.error("请选择标签") |
| | | return |
| | | } |
| | | this.showModal = false; |
| | | bind(this.tagForm).then(res =>{ |
| | | if (res.code === 200){ |
| | | |
| | | } |
| | | this.getStoreTags(); |
| | | this.getStoreTag(); |
| | | }) |
| | | |
| | | }, |
| | | addStoreTag(info){ |
| | | console.log(info) |
| | | this.tagForm.storeId = info.storeId; |
| | | this.tagForm.storeTagId = ""; |
| | | this.showModal = true; |
| | | }, |
| | | init() { |
| | | this.getStoreTags(); |
| | | |
| | | this.getStoreTag(); |
| | | //查店铺基本信息 |
| | | this.getStoreInfo(); |
| | | //查询店铺分类 |
| New file |
| | |
| | | <template> |
| | | <div> |
| | | <card> |
| | | <Form |
| | | ref="searchForm" |
| | | @keydown.enter.native="handleSearch" |
| | | :model="searchForm" |
| | | inline |
| | | :label-width="70" |
| | | class="search-form" |
| | | > |
| | | <Form-item label="标签名称" prop="tagName"> |
| | | <Input |
| | | type="text" |
| | | v-model="searchForm.tagName" |
| | | clearable |
| | | @on-clear="handleSearch" |
| | | @on-change="handleSearch" |
| | | style="width: 160px" |
| | | /> |
| | | </Form-item> |
| | | <Button |
| | | @click="handleSearch" |
| | | type="primary" |
| | | icon="ios-search" |
| | | class="search-btn" |
| | | >搜索</Button |
| | | > |
| | | </Form> |
| | | <Row class="operation padding-row"> |
| | | <Button @click="openAdd" type="info">添加</Button> |
| | | <Button @click="delBatch" type="error">批量删除</Button> |
| | | </Row> |
| | | <Table |
| | | :loading="loading" |
| | | border |
| | | :columns="columns" |
| | | :data="tagList" |
| | | ref="table" |
| | | sortable="custom" |
| | | @on-sort-change="changeSort" |
| | | @on-selection-change="showSelect" |
| | | > |
| | | <template slot-scope="{ row, index }" slot="action"> |
| | | <Button type="info" size="small" style="margin-right: 5px" @click="openEdit(row)">编辑标签</Button> |
| | | <Button type="error" size="small" style="margin-right: 5px" @click="del(row)">删除标签</Button> |
| | | </template> |
| | | </Table> |
| | | |
| | | <Row type="flex" justify="end" class="mt_10"> |
| | | <Page |
| | | :current="searchForm.pageNumber" |
| | | :total="total" |
| | | :page-size="searchForm.pageSize" |
| | | @on-change="changePage" |
| | | @on-page-size-change="changePageSize" |
| | | :page-size-opts="[10, 20, 50]" |
| | | size="small" |
| | | show-total |
| | | show-elevator |
| | | show-sizer |
| | | ></Page> |
| | | </Row> |
| | | |
| | | <Modal |
| | | v-model="modelShow" |
| | | :title="modelTitle" |
| | | > |
| | | <Form ref="form" :model="form" :label-width="70" :rules="rules"> |
| | | <FormItem label="标签名称" prop="tagName"> |
| | | <Input v-model="form.tagName" autocomplete="off"/> |
| | | </FormItem> |
| | | </Form> |
| | | <div slot="footer"> |
| | | <Button type="text" @click="modelClose">取消</Button> |
| | | <Button type="primary" :loading="submitLoading" @click="saveOrUpdate">提交</Button> |
| | | </div> |
| | | </Modal> |
| | | </card> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { getPageList,addStoreTag,editTag,delTag,removeBatch } from "@/api/store-tag" |
| | | export default { |
| | | name: "store-tag", |
| | | data(){ |
| | | return{ |
| | | loading:false, |
| | | columns:[ |
| | | { |
| | | type: 'selection', |
| | | width: 60, |
| | | align: 'center' |
| | | }, |
| | | { |
| | | title:'标签名称', |
| | | key: 'tagName', |
| | | minWidth: 60, |
| | | tooltip: true, |
| | | }, |
| | | { |
| | | title: '操作', |
| | | key: 'action', |
| | | slot: 'action', |
| | | minWidth: 150, |
| | | align: 'center' |
| | | } |
| | | ], |
| | | total:0, |
| | | tagList:[], |
| | | searchForm: { |
| | | // 搜索框初始化对象 |
| | | pageNumber: 1, // 当前页数 |
| | | pageSize: 10, // 页面大小 |
| | | tagName: '', // 标签名称 |
| | | }, |
| | | // 对话框标题 |
| | | modelTitle:'', |
| | | modelShow:false, |
| | | submitLoading:false, |
| | | // 表单 |
| | | form: { |
| | | id: '', |
| | | tagName: '', |
| | | }, |
| | | rules: { |
| | | tagName: [ |
| | | {required: true, message: "标签名称不能为空", trigger: "blur"} |
| | | ], |
| | | }, |
| | | //多选 |
| | | selectCount: 0, // 已选数量 |
| | | selectList: [], // 已选数据列表 |
| | | } |
| | | |
| | | }, |
| | | mounted(){ |
| | | this.init(); |
| | | }, |
| | | methods:{ |
| | | init(){ |
| | | this.getTagList() |
| | | }, |
| | | openAdd(){ |
| | | this.modelTitle = "新增标签"; |
| | | this.modelShow = true; |
| | | this.form={ |
| | | id: '', |
| | | tagName: '', |
| | | } |
| | | }, |
| | | openEdit(row){ |
| | | this.form.id = row.id; |
| | | this.form.tagName = row.tagName; |
| | | this.modelTitle= "修改标签"; |
| | | this.modelShow = true; |
| | | }, |
| | | saveOrUpdate() { |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | this.submitLoading = true |
| | | if (this.form.id) { |
| | | // 修改 |
| | | editTag(this.form).then(res => { |
| | | if (res.code === 200) { |
| | | this.$Message.success("修改成功"); |
| | | this.modelClose() |
| | | this.getTagList() |
| | | } |
| | | }) |
| | | } else { |
| | | // 新增 |
| | | addStoreTag(this.form).then(res => { |
| | | if (res.code === 200) { |
| | | this.$Message.success("添加成功"); |
| | | this.modelClose() |
| | | this.getTagList() |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | del(row){ |
| | | delTag(row.id).then(res =>{ |
| | | if (res.code === 200){ |
| | | this.$Message.success("删除成功") |
| | | } |
| | | this.getTagList(); |
| | | }) |
| | | }, |
| | | delBatch() { |
| | | if (this.selectCount <= 0) { |
| | | this.$Message.warning("您还未选择要删除的数据"); |
| | | return; |
| | | } |
| | | |
| | | // 显示确认对话框 |
| | | this.$Modal.confirm({ |
| | | title: '确认删除', |
| | | content: `您确定要删除选中的 ${this.selectCount} 条数据吗?`, |
| | | onOk: () => { |
| | | // 用户点击确认后执行删除 |
| | | this.removeBatch(); |
| | | }, |
| | | onCancel: () => { |
| | | this.$Message.info('已取消删除'); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | async removeBatch() { |
| | | try { |
| | | const res = await removeBatch(this.selectList); |
| | | if (res.code === 200) { |
| | | this.getTagList(); |
| | | this.selectedRows = []; |
| | | this.selectCount = 0; |
| | | this.$Message.success('删除成功'); |
| | | } else { |
| | | this.$Message.error(res.message || '删除失败'); |
| | | } |
| | | } catch (err) { |
| | | console.log(err); |
| | | this.$Message.error('请求失败,请重试'); |
| | | } |
| | | }, |
| | | // 关闭弹窗 |
| | | modelClose() { |
| | | this.submitLoading = false |
| | | this.modelShow = false |
| | | }, |
| | | getTagList(){ |
| | | this.loading = true; |
| | | getPageList(this.searchForm).then((res) => { |
| | | this.loading = false; |
| | | if (res.code === 200) { |
| | | this.tagList = res.data; |
| | | this.total = res.total; |
| | | } |
| | | }); |
| | | this.loading = false; |
| | | }, |
| | | handleSearch(){ |
| | | this.searchForm.pageNumber = 1; |
| | | this.searchForm.pageSize = 10; |
| | | this.getTagList(); |
| | | }, |
| | | // 分页 改变页码 |
| | | changePage(v) { |
| | | this.searchForm.pageNumber = v; |
| | | this.getTagList(); |
| | | }, |
| | | // 分页 改变页数 |
| | | changePageSize(v) { |
| | | this.searchForm.pageNumber = 1; |
| | | this.searchForm.pageSize = v; |
| | | this.getTagList(); |
| | | }, |
| | | changeSort(){ |
| | | |
| | | }, |
| | | showSelect(e){ |
| | | this.selectList = e.map(d => d.id); |
| | | this.selectCount = e.length; |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | | <style scoped lang="scss"> |
| | | |
| | | </style> |
| | |
| | | <Option value="GENERATE">生成</Option> |
| | | </Select> |
| | | </FormItem> |
| | | <FormItem label="启用状态:"> |
| | | <Select |
| | | v-model="listQuery.status" |
| | | placeholder="全部状态" |
| | | clearable |
| | | style="width: 180px" |
| | | > |
| | | <Option value="ENABLE">启用</Option> |
| | | <Option value="DISABLE">禁用</Option> |
| | | </Select> |
| | | </FormItem> |
| | | </Form> |
| | | </div> |
| | | </Card> |