This commit is contained in:
ChenQiuYu 2025-04-25 15:00:39 +08:00
parent 0d8e8932f0
commit 0caad78089
8 changed files with 113 additions and 80 deletions

View File

@ -420,7 +420,7 @@ const storageConditionsOptions =
} }
] ]
const emit = defineEmits(['close']) const emit = defineEmits(['close'])
let edit_data: any = ref({trdnFlag: false, extra: {}, minPackagingUnit: "只", packagingUnit: "盒", pricingModel: "2"}); let edit_data: any = ref({trdnFlag: false, extra: {}, minPackagingUnit: "只", packagingUnit: "盒", pricingModel: 2});
const idCode = ref(""); const idCode = ref("");
const showPopover = ref(false); const showPopover = ref(false);
const idCodeList = ref<string[]>([]); const idCodeList = ref<string[]>([]);

View File

@ -80,7 +80,6 @@ onMounted(() => {
}) })
const change_current_search_data_index = (val: any) => { const change_current_search_data_index = (val: any) => {
current_search_data = JSON.parse(JSON.stringify(val)); current_search_data = JSON.parse(JSON.stringify(val));
console.log(current_search_data.id)
// proos.changeData(current_search_data) // proos.changeData(current_search_data)
} }
const init = (_type: number,_name:string) => { const init = (_type: number,_name:string) => {
@ -104,12 +103,12 @@ function init_search_data() {
} }
let confirm = () => { let confirm = () => {
let jsondata = current_search_data.json; let jsondata = current_search_data;
let data = { let data = {
id: null, id: null,
type: null, type: null,
name: jsondata.name, name: jsondata?.name,
commonName: jsondata.common_name, commonName: jsondata?.common_name,
hilistCode: jsondata.code, hilistCode: jsondata.code,
unitPrice: null, unitPrice: null,
purchaseUnitPrice: null, purchaseUnitPrice: null,
@ -130,7 +129,6 @@ let confirm = () => {
} }
} }
console.log("data",data)
emit('confirm',data) emit('confirm',data)
show.value = false; show.value = false;

View File

@ -174,7 +174,7 @@ import {ElMessage, ElMessageBox} from "element-plus";
import GoodsSearch from "@/components/inventory/GoodsSearch.vue"; import GoodsSearch from "@/components/inventory/GoodsSearch.vue";
import CloseBtn from "@/components/CloseBtn.vue"; import CloseBtn from "@/components/CloseBtn.vue";
let {code} = defineProps({ let props = defineProps({
code: { code: {
type: String, type: String,
default: null default: null
@ -303,7 +303,7 @@ const getSupplierList = () => {
}) })
} }
const getOrderDetail = () => { const getOrderDetail = () => {
post("inventory/order/detail", {code: code}).then((res: any) => { post("inventory/order/detail", {code: props.code}).then((res: any) => {
inventory_order_data.value = res.inventoryOrder inventory_order_data.value = res.inventoryOrder
table_list.value = res.inventoryOrderGoodsList table_list.value = res.inventoryOrderGoodsList
console.log(res) console.log(res)

View File

@ -2,62 +2,65 @@
<div class="container-wrapper"> <div class="container-wrapper">
<div class="top"> <div class="top">
<div class="search"> <div class="search">
<el-form :inline="true" :model="searchModel"> <div class="left">
<el-form-item> <el-form :inline="true" :model="searchModel">
<el-input placeholder="请输入名称" <el-form-item>
clearable <el-input placeholder="请输入名称"
v-model="searchModel.name" clearable
style="width: 200px" v-model="searchModel.name"
> style="width: 200px"
<template #prefix> >
<el-icon class="el-input__icon"> <template #prefix>
<search/> <el-icon class="el-input__icon">
</el-icon> <search/>
</template> </el-icon>
</el-input> </template>
</el-form-item> </el-input>
<el-form-item> </el-form-item>
<el-cascader :options="allCateList" :show-all-levels="false" v-model="searchModel.cateId" clearable/> <el-form-item>
</el-form-item> <el-cascader :options="allCateList" :show-all-levels="false" v-model="searchModel.cateId" clearable/>
<el-form-item> </el-form-item>
<el-select <el-form-item>
placeholder="利润分类" <el-select
style="width: 150px" placeholder="利润分类"
multiple style="width: 150px"
collapse-tags multiple
collapse-tags-tooltip collapse-tags
v-model="searchModel.curProfitCate" collapse-tags-tooltip
> v-model="searchModel.curProfitCate"
<el-option >
v-for="item in profitCategory" <el-option
:key="item.name" v-for="item in profitCategory"
:label="item.name" :key="item.name"
:value="item.name" :label="item.name"
/> :value="item.name"
</el-select> />
</el-form-item> </el-select>
<el-form-item style="margin-right: 0"> </el-form-item>
<el-input placeholder="最低毛利率" v-model="searchModel.minInterestRate" style="width: 100px"> <el-form-item style="margin-right: 0">
<template #suffix> <el-input placeholder="最低毛利率" v-model="searchModel.minInterestRate" style="width: 100px">
<el-icon class="el-input__icon">%</el-icon> <template #suffix>
</template> <el-icon class="el-input__icon">%</el-icon>
</el-input> </template>
<el-icon style="color: #ddd"> </el-input>
<SemiSelect/> <el-icon style="color: #ddd">
</el-icon> <SemiSelect/>
</el-form-item> </el-icon>
</el-form-item>
<el-form-item> <el-form-item>
<el-input placeholder="最高毛利率" v-model="searchModel.maxInterestRate" style="width: 100px"> <el-input placeholder="最高毛利率" v-model="searchModel.maxInterestRate" style="width: 100px">
<template #suffix> <template #suffix>
<el-icon class="el-input__icon">%</el-icon> <el-icon class="el-input__icon">%</el-icon>
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item> </el-form>
<div class="btn">
<el-button type="primary" @click="searchGoods">搜索</el-button> <el-button type="primary" @click="searchGoods">搜索</el-button>
</el-form-item> <el-button type="primary" @click="resetSearch">重置</el-button>
</el-form> </div>
</div>
<div class="right"> <div class="right">
<el-checkbox v-model="inventoryNumber" label="不看0库存" size="large" @change="searchGoods"/> <el-checkbox v-model="inventoryNumber" label="不看0库存" size="large" @change="searchGoods"/>
<el-checkbox v-model="status" label="不看已停用" size="large" @change="searchGoods"/> <el-checkbox v-model="status" label="不看已停用" size="large" @change="searchGoods"/>
@ -158,13 +161,10 @@
</div> </div>
</div> </div>
</div> </div>
<Mask :is-show="is_add" :top="50" :height="900"> <Mask :is-show="is_add" :height="900" @close="is_add = false" title="新增">
<Edit ref="editRef" @close="is_add = false;init()"/> <Edit ref="editRef" @close="is_add = false;init()"/>
</Mask> </Mask>
<Mask :is-show="open" :top="50" :height="600"> <Mask :is-show="open" :top="50" :height="600" @close="open = false" title="编辑">
<div style="height: 50px">
<CloseBtn @click="closeMack"></CloseBtn>
</div>
<el-tabs v-model="activeName" @tab-change="changeTab"> <el-tabs v-model="activeName" @tab-change="changeTab">
<el-tab-pane label="商品信息" name="first"> <el-tab-pane label="商品信息" name="first">
<Edit ref="editRef" @close="open = false;init()"/> <Edit ref="editRef" @close="open = false;init()"/>
@ -182,7 +182,7 @@
import {nextTick, onMounted, ref} from "vue"; import {nextTick, onMounted, ref} from "vue";
import {ElTabPane} from "element-plus"; import {ElTabPane} from "element-plus";
import {post} from '@/utils/request.ts'; import {post} from '@/utils/request.ts';
import Mask from "@/components/Mask.vue"; import Mask from "@/components/common/Mask.vue";
import Edit from "@/components/inventory/goods/Edit.vue"; import Edit from "@/components/inventory/goods/Edit.vue";
import InventoryBatchDetail from "@/components/inventory/goods/InventoryBatchDetail.vue"; import InventoryBatchDetail from "@/components/inventory/goods/InventoryBatchDetail.vue";
import InventoryStatistics from "@/components/inventory/goods/InventoryStatistics.vue"; import InventoryStatistics from "@/components/inventory/goods/InventoryStatistics.vue";
@ -253,6 +253,7 @@ const searchGoods = () => {
}) })
post("goods/goods/searchDetail", {query: data}).then((res: any) => { post("goods/goods/searchDetail", {query: data}).then((res: any) => {
tableData.value = res.list tableData.value = res.list
total.value = res.total_count
}) })
} }
const getTagsArray = (tags: string) => { const getTagsArray = (tags: string) => {
@ -377,6 +378,16 @@ const changeTab = (name: string) => {
} }
} }
const activeName = ref('first') const activeName = ref('first')
const resetSearch = () => {
searchModel.value = {
name: "",
cateId: [],
minInterestRate: "",
maxInterestRate: "",
curProfitCate: []
}
init()
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.v-enter-active, .v-enter-active,
@ -398,14 +409,22 @@ const activeName = ref('first')
height: 112px; height: 112px;
padding: 24px 24px 0; padding: 24px 24px 0;
background: #fff; background: #fff;
display: flex;
flex-direction: column;
.search { .search {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.left{
.el-form-item { flex: 1;
margin-right: 5px; display: flex;
justify-content: space-between;
margin-right: 24px;
.el-form-item {
margin-right: 5px;
}
} }
} }
} }

View File

@ -69,8 +69,8 @@ let open_code = ref(null)
onMounted(() => { onMounted(() => {
init() init()
}) })
let open_add = (code: any) => { let open_add = (row: any) => {
open_code.value = code open_code.value = row.code
is_add.value = true is_add.value = true
} }

View File

@ -18,7 +18,7 @@
</div> </div>
<div class="title-btn"> <div class="title-btn">
<el-button type="primary" @click="initData()">查询</el-button> <el-button type="primary" @click="initData()">查询</el-button>
<el-button type="primary" @click="search={}">重置</el-button> <el-button type="primary" @click="resetSearch">重置</el-button>
<el-button type="primary" :icon="Plus" @click="isShow=true">新建项目</el-button> <el-button type="primary" :icon="Plus" @click="isShow=true">新建项目</el-button>
<el-button type="primary" @click="openSetMenu">组套</el-button> <el-button type="primary" @click="openSetMenu">组套</el-button>
</div> </div>
@ -126,7 +126,7 @@ const rowClick = ((row: any) => {
const tableData = ref<any>([]) const tableData = ref<any>([])
const initData = () => { const initData = () => {
post('item/list', {page: page.value, size: pageSize.value}).then((res: any) => { post('item/list', {page: page.value, size: pageSize.value, ...search.value}).then((res: any) => {
tableData.value = res.list tableData.value = res.list
total.value = res.total_count total.value = res.total_count
}) })
@ -149,6 +149,10 @@ const pageSize = ref(20);
const page = ref(1); const page = ref(1);
const total = ref(0); const total = ref(0);
const search = ref<any>({}) const search = ref<any>({})
const resetSearch = () => {
search.value = {}
initData()
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.container-wrapper { .container-wrapper {

View File

@ -26,7 +26,7 @@
</div> </div>
<div class="title-btn"> <div class="title-btn">
<el-button type="primary" @click="init()">查询</el-button> <el-button type="primary" @click="init()">查询</el-button>
<el-button type="primary" @click="search={}">重置</el-button> <el-button type="primary" @click="resetSearch">重置</el-button>
<el-button type="primary" :icon="Plus" @click="isShow=true">新增</el-button> <el-button type="primary" :icon="Plus" @click="isShow=true">新增</el-button>
</div> </div>
</div> </div>
@ -53,7 +53,11 @@
{{ sectionList.find((item: any) => item.id === scope.row.memberInfo.sectionId)?.name || '-' }} {{ sectionList.find((item: any) => item.id === scope.row.memberInfo.sectionId)?.name || '-' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="memo" label="备注"/> <el-table-column prop="memo" label="备注">
<template #default="scope">
{{ scope.row.memberInfo.memo }}
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
<div class="bottom"> <div class="bottom">
@ -128,7 +132,7 @@ const roleList = [
] ]
const init = (() => { const init = (() => {
isShow.value = false isShow.value = false
post('organization/member/list ', {page: page.value, size: pageSize.value}).then((res: any) => { post('organization/member/list ', {page: page.value, size: pageSize.value, ...search.value}).then((res: any) => {
tableData.value = res.list tableData.value = res.list
list() list()
}) })
@ -155,6 +159,10 @@ const page = ref(1);
const total = ref(0); const total = ref(0);
const search = ref<any>({}) const search = ref<any>({})
const resetSearch = () => {
search.value = {}
init()
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@use "@/assets/scss/base.scss"; @use "@/assets/scss/base.scss";

View File

@ -18,7 +18,7 @@
</div> </div>
<div class="title-btn"> <div class="title-btn">
<el-button type="primary" @click="init()">查询</el-button> <el-button type="primary" @click="init()">查询</el-button>
<el-button type="primary" @click="search={}">重置</el-button> <el-button type="primary" @click="resetSearch">重置</el-button>
<el-button type="primary" :icon="Plus" @click="isShow=true">新增</el-button> <el-button type="primary" :icon="Plus" @click="isShow=true">新增</el-button>
</div> </div>
</div> </div>
@ -111,7 +111,7 @@ interface Dept {
const init = () => { const init = () => {
isShow.value = false isShow.value = false
post('organization/section/list', {page: page.value, size: pageSize.value}).then((res: any) => { post('organization/section/list', {page: page.value, size: pageSize.value, ...search.value}).then((res: any) => {
tableData.value = res.list tableData.value = res.list
tableData.value.forEach((item: any) => { tableData.value.forEach((item: any) => {
let dept: Dept = deptsObj let dept: Dept = deptsObj
@ -141,6 +141,10 @@ const options = Object.entries(depts).map(([key, value]) => {
}; };
} }
}); });
const resetSearch = () => {
search.value = {}
init()
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@use "@/assets/scss/base.scss"; @use "@/assets/scss/base.scss";