update: 更新供应商 客户管理
This commit is contained in:
parent
f4d6f63137
commit
84e20696b1
|
@ -7,9 +7,10 @@
|
|||
ref="form"
|
||||
:labelWidth="100"
|
||||
:labelStyle="{ padding: '0rpx 10rpx' }"
|
||||
:errorType="'border-bottom'"
|
||||
>
|
||||
<u-form-item
|
||||
:prop="`formData[${item.key}]`"
|
||||
:prop="`formData.${item.key}`"
|
||||
:label="item.name"
|
||||
:required="item.required"
|
||||
v-for="(item, index) in formAttrList"
|
||||
|
@ -61,7 +62,7 @@
|
|||
<script setup lang="ts">
|
||||
import { CustomerApi, StockCardApi } from "@/services";
|
||||
import { formatDate } from "@/utils";
|
||||
import { DeviceType, ImagesType, OrderType } from "@/utils/enum";
|
||||
import { DeviceType, ImagesType, OrderType, StockCardType } from "@/utils/enum";
|
||||
import { onLoad } from "@dcloudio/uni-app";
|
||||
import _ from "underscore";
|
||||
|
||||
|
@ -69,16 +70,22 @@ const model1 = reactive<any>({
|
|||
formData: {},
|
||||
});
|
||||
const rules = ref({
|
||||
"userInfo.userName": {
|
||||
"formData.stockCardName": {
|
||||
type: "string",
|
||||
required: true,
|
||||
message: "请输入手机号",
|
||||
message: "请选择出库卡",
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
"userInfo.password": {
|
||||
"formData.name": {
|
||||
type: "string",
|
||||
required: true,
|
||||
message: "请输入密码",
|
||||
message: "请输入客户名称",
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
"formData.contacts": {
|
||||
type: "string",
|
||||
required: true,
|
||||
message: "请输入联系人",
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
});
|
||||
|
@ -130,8 +137,32 @@ const handleSelect = (key: string, v: any) => {
|
|||
model1.formData.stockCardId = v.id;
|
||||
}
|
||||
};
|
||||
const form = ref();
|
||||
const check = () => {
|
||||
return new Promise((resolve) => {
|
||||
form.value
|
||||
.validate()
|
||||
.then((res: boolean) => {
|
||||
resolve(res);
|
||||
})
|
||||
.catch((errors: any) => {
|
||||
resolve(false);
|
||||
uni.showToast({
|
||||
icon: "none",
|
||||
title: errors[0].message || "校验失败",
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
const save = () => {
|
||||
check().then((res) => {
|
||||
if (res) {
|
||||
startSave();
|
||||
}
|
||||
});
|
||||
};
|
||||
const startSave = () => {
|
||||
if (model1.formData.id) {
|
||||
CustomerApi.updateCustomUser(model1.formData).then((res) => {
|
||||
if (res.code === 200) {
|
||||
|
@ -152,7 +183,7 @@ const save = () => {
|
|||
};
|
||||
|
||||
const getStockCardList = () => {
|
||||
StockCardApi.getStockCardList({ pageNum: 1, pageSize: 10 }).then((res) => {
|
||||
StockCardApi.getStockCardList({ pageNum: 1, pageSize: 10000, type: StockCardType.Shipment }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
contrlModalParams.stockCard.list = (res.data as any).list.map(
|
||||
(item: any) => {
|
||||
|
|
|
@ -7,9 +7,10 @@
|
|||
ref="form"
|
||||
:labelWidth="100"
|
||||
:labelStyle="{ padding: '0rpx 10rpx' }"
|
||||
:errorType="'border-bottom'"
|
||||
>
|
||||
<u-form-item
|
||||
:prop="`formData[${item.key}]`"
|
||||
:prop="`formData.${item.key}`"
|
||||
:label="item.name"
|
||||
:required="item.required"
|
||||
v-for="(item, index) in formAttrList"
|
||||
|
@ -61,7 +62,7 @@
|
|||
<script setup lang="ts">
|
||||
import { StockCardApi, SupplierApi } from "@/services";
|
||||
import { formatDate } from "@/utils";
|
||||
import { DeviceType, ImagesType, OrderType } from "@/utils/enum";
|
||||
import { DeviceType, ImagesType, OrderType, StockCardType } from "@/utils/enum";
|
||||
import { onLoad } from "@dcloudio/uni-app";
|
||||
import _ from "underscore";
|
||||
|
||||
|
@ -69,16 +70,22 @@ const model1 = reactive<any>({
|
|||
formData: {},
|
||||
});
|
||||
const rules = ref({
|
||||
"userInfo.userName": {
|
||||
"formData.stockCardName": {
|
||||
type: "string",
|
||||
required: true,
|
||||
message: "请输入手机号",
|
||||
message: "请选择卡号",
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
"userInfo.password": {
|
||||
"formData.name": {
|
||||
type: "string",
|
||||
required: true,
|
||||
message: "请输入密码",
|
||||
message: "请输入供应商",
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
"formData.supplierTypeName": {
|
||||
type: "string",
|
||||
required: true,
|
||||
message: "请选择供应商分类",
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
});
|
||||
|
@ -195,7 +202,32 @@ const handleSelect = (key: string, v: any) => {
|
|||
}
|
||||
};
|
||||
|
||||
const form = ref();
|
||||
const check = () => {
|
||||
return new Promise((resolve) => {
|
||||
form.value
|
||||
.validate()
|
||||
.then((res: boolean) => {
|
||||
resolve(res);
|
||||
})
|
||||
.catch((errors: any) => {
|
||||
resolve(false);
|
||||
uni.showToast({
|
||||
icon: "none",
|
||||
title: errors[0].message || "校验失败",
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
const save = () => {
|
||||
check().then((res) => {
|
||||
if (res) {
|
||||
startSave();
|
||||
}
|
||||
});
|
||||
};
|
||||
const startSave = () => {
|
||||
if (model1.formData.id) {
|
||||
SupplierApi.updateSupplierUser(model1.formData).then((res) => {
|
||||
if (res.code === 200) {
|
||||
|
@ -224,7 +256,7 @@ const getSupplierTypeList = () => {
|
|||
};
|
||||
|
||||
const getStockCardList = () => {
|
||||
StockCardApi.getStockCardList({ pageNum: 1, pageSize: 10 }).then((res) => {
|
||||
StockCardApi.getStockCardList({ pageNum: 1, pageSize: 100000, type: StockCardType.Receive }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
contrlModalParams.stockCard.list = (res.data as any).list.map(
|
||||
(item: any) => {
|
||||
|
|
|
@ -12,6 +12,18 @@
|
|||
></u-search>
|
||||
<view class="btn" @click="add"> 新增 </view>
|
||||
</view>
|
||||
|
||||
<page-view
|
||||
@loadList="
|
||||
(v) => {
|
||||
getList(v);
|
||||
}
|
||||
"
|
||||
:noMoreData="pageList.noMoreData"
|
||||
:list="pageList.list"
|
||||
:height="100"
|
||||
:isLoading="pageList.isLoading"
|
||||
>
|
||||
<view class="box">
|
||||
<view v-for="(item, index) in pageList.list" :key="index">
|
||||
<view>
|
||||
|
@ -25,13 +37,13 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</page-view>
|
||||
</view>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { CustomerApi } from "@/services";
|
||||
|
||||
const keyword = ref("");
|
||||
|
||||
import { UsersType } from "@/utils/enum";
|
||||
import PageView from "@/components/PageView/index.vue";
|
||||
const state = reactive<any>({
|
||||
name: "",
|
||||
});
|
||||
|
@ -41,6 +53,13 @@ const pageList: PageResult<Customer> = reactive({
|
|||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
});
|
||||
const resetPageList = () => {
|
||||
pageList.noMoreData = false;
|
||||
pageList.total = 0;
|
||||
pageList.list = [];
|
||||
pageList.pageNum = 1;
|
||||
pageList.pageSize = 10;
|
||||
};
|
||||
const add = () => {
|
||||
uni.navigateTo({
|
||||
url: "/pagesApp/components/addCustomer", // 要跳转到的页面路径
|
||||
|
@ -53,36 +72,46 @@ const edit = (item: any) => {
|
|||
JSON.stringify(item), // 要跳转到的页面路径
|
||||
});
|
||||
};
|
||||
const handleSearch = () => {
|
||||
resetPageList();
|
||||
getList();
|
||||
};
|
||||
const deleteCustomer = (item: any) => {
|
||||
CustomerApi.updateCustomUser({ isDeleted: true, id: item.id }).then((res) => {
|
||||
if (res.code === 200) {
|
||||
getCustomUserPage();
|
||||
getList();
|
||||
}
|
||||
});
|
||||
};
|
||||
const handleSearch = () => {
|
||||
getCustomUserPage();
|
||||
};
|
||||
const getCustomUserPage = () => {
|
||||
|
||||
const getList = (v?: boolean) => {
|
||||
if (v) {
|
||||
if (Math.ceil(pageList.total / pageList.pageSize) > pageList.pageNum) {
|
||||
pageList.pageNum++;
|
||||
} else {
|
||||
pageList.noMoreData = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
let params: any = {
|
||||
pageSize: 10,
|
||||
pageNum: 1,
|
||||
pageSize: pageList.pageSize,
|
||||
pageNum: pageList.pageNum,
|
||||
name: state.name,
|
||||
};
|
||||
if (state.supplierTypeId > -1) {
|
||||
params.supplierTypeId = state.supplierTypeId;
|
||||
}
|
||||
pageList.isLoading = true;
|
||||
CustomerApi.getCustomUserPage(params).then((res) => {
|
||||
if (res.code === 200) {
|
||||
if (res.code === 200) {
|
||||
pageList.isLoading = false;
|
||||
(pageList as any).list = (res.data as any).list;
|
||||
}
|
||||
pageList.total = (res.data as any).total;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
getCustomUserPage();
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
@ -92,12 +121,18 @@ onMounted(() => {
|
|||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.type {
|
||||
display: flex;
|
||||
margin-right: 20rpx;
|
||||
font-size: 28rpx;
|
||||
color: #000000;
|
||||
}
|
||||
.btn {
|
||||
background: #00dcee;
|
||||
border-radius: 24rpx;
|
||||
border: 1px solid #00dcee;
|
||||
font-weight: 500;
|
||||
font-size: 26rpx;
|
||||
font-size: 28rpx;
|
||||
color: #ffffff;
|
||||
margin-left: 50rpx;
|
||||
padding: 6rpx 30rpx;
|
||||
|
@ -107,9 +142,9 @@ onMounted(() => {
|
|||
background: #ffffff;
|
||||
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12);
|
||||
border-radius: 13rpx;
|
||||
padding: 0rpx 20rpx;
|
||||
padding: 10rpx 20rpx;
|
||||
font-weight: 400;
|
||||
font-size: 26rpx;
|
||||
font-size: 28rpx;
|
||||
color: #000000;
|
||||
line-height: 41rpx;
|
||||
margin-top: 30rpx;
|
||||
|
@ -118,6 +153,7 @@ onMounted(() => {
|
|||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 20rpx 0rpx;
|
||||
|
||||
.op-box {
|
||||
display: flex;
|
||||
.btn + .btn {
|
||||
|
@ -127,10 +163,15 @@ onMounted(() => {
|
|||
background: #ff9d55;
|
||||
border-radius: 24rpx;
|
||||
font-weight: 500;
|
||||
font-size: 26rpx;
|
||||
font-size: 28rpx;
|
||||
color: #ffffff;
|
||||
padding: 6rpx 30rpx;
|
||||
}
|
||||
.btn_text {
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #00dcee;
|
||||
}
|
||||
}
|
||||
}
|
||||
> view + view {
|
||||
|
|
|
@ -174,6 +174,7 @@ const getList = (v?: boolean) => {
|
|||
return;
|
||||
}
|
||||
}
|
||||
pageList.isLoading = true;
|
||||
ReceiveApi.getOrderPage({
|
||||
pageSize: pageList.pageSize,
|
||||
pageNumber: pageList.pageNum,
|
||||
|
@ -181,7 +182,11 @@ const getList = (v?: boolean) => {
|
|||
isDeleted: true,
|
||||
}).then((res) => {
|
||||
if (res.code === 200) {
|
||||
(pageList as any).list = res.data.list;
|
||||
pageList.isLoading = false;
|
||||
(pageList as any).list = pageList.list.concat(
|
||||
res.data.list
|
||||
);
|
||||
pageList.total = (res.data as any).total;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
@ -86,9 +86,11 @@ const getList = (v?: boolean) => {
|
|||
let params: any = {
|
||||
roleName: state.name,
|
||||
};
|
||||
pageList.isLoading = true;
|
||||
ProfileApi.getRoleList(params).then((res) => {
|
||||
if (res.code === 200) {
|
||||
if (res.code === 200) {
|
||||
pageList.isLoading = false;
|
||||
(pageList as any).list = res.data as any;
|
||||
pageList.total = (res.data as any).total
|
||||
}
|
||||
|
|
|
@ -197,14 +197,19 @@ const getList = (v?: boolean) => {
|
|||
return;
|
||||
}
|
||||
}
|
||||
pageList.isLoading = true;
|
||||
ShipmentApi.getOrderPage({
|
||||
pageSize: pageList.pageSize,
|
||||
pageNumber: pageList.pageNum,
|
||||
userName: keyword.value,
|
||||
isDeleted: true,
|
||||
}).then((res) => {
|
||||
}).then((res: any) => {
|
||||
if (res.code === 200) {
|
||||
(pageList as any).list = res.data.list;
|
||||
pageList.isLoading = false;
|
||||
(pageList as any).list = pageList.list.concat(
|
||||
res.data.list
|
||||
);
|
||||
pageList.total = (res.data as any).total;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
@ -95,12 +95,10 @@ const getList = (v?: boolean) => {
|
|||
params.supplierTypeId = state.supplierTypeId;
|
||||
}
|
||||
GoodsApi.getPage(params).then((res) => {
|
||||
if (res.code === 200) {
|
||||
if (res.code === 200) {
|
||||
(pageList as any).list = (pageList as any).list.concat((res.data as any).list);
|
||||
pageList.total = (res.data as any).total
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
@ -16,6 +16,17 @@
|
|||
<view class="btn" @click="addSupplier"> 新增 </view>
|
||||
</view>
|
||||
|
||||
<page-view
|
||||
@loadList="
|
||||
(v) => {
|
||||
getList(v);
|
||||
}
|
||||
"
|
||||
:noMoreData="pageList.noMoreData"
|
||||
:list="pageList.list"
|
||||
:height="100"
|
||||
:isLoading="pageList.isLoading"
|
||||
>
|
||||
<view class="box" v-for="(item, index) in pageList.list" :key="index">
|
||||
<view>
|
||||
<view>
|
||||
|
@ -28,6 +39,7 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</page-view>
|
||||
</view>
|
||||
<u-action-sheet
|
||||
:actions="state.typeList"
|
||||
|
@ -42,6 +54,7 @@
|
|||
<script setup lang="ts">
|
||||
import { SupplierApi } from "@/services";
|
||||
import { UsersType } from "@/utils/enum";
|
||||
import PageView from "@/components/PageView/index.vue";
|
||||
const state = reactive<any>({
|
||||
name: "",
|
||||
supplierTypeId: -1,
|
||||
|
@ -54,19 +67,29 @@ const pageList: PageResult<User> = reactive({
|
|||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
});
|
||||
const resetPageList = () => {
|
||||
pageList.noMoreData = false;
|
||||
pageList.total = 0;
|
||||
pageList.list = [];
|
||||
pageList.pageNum = 1;
|
||||
pageList.pageSize = 10;
|
||||
};
|
||||
const handleSelect = (v: any) => {
|
||||
state.supplierTypeId = v.id;
|
||||
getUserList();
|
||||
resetPageList()
|
||||
getList();
|
||||
};
|
||||
const handleSearch = () => {
|
||||
getUserList();
|
||||
resetPageList()
|
||||
getList();
|
||||
};
|
||||
|
||||
const update = (item: any) => {
|
||||
SupplierApi.updateSupplierUser({ isDeleted: true, id: item.id }).then(
|
||||
(res) => {
|
||||
if (res.code === 200) {
|
||||
getUserList();
|
||||
resetPageList()
|
||||
getList();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
@ -79,27 +102,36 @@ const edit = (item: any) => {
|
|||
JSON.stringify(item), // 要跳转到的页面路径
|
||||
});
|
||||
};
|
||||
const getUserList = () => {
|
||||
const getList = (v?: boolean) => {
|
||||
if (v) {
|
||||
if (Math.ceil(pageList.total / pageList.pageSize) > pageList.pageNum) {
|
||||
pageList.pageNum++;
|
||||
} else {
|
||||
pageList.noMoreData = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
let params: any = {
|
||||
pageSize: 10,
|
||||
pageNum: 1,
|
||||
pageSize: pageList.pageSize,
|
||||
pageNum: pageList.pageNum,
|
||||
name: state.name,
|
||||
};
|
||||
if (state.supplierTypeId > -1) {
|
||||
params.supplierTypeId = state.supplierTypeId;
|
||||
}
|
||||
pageList.isLoading = true;
|
||||
SupplierApi.getSupplierUserPage(params).then((res) => {
|
||||
if (res.code === 200) {
|
||||
if (res.code === 200) {
|
||||
pageList.isLoading = false;
|
||||
(pageList as any).list = (res.data as any).list;
|
||||
}
|
||||
pageList.total = (res.data as any).total;
|
||||
}
|
||||
});
|
||||
};
|
||||
const getSupplierTypeList = () => {
|
||||
SupplierApi.getSupplierTypeList().then((res) => {
|
||||
SupplierApi.getSupplierTypeList().then((res:any) => {
|
||||
if (res.code === 200) {
|
||||
state.typeList = res.data;
|
||||
state.typeList = [{id: -1, name: '全部'}].concat(res.data);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
@ -109,7 +141,7 @@ const addSupplier = () => {
|
|||
});
|
||||
};
|
||||
onMounted(() => {
|
||||
getUserList();
|
||||
getList();
|
||||
getSupplierTypeList();
|
||||
});
|
||||
</script>
|
||||
|
@ -141,7 +173,7 @@ onMounted(() => {
|
|||
background: #ffffff;
|
||||
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(5, 68, 37, 0.12);
|
||||
border-radius: 13rpx;
|
||||
padding: 0rpx 20rpx;
|
||||
padding: 10rpx 20rpx;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #000000;
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
"
|
||||
:noMoreData="pageList.noMoreData"
|
||||
:list="pageList.list"
|
||||
:height="100"
|
||||
:isLoading="pageList.isLoading"
|
||||
>
|
||||
<view class="box">
|
||||
<view v-for="(item, index) in pageList.list" :key="index">
|
||||
|
@ -105,8 +107,10 @@ const getList = (v?: boolean) => {
|
|||
pageNum: pageList.pageNum,
|
||||
name: state.name,
|
||||
};
|
||||
pageList.isLoading = true;
|
||||
ProfileApi.getUserListByPage(params).then((res) => {
|
||||
if (res.code === 200) {
|
||||
pageList.isLoading = false;
|
||||
(pageList as any).list = (pageList as any).list.concat(
|
||||
(res.data as any).list
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue