feat(wms/todo,mes/qc): 新增质保书审批代办页并优化检验任务页面
1. 待办页面新增质保书审批标签页,添加权限控制并引入对应组件 2. 方案选择组件新增任务类型筛选和所属单位回传 3. 检验任务页面重构搜索栏,新增所属单位和任务类型筛选,优化列表展示样式和布局 4. 补充相关接口调用和表单参数完善
This commit is contained in:
@@ -64,6 +64,14 @@
|
||||
<el-input v-model="form.taskCode" placeholder="请输入任务编号" style="width: 280px;" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-form :model="form" ref="taskForm" label-width="80px" size="small">
|
||||
<el-form-item label="任务类型" prop="taskType" :rules="[{ required: true, message: '请选择任务类型', trigger: 'blur' }]">
|
||||
<el-select v-model="form.taskType" placeholder="请选择任务类型" style="width: 280px;">
|
||||
<el-option label="内控检验" value="内控检验" />
|
||||
<el-option label="产品检验" value="产品检验" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div style="margin-bottom: 8px;">
|
||||
<CoilSelector use-trigger multiple @confirm="handleCoilConfirm">
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="small">选择钢卷</el-button>
|
||||
@@ -207,6 +215,7 @@ export default {
|
||||
},
|
||||
handleSchemeClick(row) {
|
||||
this.selectedTemplate = row;
|
||||
this.form.belongCompany = row.templateUnit || undefined;
|
||||
this.loadCheckItems(row);
|
||||
},
|
||||
loadCheckItems(template) {
|
||||
@@ -236,6 +245,8 @@ export default {
|
||||
this.$emit("confirm", {
|
||||
template: this.selectedTemplate,
|
||||
taskCode: this.form.taskCode,
|
||||
taskType: this.form.taskType,
|
||||
belongCompany: this.form.belongCompany || undefined,
|
||||
coilIds: coilIds || undefined
|
||||
});
|
||||
this.dialogVisible = false;
|
||||
|
||||
@@ -1,37 +1,43 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="taskQueryParams" ref="taskQueryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<div style="margin-bottom: 16px;">
|
||||
<div style="display: flex; align-items: center; margin-bottom: 6px;">
|
||||
<span
|
||||
style="font-size: 13px; color: #909399; white-space: nowrap; margin-right: 12px; width: 68px; text-align: right;">所属单位:</span>
|
||||
<el-radio-group v-model="selectedCompany" @change="handleCompanyChange" size="small">
|
||||
<el-radio-button label="">全部</el-radio-button>
|
||||
<el-radio-button v-for="company in companyOptions" :key="company" :label="company">{{ company }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<div v-if="selectedCompany" style="display: flex; align-items: center;">
|
||||
<span
|
||||
style="font-size: 13px; color: #909399; white-space: nowrap; margin-right: 12px; width: 68px; text-align: right;">方案名称:</span>
|
||||
<el-radio-group v-model="selectedScheme" @change="handleSchemeChange" size="small">
|
||||
<el-radio-button label="">全部</el-radio-button>
|
||||
<el-radio-button v-for="scheme in schemeOptions" :key="scheme" :label="scheme">{{ scheme }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-form :model="taskQueryParams" ref="taskQueryForm" size="small" :inline="true" v-show="showSearch"
|
||||
label-width="68px">
|
||||
<el-form-item label="任务编号" prop="taskCode">
|
||||
<el-input
|
||||
v-model="taskQueryParams.taskCode"
|
||||
placeholder="请输入任务编号"
|
||||
clearable
|
||||
@keyup.enter.native="handleTaskQuery"
|
||||
/>
|
||||
<el-input v-model="taskQueryParams.taskCode" placeholder="请输入任务编号" clearable
|
||||
@keyup.enter.native="handleTaskQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="方案名称" prop="schemeName">
|
||||
<el-input
|
||||
v-model="taskQueryParams.schemeName"
|
||||
placeholder="请输入检验方案名称"
|
||||
clearable
|
||||
@keyup.enter.native="handleTaskQuery"
|
||||
/>
|
||||
<el-form-item label="任务类型" prop="taskType">
|
||||
<el-select v-model="taskQueryParams.taskType" placeholder="请选择任务类型" clearable filterable allow-create>
|
||||
<el-option label="内控检验" value="内控检验" />
|
||||
<el-option label="产品检验" value="产品检验" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="检验人" prop="inspectUser">
|
||||
<el-input
|
||||
v-model="taskQueryParams.inspectUser"
|
||||
placeholder="请输入检验人"
|
||||
clearable
|
||||
@keyup.enter.native="handleTaskQuery"
|
||||
/>
|
||||
<el-input v-model="taskQueryParams.inspectUser" placeholder="请输入检验人" clearable
|
||||
@keyup.enter.native="handleTaskQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="审核人" prop="auditUser">
|
||||
<el-input
|
||||
v-model="taskQueryParams.auditUser"
|
||||
placeholder="请输入审核人"
|
||||
clearable
|
||||
@keyup.enter.native="handleTaskQuery"
|
||||
/>
|
||||
<el-input v-model="taskQueryParams.auditUser" placeholder="请输入审核人" clearable
|
||||
@keyup.enter.native="handleTaskQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleTaskQuery">搜索</el-button>
|
||||
@@ -41,91 +47,62 @@
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5" v-if="!readonly">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleTaskAdd"
|
||||
>新增</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleTaskAdd">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5" v-if="!readonly">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="taskSingle"
|
||||
@click="handleTaskUpdate"
|
||||
>修改</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-circle-plus-outline" size="mini"
|
||||
@click="handleQuickCreate">快捷创建</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5" v-if="!readonly">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="taskMultiple"
|
||||
@click="handleTaskDelete"
|
||||
>删除</el-button>
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="taskSingle"
|
||||
@click="handleTaskUpdate">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5" v-if="!readonly">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleTaskExport"
|
||||
>导出</el-button>
|
||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="taskMultiple"
|
||||
@click="handleTaskDelete">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5" v-if="!readonly">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-circle-plus-outline"
|
||||
size="mini"
|
||||
@click="handleQuickCreate"
|
||||
>快捷创建</el-button>
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleTaskExport">导出</el-button>
|
||||
</el-col>
|
||||
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getTaskList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table
|
||||
v-loading="taskLoading"
|
||||
:data="inspectionTaskList"
|
||||
@selection-change="handleTaskSelectionChange"
|
||||
highlight-current-row
|
||||
@row-click="handleRowClick"
|
||||
>
|
||||
<el-table v-loading="taskLoading" :data="inspectionTaskList" @selection-change="handleTaskSelectionChange"
|
||||
highlight-current-row @row-click="handleRowClick">
|
||||
<el-table-column type="selection" width="55" align="center" v-if="!readonly" />
|
||||
<el-table-column label="任务ID" align="center" prop="taskId" v-if="false"/>
|
||||
<el-table-column label="任务ID" align="center" prop="taskId" v-if="false" />
|
||||
<el-table-column label="任务编号" align="center" prop="taskCode" />
|
||||
<el-table-column label="任务类型" align="center" prop="taskType" />
|
||||
<el-table-column label="检验方案名称" align="center" prop="schemeName" />
|
||||
<el-table-column label="所属单位" align="center" prop="belongCompany" />
|
||||
<el-table-column label="方案名称" align="center" prop="schemeName" />
|
||||
<el-table-column label="状态" align="center" prop="status" width="90">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 0 || scope.row.status === '0'" type="info" size="small">待检验</el-tag>
|
||||
<el-tag v-else-if="scope.row.status === 1 || scope.row.status === '1'" type="warning" size="small">已检验</el-tag>
|
||||
<el-tag v-else-if="scope.row.status === 2 || scope.row.status === '2'" type="success" size="small">已审核</el-tag>
|
||||
<el-tag v-else-if="scope.row.status === 1 || scope.row.status === '1'" type="warning"
|
||||
size="small">已检验</el-tag>
|
||||
<el-tag v-else-if="scope.row.status === 2 || scope.row.status === '2'" type="success"
|
||||
size="small">已审核</el-tag>
|
||||
<span v-else>{{ scope.row.status }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="检验人" align="center" prop="inspectUser" />
|
||||
<el-table-column label="检验时间" align="center" prop="inspectTime" width="180">
|
||||
<el-table-column label="检验情况" align="center" prop="inspectTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.inspectTime, '{y}-{m}-{d}') }}</span>
|
||||
<div v-if="scope.row.inspectUser">检验人:{{ scope.row.inspectUser }}</div>
|
||||
<div>{{ parseTime(scope.row.inspectTime, '{y}-{m}-{d}') }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审核人" align="center" prop="auditUser" />
|
||||
<el-table-column label="审核时间" align="center" prop="auditTime" width="180">
|
||||
<el-table-column label="审核情况" align="center" prop="auditTime" width="160">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.auditTime, '{y}-{m}-{d}') }}</span>
|
||||
<div v-if="scope.row.auditUser">审核人:{{ scope.row.auditUser }}</div>
|
||||
<div>{{ parseTime(scope.row.auditTime, '{y}-{m}-{d}') }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="最终结果" align="center" prop="result" />
|
||||
<el-table-column label="关联钢卷" align="center" width="200">
|
||||
<el-table-column label="关联钢卷" align="center" width="140">
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.coilList && scope.row.coilList.length > 0" style="display: flex; flex-wrap: wrap; gap: 4px;">
|
||||
<div v-if="scope.row.coilList && scope.row.coilList.length > 0"
|
||||
style="display: flex; flex-wrap: wrap; gap: 4px;">
|
||||
<div v-for="(coil, index) in scope.row.coilList" :key="coil.coilId || index">
|
||||
<CurrentCoilNo :currentCoilNo="coil.currentCoilNo || coil.coilNo || ''" />
|
||||
</div>
|
||||
@@ -136,74 +113,50 @@
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="!readonly" size="mini" type="text" icon="el-icon-edit" @click="handleTaskUpdate(scope.row)">修改</el-button>
|
||||
<el-button v-if="!readonly" size="mini" type="text" icon="el-icon-delete" @click="handleTaskDelete(scope.row)">删除</el-button>
|
||||
<el-button v-if="!readonly" size="mini" type="text" icon="el-icon-edit"
|
||||
@click="handleTaskUpdate(scope.row)">修改</el-button>
|
||||
<el-button v-if="!readonly" size="mini" type="text" icon="el-icon-delete"
|
||||
@click="handleTaskDelete(scope.row)">删除</el-button>
|
||||
<div>
|
||||
<el-button v-if="scope.row.status === '0' || scope.row.status === 0" size="mini" type="text" icon="el-icon-check" @click="handleInspect(scope.row)" style="color: #67c23a;">检验</el-button>
|
||||
<el-button v-if="scope.row.status === '1' || scope.row.status === 1" size="mini" type="text" icon="el-icon-s-flag" @click="handleAudit(scope.row)" style="color: #409eff;">审核</el-button>
|
||||
<el-button v-if="scope.row.status === '0' || scope.row.status === 0" size="mini" type="text"
|
||||
icon="el-icon-check" @click="handleInspect(scope.row)" style="color: #67c23a;">检验</el-button>
|
||||
<el-button v-if="scope.row.status === '1' || scope.row.status === 1" size="mini" type="text"
|
||||
icon="el-icon-s-flag" @click="handleAudit(scope.row)" style="color: #409eff;">审核</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="taskTotal>0"
|
||||
:total="taskTotal"
|
||||
:page.sync="taskQueryParams.pageNum"
|
||||
:limit.sync="taskQueryParams.pageSize"
|
||||
@pagination="getTaskList"
|
||||
/>
|
||||
<pagination v-show="taskTotal > 0" :total="taskTotal" :page.sync="taskQueryParams.pageNum"
|
||||
:limit.sync="taskQueryParams.pageSize" @pagination="getTaskList" />
|
||||
|
||||
<div v-if="currentTask" style="margin: 16px 0; padding: 10px 16px; background: #f0f9eb; border-left: 4px solid #67c23a; border-radius: 4px; font-size: 14px;">
|
||||
<div v-if="currentTask"
|
||||
style="margin: 16px 0; padding: 10px 16px; background: #f0f9eb; border-left: 4px solid #67c23a; border-radius: 4px; font-size: 14px;">
|
||||
<span>当前选中任务:<strong>{{ currentTask.taskCode }}</strong> - {{ currentTask.schemeName }}</span>
|
||||
</div>
|
||||
|
||||
<div v-if="currentTask">
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5" v-if="!itemReadonly">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleItemAdd"
|
||||
>新增</el-button>
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleItemAdd">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5" v-if="!itemReadonly">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="itemSingle"
|
||||
@click="handleItemUpdate"
|
||||
>修改</el-button>
|
||||
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="itemSingle"
|
||||
@click="handleItemUpdate">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5" v-if="!itemReadonly">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="itemMultiple"
|
||||
@click="handleItemDelete"
|
||||
>删除</el-button>
|
||||
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="itemMultiple"
|
||||
@click="handleItemDelete">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5" v-if="!itemReadonly">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleItemExport"
|
||||
>导出</el-button>
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleItemExport">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getItemList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="itemLoading" :data="inspectionItemList" @selection-change="handleItemSelectionChange" border>
|
||||
<el-table-column type="selection" width="45" align="center" v-if="!itemReadonly" />
|
||||
<el-table-column label="明细ID" align="center" prop="itemId" v-if="false"/>
|
||||
<el-table-column label="明细ID" align="center" prop="itemId" v-if="false" />
|
||||
<el-table-column label="检验项目名称" align="center" prop="itemName" min-width="100" />
|
||||
<el-table-column label="标准值" align="center" prop="standardValue" width="80">
|
||||
<template slot-scope="scope">
|
||||
@@ -260,7 +213,8 @@
|
||||
<el-table-column label="检验时间" align="center" prop="inspectTime" width="170">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="itemReadonly">{{ parseTime(scope.row.inspectTime, '{y}-{m}-{d}') }}</span>
|
||||
<el-date-picker v-else v-model="scope.row.inspectTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" size="mini" style="width: 100%;" />
|
||||
<el-date-picker v-else v-model="scope.row.inspectTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
size="mini" style="width: 100%;" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="remark" min-width="100">
|
||||
@@ -277,13 +231,8 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="itemTotal>0"
|
||||
:total="itemTotal"
|
||||
:page.sync="itemQueryParams.pageNum"
|
||||
:limit.sync="itemQueryParams.pageSize"
|
||||
@pagination="getItemList"
|
||||
/>
|
||||
<pagination v-show="itemTotal > 0" :total="itemTotal" :page.sync="itemQueryParams.pageNum"
|
||||
:limit.sync="itemQueryParams.pageSize" @pagination="getItemList" />
|
||||
</div>
|
||||
<div v-else style="text-align: center; padding: 40px 0; color: #999; font-size: 14px;">
|
||||
<i class="el-icon-inbox" style="font-size: 48px; display: block; margin-bottom: 12px; color: #ddd;"></i>
|
||||
@@ -295,30 +244,17 @@
|
||||
<el-form-item label="任务编号" prop="taskCode">
|
||||
<el-input v-model="taskForm.taskCode" placeholder="请输入任务编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="检验方案名称" prop="schemeName">
|
||||
<el-input v-model="taskForm.schemeName" placeholder="请输入检验方案名称" />
|
||||
<el-form-item label="任务类型" prop="taskType">
|
||||
<el-select v-model="taskForm.taskType" placeholder="请选择任务类型" clearable filterable allow-create>
|
||||
<el-option label="内控检验" value="内控检验" />
|
||||
<el-option label="产品检验" value="产品检验" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="检验人" prop="inspectUser">
|
||||
<el-input v-model="taskForm.inspectUser" placeholder="请输入检验人" />
|
||||
<el-form-item label="所属单位" prop="belongCompany">
|
||||
<el-input v-model="taskForm.belongCompany" placeholder="请输入所属单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="检验时间" prop="inspectTime">
|
||||
<el-date-picker clearable
|
||||
v-model="taskForm.inspectTime"
|
||||
type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="请选择检验时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核人" prop="auditUser">
|
||||
<el-input v-model="taskForm.auditUser" placeholder="请输入审核人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="审核时间" prop="auditTime">
|
||||
<el-date-picker clearable
|
||||
v-model="taskForm.auditTime"
|
||||
type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="请选择审核时间">
|
||||
</el-date-picker>
|
||||
<el-form-item label="方案名称" prop="schemeName">
|
||||
<el-input v-model="taskForm.schemeName" placeholder="请输入方案名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="最终结果" prop="result">
|
||||
<el-input v-model="taskForm.result" placeholder="请输入最终结果" />
|
||||
@@ -334,10 +270,12 @@
|
||||
<span v-if="taskCoilList.length > 0" style="margin-left: 8px; font-size: 13px; color: #67c23a;">
|
||||
已选 {{ taskCoilList.length }} 卷
|
||||
</span>
|
||||
<el-button v-if="taskCoilList.length > 0" type="text" size="small" style="margin-left: 4px; color: #f56c6c;" @click="taskCoilList = []">清除</el-button>
|
||||
<el-button v-if="taskCoilList.length > 0" type="text" size="small" style="margin-left: 4px; color: #f56c6c;"
|
||||
@click="taskCoilList = []">清除</el-button>
|
||||
</div>
|
||||
<div v-if="taskCoilList.length > 0" style="display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px 80px;">
|
||||
<div v-for="(coil, index) in taskCoilList" :key="coil.coilId || index" style="display: flex; align-items: center; gap: 4px;">
|
||||
<div v-for="(coil, index) in taskCoilList" :key="coil.coilId || index"
|
||||
style="display: flex; align-items: center; gap: 4px;">
|
||||
<CurrentCoilNo :currentCoilNo="coil.currentCoilNo || coil.coilNo || ''" />
|
||||
<el-button type="text" icon="el-icon-close" size="mini" @click="taskCoilList.splice(index, 1)"></el-button>
|
||||
</div>
|
||||
@@ -378,10 +316,7 @@
|
||||
<el-input v-model="itemForm.inspectUser" placeholder="请输入检验人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="检验时间" prop="inspectTime">
|
||||
<el-date-picker clearable
|
||||
v-model="itemForm.inspectTime"
|
||||
type="datetime"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
<el-date-picker clearable v-model="itemForm.inspectTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="请选择检验时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
@@ -414,6 +349,7 @@
|
||||
<script>
|
||||
import { listInspectionTask, getInspectionTask, delInspectionTask, addInspectionTask, updateInspectionTask, addInspectionTaskWithItems } from "@/api/mes/qc/inspectionTask";
|
||||
import { listInspectionItem, getInspectionItem, delInspectionItem, addInspectionItem, updateInspectionItem } from "@/api/mes/qc/inspectionItem";
|
||||
import { listInspectionItemTemplate } from "@/api/mes/qc/inspectionItemTemplate";
|
||||
import { SchemeSelect } from "@/components/KLPService";
|
||||
import CoilSelector from "@/components/CoilSelector/index.vue";
|
||||
import CurrentCoilNo from "@/components/KLPService/Renderer/CurrentCoilNo.vue";
|
||||
@@ -450,6 +386,7 @@ export default {
|
||||
pageSize: 10,
|
||||
taskCode: undefined,
|
||||
taskType: undefined,
|
||||
belongCompany: undefined,
|
||||
schemeName: undefined,
|
||||
status: undefined,
|
||||
inspectUser: undefined,
|
||||
@@ -496,6 +433,11 @@ export default {
|
||||
resultForm: { result: undefined },
|
||||
resultAction: null,
|
||||
resultTaskRow: null,
|
||||
cascadeData: {},
|
||||
companyOptions: [],
|
||||
schemeOptions: [],
|
||||
selectedCompany: '',
|
||||
selectedScheme: '',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -507,6 +449,7 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.getTaskList();
|
||||
this.loadCascadeData();
|
||||
},
|
||||
methods: {
|
||||
getTaskList() {
|
||||
@@ -540,6 +483,9 @@ export default {
|
||||
},
|
||||
resetTaskQuery() {
|
||||
this.resetForm("taskQueryForm");
|
||||
this.selectedCompany = '';
|
||||
this.selectedScheme = '';
|
||||
this.schemeOptions = [];
|
||||
this.handleTaskQuery();
|
||||
},
|
||||
handleTaskSelectionChange(selection) {
|
||||
@@ -620,12 +566,14 @@ export default {
|
||||
handleQuickCreate() {
|
||||
this.schemeVisible = true;
|
||||
},
|
||||
handleSchemeConfirm({ template, taskCode, coilIds }) {
|
||||
handleSchemeConfirm({ template, taskCode, taskType, belongCompany, coilIds }) {
|
||||
this.taskLoading = true;
|
||||
addInspectionTaskWithItems({
|
||||
taskCode: taskCode,
|
||||
schemeId: template.templateId,
|
||||
schemeName: template.templateName,
|
||||
belongCompany: belongCompany,
|
||||
taskType: taskType,
|
||||
coilIds: coilIds
|
||||
}).then(() => {
|
||||
this.$modal.msgSuccess("快捷创建成功");
|
||||
@@ -675,6 +623,38 @@ export default {
|
||||
this.resultLoading = false;
|
||||
});
|
||||
},
|
||||
loadCascadeData() {
|
||||
listInspectionItemTemplate({ pageNum: 1, pageSize: 9999 }).then(response => {
|
||||
const templates = response.rows || response.data || [];
|
||||
const cascade = {};
|
||||
templates.forEach(t => {
|
||||
const company = t.templateUnit || '未分类';
|
||||
if (!cascade[company]) {
|
||||
cascade[company] = [];
|
||||
}
|
||||
if (t.templateName && !cascade[company].includes(t.templateName)) {
|
||||
cascade[company].push(t.templateName);
|
||||
}
|
||||
});
|
||||
this.cascadeData = cascade;
|
||||
this.companyOptions = Object.keys(cascade).sort();
|
||||
});
|
||||
},
|
||||
handleCompanyChange() {
|
||||
this.selectedScheme = '';
|
||||
if (this.selectedCompany) {
|
||||
this.schemeOptions = this.cascadeData[this.selectedCompany] || [];
|
||||
} else {
|
||||
this.schemeOptions = [];
|
||||
}
|
||||
this.taskQueryParams.belongCompany = this.selectedCompany || undefined;
|
||||
this.taskQueryParams.schemeName = undefined;
|
||||
this.handleTaskQuery();
|
||||
},
|
||||
handleSchemeChange() {
|
||||
this.taskQueryParams.schemeName = this.selectedScheme || undefined;
|
||||
this.handleTaskQuery();
|
||||
},
|
||||
cancelTask() {
|
||||
this.taskOpen = false;
|
||||
this.resetTaskForm();
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
<el-tab-pane label="检验任务" name="third" v-hasPermi="['qc:inspection:task']">
|
||||
<InspectionTask readonly />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="质保书审批" name="fourth" v-hasPermi="['qc:certificate:approve']">
|
||||
<CertificateBook />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="其他代办" name="second">
|
||||
<el-empty description="暂无其他代办事项" />
|
||||
</el-tab-pane>
|
||||
@@ -15,12 +18,14 @@
|
||||
<script>
|
||||
import TranferCoilTable from '@/views/wms/coil/views/base/tranfer.vue'
|
||||
import InspectionTask from '@/views/mes/qc/inspection/task.vue'
|
||||
import CertificateBook from '@/views/mes/qc/certificate/book.vue'
|
||||
|
||||
export default {
|
||||
name: 'TodoIndex',
|
||||
components: {
|
||||
TranferCoilTable,
|
||||
InspectionTask,
|
||||
CertificateBook,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user