Browse Source

Merge remote-tracking branch 'origin/master_hella' into master_hella

master_hella_20240701
gaojs 5 months ago
parent
commit
f015280c0d
  1. 6
      src/components/SearchTable/src/SearchTable.vue
  2. 5
      src/locales/en-US.ts
  3. 5
      src/locales/zh-CN.ts
  4. 2
      src/utils/disposition/defaultButtons.ts
  5. 179
      src/views/home/components/supplierIndex.vue
  6. 510
      src/views/home/components/supplierIndex供应商发票空白页,暂时去掉部分模块.vue
  7. 4
      src/views/home/index.vue
  8. 295
      src/views/wms/basicDataManage/strategySetting/strategy/downShelfStrategy/AddForm.vue
  9. 53
      src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRequestMain/inventoryinitRequestMain.data.ts
  10. 2
      src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/preparetoissueMain.data.ts
  11. 4
      src/views/wms/issueManage/productionreceipt/productionreceiptRecordMain/productionreceiptRecordMain.data.ts
  12. 6
      src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/inventorychangeRequestMain.data.ts
  13. 50
      src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue
  14. 20
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts

6
src/components/SearchTable/src/SearchTable.vue

@ -63,7 +63,7 @@ const HeadButttondata = ref(multipleBol.value?
[ [
defaultButtons.defaultWhenPageBtn(null), // defaultButtons.defaultWhenPageBtn(null), //
defaultButtons.defaultUnselectPageBtn(null), // defaultButtons.defaultUnselectPageBtn(null), //
defaultButtons.defaultDeselectAllBtn(null), // // defaultButtons.defaultDeselectAllBtn(null), //
defaultButtons.defaultFilterBtn(null), // defaultButtons.defaultFilterBtn(null), //
]:[ ]:[
defaultButtons.defaultFilterBtn(null) // defaultButtons.defaultFilterBtn(null) //
@ -90,7 +90,7 @@ const openData = (titleName: any, tableObject:any ,allSchemas: any,multiple: any
HeadButttondata.value = multiple?[ HeadButttondata.value = multiple?[
defaultButtons.defaultWhenPageBtn(null), // defaultButtons.defaultWhenPageBtn(null), //
defaultButtons.defaultUnselectPageBtn(null), // defaultButtons.defaultUnselectPageBtn(null), //
defaultButtons.defaultDeselectAllBtn(null), // // defaultButtons.defaultDeselectAllBtn(null), //
defaultButtons.defaultFilterBtn(null), // defaultButtons.defaultFilterBtn(null), //
]:[ ]:[
defaultButtons.defaultFilterBtn(null), // defaultButtons.defaultFilterBtn(null), //
@ -108,7 +108,7 @@ const open = (titleName: any, allSchemas: any,getApiPage: any, formField: any, s
HeadButttondata.value = multiple?[ HeadButttondata.value = multiple?[
defaultButtons.defaultWhenPageBtn(null), // defaultButtons.defaultWhenPageBtn(null), //
defaultButtons.defaultUnselectPageBtn(null), // defaultButtons.defaultUnselectPageBtn(null), //
defaultButtons.defaultDeselectAllBtn(null), // // defaultButtons.defaultDeselectAllBtn(null), //
defaultButtons.defaultFilterBtn(null), // defaultButtons.defaultFilterBtn(null), //
]: ]:
[ [

5
src/locales/en-US.ts

@ -1122,6 +1122,11 @@ export default {
:'Forget Password', :'Forget Password',
:'User Name', :'User Name',
:'Mail', :'Mail',
:'Today',
:'Please enter the reason for rejection',
'驳回原因不能为空,且不超过60字':'The reason for rejection cannot be empty and cannot exceed 60 words',
:'Batch release'
}, },

5
src/locales/zh-CN.ts

@ -1122,7 +1122,10 @@ export default {
:'忘记密码', :'忘记密码',
:'用户名', :'用户名',
:'邮箱', :'邮箱',
:'今日',
:'请输入驳回原因',
'驳回原因不能为空,且不超过60字':'驳回原因不能为空,且不超过60字',
:'批量发布'
}, },

2
src/utils/disposition/defaultButtons.ts

@ -559,7 +559,7 @@ export function mainListOrderPubBtn(option:any) {
// 主列表-订单流程-批量发布按钮 // 主列表-订单流程-批量发布按钮
export function mainListSelectionOrderPubBtn(option:any) { export function mainListSelectionOrderPubBtn(option:any) {
return __defaultBtnOption(option,{ return __defaultBtnOption(option,{
label: t(`ts.发布`).replace('ts.', ''), label: t(`ts.批量发布`).replace('ts.', ''),
name: 'mainOrderSelectionPub', name: 'mainOrderSelectionPub',
hide: false, hide: false,
type: 'primary', type: 'primary',

179
src/views/home/components/supplierIndex.vue

@ -70,185 +70,6 @@
<Echart :options="pieOptions" :height="280" :key="lineIndex" /> <Echart :options="pieOptions" :height="280" :key="lineIndex" />
</div> </div>
</div> </div>
<div class="two-row mt-14px">
<div class="data1 w-[47.3%]">
<div class="title">{{t('home.latest_news')}}</div>
<el-table :data="notaicList" style="width: 100%" stripe height="240px">
<el-table-column :label="t('home.number')" align="center" prop="id" />
<el-table-column :label="t('home.user_type')" align="center" prop="userType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.USER_TYPE" :value="scope.row.userType" />
</template>
</el-table-column>
<el-table-column :label="t('home.user_number')" align="center" prop="userId" width="80" />
<el-table-column :label="t('home.template_coding')" align="center" prop="templateCode" width="80" />
<el-table-column :label="t('home.sender_number')" align="center" prop="templateNickname" width="180" />
<el-table-column
:label="t('home.template_content')"
align="center"
prop="templateContent"
width="200"
show-overflow-tooltip
/>
<el-table-column
:label="t('home.template_parameters')"
align="center"
prop="templateParams"
width="180"
show-overflow-tooltip
>
<template #default="scope"> {{ scope.row.templateParams }}</template>
</el-table-column>
<el-table-column :label="t('home.template_type')" align="center" prop="templateType" width="120">
<template #default="scope">
<dict-tag
:type="DICT_TYPE.SYSTEM_NOTIFY_TEMPLATE_TYPE"
:value="scope.row.templateType"
/>
</template>
</el-table-column>
<el-table-column :label="t('home.read')" align="center" prop="readStatus" width="100">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.readStatus" />
</template>
</el-table-column>
<el-table-column
:label="t('home.read_time')"
align="center"
prop="readTime"
width="180"
:formatter="dateFormatter"
/>
<el-table-column
:label="t('home.create_time')"
align="center"
prop="createTime"
width="180"
:formatter="dateFormatter"
/>
<!-- <el-table-column label="操作" align="center" fixed="right" width="120">
<template #default="scope">
<el-button link type="primary" @click="openDetail(scope.row)" v-hasPermi="['system:notify-message:query']">
<Icon icon="ep:document-copy" />
详情
</el-button>
</template>
</el-table-column> -->
</el-table>
</div>
<div class="data1 w-[47.3%]">
<div class="title">{{ t('home.latest_deduction_details')}}</div>
<el-table :data="tableData" style="width: 100%" stripe height="240px">
<el-table-column prop="title" :label="t('home.title')" />
<el-table-column prop="name" :label="t('home.publisher')" />
<el-table-column prop="date" :label="t('home.publish_date')" />
</el-table>
</div>
</div>
<div class="two-row mt-14px">
<div class="data1 w-[47.3%]">
<!-- 本月退货明细 -->
<div class="title">{{t('home.month_return_detials')}}</div>
<el-table
:data="purchasereturnRecordMonth"
style="width: 100%"
stripe
height="240px"
>
<el-table-column prop="number" :label="t('home.document_number')" width="180" />
<el-table-column prop="fromPackingNumber" :label="t('home.source_package_number')" width="180" />
<el-table-column prop="toPackingNumber" :label="t('home.destination_package_number')" width="180" />
<el-table-column prop="fromContainerNumber" :label="t('home.source_appliance_number')" width="120" />
<el-table-column prop="toContainerNumber" :label="t('home.destination_appliance_number')" width="120" />
<el-table-column prop="fromBatch" :label="t('home.source_batch')" width="120" />
<el-table-column prop="toBatch" :label="t('home.destination_batch')" width="120" />
<el-table-column prop="altBatch" :label="t('home.replace_batch')" width="120" />
<el-table-column prop="fromLocationCode" :label="t('home.source_location_code')" width="120" />
<el-table-column prop="toLocationCode" :label="t('home.destination_location_code')" width="120" />
<el-table-column prop="fromLocationGroupCode" :label="t('home.source_location_group_code')" width="120" />
<el-table-column prop="toLocationGroupCode" :label="t('home.destination_location_group_code')" width="120" />
<el-table-column prop="fromAreaCode" :label="t('home.source_location_area_code')" width="120" />
<el-table-column prop="toAreaCode" :label="t('home.destination_location_area_code')" width="120" />
<el-table-column prop="fromOwnerCode" :label="t('home.source_shipper_code')" width="120" />
<el-table-column prop="toOwnerCode" :label="t('home.destination_shipper_code')" width="120" />
<el-table-column prop="inventoryStatus" :label="t('home.inventory_state')" width="120">
<template #default="scope">
{{ formatter(scope.row.inventoryStatus,DICT_TYPE.INVENTORY_STATUS) }}
</template>
</el-table-column>
<el-table-column prop="poNumber" :label="t('home.order_number')" width="120" />
<el-table-column prop="poline" :label="t('home.order_line')" width="120" />
<el-table-column prop="reason" :label="t('home.cause')" width="120" />
<el-table-column prop="singlePrice" :label="t('home.unit_price')" width="120" />
<el-table-column prop="amount" :label="t('home.money')" width="120" />
<el-table-column prop="itemCode" :label="t('home.material_code')" width="160" />
<el-table-column prop="itemName" :label="t('home.material_name')" width="120" />
<el-table-column prop="itemDesc1" :label="t('home.material_description1')" width="120" />
<el-table-column prop="itemDesc2" :label="t('home.material_description2')" width="120" />
<el-table-column prop="qty" :label="t('home.amount')" width="120" />
<el-table-column prop="uom" :label="t('home.measuring_unit')" width="120">
<template #default="scope">
{{ formatter(scope.row.uom,DICT_TYPE.UOM) }}
</template>
</el-table-column>
<el-table-column prop="projectCode" :label="t('home.item_code')" width="120" />
<el-table-column prop="remark" :label="t('home.comment')" width="120" />
<el-table-column prop="createTime" :label="t('home.create_time')" width="170">
<template #default="scope">
<span>{{ formatDate(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column prop="creator" :label="t('home.creater')" width="120" />
</el-table>
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_purchasereturn"
v-model:page-size="pageSize_purchasereturn"
:page-sizes="[10, 20, 30, 50, 100]"
:small="true"
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_purchasereturn"
@size-change="getPurchasereturnRecordMonth"
@current-change="getPurchasereturnRecordMonth"
/>
</div>
<div class="data1 w-[47.3%]">
<!-- 本月索赔明细 -->
<div class="title">{{t('home.claim_details_month')}}</div>
<el-table
:data="purchaseclaimRecordMonth"
style="width: 100%"
stripe
height="240px"
>
<el-table-column prop="number" :label="t('home.document_number')" width="180" />
<el-table-column prop="fromBatch" :label="t('home.batch')" width="120" />
<el-table-column prop="poNumber" :label="t('home.order_number')" width="120" />
<el-table-column prop="poline" :label="t('home.order_line')" width="120" />
<el-table-column prop="reason" :label="t('home.cause')" width="120" />
<el-table-column prop="singlePrice" :label="t('home.unit_price')" width="120" />
<el-table-column prop="amount" :label="t('home.money')" width="120" />
<el-table-column prop="code" label="代码" width="160" />
<el-table-column prop="createTime" :label="t('home.create_time')" width="170">
<template #default="scope">
<span>{{ formatDate(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column prop="creator" :label="t('home.creater')" width="120" />
</el-table>
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_purchaseclaim"
v-model:page-size="pageSize_purchaseclaim"
:page-sizes="[10, 20, 30, 50, 100]"
:small="true"
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_purchaseclaim"
@size-change="getPurchaseclaimRecordMonth"
@current-change="getPurchaseclaimRecordMonth"
/>
</div>
</div>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>

510
src/views/home/components/supplierIndex供应商发票空白页,暂时去掉部分模块.vue

@ -0,0 +1,510 @@
<!-- 供应商首页 -->
<template>
<div class="one-row">
<div class="data">
<div class="data-item">
<div class="small-title">{{ t('home.number_orders') }}</div>
<div class="small-data">
<div class="small-data-item small-data-item1">
<div class="small-data-item-txt">
<div>{{ supplierData?.openPurchaseCount || 0 }}<span>{{ t('home.single') }}</span></div>
<div>{{ t('home.number_open') }}</div>
</div>
<img src="../../../assets/imgs/icon1.png" alt="" class="img" />
</div>
<div class="small-data-item small-data-item2 ml-14px">
<div class="small-data-item-txt">
<div>{{ supplierData?.allPurchaseCount || 0 }}<span>{{ t('home.single') }}</span></div>
<div>{{ t('home.number_total_order') }}</div>
</div>
<img src="../../../assets/imgs/icon5.png" alt="" class="img" />
</div>
</div>
</div>
<div class="data-item ml-14px">
<div class="small-title">{{t('home.number_planned_shipments')}}</div>
<div class="small-data">
<div class="small-data-item small-data-item3">
<div class="small-data-item-txt">
<div>{{ supplierData?.openPurchasePlanCount || 0 }}<span>{{ t('home.single') }}</span></div>
<div>{{t('home.number_open_plans')}}</div>
</div>
<img src="../../../assets/imgs/icon6.png" alt="" class="img" />
</div>
<div class="small-data-item small-data-item4 ml-14px">
<div class="small-data-item-txt">
<div>{{ supplierData?.allPurchasePlanCount || 0 }}<span>{{ t('home.single') }}</span></div>
<div>{{t('home.number_all_plans')}}</div>
</div>
<img src="../../../assets/imgs/icon3.png" alt="" class="img" />
</div>
</div>
</div>
<div class="data-item ml-14px">
<div class="small-title">{{t('home.number_invoices')}}</div>
<div class="small-data">
<div class="small-data-item small-data-item5">
<div class="small-data-item-txt">
<div>{{ supplierData?.notTakeSupplierdeliverCount || 0 }}<span>{{ t('home.single') }}</span></div>
<div>{{t('home.number_unreceived_orders')}}</div>
</div>
<img src="../../../assets/imgs/icon4.png" alt="" class="img" />
</div>
<div class="small-data-item small-data-item6 ml-14px">
<div class="small-data-item-txt">
<div>{{ supplierData?.takeSupplierdeliverCount || 0 }}<span>{{ t('home.single') }}</span></div>
<div>{{t('home.number_orders_received')}}</div>
</div>
<img src="../../../assets/imgs/icon2.png" alt="" class="img" />
</div>
</div>
</div>
</div>
<div class="two-row mt-14px">
<div class="data1 w-[65%]">
<div class="title">{{t('home.invoice_trend_month')}}</div>
<Echart :options="lineOptions" :height="280" :key="lineIndex" />
</div>
<div class="data1 w-[35%] ml-14px">
<div class="title">{{t('home.TOP10_parts_shipped_month')}}</div>
<Echart :options="pieOptions" :height="280" :key="lineIndex" />
</div>
</div>
<div class="two-row mt-14px">
<div class="data1 w-[47.3%]">
<div class="title">{{t('home.latest_news')}}</div>
<el-table :data="notaicList" style="width: 100%" stripe height="240px">
<el-table-column :label="t('home.number')" align="center" prop="id" />
<el-table-column :label="t('home.user_type')" align="center" prop="userType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.USER_TYPE" :value="scope.row.userType" />
</template>
</el-table-column>
<el-table-column :label="t('home.user_number')" align="center" prop="userId" width="80" />
<el-table-column :label="t('home.template_coding')" align="center" prop="templateCode" width="80" />
<el-table-column :label="t('home.sender_number')" align="center" prop="templateNickname" width="180" />
<el-table-column
:label="t('home.template_content')"
align="center"
prop="templateContent"
width="200"
show-overflow-tooltip
/>
<el-table-column
:label="t('home.template_parameters')"
align="center"
prop="templateParams"
width="180"
show-overflow-tooltip
>
<template #default="scope"> {{ scope.row.templateParams }}</template>
</el-table-column>
<el-table-column :label="t('home.template_type')" align="center" prop="templateType" width="120">
<template #default="scope">
<dict-tag
:type="DICT_TYPE.SYSTEM_NOTIFY_TEMPLATE_TYPE"
:value="scope.row.templateType"
/>
</template>
</el-table-column>
<el-table-column :label="t('home.read')" align="center" prop="readStatus" width="100">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.readStatus" />
</template>
</el-table-column>
<el-table-column
:label="t('home.read_time')"
align="center"
prop="readTime"
width="180"
:formatter="dateFormatter"
/>
<el-table-column
:label="t('home.create_time')"
align="center"
prop="createTime"
width="180"
:formatter="dateFormatter"
/>
<!-- <el-table-column label="操作" align="center" fixed="right" width="120">
<template #default="scope">
<el-button link type="primary" @click="openDetail(scope.row)" v-hasPermi="['system:notify-message:query']">
<Icon icon="ep:document-copy" />
详情
</el-button>
</template>
</el-table-column> -->
</el-table>
</div>
<div class="data1 w-[47.3%]">
<div class="title">{{ t('home.latest_deduction_details')}}</div>
<el-table :data="tableData" style="width: 100%" stripe height="240px">
<el-table-column prop="title" :label="t('home.title')" />
<el-table-column prop="name" :label="t('home.publisher')" />
<el-table-column prop="date" :label="t('home.publish_date')" />
</el-table>
</div>
</div>
<div class="two-row mt-14px">
<div class="data1 w-[47.3%]">
<!-- 本月退货明细 -->
<div class="title">{{t('home.month_return_detials')}}</div>
<el-table
:data="purchasereturnRecordMonth"
style="width: 100%"
stripe
height="240px"
>
<el-table-column prop="number" :label="t('home.document_number')" width="180" />
<el-table-column prop="fromPackingNumber" :label="t('home.source_package_number')" width="180" />
<el-table-column prop="toPackingNumber" :label="t('home.destination_package_number')" width="180" />
<el-table-column prop="fromContainerNumber" :label="t('home.source_appliance_number')" width="120" />
<el-table-column prop="toContainerNumber" :label="t('home.destination_appliance_number')" width="120" />
<el-table-column prop="fromBatch" :label="t('home.source_batch')" width="120" />
<el-table-column prop="toBatch" :label="t('home.destination_batch')" width="120" />
<el-table-column prop="altBatch" :label="t('home.replace_batch')" width="120" />
<el-table-column prop="fromLocationCode" :label="t('home.source_location_code')" width="120" />
<el-table-column prop="toLocationCode" :label="t('home.destination_location_code')" width="120" />
<el-table-column prop="fromLocationGroupCode" :label="t('home.source_location_group_code')" width="120" />
<el-table-column prop="toLocationGroupCode" :label="t('home.destination_location_group_code')" width="120" />
<el-table-column prop="fromAreaCode" :label="t('home.source_location_area_code')" width="120" />
<el-table-column prop="toAreaCode" :label="t('home.destination_location_area_code')" width="120" />
<el-table-column prop="fromOwnerCode" :label="t('home.source_shipper_code')" width="120" />
<el-table-column prop="toOwnerCode" :label="t('home.destination_shipper_code')" width="120" />
<el-table-column prop="inventoryStatus" :label="t('home.inventory_state')" width="120">
<template #default="scope">
{{ formatter(scope.row.inventoryStatus,DICT_TYPE.INVENTORY_STATUS) }}
</template>
</el-table-column>
<el-table-column prop="poNumber" :label="t('home.order_number')" width="120" />
<el-table-column prop="poline" :label="t('home.order_line')" width="120" />
<el-table-column prop="reason" :label="t('home.cause')" width="120" />
<el-table-column prop="singlePrice" :label="t('home.unit_price')" width="120" />
<el-table-column prop="amount" :label="t('home.money')" width="120" />
<el-table-column prop="itemCode" :label="t('home.material_code')" width="160" />
<el-table-column prop="itemName" :label="t('home.material_name')" width="120" />
<el-table-column prop="itemDesc1" :label="t('home.material_description1')" width="120" />
<el-table-column prop="itemDesc2" :label="t('home.material_description2')" width="120" />
<el-table-column prop="qty" :label="t('home.amount')" width="120" />
<el-table-column prop="uom" :label="t('home.measuring_unit')" width="120">
<template #default="scope">
{{ formatter(scope.row.uom,DICT_TYPE.UOM) }}
</template>
</el-table-column>
<el-table-column prop="projectCode" :label="t('home.item_code')" width="120" />
<el-table-column prop="remark" :label="t('home.comment')" width="120" />
<el-table-column prop="createTime" :label="t('home.create_time')" width="170">
<template #default="scope">
<span>{{ formatDate(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column prop="creator" :label="t('home.creater')" width="120" />
</el-table>
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_purchasereturn"
v-model:page-size="pageSize_purchasereturn"
:page-sizes="[10, 20, 30, 50, 100]"
:small="true"
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_purchasereturn"
@size-change="getPurchasereturnRecordMonth"
@current-change="getPurchasereturnRecordMonth"
/>
</div>
<div class="data1 w-[47.3%]">
<!-- 本月索赔明细 -->
<div class="title">{{t('home.claim_details_month')}}</div>
<el-table
:data="purchaseclaimRecordMonth"
style="width: 100%"
stripe
height="240px"
>
<el-table-column prop="number" :label="t('home.document_number')" width="180" />
<el-table-column prop="fromBatch" :label="t('home.batch')" width="120" />
<el-table-column prop="poNumber" :label="t('home.order_number')" width="120" />
<el-table-column prop="poline" :label="t('home.order_line')" width="120" />
<el-table-column prop="reason" :label="t('home.cause')" width="120" />
<el-table-column prop="singlePrice" :label="t('home.unit_price')" width="120" />
<el-table-column prop="amount" :label="t('home.money')" width="120" />
<el-table-column prop="code" label="代码" width="160" />
<el-table-column prop="createTime" :label="t('home.create_time')" width="170">
<template #default="scope">
<span>{{ formatDate(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column prop="creator" :label="t('home.creater')" width="120" />
</el-table>
<el-pagination style="margin-top:10px"
v-model:current-page="currentPage_purchaseclaim"
v-model:page-size="pageSize_purchaseclaim"
:page-sizes="[10, 20, 30, 50, 100]"
:small="true"
:background="false"
layout="total, sizes, prev, pager, next, jumper"
:total="total_purchaseclaim"
@size-change="getPurchaseclaimRecordMonth"
@current-change="getPurchaseclaimRecordMonth"
/>
</div>
</div>
</div>
</template>
<script lang="ts" setup>
import { set } from 'lodash-es'
import { EChartsOption } from 'echarts'
import { lineOptions, pieOptions } from '../echarts-data'
import { formatDate,dateFormatter } from '@/utils/formatTime'
import * as NotifyMessageApi from '@/api/system/notify/message'
import * as IndexApi from '@/api/home'
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
const { t } = useI18n()
const tableData = [
{
date: '2016-05-03',
name: 'Tom',
title: 'Tom',
text: 'No. 189, Grove St, Los Angeles'
},
{
date: '2016-05-02',
title: 'Tom',
name: 'Tom',
text: 'No. 189, Grove St, Los Angeles'
},
{
date: '2016-05-04',
title: 'Tom',
name: 'Tom',
text: 'No. 189, Grove St, Los Angeles'
},
{
date: '2016-05-01',
title: 'Tom',
name: 'Tom',
text: 'No. 189, Grove St, Los Angeles'
},
{
date: '2016-05-01',
title: 'Tom',
name: 'Tom',
text: 'No. 189, Grove St, Los Angeles'
},
{
date: '2016-05-01',
title: 'Tom',
name: 'Tom',
text: 'No. 189, Grove St, Los Angeles'
}
]
const supplierData = ref()
const lineIndex = ref(0)
//
const lineOptionsData = reactive<EChartsOption>(lineOptions) as EChartsOption
const getInvoiceCharts = async () => {
set(
lineOptionsData,
'xAxis.data',
supplierData.value.supplierdeliverMonthCount.map((v) => v.date)
)
set(lineOptionsData, 'legend.data', [t('home.invoice_trend_month')])
set(lineOptionsData, 'series', [
{
name: t('home.invoice_trend_month'),
smooth: true,
type: 'line',
itemStyle: {},
animationDuration: 2800,
animationEasing: 'quadraticOut',
data: supplierData.value.supplierdeliverMonthCount.map((v) => v.count)
}
])
lineIndex.value++
}
//TOP10
const pieOptionsData = reactive<EChartsOption>(pieOptions) as EChartsOption
const getPartTOPCharts = async () => {
const data = [
{ value: 335, name: 'analysis.directAccess' },
{ value: 310, name: 'analysis.mailMarketing' },
{ value: 234, name: 'analysis.allianceAdvertising' },
{ value: 135, name: 'analysis.videoAdvertising' },
{ value: 1548, name: 'analysis.searchEngines' }
]
console.log(supplierData.value.supplierdeliverItemMonthTop)
set(
pieOptionsData,
'legend.data',
supplierData.value.supplierdeliverItemMonthTop.map((v) => v.itemCode)
)
pieOptionsData!.series![0].data = supplierData.value.supplierdeliverItemMonthTop.map((v) => {
return {
name: v.itemCode,
value: v.qty
}
})
lineIndex.value++
}
//
const getSupplierData = async () => {
IndexApi.getSupplierData().then((res) => {
supplierData.value = res
getInvoiceCharts()
getPartTOPCharts()
})
}
//
const notaicList = ref([]) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
userType: undefined,
userId: undefined,
templateCode: undefined,
templateType: undefined,
createTime: []
})
/** 查询列表 */
const getList = async () => {
try {
const data = await NotifyMessageApi.getNotifyMessagePage(queryParams)
notaicList.value = data.list
} finally {
}
}
const formatter = (type,dict) => {
let str = getStrDictOptions(dict).filter((item) => type == item.value)[0]?.label
return str
}
// 退
const currentPage_purchasereturn = ref(1)
const pageSize_purchasereturn = ref(10)
const total_purchasereturn= ref(100)
const purchasereturnRecordMonth = ref([])
const getPurchasereturnRecordMonth = ()=>{
IndexApi.getPurchasereturnRecordMonth({
pageNo: currentPage_purchasereturn.value,
pageSize: pageSize_purchasereturn.value
}).then((res) => {
console.log('getPurchasereturnRecordMonth',res)
purchasereturnRecordMonth.value = res.list
total_purchasereturn.value = res.total
})
}
//
const currentPage_purchaseclaim = ref(1)
const pageSize_purchaseclaim = ref(10)
const total_purchaseclaim= ref(100)
const purchaseclaimRecordMonth = ref([])
const getPurchaseclaimRecordMonth = ()=>{
IndexApi.getPurchaseclaimRecordMonth({
pageNo: currentPage_purchaseclaim.value,
pageSize: pageSize_purchaseclaim.value
}).then((res) => {
console.log('getPurchaseclaimRecordMonth',res)
purchaseclaimRecordMonth.value = res.list
total_purchaseclaim.value = res.total
})
}
onMounted( () => {
getSupplierData()
getList()
//
Promise.all([getPurchaseclaimRecordMonth(),getPurchasereturnRecordMonth()])
})
</script>
<style scoped lang="scss">
.title {
padding-bottom: 10px;
border-bottom: 1px solid #dedede;
position: relative;
padding-left: 10px;
&::after {
content: '';
position: absolute;
width: 4px;
height: 16px;
background: #3c7adf;
left: 0px;
top: 3px;
border-radius: 8px;
}
}
.data {
display: flex;
align-items: center;
justify-content: space-between;
.data-item {
width: calc(100% / 3);
padding: 10px 0px;
background: white;
.small-title {
padding: 0px 14px 10px;
}
.small-data {
display: flex;
align-content: center;
justify-content: space-between;
padding: 0px 14px;
.small-data-item {
width: 50%;
height: 70px;
display: flex;
align-items: center;
border-radius: 6px;
color: white;
padding: 0px 20px;
.small-data-item-txt {
flex: 1;
div {
&:nth-child(1) {
font-size: 20px;
span {
font-size: 12px;
padding-left: 6px;
}
}
&:nth-child(2) {
font-size: 12px;
}
}
}
.img {
width: 30px;
opacity: 0.5;
}
}
.small-data-item1 {
background: linear-gradient(to left, #fd817d, #fcad80);
}
.small-data-item2 {
background: linear-gradient(to left, #46c6fa, #336bfe);
}
.small-data-item3 {
background: linear-gradient(to left, #96a6cc, #595f82);
}
.small-data-item4 {
background: linear-gradient(to left, #08dcd5, #46e2bb);
}
.small-data-item5 {
background: linear-gradient(to left, #f4c46b, #ffb313);
}
.small-data-item6 {
background: linear-gradient(to left, #6eccf8, #02acfd);
}
}
}
}
.two-row {
display: flex;
align-content: center;
justify-content: space-between;
.data1 {
background: white;
padding: 14px;
}
}
</style>

4
src/views/home/index.vue

@ -5,10 +5,10 @@
<product v-hasRole="['super_admin']"/> <product v-hasRole="['super_admin']"/>
<produce v-hasRole="['super_admin']"/> --> <produce v-hasRole="['super_admin']"/> -->
<supplierIndex /> <supplierIndex />
<material/> <!-- <material/> -->
<!-- material 中四个table重复了先去掉了 --> <!-- material 中四个table重复了先去掉了 -->
<!-- <product/> --> <!-- <product/> -->
<produce/> <!-- <produce/> -->
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>

295
src/views/wms/basicDataManage/strategySetting/strategy/downShelfStrategy/AddForm.vue

@ -9,13 +9,14 @@
label-width="120px" label-width="120px"
label-position="left" label-position="left"
> >
<!-- 规则 --> <!-- 规则 -->
<div class="item"> <div class="item">
<div class="title">规则</div> <div class="title">规则</div>
<el-row gutter="10"> <el-row gutter="10">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="代码" prop="strategyCode"> <el-form-item label="代码" prop="strategyCode">
<el-input <el-input key="strategyCode"
v-model="formData.strategyCode" v-model="formData.strategyCode"
placeholder="请输入代码" placeholder="请输入代码"
clearable clearable
@ -25,22 +26,22 @@
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" clearable /> <el-input key="name" v-model="formData.name" placeholder="请输入名称" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="描述" prop="description"> <el-form-item label="描述" prop="description">
<el-input v-model="formData.description" placeholder="请输入描述" clearable /> <el-input key="description" v-model="formData.description" placeholder="请输入描述" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="优先级" prop="priority"> <el-form-item label="优先级" prop="priority">
<el-input-number v-model="formData.priority" :min="0" /> <el-input-number key="priority" v-model="formData.priority" :min="0" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-switch v-model="formData.status" /> <el-switch key="status" v-model="formData.status" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -48,13 +49,13 @@
<!-- 规则条件 --> <!-- 规则条件 -->
<div class="item mt-20px"> <div key="规则条件" class="item mt-20px">
<div class="title">规则条件</div> <div key="规则条件title" class="title">规则条件</div>
<el-row gutter="10"> <el-row key="规则条件row" :gutter="10">
<el-col :span="24" v-for="(item, index) in formData.condition" :key="index"> <el-col key="供应商和客户col" :span="24" v-for="(item, index) in formData.condition" :key="index">
<!-- 选择供应商和客户 --> <!-- 选择供应商和客户 -->
<el-form-item label="" label-width="0" class="err-240" v-if="index == 0"> <el-form-item key="供应商和客户formItem" label="" label-width="0" class="err-240" v-if="index == 0">
<el-select <el-select key="供应商和客户"
v-model="item.ParamCode" v-model="item.ParamCode"
placeholder="" placeholder=""
style="width: 110px; margin-right: 10px" style="width: 110px; margin-right: 10px"
@ -64,10 +65,10 @@
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
v-for="(cur, index) in options.typeOptions" v-for="(cur, index) in options.typeOptions"
:key="index" :key="'供应商和客户'+cur.value"
/> />
</el-select> </el-select>
<el-select <el-select key="供应商和客户Operator"
v-model="item.Operator" v-model="item.Operator"
placeholder="请选择范围" placeholder="请选择范围"
style="width: 110px; margin-right: 10px" style="width: 110px; margin-right: 10px"
@ -76,28 +77,30 @@
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
v-for="cur in options.rangeOptions1" v-for="cur in options.rangeOptions1"
:key="cur.value" :key="'供应商和客户Operator'+cur.value"
/> />
</el-select> </el-select>
<el-select <el-select key="供应商和客户Value"
v-model="item.Value" v-model="item.Value"
:placeholder="`请选择${item.ParamCode == 'SupplierCode' ? '供应商' : '客户'}`" :placeholder="`请选择${item.ParamCode == 'SupplierCode' ? '供应商' : '客户'}`"
style="flex: 1" style="flex: 1"
clearable clearable
multiple multiple
collapse-tags collapse-tags
filterable
:filter-method="filterMethod"
> >
<el-option <el-option
v-for="cur in options.supplierList" v-for="cur in options.supplierList"
:key="cur.code" :key="'供应商和客户Value'+cur.code"
:label="cur.name" :label="cur.name"
:value="cur.code" :value="cur.code"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 选择物料类型 --> <!-- 选择物料类型 -->
<el-form-item label="" label-width="0" class="err-240" v-if="index == 1"> <el-form-item key="物料类型formItem" label="" label-width="0" class="err-240" v-if="index == 1">
<el-select <el-select key="物料类型"
v-model="item.ParamCode" v-model="item.ParamCode"
placeholder="" placeholder=""
@change="changeItemsType" @change="changeItemsType"
@ -107,10 +110,10 @@
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
v-for="item in options.itemTypeOptions" v-for="item in options.itemTypeOptions"
:key="item.value" :key="'物料类型'+item.value"
/> />
</el-select> </el-select>
<el-select <el-select key="物料类型Operator"
v-model="item.Operator" v-model="item.Operator"
placeholder="请选择范围" placeholder="请选择范围"
style="width: 110px; margin-right: 10px" style="width: 110px; margin-right: 10px"
@ -119,10 +122,10 @@
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
v-for="cur in options.rangeOptions1" v-for="cur in options.rangeOptions1"
:key="cur.value" :key="'物料类型Operator'+cur.value"
/> />
</el-select> </el-select>
<el-select <el-select key="物料类型Value"
v-model="item.Value" v-model="item.Value"
placeholder="请选择物料类型" placeholder="请选择物料类型"
style="flex: 1" style="flex: 1"
@ -133,12 +136,12 @@
> >
<el-option <el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ITEM_TYPE)" v-for="cur in getStrDictOptions(DICT_TYPE.ITEM_TYPE)"
:key="cur.value" :key="'物料类型Value'+cur.value"
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
/> />
</el-select> </el-select>
<el-select <el-select key="ABC类"
v-model="item.Value" v-model="item.Value"
placeholder="请选择ABC类" placeholder="请选择ABC类"
style="flex: 1" style="flex: 1"
@ -149,26 +152,26 @@
> >
<el-option <el-option
v-for="cur in getStrDictOptions(DICT_TYPE.ABC_CLASS)" v-for="cur in getStrDictOptions(DICT_TYPE.ABC_CLASS)"
:key="cur.value" :key="'ABC类'+cur.value"
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
/> />
</el-select> </el-select>
<el-input <el-input key="物料分组"
v-model="item.Value" v-model="item.Value"
placeholder="请输入物料分组,多个物料分组以逗号分隔" placeholder="请输入物料分组,多个物料分组以逗号分隔"
clearable clearable
style="flex: 1" style="flex: 1"
v-else-if="item.ParamCode == 'ItemGroup'" v-else-if="item.ParamCode == 'ItemGroup'"
/> />
<el-input <el-input key="项目"
v-model="item.Value" v-model="item.Value"
placeholder="请输入项目,多个项目以逗号分隔" placeholder="请输入项目,多个项目以逗号分隔"
clearable clearable
style="flex: 1" style="flex: 1"
v-else-if="item.ParamCode == 'Project'" v-else-if="item.ParamCode == 'Project'"
/> />
<el-input <el-input key="物料"
v-model="item.Value" v-model="item.Value"
placeholder="请输入物料,多个物料以逗号分隔" placeholder="请输入物料,多个物料以逗号分隔"
clearable clearable
@ -177,8 +180,8 @@
/> />
</el-form-item> </el-form-item>
<!-- 选择重量体积还是面积 --> <!-- 选择重量体积还是面积 -->
<el-form-item label="" label-width="0" class="err-240" v-if="index == 2"> <el-form-item key="重量体积或面积formItem" label="" label-width="0" class="err-240" v-if="index == 2">
<el-select <el-select key="重量体积或面积"
v-model="item.ParamCode" v-model="item.ParamCode"
placeholder="" placeholder=""
@change="changeCalculation" @change="changeCalculation"
@ -188,10 +191,10 @@
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
v-for="cur in options.calculationTypeOptions" v-for="cur in options.calculationTypeOptions"
:key="cur.value" :key="'重量体积或面积'+cur.value"
/> />
</el-select> </el-select>
<el-select <el-select key="重量体积或面积Operator"
v-model="item.Operator" v-model="item.Operator"
placeholder="请选择范围" placeholder="请选择范围"
style="width: 110px; margin-right: 10px" style="width: 110px; margin-right: 10px"
@ -200,10 +203,10 @@
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
v-for="cur in options.rangeOptions2" v-for="cur in options.rangeOptions2"
:key="cur.value" :key="'重量体积或面积Operator'+cur.value"
/> />
</el-select> </el-select>
<el-input <el-input key="重量体积或面积Value"
v-model="item.Value" v-model="item.Value"
:placeholder="`请输入${ :placeholder="`请输入${
item.ParamCode == 'Weight' ? '重量' : item.ParamCode == 'Area' ? '面积' : '体积' item.ParamCode == 'Weight' ? '重量' : item.ParamCode == 'Area' ? '面积' : '体积'
@ -213,8 +216,8 @@
/> />
</el-form-item> </el-form-item>
<!-- 库存状态 --> <!-- 库存状态 -->
<el-form-item label="库存状态" class="err-120" v-if="index == 3"> <el-form-item key="库存状态formItem" label="库存状态" class="err-120" v-if="index == 3">
<el-select <el-select key="库存状态Operator"
v-model="item.Operator" v-model="item.Operator"
placeholder="请选择范围" placeholder="请选择范围"
style="width: 110px; margin-right: 10px" style="width: 110px; margin-right: 10px"
@ -223,10 +226,10 @@
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
v-for="cur in options.rangeOptions1" v-for="cur in options.rangeOptions1"
:key="cur.value" :key="'库存状态Operator'+cur.value"
/> />
</el-select> </el-select>
<el-select <el-select key="库存状态Value"
v-model="item.Value" v-model="item.Value"
placeholder="请选择库存状态" placeholder="请选择库存状态"
style="flex: 1" style="flex: 1"
@ -236,15 +239,15 @@
> >
<el-option <el-option
v-for="cur in getStrDictOptions(DICT_TYPE.INVENTORY_STATUS)" v-for="cur in getStrDictOptions(DICT_TYPE.INVENTORY_STATUS)"
:key="cur.value" :key="'库存状态Value'+cur.value"
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 存储类型 --> <!-- 存储类型 -->
<el-form-item label="存储类型" class="err-120" v-if="index == 4"> <el-form-item key="存储类型formItem" label="存储类型" class="err-120" v-if="index == 4">
<el-select <el-select key="存储类型Operator"
v-model="item.Operator" v-model="item.Operator"
placeholder="请选择范围" placeholder="请选择范围"
style="width: 110px; margin-right: 10px" style="width: 110px; margin-right: 10px"
@ -253,10 +256,10 @@
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
v-for="cur in options.rangeOptions1" v-for="cur in options.rangeOptions1"
:key="cur.value" :key="'存储类型Operator'+cur.value"
/> />
</el-select> </el-select>
<el-select <el-select key="存储类型Value"
v-model="item.Value" v-model="item.Value"
placeholder="请选择存储类型" placeholder="请选择存储类型"
style="flex: 1" style="flex: 1"
@ -266,15 +269,15 @@
> >
<el-option <el-option
v-for="cur in getStrDictOptions(DICT_TYPE.STORAGE_TYPE)" v-for="cur in getStrDictOptions(DICT_TYPE.STORAGE_TYPE)"
:key="cur.value" :key="'存储类型Value'+cur.value"
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 库存事务 --> <!-- 库存事务 -->
<el-form-item label="库存事务" class="err-120" v-if="index == 5"> <el-form-item key="库存事务formItem" label="库存事务" class="err-120" v-if="index == 5">
<el-select <el-select key="库存事务Operator"
v-model="item.Operator" v-model="item.Operator"
placeholder="请选择范围" placeholder="请选择范围"
style="width: 110px; margin-right: 10px" style="width: 110px; margin-right: 10px"
@ -283,10 +286,10 @@
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
v-for="cur in options.rangeOptions1" v-for="cur in options.rangeOptions1"
:key="cur.value" :key="'库存事务Operator'+cur.value"
/> />
</el-select> </el-select>
<el-input <el-input key="库存事务Value"
v-model="item.Value" v-model="item.Value"
placeholder="请输入库存事务,多个库存事务以逗号分隔" placeholder="请输入库存事务,多个库存事务以逗号分隔"
clearable clearable
@ -298,12 +301,12 @@
</div> </div>
<!-- 规则配置 --> <!-- 规则配置 -->
<div class="item mt-20px"> <div key="规则配置" class="item mt-20px">
<div class="title">规则配置</div> <div key="规则配置title" class="title">规则配置</div>
<el-row gutter="10"> <el-row key="规则配置row" :gutter="10">
<el-col :span="24"> <el-col key="仓库col" :span="24">
<el-form-item label="" label-width="0" prop="warehouse" class="err-120"> <el-form-item key="仓库formItem" label="" label-width="0" prop="warehouse" class="err-120">
<el-select <el-select key="仓库"
v-model="warehouseType" v-model="warehouseType"
placeholder="" placeholder=""
style="width: 110px; margin-right: 10px" style="width: 110px; margin-right: 10px"
@ -313,19 +316,22 @@
:label="cur.label" :label="cur.label"
:value="cur.value" :value="cur.value"
v-for="(cur, index) in options.warehouseTypeOptions" v-for="(cur, index) in options.warehouseTypeOptions"
:key="index" :key="'仓库'+cur.value"
/> />
</el-select> </el-select>
<el-select <el-select
v-model="formData.configuration.WarehouseCode" v-model="formData.configuration.WarehouseCode"
v-if="warehouseType == 'WarehouseCode'" v-if="warehouseType == 'WarehouseCode'"
placeholder="请选择仓库" placeholder="请选择仓库"
key="请选择仓库"
clearable clearable
style="flex: 1" style="flex: 1"
filterable
:filter-method="filterMethodWarehouseList"
> >
<el-option <el-option
v-for="cur in options.warehouseList" v-for="cur in options.warehouseList"
:key="cur.code" :key="'请选择仓库WarehouseCode'+index+cur.code"
:label="cur.code" :label="cur.code"
:value="cur.code" :value="cur.code"
/> />
@ -334,12 +340,15 @@
v-model="formData.configuration.AreaCode" v-model="formData.configuration.AreaCode"
v-if="warehouseType == 'AreaCode'" v-if="warehouseType == 'AreaCode'"
placeholder="请选择库区" placeholder="请选择库区"
key="请选择库区"
clearable clearable
style="flex: 1" style="flex: 1"
filterable
:filter-method="filterMethodWarehouseList"
> >
<el-option <el-option
v-for="cur in options.warehouseList" v-for="cur in options.warehouseList"
:key="cur.code" :key="'请选择库区AreaCode'+cur.code"
:label="cur.code" :label="cur.code"
:value="cur.code" :value="cur.code"
/> />
@ -348,12 +357,15 @@
v-model="formData.configuration.LocationGroupCode" v-model="formData.configuration.LocationGroupCode"
v-if="warehouseType == 'LocationGroupCode'" v-if="warehouseType == 'LocationGroupCode'"
placeholder="请选择库位组" placeholder="请选择库位组"
key="请选择库位组"
clearable clearable
style="flex: 1" style="flex: 1"
filterable
:filter-method="filterMethodWarehouseList"
> >
<el-option <el-option
v-for="cur in options.warehouseList" v-for="cur in options.warehouseList"
:key="cur.code" :key="'请选择库位组LocationGroupCode'+cur.code"
:label="cur.code" :label="cur.code"
:value="cur.code" :value="cur.code"
/> />
@ -363,12 +375,15 @@
v-model="formData.configuration.LocationCode" v-model="formData.configuration.LocationCode"
v-if="warehouseType == 'LocationCode'" v-if="warehouseType == 'LocationCode'"
placeholder="请选择库位" placeholder="请选择库位"
key="请选择库位"
clearable clearable
style="flex: 1" style="flex: 1"
filterable
:filter-method="filterMethodWarehouseList"
> >
<el-option <el-option
v-for="cur in options.warehouseList" v-for="cur in options.warehouseList"
:key="cur.code" :key="'请选择库位LocationCode'+cur.code"
:label="cur.code" :label="cur.code"
:value="cur.code" :value="cur.code"
/> />
@ -376,14 +391,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 数量排序方向 --> <!-- 数量排序方向 -->
<el-col :span="24"> <el-col key="数量排序方向col" :span="24">
<el-form-item label="数量排序方向" class="flex-top"> <el-form-item key="数量排序方向formItem" label="数量排序方向" class="flex-top">
<div class="checkbox"> <div class="checkbox">
<el-radio-group v-model="formData.configuration.QtyOrderDirection"> <el-radio-group key="数量排序方向" v-model="formData.configuration.QtyOrderDirection">
<el-radio <el-radio
:label="cur.value" :label="cur.value"
v-for="cur in options.sortOptions" v-for="cur in options.sortOptions"
:key="cur.value" :key="'数量排序方向'+cur.value"
>{{ cur.label }}</el-radio >{{ cur.label }}</el-radio
> >
</el-radio-group> </el-radio-group>
@ -391,14 +406,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 巷道排序方向 --> <!-- 巷道排序方向 -->
<el-col :span="24"> <el-col key="巷道排序方向col" :span="24">
<el-form-item label="巷道排序方向" class="flex-top"> <el-form-item key="巷道排序方向formItem" label="巷道排序方向" class="flex-top">
<div class="checkbox"> <div class="checkbox">
<el-radio-group v-model="formData.configuration.AisleOrder"> <el-radio-group key="巷道排序方向" v-model="formData.configuration.AisleOrder">
<el-radio <el-radio
:label="cur.value" :label="cur.value"
v-for="cur in options.sortOptions" v-for="cur in options.sortOptions"
:key="cur.value" :key="'巷道排序方向'+cur.value"
>{{ cur.label }}</el-radio >{{ cur.label }}</el-radio
> >
</el-radio-group> </el-radio-group>
@ -406,14 +421,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 货架排序方向 --> <!-- 货架排序方向 -->
<el-col :span="24"> <el-col key="货架排序方向col" :span="24">
<el-form-item label="货架排序方向" class="flex-top"> <el-form-item key="货架排序方向formItem" label="货架排序方向" class="flex-top">
<div class="checkbox"> <div class="checkbox">
<el-radio-group v-model="formData.configuration.ShelfOrder"> <el-radio-group key="货架排序方向" v-model="formData.configuration.ShelfOrder">
<el-radio <el-radio
:label="cur.value" :label="cur.value"
v-for="cur in options.sortOptions" v-for="cur in options.sortOptions"
:key="cur.value" :key="'货架排序方向'+cur.value"
>{{ cur.label }}</el-radio >{{ cur.label }}</el-radio
> >
</el-radio-group> </el-radio-group>
@ -421,14 +436,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 行排序方向 --> <!-- 行排序方向 -->
<el-col :span="24"> <el-col key="行排序方向col" :span="24">
<el-form-item label="行排序方向" class="flex-top"> <el-form-item key="行排序方向formItem" label="行排序方向" class="flex-top">
<div class="checkbox"> <div class="checkbox">
<el-radio-group v-model="formData.configuration.RowOrder"> <el-radio-group key="行排序方向" v-model="formData.configuration.RowOrder">
<el-radio <el-radio
:label="cur.value" :label="cur.value"
v-for="cur in options.sortOptions" v-for="cur in options.sortOptions"
:key="cur.value" :key="'行排序方向'+cur.value"
>{{ cur.label }}</el-radio >{{ cur.label }}</el-radio
> >
</el-radio-group> </el-radio-group>
@ -436,14 +451,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 列排序方向 --> <!-- 列排序方向 -->
<el-col :span="24"> <el-col key="列排序方向col" :span="24">
<el-form-item label="列排序方向" class="flex-top"> <el-form-item key="列排序方向formItem" label="列排序方向" class="flex-top">
<div class="checkbox"> <div class="checkbox">
<el-radio-group v-model="formData.configuration.ColumOrder"> <el-radio-group key="列排序方向" v-model="formData.configuration.ColumOrder">
<el-radio <el-radio
:label="cur.value" :label="cur.value"
v-for="cur in options.sortOptions" v-for="cur in options.sortOptions"
:key="cur.value" :key="'列排序方向'+cur.value"
>{{ cur.label }}</el-radio >{{ cur.label }}</el-radio
> >
</el-radio-group> </el-radio-group>
@ -452,8 +467,8 @@
</el-col> </el-col>
<!-- 优先整包 --> <!-- 优先整包 -->
<el-col :span="24"> <el-col :span="24">
<el-form-item label="优先整包"> <el-form-item key="优先整包formItem" label="优先整包">
<el-switch <el-switch key="优先整包"
v-model="formData.configuration.EntirePackageFirst" v-model="formData.configuration.EntirePackageFirst"
active-value="TRUE" active-value="TRUE"
inactive-value="FALSE" inactive-value="FALSE"
@ -461,14 +476,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 发料包装类型 --> <!-- 发料包装类型 -->
<el-col :span="24"> <el-col key="发料包装类型col" :span="24">
<el-form-item label="发料包装类型"> <el-form-item key="发料包装类型formItem" label="发料包装类型">
<div class="checkbox"> <div class="checkbox">
<el-radio-group v-model="formData.configuration.IssueStorageType"> <el-radio-group key="发料包装类型" v-model="formData.configuration.IssueStorageType">
<el-radio <el-radio
:label="cur.value" :label="cur.value"
v-for="cur in getStrDictOptions(DICT_TYPE.STORAGE_TYPE)" v-for="cur in getStrDictOptions(DICT_TYPE.STORAGE_TYPE)"
:key="cur.value" :key="'发料包装类型'+cur.value"
>{{ cur.label }}</el-radio >{{ cur.label }}</el-radio
> >
</el-radio-group> </el-radio-group>
@ -476,9 +491,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 多次发料 --> <!-- 多次发料 -->
<el-col :span="7"> <el-col key="多次发料col" :span="7">
<el-form-item label="多次发料"> <el-form-item key="多次发料formItem" label="多次发料">
<el-switch <el-switch key="多次发料"
v-model="formData.configuration.IsSplit" v-model="formData.configuration.IsSplit"
active-value="TRUE" active-value="TRUE"
inactive-value="FALSE" inactive-value="FALSE"
@ -486,9 +501,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 拆分次数 --> <!-- 拆分次数 -->
<el-col :span="8"> <el-col key="拆分次数col" :span="8">
<el-form-item label="拆分次数" label-width="70px"> <el-form-item key="拆分次数formItem" label="拆分次数" label-width="70px">
<el-input-number <el-input-number key="拆分次数"
v-model="formData.configuration.EachTimeQty" v-model="formData.configuration.EachTimeQty"
:min="0" :min="0"
controls-position="right" controls-position="right"
@ -496,9 +511,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 时间间隔 --> <!-- 时间间隔 -->
<el-col :span="9"> <el-col key="时间间隔col" :span="9">
<el-form-item label="时间间隔" label-width="70px"> <el-form-item key="时间间隔formItem" label="时间间隔" label-width="70px">
<el-input-number <el-input-number key="时间间隔"
v-model="formData.configuration.TimeInterval" v-model="formData.configuration.TimeInterval"
:min="0" :min="0"
style="flex: 1; margin-right: 10px" style="flex: 1; margin-right: 10px"
@ -507,9 +522,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 使用整理库位--> <!-- 使用整理库位-->
<el-col :span="24"> <el-col key="使用整理库位col" :span="24">
<el-form-item label="使用整理库位"> <el-form-item key="使用整理库位formItem" label="使用整理库位">
<el-switch <el-switch key="使用整理库位"
v-model="formData.configuration.UseOrganizeLocation" v-model="formData.configuration.UseOrganizeLocation"
active-value="TRUE" active-value="TRUE"
inactive-value="FALSE" inactive-value="FALSE"
@ -517,9 +532,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 使用在途库位 --> <!-- 使用在途库位 -->
<el-col :span="24"> <el-col key="使用在途库位col" :span="24">
<el-form-item label="使用在途库位"> <el-form-item key="使用在途库位formItem" label="使用在途库位">
<el-switch <el-switch key="使用在途库位"
v-model="formData.configuration.UseTransportLocation" v-model="formData.configuration.UseTransportLocation"
active-value="TRUE" active-value="TRUE"
inactive-value="FALSE" inactive-value="FALSE"
@ -527,9 +542,9 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 生成接收任务 --> <!-- 生成接收任务 -->
<el-col :span="24"> <el-col key="生成接收任务col" :span="24">
<el-form-item label="生成接收任务"> <el-form-item key="生成接收任务formItem" label="生成接收任务">
<el-switch <el-switch key="生成接收任务"
v-model="formData.configuration.CreateReceiptJob" v-model="formData.configuration.CreateReceiptJob"
active-value="TRUE" active-value="TRUE"
inactive-value="FALSE" inactive-value="FALSE"
@ -672,6 +687,7 @@ const options = reactive({
], ],
// //
supplierList: [], supplierList: [],
originSupplierList: [],
// //
itemTypeOptions: [ itemTypeOptions: [
{ value: 'ItemType', label: '物料类型' }, { value: 'ItemType', label: '物料类型' },
@ -694,6 +710,7 @@ const options = reactive({
{ value: 'LocationCode', label: '库位' } { value: 'LocationCode', label: '库位' }
], ],
warehouseList: [], warehouseList: [],
originWarehouseList: [],
// //
sortOptions: [ sortOptions: [
{ value: 'ASC', label: '从小到大' }, { value: 'ASC', label: '从小到大' },
@ -719,11 +736,26 @@ const buttonBaseClick = (val, item) => {
// //
const getFormSupplierList = async () => { const getFormSupplierList = async () => {
options.supplierList = await getSupplierList() options.originSupplierList = await getSupplierList(null)
options.supplierList = [...options.originSupplierList]
} }
// //
const getFormCustomerList = async () => { const getFormCustomerList = async () => {
options.supplierList = await getCustomerList() options.originSupplierList = await getCustomerList(null)
options.supplierList = [...options.originSupplierList]
}
const filterMethod = (query: string) => {
if (query) {
options.supplierList = options.originSupplierList.filter((item) => {
if(!item.name||item.name==''){
return item.code.includes(query)
}else{
return item.name.includes(query)
}
})
} else {
options.supplierList = [...options.originSupplierList]
}
} }
// //
const changeSupplierCustomer = (e) => { const changeSupplierCustomer = (e) => {
@ -745,19 +777,64 @@ const changeCalculation = () => {
} }
// //
const getFormWarehouseList = async () => { const getFormWarehouseList = async () => {
options.warehouseList = await getWarehouseList() const loading = ElLoading.service({
lock: true,
text: t('ts.加载中'),
background: 'rgba(0, 0, 0, 0.7)',
})
options.originWarehouseList = await getWarehouseList()
options.warehouseList = [...options.originWarehouseList]
nextTick(()=>{
loading.close()
})
} }
// //
const getFormAreaList = async () => { const getFormAreaList = async () => {
options.warehouseList = await getAreaList() const loading = ElLoading.service({
lock: true,
text: t('ts.加载中'),
background: 'rgba(0, 0, 0, 0.7)',
})
options.originWarehouseList = await getAreaList()
options.warehouseList = [...options.originWarehouseList]
nextTick(()=>{
loading.close()
})
} }
// //
const getFormLocationgrouList = async () => { const getFormLocationgrouList = async () => {
options.warehouseList = await getLocationgroupList() const loading = ElLoading.service({
lock: true,
text: t('ts.加载中'),
background: 'rgba(0, 0, 0, 0.7)',
})
options.originWarehouseList = await getLocationgroupList()
options.warehouseList = [...options.originWarehouseList]
nextTick(()=>{
loading.close()
})
} }
// //
const getFormLocationList = async () => { const getFormLocationList = async () => {
options.warehouseList = await getLocationList() const loading = ElLoading.service({
lock: true,
text: t('ts.加载中'),
background: 'rgba(0, 0, 0, 0.7)',
})
options.originWarehouseList = await getLocationList()
options.warehouseList = [...options.originWarehouseList]
nextTick(()=>{
loading.close()
})
}
const filterMethodWarehouseList = (query: string) => {
if (query) {
options.warehouseList = options.originWarehouseList.filter((item) => {
return item.code.includes(query)
})
} else {
options.warehouseList = options.originWarehouseList
}
} }
getFormWarehouseList() getFormWarehouseList()
// /// // ///

53
src/views/wms/inventoryjobManage/inventoryinitial/inventoryinitRequestMain/inventoryinitRequestMain.data.ts

@ -893,8 +893,53 @@ export const InventoryinitRequestDetail = useCrudSchemas(reactive<CrudSchema[]>(
field: 'balancePackUnit', field: 'balancePackUnit',
sort: 'custom', sort: 'custom',
table: { table: {
width: 150 width: 150,
componentProps: {
disabled: true,
isSearchList: true,
searchListPlaceholder: '请选择包装',
searchField: 'packUnit',
searchTitle: '物品包装信息',
searchAllSchemas: Itempackaging.allSchemas,
searchPage: ItemPackageApi.getItempackagingPage,
searchCondition: [
{
key: 'itemCode',
value: 'itemCode',
message: '请选择订单行',
isMainValue: true
}, },
{
key: 'available',
value: 'TRUE',
isMainValue: false
}
]
}
},
tableForm: {
disabled: true,
isInpuFocusShow: true,
searchListPlaceholder: '请选择包装',
searchField: 'itemCode',
searchTitle: '物品包装信息',
searchAllSchemas: Itempackaging.allSchemas,
searchPage: ItemPackageApi.getItempackagingPage,
searchCondition: [
{
key: 'itemCode',
value: 'itemCode',
message: '请选择订单行',
isTableRowValue: true,
isMainValue:false
},
{
key: 'available',
value: 'TRUE',
isMainValue: false
}]
}
}, },
{ {
label: '备注', label: '备注',
@ -1018,4 +1063,10 @@ export const InventoryinitRequestDetailRules = reactive({
remark: [ remark: [
{ max: 50, message: '不得超过50个字符', trigger: 'blur' } { max: 50, message: '不得超过50个字符', trigger: 'blur' }
], ],
packUnit:[
{ required: true, message: '请选择包装规格', trigger: 'change' }
],
balancePackUnit:[
{ required: true, message: '请选择入库存包装规格', trigger: 'change' }
],
}) })

2
src/views/wms/issueManage/preparetoissueplan/preparetoissueMain/preparetoissueMain.data.ts

@ -240,7 +240,7 @@ export const PreparetoissueMain = useCrudSchemas(reactive<CrudSchema[]>([
value: 'TRUE', value: 'TRUE',
isMainValue: false isMainValue: false
}, },
{ {//备料计划>新增 生产计划单号选择:page 和 senior 查询条件不一致 senior 生产计划信息 searchCondition 添加查询条件 planType = predict
key: 'planType', key: 'planType',
value: 'predict', value: 'predict',
isMainValue: false isMainValue: false

4
src/views/wms/issueManage/productionreceipt/productionreceiptRecordMain/productionreceiptRecordMain.data.ts

@ -402,7 +402,7 @@ export const ProductionreceiptRecordMainRules = reactive({
*/ */
export const ProductionreceiptRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([ export const ProductionreceiptRecordDetail = useCrudSchemas(reactive<CrudSchema[]>([
{ {
label: '包装号', label: '包装号',
field: 'fromPackingNumber', field: 'fromPackingNumber',
sort: 'custom', sort: 'custom',
table: { table: {
@ -418,7 +418,7 @@ export const ProductionreceiptRecordDetail = useCrudSchemas(reactive<CrudSchema[
table: { table: {
width: 150 width: 150
}, },
isSearch: true, isSearch: false,
hiddenInMain: true hiddenInMain: true
}, },
{ {

6
src/views/wms/moveManage/inventorychange/inventorychangeRequestMain/inventorychangeRequestMain.data.ts

@ -19,15 +19,19 @@ const queryParams = {
const businessTypeQueryParams = { const businessTypeQueryParams = {
pageSize:10, pageSize:10,
pageNo:1, pageNo:1,
code:'Change' code:'Change',
name:'库存修改'
} }
const data = await getRequestsettingApi.getRequestsettingPage(queryParams) const data = await getRequestsettingApi.getRequestsettingPage(queryParams)
const requestsettingData =data?.list[0]||{} const requestsettingData =data?.list[0]||{}
const businessTypeValue = await getBusinessTypeApi.getBusinesstypePage(businessTypeQueryParams) const businessTypeValue = await getBusinessTypeApi.getBusinesstypePage(businessTypeQueryParams)
const businessTypeData =businessTypeValue?.list[0]||{} const businessTypeData =businessTypeValue?.list[0]||{}
console.log(businessTypeData.code);
// 获取当前操作人的部门 // 获取当前操作人的部门
import { useUserStore } from '@/store/modules/user' import { useUserStore } from '@/store/modules/user'
import { TableColumn } from '@/types/table' import { TableColumn } from '@/types/table'
import { log } from 'console'
const userStore = useUserStore() const userStore = useUserStore()
const userDept = userStore.userSelfInfo.dept const userDept = userStore.userSelfInfo.dept
// id 转str 否则form回显匹配不到 // id 转str 否则form回显匹配不到

50
src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue

@ -1,7 +1,7 @@
<template> <template>
<ContentWrap> <ContentWrap>
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<Search :schema="[...PurchaseMain.allSchemas.searchSchema,...PurchaseDetail.allSchemas.searchSchema]" @search="setSearchParams" @reset="setSearchParams" /> <Search :schema="[...PurchaseMain.allSchemas.searchSchema,...PurchaseDetail.allSchemas.searchSchema]" @search="searchList" @reset="searchList" />
</ContentWrap> </ContentWrap>
<!-- 列表头部 --> <!-- 列表头部 -->
@ -9,10 +9,12 @@
@updataTableColumns="updataTableColumns" @searchFormClick="searchFormClick" :allSchemas="PurchaseMain.allSchemas" :detailAllSchemas="PurchaseDetail.allSchemas" /> @updataTableColumns="updataTableColumns" @searchFormClick="searchFormClick" :allSchemas="PurchaseMain.allSchemas" :detailAllSchemas="PurchaseDetail.allSchemas" />
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>
<Table v-clientTable ref="elTableRef" :columns="tableColumns" :data="tableObject.tableList" :loading="tableObject.loading" :pagination="{ <Table v-clientTable ref="elTableRef"
:selection="true"
:columns="tableColumns" :data="tableObject.tableList" :loading="tableObject.loading" :pagination="{
total: tableObject.total total: tableObject.total
}" v-model:pageSize="tableObject.pageSize" v-model:currentPage="tableObject.currentPage" }" v-model:pageSize="tableObject.pageSize" v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort" > v-model:sort="tableObject.sort" @getSelectionRows="getSelectionRows">
<!-- <Table ref="elTableRef" :expand="true" :columns="tableColumns" :data="tableObject.tableList" :loading="tableObject.loading" :pagination="{ <!-- <Table ref="elTableRef" :expand="true" :columns="tableColumns" :data="tableObject.tableList" :loading="tableObject.loading" :pagination="{
total: tableObject.total total: tableObject.total
}" v-model:pageSize="tableObject.pageSize" v-model:currentPage="tableObject.currentPage" }" v-model:pageSize="tableObject.pageSize" v-model:currentPage="tableObject.currentPage"
@ -227,6 +229,7 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
defaultButtons.defaultAddBtn({ hasPermi: 'wms:purchase-main:create' }), // defaultButtons.defaultAddBtn({ hasPermi: 'wms:purchase-main:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'wms:purchase-main:import' }), // defaultButtons.defaultImportBtn({ hasPermi: 'wms:purchase-main:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'wms:purchase-main:export' }), // defaultButtons.defaultExportBtn({ hasPermi: 'wms:purchase-main:export' }), //
defaultButtons.mainListSelectionOrderPubBtn(null), //
defaultButtons.defaultFreshBtn(null), // defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), // defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), // defaultButtons.defaultSetBtn(null), //
@ -256,6 +259,8 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
} else { } else {
getList() getList()
} }
} else if (val=='mainOrderSelectionPub'){//
handleSelectionPublish()
} else if (val == 'filtrate') { // } else if (val == 'filtrate') { //
} else { // } else { //
console.log('其他按钮', item) console.log('其他按钮', item)
@ -403,7 +408,44 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
tableObject.loading = false tableObject.loading = false
} }
} }
const searchList = (model)=>{
selectionRows.value = []
setSearchParams(model)
}
const selectionRows = ref<any>([])
const getSelectionRows = (currentPage,currentPageSelectionRows) => {
console.log("getSelectionRows",currentPage,currentPageSelectionRows)
const currentRows = selectionRows.value.find(item=>item.currentPage==currentPage)
if(currentRows){
currentRows.selectionRows = currentPageSelectionRows
}else{
selectionRows.value.push({
currentPage,
selectionRows:currentPageSelectionRows
})
}
}
//
const handleSelectionPublish = async ()=>{
//
await message.confirm(t('ts.是否发布所选中数据?'))
tableObject.loading = true
let rows:any = []
selectionRows.value.map(item=>{
rows = [...rows,...item.selectionRows.map(item1=>item1.masterId)]
})
tableObject.loading = true
Promise.all( rows.map(item=>PurchaseMainApi.publishPurchaseMain(item))).then((res) => {
console.log('发布',res)
if(res.every(item=>item==true)){
message.success(t('ts.发布成功!'))
}
}).finally(()=>{
tableObject.loading = false
//
getList()
})
}
/** 发布按钮操作 */ /** 发布按钮操作 */
const handlePublish = async (id : number) => { const handlePublish = async (id : number) => {
try { try {

20
src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts

@ -110,6 +110,26 @@ export const PurchasePlanMain = useCrudSchemas(reactive<CrudSchema[]>([
} }
} }
}, },
//仅是主列表页面的筛选搜索条件
{
label: '送达日期',
field: 'deliveryDate',
sort: 'custom',
isDetail:false,
isTable: false,
isForm:false,
isTableForm:false,
isSearch:true,
formatter: dateFormatter,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD',
type: 'daterange',
defaultTime: [new Date('1 '), new Date('1 ')]
}
},
},
{ {
label: '送达日期', label: '送达日期',
field: 'deliveryDate', field: 'deliveryDate',

Loading…
Cancel
Save