add:增加近期的一些新增需求实现;
This commit is contained in:
@@ -320,7 +320,7 @@
|
||||
<el-table-column prop="start_point_code2" :label="$t('TaskRecord.table.Starting_point_two')" :min-width="flexWidth('start_point_code2',crud.data,$t('TaskRecord.table.Starting_point_two'))" />
|
||||
<el-table-column prop="next_point_code2" :label="$t('TaskRecord.table.Endpoint_two')" :min-width="flexWidth('next_point_code2',crud.data,$t('TaskRecord.table.Endpoint_two'))" />
|
||||
<el-table-column prop="interaction_json" :label="$t('task.select.Interaction_json')" :show-overflow-tooltip="true" width="150px" />
|
||||
<el-table-column prop="matarial" :label="$t('TaskRecord.table.Material')" />
|
||||
<el-table-column prop="temperature" :label="$t('优先级修改记录')" width="135" />
|
||||
<el-table-column prop="quantity" :label="$t('TaskRecord.table.Quantity')" />
|
||||
<el-table-column prop="remark" :label="$t('task.select.Remark')" />
|
||||
<el-table-column prop="create_by" :label="$t('task.select.Creator')" />
|
||||
|
||||
@@ -123,6 +123,17 @@
|
||||
>
|
||||
{{ $t('auto.common.synchronous') }}
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
v-permission="['admin','task:edit']"
|
||||
class="filter-item"
|
||||
size="mini"
|
||||
type="warning"
|
||||
icon="el-icon-edit"
|
||||
@click="handlePriorityClick"
|
||||
>
|
||||
{{ $t('修改优先级') }}
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表单组件-->
|
||||
<el-dialog :close-on-click-modal="false" :visible.sync="formDia" :title="crud.status.title" width="1100px">
|
||||
@@ -133,22 +144,22 @@
|
||||
<el-form-item v-if="false" label="任务标识" prop="task_id">
|
||||
<el-input v-model="form.task_id" style="width: 240px;" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.Material_type')">
|
||||
<el-select
|
||||
v-model="form.material"
|
||||
style="width: 370px;"
|
||||
filterable
|
||||
:placeholder="$t('task.select.Placeholder')"
|
||||
@change="isDisabled=false"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.material_type"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item :label="$t('task.txt_box.Material_type')">-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="form.material"-->
|
||||
<!-- style="width: 370px;"-->
|
||||
<!-- filterable-->
|
||||
<!-- :placeholder="$t('task.select.Placeholder')"-->
|
||||
<!-- @change="isDisabled=false"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in dict.material_type"-->
|
||||
<!-- :key="item.id"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value"-->
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item :label="$t('task.txt_box.car_type')">
|
||||
<el-select
|
||||
v-model="form.car_type"
|
||||
@@ -165,9 +176,9 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.car_width')">
|
||||
<el-input v-model="form.car_width" style="width: 370px;" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item :label="$t('task.txt_box.car_width')">-->
|
||||
<!-- <el-input v-model="form.car_width" style="width: 370px;" @change="isDisabled=false" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item :label="$t('task.txt_box.Task_type')">
|
||||
<el-select
|
||||
v-model="form.task_type"
|
||||
@@ -200,40 +211,40 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.AGV_system')">
|
||||
<el-select
|
||||
v-model="form.agv_system_type"
|
||||
style="width: 370px;"
|
||||
filterable
|
||||
clearable
|
||||
:placeholder="$t('task.select.Placeholder')"
|
||||
@change="isDisabled=false"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.agv_system_type"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.Routing_scheme')">
|
||||
<el-select
|
||||
v-model="form.route_plan_code"
|
||||
style="width: 370px;"
|
||||
filterable
|
||||
:placeholder="$t('task.select.Placeholder')"
|
||||
default-first-option
|
||||
@change="isDisabled=false"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in routeList"
|
||||
:key="item.plan_code"
|
||||
:label="item.plan_name"
|
||||
:value="item.plan_code"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item :label="$t('task.txt_box.AGV_system')">-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="form.agv_system_type"-->
|
||||
<!-- style="width: 370px;"-->
|
||||
<!-- filterable-->
|
||||
<!-- clearable-->
|
||||
<!-- :placeholder="$t('task.select.Placeholder')"-->
|
||||
<!-- @change="isDisabled=false"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in dict.agv_system_type"-->
|
||||
<!-- :key="item.id"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value"-->
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="$t('task.txt_box.Routing_scheme')">-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="form.route_plan_code"-->
|
||||
<!-- style="width: 370px;"-->
|
||||
<!-- filterable-->
|
||||
<!-- :placeholder="$t('task.select.Placeholder')"-->
|
||||
<!-- default-first-option-->
|
||||
<!-- @change="isDisabled=false"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in routeList"-->
|
||||
<!-- :key="item.plan_code"-->
|
||||
<!-- :label="item.plan_name"-->
|
||||
<!-- :value="item.plan_code"-->
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item :label="$t('task.txt_box.agv_action_type')">
|
||||
<el-select
|
||||
v-model="form.agv_action_type"
|
||||
@@ -350,9 +361,9 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="行架任务类型">
|
||||
<el-input v-model="form.truss_type" style="width: 370px;" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="行架任务类型">-->
|
||||
<!-- <el-input v-model="form.truss_type" style="width: 370px;" @change="isDisabled=false" />-->
|
||||
<!-- </el-form-item>-->
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<div class="grid-content bg-purple-light" />
|
||||
@@ -459,30 +470,30 @@
|
||||
<el-form-item :label="$t('task.txt_box.Vehicle_number')">
|
||||
<el-input v-model="form.vehicle_code" style="width: 370px;" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.empty_shaft_position')">
|
||||
<el-select
|
||||
v-model="form.empty_site"
|
||||
style="width: 370px;"
|
||||
filterable
|
||||
clearable
|
||||
:placeholder="$t('task.txt_box.empty_shaft_position')"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.empty_shaft_position"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.txt_box.extension_field')">
|
||||
<div>
|
||||
<el-button @click="openDialog">{{ $t('task.select.Placeholder') }}</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('task.select.Description')" prop="description">
|
||||
<el-input v-model="form.remark" style="width: 370px;" type="textarea" @change="isDisabled=false" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item :label="$t('task.txt_box.empty_shaft_position')">-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="form.empty_site"-->
|
||||
<!-- style="width: 370px;"-->
|
||||
<!-- filterable-->
|
||||
<!-- clearable-->
|
||||
<!-- :placeholder="$t('task.txt_box.empty_shaft_position')"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in dict.empty_shaft_position"-->
|
||||
<!-- :key="item.id"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.value"-->
|
||||
<!-- />-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="$t('task.txt_box.extension_field')">-->
|
||||
<!-- <div>-->
|
||||
<!-- <el-button @click="openDialog">{{ $t('task.select.Placeholder') }}</el-button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item :label="$t('task.select.Description')" prop="description">-->
|
||||
<!-- <el-input v-model="form.remark" style="width: 370px;" type="textarea" @change="isDisabled=false" />-->
|
||||
<!-- </el-form-item>-->
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
@@ -543,6 +554,21 @@
|
||||
</div>
|
||||
</el-form>
|
||||
</el-dialog>
|
||||
<!-- 修改优先级弹框 -->
|
||||
<el-dialog :close-on-click-modal="false" :visible.sync="priorityDialogVisible" title="修改优先级" width="500px">
|
||||
<el-form ref="priorityForm" :model="priorityForm" :rules="priorityRules" size="small" label-width="120px">
|
||||
<el-form-item label="任务号" prop="task_code">
|
||||
<el-input v-model="priorityForm.task_code" style="width: 300px;" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="优先级" prop="priority">
|
||||
<el-input v-model.number="priorityForm.priority" style="width: 300px;" type="number" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="text" @click="priorityDialogVisible=false">{{ $t('task.select.Cancel') }}</el-button>
|
||||
<el-button type="primary" @click="submitPriority">{{ $t('task.select.Confirm') }}</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="25" />
|
||||
@@ -653,7 +679,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudTask from '@/api/acs/task/task'
|
||||
import crudTask, { updatePriority } from '@/api/acs/task/task'
|
||||
import CRUD, { crud, header, presenter } from '@crud/crud'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
@@ -800,6 +826,28 @@ export default {
|
||||
value: ''
|
||||
}],
|
||||
dialogVisible: false,
|
||||
priorityDialogVisible: false,
|
||||
priorityForm: {
|
||||
task_code: '',
|
||||
priority: 1
|
||||
},
|
||||
priorityRules: {
|
||||
priority: [
|
||||
{ required: true, message: '请输入优先级', trigger: 'blur' },
|
||||
{ type: 'number', message: '优先级必须为数字', trigger: 'blur' },
|
||||
{ validator: (rule, value, callback) => {
|
||||
if (value === '' || value === null) {
|
||||
callback(new Error('请输入优先级'))
|
||||
} else if (!Number.isInteger(value)) {
|
||||
callback(new Error('优先级必须为整数'))
|
||||
} else if (value < 0 || value >= 99) {
|
||||
callback(new Error('优先级必须小于99'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
}, trigger: 'blur' }
|
||||
]
|
||||
},
|
||||
rules: {
|
||||
start_point_code: [
|
||||
{ required: true, message: '起点不能为空', trigger: 'change' }
|
||||
@@ -919,6 +967,63 @@ export default {
|
||||
console.log(err.response.data.message)
|
||||
})
|
||||
},
|
||||
handlePriorityClick() {
|
||||
const selections = this.crud.selections
|
||||
if (!selections || selections.length === 0) {
|
||||
this.crud.notify('请至少选择一条待执行的任务', CRUD.NOTIFICATION_TYPE.WARNING)
|
||||
return
|
||||
}
|
||||
// 校验所有选中的任务状态必须为 '0'(待执行)
|
||||
const invalidSelections = selections.filter(item => item.task_status !== '0')
|
||||
if (invalidSelections.length > 0) {
|
||||
this.crud.notify('只能选择状态为"就绪"的任务', CRUD.NOTIFICATION_TYPE.WARNING)
|
||||
return
|
||||
}
|
||||
// 取第一个选中任务的 task_code 展示
|
||||
this.priorityForm.task_code = selections[0].task_code
|
||||
this.priorityForm.priority = selections[0].priority ? Number(selections[0].priority) : 1
|
||||
this.priorityDialogVisible = true
|
||||
},
|
||||
submitPriority() {
|
||||
this.$refs.priorityForm.validate((valid) => {
|
||||
if (!valid) return
|
||||
const selections = this.crud.selections
|
||||
const taskIds = selections.map(item => item.task_id)
|
||||
const priority = this.priorityForm.priority
|
||||
const firstTask = selections[0]
|
||||
const doUpdate = (batchStartPointCode) => {
|
||||
const params = { taskIds, priority }
|
||||
if (batchStartPointCode) {
|
||||
params.start_point_code = batchStartPointCode
|
||||
}
|
||||
updatePriority(params).then(res => {
|
||||
this.crud.notify('修改成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.priorityDialogVisible = false
|
||||
this.crud.toQuery()
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
// 检查是否为起点任务,询问是否批量更新同一排
|
||||
const startDeviceCode = firstTask.start_device_code
|
||||
const isStartTask = startDeviceCode &&
|
||||
(startDeviceCode.includes('BCPRK') || startDeviceCode.includes('CPRK'))
|
||||
if (isStartTask) {
|
||||
const prefix = startDeviceCode.split('-')[0]
|
||||
this.$confirm(
|
||||
'检测该任务起点【' + prefix + '】的同一排存在多个任务,是否一起修改优先级?',
|
||||
'提示',
|
||||
{ confirmButtonText: '是,一起修改', cancelButtonText: '否,仅修改当前', type: 'warning' }
|
||||
).then(() => {
|
||||
doUpdate(startDeviceCode)
|
||||
}).catch(() => {
|
||||
doUpdate()
|
||||
})
|
||||
} else {
|
||||
doUpdate()
|
||||
}
|
||||
})
|
||||
},
|
||||
reload() {
|
||||
crudTask.reload().then(res => {
|
||||
this.crud.toQuery()
|
||||
|
||||
Reference in New Issue
Block a user