main
parent
0e4bd62bb0
commit
3a8710dbb8
@ -0,0 +1,84 @@
|
||||
import httpService from "@/request"
|
||||
|
||||
///类型
|
||||
// 查询所有业委会类型信息
|
||||
export function getComList(params) {
|
||||
return httpService({
|
||||
url: `/user/industryCommitteeType/list`,
|
||||
method: 'get',
|
||||
params: params,
|
||||
})
|
||||
}
|
||||
|
||||
// 添加业委会类型
|
||||
export function addComType(params) {
|
||||
return httpService({
|
||||
url: `/user/industryCommitteeType/insert`,
|
||||
method: 'post',
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
// 修改业委会类型
|
||||
export function updateComType(params) {
|
||||
return httpService({
|
||||
url: `/user/industryCommitteeType/update`,
|
||||
method: 'post',
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
// 删除业委会类型
|
||||
export function delComType(params) {
|
||||
return httpService({
|
||||
url: `/user/industryCommitteeType/delete`,
|
||||
method: 'get',
|
||||
params: params,
|
||||
})
|
||||
}
|
||||
|
||||
///信息
|
||||
// 查询所有业委会信息
|
||||
export function getIndustryCommitteeList(params) {
|
||||
return httpService({
|
||||
url: `/user/industryCommittee/list`,
|
||||
method: 'get',
|
||||
params: params,
|
||||
})
|
||||
}
|
||||
|
||||
// 添加业委会信息
|
||||
export function addIndustryCom(params) {
|
||||
return httpService({
|
||||
url: `/user/industryCommittee/insert`,
|
||||
method: 'post',
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
// 删除业委会信息
|
||||
export function delIndustryCom(params) {
|
||||
return httpService({
|
||||
url: `/user/industryCommittee/delete`,
|
||||
method: 'post',
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
// 根据业委会主键id查询业委会信息
|
||||
export function findIndustryCom(params) {
|
||||
return httpService({
|
||||
url: `/user/industryCommittee/findById`,
|
||||
method: 'get',
|
||||
params: params,
|
||||
})
|
||||
}
|
||||
|
||||
// 根据业委会主键id查询业委会信息
|
||||
export function updateIndustryCom(params) {
|
||||
return httpService({
|
||||
url: `/user/industryCommittee/update`,
|
||||
method: 'post',
|
||||
data: params,
|
||||
})
|
||||
}
|
@ -0,0 +1,161 @@
|
||||
<template>
|
||||
<div>
|
||||
<a-drawer title="职位设置" :width="540" :visible="show" :body-style="{ paddingBottom: '80px' }" @close="addClose">
|
||||
<div class="drawer-content" style="padding: 16px">
|
||||
职位类型
|
||||
<a-divider></a-divider>
|
||||
<!-- tags -->
|
||||
<span v-for="item,index in typeList" :key="item.id">
|
||||
<a-input
|
||||
v-if="item.show==true"
|
||||
ref="input"
|
||||
v-focus
|
||||
type="text"
|
||||
size="small"
|
||||
:style="{ width: '78px','padding-bottom':'3px','margin-right':'7px' }"
|
||||
v-model="item.name"
|
||||
@blur="editType(item)"
|
||||
@keyup.enter="editType(item)"
|
||||
/>
|
||||
<a-tag
|
||||
v-else-if="item.show==false" closable @close.prevent="delType(item.id)"
|
||||
@click="editInput(item,index)" >
|
||||
{{item.name}}
|
||||
</a-tag>
|
||||
</span>
|
||||
<!-- addTag -->
|
||||
<span>
|
||||
<a-input
|
||||
v-if="inputVisible"
|
||||
ref="addInput"
|
||||
type="text"
|
||||
size="small"
|
||||
:style="{ width: '78px','padding-bottom':'3px'}"
|
||||
:value="typeForm.name"
|
||||
@change="handleInputChange"
|
||||
@blur="handleInputConfirm"
|
||||
@keyup.enter="handleInputConfirm"
|
||||
/>
|
||||
<a-tag v-else style="background: #fff; borderStyle: dashed;" @click="addShow">
|
||||
<a-icon type="plus" /> 新增类型
|
||||
</a-tag>
|
||||
</span>
|
||||
</div>
|
||||
<div class="drawer-footer">
|
||||
<a-button :style="{ marginRight: '8px' }" @click="addClose">
|
||||
关闭
|
||||
</a-button>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// import {getPhontTypeList, addPhontType, delPhontType,updatePhontType} from "@/api/operation/suggestion"
|
||||
import {getComList, addComType, updateComType, delComType} from "@/api/operation/commission"
|
||||
export default {
|
||||
props: {
|
||||
show: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
typeForm: {
|
||||
name: ''
|
||||
},
|
||||
typeList: [],
|
||||
inputVisible: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
async getData() {
|
||||
this.typeList = []
|
||||
const res = await getComList();
|
||||
const arr = res.data;
|
||||
arr.forEach(ele => {
|
||||
ele.show = false;
|
||||
})
|
||||
this.typeList = arr;
|
||||
this.$emit("refresh");
|
||||
},
|
||||
//输入
|
||||
editInput(obj, i) {
|
||||
this.$set(this.typeList[i],'show',true)
|
||||
this.$forceUpdate()
|
||||
},
|
||||
//新增
|
||||
addShow(){
|
||||
this.inputVisible = true;
|
||||
this.$nextTick(function() {
|
||||
this.$refs.addInput.focus();
|
||||
});
|
||||
},
|
||||
//编辑
|
||||
async editType(item){
|
||||
let res = await updateComType({
|
||||
id: item.id,
|
||||
name: item.name
|
||||
})
|
||||
if(res.code === 200){
|
||||
item.show = false
|
||||
this.$forceUpdate()
|
||||
this.$message.success(res.msg)
|
||||
}else{
|
||||
this.$message.error(res.msg)
|
||||
}
|
||||
},
|
||||
handleInputChange(e) {
|
||||
this.typeForm.name = e.target.value;
|
||||
},
|
||||
//新增和编辑确认
|
||||
async handleInputConfirm() {
|
||||
if(this.typeForm.name === ''){
|
||||
this.inputVisible = false;
|
||||
return
|
||||
}
|
||||
let res = await addComType({
|
||||
name:this.typeForm.name,
|
||||
})
|
||||
if(res.code === 200){
|
||||
this.$message.success(res.msg);
|
||||
this.inputVisible = false;
|
||||
this.typeForm.name = '';
|
||||
this.getData()
|
||||
}else{
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
},
|
||||
//删除
|
||||
delType(id){
|
||||
this.$confirm({
|
||||
title: "是否删除",
|
||||
icon:'delete',
|
||||
onOk:async()=>{
|
||||
let res = await delComType({industryCommitteeTypeId: id})
|
||||
if(res.code=== 200){
|
||||
this.$message.success(res.msg);
|
||||
this.getData()
|
||||
}else{
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
},
|
||||
})
|
||||
},
|
||||
addClose() {
|
||||
this.$emit("addClose");
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
|
||||
</style>
|
@ -0,0 +1,36 @@
|
||||
export const columns = [
|
||||
{
|
||||
title: "成员姓名",
|
||||
width: "15%",
|
||||
dataIndex: "name",
|
||||
},
|
||||
{
|
||||
title: "职位",
|
||||
width: "15%",
|
||||
dataIndex: "industryCommitteeTypeName",
|
||||
},
|
||||
{
|
||||
title: "关联房屋",
|
||||
width: "25%",
|
||||
dataIndex: "buildingName",
|
||||
scopedSlots: { customRender: "house" },
|
||||
},
|
||||
{
|
||||
title: "创建时间",
|
||||
width: "20%",
|
||||
dataIndex: "createDate",
|
||||
},
|
||||
{
|
||||
title: "操作",
|
||||
dataIndex: "action",
|
||||
key: "action",
|
||||
width: "180",
|
||||
fixed: "right",
|
||||
scopedSlots: { customRender: "action" },
|
||||
},
|
||||
]
|
||||
|
||||
export const rules = {
|
||||
appUserId: [{ required: true, message: "请选择住户", trigger: "change" }],
|
||||
industryCommitteeTypeId: [{ required: true, message: "请选择职位", trigger: "change" }],
|
||||
}
|
@ -0,0 +1,130 @@
|
||||
export const columns = [
|
||||
{
|
||||
title: "商品状态",
|
||||
width: "6%",
|
||||
dataIndex: "status",
|
||||
customRender: function (status) {
|
||||
switch (status) {
|
||||
case false:
|
||||
return '已下架'
|
||||
case true:
|
||||
return '上架中'
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: "商品名称",
|
||||
width: "18%",
|
||||
dataIndex: "skuName",
|
||||
},
|
||||
{
|
||||
title: "主图url",
|
||||
width: "4%",
|
||||
dataIndex: "mainPhoto",
|
||||
scopedSlots: { customRender: "mainPhoto"}
|
||||
},
|
||||
// {
|
||||
// title: "sku编码",
|
||||
// width: "10%",
|
||||
// dataIndex: "skuId",
|
||||
// },
|
||||
// {
|
||||
// title: "商品类型",
|
||||
// width: "4%",
|
||||
// dataIndex: "mallType",
|
||||
// customRender: function (mallType) {
|
||||
// switch (mallType) {
|
||||
// case 1:
|
||||
// return 'Jcook'
|
||||
// default:
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
// {
|
||||
// title: "店铺名",
|
||||
// width: "7%",
|
||||
// dataIndex: "shopName",
|
||||
// },
|
||||
// {
|
||||
// title: "品牌名",
|
||||
// width: "7%",
|
||||
// dataIndex: "brandName",
|
||||
// },
|
||||
// {
|
||||
// title: "供应商名",
|
||||
// width: "7%",
|
||||
// dataIndex: "vendorName",
|
||||
// },
|
||||
{
|
||||
title: "分类名称",
|
||||
width: "14%",
|
||||
dataIndex: "categoryFirstName",
|
||||
scopedSlots: { customRender: "type" },
|
||||
},
|
||||
{
|
||||
title: "售卖价(元)",
|
||||
width: "7%",
|
||||
dataIndex: "sellPrice",
|
||||
},
|
||||
{
|
||||
title: "商品积分",
|
||||
width: "7%",
|
||||
dataIndex: "points",
|
||||
},
|
||||
{
|
||||
title: "浏览量",
|
||||
width: "5%",
|
||||
dataIndex: "viewsNum",
|
||||
},
|
||||
{
|
||||
title: "积分兑换开启时间",
|
||||
width: "14%",
|
||||
dataIndex: "pointsCreateDate",
|
||||
},
|
||||
{
|
||||
title: "积分修改时间",
|
||||
width: "14%",
|
||||
dataIndex: "pointsUpdateDate",
|
||||
},
|
||||
{
|
||||
title: "操作",
|
||||
dataIndex: "action",
|
||||
key: "action",
|
||||
width: "250",
|
||||
fixed: "right",
|
||||
scopedSlots: { customRender: "action" },
|
||||
},
|
||||
]
|
||||
export const formItem = [
|
||||
{
|
||||
type: 'input',
|
||||
label:'商品名称',
|
||||
prop:'name',
|
||||
placeholder:'请输入'
|
||||
},
|
||||
{
|
||||
type: 'select',
|
||||
label:'商品状态',
|
||||
prop:'status',
|
||||
placeholder:'请选择',
|
||||
option:[{ id: 0,name:'已下架'},{ id: 1,name:'上架中'}],
|
||||
},
|
||||
{
|
||||
type: 'time',
|
||||
label:'更新时间',
|
||||
prop:'updateDate',
|
||||
start: 'updateDateStart',
|
||||
end:'updateDateEnd',
|
||||
},
|
||||
]
|
||||
export const pagination = {
|
||||
current: 1,
|
||||
total: 0,
|
||||
pageSize: 5,
|
||||
showTotal: (total) => `共 ${total} 条`,
|
||||
showSizeChanger: true,
|
||||
showQuickJumper: true,
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
export const form = {
|
||||
id:undefined,
|
||||
status:undefined,
|
||||
skuName:undefined,
|
||||
shopId:undefined,
|
||||
vendorId:undefined,
|
||||
brandId:undefined,
|
||||
categoryFirstId:undefined,
|
||||
categorySecondId:undefined,
|
||||
categoryThirdId:undefined,
|
||||
sellPrice:undefined,
|
||||
discountPrice:undefined,
|
||||
}
|
||||
export const rules = {
|
||||
skuName:[{required:true,message:'请输入',trigger:'blur'}],
|
||||
shopId:[{required:true,message:'请选择',trigger:'change'}],
|
||||
status:[{required:true,message:'请选择',trigger:'change'}],
|
||||
vendorId:[{required:true,message:'请选择',trigger:'change'}],
|
||||
brandId: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
sellPrice:[{required:true,message:'请输入',trigger:'blur'}],
|
||||
discountPrice:[{required:true,message:'请输入',trigger:'blur'}],
|
||||
}
|
||||
export const options = {
|
||||
cate:[],
|
||||
shop: [],
|
||||
vendor: [],
|
||||
brand: [],
|
||||
}
|
@ -0,0 +1,219 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="cardTitle">
|
||||
<span>兑换商品设置</span>
|
||||
</div>
|
||||
<searchForm :formItem="formItem" @getSearch="search($event)"></searchForm>
|
||||
<a-table
|
||||
:columns="columns"
|
||||
:data-source="tableData"
|
||||
:pagination="pagination"
|
||||
:scroll="{ x: 2000 }"
|
||||
@change="handleTableChange"
|
||||
:row-selection="{
|
||||
selectedRowKeys: selectedRowKeys,
|
||||
onChange: selectionChoosed,
|
||||
}"
|
||||
:row-key="
|
||||
(record, index) => {
|
||||
return record.id;
|
||||
}
|
||||
"
|
||||
>
|
||||
<template slot="type" slot-scope="text, row">
|
||||
{{row.categoryFirstName}} / {{row.categorySecondName}} / {{row.categoryThirdName}}
|
||||
</template>
|
||||
<span slot="action" slot-scope="text, row">
|
||||
<a-space>
|
||||
<a class="ant-dropdown-link" @click="setPoint(row)">设置积分</a>
|
||||
<a class="ant-dropdown-link" style="color: red" @click="delPoint(row)">移除</a>
|
||||
</a-space>
|
||||
</span>
|
||||
<span slot="mainPhoto" slot-scope="text, row">
|
||||
<img :src="row.mainPhoto" class="table-img" alt="" />
|
||||
</span>
|
||||
</a-table>
|
||||
<!-- <div class="action">
|
||||
<a-dropdown :disabled="!hasSelected">
|
||||
<a-menu slot="overlay" @click="handleMenuClick">
|
||||
<a-menu-item key="on"> 批量上架 </a-menu-item>
|
||||
<a-menu-item key="off"> 批量下架 </a-menu-item>
|
||||
</a-menu>
|
||||
<a-button> 批量操作 <a-icon type="down" /> </a-button>
|
||||
</a-dropdown>
|
||||
<span style="margin-left: 8px">
|
||||
<template v-if="hasSelected">
|
||||
{{ `已选择 ${selectedRowKeys.length} 条` }}
|
||||
</template>
|
||||
</span>
|
||||
</div> -->
|
||||
<a-drawer title="设置商品积分" :width="540" :visible="pointShow" :body-style="{ paddingBottom: '60px' }" @close="pointClose">
|
||||
<div class="drawer-content">
|
||||
<a-descriptions layout="vertical" :column="1">
|
||||
<a-descriptions-item label="商品名称">
|
||||
<div class="item-name">{{pointInfo.skuName}}</div>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="商品图片">
|
||||
<img :src="pointInfo.mainPhoto" class="info-img" alt="" />
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="商品价格">
|
||||
¥ {{pointInfo.sellPrice}}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="商品积分">
|
||||
<a-icon type="dollar" theme="twoTone" two-tone-color="rgb(231,198,86)" />
|
||||
<a-input-number :min="0" v-model="pointForm.points" style="margin-left:8px">
|
||||
|
||||
</a-input-number>
|
||||
</a-descriptions-item>
|
||||
</a-descriptions>
|
||||
</div>
|
||||
<div class="drawer-footer">
|
||||
<a-button @click="pointConfirm" type="primary" :style="{ marginRight: '8px' }">
|
||||
确认
|
||||
</a-button>
|
||||
<a-button @click="pointClose"> 关闭 </a-button>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { columns, pagination, formItem } from "./depend/config.js";
|
||||
import {goodsInfo} from "@/api/shop/goods/index.js";
|
||||
import { getPointList ,settingPoints, isEnableRedeem} from "@/api/shop/goods/index.js";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
searchForm: {
|
||||
name: '',
|
||||
status: undefined,
|
||||
updateDateStart: '',
|
||||
updateDateEnd: '',
|
||||
},
|
||||
columns,
|
||||
goodsId:null,
|
||||
pagination,
|
||||
formItem,
|
||||
tableData: [],
|
||||
selectedRowKeys: [],
|
||||
//设置积分
|
||||
pointShow: false,
|
||||
activeId: undefined,
|
||||
pointForm: {
|
||||
points: 0
|
||||
},
|
||||
pointInfo: {},
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
getData() {
|
||||
getPointList({
|
||||
...this.searchForm,
|
||||
pageNum: this.pagination.current,
|
||||
size: this.pagination.pageSize,
|
||||
}).then((res) => {
|
||||
this.tableData = res.data.rows;
|
||||
this.pagination.total = res.data.total;
|
||||
});
|
||||
},
|
||||
search(data){
|
||||
this.searchForm = data;
|
||||
this.getData()
|
||||
},
|
||||
selectionChoosed(data) {
|
||||
this.selectedRowKeys = data;
|
||||
},
|
||||
handleTableChange(pagination) {
|
||||
const pager = { ...this.pagination };
|
||||
pager.current = pagination.current;
|
||||
pager.pageSize = pagination.pageSize;
|
||||
this.pagination = pager;
|
||||
this.getData();
|
||||
},
|
||||
handleMenuClick(data) {
|
||||
|
||||
},
|
||||
addClose() {
|
||||
this.drawer.show = false;
|
||||
this.goodsId = null;
|
||||
},
|
||||
success() {
|
||||
this.getData();
|
||||
},
|
||||
//设置积分
|
||||
setPoint(val) {
|
||||
goodsInfo({appGoodsPushId: val.id}).then(res => {
|
||||
let data = res.data;
|
||||
this.pointInfo = data;
|
||||
this.pointForm.points = data.points
|
||||
this.activeId = data.id;
|
||||
this.pointShow = true
|
||||
})
|
||||
},
|
||||
pointConfirm() {
|
||||
let obj = {
|
||||
appGoodsPushId: this.activeId,
|
||||
points: this.pointForm.points
|
||||
}
|
||||
settingPoints(obj).then(res => {
|
||||
if(res.code === 200){
|
||||
this.$message.success(res.msg);
|
||||
this.pointClose()
|
||||
this.getData()
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
})
|
||||
},
|
||||
//移除
|
||||
delPoint(val) {
|
||||
this.$confirm({
|
||||
title: "是否移除该商品?",
|
||||
icon: "delete",
|
||||
onOk: async () => {
|
||||
let res = await isEnableRedeem({ appGoodsPushId: val.id });
|
||||
if (res.code === 200) {
|
||||
this.$message.success(res.msg);
|
||||
this.getData();
|
||||
} else {
|
||||
this.$message.error(res.msg);
|
||||
}
|
||||
},
|
||||
});
|
||||
},
|
||||
pointClose() {
|
||||
this.activeId = undefined,
|
||||
this.pointForm.points = 0;
|
||||
this.pointInfo = {}
|
||||
this.pointShow = false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
hasSelected() {
|
||||
return this.selectedRowKeys.length > 0;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.table-img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
.item-name {
|
||||
padding: 16px 0px 16px 0px;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
text-transform: uppercase;
|
||||
color: #205FBD;
|
||||
}
|
||||
.info-img {
|
||||
height: 172px;
|
||||
width: 258px
|
||||
}
|
||||
</style>
|
Loading…
Reference in new issue