Commit 21cc65b9 by wq

8.21

parent 6a1b610a
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -148,7 +148,18 @@ export function loadSendOutList(id: number) {
},
)
}
// 设置备注
export function backEndCommentsApi(id: number, remark: string) {
return axios.get<never, BaseRespData<SendOrderData[]>>(
'factory/customJomallOrderProduct/setRemark',
{
params: {
id,
remark
},
},
)
}
// 操作日志
export function getLogList(id: number) {
return axios.get<never, BaseRespData<LogListData[]>>(
......
......@@ -102,7 +102,6 @@
</span>
</div>
<div
v-if="item.remark"
:title="item.remark || ''"
class="order-list-expand_item_info_title"
>
......
......@@ -6,15 +6,35 @@
<div class="header-filter-form">
<ElForm :model="searchForm" size="default" inline>
<ElFormItem>
<el-select v-model="searchForm.timeType" clearable style="width:100px;margin-right: 5px ;" placeholder="时间类型" >
<el-option v-if="statusCode !== 6" value="1" label="创建时间"></el-option>
<el-select
v-model="searchForm.timeType"
clearable
style="width: 100px; margin-right: 5px"
placeholder="时间类型"
>
<el-option
v-if="statusCode !== 6"
value="1"
label="创建时间"
></el-option>
<el-option value="2" label="确认时间"></el-option>
<el-option v-if="statusCode !== 6" value="3" label="完成时间"></el-option>
<el-option v-if="statusCode === 6" value="4" label="发货时间"></el-option>
<el-option
v-if="statusCode !== 6"
value="3"
label="完成时间"
></el-option>
<el-option
v-if="statusCode === 6"
value="4"
label="发货时间"
></el-option>
</el-select>
<el-date-picker
v-model="timeRange"
:default-time="[new Date(0,0,0,0,0,0),new Date(0,0,0,23,59,59)]"
: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"
......@@ -24,7 +44,6 @@
clearable
style="width: 210px"
>
</el-date-picker>
</ElFormItem>
<ElFormItem label="SKU">
......@@ -42,7 +61,9 @@
placeholder="请输入成品ID"
clearable
style="width: 130px"
@blur="searchForm.endProductId = searchForm.endProductId.trim()"
@blur="
searchForm.endProductId = searchForm.endProductId.trim()
"
></ElInput>
</ElFormItem>
<ElFormItem label="生产单号">
......@@ -80,7 +101,9 @@
placeholder="内部标签"
clearable
style="width: 130px"
@blur="searchForm.internalMemo = searchForm.internalMemo.trim()"
@blur="
searchForm.internalMemo = searchForm.internalMemo.trim()
"
></ElInput>
</ElFormItem>
<ElFormItem v-if="statusCode === 6" label="物流跟踪号">
......@@ -113,7 +136,6 @@
></ElInput>
</ElFormItem>
<ElFormItem>
<ElButton type="primary" @click="search">查询</ElButton>
</ElFormItem>
......@@ -128,7 +150,9 @@
v-for="item in tabsNav"
:key="item.statusCode"
class="tabs-node"
:class="item.statusCode === statusCode ? 'tabs-node_active' : ''"
:class="
item.statusCode === statusCode ? 'tabs-node_active' : ''
"
@click="changeTab(item)"
>
<span class="tabs-node_label">{{ item.statusName }}</span>
......@@ -143,7 +167,9 @@
<!-- 操作按钮 -->
<div class="order-operate-btn">
<span v-if="statusCode === 2" class="item">
<ElButton type="success" @click="confirmProduce">确认生产</ElButton>
<ElButton type="success" @click="confirmProduce"
>确认生产</ElButton
>
</span>
<span
......@@ -151,7 +177,11 @@
class="item"
>
<ElButton
:disabled="selection.find(item=>item.manuscriptStatus !== 30)" type="warning" is-dark
:disabled="
selection.find((item) => item.manuscriptStatus !== 30)
"
type="warning"
is-dark
@click="downloadManuscript"
>下载稿件</ElButton
>
......@@ -161,23 +191,37 @@
class="item"
>
<ElButton
:disabled="selection.find(item=>item.manuscriptStatus !== 30) || selection.length!==1" type="success" is-dark
:disabled="
selection.find((item) => item.manuscriptStatus !== 30) ||
selection.length !== 1
"
type="success"
is-dark
@click="reGenerateManuscript"
>重新打包稿件 </ElButton
>
>重新打包稿件
</ElButton>
</span>
<span
v-if="statusCode === 2 || statusCode === 3 || statusCode === 4"
class="item"
>
<ElButton
:disabled="selection.find(item=>item.manuscriptStatus !== 30) || selection.length!==1"
type="warning" is-dark @click="reCreateManuscript"
>重新生成稿件 </ElButton
>
:disabled="
selection.find((item) => item.manuscriptStatus !== 30) ||
selection.length !== 1
"
type="warning"
is-dark
@click="reCreateManuscript"
>重新生成稿件
</ElButton>
</span>
<span v-if="statusCode === 2 || statusCode === 3" class="item">
<ElButton :loading="btnLoading" type="primary" dark @click="printManuscript"
<ElButton
:loading="btnLoading"
type="primary"
dark
@click="printManuscript"
>打印生产单</ElButton
>
</span>
......@@ -232,7 +276,11 @@
class="order-list-expand"
:style="{ width: `${thOrderDetailWidth + 50}px` }"
>
<ProductInfo :row="row" :status="statusCode" />
<ProductInfo
:row="row"
:status="statusCode"
@update-remark="handleUpdateRemark"
/>
<template v-if="row.productList.length > 2">
<div class="order-list-expand_more">
<span @click="openAll(row)">
......@@ -243,7 +291,8 @@
><ArrowDown /></el-icon
></template>
<template v-else>
收起商品信息<el-icon style="vertical-align: middle"
收起商品信息<el-icon
style="vertical-align: middle"
><ArrowUp
/></el-icon>
</template>
......@@ -254,14 +303,18 @@
<div class="order-actual-payment">
<div class="order-actual-payment_info">
<div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label">商品价:</span>
<span class="order-list-expand_item_label"
>商品价:</span
>
<span class="order-list-expand_item_value">{{
row.productAmount
}}</span>
</div>
<div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label">小计:</span>
<span class="order-list-expand_item_label"
>小计:</span
>
<span class="order-list-expand_item_value">{{
row.totalAmount || '--'
}}</span>
......@@ -295,7 +348,10 @@
>
<span>{{ memo.operatorTime || '' }}</span>
</div>
<div v-if="memo.content" class="order-memo-item__content">
<div
v-if="memo.content"
class="order-memo-item__content"
>
<span>{{ memo.content || '' }}</span>
</div>
</div>
......@@ -332,7 +388,10 @@
<div class="order-operate">
<div class="order-operate_info">
<div class="order-list-expand_item_info_title">
<ElButton text type="primary" @click="openDetail(row.id)"
<ElButton
text
type="primary"
@click="openDetail(row.id)"
>查看详情
</ElButton>
</div>
......@@ -357,7 +416,10 @@
v-if="statusCode === 1 || statusCode === 3"
class="order-list-expand_item_info_title"
>
<ElButton text type="danger" @click="cancelOrder(row.id)"
<ElButton
text
type="danger"
@click="cancelOrder(row.id)"
>取消
</ElButton>
</div>
......@@ -375,7 +437,10 @@
>
<template #default="scope">
<div class="order-detail">
<div :title="scope.row.orderNumber" class="order-detail_item">
<div
:title="scope.row.orderNumber"
class="order-detail_item"
>
<span class="label">订单号:</span>
<span class="value">{{ scope.row.orderNumber }}</span>
</div>
......@@ -393,16 +458,24 @@
class="order-detail_item"
>
<span class="label">稿件状态:</span>
<span class="value" :title="scope.row.manuscriptStatusStr">{{
scope.row.manuscriptStatusStr || '--'
}}</span>
<span
class="value"
:title="scope.row.manuscriptStatusStr"
>{{ scope.row.manuscriptStatusStr || '--' }}</span
>
</div>
<div :title="scope.row.lanshouName" class="order-detail_item">
<div
:title="scope.row.lanshouName"
class="order-detail_item"
>
<span class="label">收货人:</span>
<span class="value">{{ scope.row.lanshouName }}</span>
</div>
<div :title="scope.row.lanshouPhone" class="order-detail_item">
<div
:title="scope.row.lanshouPhone"
class="order-detail_item"
>
<span class="label">电话:</span>
<span class="value">{{ scope.row.lanshouPhone }}</span>
</div>
......@@ -415,7 +488,10 @@
scope.row.lanshouAddress
}}</span>
</div>
<div :title="scope.row.lanshouPost" class="order-detail_item">
<div
:title="scope.row.lanshouPost"
class="order-detail_item"
>
<span class="label">邮编:</span>
<span class="value">{{ scope.row.lanshouPost }}</span>
</div>
......@@ -482,7 +558,8 @@
><ArrowDown /></el-icon
></template>
<template v-else>
收起商品信息<el-icon style="vertical-align: middle"
收起商品信息<el-icon
style="vertical-align: middle"
><ArrowUp
/></el-icon>
</template>
......@@ -493,14 +570,17 @@
<div class="order-actual-payment">
<div class="order-actual-payment_info">
<div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label">订单号:</span>
<span class="order-list-expand_item_label"
>订单号:</span
>
<span class="order-list-expand_item_value">{{
row.orderNumber
}}</span>
<el-icon class="icon" @click="copy(row.orderNumber || '')"
<el-icon
class="icon"
@click="copy(row.orderNumber || '')"
>
<DocumentCopy
/>
<DocumentCopy />
</el-icon>
</div>
......@@ -569,7 +649,9 @@
</div>
<div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label">收货人:</span>
<span class="order-list-expand_item_label"
>收货人:</span
>
<span
style="color: red"
class="order-list-expand_item_value"
......@@ -585,7 +667,9 @@
}}</span>
</div>
<div class="order-list-expand_item_info_title">
<span class="order-list-expand_item_label">邮编:</span>
<span class="order-list-expand_item_label"
>邮编:</span
>
<span class="order-list-expand_item_value">{{
row.lanshouPost || '--'
}}</span>
......@@ -789,6 +873,16 @@
</div>
</template>
</el-dialog>
<!-- 设置备注 -->
<el-dialog v-model="dialogVisible" title="设置备注" width="30%">
<el-input v-model="inputValue" clearable placeholder="请输入备注" />
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="submitRemark">确认</el-button>
</span>
</template>
</el-dialog>
<ElDrawer
v-model="orderDetailDialogVisible"
title="生产订单详情"
......@@ -824,12 +918,14 @@ import {
printOrder,
exportOrder,
addInternalTagApi,
backEndCommentsApi,
loadSendOutList,
getLogList,
getOrderDetail,
cancelOrderApi,
reGenerateScriptUrlApi,
refreshProductInfo, reCreateScriptUrlApi,
refreshProductInfo,
reCreateScriptUrlApi,
} from '@/api/order'
import { showConfirm } from '@/utils/ui'
import { useValue } from '@/utils/hooks/useValue'
......@@ -860,6 +956,9 @@ const [searchForm] = useValue<SearchForm>({
const tabsNav = ref<Tab[]>([])
const splitRef = ref<InstanceType<typeof SplitDiv>>()
const btnLoading = ref<boolean>(false)
const dialogVisible = ref<boolean>(false)
const inputValue = ref<string>('')
const remarkId = ref<number>(0)
function getStartTime() {
const date = new Date()
const year = date.getFullYear()
......@@ -871,111 +970,111 @@ const pickerOptions = {
shortcuts: [
{
text: '今日',
value:() =>{
value: () => {
const start = new Date(new Date(getStartTime()).getTime())
const end = new Date()
return [start, end]
}
},
},
{
text: '昨天',
value:() =>{
value: () => {
const start = new Date()
const end = new Date(new Date(getStartTime()).getTime() - 1)
start.setTime(end.getTime() - 3600 * 1000 * 24 * 1 + 1)
return [start, end]
}
},
},
{
text: '最近7天',
value:() =>{
value: () => {
const end = new Date()
const start = new Date(getStartTime())
start.setTime(start.getTime() - 3600 * 1000 * 24 * 6)
return [start, end]
}
},
},
{
text: '最近14天',
value:() =>{
value: () => {
const end = new Date()
const start = new Date(getStartTime())
start.setTime(start.getTime() - 3600 * 1000 * 24 * 13)
return [start, end]
}
},
},
{
text: '最近30天',
value:() =>{
value: () => {
const end = new Date()
const start = new Date(getStartTime())
start.setTime(start.getTime() - 3600 * 1000 * 24 * 29)
return [start, end]
}
},
},
{
text: '本星期',
value:() =>{
value: () => {
const end = new Date()
const start = new Date()
const nowDay = new Date().getDay() - 1
start.setTime(
new Date(getStartTime()).getTime() - 3600 * 1000 * 24 * nowDay
new Date(getStartTime()).getTime() - 3600 * 1000 * 24 * nowDay,
)
return [start, end]
}
},
},
{
text: '上星期',
value:() =>{
value: () => {
const end = new Date()
const start = new Date()
const nowDay = new Date().getDay() - 1
end.setTime(
new Date(getStartTime()).getTime() - 3600 * 1000 * 24 * nowDay - 1
new Date(getStartTime()).getTime() - 3600 * 1000 * 24 * nowDay - 1,
)
start.setTime(end.getTime() - 3600 * 1000 * 24 * 7 + 1)
return [start, end]
}
},
},
{
text: '这个月',
value:() =>{
value: () => {
const end = new Date()
const start = new Date()
const nowDate = new Date().getDate() - 1
start.setTime(
new Date(getStartTime()).getTime() - 3600 * 1000 * 24 * nowDate
new Date(getStartTime()).getTime() - 3600 * 1000 * 24 * nowDate,
)
return [start, end]
}
},
},
{
text: '上个月',
value:() =>{
value: () => {
const date = new Date()
let year = date.getFullYear()
let month = date.getMonth()
const end = new Date(
new Date(`${year}-${month + 1}-1 00:00:00`).getTime() - 1
new Date(`${year}-${month + 1}-1 00:00:00`).getTime() - 1,
)
if (month === 0) {
month = 12
year = year - 1
}
const start = new Date(
new Date(`${year}-${month}-1 00:00:00`).getTime()
new Date(`${year}-${month}-1 00:00:00`).getTime(),
)
return [start, end]
}
},
},
{
text: '历史',
value:() =>{
value: () => {
return ['', '']
}
}
]
},
},
],
}
const statusCode = ref(2)
const selection = ref<OrderData[]>([])
......@@ -1025,8 +1124,18 @@ const {
...searchForm.value,
status: statusCode.value,
timeType: timeRange.value.length > 0 ? searchForm.value.timeType : null,
startTime: searchForm.value.timeType === '' ? null : timeRange.value.length > 0 ? timeRange.value[0] : null,
endTime: searchForm.value.timeType === '' ? null : timeRange.value.length > 0 ? timeRange.value[1] : null,
startTime:
searchForm.value.timeType === ''
? null
: timeRange.value.length > 0
? timeRange.value[0]
: null,
endTime:
searchForm.value.timeType === ''
? null
: timeRange.value.length > 0
? timeRange.value[1]
: null,
},
page,
pageSize,
......@@ -1107,10 +1216,34 @@ const changeTab = (item: Tab) => {
statusCode.value = item.statusCode
searchForm.value.timeType = ''
search()
nextTick(()=>{
(splitRef.value)!.domResize()
nextTick(() => {
splitRef.value!.domResize()
})
}
const handleUpdateRemark = (payload: { id: number; remark: string }) => {
dialogVisible.value = true
inputValue.value = payload.remark
remarkId.value = payload.id
}
const submitRemark = async () => {
try {
const res = await backEndCommentsApi(remarkId.value, inputValue.value)
search()
dialogVisible.value = false
inputValue.value = ''
ElMessage({
message: res.message,
type: 'success',
offset: window.innerHeight / 2,
})
} catch (e) {
ElMessage({
message: '提交失败,请重试',
type: 'error',
offset: window.innerHeight / 2,
})
dialogVisible.value = true
}
}
const copy = (text: string) => {
navigator.clipboard.writeText(text)
......@@ -1280,7 +1413,10 @@ const printManuscript = async () => {
// 导出生产单
const exportManuscript = async () => {
try {
const res = await exportOrder({ids:selection.value.map(el=>el.id),status: statusCode.value })
const res = await exportOrder({
ids: selection.value.map((el) => el.id),
status: statusCode.value,
})
window.open(filePath + res.message)
} catch (e) {
// showError(e)
......
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