|
@@ -34,9 +34,9 @@
|
|
|
</el-row>
|
|
|
<el-row :gutter="10">
|
|
|
<el-col :span="6">
|
|
|
- <el-form-item label="供应商" prop="supplyId">
|
|
|
+ <el-form-item label="供应商" prop="sellCorporationId">
|
|
|
<el-select
|
|
|
- v-model="formData.data.supplyId"
|
|
|
+ v-model="formData.data.sellCorporationId"
|
|
|
placeholder="请选择"
|
|
|
@change="handleChangeSupplier"
|
|
|
filterable
|
|
@@ -91,15 +91,15 @@
|
|
|
</el-form-item>
|
|
|
<div class="_t">采购明细</div>
|
|
|
<el-form-item>
|
|
|
- <el-button
|
|
|
+ <!-- <el-button
|
|
|
type="primary"
|
|
|
@click="openProduct = true"
|
|
|
style="margin: 10px 0"
|
|
|
v-if="ids.length == 0"
|
|
|
>
|
|
|
添加货品
|
|
|
- </el-button>
|
|
|
- <el-table :data="formData.data.purchaseDetailList">
|
|
|
+ </el-button> -->
|
|
|
+ <el-table :data="formData.data.purchaseProductList">
|
|
|
<el-table-column
|
|
|
prop="goodType"
|
|
|
label="货品类型"
|
|
@@ -123,19 +123,19 @@
|
|
|
label="已采购数量"
|
|
|
v-if="ids.length > 0"
|
|
|
/>
|
|
|
- <el-table-column prop="count" label="本次采购" min-width="150">
|
|
|
+ <el-table-column prop="quantity" label="本次采购" min-width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<el-form-item
|
|
|
- :prop="'purchaseDetailList.' + $index + '.count'"
|
|
|
- :rules="rules.count"
|
|
|
+ :prop="'purchaseProductList.' + $index + '.quantity'"
|
|
|
+ :rules="rules.quantity"
|
|
|
:inline-message="true"
|
|
|
>
|
|
|
<el-input-number
|
|
|
onmousewheel="return false;"
|
|
|
- v-model="formData.data.purchaseDetailList[$index].count"
|
|
|
+ v-model="formData.data.purchaseProductList[$index].quantity"
|
|
|
:controls="false"
|
|
|
:min="0"
|
|
|
- @change="(e) => handleChangeMoney(e, $index, 'count')"
|
|
|
+ @change="(e) => handleChangeMoney(e, $index, 'quantity')"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
@@ -143,13 +143,13 @@
|
|
|
<el-table-column prop="price" label="单价" min-width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<el-form-item
|
|
|
- :prop="'purchaseDetailList.' + $index + '.price'"
|
|
|
+ :prop="'purchaseProductList.' + $index + '.price'"
|
|
|
:rules="rules.price"
|
|
|
:inline-message="true"
|
|
|
>
|
|
|
<el-input-number
|
|
|
onmousewheel="return false;"
|
|
|
- v-model="formData.data.purchaseDetailList[$index].price"
|
|
|
+ v-model="formData.data.purchaseProductList[$index].price"
|
|
|
:controls="false"
|
|
|
:min="0"
|
|
|
@change="(e) => handleChangeMoney(e, $index, 'price')"
|
|
@@ -164,7 +164,7 @@
|
|
|
type="primary"
|
|
|
link
|
|
|
@click="handleRemove($index, 20)"
|
|
|
- :disabled="formData.data.purchaseDetailList.length === 1"
|
|
|
+ :disabled="formData.data.purchaseProductList.length === 1"
|
|
|
>删除</el-button
|
|
|
>
|
|
|
</template>
|
|
@@ -187,16 +187,16 @@
|
|
|
<el-button type="primary" style="margin: 10px 0" @click="handleAdd">
|
|
|
添加
|
|
|
</el-button>
|
|
|
- <el-table :data="formData.data.otherFeeList">
|
|
|
- <el-table-column prop="name" label="收费项目" min-width="150">
|
|
|
+ <el-table :data="formData.data.purchaseProjectList">
|
|
|
+ <el-table-column prop="payName" label="收费项目" min-width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<el-form-item
|
|
|
- :prop="'otherFeeList.' + $index + '.name'"
|
|
|
- :rules="rulesOne.name"
|
|
|
+ :prop="'purchaseProjectList.' + $index + '.payName'"
|
|
|
+ :rules="rulesOne.payName"
|
|
|
:inline-message="true"
|
|
|
>
|
|
|
<el-autocomplete
|
|
|
- v-model="row.name"
|
|
|
+ v-model="row.payName"
|
|
|
:fetch-suggestions="querySearchPerson"
|
|
|
clearable
|
|
|
class="inline-input w-50"
|
|
@@ -207,18 +207,18 @@
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="price" label="金额" min-width="150">
|
|
|
+ <el-table-column prop="amount" label="金额" min-width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<el-form-item
|
|
|
- :prop="'otherFeeList.' + $index + '.price'"
|
|
|
- :rules="rulesOne.price"
|
|
|
+ :prop="'purchaseProjectList.' + $index + '.amount'"
|
|
|
+ :rules="rulesOne.amount"
|
|
|
:inline-message="true"
|
|
|
>
|
|
|
<el-input-number
|
|
|
onmousewheel="return false;"
|
|
|
- v-model="formData.data.otherFeeList[$index].price"
|
|
|
+ v-model="formData.data.purchaseProjectList[$index].amount"
|
|
|
:controls="false"
|
|
|
- @change="(e) => handleChangeOtherMoney(e, $index, 'price')"
|
|
|
+ @change="(e) => handleChangeOtherMoney(e, $index, 'amount')"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
@@ -227,7 +227,7 @@
|
|
|
<el-table-column prop="remark" label="备注" min-width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
<el-form-item
|
|
|
- :prop="'otherFeeList.' + $index + '.remark'"
|
|
|
+ :prop="'purchaseProjectList.' + $index + '.remark'"
|
|
|
:inline-message="true"
|
|
|
>
|
|
|
<el-input v-model="row.remark" placeholder="请输入" />
|
|
@@ -299,8 +299,8 @@ const props = defineProps({
|
|
|
let formData = reactive({
|
|
|
data: {
|
|
|
purchaseTime: "",
|
|
|
- purchaseDetailList: [],
|
|
|
- otherFeeList: [],
|
|
|
+ purchaseProductList: [],
|
|
|
+ purchaseProjectList: [],
|
|
|
},
|
|
|
});
|
|
|
let rules = ref({
|
|
@@ -311,8 +311,12 @@ let rules = ref({
|
|
|
purchaseTime: [
|
|
|
{ required: true, message: "请选择采购时间", trigger: "change" },
|
|
|
],
|
|
|
- supplyId: [{ required: true, message: "请选择供应商", trigger: "change" }],
|
|
|
- count: [{ required: true, message: "请输入本次采购数量", trigger: "blur" }],
|
|
|
+ sellCorporationId: [
|
|
|
+ { required: true, message: "请选择供应商", trigger: "change" },
|
|
|
+ ],
|
|
|
+ quantity: [
|
|
|
+ { required: true, message: "请输入本次采购数量", trigger: "blur" },
|
|
|
+ ],
|
|
|
price: [{ required: true, message: "请输入单价", trigger: "blur" }],
|
|
|
remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
|
|
|
invoiceType: [
|
|
@@ -321,8 +325,8 @@ let rules = ref({
|
|
|
rate: [{ required: true, message: "请输入税率", trigger: "blur" }],
|
|
|
});
|
|
|
let rulesOne = ref({
|
|
|
- name: [{ required: true, message: "请输入名称", trigger: "blur" }],
|
|
|
- price: [{ required: true, message: "请输入金额", trigger: "blur" }],
|
|
|
+ payName: [{ required: true, message: "请输入名称", trigger: "blur" }],
|
|
|
+ amount: [{ required: true, message: "请输入金额", trigger: "blur" }],
|
|
|
});
|
|
|
const invoiceTypeData = ref([
|
|
|
{
|
|
@@ -351,21 +355,21 @@ let openProduct = ref(false);
|
|
|
// 物品相应逻辑
|
|
|
const handleRemove = (index, type) => {
|
|
|
if (type === 20) {
|
|
|
- formData.data.purchaseDetailList.splice(index, 1);
|
|
|
+ formData.data.purchaseProductList.splice(index, 1);
|
|
|
return ElMessage({
|
|
|
message: "删除成功!",
|
|
|
type: "success",
|
|
|
});
|
|
|
} else {
|
|
|
- formData.data.otherFeeList.splice(index, 1);
|
|
|
+ formData.data.purchaseProjectList.splice(index, 1);
|
|
|
}
|
|
|
handleChangeAmount();
|
|
|
};
|
|
|
|
|
|
const handleAdd = () => {
|
|
|
- formData.data.otherFeeList.push({
|
|
|
- name: "",
|
|
|
- price: undefined,
|
|
|
+ formData.data.purchaseProjectList.push({
|
|
|
+ payName: "",
|
|
|
+ amount: undefined,
|
|
|
remark: "",
|
|
|
});
|
|
|
};
|
|
@@ -374,12 +378,12 @@ const pushGoods = (goods) => {
|
|
|
if (goods && goods.length > 0) {
|
|
|
let afterFiltering = [];
|
|
|
if (
|
|
|
- formData.data.purchaseDetailList &&
|
|
|
- formData.data.purchaseDetailList.length > 0
|
|
|
+ formData.data.purchaseProductList &&
|
|
|
+ formData.data.purchaseProductList.length > 0
|
|
|
) {
|
|
|
afterFiltering = goods.filter((item) => {
|
|
|
- let data = formData.data.purchaseDetailList.filter(
|
|
|
- (itemProduct) => itemProduct.bussinessId === item.id
|
|
|
+ let data = formData.data.purchaseProductList.filter(
|
|
|
+ (itemProduct) => itemProduct.productId === item.id
|
|
|
);
|
|
|
if (data && data.length > 0) {
|
|
|
return false;
|
|
@@ -390,22 +394,23 @@ const pushGoods = (goods) => {
|
|
|
afterFiltering = goods;
|
|
|
}
|
|
|
const arr = afterFiltering.map((x) => ({
|
|
|
+ dataResource: "0",
|
|
|
goodType: x.goodType,
|
|
|
productCode: x.code,
|
|
|
productName: x.name,
|
|
|
productSpec: x.spec,
|
|
|
productUnit: x.unit,
|
|
|
- count: 0,
|
|
|
+ quantity: 0,
|
|
|
price: 0,
|
|
|
- bussinessId: x.id,
|
|
|
+ productId: x.id,
|
|
|
amount: 0,
|
|
|
}));
|
|
|
- formData.data.purchaseDetailList =
|
|
|
- formData.data.purchaseDetailList.concat(arr);
|
|
|
+ formData.data.purchaseProductList =
|
|
|
+ formData.data.purchaseProductList.concat(arr);
|
|
|
openProduct.value = false;
|
|
|
- const ids = formData.data.purchaseDetailList.map((x) => x.bussinessId);
|
|
|
- if (formData.data.supplyId && ids.length > 0) {
|
|
|
- handleChangeSupplier(formData.data.supplyId);
|
|
|
+ const ids = formData.data.purchaseProductList.map((x) => x.productId);
|
|
|
+ if (formData.data.sellCorporationId && ids.length > 0) {
|
|
|
+ handleChangeSupplier(formData.data.sellCorporationId);
|
|
|
}
|
|
|
return ElMessage({
|
|
|
message: "添加成功!",
|
|
@@ -420,12 +425,12 @@ const formDom = ref(null);
|
|
|
const handleSubmit = async () => {
|
|
|
const vaild = await formDom.value.validate();
|
|
|
if (vaild) {
|
|
|
- if (formData.data.purchaseDetailList.length > 0) {
|
|
|
- const list = formData.data.purchaseDetailList;
|
|
|
+ if (formData.data.purchaseProductList.length > 0) {
|
|
|
+ const list = formData.data.purchaseProductList;
|
|
|
for (let i = 0; i < list.length; i++) {
|
|
|
const e = list[i];
|
|
|
if (ids.value.length > 0) {
|
|
|
- if (e.count == 0) {
|
|
|
+ if (e.quantity == 0) {
|
|
|
ElMessage({
|
|
|
message: "本次采购数量不能为0!",
|
|
|
type: "info",
|
|
@@ -433,7 +438,7 @@ const handleSubmit = async () => {
|
|
|
return false;
|
|
|
}
|
|
|
// if (Number(e.subscribeCount) - Number(e.purchaseCount) > 0) {
|
|
|
- // if (e.count == 0) {
|
|
|
+ // if (e.quantity == 0) {
|
|
|
// ElMessage({
|
|
|
// message: "本次采购数量不能为0!",
|
|
|
// type: "info",
|
|
@@ -441,7 +446,7 @@ const handleSubmit = async () => {
|
|
|
// return false;
|
|
|
// }
|
|
|
// }
|
|
|
- // if (e.count + Number(e.purchaseCount) > Number(e.subscribeCount)) {
|
|
|
+ // if (e.quantity + Number(e.purchaseCount) > Number(e.subscribeCount)) {
|
|
|
// ElMessage({
|
|
|
// message: "本次采购数量和已采购数量和不可大于申购数量!",
|
|
|
// type: "info",
|
|
@@ -449,7 +454,7 @@ const handleSubmit = async () => {
|
|
|
// return false;
|
|
|
// }
|
|
|
} else {
|
|
|
- if (e.count == 0) {
|
|
|
+ if (e.quantity == 0) {
|
|
|
ElMessage({
|
|
|
message: "本次采购数量不能为0!",
|
|
|
type: "info",
|
|
@@ -473,15 +478,15 @@ const ids = ref([]);
|
|
|
const getDetails = () => {
|
|
|
if (props.queryData.type && props.queryData.type === "handoverSlip") {
|
|
|
proxy.post("/contractProduct/getListDetail", ids.value).then((res) => {
|
|
|
- formData.data.purchaseDetailList = res.map((x) => {
|
|
|
+ formData.data.purchaseProductList = res.map((x) => {
|
|
|
let obj = {
|
|
|
...x,
|
|
|
dataResource: "1", //来源写死外销合同采购
|
|
|
dataResourceId: x.id,
|
|
|
- bussinessId: x.productId,
|
|
|
+ productId: x.productId,
|
|
|
subscribeCount: x.quantity || x.sumPackQuantity || 0,
|
|
|
purchaseCount: x.sumPurchaseCount || 0,
|
|
|
- count: x.expendQuantity || 0,
|
|
|
+ quantity: x.expendQuantity || 0,
|
|
|
price: null,
|
|
|
amount: null,
|
|
|
};
|
|
@@ -491,17 +496,19 @@ const getDetails = () => {
|
|
|
});
|
|
|
} else {
|
|
|
proxy.post("/subscribeDetail/detail", { ids: ids.value }).then((res) => {
|
|
|
- formData.data.purchaseDetailList = res.map((x) => ({
|
|
|
+ formData.data.dataResource = "0";
|
|
|
+ formData.data.purchaseProductList = res.map((x) => ({
|
|
|
+ dataResource: "0",
|
|
|
subscribeDetailId: x.id,
|
|
|
- bussinessId: x.bussinessId,
|
|
|
+ productId: x.bussinessId,
|
|
|
goodType: x.productDefinition,
|
|
|
productCode: x.productCode,
|
|
|
productName: x.productName,
|
|
|
productSpec: x.productSpec,
|
|
|
productUnit: x.productUnit,
|
|
|
purchaseCount: x.purchaseCount,
|
|
|
- subscribeCount: x.count,
|
|
|
- count: 0,
|
|
|
+ subscribeCount: x.quantity,
|
|
|
+ quantity: 0,
|
|
|
price: null,
|
|
|
amount: null,
|
|
|
}));
|
|
@@ -510,7 +517,7 @@ const getDetails = () => {
|
|
|
};
|
|
|
// 获取供应商数据
|
|
|
const supplierData = ref([]);
|
|
|
-const otherFeeListData = ref([]);
|
|
|
+const purchaseProjectListData = ref([]);
|
|
|
const getSupplierList = async (req) => {
|
|
|
proxy
|
|
|
.post("/supplierInfo/page", { pageNum: 1, pageSize: 9999 })
|
|
@@ -533,11 +540,11 @@ const auxiliaryChange = (data) => {
|
|
|
emit("auxiliaryChange", data);
|
|
|
};
|
|
|
|
|
|
-const getAuxiliaryData = (supplyId, productIdList) => {
|
|
|
- if (supplyId && productIdList.length > 0) {
|
|
|
+const getAuxiliaryData = (sellCorporationId, productIdList) => {
|
|
|
+ if (sellCorporationId && productIdList.length > 0) {
|
|
|
proxy
|
|
|
.post("/subscribe/decisionAid", {
|
|
|
- supplyId: supplyId,
|
|
|
+ supplyId: sellCorporationId,
|
|
|
productIdList: productIdList,
|
|
|
})
|
|
|
.then((res) => {
|
|
@@ -657,7 +664,7 @@ const getAuxiliaryData = (supplyId, productIdList) => {
|
|
|
};
|
|
|
// 供应商改变逻辑
|
|
|
const handleChangeSupplier = (val) => {
|
|
|
- const ids = formData.data.purchaseDetailList.map((x) => x.bussinessId);
|
|
|
+ const ids = formData.data.purchaseProductList.map((x) => x.productId);
|
|
|
if (val && ids.length > 0) {
|
|
|
getAuxiliaryData(val, ids);
|
|
|
proxy
|
|
@@ -667,17 +674,17 @@ const handleChangeSupplier = (val) => {
|
|
|
})
|
|
|
.then((res) => {
|
|
|
if (res && Object.keys(res).length > 0) {
|
|
|
- for (let i = 0; i < formData.data.purchaseDetailList.length; i++) {
|
|
|
- const e = formData.data.purchaseDetailList[i];
|
|
|
+ for (let i = 0; i < formData.data.purchaseProductList.length; i++) {
|
|
|
+ const e = formData.data.purchaseProductList[i];
|
|
|
for (const key in res) {
|
|
|
- if (e.bussinessId === key) {
|
|
|
+ if (e.productId === key) {
|
|
|
e.price = Number(res[key]);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- for (let i = 0; i < formData.data.purchaseDetailList.length; i++) {
|
|
|
- const e = formData.data.purchaseDetailList[i];
|
|
|
+ for (let i = 0; i < formData.data.purchaseProductList.length; i++) {
|
|
|
+ const e = formData.data.purchaseProductList[i];
|
|
|
e.price = 0;
|
|
|
}
|
|
|
}
|
|
@@ -698,17 +705,17 @@ const formatNumber = (value, num = 10000) => {
|
|
|
// 计算采购总金额
|
|
|
const handleChangeAmount = () => {
|
|
|
let productAmount = 0;
|
|
|
- for (let i = 0; i < formData.data.purchaseDetailList.length; i++) {
|
|
|
- const e = formData.data.purchaseDetailList[i];
|
|
|
- e.amount = formatNumber(parseFloat(e.count * e.price), 100);
|
|
|
+ for (let i = 0; i < formData.data.purchaseProductList.length; i++) {
|
|
|
+ const e = formData.data.purchaseProductList[i];
|
|
|
+ e.amount = formatNumber(parseFloat(e.quantity * e.price), 100);
|
|
|
productAmount += Number(e.amount);
|
|
|
}
|
|
|
formData.data.productAmount = formatNumber(productAmount, 100);
|
|
|
// 其他收费
|
|
|
let otherAmount = 0;
|
|
|
- for (let i = 0; i < formData.data.otherFeeList.length; i++) {
|
|
|
- const e = formData.data.otherFeeList[i];
|
|
|
- otherAmount += Number(e.price);
|
|
|
+ for (let i = 0; i < formData.data.purchaseProjectList.length; i++) {
|
|
|
+ const e = formData.data.purchaseProjectList[i];
|
|
|
+ otherAmount += Number(e.amount);
|
|
|
}
|
|
|
formData.data.otherAmount = formatNumber(otherAmount, 100);
|
|
|
formData.data.amount = formatNumber(
|
|
@@ -721,15 +728,15 @@ const handleChangeAmount = () => {
|
|
|
|
|
|
const handleChangeMoney = (val, index, key) => {
|
|
|
let num = 100;
|
|
|
- if (key === "count") {
|
|
|
+ if (key === "quantity") {
|
|
|
num = 10000;
|
|
|
}
|
|
|
- formData.data.purchaseDetailList[index][key] = formatNumber(val, num);
|
|
|
+ formData.data.purchaseProductList[index][key] = formatNumber(val, num);
|
|
|
handleChangeAmount();
|
|
|
};
|
|
|
|
|
|
const handleChangeOtherMoney = (val, index, key) => {
|
|
|
- formData.data.otherFeeList[index][key] = formatNumber(val, 100);
|
|
|
+ formData.data.purchaseProjectList[index][key] = formatNumber(val, 100);
|
|
|
handleChangeAmount();
|
|
|
};
|
|
|
|
|
@@ -742,7 +749,10 @@ const getDict = () => {
|
|
|
}));
|
|
|
});
|
|
|
proxy.get("/purchaseOtherFee/listName").then((res) => {
|
|
|
- otherFeeListData.value = res.data.map((x) => ({ ...x, value: x.name }));
|
|
|
+ purchaseProjectListData.value = res.data.map((x) => ({
|
|
|
+ ...x,
|
|
|
+ value: x.name,
|
|
|
+ }));
|
|
|
});
|
|
|
};
|
|
|
getDict();
|
|
@@ -757,15 +767,17 @@ const createFilter = (queryString) => {
|
|
|
|
|
|
const querySearchPerson = (queryString, callback) => {
|
|
|
const results = queryString
|
|
|
- ? otherFeeListData.value.filter(createFilter(queryString))
|
|
|
- : otherFeeListData.value;
|
|
|
+ ? purchaseProjectListData.value.filter(createFilter(queryString))
|
|
|
+ : purchaseProjectListData.value;
|
|
|
callback(results);
|
|
|
};
|
|
|
|
|
|
const handlePerson = (item, index) => {
|
|
|
- formData.data.otherFeeList[index].name = item.name;
|
|
|
- formData.data.otherFeeList[index].price = item.price ? item.price : 0;
|
|
|
- formData.data.otherFeeList[index].remark = item.remark ? item.remark : "";
|
|
|
+ formData.data.purchaseProjectList[index].payName = item.name;
|
|
|
+ formData.data.purchaseProjectList[index].amount = item.price ? item.price : 0;
|
|
|
+ formData.data.purchaseProjectList[index].remark = item.remark
|
|
|
+ ? item.remark
|
|
|
+ : "";
|
|
|
};
|
|
|
|
|
|
watch(
|
|
@@ -778,9 +790,9 @@ watch(
|
|
|
route.query.processType == 30)
|
|
|
) {
|
|
|
formData.data = proxy.deepClone(props.queryData);
|
|
|
- const ids = formData.data.purchaseDetailList.map((x) => x.bussinessId);
|
|
|
- if (formData.data.supplyId && ids.length > 0) {
|
|
|
- getAuxiliaryData(formData.data.supplyId, ids);
|
|
|
+ const ids = formData.data.purchaseProductList.map((x) => x.productId);
|
|
|
+ if (formData.data.sellCorporationId && ids.length > 0) {
|
|
|
+ getAuxiliaryData(formData.data.sellCorporationId, ids);
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -839,12 +851,12 @@ defineExpose({
|
|
|
const acquireSelectList = () => {
|
|
|
let data = [];
|
|
|
if (
|
|
|
- formData.data.purchaseDetailList &&
|
|
|
- formData.data.purchaseDetailList.length > 0
|
|
|
+ formData.data.purchaseProductList &&
|
|
|
+ formData.data.purchaseProductList.length > 0
|
|
|
) {
|
|
|
- data = formData.data.purchaseDetailList.map((item) => {
|
|
|
+ data = formData.data.purchaseProductList.map((item) => {
|
|
|
return {
|
|
|
- id: item.bussinessId,
|
|
|
+ id: item.productId,
|
|
|
name: item.productName,
|
|
|
};
|
|
|
});
|