Browse Source

规格

master
han\hanst 4 days ago
parent
commit
b8ccfaa234
  1. 17
      src/views/modules/longtron/production-plan-cable-cop-task.vue
  2. 25
      src/views/modules/longtron/production-plan-home-order.vue
  3. 41
      src/views/modules/longtron/production-plan-machining-task.vue
  4. 42
      src/views/modules/longtron/production-plan-renovation-order.vue
  5. 18
      src/views/modules/longtron/screen-renovation-progress.vue

17
src/views/modules/longtron/production-plan-cable-cop-task.vue

@ -43,6 +43,14 @@
v-loading="dataListLoading" v-loading="dataListLoading"
style="width: 100%" style="width: 100%"
@current-change="onCurrentRowChange"> @current-change="onCurrentRowChange">
<el-table-column label="操作" width="200" align="center">
<template slot-scope="scope">
<a type="text" @click="openEditDialog(scope.row)" v-if="scope.row.status === '已排产'">修改</a>
<a type="text" @click="openAssignDialog(scope.row)" v-if="scope.row.status !== '已完成' && scope.row.currentNode!=='全部完成'">分配人员</a>
<a type="text" @click="finishTask(scope.row)" v-if="scope.row.status !== '已完成'">完工</a>
<a type="text" style="color:#F56C6C" @click="deleteTask(scope.row)" v-if="scope.row.status !== '已完成'">删除</a>
</template>
</el-table-column>
<el-table-column type="index" label="#" width="50" align="center"></el-table-column> <el-table-column type="index" label="#" width="50" align="center"></el-table-column>
<el-table-column prop="taskNo" label="任务单号" width="140" align="center"></el-table-column> <el-table-column prop="taskNo" label="任务单号" width="140" align="center"></el-table-column>
<el-table-column prop="taskType" label="任务类型" width="100" align="center"> <el-table-column prop="taskType" label="任务类型" width="100" align="center">
@ -70,14 +78,7 @@
<el-table-column prop="finishDate" label="完工日期" width="110" align="center"> <el-table-column prop="finishDate" label="完工日期" width="110" align="center">
<template slot-scope="scope">{{ scope.row.finishDate || '-' }}</template> <template slot-scope="scope">{{ scope.row.finishDate || '-' }}</template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="300" align="center">
<template slot-scope="scope">
<a type="text" @click="openEditDialog(scope.row)" v-if="scope.row.status === '已排产'">修改</a>
<a type="text" @click="openAssignDialog(scope.row)" v-if="scope.row.status !== '已完成' && scope.row.currentNode!=='全部完成'">分配人员</a>
<a type="text" @click="finishTask(scope.row)" v-if="scope.row.status !== '已完成'">完工</a>
<a type="text" style="color:#F56C6C" @click="deleteTask(scope.row)" v-if="scope.row.status !== '已完成'">删除</a>
</template>
</el-table-column>
</el-table> </el-table>
<el-pagination <el-pagination

25
src/views/modules/longtron/production-plan-home-order.vue

@ -664,8 +664,31 @@ export default {
this.saveHeaderData = row ? { ...row, autoAssignAllUsers: !!row.autoAssignAllUsers, nodeReportMode: row.nodeReportMode || 'PARALLEL' } : { orderNo: '', projectNo: '', modelNo: '', color: '', floorCount: 1, specialRequirement: '', planDeliveryDate: '', status: '已排产', autoAssignAllUsers: true, nodeReportMode: 'PARALLEL', nodeList: [] } this.saveHeaderData = row ? { ...row, autoAssignAllUsers: !!row.autoAssignAllUsers, nodeReportMode: row.nodeReportMode || 'PARALLEL' } : { orderNo: '', projectNo: '', modelNo: '', color: '', floorCount: 1, specialRequirement: '', planDeliveryDate: '', status: '已排产', autoAssignAllUsers: true, nodeReportMode: 'PARALLEL', nodeList: [] }
this.setUp.reviewFlag = true this.setUp.reviewFlag = true
}, },
isProjectNoDuplicate(projectNo, currentOrderNo) {
const normalizedProjectNo = String(projectNo || '').trim().toUpperCase()
if (!normalizedProjectNo) {
return false
}
return (this.dataList || []).some(item => {
if (!item || !item.orderNo) {
return false
}
if (currentOrderNo && item.orderNo === currentOrderNo) {
return false
}
const itemProjectNo = String(item.projectNo || '').trim().toUpperCase()
return itemProjectNo && itemProjectNo === normalizedProjectNo
})
},
saveOrder() { saveOrder() {
if (!this.saveHeaderData.projectNo || !this.saveHeaderData.modelNo) return this.$message.warning('请先填写项目号和型号')
const projectNo = String(this.saveHeaderData.projectNo || '').trim()
const modelNo = String(this.saveHeaderData.modelNo || '').trim()
if (!projectNo || !modelNo) return this.$message.warning('请先填写项目号和型号')
if (this.isProjectNoDuplicate(projectNo, this.saveHeaderData.orderNo)) {
return this.$message.warning(`项目号【${projectNo}】已存在,不能重复`)
}
this.saveHeaderData.projectNo = projectNo
this.saveHeaderData.modelNo = modelNo
this.setUp.saveButton = true this.setUp.saveButton = true
saveHomeLiftOrder(this.saveHeaderData).then(({data}) => { saveHomeLiftOrder(this.saveHeaderData).then(({data}) => {
this.setUp.saveButton = false this.setUp.saveButton = false

41
src/views/modules/longtron/production-plan-machining-task.vue

@ -4,6 +4,12 @@
<el-form-item label="物料号"> <el-form-item label="物料号">
<el-input v-model="searchData.modelNo" clearable placeholder="请输入物料号" style="width: 160px"></el-input> <el-input v-model="searchData.modelNo" clearable placeholder="请输入物料号" style="width: 160px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="物料名称">
<el-input v-model="searchData.materialName" clearable placeholder="请输入物料名称" style="width: 160px"></el-input>
</el-form-item>
<el-form-item label="规格">
<el-input v-model="searchData.materialSpec" clearable placeholder="请输入规格" style="width: 160px"></el-input>
</el-form-item>
<el-form-item label="状态"> <el-form-item label="状态">
<el-select v-model="searchData.status" clearable placeholder="全部" style="width: 120px"> <el-select v-model="searchData.status" clearable placeholder="全部" style="width: 120px">
<el-option label="已排产" value="已排产"></el-option> <el-option label="已排产" value="已排产"></el-option>
@ -34,9 +40,19 @@
v-loading="dataListLoading" v-loading="dataListLoading"
style="width: 100%" style="width: 100%"
@current-change="onCurrentRowChange"> @current-change="onCurrentRowChange">
<el-table-column label="操作" width="200" align="center">
<template slot-scope="scope">
<a type="text" @click="openEditDialog(scope.row)" v-if="scope.row.status === '已排产'">修改</a>
<a type="text" @click="openAssignDialog(scope.row)" v-if="scope.row.status !== '已完成' && scope.row.currentNode!=='全部完成'">分配人员</a>
<a type="text" @click="finishTask(scope.row)" v-if="scope.row.status !== '已完成'">完工</a>
<a type="text" style="color:#F56C6C" @click="deleteTask(scope.row)" v-if="scope.row.status !== '已完成'">删除</a>
</template>
</el-table-column>
<el-table-column type="index" label="#" width="50" align="center"></el-table-column> <el-table-column type="index" label="#" width="50" align="center"></el-table-column>
<!-- <el-table-column prop="orderNo" label="任务单号" width="180" align="center"></el-table-column>--> <!-- <el-table-column prop="orderNo" label="任务单号" width="180" align="center"></el-table-column>-->
<el-table-column prop="modelNo" label="物料号" width="160" align="center"></el-table-column> <el-table-column prop="modelNo" label="物料号" width="160" align="center"></el-table-column>
<el-table-column prop="materialName" label="物料名称" width="160" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="materialSpec" label="规格" width="160" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="taskQty" label="计划数量" width="100" align="center"></el-table-column> <el-table-column prop="taskQty" label="计划数量" width="100" align="center"></el-table-column>
<el-table-column prop="reportQty" label="累计报工数量" width="120" align="center"></el-table-column> <el-table-column prop="reportQty" label="累计报工数量" width="120" align="center"></el-table-column>
<el-table-column prop="currentNode" label="当前节点" width="120" align="center"></el-table-column> <el-table-column prop="currentNode" label="当前节点" width="120" align="center"></el-table-column>
@ -55,14 +71,7 @@
<el-table-column prop="finishDate" label="完工日期" width="120" align="center"> <el-table-column prop="finishDate" label="完工日期" width="120" align="center">
<template slot-scope="scope">{{ scope.row.finishDate || '-' }}</template> <template slot-scope="scope">{{ scope.row.finishDate || '-' }}</template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="300" align="center">
<template slot-scope="scope">
<a type="text" @click="openEditDialog(scope.row)" v-if="scope.row.status === '已排产'">修改</a>
<a type="text" @click="openAssignDialog(scope.row)" v-if="scope.row.status !== '已完成' && scope.row.currentNode!=='全部完成'">分配人员</a>
<a type="text" @click="finishTask(scope.row)" v-if="scope.row.status !== '已完成'">完工</a>
<a type="text" style="color:#F56C6C" @click="deleteTask(scope.row)" v-if="scope.row.status !== '已完成'">删除</a>
</template>
</el-table-column>
</el-table> </el-table>
<el-pagination <el-pagination
@ -139,6 +148,10 @@
class="edit-form"> class="edit-form">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"><el-form-item label="物料号" required><el-input v-model="saveHeaderData.modelNo"></el-input></el-form-item></el-col> <el-col :span="12"><el-form-item label="物料号" required><el-input v-model="saveHeaderData.modelNo"></el-input></el-form-item></el-col>
<el-col :span="12"><el-form-item label="物料名称" required><el-input v-model="saveHeaderData.materialName"></el-input></el-form-item></el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12"><el-form-item label="规格" required><el-input v-model="saveHeaderData.materialSpec"></el-input></el-form-item></el-col>
<el-col :span="12"><el-form-item label="计划数量" required><el-input v-model="saveHeaderData.taskQty" :min="1" :max="999999" style="width: 100%"></el-input></el-form-item></el-col> <el-col :span="12"><el-form-item label="计划数量" required><el-input v-model="saveHeaderData.taskQty" :min="1" :max="999999" style="width: 100%"></el-input></el-form-item></el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
@ -218,7 +231,7 @@ export default {
name: 'ProductionPlanMachiningTask', name: 'ProductionPlanMachiningTask',
data() { data() {
return { return {
searchData: { modelNo: '', status: '', planStartDate: '', planEndDate: '', page: 1, limit: 20 },
searchData: { modelNo: '', materialName: '', materialSpec: '', status: '', planStartDate: '', planEndDate: '', page: 1, limit: 20 },
saveHeaderData: {}, saveHeaderData: {},
reportData: { orderNo: '', taskNo: '', nodeCode: 'machiningProduction', reportQty: '', remark: '' }, reportData: { orderNo: '', taskNo: '', nodeCode: 'machiningProduction', reportQty: '', remark: '' },
setUp: { reviewFlag: false, reportFlag: false, assignFlag: false, saveButton: false, reportButton: false, assignButton: false }, setUp: { reviewFlag: false, reportFlag: false, assignFlag: false, saveButton: false, reportButton: false, assignButton: false },
@ -270,6 +283,8 @@ export default {
orderNo: 'MOCK-MACH-001', orderNo: 'MOCK-MACH-001',
projectNo: 'MAT-120001', projectNo: 'MAT-120001',
modelNo: 'MAT-120001', modelNo: 'MAT-120001',
materialName: '导轨压板',
materialSpec: 'DG-80-12',
taskQty: 120, taskQty: 120,
reportQty: 30, reportQty: 30,
autoAssignAllUsers: true, autoAssignAllUsers: true,
@ -285,6 +300,8 @@ export default {
orderNo: 'MOCK-MACH-002', orderNo: 'MOCK-MACH-002',
projectNo: 'MAT-120188', projectNo: 'MAT-120188',
modelNo: 'MAT-120188', modelNo: 'MAT-120188',
materialName: '轿底连接件',
materialSpec: 'JD-LJ-06',
taskQty: 240, taskQty: 240,
reportQty: 0, reportQty: 0,
autoAssignAllUsers: true, autoAssignAllUsers: true,
@ -341,17 +358,19 @@ export default {
}) })
}, },
resetQuery() { resetQuery() {
this.searchData = { modelNo: '', status: '', planStartDate: '', planEndDate: '', page: 1, limit: 20 }
this.searchData = { modelNo: '', materialName: '', materialSpec: '', status: '', planStartDate: '', planEndDate: '', page: 1, limit: 20 }
this.searchTable('Y') this.searchTable('Y')
}, },
openEditDialog(row) { openEditDialog(row) {
this.saveHeaderData = row this.saveHeaderData = row
? { ...row, autoAssignAllUsers: !!row.autoAssignAllUsers, nodeReportMode: row.nodeReportMode || 'PARALLEL' } ? { ...row, autoAssignAllUsers: !!row.autoAssignAllUsers, nodeReportMode: row.nodeReportMode || 'PARALLEL' }
: { orderNo: '', modelNo: '', taskQty: 1, reportQty: 0, planFinishDate: '', status: '已排产', autoAssignAllUsers: true, nodeReportMode: 'PARALLEL', nodeList: [] }
: { orderNo: '', modelNo: '', materialName: '', materialSpec: '', taskQty: 1, reportQty: 0, planFinishDate: '', status: '已排产', autoAssignAllUsers: true, nodeReportMode: 'PARALLEL', nodeList: [] }
this.setUp.reviewFlag = true this.setUp.reviewFlag = true
}, },
saveTask() { saveTask() {
if (!this.saveHeaderData.modelNo) return this.$message.warning('请先填写物料号') if (!this.saveHeaderData.modelNo) return this.$message.warning('请先填写物料号')
if (!this.saveHeaderData.materialName) return this.$message.warning('请先填写物料名称')
if (!this.saveHeaderData.materialSpec) return this.$message.warning('请先填写规格')
if (!this.saveHeaderData.taskQty || Number(this.saveHeaderData.taskQty) <= 0) return this.$message.warning('请输入有效的计划数量') if (!this.saveHeaderData.taskQty || Number(this.saveHeaderData.taskQty) <= 0) return this.$message.warning('请输入有效的计划数量')
if (!this.saveHeaderData.planFinishDate) return this.$message.warning('请选择计划完工日期') if (!this.saveHeaderData.planFinishDate) return this.$message.warning('请选择计划完工日期')
const payload = { const payload = {

42
src/views/modules/longtron/production-plan-renovation-order.vue

@ -40,6 +40,14 @@
v-loading="dataListLoading" v-loading="dataListLoading"
style="width: 100%" style="width: 100%"
@current-change="onCurrentRowChange"> @current-change="onCurrentRowChange">
<el-table-column label="操作" width="200" align="center" >
<template slot-scope="scope">
<a type="text" @click="openEditDialog(scope.row)" v-if="scope.row.status === '已排产'">修改</a>
<a type="text" @click="openAssignDialog(scope.row)" v-if="scope.row.status !== '已完成' && scope.row.currentNode!=='全部完成'">分配人员</a>
<a type="text" @click="finishOrder(scope.row)" v-if="scope.row.status !== '已完成'">完工</a>
<a type="text" style="color:#F56C6C" @click="deleteOrder(scope.row)" v-if="scope.row.status !== '已完成'">删除</a>
</template>
</el-table-column>
<el-table-column type="index" label="#" width="50" align="center"></el-table-column> <el-table-column type="index" label="#" width="50" align="center"></el-table-column>
<el-table-column prop="projectNo" label="项目号" width="120" align="center"></el-table-column> <el-table-column prop="projectNo" label="项目号" width="120" align="center"></el-table-column>
<el-table-column prop="modelNo" label="型号" width="130" align="center"></el-table-column> <el-table-column prop="modelNo" label="型号" width="130" align="center"></el-table-column>
@ -62,14 +70,7 @@
<el-table-column prop="finishDate" label="完工日期" width="120" align="center"> <el-table-column prop="finishDate" label="完工日期" width="120" align="center">
<template slot-scope="scope">{{ scope.row.finishDate || '-' }}</template> <template slot-scope="scope">{{ scope.row.finishDate || '-' }}</template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="300" align="center" >
<template slot-scope="scope">
<a type="text" @click="openEditDialog(scope.row)" v-if="scope.row.status === '已排产'">修改</a>
<a type="text" @click="openAssignDialog(scope.row)" v-if="scope.row.status !== '已完成' && scope.row.currentNode!=='全部完成'">分配人员</a>
<a type="text" @click="finishOrder(scope.row)" v-if="scope.row.status !== '已完成'">完工</a>
<a type="text" style="color:#F56C6C" @click="deleteOrder(scope.row)" v-if="scope.row.status !== '已完成'">删除</a>
</template>
</el-table-column>
</el-table> </el-table>
<el-pagination <el-pagination
@ -691,8 +692,31 @@ export default {
this.saveHeaderData = row ? { ...row, autoAssignAllUsers: !!row.autoAssignAllUsers, nodeReportMode: row.nodeReportMode || 'PARALLEL' } : { orderNo: '', projectNo: '', modelNo: '', color: '', floorCount: 1, specialRequirement: '', planDeliveryDate: '', status: '已排产', autoAssignAllUsers: true, nodeReportMode: 'PARALLEL', nodeList: [] } this.saveHeaderData = row ? { ...row, autoAssignAllUsers: !!row.autoAssignAllUsers, nodeReportMode: row.nodeReportMode || 'PARALLEL' } : { orderNo: '', projectNo: '', modelNo: '', color: '', floorCount: 1, specialRequirement: '', planDeliveryDate: '', status: '已排产', autoAssignAllUsers: true, nodeReportMode: 'PARALLEL', nodeList: [] }
this.setUp.reviewFlag = true this.setUp.reviewFlag = true
}, },
isProjectNoDuplicate(projectNo, currentOrderNo) {
const normalizedProjectNo = String(projectNo || '').trim().toUpperCase()
if (!normalizedProjectNo) {
return false
}
return (this.dataList || []).some(item => {
if (!item || !item.orderNo) {
return false
}
if (currentOrderNo && item.orderNo === currentOrderNo) {
return false
}
const itemProjectNo = String(item.projectNo || '').trim().toUpperCase()
return itemProjectNo && itemProjectNo === normalizedProjectNo
})
},
saveOrder() { saveOrder() {
if (!this.saveHeaderData.projectNo || !this.saveHeaderData.modelNo) return this.$message.warning('请先填写项目号和型号')
const projectNo = String(this.saveHeaderData.projectNo || '').trim()
const modelNo = String(this.saveHeaderData.modelNo || '').trim()
if (!projectNo || !modelNo) return this.$message.warning('请先填写项目号和型号')
if (this.isProjectNoDuplicate(projectNo, this.saveHeaderData.orderNo)) {
return this.$message.warning(`项目号【${projectNo}】已存在,不能重复`)
}
this.saveHeaderData.projectNo = projectNo
this.saveHeaderData.modelNo = modelNo
this.setUp.saveButton = true this.setUp.saveButton = true
saveRenovationOrder(this.saveHeaderData).then(({data}) => { saveRenovationOrder(this.saveHeaderData).then(({data}) => {
this.setUp.saveButton = false this.setUp.saveButton = false

18
src/views/modules/longtron/screen-renovation-progress.vue

@ -50,15 +50,15 @@
</div> </div>
<el-table class="board-table" :data="displayRenovationList" :height="tableHeightTop" border stripe> <el-table class="board-table" :data="displayRenovationList" :height="tableHeightTop" border stripe>
<el-table-column type="index" label="序号" width="54" align="center"></el-table-column> <el-table-column type="index" label="序号" width="54" align="center"></el-table-column>
<el-table-column prop="projectNo" label="项目号" min-width="120" align="center"></el-table-column>
<el-table-column prop="projectNo" label="项目号" min-width="80" align="center"></el-table-column>
<el-table-column prop="floors" label="楼层" min-width="70" align="center"></el-table-column> <el-table-column prop="floors" label="楼层" min-width="70" align="center"></el-table-column>
<el-table-column prop="planFinishDate" label="计划完工日期" min-width="120" align="center"></el-table-column>
<el-table-column label="仓库配料" width="90" align="center"><template slot-scope="scope"><span :class="getNodeCellClass(scope.row, 'stocking')"></span></template></el-table-column>
<el-table-column label="组装" width="84" align="center"><template slot-scope="scope"><span :class="getNodeCellClass(scope.row, 'assy')"></span></template></el-table-column>
<el-table-column label="检验" width="84" align="center"><template slot-scope="scope"><span :class="getNodeCellClass(scope.row, 'inspect')"></span></template></el-table-column>
<el-table-column label="打包" width="84" align="center"><template slot-scope="scope"><span :class="getNodeCellClass(scope.row, 'pack')"></span></template></el-table-column>
<el-table-column prop="status" label="订单状态" width="96" align="center"><template slot-scope="scope"><el-tag class="board-tag" :class="getStatusTagClass(scope.row.status)" size="small">{{ scope.row.status }}</el-tag></template></el-table-column>
<el-table-column prop="finishDate" label="完工时间" width="118" align="center"><template slot-scope="scope">{{ scope.row.finishDate || '-' }}</template></el-table-column>
<el-table-column prop="planFinishDate" label="计划完工日期" min-width="100" align="center"></el-table-column>
<el-table-column label="仓库配料" min-width="90" align="center"><template slot-scope="scope"><span :class="getNodeCellClass(scope.row, 'stocking')"></span></template></el-table-column>
<el-table-column label="组装" min-width="84" align="center"><template slot-scope="scope"><span :class="getNodeCellClass(scope.row, 'assy')"></span></template></el-table-column>
<el-table-column label="检验" min-width="84" align="center"><template slot-scope="scope"><span :class="getNodeCellClass(scope.row, 'inspect')"></span></template></el-table-column>
<el-table-column label="打包" min-width="84" align="center"><template slot-scope="scope"><span :class="getNodeCellClass(scope.row, 'pack')"></span></template></el-table-column>
<el-table-column prop="status" label="订单状态" min-width="96" align="center"><template slot-scope="scope"><el-tag class="board-tag" :class="getStatusTagClass(scope.row.status)" size="small">{{ scope.row.status }}</el-tag></template></el-table-column>
<el-table-column prop="finishDate" label="完工时间" width="100" align="center"><template slot-scope="scope">{{ scope.row.finishDate || '-' }}</template></el-table-column>
</el-table> </el-table>
</div> </div>
@ -97,6 +97,7 @@
<el-table class="board-table" :data="displayMachiningList" :height="tableHeightBottom" border stripe> <el-table class="board-table" :data="displayMachiningList" :height="tableHeightBottom" border stripe>
<el-table-column type="index" label="序号" width="54" align="center"></el-table-column> <el-table-column type="index" label="序号" width="54" align="center"></el-table-column>
<el-table-column prop="modelNo" label="物料号" min-width="170" align="center"></el-table-column> <el-table-column prop="modelNo" label="物料号" min-width="170" align="center"></el-table-column>
<el-table-column prop="materialSpec" label="规格" min-width="120" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="taskQty" label="计划数量" min-width="88" align="center"></el-table-column> <el-table-column prop="taskQty" label="计划数量" min-width="88" align="center"></el-table-column>
<el-table-column prop="reportQty" label="实际数量" min-width="88" align="center"></el-table-column> <el-table-column prop="reportQty" label="实际数量" min-width="88" align="center"></el-table-column>
<el-table-column prop="planFinishDate" label="计划完工日期" min-width="120" align="center"></el-table-column> <el-table-column prop="planFinishDate" label="计划完工日期" min-width="120" align="center"></el-table-column>
@ -294,6 +295,7 @@ export default {
.filter(item => STATUS_ALLOW_LIST.includes(item.status)) .filter(item => STATUS_ALLOW_LIST.includes(item.status))
.map(item => ({ .map(item => ({
modelNo: item.modelNo || '', modelNo: item.modelNo || '',
materialSpec: item.materialSpec || '',
planFinishDate: item.planFinishDate || '', planFinishDate: item.planFinishDate || '',
status: item.status || '', status: item.status || '',
finishDate: item.finishDate || '', finishDate: item.finishDate || '',

Loading…
Cancel
Save