Commit 1f0df9c8 authored by lwy's avatar lwy

CQC通用和事业部内容维护

parent 8598af0d
{
"back": "返回",
"addPart": "新增零件",
"bulkEdit": "批量编辑",
"professionalDepartment": "专业部门",
"cccCertificationMark": "3C认证标志",
"totalTableProjectModel": "总表项目-型号",
"totalTableProjectManufacturerName": "总表项目-生产厂",
"totalTableProjectCertificateNumber": "总表项目-证书编号",
"p8PostMassProductionUnit": "P8后批量生产单位",
"source": "来源",
"sort": "排序",
"edit": "编辑",
"delete": "删除",
"submit": "提交",
"cancel": "取消",
"updateSuccess": "修改成功",
"addSuccess": "新增成功",
"partLevelOneName": "零部件一级名称",
"partLevelTwoName": "零部件二级名称",
"partName": "零件名称",
"partType": "零件类型",
"copyAndAdd": "复制新增",
"addBusinessUnit": "添加事业部",
"search": "搜索",
"reset": "重置",
"Submit": "提交",
"Index":"序号",
"pleaseChoose": "请选择",
"pleaseInput": "请输入",
"pleaseChooseOrInput": "请选择或输入",
"businessDivision": "事业部",
"BusinessUnit": "事业部",
"Operations": "操作",
"Delete": "删除"
}
{
"back": "Back",
"addPart": "Add Part",
"bulkEdit": "Bulk Edit",
"professionalDepartment": "Professional Department",
"cccCertificationMark": "3C Certification Mark",
"totalTableProjectModel": "Master Table Project Model",
"totalTableProjectManufacturerName": "Master Table Project Manufacturer",
"totalTableProjectCertificateNumber": "Master Table Project Certificate No.",
"p8PostMassProductionUnit": "P8 Post-Mass Production Unit",
"source": "Source",
"sort": "Sort",
"edit": "Edit",
"submit": "Submit",
"cancel": "Cancel",
"partLevelOneName": "Level One Part Name",
"partLevelTwoName": "Level Two Part Name",
"partName": "Part Name",
"partType": "Part Type",
"search": "Search",
"reset": "Reset",
"Submit": "Submit",
"Index":"Index",
"pleaseChoose": "Please Choose",
"pleaseInput": "Please Input",
"pleaseChooseOrInput": "Please choose or input",
"businessDivision": "Business division",
"BusinessUnit": "Business Unit",
"Operations": "Operations",
"Delete": "Delete"
}
......@@ -19,10 +19,10 @@
<!-- 搜索栏 -->
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
<el-form-item label="零部件一级名称" prop="partLevelOneName">
<el-form-item :label="`${cn.partLevelOneName}/${en.partLevelOneName}`" prop="partLevelOneName">
<el-select
v-model="queryParams.partLevelOneName"
placeholder="请选择"
:placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`"
clearable
style="width: 200px"
>
......@@ -34,18 +34,18 @@
/>
</el-select>
</el-form-item>
<el-form-item label="零部件二级名称" prop="partLevelTwoName">
<el-form-item :label="`${cn.partLevelTwoName}/${en.partLevelTwoName}`" prop="partLevelTwoName">
<el-input
v-model="queryParams.partLevelTwoName"
placeholder="请输入"
:placeholder="`${cn.pleaseInput}/${en.pleaseInput}`"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="零件类型" prop="partType">
<el-form-item :label="`${cn.partType}/${en.partType}`" prop="partType">
<el-select
v-model="queryParams.partType"
placeholder="请选择"
:placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`"
clearable
style="width: 200px"
>
......@@ -57,19 +57,19 @@
/>
</el-select>
</el-form-item>
<el-form-item label="专业部门" prop="professionalDepartment">
<el-form-item :label="`${cn.professionalDepartment}/${en.professionalDepartment}`" prop="professionalDepartment">
<el-input
v-model="queryParams.professionalDepartment"
placeholder="请输入"
:placeholder="`${cn.pleaseInput}/${en.pleaseInput}`"
clearable
style="width: 200px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="3C认证标志:" prop="cccCertificationMark">
<el-form-item :label="`${cn.cccCertificationMark}/${en.cccCertificationMark}`" prop="cccCertificationMark">
<el-select
v-model="queryParams.cccCertificationMark"
placeholder="请选择"
:placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`"
clearable
style="width: 200px"
>
......@@ -81,34 +81,34 @@
/>
</el-select>
</el-form-item>
<el-form-item label="总表项目-型号" prop="totalTableProjectModel">
<el-form-item :label="`${cn.totalTableProjectModel}/${en.totalTableProjectModel}`" prop="totalTableProjectModel">
<el-input
v-model="queryParams.totalTableProjectModel"
placeholder="请输入"
:placeholder="`${cn.pleaseInput}/${en.pleaseInput}`"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="总表项目-生产厂" prop="totalTableProjectManufacturerName">
<el-form-item :label="`${cn.totalTableProjectManufacturerName}/${en.totalTableProjectManufacturerName}`" prop="totalTableProjectManufacturerName">
<el-input
v-model="queryParams.totalTableProjectManufacturerName"
placeholder="请输入"
:placeholder="`${cn.pleaseInput}/${en.pleaseInput}`"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="总表项目-证书编号" prop="totalTableProjectCertificateNumber">
<el-form-item :label="`${cn.totalTableProjectCertificateNumber}/${en.totalTableProjectCertificateNumber}`" prop="totalTableProjectCertificateNumber">
<el-input
v-model="queryParams.totalTableProjectCertificateNumber"
placeholder="请输入"
:placeholder="`${cn.pleaseInput}/${en.pleaseInput}`"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="P8后批量生产单位" prop="p8PostMassProductionUnit">
<el-form-item :label="`${cn.p8PostMassProductionUnit}/${en.p8PostMassProductionUnit}`" prop="p8PostMassProductionUnit">
<el-select
v-model="queryParams.p8PostMassProductionUnit"
placeholder="请选择"
:placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`"
clearable
style="width: 200px"
>
......@@ -120,10 +120,10 @@
/>
</el-select>
</el-form-item>
<el-form-item label="来源" prop="source">
<el-form-item :label="`${cn.source}/${en.source}`" prop="source">
<el-select
v-model="queryParams.source"
placeholder="请选择"
:placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`"
clearable
style="width: 200px"
>
......@@ -136,8 +136,8 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button class="btn-A" icon="Search" @click="handleQuery">搜索</el-button>
<el-button class="btn-B" icon="Refresh" @click="resetQuery">重置</el-button>
<el-button class="btn-A" icon="Search" @click="handleQuery">{{cn.search}}/{{en.search}}</el-button>
<el-button class="btn-B" icon="Refresh" @click="resetQuery">{{cn.reset}}/{{en.reset}}</el-button>
</el-form-item>
<el-button
style="border: 1px solid #0154fb;color: #0154fb;float: right;margin-bottom: 24px;"
......@@ -145,14 +145,14 @@
v-show="isDefault === '1'"
@click="handleAdd"
v-hasPermi="['control:config:add']"
>新增零件</el-button>
>{{cn.addPart}}/{{en.addPart}}</el-button>
<el-button
style="border: 1px solid #0154fb;color: #0154fb;float: right;margin-bottom: 24px;"
plain
v-show="isDefault === '0'"
@click="bulkEdit"
v-hasPermi="['control:config:add']"
>批量编辑</el-button>
>{{cn.bulkEdit}}/{{en.bulkEdit}}</el-button>
</el-form >
......@@ -171,33 +171,111 @@
align="center"
/>
<el-table-column label="序号" type="index" align="center" width="75">
<template #header>
<div>
<div>{{cn.Index}}</div>
<div>{{en.Index}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="零部件一级名称" align="center" prop="partLevelOneName" >
<template #header>
<div>
<div>{{cn.partLevelOneName}}</div>
<div>{{en.partLevelOneName}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="零部件二级名称" align="center" prop="partLevelTwoName" >
<template #header>
<div>
<div>{{cn.partLevelTwoName}}</div>
<div>{{en.partLevelTwoName}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="零件类型" align="center" prop="partType" >
<template #header>
<div>
<div>{{cn.partType}}</div>
<div>{{en.partType}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="专业部门" align="center" prop="professionalDepartment" >
<template #header>
<div>
<div>{{cn.professionalDepartment}}</div>
<div>{{en.professionalDepartment}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="3C认证标志" align="center" prop="cccCertificationMark" >
<template #header>
<div>
<div>{{cn.cccCertificationMark}}</div>
<div>{{en.cccCertificationMark}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="总表项目-型号规格" align="center" prop="totalTableProjectModel" >
<template #header>
<div>
<div>{{cn.totalTableProjectModel}}</div>
<div>{{en.totalTableProjectModel}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="总表项目-生产厂" align="center" prop="totalTableProjectManufacturerName" >
<template #header>
<div>
<div>{{cn.totalTableProjectManufacturerName}}</div>
<div>{{en.totalTableProjectManufacturerName}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="总表项目-证书编号" align="center" prop="totalTableProjectCertificateNumber" >
<template #header>
<div>
<div>{{cn.totalTableProjectCertificateNumber}}</div>
<div>{{en.totalTableProjectCertificateNumber}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="P8后批量生产单位" align="center" prop="p8PostMassProductionUnit" >
<template #header>
<div>
<div>{{cn.p8PostMassProductionUnit}}</div>
<div>{{en.p8PostMassProductionUnit}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="排序" align="center" prop="sort" >
<template #header>
<div>
<div>{{cn.sort}}</div>
<div>{{en.sort}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="来源" align="center" prop="source" >
<template #header>
<div>
<div>{{cn.source}}</div>
<div>{{en.source}}</div>
</div>
</template>
<template #default="scope">
<dict-tag :options="parts_source" :value="scope.row.source" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" >
<template #header>
<div>
<div>{{cn.Operations}}</div>
<div>{{en.Operations}}</div>
</div>
</template>
<template #default="scope">
<el-button link style="color: rgb(0,0,255)" type="primary" @click="handleUpdate(scope.row)" v-hasPermi="['control:config:edit']">编辑</el-button>
<el-button link type="danger" @click="handleDelete(scope.row)" v-show="scope.row.source === '1'">
......@@ -221,7 +299,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="p8后批量生产单位" prop="p8PostMassProductionUnit">
<el-form-item label="p8后批量生产单位" prop="p8PostMassProductionUnit">
<el-select v-model="form.p8PostMassProductionUnit" placeholder="请选择">
<el-option
v-for="dict in p8_post_production_unit"
......@@ -242,8 +320,10 @@
</el-drawer>
<!-- 通用和事业部添加或修改抽屉-->
<el-drawer v-model="open" size="800px" direction="rtl" :title="title">
<!-- 通用添加或修改抽屉-->
<el-drawer v-model="open" direction="rtl" :title="title">
<template #default>
<el-form ref="partsRef" :model="form" :rules="rules" label-width="150px">
<el-form-item label="零件一级名称:" prop="partLevelOneName" filterable allow-create v-show="isDefault === '1'">
......@@ -302,7 +382,7 @@
<el-form-item label="总表项目-证书编号:" prop="totalTableProjectCertificateNumber" v-show="isDefault === '1'">
<el-input v-model="form.totalTableProjectCertificateNumber" placeholder="请输入" />
</el-form-item>
<el-form-item label="p8后批量生产单位" prop="p8PostMassProductionUnit">
<el-form-item label="p8后批量生产单位" prop="p8PostMassProductionUnit">
<el-select v-model="form.p8PostMassProductionUnit" placeholder="请选择">
<el-option
v-for="dict in p8_post_production_unit"
......@@ -327,17 +407,17 @@
</div>
</template>
<script setup name="Config">
<script setup name="CCAPMaintainContent">
import { getPartsList } from "@/api/RelationManagement/relation.js";
import { useRoute } from 'vue-router';
import { useRouter } from 'vue-router';
import { addParts, listPartLevelOneName, deleteCriticalPart, getPartsDetail, editParts, listProfessionalDepartment, batchUpdateSpecialConfig } from "@/api/RelationManagement/maintainContent.js";
import cn from "@/locales/controlPlan/relationshipManagement/CCAPCriticalParts/cn.json";
import en from "@/locales/controlPlan/relationshipManagement/CCAPCriticalParts/en.json";
import cn from "@/locales/controlPlan/relationshipManagement/maintainContent/cn.json";
import en from "@/locales/controlPlan/relationshipManagement/maintainContent/en.json";
import {ArrowLeft} from "@element-plus/icons-vue";
import {ref} from "vue";
import useUserStore from "@/store/modules/user.js"; // 新增导入
import useUserStore from "@/store/modules/user.js";
const route = useRoute();
const router = useRouter();
const { proxy } = getCurrentInstance();
......@@ -365,13 +445,10 @@ const divisionName = ref(null);
const updateName = ref(route.query.updateName || '--');
//是否通用(0-否,1-是)
const isDefault = ref(route.query.isDefault);
console.log("cn"+cn.cancel)
const userStore = useUserStore(); // 获取 Store 实例
const data = reactive({
form: {},
queryParams: {
......@@ -421,7 +498,6 @@ const data = reactive({
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询关键零部件下事业部特殊配置列表 */
......@@ -725,3 +801,9 @@ onMounted(() => {
getList();
</script>
<style scoped>
.custom-left .el-form-item__content {
text-align: left;
}
</style>
<script setup>
<template>
<div class="app-container">
<div style="margin-bottom: 20px;margin-right: 16px">
<el-button
link
@click="back"
style="font-size: 16px;margin-right: 16px"
>
<el-icon>
<ArrowLeft/>
</el-icon>
返回
</el-button>
<span style="margin-right:16px">事业部: {{ divisionName || '--' }}</span>
<!-- 在模板中使用安全表达式 -->
<span>更新人:{{ (updateName.value || route.query.updateName) || '--' }}</span>
</script>
</div>
<template>
<p>CQC内容维护</p>
<!-- 搜索栏 -->
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
<el-form-item :label="`${cn.partName}/${en.partName}`" prop="partLevelTwoName">
<el-input
v-model="queryParams.partLevelTwoName"
:placeholder="`${cn.pleaseInput}/${en.pleaseInput}`"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item :label="`${cn.partType}/${en.partType}`" prop="partType">
<el-select
v-model="queryParams.partType"
:placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`"
clearable
style="width: 200px"
>
<el-option
v-for="dict in part_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="`${cn.cccCertificationMark}/${en.cccCertificationMark}`" prop="cccCertificationMark">
<el-select
v-model="queryParams.cccCertificationMark"
:placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`"
clearable
style="width: 200px"
>
<el-option
v-for="dict in ccc_certification_mark"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="`${cn.totalTableProjectModel}/${en.totalTableProjectModel}`" prop="totalTableProjectModel">
<el-input
v-model="queryParams.totalTableProjectModel"
:placeholder="`${cn.pleaseInput}/${en.pleaseInput}`"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item :label="`${cn.totalTableProjectManufacturerName}/${en.totalTableProjectManufacturerName}`" prop="totalTableProjectManufacturerName">
<el-input
v-model="queryParams.totalTableProjectManufacturerName"
:placeholder="`${cn.pleaseInput}/${en.pleaseInput}`"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item :label="`${cn.totalTableProjectCertificateNumber}/${en.totalTableProjectCertificateNumber}`" prop="totalTableProjectCertificateNumber">
<el-input
v-model="queryParams.totalTableProjectCertificateNumber"
:placeholder="`${cn.pleaseInput}/${en.pleaseInput}`"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item :label="`${cn.p8PostMassProductionUnit}/${en.p8PostMassProductionUnit}`" prop="p8PostMassProductionUnit">
<el-select
v-model="queryParams.p8PostMassProductionUnit"
:placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`"
clearable
style="width: 200px"
>
<el-option
v-for="dict in p8_post_production_unit"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="`${cn.source}/${en.source}`" prop="source">
<el-select
v-model="queryParams.source"
:placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`"
clearable
style="width: 200px"
>
<el-option
v-for="dict in parts_source"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button class="btn-A" icon="Search" @click="handleQuery">{{cn.search}}/{{en.search}}</el-button>
<el-button class="btn-B" icon="Refresh" @click="resetQuery">{{cn.reset}}/{{en.reset}}</el-button>
</el-form-item>
<el-button
style="border: 1px solid #0154fb;color: #0154fb;float: right;margin-bottom: 24px;"
plain
v-if="isDefault === '1'"
@click="handleAdd"
v-hasPermi="['control:config:add']"
>{{cn.addPart}}/{{en.addPart}}</el-button>
</el-form >
<!--表格内容-->
<el-table v-loading="loading"
:data="partsList"
border>
<el-table-column label="序号" type="index" align="center" width="75">
<template #header>
<div>
<div>{{cn.Index}}</div>
<div>{{en.Index}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="零件名称" align="center" prop="partLevelTwoName" >
<template #header>
<div>
<div>{{cn.partName}}</div>
<div>{{en.partName}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="专业部门" align="center" prop="professionalDepartment" >
<template #header>
<div>
<div>{{cn.professionalDepartment}}</div>
<div>{{en.professionalDepartment}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="3C认证标志" align="center" prop="cccCertificationMark" >
<template #header>
<div>
<div>{{cn.cccCertificationMark}}</div>
<div>{{en.cccCertificationMark}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="总表项目-型号规格" align="center" prop="totalTableProjectModel" >
<template #header>
<div>
<div>{{cn.totalTableProjectModel}}</div>
<div>{{en.totalTableProjectModel}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="总表项目-生产厂" align="center" prop="totalTableProjectManufacturerName" >
<template #header>
<div>
<div>{{cn.totalTableProjectManufacturerName}}</div>
<div>{{en.totalTableProjectManufacturerName}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="总表项目-证书编号" align="center" prop="totalTableProjectCertificateNumber" >
<template #header>
<div>
<div>{{cn.totalTableProjectCertificateNumber}}</div>
<div>{{en.totalTableProjectCertificateNumber}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="P8后批量生产单位" align="center" prop="p8PostMassProductionUnit" >
<template #header>
<div>
<div>{{cn.p8PostMassProductionUnit}}</div>
<div>{{en.p8PostMassProductionUnit}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="排序" align="center" prop="sort" >
<template #header>
<div>
<div>{{cn.sort}}</div>
<div>{{en.sort}}</div>
</div>
</template>
</el-table-column>
<el-table-column label="来源" align="center" prop="source" >
<template #header>
<div>
<div>{{cn.source}}</div>
<div>{{en.source}}</div>
</div>
</template>
<template #default="scope">
<dict-tag :options="parts_source" :value="scope.row.source" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" >
<template #header>
<div>
<div>{{cn.Operations}}</div>
<div>{{en.Operations}}</div>
</div>
</template>
<template #default="scope">
<el-button link style="color: rgb(0,0,255)" type="primary" @click="handleUpdate(scope.row)" >
编辑
</el-button>
</template>
</el-table-column>
</el-table>
<!-- CQC事业部编辑弹窗 -->
<el-dialog v-model="openEdit" :title="title" >
<el-form :model="form" ref="partsRef" :rules="rules" >
<template #default>
<el-form ref="partsRef" :model="form" :rules="rules" >
<el-form-item label="专业部门" prop="professionalDepartment" filterable>
<el-select v-model="form.professionalDepartment" placeholder="请选择或输入" filterable allow-create >
<el-option
v-for="dict in professionalDepartmentOptions"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="p8后批量生产单位" prop="p8PostMassProductionUnit">
<el-select v-model="form.p8PostMassProductionUnit" placeholder="请选择">
<el-option
v-for="dict in p8_post_production_unit"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-form>
</template>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button class="btn-B" @click="cancel">取消</el-button>
<el-button class="btn-A" type="primary" @click="submitForm">确定</el-button>
</div>
</template>
</el-dialog>
<!-- 通用和事业部添加或修改抽屉-->
<el-drawer v-model="open" :title="title" >
<template #default>
<el-form ref="partsRef" :model="form" :rules="rules" label-width="150px">
<el-form-item label="零件名称" prop="partLevelTwoName" v-show="isDefault === '1' " >
<el-input :disabled="title === '编辑零件'" v-model="form.partLevelTwoName" placeholder="请输入" />
</el-form-item>
<el-form-item label="p8后批量生产单位" prop="professionalDepartment" filterable>
<el-select v-model="form.professionalDepartment" placeholder="请选择或输入" filterable allow-create >
<el-option
v-for="dict in professionalDepartmentOptions"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="3C认证标志:" prop="cccCertificationMark" filterable v-show="isDefault === '1'">
<el-select v-model="form.cccCertificationMark" placeholder="请选择">
<el-option
v-for="dict in ccc_certification_mark"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="总表项目-型号规格:" prop="totalTableProjectModel" v-show="isDefault === '1'">
<el-input v-model="form.totalTableProjectModel" placeholder="请输入" />
</el-form-item>
<el-form-item label="总表项目-生产厂:" prop="totalTableProjectManufacturerName" v-show="isDefault=== '1'">
<el-input v-model="form.totalTableProjectManufacturerName" placeholder="请输入" />
</el-form-item>
<el-form-item label="总表项目-证书编号:" prop="totalTableProjectCertificateNumber" v-show="isDefault === '1'">
<el-input v-model="form.totalTableProjectCertificateNumber" placeholder="请输入" />
</el-form-item>
<el-form-item label="p8后批量生产单位" prop="p8PostMassProductionUnit">
<el-select v-model="form.p8PostMassProductionUnit" placeholder="请选择">
<el-option
v-for="dict in p8_post_production_unit"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="排序" prop="sort" v-show="isDefault === '1'">
<el-input v-model="form.sort" type="number"/>
</el-form-item>
</el-form>
</template>
<template #footer>
<div style="flex: auto">
<el-button class="btn-A" @click="cancel">取消</el-button>
<el-button class="btn-B" @click="submitForm">提交</el-button>
</div>
</template>
</el-drawer>
</div>
</template>
<style scoped lang="scss">
<script setup name="CQCMaintainContent">
import { getPartsList } from "@/api/RelationManagement/relation.js";
import { useRoute } from 'vue-router';
import { useRouter } from 'vue-router';
import { addParts, listPartLevelOneName, getPartsDetail, editParts, listProfessionalDepartment, batchUpdateSpecialConfig } from "@/api/RelationManagement/maintainContent.js";
import cn from "@/locales/controlPlan/relationshipManagement/maintainContent/cn.json";
import en from "@/locales/controlPlan/relationshipManagement/maintainContent/en.json";
import {ArrowLeft} from "@element-plus/icons-vue";
import {ref} from "vue";
import useUserStore from "@/store/modules/user.js";
const route = useRoute();
const router = useRouter();
const { proxy } = getCurrentInstance();
const { part_type, parts_source, ccc_certification_mark, p8_post_production_unit } = proxy.useDict(
'part_type',
'parts_source',
'ccc_certification_mark',
'p8_post_production_unit'
)
const partsList = ref([]);
const open = ref(false);
const openEdit = ref(false);
const loading = ref(true);
const partsRef = ref(null);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const professionalDepartmentOptions = ref([])
const partLevelOneNameOptions = ref([])
const divisionName = ref(null);
const updateName = ref(route.query.updateName || '--');
//是否通用(0-否,1-是)
const isDefault = ref(route.query.isDefault);
const userStore = useUserStore(); // 获取 Store 实例
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
partLevelOneName: null,
partLevelTwoName: null,
partType: null,
professionalDepartment: null,
cccCertificationMark: null,
totalTableProjectModel: null,
totalTableProjectManufacturerName: null,
totalTableProjectCertificateNumber: null,
p8PostMassProductionUnit: null,
source: null,
certificationBody: route.query.certificationBody,
businessRelationId: route.query.businessRelationId,
businessId: null
},
rules: {
partLevelOneName: [
{ required: true, message: "零部件一级名称不能为空", trigger: "blur" }
],
partLevelTwoName: [
{ required: true, message: "零部件二级名称不能为空", trigger: "blur" }
],
partType: [
{ required: true, message: "零件类型不能为空", trigger: "blur" }
],
professionalDepartment: [
{ required: true, message: "专业部门不能为空", trigger: "blur" }
],
cccCertificationMark: [
{ required: true, message: "3C认证标志不能为空", trigger: "blur" }
],
totalTableProjectModel: [
{ required: true, message: "总表项目-型号规格不能为空", trigger: "blur" }
],
totalTableProjectManufacturerName: [
{ required: true, message: "总表项目-生产厂不能为空", trigger: "blur" }
],
totalTableProjectCertificateNumber: [
{ required: true, message: "总表项目-证书编号不能为空", trigger: "blur" }
],
sort: [
{ required: true, message: "排序不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
// 监听路由参数变化
watch(
() => route.query.isDefault,
(newVal) => {
isDefault.value = newVal; // 更新isDefault
getList(); // 重新加载数据
},
{ immediate: true } // 立即执行初始化
);
function getList() {
loading.value = true;
const queryDivisionName = route.query.divisionName || '';
// 安全处理divisionName
if (Array.isArray(queryDivisionName)) {
divisionName.value = queryDivisionName.join('、');
} else if (typeof queryDivisionName === 'string') {
divisionName.value = queryDivisionName.replace(/["\[\]]/g, '').split(',').join('、');
} else {
divisionName.value = '--'; // 非预期类型时设置默认值
}
updateName.value = route.query.updateName || '--';
/* isDefault.value = route.query.isDefault*/
getPartsList(queryParams.value).then(response => {
partsList.value = response.data;
total.value = response.total;
loading.value = false;
});
}
// 取消按钮
function cancel() {
open.value = false;
openEdit.value = false;
reset();
}
// 表单重置
function reset() {
form.value = {
id: null,
partLevelOneName: null,
partLevelTwoName: null,
partType: null,
professionalDepartment: null,
cccCertificationMark: null,
totalTableProjectModel: null,
totalTableProjectManufacturerName: null,
totalTableProjectCertificateNumber: null,
p8PostMassProductionUnit: '制造',
source: null,
certificationBody: route.query.certificationBody,
businessRelationId: route.query.businessRelationId,
businessId: null
};
proxy.resetForm("partsRef");
}
// 返回CCAP关键零部件管理
function back() {
router.push({
path: '/control/relationshipManagement/CQCCriticalParts'
})
}
// 获取零部件一级名称的方法
const getPartLevelOneNameList = async () => {
try {
const res = await listPartLevelOneName();
partLevelOneNameOptions.value = res.data.map(item => ({
value: item,
label: item
}));
} catch (error) {
console.error('获取零部件一级名称失败:', error);
partLevelOneNameOptions.value = [];
}
};
//获取专业部门
const getProfessionalDepartmentList = async () => {
try {
const businessRelationId = route.query.businessRelationId; // 从路由参数获取
const res = await listProfessionalDepartment(businessRelationId);
// 将接口返回数据转为 { value, label } 格式
professionalDepartmentOptions.value = res.data.map(item => ({
value: item,
label: item
}));
} catch (error) {
console.error('获取专业部门失败:', error);
professionalDepartmentOptions.value = [];
}
};
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "新增零件";
// 确保默认值生效(防止重置覆盖)
form.value.p8PostMassProductionUnit = '制造';
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
//判断是否默认 1默认 0非默认
if (isDefault.value === '1'){
title.value = "编辑零件";
open.value = true; // 打开抽屉
}else {
title.value = "编辑";
//CQC事业部内容维护页编辑
openEdit.value = true;
}
// 从当前行数据中提取参数
const { partNameId } = row;
const businessRelationId = route.query.businessRelationId; // 从路由参数获取
getPartsDetail(partNameId, businessRelationId).then(response => {
form.value = response.data;
console.log("partsList数据结构:", partsList.value); // 检查数据中的字段名
}).catch(error => {
proxy.$modal.msgError("获取详情失败:" + error.message);
});
}
/** 提交按钮 */
function submitForm() {
partsRef.value.validate(valid => {
if (valid) {
if(isDefault.value === '1'){
if (form.value.partNameId != null) { //编辑--通用
editParts(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
updateName.value = userStore.name;
open.value = false;
getList();
});
} else if (form.value.id == null) {
addParts(form.value).then(response => { //新增--通用
proxy.$modal.msgSuccess("新增成功");
updateName.value = userStore.name;
open.value = false;
getList();
});
}
}else if (isDefault.value === '0'){ //编辑--事业部
const data = {
ids: [form.value.partNameId],
professionalDepartment: form.value.professionalDepartment,
p8PostMassProductionUnit: form.value.p8PostMassProductionUnit || '制造',
businessRelationId: route.query.businessRelationId
};
batchUpdateSpecialConfig(data).then(() => {
proxy.$modal.msgSuccess("更新成功");
openEdit.value = false;
getList();
});
}
}
});
}
/** 导出按钮操作 */
function handleExport() {
proxy.download('control/config/export', {
...queryParams.value
}, `config_${new Date().getTime()}.xlsx`)
}
onMounted(() => {
// 加载用户信息
userStore.getInfo();
updateName.value = route.query.updateName || '--';
getPartLevelOneNameList();
getProfessionalDepartmentList();
});
getList();
</script>
<style scoped>
.custom-left .el-form-item__content {
text-align: left;
}
</style>
......@@ -200,6 +200,7 @@ import { useRouter } from 'vue-router';
import {ElMessage} from "element-plus";
const { proxy } = getCurrentInstance();
// 对话框
const tableDialogVisible = ref(false)
......@@ -347,20 +348,19 @@ function handleBusinessSelect(selectedId) {
}
// 维护模板内容
function handleMaintainContentView(row) {
proxy.$router.push({
path: 'CQCMaintainContent'
path: '/control/relationshipManagement/CQCMaintainContent',
query: {
isDefault: row.isDefault,
businessRelationId: row.id,
certificationBody: row.certificationBody,
divisionName: row.divisionName,
updateName: row.updateName,
}
})}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "添加关键零部件和事业部关系";
}
//复制新增按钮
function handleCopyAdd(row){
......@@ -488,8 +488,9 @@ const handleDelete = (row) => {
onMounted(() => {
getBusinessUnitList()
getBusinessUnitList();
getList();
})
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