main
chenshuichuan 2 years ago
parent 6aabd2586f
commit cd891c15a6

@ -33,6 +33,10 @@ export const ProductApi = {
getItemSimpleList: async () => {
return await request.get({ url: `/erp/product/simple-list-item` })
},
// 查询采购商品精简列表
getOrderSimpleList: async () => {
return await request.get({ url: `/erp/product/simple-list-order` })
},
// 查询产品详情

@ -13,7 +13,19 @@ export interface SaleOrderVO {
outCount: number // 销售出库数量
returnCount: number // 销售退货数量
}
// ERP 销售订单项 VO
export interface SaleOrderItemsVO {
id: number // 编号
orderId: number // 销售订单编号
productId: number // 产品编号
productUnitId: number // 产品单位单位
productPrice: number // 产品单价
count: number // 数量
totalPrice: number // 总价
remark: string // 备注
outCount: number // 销售出库数量
returnCount: number // 销售退货数量
}
// ERP 销售订单 API
export const SaleOrderApi = {
// 查询销售订单分页

@ -68,5 +68,13 @@ export const TaskApi = {
// 获得生产任务单明细
getTaskDetail: async (id: number) => {
return await request.get({ url: `/mes/task/task-detail/get?id=` + id })
}
}
},
// ==================== 子表(生产任务单明细) ====================
// 获得生产任务单明细列表
getTaskDetailListByTaskId: async (taskId) => {
return await request.get({ url: `/mes/task/task-detail/list-by-task-id?taskId=` + taskId })
},
}

@ -105,7 +105,7 @@ const editorConfig = computed((): IEditorConfig => {
headers: {
Accept: '*',
Authorization: 'Bearer ' + getAccessToken(),
'tenant-id': getTenantId()
'tenantId': getTenantId()
},
// cookie false

@ -68,7 +68,7 @@ const emit = defineEmits(['update:modelValue'])
const props = defineProps({
modelValue: propTypes.oneOfType<string | string[]>([String, Array<String>]).isRequired,
fileType: propTypes.array.def(['doc', 'xls', 'ppt', 'txt', 'pdf']), // , ['png', 'jpg', 'jpeg']
fileType: propTypes.array.def(['png', 'jpg', 'jpeg', 'doc', 'xls', 'ppt', 'txt', 'pdf']), // , ['png', 'jpg', 'jpeg']
fileSize: propTypes.number.def(5), // (MB)
limit: propTypes.number.def(5), //
autoUpload: propTypes.bool.def(true), //

@ -57,7 +57,7 @@ service.interceptors.request.use(
// 设置租户
if (tenantEnable && tenantEnable === 'true') {
const tenantId = getTenantId()
if (tenantId) (config as Recordable).headers['tenant-id'] = tenantId
if (tenantId) (config as Recordable).headers['tenantId'] = tenantId
}
const params = config.params || {}
const data = config.data || false
@ -199,7 +199,7 @@ service.interceptors.response.use(
)
const refreshToken = async () => {
axios.defaults.headers.common['tenant-id'] = getTenantId()
axios.defaults.headers.common['tenantId'] = getTenantId()
return await axios.post(base_url + '/system/auth/refresh-token?refreshToken=' + getRefreshToken())
}
const handleAuthorized = () => {

@ -93,7 +93,7 @@ const submitForm = async () => {
//
uploadHeaders.value = {
Authorization: 'Bearer ' + getAccessToken(),
'tenant-id': getTenantId()
'tenantId': getTenantId()
}
formLoading.value = true
uploadRef.value!.submit()

@ -262,7 +262,7 @@ defineExpose({ validate })
/** 初始化 */
onMounted(async () => {
productList.value = await ProductApi.getProductSimpleList()
productList.value = await ProductApi.getOrderSimpleList()
//
if (formData.value.length === 0) {
handleAdd()

@ -2,30 +2,18 @@
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="ID" align="center" prop="id" />
<!-- <el-table-column label="ID" align="center" prop="id" />-->
<el-table-column label="原料" align="center" prop="productName" />
<el-table-column label="用量" align="center" prop="usageNumber" />
<el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="损耗率%" align="center" prop="yieldRate" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="是否启用" align="center" prop="isEnable">
<template #default="scope">
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.isEnable" />
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
</el-table>
</ContentWrap>
</template>
<script setup lang="ts">
import { DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import { BomApi } from '@/api/mes/bom'
const { t } = useI18n() //

@ -8,7 +8,7 @@
:inline="true"
label-width="68px"
>
<el-form-item label="BOM编码" prop="code">
<el-form-item label="" prop="code">
<el-input
v-model="queryParams.code"
placeholder="请输入BOM编码"
@ -17,7 +17,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="BOM版本" prop="version">
<el-form-item label="" prop="version">
<el-input
v-model="queryParams.version"
placeholder="请输入BOM版本"
@ -26,7 +26,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="产品" prop="productId">
<el-form-item label="" prop="productId">
<el-select
v-model="queryParams.productId"
clearable
@ -43,7 +43,7 @@
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-form-item label="" prop="remark">
<el-input
v-model="queryParams.remark"
placeholder="请输入备注"
@ -52,7 +52,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="是否启用" prop="isEnable">
<el-form-item label="" prop="isEnable">
<el-select
v-model="queryParams.isEnable"
placeholder="请选择是否启用"

@ -82,10 +82,10 @@
/>
</el-select>
</el-form-item>
<el-form-item label="记录类型(工序类型)" prop="recordType">
<el-form-item label="记录工序" prop="recordType">
<el-select
v-model="queryParams.recordType"
placeholder="请选择记录类型(工序类型)"
placeholder="请选择记录工序"
clearable
class="!w-240px"
>
@ -338,4 +338,4 @@ const handleCurrentChange = (row) => {
onMounted(() => {
getList()
})
</script>
</script>

@ -0,0 +1,190 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible" width="800px">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入编码" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="流程实例的编号" prop="processInstanceId">
<el-input v-model="formData.processInstanceId" placeholder="请输入流程实例的编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="下达日期" prop="orderDate">
<el-date-picker
v-model="formData.orderDate"
type="date"
value-format="x"
placeholder="选择下达日期"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="交货日期" prop="deliveryDate">
<el-date-picker
v-model="formData.deliveryDate"
type="date"
value-format="x"
placeholder="选择交货日期"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否启用" prop="isEnable">
<el-radio-group v-model="formData.isEnable">
<el-radio
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="formData.status">
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.MES_TASK_STATUS)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<!-- 子表的表单 -->
<el-tabs v-model="subTabsName">
<el-tab-pane label="生产任务单明细" name="taskDetail">
<TaskAddSaleDetailForm ref="taskDetailFormRef" :task-id="formData.id" />
</el-tab-pane>
</el-tabs>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { getIntDictOptions, getBoolDictOptions, DICT_TYPE } from '@/utils/dict'
import { TaskApi, TaskVO } from '@/api/mes/task'
import TaskAddSaleDetailForm from './components/TaskAddSaleDetailForm.vue'
/** 生产任务单 表单 */
defineOptions({ name: 'TaskForm' })
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
code: undefined,
orderDate: undefined,
deliveryDate: undefined,
status: undefined,
processInstanceId: undefined,
remark: undefined,
isEnable: undefined,
})
const formRules = reactive({
code: [{ required: true, message: '编码不能为空', trigger: 'blur' }],
deliveryDate: [{ required: true, message: '交货日期不能为空', trigger: 'blur' }],
status: [{ required: true, message: '状态不能为空', trigger: 'blur' }],
isEnable: [{ required: true, message: '是否启用不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref
/** 子表的表单 */
const subTabsName = ref('taskDetail')
const taskDetailFormRef = ref()
/** 打开弹窗 */
const open = async (id: number) => {
const type = "update"
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await TaskApi.getTask(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
try {
await taskDetailFormRef.value.validate()
} catch (e) {
subTabsName.value = 'taskDetail'
return
}
//
formLoading.value = true
try {
const data = formData.value as unknown as TaskVO
//
data.taskDetails = taskDetailFormRef.value.getData()
if (formType.value === 'create') {
await TaskApi.createTask(data)
message.success(t('common.createSuccess'))
} else {
await TaskApi.updateTask(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
code: undefined,
orderDate: undefined,
deliveryDate: undefined,
status: undefined,
processInstanceId: undefined,
remark: undefined,
isEnable: undefined,
}
formRef.value?.resetFields()
}
</script>

@ -0,0 +1,116 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="销售订单编号" prop="orderId">
<el-input
v-model="queryParams.orderId"
placeholder="请输入销售订单编号"
class="!w-240px"
/>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="销售订单编号" align="center" prop="orderId" />
<el-table-column label="产品编号" align="center" prop="productId" />
<el-table-column label="产品单位单位" align="center" prop="productUnitId" />
<el-table-column label="产品单价" align="center" prop="productPrice" />
<el-table-column label="数量" align="center" prop="count" />
<el-table-column label="总价" align="center" prop="totalPrice" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="销售出库数量" align="center" prop="outCount" />
<el-table-column label="销售退货数量" align="center" prop="returnCount" />
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['erp:sale-order-items:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['erp:sale-order-items:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
</template>
<script setup lang="ts">
import { dateFormatter } from '@/utils/formatTime'
import {SaleOrderApi, SaleOrderItemsVO} from "@/api/erp/sale/order";
/** ERP 销售订单项 列表 */
defineOptions({ name: 'SaleOrderItems' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<SaleOrderItemsVO[]>([]) //
const total = ref(0) //
const queryFormRef = ref() //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
orderId: undefined,
})
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await SaleOrderApi.getSaleOrder(17)
list.value = data.items
total.value = list.value.length
} finally {
loading.value = false
}
}
/** 初始化 **/
onMounted(() => {
getList()
})
/** 打开弹窗 */
const open = async () => {
//
console.log("I'm in sale order list!")
}
defineExpose({ open }) // open
</script>

@ -0,0 +1,255 @@
<template>
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
v-loading="formLoading"
label-width="0px"
:inline-message="true"
>
<el-table :data="formData" class="-mt-10px">
<el-table-column label="序号" type="index" width="100" />
<el-table-column label="产品" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.productId`" :rules="formRules.productId" class="mb-0px!">
<el-select
v-model="row.productId"
clearable
filterable
placeholder="请选择"
>
<el-option
v-for="item in productList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="单位" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.unitId`" :rules="formRules.unitId" class="mb-0px!">
<el-select v-model="row.unitId" clearable filterable placeholder="请选择单位" class="w-1/1">
<el-option
v-for="unit in unitList"
:key="unit.id"
:label="unit.name"
:value="unit.id"
/>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="数量" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.number`" :rules="formRules.number" class="mb-0px!">
<el-input v-model="row.number" placeholder="请输入数量" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="打包要求(每包/个)" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.packageSize`" :rules="formRules.packageSize" class="mb-0px!">
<el-input v-model="row.packageSize" placeholder="请输入打包要求(每包/个)" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="项目名称" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.projectName`" :rules="formRules.projectName" class="mb-0px!">
<el-input v-model="row.projectName" placeholder="请输入项目名称" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="技术要求" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.techRequirements`" :rules="formRules.techRequirements" class="mb-0px!">
<el-input v-model="row.techRequirements" placeholder="请输入技术要求" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="备注" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.remark`" :rules="formRules.remark" class="mb-0px!">
<el-input v-model="row.remark" placeholder="请输入备注" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="打包数量" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.packageNumber`" :rules="formRules.packageNumber" class="mb-0px!">
<el-input v-model="row.packageNumber" placeholder="请输入打包数量" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="工厂完成" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.finishDate`" :rules="formRules.finishDate" class="mb-0px!">
<el-date-picker
v-model="row.finishDate"
type="date"
value-format="x"
placeholder="选择工厂完成"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="装柜时间" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.boxingDate`" :rules="formRules.boxingDate" class="mb-0px!">
<el-date-picker
v-model="row.boxingDate"
type="date"
value-format="x"
placeholder="选择装柜时间"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="到达时间" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.arriveDate`" :rules="formRules.arriveDate" class="mb-0px!">
<el-date-picker
v-model="row.arriveDate"
type="date"
value-format="x"
placeholder="选择到达时间"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="条码" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.barCode`" :rules="formRules.barCode" class="mb-0px!">
<el-input v-model="row.barCode" placeholder="请输入条码" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="附件" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.attachment`" :rules="formRules.attachment" class="mb-0px!">
<UploadFile v-model="row.attachment" :is-show-tip = "false" :limit = "1"/>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="60">
<template #default="{ $index }">
<el-button @click="handleDelete($index)" link></el-button>
</template>
</el-table-column>
</el-table>
</el-form>
<el-row justify="center" class="mt-3">
<el-button @click="handleAdd" round>+ 添加任务单明细</el-button>
<el-button @click="openOrderItemsList" round>+ 从销售单添加</el-button>
</el-row>
<el-row>
<SaleOrderItemsList ref="orderItemsRef" />
</el-row>
</template>
<script setup lang="ts">
import { TaskApi } from '@/api/mes/task'
import { ProductUnitApi, ProductUnitVO } from '@/api/erp/product/unit'
import {ProductApi, ProductVO} from "@/api/erp/product/product";
import SaleOrderItemsList from './SaleOrderItemsList.vue'
const unitList = ref<ProductUnitVO[]>([]) //
const productList = ref<ProductVO[]>([]) //
const props = defineProps<{
taskId: undefined // task ID
}>()
const formLoading = ref(false) //
const formData = ref([])
const formRules = reactive({
productId: [{ required: true, message: '产品ID不能为空', trigger: 'blur' }],
unitId: [{ required: true, message: '单位ID不能为空', trigger: 'blur' }],
taskId: [{ required: true, message: 'task ID不能为空', trigger: 'blur' }],
number: [{ required: true, message: '数量不能为空', trigger: 'blur' }],
packageSize: [{ required: true, message: '打包要求(每包/个)不能为空', trigger: 'blur' }],
isEnable: [{ required: true, message: '是否启用不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref
/** 添加/修改操作 */
const orderItemsRef = ref()
const openOrderItemsList = () => {
console.log("---openOrderItemsList--------")
orderItemsRef.value.open()
}
/** 初始化 */
onMounted(async () => {
//
unitList.value = await ProductUnitApi.getProductUnitSimpleList()
productList.value = await ProductApi.getProductSimpleList()
//
if (formData.value.length === 0) {
handleAdd()
}
})
/** 监听主表的关联字段的变化,加载对应的子表数据 */
watch(
() => props.taskId,
async (val) => {
// 1.
formData.value = []
// 2. val
if (!val) {
return;
}
try {
formLoading.value = true
formData.value = await TaskApi.getTaskDetailListByTaskId(val)
} finally {
formLoading.value = false
}
},
{ immediate: true }
)
/** 新增按钮操作 */
const handleAdd = () => {
const row = {
id: undefined,
productId: undefined,
unitId: undefined,
taskId: undefined,
number: undefined,
packageSize: undefined,
projectName: undefined,
techRequirements: undefined,
remark: undefined,
isEnable: undefined,
packageNumber: undefined,
finishDate: undefined,
boxingDate: undefined,
arriveDate: undefined,
barCode: undefined,
attachment: undefined,
}
row.taskId = props.taskId
formData.value.push(row)
}
/** 删除按钮操作 */
const handleDelete = (index) => {
formData.value.splice(index, 1)
}
/** 表单校验 */
const validate = () => {
return formRef.value.validate()
}
/** 表单值 */
const getData = () => {
return formData.value
}
defineExpose({ validate, getData })
</script>

@ -45,7 +45,7 @@
placeholder="请输入数量"
/>
</el-form-item>
<el-form-item label="打包要求(每包/个)" prop="packageSize">
<el-form-item label="每包/个" prop="packageSize">
<el-input-number
v-model="formData.packageSize"
:min="0"
@ -62,6 +62,45 @@
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="打包数量/包" prop="packageNumber">
<el-input-number
v-model="formData.packageNumber"
:min="0"
class="!w-1/1"
placeholder="请输入数量"
/>
</el-form-item>
<el-form-item label="条码" prop="barCode">
<el-input v-model="formData.barCode" placeholder="请输入条码" />
</el-form-item>
<el-form-item label="附件" prop="attachment">
<UploadFile v-model="formData.attachment" :limit="1"/>
</el-form-item>
<el-form-item label="工厂完成" prop="finishDate">
<el-date-picker
v-model="formData.finishDate"
type="date"
value-format="x"
placeholder="选择工厂完成日期"
/>
</el-form-item>
<el-form-item label="装柜日期" prop="boxingDate">
<el-date-picker
v-model="formData.boxingDate"
type="date"
value-format="x"
placeholder="选择装柜日期"
/>
</el-form-item>
<el-form-item label="到达日期" prop="arriveDate">
<el-date-picker
v-model="formData.arriveDate"
type="date"
value-format="x"
placeholder="选择到达日期"
/>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
@ -92,7 +131,11 @@ const formData = ref({
packageSize: undefined,
projectName: undefined,
techRequirements: undefined,
remark: undefined
remark: undefined,
packageNumber: undefined,
finishDate: undefined,
boxingDate: undefined,
arriveDate: undefined,
})
const formRules = reactive({
productId: [{ required: true, message: '产品ID不能为空', trigger: 'blur' }],

@ -14,10 +14,12 @@
<el-table-column label="产品" align="center" prop="productName" />
<el-table-column label="单位" align="center" prop="unitName" />
<el-table-column label="数量" align="center" prop="number" />
<el-table-column label="打包要求(每包/个)" align="center" prop="packageSize" />
<el-table-column label="每包/个" align="center" prop="packageSize" />
<el-table-column label="交货日期" align="center" prop="finishDate" :formatter="dateFormatter2"/>
<el-table-column label="项目名称" align="center" prop="projectName" />
<el-table-column label="技术要求" align="center" prop="techRequirements" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="订单单号" align="center" prop="saleOrderCode" />
<el-table-column
label="创建时间"
align="center"
@ -58,7 +60,7 @@
<TaskDetailForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { dateFormatter } from '@/utils/formatTime'
import {dateFormatter, dateFormatter2} from '@/utils/formatTime'
import { TaskApi } from '@/api/mes/task'
import TaskDetailForm from './TaskDetailForm.vue'

@ -8,7 +8,7 @@
:inline="true"
label-width="68px"
>
<el-form-item label="编码" prop="code">
<el-form-item label="" prop="code">
<el-input
v-model="queryParams.code"
placeholder="请输入编码"
@ -17,7 +17,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="下达日期" prop="orderDate">
<el-form-item label="下达" prop="orderDate">
<el-date-picker
v-model="queryParams.orderDate"
value-format="YYYY-MM-DD HH:mm:ss"
@ -28,7 +28,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="交货日期" prop="deliveryDate">
<el-form-item label="交货" prop="deliveryDate">
<el-date-picker
v-model="queryParams.deliveryDate"
value-format="YYYY-MM-DD HH:mm:ss"
@ -39,7 +39,7 @@
class="!w-240px"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-form-item label="" prop="status">
<el-select
v-model="queryParams.status"
placeholder="请选择状态"
@ -54,15 +54,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="流程实例的编号" prop="processInstanceId">
<el-input
v-model="queryParams.processInstanceId"
placeholder="请输入流程实例的编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="queryParams.remark"
@ -140,8 +132,17 @@
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="操作" align="center">
<el-table-column label="操作" align="center" min-width="120px">
<template #default="scope">
<el-button
link
type="success"
@click="openSaleForm(scope.row.id)"
v-hasPermi="['mes:task:update']"
>
销售单
</el-button>
<el-button
link
type="primary"
@ -172,6 +173,8 @@
<!-- 表单弹窗添加/修改 -->
<TaskForm ref="formRef" @success="getList" />
<!-- 表单弹窗添加/修改 -->
<TaskAddSaleForm ref="saleFormRef" @success="getList" />
<!-- 子表的列表 -->
<ContentWrap>
<el-tabs model-value="taskDetail">
@ -188,6 +191,7 @@ import { dateFormatter, dateFormatter2 } from '@/utils/formatTime'
import download from '@/utils/download'
import { TaskApi, TaskVO } from '@/api/mes/task'
import TaskForm from './TaskForm.vue'
import TaskAddSaleForm from './TaskAddSaleForm.vue'
import TaskDetailList from './components/TaskDetailList.vue'
/** 生产任务单 列表 */
@ -242,7 +246,11 @@ const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 从销售单添加明细 */
const saleFormRef = ref()
const openSaleForm = (id: number) => {
saleFormRef.value.open(id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
@ -281,4 +289,4 @@ const handleCurrentChange = (row) => {
onMounted(() => {
getList()
})
</script>
</script>

@ -32,7 +32,7 @@ export const createEditorConfig = (
headers: {
Accept: '*',
Authorization: 'Bearer ' + getAccessToken(),
'tenant-id': getTenantId()
'tenantId': getTenantId()
},
// 跨域是否传递 cookie ,默认为 false

@ -76,7 +76,7 @@ const submitForm = async () => {
//
uploadHeaders.value = {
Authorization: 'Bearer ' + getAccessToken(),
'tenant-id': getTenantId()
'tenantId': getTenantId()
}
formLoading.value = true
uploadRef.value!.submit()

Loading…
Cancel
Save