Commit 8bed3d08 authored by lwy's avatar lwy

feat(CQC控制计划管理):主列表,查看编制情况

parent c1fc8f74
import request from '@/utils/request'
// 查询CQC控制计划列表
export function listPlan(query) {
return request({
url: '/control/cqcPlan/list',
method: 'get',
params: query
})
}
// 查询CQC历史控制计划列表
export function historyListPlan(query) {
return request({
url: '/control/cqcPlan/hisList',
method: 'get',
params: query
})
}
// 查询所有事业部名称
export function getAllBusinessUnitName() {
return request({
url: '/control/unit/list',
method: 'get',
})
}
// 查询所有车型代码
export function getAllvehicleModelCode() {
return request({
url: '/control/notificationManagement/getAllModelCode',
method: 'get',
})
}
// 查询CQC控制计划详细
export function getPlan(id) {
return request({
url: '/system/plan/' + id,
method: 'get'
})
}
// 新增CQC控制计划
export function addPlan(data) {
return request({
url: '/system/plan',
method: 'post',
data: data
})
}
// 修改CQC控制计划
export function updatePlan(data) {
return request({
url: '/system/plan',
method: 'put',
data: data
})
}
// 删除CQC控制计划
export function delPlan(id) {
return request({
url: '/system/plan/' + id,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询CQC编制关键零部件信息列表
export function listParts(query) {
return request({
url: '/control/parts/list',
method: 'get',
params: query
})
}
// 查询CQC编制关键零部件信息详细
export function getParts(id) {
return request({
url: '/control/parts/' + id,
method: 'get'
})
}
// 新增CQC编制关键零部件信息
export function addParts(data) {
return request({
url: '/control/parts',
method: 'post',
data: data
})
}
// 修改CQC编制关键零部件信息
export function updateParts(data) {
return request({
url: '/control/parts',
method: 'put',
data: data
})
}
// 删除CQC编制关键零部件信息
export function delParts(id) {
return request({
url: '/control/parts/' + id,
method: 'delete'
})
}
{
"search": "搜索",
"reset": "重置",
"pleaseChoose": "请选择",
"pleaseEnter": "请输入",
"pleaseChooseOrEnter": "请选择或输入",
"businessDivision": "事业部",
"vehicleTypeCode": "车型代码",
"vehicleTypeSeries": "车型系列",
"versionNumber": "版本号",
"creator": "创建人",
"controlPlanStatus": "控制计划状态",
"controlPlanNumber": "控制计划编号",
"productionAddress": "生产地址",
"compilationDeadline": "编制截止日期",
"revisionDate": "修订日期",
"creationDate": "创建日期",
"productionPlant": "生产厂",
"productionSituation": "生产情况",
"keyPartsListFormStatus": "关键件清单表单状态",
"keyProcessFormStatus": "关键工序……表单状态",
"COPTestAndChecklistFormStatus": "COP试验和检查表表单状态",
"operation": "操作",
"serialNumber": "序号",
"viewHistoricalControlPlan": "查看历史控制计划",
"view": "查看",
"revoke": "撤销",
"adjustCompilationResponsiblePerson": "调整编制负责人",
"generateFile": "生成文件",
"remindDownload": "提醒下载",
"change": "变更",
"fineTune": "微调"
}
{
"search": "Search",
"reset": "Reset",
"pleaseChoose": "Please Choose",
"pleaseEnter": "Please Enter",
"pleaseChooseOrEnter": "Please choose or enter",
"businessDivision": "Business division",
"vehicleTypeCode": "Vehicle Type Code",
"vehicleTypeSeries": "Vehicle Type Series",
"versionNumber": "Version Number",
"creator": "Creator",
"controlPlanStatus": "Control Plan Status",
"controlPlanNumber": "Control Plan Number",
"productionAddress": "Production Address",
"compilationDeadline": "Compilation Deadline",
"revisionDate": "Revision Date",
"creationDate": "Creation Date",
"productionPlant": "Production Plant",
"productionSituation": "Production Situation",
"keyPartsListFormStatus": "Key Parts List Form Status",
"keyProcessFormStatus": "Key Process...Form Status",
"COPTestAndChecklistFormStatus": "COP Test and Checklist Form Status",
"operation": "Operation",
"serialNumber": "Ordinal",
"viewHistoricalControlPlan": "View Historical Control Plan",
"view": "View",
"revoke": "Revoke",
"adjustCompilationResponsiblePerson": "Adjust Compilation Responsible Person",
"generateFile": "Generate File",
"remindDownload": "Remind Download",
"change": "Change",
"fineTune": "Fine - Tune"
}
{
"search": "搜索",
"reset": "重置",
"pleaseChoose": "请选择",
"pleaseEnter": "请输入",
"pleaseChooseOrEnter": "请选择或输入",
"brand": "事业部",
"vehicleTypeCode": "车型代码",
"vehicleSeries": "车型系列",
"versionNumber": "版本号",
"creator": "创建人",
"controlPlanStatus": "控制计划状态",
"controlPlanNumber": "控制计划编号",
"productionAddress": "生产地址",
"deadline": "编制截止日期",
"revisionDate": "修订日期",
"creationDate": "创建日期",
"productionPlant": "生产厂",
"productionSituation": "生产情况",
"keyPartsTaskStatus": "关键零部件控制表单状态",
"manufacturingProcessControlTaskStatus": "制造过程控制表单状态",
"wholeVehicleCopTaskStatus": "COP试验和检查表表单状态",
"finalFileAddress": "终版文件",
"operation": "操作",
"serialNumber": "序号",
"viewHistoricalControlPlan": "查看历史控制计划",
"view": "查看",
"revoke": "撤销",
"adjustCompilationResponsiblePerson": "调整编制负责人",
"generateFile": "生成终版文件",
"remindDownload": "提醒下载",
"change": "变更",
"fineTune": "微调",
"delete": "删除",
"prompt": "提示",
"confirmUndoControlPlan": "确定撤销该控制计划吗?",
"confirmDeleteControlPlan": "确定删除该控制计划吗?",
"cancel": "取消",
"confirm": "确定",
"receiver": "接收人",
"messageTitle": "消息标题",
"messageContent": "消息内容",
"selectMessageReceiver": "选择消息接收人",
"editMessageContent": "编辑消息内容",
"selectPersonnel": "选择人员",
"controlPlanNumberPrefix": "(控制计划编号:",
"controlPlanNumberSuffix": ")",
"keyPartsList": "关键零部件清单",
"keyProcessAssemblyInspectionList": "关键工序、装配、检验清单",
"copTestAndChecklist": "COP试验和检查表",
"compilationResponsiblePerson": "编制负责人",
"manufacturingCompilationResponsiblePerson": "制造编制负责人",
"qualityControlCompilationResponsiblePerson": "质管编制负责人"
}
{
"search": "Search",
"reset": "Reset",
"pleaseChoose": "Please Choose",
"pleaseEnter": "Please Input",
"pleaseChooseOrEnter": "Please choose or enter",
"brand": "Business division",
"vehicleTypeCode": "Vehicle Type Code",
"vehicleSeries": "Vehicle Series",
"versionNumber": "Version Number",
"creator": "Creator",
"controlPlanStatus": "Control Plan Status",
"controlPlanNumber": "Control Plan Number",
"productionAddress": "Production Address",
"deadline": "Deadline",
"revisionDate": "Revision Date",
"creationDate": "Creation Date",
"productionPlant": "Production Plant",
"productionSituation": "Production Situation",
"keyPartsTaskStatus": "Key Parts From Status",
"finalFileAddress": "Final File",
"manufacturingProcessControlTaskStatus": "Manufacturing Process Control From Status",
"wholeVehicleCopTaskStatus": "Whole Vehicle Cop From Status",
"operation": "Operation",
"serialNumber": "Ordinal",
"viewHistoricalControlPlan": "View Historical Control Plan",
"view": "View",
"revoke": "Revoke",
"adjustCompilationResponsiblePerson": "Adjust Compilation Responsible Person",
"generateFile": "Generate Final File",
"remindDownload": "Remind Download",
"change": "Change",
"fineTune": "Fine Tune",
"delete": "Delete",
"prompt": "Prompt",
"confirmUndoControlPlan": "Are you sure to undo this control plan?",
"confirmDeleteControlPlan": "Are you sure you want to delete this control plan?",
"cancel": "Cancel",
"confirm": "Confirm",
"receiver": "Receiver",
"messageTitle": "Message Title",
"messageContent": "Message Content",
"selectMessageReceiver": "Select Message Receiver",
"editMessageContent": "Edit Message Content",
"selectPersonnel": "Select Personnel",
"controlPlanNumberPrefix": "(Control Plan Number: ",
"controlPlanNumberSuffix": ")",
"keyPartsList": "Key Parts List",
"keyProcessAssemblyInspectionList": "Key Process, Assembly and Inspection List",
"copTestAndChecklist": "COP Test and Checklist",
"compilationResponsiblePerson": "Compilation Responsible Person",
"manufacturingCompilationResponsiblePerson": "Manufacturing Compilation Responsible Person",
"qualityControlCompilationResponsiblePerson": "Quality Control Compilation Responsible Person"
}
......@@ -13,8 +13,8 @@
</template>
<script setup name="Parameter">
import history from './history.vue'
import newVersion from './newAnnouncementVersion.vue'
import history from '@/views/carConsistency/filingParameter/history.vue'
import newVersion from '@/views/carConsistency/filingParameter/newAnnouncementVersion.vue'
const { proxy } = getCurrentInstance();
const activeName = ref('latestVersion')
......
<template>
<div class="app-container">
<div class="top-header">
<div>
<el-button
link
@click="handleBack"
style="font-size: 16px;margin-right: 16px"
>
<el-icon>
<ArrowLeft/>
</el-icon>
返回
</el-button>
<el-text style="margin-left: 20px;color: black">
事业部:<span style="font-weight: 800;margin-left: 10px">奇瑞</span>
</el-text>
<el-text style="margin-left: 20px;color: black">
车型代码:<span style="font-weight: 800;margin-left: 10px">T28<!--{{ descriptionsList.vehicleModelCode }}--></span>
</el-text>
<el-text style="margin-left: 20px;color: black">
车型系列:<span style="font-weight: 800;margin-left: 10px">CJ1A<!--{{ descriptionsList.vehicleSeries }}--></span>
</el-text>
<el-text style="margin-left: 20px;color: black">
版本号:<span style="font-weight: 800;margin-left: 10px">A0<!--{{ descriptionsList.versionNo }}--></span>
</el-text>
<el-text style="margin-left: 20px;color: black">
生产地址:<span style="font-weight: 800;margin-left: 10px">XXXXXXXXXXX<!--{{ descriptionsList.productionAddress }}--></span>
</el-text>
</div>
<!-- 表单状态 -->
<div>
<span v-if="activeName === 'criticalPartsControl'">666</span>
<span v-if="activeName === 'second'">777</span>
<span v-if="activeName === 'third'">888</span>
<span v-if="activeName === 'four'">999</span>
</div>
</div>
<div class="component-selector">
<el-tabs v-model="activeName" class="demo-tabs">
<!-- 后期加判断显示 -->
<el-tab-pane label="关键零部件控制" name="criticalPartsControl">
<critical-parts-control/>
</el-tab-pane>
<el-tab-pane label="制造过程控制" name="manufacturingProcessControl">
<manufacturingProcessControl/>
</el-tab-pane>
<el-tab-pane label="整车COP控制" name="wholeVehicleCopControl">
<wholeVehicleCopControl/>
</el-tab-pane>
<el-tab-pane label="采购质量控制" name="procurementQualityControl">
<procurementQualityControl/>
</el-tab-pane>
</el-tabs>
</div>
</div>
</template>
<script setup>
import criticalPartsControl from '@/views/controlPlan/CQCControlPlan/CQCControlPlanManagement/criticalPartsControl.vue'
import manufacturingProcessControl from '@/views/controlPlan/CQCControlPlan/CQCControlPlanManagement/manufacturingProcessControl.vue'
import wholeVehicleCopControl from '@/views/controlPlan/CQCControlPlan/CQCControlPlanManagement/wholeVehicleCopControl.vue'
import procurementQualityControl from '@/views/controlPlan/CQCControlPlan/CQCControlPlanManagement/procurementQualityControl.vue'
const { proxy } = getCurrentInstance();
const activeName = ref("criticalPartsControl");
const handleBack = () => {
proxy.$router.push({ path: '/control/CQCControlPlan/CQCControlPlanIndex'});
}
</script>
<style scoped lang="scss">
.top-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
}
.demo-tabs {
.tab-components{
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 20px;
.components-span{
border-left: 5px solid #409eff;
padding-left: 5px;
font-weight: 800;
color: #409eff;
}
}
}
.dialog-box{
display: flex;
justify-content: space-around;
align-items: center;
.dialog-box-left{
border: 1px solid #f4f4f9;
width: 320px;
height: 500px;
display: flex;
flex-direction: column;
align-items: center;
.demo-collapse{
width: 100%;
background-color: white;
}
}
.dialog-box-right{
border: 1px solid #f4f4f9;
width: 320px;
height: 500px;
display: flex;
flex-direction: column;
align-items: center;
.box-right-header{
width: 100%;
height: 65px;
background-color: #f4f4f9;
display: flex;
justify-content: space-around;
align-items: center;
font-size: 18px;
}
.box-right-content{
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
.content-item{
width: 100%;
display: flex;
justify-content: space-around;
align-items: center;
margin-top: 10px;
}
}
}
}
</style>
<template>
<div class="app-container">
<!-- 审批步骤条 -->
<el-steps :active="2" align-center style="margin-top: 20px">
<el-step title="发起编制任务" description="(发起人: 杨帆)2025-02-06 12:00:00" />
<el-step title="填写" description="Some description" />
<el-step title="审核" description="Some description" />
<el-step title="批准" description="Some description" />
<el-step title="最终确认" description="Some description" />
</el-steps>
<!-- 编制详情 -->
<div class="tab-components">
<span class="components-span">编制详情</span>
<el-button class="btn-A" @click="changeView">查看变更履历</el-button>
</div>
<!-- 详情 -->
<el-descriptions border :column="4" style="margin-top: 20px;margin-bottom: 20px">
<el-descriptions-item label="车型代码:" label-align="right">T28</el-descriptions-item>
<el-descriptions-item label="清单版本号:" label-align="right">A0</el-descriptions-item>
<el-descriptions-item label="修订日期:" label-align="right">--</el-descriptions-item>
<el-descriptions-item label="编制/日期:" label-align="right">2023.06.10</el-descriptions-item>
<el-descriptions-item label="车型系列名称:" label-align="right">CJ1A</el-descriptions-item>
<el-descriptions-item label=""></el-descriptions-item>
<el-descriptions-item label=""></el-descriptions-item>
<el-descriptions-item label="审核/日期:" label-align="right">--</el-descriptions-item>
<el-descriptions-item label="联系人:" label-align="right">于昌淼</el-descriptions-item>
<el-descriptions-item label="联系部门:" label-align="right">xxxxx</el-descriptions-item>
<el-descriptions-item label="联系电话:" label-align="right">xxxxxx</el-descriptions-item>
<el-descriptions-item label="批准/日期:" label-align="right">--</el-descriptions-item>
<el-descriptions-item label="生产厂:" label-align="right">奇瑞汽车股份有限公司</el-descriptions-item>
<el-descriptions-item label="生产地址:" label-align="right">中国安徽省芜湖市经济开发区长春路8号</el-descriptions-item>
<el-descriptions-item label="生产情况:" label-align="right">
<el-radio-group v-model="radio1" class="ml-4">
<el-radio label="1" >试生产</el-radio>
<el-radio label="2" >生产</el-radio>
</el-radio-group>
</el-descriptions-item>
<el-descriptions-item label="清单编号" label-align="right">20250416135222462</el-descriptions-item>
<el-descriptions-item label="系列车型型号:" label-align="right" width="120px">
999666333、888555222、777444111、
999666333、888555222、777444111、
999666333、888555222、777444111、
999666333、888555222、777444111、
999666333、888555222、777444111、
999666333、888555222、777444111、
</el-descriptions-item>
</el-descriptions>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="标准编号" prop="standardNumber">
<el-input
v-model="queryParams.standardNumber"
placeholder="请输入标准编号"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="标准名称" prop="standardName">
<el-input
v-model="queryParams.standardName"
placeholder="请输入标准名称"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="填写人" prop="entryBy">
<el-input
v-model="queryParams.entryBy"
placeholder="请输入填写人"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="校对时间" prop="reviewTime">
<el-date-picker clearable
v-model="queryParams.reviewTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择校对时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="copList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="${comment}" align="center" prop="id" />
<el-table-column label="数据值" align="center" prop="dataValue" />
<el-table-column label="标准编号" align="center" prop="standardNumber" />
<el-table-column label="标准名称" align="center" prop="standardName" />
<el-table-column label="填写人" align="center" prop="entryBy" />
<el-table-column label="校对时间" align="center" prop="reviewTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.reviewTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="校对状态" align="center" prop="reviewStatus" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['control:cop:edit']">修改</el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['control:cop:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script setup name="Cop">
import { listParts } from "@/api//CQCControlPlanManagement/view.js";
const { proxy } = getCurrentInstance();
const copList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
dataValue: null,
standardNumber: null,
standardName: null,
entryBy: null,
reviewTime: null,
reviewStatus: null,
},
rules: {
controlPlanId: [
{ required: true, message: "控制计划ID不能为空", trigger: "blur" }
],
templateHeaderId: [
{ required: true, message: "编制填写模版表头表不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询CQC编制整车COP列表 */
/*function getList() {
loading.value = true;
listCop(queryParams.value).then(response => {
copList.value = response.rows;
total.value = response.total;
loading.value = false;
});
}*/
// 取消按钮
function cancel() {
open.value = false;
reset();
}
// 表单重置
function reset() {
form.value = {
id: null,
controlPlanId: null,
compilationTaskId: null,
templateHeaderId: null,
dataValue: null,
standardNumber: null,
standardName: null,
entryBy: null,
entryTime: null,
entryStatus: null,
confirmationBy: null,
confirmationTime: null,
confirmationStatus: null,
reviewBy: null,
reviewTime: null,
reviewStatus: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
delFlag: null,
flagIssue: null,
flagTime: null,
flagBy: null,
fillerLevel: null,
assignee: null
};
proxy.resetForm("copRef");
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
// 多选框选中数据
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "添加CQC编制整车COP";
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const _id = row.id || ids.value
getCop(_id).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改CQC编制整车COP";
});
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["copRef"].validate(valid => {
if (valid) {
if (form.value.id != null) {
updateCop(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addCop(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
});
}
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value;
proxy.$modal.confirm('是否确认删除CQC编制整车COP编号为"' + _ids + '"的数据项?').then(function() {
return delCop(_ids);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
}
/** 导出按钮操作 */
function handleExport() {
proxy.download('control/cop/export', {
...queryParams.value
}, `cop_${new Date().getTime()}.xlsx`)
}
/*getList();*/
</script>
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