Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop-ui into fengtianyangyang

master
paulGao 2022-02-09 10:32:50 +08:00
commit 9765310136
6 changed files with 373 additions and 306 deletions

View File

@ -157,6 +157,6 @@ export default {
position: relative; position: relative;
height: 0px; height: 0px;
top: -38px; top: -38px;
left: 339px; left: 352px;
} }
</style> </style>

View File

@ -4,8 +4,14 @@
<div class="mb_10"> <div class="mb_10">
<Button @click="addParent" icon="md-add">添加一级分类</Button> <Button @click="addParent" icon="md-add">添加一级分类</Button>
</div> </div>
<Table class="table" :load-data="handleLoadData" row-key="id" :loading="loading" :data="tableData" <Table
:columns="columns"> class="table"
:load-data="handleLoadData"
row-key="id"
:loading="loading"
:data="tableData"
:columns="columns"
>
<template slot="action" slot-scope="scope"> <template slot="action" slot-scope="scope">
<Dropdown v-show="scope.row.level == 2" trigger="click"> <Dropdown v-show="scope.row.level == 2" trigger="click">
<Button size="small"> <Button size="small">
@ -13,9 +19,15 @@
<Icon type="ios-arrow-down"></Icon> <Icon type="ios-arrow-down"></Icon>
</Button> </Button>
<DropdownMenu slot="list"> <DropdownMenu slot="list">
<DropdownItem @click.native="brandOperation(scope.row)">编辑绑定品牌</DropdownItem> <DropdownItem @click.native="brandOperation(scope.row)"
<DropdownItem @click.native="specOperation(scope.row)">编辑绑定规格</DropdownItem> >编辑绑定品牌</DropdownItem
<DropdownItem @click.native="parameterOperation(scope.row)">编辑绑定参数</DropdownItem> >
<DropdownItem @click.native="specOperation(scope.row)"
>编辑绑定规格</DropdownItem
>
<DropdownItem @click.native="parameterOperation(scope.row)"
>编辑绑定参数</DropdownItem
>
</DropdownMenu> </DropdownMenu>
</Dropdown> </Dropdown>
@ -27,14 +39,28 @@
</Button> </Button>
<DropdownMenu slot="list"> <DropdownMenu slot="list">
<DropdownItem @click.native="edit(scope.row)">编辑</DropdownItem> <DropdownItem @click.native="edit(scope.row)">编辑</DropdownItem>
<DropdownItem v-if="scope.row.deleteFlag == 1" @click.native="enable(scope.row)"></DropdownItem> <DropdownItem
<DropdownItem v-if="scope.row.deleteFlag == 0" @click.native="disable(scope.row)"></DropdownItem> v-if="scope.row.deleteFlag == 1"
@click.native="enable(scope.row)"
>启用</DropdownItem
>
<DropdownItem
v-if="scope.row.deleteFlag == 0"
@click.native="disable(scope.row)"
>禁用</DropdownItem
>
<DropdownItem @click.native="remove(scope.row)">删除</DropdownItem> <DropdownItem @click.native="remove(scope.row)">删除</DropdownItem>
</DropdownMenu> </DropdownMenu>
</Dropdown> </Dropdown>
&nbsp; &nbsp;
<Button v-show="scope.row.level != 2" type="primary" @click="addChildren(scope.row)" size="small" <Button
icon="md-add" style="margin-right: 5px">添加子分类 v-show="scope.row.level != 2"
type="primary"
@click="addChildren(scope.row)"
size="small"
icon="md-add"
style="margin-right: 5px"
>添加子分类
</Button> </Button>
</template> </template>
@ -42,18 +68,31 @@
{{ scope.row.commissionRate }}% {{ scope.row.commissionRate }}%
</template> </template>
<template slot="deleteFlag" slot-scope="{row}"> <template slot="deleteFlag" slot-scope="{ row }">
<Tag :class="{'ml_10': row.deleteFlag}" :color="row.deleteFlag == false ? 'success' : 'error'"> <Tag
{{row.deleteFlag == false ? '正常启用' : '禁用'}}</Tag> :class="{ ml_10: row.deleteFlag }"
:color="row.deleteFlag == false ? 'success' : 'error'"
>
{{ row.deleteFlag == false ? "正常启用" : "禁用" }}</Tag
>
</template> </template>
</Table> </Table>
<Modal :title="modalTitle" v-model="modalVisible" :mask-closable="false" :width="500"> <Modal
:title="modalTitle"
v-model="modalVisible"
:mask-closable="false"
:width="500"
>
<Form ref="form" :model="formAdd" :label-width="100" :rules="formValidate"> <Form ref="form" :model="formAdd" :label-width="100" :rules="formValidate">
<div v-if="showParent"> <div v-if="showParent">
<FormItem label="上级分类" prop="parentId"> <FormItem label="上级分类" prop="parentId">
{{ parentTitle }} {{ parentTitle }}
<Input v-model="formAdd.parentId" clearable style="width: 100%; display: none" /> <Input
v-model="formAdd.parentId"
clearable
style="width: 100%; display: none"
/>
</FormItem> </FormItem>
</div> </div>
<FormItem label="层级" prop="level" style="display: none"> <FormItem label="层级" prop="level" style="display: none">
@ -63,7 +102,10 @@
<Input v-model="formAdd.name" clearable style="width: 100%" /> <Input v-model="formAdd.name" clearable style="width: 100%" />
</FormItem> </FormItem>
<FormItem label="分类图标" prop="image" v-if="formAdd.level !== 1"> <FormItem label="分类图标" prop="image" v-if="formAdd.level !== 1">
<upload-pic-input v-model="formAdd.image" style="width: 100%"></upload-pic-input> <upload-pic-input
v-model="formAdd.image"
style="width: 100%"
></upload-pic-input>
</FormItem> </FormItem>
<FormItem label="排序值" prop="sortOrder" style="width: 345px"> <FormItem label="排序值" prop="sortOrder" style="width: 345px">
<InputNumber v-model="formAdd.sortOrder"></InputNumber> <InputNumber v-model="formAdd.sortOrder"></InputNumber>
@ -72,7 +114,12 @@
<InputNumber v-model="formAdd.commissionRate"></InputNumber> <InputNumber v-model="formAdd.commissionRate"></InputNumber>
</FormItem> </FormItem>
<FormItem label="是否启用" prop="deleteFlag"> <FormItem label="是否启用" prop="deleteFlag">
<i-switch size="large" v-model="formAdd.deleteFlag" :true-value="0" :false-value="1"> <i-switch
size="large"
v-model="formAdd.deleteFlag"
:true-value="0"
:false-value="1"
>
<span slot="open">启用</span> <span slot="open">启用</span>
<span slot="close">禁用</span> <span slot="close">禁用</span>
</i-switch> </i-switch>
@ -84,33 +131,52 @@
</div> </div>
</Modal> </Modal>
<Modal :title="modalBrandTitle" v-model="modalBrandVisible" :mask-closable="false" :width="500"> <Modal
:title="modalBrandTitle"
v-model="modalBrandVisible"
:mask-closable="false"
:width="500"
>
<Form ref="brandForm" :model="brandForm" :label-width="100"> <Form ref="brandForm" :model="brandForm" :label-width="100">
<Select v-model="brandForm.categoryBrands" filterable multiple> <Select v-model="brandForm.categoryBrands" filterable multiple>
<Option v-for="item in brandWay" :value="item.id" :key="item.id">{{ item.name }}</Option> <Option v-for="item in brandWay" :value="item.id" :key="item.id">{{
item.name
}}</Option>
</Select> </Select>
</Form> </Form>
<div slot="footer"> <div slot="footer">
<Button type="text" @click="modalBrandVisible = false">取消</Button> <Button type="text" @click="modalBrandVisible = false">取消</Button>
<Button type="primary" :loading="submitLoading" @click="saveCategoryBrand"></Button> <Button type="primary" :loading="submitLoading" @click="saveCategoryBrand"
>提交</Button
>
</div> </div>
</Modal> </Modal>
<Modal :title="modalSpecTitle" v-model="modalSpecVisible" :mask-closable="false" :width="500"> <Modal
:title="modalSpecTitle"
v-model="modalSpecVisible"
:mask-closable="false"
:width="500"
>
<Form ref="specForm" :model="specForm" :label-width="100"> <Form ref="specForm" :model="specForm" :label-width="100">
<Select v-model="specForm.categorySpecs" multiple> <Select v-model="specForm.categorySpecs" multiple>
<Option v-for="item in specifications" :value="item.id" :key="item.id" :label="item.specName"> <Option
v-for="item in specifications"
:value="item.id"
:key="item.id"
:label="item.specName"
>
</Option> </Option>
</Select> </Select>
</Form> </Form>
<div slot="footer"> <div slot="footer">
<Button type="text" @click="modalSpecVisible = false">取消</Button> <Button type="text" @click="modalSpecVisible = false">取消</Button>
<Button type="primary" :loading="submitLoading" @click="saveCategorySpec"></Button> <Button type="primary" :loading="submitLoading" @click="saveCategorySpec"
>提交</Button
>
</div> </div>
</Modal> </Modal>
</Card> </Card>
</div> </div>
</template> </template>
<script> <script>
@ -170,18 +236,9 @@ export default {
specForm: {}, // specForm: {}, //
// //
formValidate: { formValidate: {
commissionRate: [ commissionRate: [regular.REQUIRED, regular.INTEGER],
regular.REQUIRED, name: [regular.REQUIRED, regular.VARCHAR20],
regular.INTEGER sortOrder: [regular.REQUIRED, regular.INTEGER],
],
name:[
regular.REQUIRED,
regular.VARCHAR20,
],
sortOrder:[
regular.REQUIRED,
regular.INTEGER
]
}, },
columns: [ columns: [
{ {
@ -235,7 +292,6 @@ export default {
// //
brandOperation(v) { brandOperation(v) {
getCategoryBrandListData(v.id).then((res) => { getCategoryBrandListData(v.id).then((res) => {
console.warn(res);
this.categoryId = v.id; this.categoryId = v.id;
this.modalBrandTitle = "品牌关联"; this.modalBrandTitle = "品牌关联";
this.brandForm.categoryBrands = res.result.map((item) => item.id); this.brandForm.categoryBrands = res.result.map((item) => item.id);
@ -277,7 +333,6 @@ export default {
}, },
// //
addChildren(v) { addChildren(v) {
console.log(v);
this.modalType = 0; this.modalType = 0;
this.modalTitle = "添加子分类"; this.modalTitle = "添加子分类";
this.parentTitle = v.name; this.parentTitle = v.name;
@ -367,7 +422,6 @@ export default {
// //
handleLoadData(item, callback) { handleLoadData(item, callback) {
console.warn(item);
if (item.level == 0) { if (item.level == 0) {
let categoryList = JSON.parse(JSON.stringify(this.categoryList)); let categoryList = JSON.parse(JSON.stringify(this.categoryList));
categoryList.forEach((val) => { categoryList.forEach((val) => {
@ -384,7 +438,6 @@ export default {
}); });
} else { } else {
this.deepCategoryChildren(item.id, this.categoryList); this.deepCategoryChildren(item.id, this.categoryList);
console.log(this.checkedCategoryChildren);
setTimeout(() => { setTimeout(() => {
callback(this.checkedCategoryChildren); callback(this.checkedCategoryChildren);
}, 1000); }, 1000);
@ -420,8 +473,6 @@ export default {
} }
return item; return item;
}); });
console.log(this.tableData);
} }
}); });
}, },

View File

@ -304,6 +304,7 @@ export default {
loading: true, loading: true,
onOk: () => { onOk: () => {
API_Member.delMemberReview(v.id).then((res) => { API_Member.delMemberReview(v.id).then((res) => {
this.$Modal.remove();
this.$Message.success("修改成功"); this.$Message.success("修改成功");
this.init(); this.init();
}); });

View File

@ -42,12 +42,7 @@
/> />
</template> </template>
<template slot-scope="{ row, index }" slot="action"> <template slot-scope="{ row, index }" slot="action">
<Button <Button type="error" size="small" @click="delGoods(index, row)">删除 </Button>
type="error"
size="small"
@click="delGoods(index,row)"
>删除
</Button>
</template> </template>
</Table> </Table>
<Row type="flex" justify="end" class="mt_10"> <Row type="flex" justify="end" class="mt_10">
@ -68,14 +63,14 @@
</div> </div>
</template> </template>
<script> <script>
import { import {
seckillGoodsList, seckillGoodsList,
seckillDetail, seckillDetail,
auditApplySeckill, auditApplySeckill,
delSeckillGoods delSeckillGoods,
} from "@/api/promotion.js"; } from "@/api/promotion.js";
export default { export default {
data() { data() {
return { return {
promotionStatus: "", // promotionStatus: "", //
@ -86,13 +81,14 @@
searchForm: { searchForm: {
// //
pageNumber: 0, // pageNumber: 0, //
pageSize: 100, // pageSize: 10, //
}, },
total: 0, // total: 0, //
selectList: [], // selectList: [], //
selectCount: 0, // selectCount: 0, //
data: [], // data: [], //
columns: [ // columns: [
//
{ {
title: "活动名称", title: "活动名称",
key: "promotionName", key: "promotionName",
@ -156,12 +152,13 @@
}, },
}, },
], ],
goodsColumns: [ // goodsColumns: [
//
{ {
title: "商品名称", title: "商品名称",
key: "goodsName", key: "goodsName",
minWidth: 120, minWidth: 120,
tooltip: true tooltip: true,
}, },
{ {
title: "商品价格", title: "商品价格",
@ -172,7 +169,7 @@
title: "库存", title: "库存",
slot: "quantity", slot: "quantity",
minWidth: 30, minWidth: 30,
width: 90 width: 90,
}, },
{ {
title: "活动价格", title: "活动价格",
@ -183,8 +180,7 @@
title: "商家名称", title: "商家名称",
key: "storeName", key: "storeName",
minWidth: 100, minWidth: 100,
tooltip: true tooltip: true,
}, },
{ {
title: "活动场次", title: "活动场次",
@ -204,14 +200,16 @@
}, },
], ],
goodsList: [], // goodsList: [], //
params: { // params: {
//
seckillId: this.$route.query.id, seckillId: this.$route.query.id,
applyStatus: "PASS", applyStatus: "PASS",
failReason: "", failReason: "",
ids: "", ids: "",
}, },
rules: { // rules: {
failReason: [{required: true, message: "请输入拒绝原因"}], //
failReason: [{ required: true, message: "请输入拒绝原因" }],
}, },
}; };
}, },
@ -269,14 +267,14 @@
onOk: () => { onOk: () => {
const params = { const params = {
seckillId: row.seckillId, seckillId: row.seckillId,
id: row.id id: row.id,
} };
delSeckillGoods(params).then(res => { delSeckillGoods(params).then((res) => {
if (res.success) { if (res.success) {
this.goodsList.splice(index, 1); this.goodsList.splice(index, 1);
this.$Message.success("删除成功!"); this.$Message.success("删除成功!");
} }
}) });
}, },
}); });
}, },
@ -291,21 +289,21 @@
hourArr[i] += ":00"; hourArr[i] += ":00";
} }
return hourArr; return hourArr;
} },
}, },
mounted() { mounted() {
this.init(); this.init();
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.operation { .operation {
margin: 10px 0; margin: 10px 0;
} }
.reason { .reason {
cursor: pointer; cursor: pointer;
color: #2d8cf0; color: #2d8cf0;
font-size: 12px; font-size: 12px;
} }
</style> </style>

View File

@ -1,54 +1,58 @@
<template> <template>
<div class="layout"> <div class="layout">
<Form ref="formValidate" :label-width="150" label-position="right" :model="formValidate" :rules="ruleValidate"> <Form
ref="formValidate"
:label-width="150"
label-position="right"
:model="formValidate"
:rules="ruleValidate"
>
<FormItem label="appId" prop="appId"> <FormItem label="appId" prop="appId">
<Input class="w200" v-model="formValidate.appId"/> <Input class="w200" v-model="formValidate.appId" />
<p style="color: red">*APP应用 AppID 非必填</p> <p style="color: red">*APP应用 AppID 非必填</p>
</FormItem> </FormItem>
<FormItem label="mpAppId" prop="mpAppId"> <FormItem label="mpAppId" prop="mpAppId">
<Input class="w200" v-model="formValidate.mpAppId"/> <Input class="w200" v-model="formValidate.mpAppId" />
<p style="color: red">*小程序 AppID 非必填</p> <p style="color: red">*小程序 AppID 非必填</p>
</FormItem> </FormItem>
<FormItem label="serviceAppId" prop="serviceAppId"> <FormItem label="serviceAppId" prop="serviceAppId">
<Input class="w200" v-model="formValidate.serviceAppId"/> <Input class="w200" v-model="formValidate.serviceAppId" />
<p style="color: red">*服务号 AppID 非必填</p> <p style="color: red">*服务号 AppID 非必填</p>
</FormItem> </FormItem>
<FormItem label="mchId" prop="mchId"> <FormItem label="mchId" prop="mchId">
<Input class="w200" v-model="formValidate.mchId"/> <Input class="w200" v-model="formValidate.mchId" />
</FormItem> </FormItem>
<FormItem label="apiKey3" prop="apiKey3"> <FormItem label="apiKey3" prop="apiKey3">
<Input v-model="formValidate.apiKey3"/> <Input v-model="formValidate.apiKey3" />
</FormItem> </FormItem>
<FormItem label="apiclient_cert_p12" class="label-item" prop="apiclient_cert_p12"> <FormItem label="apiclient_cert_p12" class="label-item" prop="apiclient_cert_p12">
<Input v-model="formValidate.apiclient_cert_p12"/> <Input v-model="formValidate.apiclient_cert_p12" />
</FormItem> </FormItem>
<FormItem label="apiclient_cert_pem" prop="apiclient_cert_pem"> <FormItem label="apiclient_cert_pem" prop="apiclient_cert_pem">
<Input v-model="formValidate.apiclient_cert_pem"/> <Input v-model="formValidate.apiclient_cert_pem" />
</FormItem> </FormItem>
<FormItem label="apiclient_key" prop="apiclient_key"> <FormItem label="apiclient_key" prop="apiclient_key">
<Input v-model="formValidate.apiclient_key"/> <Input v-model="formValidate.apiclient_key" />
</FormItem> </FormItem>
<FormItem label="serialNumber" prop="serialNumber"> <FormItem label="serialNumber" prop="serialNumber">
<Input v-model="formValidate.serialNumber"/> <Input v-model="formValidate.serialNumber" />
</FormItem> </FormItem>
<div class="label-btns"> <div class="label-btns">
<Button type="primary" @click="submit('formValidate')"></Button> <Button type="primary" @click="submit('formValidate')"></Button>
</div> </div>
</Form> </Form>
</div> </div>
</template> </template>
<script> <script>
import {setSetting} from "@/api/index"; import { setSetting } from "@/api/index";
import {handleSubmit} from "../setting/validate"; import { handleSubmit } from "../setting/validate";
export default { export default {
data() { data() {
return { return {
ruleValidate: {}, // ruleValidate: {}, //
formValidate: {},// formValidate: {}, //
}; };
}, },
props: ["res", "type"], props: ["res", "type"],
@ -76,10 +80,9 @@ export default {
init() { init() {
this.res = JSON.parse(this.res); this.res = JSON.parse(this.res);
this.$set(this, "formValidate", {...this.res}); this.$set(this, "formValidate", { ...this.res });
Object.keys(this.formValidate).forEach((item) => { Object.keys(this.formValidate).forEach((item) => {
if (item.indexOf("pId") < 0) { if (item.indexOf("pId") < 0) {
this.ruleValidate[item] = [ this.ruleValidate[item] = [
{ {
required: true, required: true,
@ -87,7 +90,6 @@ export default {
trigger: "blur", trigger: "blur",
}, },
]; ];
} }
}); });
}, },

View File

@ -1,10 +1,17 @@
<template> <template>
<div class="layout"> <div class="layout">
<Form ref="formValidate" :label-width="150" label-position="right" :model="formValidate" :rules="ruleValidate"> <Form ref="formValidate" :label-width="150" label-position="right" :model="formValidate" :rules="ruleValidate">
<FormItem label="积分比率" prop="money"> <FormItem label="消费1元赠送积分" prop="money">
<Input type="number" v-model="formValidate.money"> <Input type="number" v-model="formValidate.money">
<span slot="prepend">1积分=</span> <span slot="append">积分</span>
<span slot="append">人民币</span> <!-- <span slot="append">人民币</span>-->
</Input>
</FormItem>
<FormItem label="积分抵扣付款" prop="money">
<Input type="number" v-model="formValidate.money">
<span slot="prepend">积分</span>
<span slot="append"> = 1 人民币</span>
</Input> </Input>
</FormItem> </FormItem>
@ -35,7 +42,8 @@
</FormItem> </FormItem>
<FormItem class="label-item" v-for="(point,index) in formValidate.pointSettingItems" :key="index" :label="'签到设置'+(index+1)"> <FormItem class="label-item" v-for="(point,index) in formValidate.pointSettingItems" :key="index"
:label="'签到设置'+(index+1)">
<div class="label-item"> <div class="label-item">
<InputNumber :min="1" v-model="point.day"></InputNumber> <InputNumber :min="1" v-model="point.day"></InputNumber>
@ -43,7 +51,8 @@
<InputNumber :min="0" v-model="point.point"></InputNumber> <InputNumber :min="0" v-model="point.point"></InputNumber>
<Button ghost type="error" @click="delSign(point,index)"></Button> <Button ghost type="error" @click="delSign(point,index)"></Button>
<span class="ml_10">签到<span class="theme_color">{{point.day}}</span>赠送<span class="theme_color">{{point.point}}</span>积分</span> <span class="ml_10">签到<span class="theme_color">{{ point.day }}</span>赠送<span
class="theme_color">{{ point.point }}</span>积分</span>
</div> </div>
</FormItem> </FormItem>
@ -58,8 +67,9 @@
</template> </template>
<script> <script>
import { setSetting } from "@/api/index"; import {setSetting} from "@/api/index";
import { handleSubmit } from "./validate"; import {handleSubmit} from "./validate";
export default { export default {
data() { data() {
return { return {
@ -101,7 +111,7 @@ export default {
} }
this.formValidate.pointSettingItems.push({ this.formValidate.pointSettingItems.push({
point: "0", point: "0",
day: this.formValidate.pointSettingItems.length , day: this.formValidate.pointSettingItems.length,
}); });
}, },
// //
@ -114,7 +124,7 @@ export default {
this.res[item] += ""; this.res[item] += "";
}); });
this.$set(this, "formValidate", { ...this.res }); this.$set(this, "formValidate", {...this.res});
Object.keys(this.formValidate).forEach((item) => { Object.keys(this.formValidate).forEach((item) => {
this.ruleValidate[item] = [ this.ruleValidate[item] = [
@ -150,22 +160,27 @@ export default {
width: 100px; width: 100px;
margin-right: 5px; margin-right: 5px;
} }
> .ivu-input-number:nth-last-of-type(1) { > .ivu-input-number:nth-last-of-type(1) {
width: 150px; width: 150px;
margin-right: 5px; margin-right: 5px;
} }
> .ivu-input { > .ivu-input {
width: 100px; width: 100px;
margin: 0 10px; margin: 0 10px;
} }
} }
/deep/ .ivu-input { /deep/ .ivu-input {
width: 70px !important; width: 70px !important;
} }
.ivu-input-wrapper { .ivu-input-wrapper {
width: 70px; width: 70px;
margin-right: 10px; margin-right: 10px;
} }
.label-btns { .label-btns {
/deep/ .ivu-btn { /deep/ .ivu-btn {
margin-right: 10px; margin-right: 10px;