Commit c2d5a0f4 by linjinhong

Merge remote-tracking branch 'origin/dev'

parents 706f4702 dcb5cae7
...@@ -32,6 +32,7 @@ declare module 'vue' { ...@@ -32,6 +32,7 @@ declare module 'vue' {
ElImage: typeof import('element-plus/es')['ElImage'] ElImage: typeof import('element-plus/es')['ElImage']
ElInput: typeof import('element-plus/es')['ElInput'] ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElLink: typeof import('element-plus/es')['ElLink']
ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption'] ElOption: typeof import('element-plus/es')['ElOption']
......
...@@ -35,6 +35,9 @@ ...@@ -35,6 +35,9 @@
</template> </template>
</el-menu> </el-menu>
<div v-if="userInfo" class="user-info"> <div v-if="userInfo" class="user-info">
<span class="user-avatar" style="color: #fff; font-size: 14px">
工厂: {{ userInfo.factoryCode }}
</span>
<span class="user-avatar"> <span class="user-avatar">
<el-icon><User /></el-icon> <el-icon><User /></el-icon>
</span> </span>
...@@ -530,4 +533,8 @@ onUnmounted(() => { ...@@ -530,4 +533,8 @@ onUnmounted(() => {
border: none !important; border: none !important;
} }
} }
.user-info {
display: flex;
align-items: center;
}
</style> </style>
...@@ -85,6 +85,8 @@ export interface ProductList { ...@@ -85,6 +85,8 @@ export interface ProductList {
templatePrice?: number templatePrice?: number
variantImage?: string variantImage?: string
craftPrice?: number craftPrice?: number
craftCode: string
platform: string
imageAry?: string imageAry?: string
designImages?: string designImages?: string
categoryId?: number categoryId?: number
......
...@@ -21,6 +21,7 @@ const styles = { ...@@ -21,6 +21,7 @@ const styles = {
display: 'flex', display: 'flex',
padding: '10px', padding: '10px',
justifyContent: 'flex-start', justifyContent: 'flex-start',
flexWrap: 'wrap',
backgroundColor: '#efefef', backgroundColor: '#efefef',
}, },
} as const } as const
......
...@@ -4,9 +4,13 @@ import SplitDiv from '@/components/splitDiv/splitDiv.vue' ...@@ -4,9 +4,13 @@ import SplitDiv from '@/components/splitDiv/splitDiv.vue'
import { import {
getLogisticsLog, getLogisticsLog,
IForm, IForm,
ILogisticsCompany, ILogisticsCompanyData, ILogisticsList, ILogisticsCompany,
ILogisticsCompanyData,
ILogisticsList,
logisticsCompany, logisticsCompany,
logisticsCompanyAdd, logisticsCompanyAllCodelist, logisticsCompanyDelete, logisticsCompanyAdd,
logisticsCompanyAllCodelist,
logisticsCompanyDelete,
logisticsCompanyUpdate, logisticsCompanyUpdate,
} from '@/api/logistics.ts' } from '@/api/logistics.ts'
import LogDialog from '@/views/logistics/components/LogDialog.tsx' import LogDialog from '@/views/logistics/components/LogDialog.tsx'
...@@ -51,25 +55,12 @@ const createData = ref({ ...@@ -51,25 +55,12 @@ const createData = ref({
}, },
}) })
const rules = { const rules = {
code: [ code: [{ required: true, message: '请选择物流公司编码', trigger: 'change' }],
{ required: true, message: '请选择物流公司编码', trigger: 'change' },
],
name: [
{ required: true, message: '请输入名称', trigger: 'blur' },
],
contact: [
{ required: true, message: '请输入联系人', trigger: 'blur' },
],
phone: [
{ required: true, message: '请输入电话/手机', trigger: 'blur' },
],
siteUrl: [
{ required: true, message: '请输入网址', trigger: 'blur' },
], contact: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
address: [ phone: [{ required: true, message: '请输入电话/手机', trigger: 'blur' }],
{ required: true, message: '请输入地址', trigger: 'blur' }, siteUrl: [{ required: true, message: '请输入网址', trigger: 'blur' }],
], address: [{ required: true, message: '请输入地址', trigger: 'blur' }],
} }
const leftData = ref<ILogisticsCompany[]>([]) const leftData = ref<ILogisticsCompany[]>([])
const pagination = ref<ILogisticsCompanyData>({ const pagination = ref<ILogisticsCompanyData>({
...@@ -127,7 +118,10 @@ const handleBatchDelete = async (row: ILogisticsCompany | null) => { ...@@ -127,7 +118,10 @@ const handleBatchDelete = async (row: ILogisticsCompany | null) => {
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning', type: 'warning',
}) })
const str = row && row.id ? row.id?.toString() : selections.value.map((el) => el.id).join(',') const str =
row && row.id
? row.id?.toString()
: selections.value.map((el) => el.id).join(',')
await logisticsCompanyDelete(str) await logisticsCompanyDelete(str)
ElMessage.success('删除成功') ElMessage.success('删除成功')
await getData() await getData()
...@@ -173,9 +167,10 @@ const updateWarehouse = (item: IForm) => { ...@@ -173,9 +167,10 @@ const updateWarehouse = (item: IForm) => {
} }
const codeChange = (v: string) => { const codeChange = (v: string) => {
const item = logisticsList.value.find(d => d.code === v) const item = logisticsList.value.find((d) => d.code === v)
if (item) { if (item) {
otherFields.value = Object.keys(item.apiData || {}) otherFields.value = Object.keys(item.apiData || {})
form.value.name = item.basicsName
} }
} }
...@@ -194,19 +189,27 @@ getLogisticsList() ...@@ -194,19 +189,27 @@ getLogisticsList()
<el-form inline :model="searchForm"> <el-form inline :model="searchForm">
<el-form-item label="名称"> <el-form-item label="名称">
<el-input <el-input
v-model="searchForm.name" style="width: 140px;" placeholder="请输入名称" v-model="searchForm.name"
clearable></el-input> style="width: 140px"
placeholder="请输入名称"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="编码"> <el-form-item label="编码">
<el-input <el-input
v-model="searchForm.code" style="width: 140px;" placeholder="请输入编码" v-model="searchForm.code"
clearable></el-input> style="width: 140px"
placeholder="请输入编码"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="getData">查询</el-button> <el-button type="primary" @click="getData">查询</el-button>
<el-button type="success" @click="createWarehouse">新增</el-button> <el-button type="success" @click="createWarehouse">新增</el-button>
<el-button type="danger" @click="handleBatchDelete(null)">删除</el-button> <el-button type="danger" @click="handleBatchDelete(null)"
>删除</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-card> </el-card>
...@@ -217,53 +220,76 @@ getLogisticsList() ...@@ -217,53 +220,76 @@ getLogisticsList()
<div class="table-flex"> <div class="table-flex">
<div class="left-table"> <div class="left-table">
<div class="table-container"> <div class="table-container">
<el-table height="100%" :data="leftData" border @selection-change="handleSelectionChange"> <el-table
height="100%"
:data="leftData"
border
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" /> <el-table-column type="selection" />
<el-table-column type="index" label="序号" width="60" /> <el-table-column type="index" label="序号" width="60" />
<el-table-column <el-table-column
label="名称" label="名称"
prop="name" prop="name"
align="center" align="center"
show-overflow-tooltip> show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="编码" label="编码"
prop="code" prop="code"
align="center" align="center"
show-overflow-tooltip> show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="联系人" label="联系人"
prop="contact" prop="contact"
align="center" align="center"
show-overflow-tooltip> show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="电话" label="电话"
prop="phone" prop="phone"
align="center" align="center"
show-overflow-tooltip> show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="网址" label="网址"
prop="siteUrl" prop="siteUrl"
align="center" align="center"
show-overflow-tooltip> show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="地址" label="地址"
prop="address" prop="address"
align="center" align="center"
show-overflow-tooltip> show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column width="260" label="操作" align="center"> <el-table-column width="260" label="操作" align="center">
<template #default="{row}"> <template #default="{ row }">
<el-button text type="primary" @click="updateWarehouse(row)">编辑</el-button> <el-button
<el-button text type="danger" @click="handleBatchDelete(row)">删除</el-button> text
<el-button text type="info" @click="handleShowLog(row)">操作日志</el-button> type="primary"
@click="updateWarehouse(row)"
>编辑</el-button
>
<el-button
text
type="danger"
@click="handleBatchDelete(row)"
>删除</el-button
>
<el-button text type="info" @click="handleShowLog(row)"
>操作日志</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -279,7 +305,6 @@ getLogisticsList() ...@@ -279,7 +305,6 @@ getLogisticsList()
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
/> />
</div> </div>
</div> </div>
</div> </div>
<LogDialog <LogDialog
...@@ -287,46 +312,105 @@ getLogisticsList() ...@@ -287,46 +312,105 @@ getLogisticsList()
title="操作日志" title="操作日志"
@close="logDialogVisible = false" @close="logDialogVisible = false"
> >
<div v-for="item in logList" :key="item.id" style="margin-bottom: 8px"> <div
v-for="item in logList"
:key="item.id"
style="margin-bottom: 8px"
>
<span style="margin-right: 10px">{{ item.createTime }}</span> <span style="margin-right: 10px">{{ item.createTime }}</span>
<span>{{ item.description }}</span> <span>{{ item.description }}</span>
</div> </div>
</LogDialog> </LogDialog>
<el-dialog v-model="createData.show" :close-on-click-modal="false" width="900px" :title="createData.title"> <el-dialog
<el-form v-if="createData.show" ref="formRef" style="padding: 30px" label-width="110px" :rules="rules" :model="form" class="el-row"> v-model="createData.show"
:close-on-click-modal="false"
width="900px"
:title="createData.title"
>
<el-form
v-if="createData.show"
ref="formRef"
style="padding: 30px"
label-width="110px"
:rules="rules"
:model="form"
class="el-row"
>
<el-form-item class="el-col-12" label="物流公司编码" prop="code"> <el-form-item class="el-col-12" label="物流公司编码" prop="code">
<el-select v-model="form.code" clearable filterable @change="codeChange"> <el-select
v-model="form.code"
clearable
filterable
@change="codeChange"
>
<el-option <el-option
v-for="it in logisticsList" :key="it.code" :label="it.code" v-for="it in logisticsList"
:value="it.code"> :key="it.code"
:label="it.code"
:value="it.code"
>
{{ it.code }} {{ it.code }}
<span style="font-size: 14px; color: #999; line-height: 24px"> <span
style="font-size: 14px; color: #999; line-height: 24px"
>
({{ it.basicsName }}) ({{ it.basicsName }})
</span> </span>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item class="el-col-12" label="名称" prop="name"> <el-form-item class="el-col-12" label="名称">
<el-input v-model="form.name" clearable placeholder="请输入名称"></el-input> <el-input
v-model="form.name"
clearable
disabled
placeholder="选择物流公司编码后展示"
></el-input>
</el-form-item> </el-form-item>
<el-form-item class="el-col-12" label="联系人" prop="contact"> <el-form-item class="el-col-12" label="联系人" prop="contact">
<el-input v-model="form.contact" clearable placeholder="请输入联系人"></el-input> <el-input
v-model="form.contact"
clearable
placeholder="请输入联系人"
></el-input>
</el-form-item> </el-form-item>
<el-form-item class="el-col-12" label="电话/手机" prop="phone"> <el-form-item class="el-col-12" label="电话/手机" prop="phone">
<el-input v-model="form.phone" clearable placeholder="请输入电话/手机"></el-input> <el-input
v-model="form.phone"
clearable
placeholder="请输入电话/手机"
></el-input>
</el-form-item> </el-form-item>
<el-form-item class="el-col-12" label="网址" prop="siteUrl"> <el-form-item class="el-col-12" label="网址" prop="siteUrl">
<el-input v-model="form.siteUrl" clearable placeholder="请输入网址"></el-input> <el-input
v-model="form.siteUrl"
clearable
placeholder="请输入网址"
></el-input>
</el-form-item> </el-form-item>
<el-form-item class="el-col-12" label="地址" prop="address"> <el-form-item class="el-col-12" label="地址" prop="address">
<el-input v-model="form.address" clearable placeholder="请输入地址"></el-input> <el-input
v-model="form.address"
clearable
placeholder="请输入地址"
></el-input>
</el-form-item> </el-form-item>
<el-form-item v-for="o in otherFields" :key="o" class="el-col-12" required :label="o" :prop="`apiData.${o}`"> <el-form-item
<el-input v-model="form.apiData[o]" clearable :placeholder="`请输入${o}`"></el-input> v-for="o in otherFields"
:key="o"
class="el-col-12"
required
:label="o"
:prop="`apiData.${o}`"
>
<el-input
v-model="form.apiData[o]"
clearable
:placeholder="`请输入${o}`"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<el-button @click="createData.show=false">取消</el-button> <el-button @click="createData.show = false">取消</el-button>
<el-button type="primary" @click="handleConfirm">确定</el-button> <el-button type="primary" @click="handleConfirm">确定</el-button>
</template> </template>
</el-dialog> </el-dialog>
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
v-model="editForm" v-model="editForm"
:config="formConfig" :config="formConfig"
form-item-width="100%" form-item-width="100%"
labelWidth="125" labelWidth="110"
> >
</CustomizeForm> </CustomizeForm>
...@@ -98,9 +98,9 @@ import { IFormConfig } from '@/components/CustomizeForm.tsx' ...@@ -98,9 +98,9 @@ import { IFormConfig } from '@/components/CustomizeForm.tsx'
import usePageList from '@/utils/hooks/usePageList' import usePageList from '@/utils/hooks/usePageList'
import { useValue } from './hooks/useValue' import { useValue } from './hooks/useValue'
import { showConfirm } from '@/utils/ui' import { showConfirm } from '@/utils/ui'
import { Edit, Delete, List } from '@element-plus/icons-vue' import { Edit, Delete, List, WarningFilled } from '@element-plus/icons-vue'
import { debounce } from 'lodash-es' import { debounce } from 'lodash-es'
import UPARCELImage from '@/assets/images/UPARCEL物流编码.png'
const [searchForm] = useValue({}) const [searchForm] = useValue({})
const [editForm, resetEditForm] = useValue<LogisticsMethod>({ const [editForm, resetEditForm] = useValue<LogisticsMethod>({
platformList: [{ platform: '', logisticsName: '', showPlatform: [] }], platformList: [{ platform: '', logisticsName: '', showPlatform: [] }],
...@@ -131,6 +131,13 @@ const dialogVisible = ref(false) ...@@ -131,6 +131,13 @@ const dialogVisible = ref(false)
const logDialogVisible = ref(false) const logDialogVisible = ref(false)
const editFormRef = ref<InstanceType<typeof CustomizeForm> | null>(null) const editFormRef = ref<InstanceType<typeof CustomizeForm> | null>(null)
const selection = ref([]) const selection = ref([])
interface ImageList {
[key: string]: string
}
const imgeList = ref<ImageList>({
UPARCEL: UPARCELImage,
})
const searchConfig = ref<ISeachFormConfig[]>([ const searchConfig = ref<ISeachFormConfig[]>([
{ {
prop: 'name', prop: 'name',
...@@ -173,41 +180,6 @@ const logisticsCompanyList = ref([]) ...@@ -173,41 +180,6 @@ const logisticsCompanyList = ref([])
const formConfig = computed<IFormConfig[]>(() => [ const formConfig = computed<IFormConfig[]>(() => [
{ title: '物流基础信息' }, { title: '物流基础信息' },
{ {
prop: 'name',
type: 'input',
label: '物流名称',
attrs: {
placeholder: '请输入物流名称',
},
rules: [
{
required: true,
message: '请输入物流名称',
},
],
},
{
prop: 'warehouseId',
type: 'select',
label: '仓库名称',
attrs: {
placeholder: '请选择仓库名称',
label: 'name',
value: 'id',
options: [...(warehouseList.value || [])],
onChange: (value: { name: string; id: string | number }) => {
editForm.value.warehouseName = value.name
},
},
rules: [
{
required: true,
message: '请选择仓库名称',
},
],
},
{
prop: 'companyId', prop: 'companyId',
type: 'select', type: 'select',
label: '物流公司', label: '物流公司',
...@@ -282,15 +254,51 @@ const formConfig = computed<IFormConfig[]>(() => [ ...@@ -282,15 +254,51 @@ const formConfig = computed<IFormConfig[]>(() => [
}, },
], ],
}, },
{ {
prop: 'serviceCode', prop: 'serviceCode',
type: 'input',
label: '物流编码', label: '物流编码',
fixed: 'last', fixed: 'last',
attrs: { render: () => {
placeholder: '请输入物流编码', const company = editForm.value.company
return (
<div style="display: flex; width:100%;height: 100%">
<el-input
v-model={editForm.value.serviceCode}
placeholder="请输入物流编码"
/>
<el-popover
placement="bottom-end"
width={1050}
v-slots={{
default: () => (
<div style="width: 100%; height: 100%;">
<div style="font-size: 20px; font-weight: bold;margin-bottom: 10px;">
{company ? `${company}物流编码来源图:` : '请先选择物流公司'}
</div>
{company && imgeList.value[company] && (
<img
src={imgeList.value[company]}
style={{ width: '100%' }}
alt={`${company}物流编码图`}
/>
)}
</div>
),
reference: () => (
<el-icon
style={{ marginLeft: '10px', height: '100%' }}
size={25}
>
<WarningFilled />
</el-icon>
),
}}
></el-popover>
</div>
)
}, },
rules: [ rules: [
{ {
required: true, required: true,
...@@ -299,6 +307,31 @@ const formConfig = computed<IFormConfig[]>(() => [ ...@@ -299,6 +307,31 @@ const formConfig = computed<IFormConfig[]>(() => [
], ],
}, },
{ {
prop: 'name',
type: 'input',
label: '物流名称',
fixed: 'last',
attrs: {
placeholder: '请输入物流名称',
},
rules: [
{
required: true,
message: '请输入物流名称',
},
],
},
{
prop: 'warehouseId',
type: 'input',
label: '仓库名称',
fixed: 'last',
attrs: {
placeholder: '请输入仓库名称',
},
},
{
prop: 'siteUrl', prop: 'siteUrl',
type: 'input', type: 'input',
label: '查询网址', label: '查询网址',
...@@ -376,7 +409,7 @@ const formConfig = computed<IFormConfig[]>(() => [ ...@@ -376,7 +409,7 @@ const formConfig = computed<IFormConfig[]>(() => [
placeholder="请输入物流名称" placeholder="请输入物流名称"
/> />
</el-form-item> </el-form-item>
<div style="display: flex;flex:20%"> <div style="display: flex;flex:17%">
{(formData?.platformList as platformObj[])?.length - 1 === {(formData?.platformList as platformObj[])?.length - 1 ===
index && ( index && (
<el-button <el-button
......
...@@ -2,46 +2,49 @@ ...@@ -2,46 +2,49 @@
<div class="card flex-column h-100 overflow-hidden"> <div class="card flex-column h-100 overflow-hidden">
<div class="header-filter-form"> <div class="header-filter-form">
<ElForm :model="searchForm" size="default" inline> <ElForm :model="searchForm" size="default" inline>
<ElFormItem> <div>
<el-select <ElFormItem label="仓库">
v-model="searchForm.timeType" <ElSelect
style="width: 100px; margin-right: 5px" v-model="searchForm.warehouseId"
clearable clearable
placeholder="时间类型" filterable
placeholder="请输入"
style="width: 150px"
> >
<el-option :value="1" label="创建时间"></el-option> <el-option
<el-option :value="2" label="确认时间"></el-option> v-for="item in warehouseList"
<el-option :value="3" label="完成时间"></el-option> :key="item.id"
</el-select> :label="item.name"
<el-date-picker :value="item.id"
v-model="timeRange" ></el-option>
:default-time="[ </ElSelect>
new Date(0, 0, 0, 0, 0, 0), </ElFormItem>
new Date(0, 0, 0, 23, 59, 59), <ElFormItem label="平台">
]" <ElSelect
placeholder="收货人" v-model="searchForm.platform"
value-format="YYYY-MM-DD HH:mm:ss" value-key=""
type="datetimerange" placeholder="请选择"
style="width: 280px"
:shortcuts="pickerOptions.shortcuts"
start-placeholder="开始时间"
end-placeholder="结束时间"
clearable clearable
filterable
popper-class="customize-select-style"
style="width: 150px"
> >
</el-date-picker> <ElOption
</ElFormItem> v-for="(item, index) in platformJson"
<ElFormItem label="类型"> :key="index"
<el-radio-group v-model="searchForm.customizedQuantity"> :label="item.type"
<el-radio-button label="single">单面</el-radio-button> :value="item.type"
<el-radio-button label="multiple">多面</el-radio-button> style="width: 160px"
</el-radio-group> >
</ElFormItem> <img
<ElFormItem label="数量"> :src="`/images/icon/${item.icon.split('/').pop()}`"
<el-radio-group v-model="searchForm.multi"> style="height: 20px; margin: 5px 10px 0 0"
<el-radio-button :label="false">单件</el-radio-button> />
<el-radio-button :label="true">多件</el-radio-button> <span :title="item.type">{{ item.type }}</span>
</el-radio-group> </ElOption>
</ElSelect>
</ElFormItem> </ElFormItem>
<ElFormItem label="工艺"> <ElFormItem label="工艺">
<ElSelect <ElSelect
v-model="searchForm.craftCode" v-model="searchForm.craftCode"
...@@ -74,22 +77,6 @@ ...@@ -74,22 +77,6 @@
style="width: 150px" style="width: 150px"
/> />
</ElFormItem> </ElFormItem>
<ElFormItem label="生产单号">
<ElInput
v-model="searchForm.factorySubOrderNumber"
placeholder="生产单号"
clearable
style="width: 150px"
/>
</ElFormItem>
<ElFormItem label="订单号">
<ElInput
v-model="searchForm.factoryOrderNumber"
placeholder="订单号"
clearable
style="width: 150px"
/>
</ElFormItem>
<ElFormItem label="批次号"> <ElFormItem label="批次号">
<ElInput <ElInput
v-model="searchForm.batchArrangeNumber" v-model="searchForm.batchArrangeNumber"
...@@ -98,14 +85,28 @@ ...@@ -98,14 +85,28 @@
style="width: 150px" style="width: 150px"
/> />
</ElFormItem> </ElFormItem>
<ElFormItem label="店铺单号"> <ElFormItem label="生产单号">
<ElInput <ElInput
v-model="searchForm.shopNumber" v-model="searchForm.factorySubOrderNumber"
placeholder="店铺单号" placeholder="生产单号"
clearable clearable
style="width: 150px" style="width: 150px"
/> />
</ElFormItem> </ElFormItem>
</div>
<ElFormItem label="类型">
<el-radio-group v-model="searchForm.customizedQuantity">
<el-radio-button label="single">单面</el-radio-button>
<el-radio-button label="multiple">多面</el-radio-button>
</el-radio-group>
</ElFormItem>
<ElFormItem label="数量">
<el-radio-group v-model="searchForm.multi">
<el-radio-button :label="false">单件</el-radio-button>
<el-radio-button :label="true">多件</el-radio-button>
</el-radio-group>
</ElFormItem>
<ElFormItem> <ElFormItem>
<ElPopover placement="bottom" width="600" trigger="click"> <ElPopover placement="bottom" width="600" trigger="click">
<ElForm <ElForm
...@@ -114,27 +115,61 @@ ...@@ -114,27 +115,61 @@
inline inline
label-width="100px" label-width="100px"
> >
<ElFormItem label="仓库"> <ElFormItem style="width: 100%; padding-right: 40px">
<ElSelect <div style="width: 100%; display: flex; flex-wrap: nowrap">
v-model="searchForm.warehouseId" <el-select
v-model="searchForm.timeType"
clearable clearable
filterable :teleported="false"
placeholder="请输入" placeholder="时间类型"
style="width: 150px" style="flex: 1; margin-right: 10px"
> >
<el-option <el-option :value="1" label="创建时间"></el-option>
v-for="item in warehouseList" <el-option :value="2" label="确认时间"></el-option>
:key="item.id" <el-option :value="3" label="完成时间"></el-option>
:label="item.name" </el-select>
:value="item.id" <el-date-picker
></el-option> v-model="timeRange"
</ElSelect> :teleported="false"
:default-time="[
new Date(0, 0, 0, 0, 0, 0),
new Date(0, 0, 0, 23, 59, 59),
]"
placeholder="收货人"
value-format="YYYY-MM-DD HH:mm:ss"
type="datetimerange"
style="width: 280px"
:shortcuts="pickerOptions.shortcuts"
start-placeholder="开始时间"
end-placeholder="结束时间"
clearable
>
</el-date-picker>
</div>
</ElFormItem>
<ElFormItem label="订单号">
<ElInput
v-model="searchForm.factoryOrderNumber"
placeholder="订单号"
clearable
style="width: 150px"
/>
</ElFormItem>
<ElFormItem label="店铺单号">
<ElInput
v-model="searchForm.shopNumber"
placeholder="店铺单号"
clearable
style="width: 150px"
/>
</ElFormItem> </ElFormItem>
<ElFormItem label="客户"> <ElFormItem label="客户">
<el-select <el-select
v-model="searchForm.userMark" v-model="searchForm.userMark"
clearable clearable
filterable filterable
:teleported="false"
style="width: 150px" style="width: 150px"
placeholder="客户" placeholder="客户"
> >
...@@ -146,36 +181,13 @@ ...@@ -146,36 +181,13 @@
></el-option> ></el-option>
</el-select> </el-select>
</ElFormItem> </ElFormItem>
<ElFormItem label="平台">
<ElSelect
v-model="searchForm.platform"
value-key=""
placeholder="请选择"
clearable
filterable
popper-class="customize-select-style"
style="width: 150px"
>
<ElOption
v-for="(item, index) in platformJson"
:key="index"
:label="item.type"
:value="item.type"
style="width: 160px"
>
<img
:src="`/images/icon/${item.icon.split('/').pop()}`"
style="height: 20px; margin: 5px 10px 0 0"
/>
<span :title="item.type">{{ item.type }}</span>
</ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem label="生产端"> <ElFormItem label="生产端">
<ElSelect <ElSelect
v-model="searchForm.productionClient" v-model="searchForm.productionClient"
placeholder="生产端" placeholder="生产端"
clearable clearable
:teleported="false"
style="width: 150px" style="width: 150px"
> >
<ElOption <ElOption
...@@ -215,6 +227,7 @@ ...@@ -215,6 +227,7 @@
v-model="searchForm.shipmentType" v-model="searchForm.shipmentType"
placeholder="物流类型" placeholder="物流类型"
clearable clearable
:teleported="false"
style="width: 150px" style="width: 150px"
> >
<ElOption <ElOption
...@@ -424,9 +437,7 @@ ...@@ -424,9 +437,7 @@
</ElButton> </ElButton>
</span> </span>
<span v-if="status === 'STOCK_OUT'" class="item"> <span v-if="status === 'STOCK_OUT'" class="item">
<ElButton type="success" @click="toBePicking"> <ElButton type="success" @click="toBePicking"> 转至生产 </ElButton>
转至待创建物流
</ElButton>
</span> </span>
<span v-if="status === 'TO_BE_ARRANGE'" class="item"> <span v-if="status === 'TO_BE_ARRANGE'" class="item">
<ElButton type="warning" @click="arrangeFinish">排单完成</ElButton> <ElButton type="warning" @click="arrangeFinish">排单完成</ElButton>
...@@ -447,7 +458,7 @@ ...@@ -447,7 +458,7 @@
class="item" class="item"
> >
<ElButton type="success" @click="refreshMaterial"> <ElButton type="success" @click="refreshMaterial">
刷新素材 刷新素材
</ElButton> </ElButton>
</span> </span>
</ElFormItem> </ElFormItem>
...@@ -1146,6 +1157,17 @@ ...@@ -1146,6 +1157,17 @@
:image-field="'variantImage'" :image-field="'variantImage'"
@contextmenu.prevent="(v: MouseEvent) => rightClick(v)" @contextmenu.prevent="(v: MouseEvent) => rightClick(v)"
> >
<template
#top_right
v-if="['ZPZY', 'CXZY', 'THZY'].includes(cardItem.craftCode)"
>
<img
:src="`/images/pic/${cardItem.craftCode}.png`"
width="100px;"
height="100px"
alt=""
/>
</template>
<template #bottom_left> <template #bottom_left>
<span <span
v-if="cardItem?.factorySubOrderNumber" v-if="cardItem?.factorySubOrderNumber"
...@@ -1159,6 +1181,16 @@ ...@@ -1159,6 +1181,16 @@
</span> </span>
</template> </template>
<template #operations> <template #operations>
<div
style="position: absolute; top: -35px; right: 2px"
v-if="cardItem.platform"
>
<img
:src="`/images/icon/${getPlatformImg(cardItem.platform)}`"
style="height: 30px"
/>
</div>
<Icon <Icon
name="caozuorizhi" name="caozuorizhi"
@click="(e: MouseEvent) => operationLog(cardItem.podJomallOrderUsId, e)" @click="(e: MouseEvent) => operationLog(cardItem.podJomallOrderUsId, e)"
...@@ -1833,7 +1865,7 @@ const confirmRowData = ref<ProductList | null>(null) ...@@ -1833,7 +1865,7 @@ const confirmRowData = ref<ProductList | null>(null)
const status = ref('TO_BE_CONFIRMED') const status = ref('TO_BE_CONFIRMED')
const detailData = ref({}) const detailData = ref({})
const [searchForm, resetSearchForm] = useValue<SearchForm>({ const [searchForm, resetSearchForm] = useValue<SearchForm>({
timeType: null, timeType: 1,
shopNumber: '', shopNumber: '',
shipmentType: '', shipmentType: '',
userMark: '', userMark: '',
...@@ -3272,7 +3304,7 @@ const stockOutCheck = async () => { ...@@ -3272,7 +3304,7 @@ const stockOutCheck = async () => {
// 添加表格ref // 添加表格ref
const tableRef = ref() const tableRef = ref()
//转至待创建物流 //转至生产
const toBePicking = async () => { const toBePicking = async () => {
if (selection.value.length === 0) { if (selection.value.length === 0) {
return ElMessage.warning('请选择数据') return ElMessage.warning('请选择数据')
...@@ -3773,6 +3805,16 @@ const replenishmentSuccess = async () => { ...@@ -3773,6 +3805,16 @@ const replenishmentSuccess = async () => {
loading.close() loading.close()
} }
} }
function getPlatformImg(code: string) {
const item = platformJson.find(
(el) => el.name.toLowerCase() === code.toLowerCase(),
)
if (item) {
return item.icon.split('/').pop()
}
return ''
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.header-filter-form { .header-filter-form {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment