diff --git a/src/api/CCAPControlPlanManagement/CCAPControlPlanManagement.js b/src/api/CCAPControlPlanManagement/CCAPControlPlanManagement.js new file mode 100644 index 0000000000000000000000000000000000000000..d168ca3926ca0acdbada6bee9993eaf9315c97c9 --- /dev/null +++ b/src/api/CCAPControlPlanManagement/CCAPControlPlanManagement.js @@ -0,0 +1,9 @@ +import request from '@/utils/request.js' + +// 查询CCAP控制计划列表 +export function getCCAPPlanList() { + return request({ + url: '/control/ccapPlan/list', + method: 'get' + }) +} diff --git a/src/api/CCAPProjectManagement/list.js b/src/api/CCAPProjectManagement/list.js index 15fda91fec23148fc190c6c00307bae53f7bada5..51dc8b6aa2fbe9733f635a243163a9678b61a6cf 100644 --- a/src/api/CCAPProjectManagement/list.js +++ b/src/api/CCAPProjectManagement/list.js @@ -83,3 +83,10 @@ export function coypAddCcapManager(data) { data:data }) } +// åˆ é™¤ä¸»è¡¨ +export function deletetable(id) { + return request({ + url: '/control/ccapProjectManagement/deletetable/'+id, + method: 'DELETE' + }) +} diff --git a/src/api/system/basicdata/manufacturer.js b/src/api/system/basicdata/manufacturer.js index 7bb6097b278e3bdb63ea21175424a96930194a2a..8ef0de1a97b007b1e2294d786316a49c8b66cb3a 100644 --- a/src/api/system/basicdata/manufacturer.js +++ b/src/api/system/basicdata/manufacturer.js @@ -5,7 +5,7 @@ export function listManufacturer(query) { return request({ url: '/control/manufacturer/list', method: 'get', - params: query + params: query, }) } @@ -13,7 +13,7 @@ export function listManufacturer(query) { export function getManufacturer(id) { return request({ url: '/control/manufacturer/' + id, - method: 'get' + method: 'get', }) } @@ -22,7 +22,7 @@ export function addManufacturer(data) { return request({ url: '/control/manufacturer', method: 'post', - data: data + data: data, }) } @@ -31,7 +31,7 @@ export function updateManufacturer(data) { return request({ url: '/control/manufacturer', method: 'put', - data: data + data: data, }) } @@ -39,6 +39,13 @@ export function updateManufacturer(data) { export function delManufacturer(id) { return request({ url: '/control/manufacturer/' + id, - method: 'delete' + method: 'delete', + }) +} + +export function updateManufacturers() { + return request({ + url: '/control/manufacturer/updateManufacturerData', + method: 'post', }) } diff --git a/src/assets/styles/btn.scss b/src/assets/styles/btn.scss index 089d16134f94502a4e9bda48e3cab780929e298a..c25db8b601d794c57e058cf63d6672a6615c725a 100644 --- a/src/assets/styles/btn.scss +++ b/src/assets/styles/btn.scss @@ -43,6 +43,22 @@ color: #0148d6; } } +.btn-C{ + width: auto; + height: 32px; + background: #ffffff; + color: #0154FB; + border: 1px solid #0154fb; + border-radius: 4px; + &:hover { + background: #dfe9fe; + color: #0154fb; + border: 1px solid #0154fb; + } + &:active { + color: #0148d6; + } +} .blue-btn { @include colorBtn($blue); } diff --git a/src/locales/baseData/criticalPartsList/BaseIntlPartTemplate/cn.json b/src/locales/baseData/criticalPartsList/BaseIntlPartTemplate/cn.json new file mode 100644 index 0000000000000000000000000000000000000000..fecffc6c510ec27cd7ce8800f524991913b80fcd --- /dev/null +++ b/src/locales/baseData/criticalPartsList/BaseIntlPartTemplate/cn.json @@ -0,0 +1,15 @@ +{ + "Cancel": "å–æ¶ˆ", + "Submit": "æäº¤", + "Index":"åºå·", + "BusinessUnit": "事业部", + "CreatedBy": "创建人", + "CreateTime": "创建时间", + "UpdatedBy": "更新人", + "UpdateTime": "æ›´æ–°æ—¶é—´", + "Operations": "æ“作", + "MaintainTemplateContent": "维护模æ¿å†…容", + "CopyandAdd": "å¤åˆ¶æ–°å¢ž", + "AddBusinessUnit": "æ·»åŠ äº‹ä¸šéƒ¨", + "Delete": "åˆ é™¤" +} diff --git a/src/locales/baseData/criticalPartsList/BaseIntlPartTemplate/en.json b/src/locales/baseData/criticalPartsList/BaseIntlPartTemplate/en.json new file mode 100644 index 0000000000000000000000000000000000000000..c491b78f38f7d0fbb2a02733092fa47b77f417c4 --- /dev/null +++ b/src/locales/baseData/criticalPartsList/BaseIntlPartTemplate/en.json @@ -0,0 +1,15 @@ +{ + "Cancel": "Cancel", + "Submit": "Submit", + "Index":"Index", + "BusinessUnit": "Business Unit", + "CreatedBy": "Created By", + "CreateTime": "Create Time", + "UpdatedBy": "Updated By", + "UpdateTime": "Update Time", + "Operations": "Operations", + "MaintainTemplateContent": "Maintain Template Content", + "CopyandAdd": "Copy and Add", + "AddBusinessUnit": "Add Business Unit", + "Delete": "Delete" +} diff --git a/src/locales/baseData/criticalPartsList/BaseIntlPartTemplateDetail/cn.json b/src/locales/baseData/criticalPartsList/BaseIntlPartTemplateDetail/cn.json new file mode 100644 index 0000000000000000000000000000000000000000..970b2645b75fe2632312655b0b9e1f0c3d8c2e50 --- /dev/null +++ b/src/locales/baseData/criticalPartsList/BaseIntlPartTemplateDetail/cn.json @@ -0,0 +1,26 @@ +{ + "Search": "æœç´¢", + "Reset": "é‡ç½®", + "Cancel": "å–æ¶ˆ", + "Submit": "æäº¤", + "Back": "返回", + "PleaseSelect": "请选择", + "BusinessUnit": "事业部", + "LastUpdatedBy": "最近更新人", + "KeyComponentName": "关键零部件åç§°", + "EnglishName": "英文åç§°", + "Remarks": "备注", + "ComponentCertificationMarkingRequirements": "é›¶éƒ¨ä»¶è®¤è¯æ ‡è®°è¦æ±‚", + "ProfessionalDepartment": "专业部门", + "MassProductionUnitAfterP8": "P8åŽæ‰¹é‡ç”Ÿäº§å•ä½", + "ApplicableMarket": "适用市场", + "Index": "åºå·", + "Model": "åž‹å·", + "Manufacturer": "生产厂家", + "Manufacturer(English)": "生产厂家(英文)", + "ComponentCertificationNumber/RegistrationNumber": "零部件认è¯è¯ä¹¦å·/注册å·", + "PartAssemblyNumber": "零件总æˆå·", + "SortOrder": "排åº", + "Edit": "编辑", + "EditPart": "编辑零件" +} diff --git a/src/locales/baseData/criticalPartsList/BaseIntlPartTemplateDetail/en.json b/src/locales/baseData/criticalPartsList/BaseIntlPartTemplateDetail/en.json new file mode 100644 index 0000000000000000000000000000000000000000..dad1aff32d38a644c99c2eef8c8d5b4a13626b12 --- /dev/null +++ b/src/locales/baseData/criticalPartsList/BaseIntlPartTemplateDetail/en.json @@ -0,0 +1,27 @@ +{ + "Search": "Search", + "Reset": "Reset", + "Cancel": "Cancel", + "Submit": "Submit", + "Back": "Back", + "Please Select": "Please Select", + "Business Unit": "Business Unit", + "Last Updated By": "Last Updated By", + "Key Component Name": "Key Component Name", + "English Name": "English Name", + "Remarks": "Remarks", + "Component Certification Marking Requirements": "Component Certification Marking Requirements", + "Professional Department": "Professional Department", + "Mass Production Unit After P8": "Mass Production Unit After P8", + "Applicable Market": "Applicable Market", + "Index": "Index", + "Model": "Model", + "Manufacturer": "Manufacturer", + "Manufacturer (English)": "Manufacturer (English)", + "Component Certification Number / Registration Number": "Component Certification Number / Registration Number", + "Part Assembly Number": "Part Assembly Number", + "Sort Order": "Sort Order", + "Edit": "Edit", + "Edit Part": "Edit Part" + +} diff --git a/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/cn.json b/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/history/cn.json similarity index 90% rename from src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/cn.json rename to src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/history/cn.json index a5ffbb5f99c5f509ab95d9dd5f00af1add23a138..373c3a10e509b12fb6e8589100c0bb899ea0d282 100644 --- a/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/cn.json +++ b/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/history/cn.json @@ -20,5 +20,6 @@ "keyProcessFormStatus": "关键工åºâ€¦â€¦è¡¨å•状æ€", "COPTestAndChecklistFormStatus": "COP试验和检查表表å•状æ€", "operation": "æ“作", - "serialNumber": "åºå·" + "serialNumber": "åºå·", + "viewHistoricalControlPlan": "æŸ¥çœ‹åŽ†å²æŽ§åˆ¶è®¡åˆ’" } diff --git a/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/en.json b/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/history/en.json similarity index 90% rename from src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/en.json rename to src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/history/en.json index de08f00feeb461b87a4ca1cbac30cdd9945fe7bd..5af02802ea9b40582629c1629e0b64653c7fd388 100644 --- a/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/en.json +++ b/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/history/en.json @@ -20,5 +20,6 @@ "keyProcessFormStatus": "Key Process...Form Status", "COPTestAndChecklistFormStatus": "COP Test and Checklist Form Status", "operation": "Operation", - "serialNumber": "Ordinal" + "serialNumber": "Ordinal", + "viewHistoricalControlPlan": "View Historical Control Plan" } diff --git a/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index/cn.json b/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index/cn.json new file mode 100644 index 0000000000000000000000000000000000000000..373c3a10e509b12fb6e8589100c0bb899ea0d282 --- /dev/null +++ b/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index/cn.json @@ -0,0 +1,25 @@ +{ + "search": "æœç´¢", + "reset": "é‡ç½®", + "pleaseChoose": "请选择", + "pleaseEnter": "请输入", + "businessDivision": "事业部", + "vehicleTypeCode": "车型代ç ", + "vehicleTypeSeries": "车型系列", + "versionNumber": "版本å·", + "creator": "创建人", + "controlPlanStatus": "控制计划状æ€", + "controlPlanNumber": "控制计划编å·", + "productionAddress": "生产地å€", + "compilationDeadline": "ç¼–åˆ¶æˆªæ¢æ—¥æœŸ", + "revisionDate": "修订日期", + "creationDate": "创建日期", + "productionPlant": "生产厂", + "productionSituation": "生产情况", + "keyPartsListFormStatus": "关键件清å•表å•状æ€", + "keyProcessFormStatus": "关键工åºâ€¦â€¦è¡¨å•状æ€", + "COPTestAndChecklistFormStatus": "COP试验和检查表表å•状æ€", + "operation": "æ“作", + "serialNumber": "åºå·", + "viewHistoricalControlPlan": "æŸ¥çœ‹åŽ†å²æŽ§åˆ¶è®¡åˆ’" +} diff --git a/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index/en.json b/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index/en.json new file mode 100644 index 0000000000000000000000000000000000000000..5af02802ea9b40582629c1629e0b64653c7fd388 --- /dev/null +++ b/src/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index/en.json @@ -0,0 +1,25 @@ +{ + "search": "Search", + "reset": "Reset", + "pleaseChoose": "Please Choose", + "pleaseEnter": "Please 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" +} diff --git a/src/views/baseData/criticalPartsList/BaseIntlPartTemplate/index.vue b/src/views/baseData/criticalPartsList/BaseIntlPartTemplate/index.vue index 4656cad1b7f4ee636d3c3858bfd4423ce7269e78..fb8192f3c3345354084c80170b44db159e17d957 100644 --- a/src/views/baseData/criticalPartsList/BaseIntlPartTemplate/index.vue +++ b/src/views/baseData/criticalPartsList/BaseIntlPartTemplate/index.vue @@ -1,23 +1,90 @@ <template> <div class="app-container"> <el-table v-loading="loading" :data="templateList"> - <el-table-column label="åºå·" type="index" align="center" width="55"/> + <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="事业部" prop="divisionCn" align="center"> + <template #header> + <div> + <div>{{cn.BusinessUnit}}</div> + <div>{{en.BusinessUnit}}</div> + </div> + </template> <template #default="scope"> {{Object.values(scope.row.divisionCn).join('ã€')}} </template> </el-table-column> - <el-table-column label="创建人" prop="createByName" align="center"/> - <el-table-column label="创建时间" prop="createTime" align="center"/> - <el-table-column label="更新人" prop="updateByName" align="center"/> - <el-table-column label="æ›´æ–°æ—¶é—´" prop="updateTime" align="center"/> + <el-table-column label="创建人" prop="createByName" align="center"> + <template #header> + <div> + <div>{{cn.CreatedBy}}</div> + <div>{{en.CreatedBy}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="创建时间" prop="createTime" align="center"> + <template #header> + <div> + <div>{{cn.CreateTime}}</div> + <div>{{en.CreateTime}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="更新人" prop="updateByName" align="center"> + <template #header> + <div> + <div>{{cn.UpdatedBy}}</div> + <div>{{en.UpdatedBy}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="æ›´æ–°æ—¶é—´" prop="updateTime" align="center"> + <template #header> + <div> + <div>{{cn.UpdateTime}}</div> + <div>{{en.UpdateTime}}</div> + </div> + </template> + </el-table-column> - <el-table-column label="æ“作" align="center" class-name="small-padding fixed-width" width="300"> + <el-table-column label="æ“作" align="center" class-name="small-padding fixed-width" width="430"> + <template #header> + <div> + <div>{{cn.Operations}}</div> + <div>{{en.Operations}}</div> + </div> + </template> <template #default="scope"> - <el-button link type="primary" @click="handleTemplateDetailView(scope.row)">维护模æ¿å†…容</el-button> - <el-button link type="warning" @click="handleCopyAdd" v-show="scope.row.isDefault === 1">å¤åˆ¶æ–°å¢ž</el-button> - <el-button link type="primary" @click="handleAddDivision(scope.row)" v-show="scope.row.isDefault === 1">æ·»åŠ äº‹ä¸šéƒ¨</el-button> - <el-button link type="danger" @click="handleDelete(scope.row)" v-show="scope.row.isDefault === 0">åˆ é™¤</el-button> + <el-button link type="primary" @click="handleTemplateDetailView(scope.row)"> + <div> + <div>{{cn.MaintainTemplateContent}}</div> + <div>{{en.MaintainTemplateContent}}</div> + </div> + </el-button> + <el-button link type="warning" @click="handleCopyAdd" v-show="scope.row.isDefault === 1"> + <div> + <div>{{cn.CopyandAdd}}</div> + <div>{{en.CopyandAdd}}</div> + </div> + </el-button> + <el-button link type="primary" @click="handleAddDivision(scope.row)" v-show="scope.row.isDefault === 1"> + <div> + <div>{{cn.AddBusinessUnit}}</div> + <div>{{en.AddBusinessUnit}}</div> + </div> + </el-button> + <el-button link type="danger" @click="handleDelete(scope.row)" v-show="scope.row.isDefault === 0"> + <div> + <div>{{cn.Delete}}</div> + <div>{{en.Delete}}</div> + </div> + </el-button> </template> </el-table-column> </el-table> @@ -46,8 +113,18 @@ </el-form> <template #footer> <div class="dialog-footer"> - <el-button @click="cancel">å– æ¶ˆ</el-button> - <el-button type="primary" @click="submitForm">ç¡® 定</el-button> + <el-button class="btn-A" @click="cancel"> + <div> + <div>{{cn.Cancel}}</div> + <div>{{en.Cancel}}</div> + </div> + </el-button> + <el-button class="btn-B" @click="submitForm"> + <div> + <div>{{cn.Submit}}</div> + <div>{{en.Submit}}</div> + </div> + </el-button> </div> </template> </el-dialog> @@ -68,8 +145,8 @@ </el-form> <template #footer> <div class="dialog-footer"> - <el-button @click="cancel">å– æ¶ˆ</el-button> - <el-button type="primary" @click="submitForm">ç¡® 定</el-button> + <el-button class="btn-A" @click="cancel">å–æ¶ˆ</el-button> + <el-button class="btn-B" @click="submitForm">æäº¤</el-button> </div> </template> </el-dialog> @@ -78,6 +155,8 @@ <script setup> import { listTemplate, addTemplate, getAllUnit, delLogicTemplate, updateTemplate } from "@/api/BaseIntlPartTemplate/baseIntlPartTemplate.js"; +import cn from "@/locales/baseData/criticalPartsList/BaseIntlPartTemplate/cn.json"; +import en from "@/locales/baseData/criticalPartsList/BaseIntlPartTemplate/en.json"; const { proxy } = getCurrentInstance(); @@ -128,7 +207,7 @@ function getDivisionList(data) { // 维护模æ¿å†…容 function handleTemplateDetailView(row) { - proxy.$router.push({ path: '/baseData/criticalPartsList/templateDetail', query: { id: row.id , divisionCn: row.divisionCn , isDefault: row.isDefault} }) + proxy.$router.push({ path: '/baseData/criticalPartsList/BaseIntlPartTemplateDetail', query: { id: row.id , divisionCn: row.divisionCn , isDefault: row.isDefault} }) } // å¤åˆ¶æ–°å¢ž diff --git a/src/views/baseData/criticalPartsList/BaseIntlPartTemplateDetail/index.vue b/src/views/baseData/criticalPartsList/BaseIntlPartTemplateDetail/index.vue index 8feb8d2496589d48589159902b89a43d0d38bd35..05dc83b4a3953df6380d75a60b5aba38796c3534 100644 --- a/src/views/baseData/criticalPartsList/BaseIntlPartTemplateDetail/index.vue +++ b/src/views/baseData/criticalPartsList/BaseIntlPartTemplateDetail/index.vue @@ -1,26 +1,36 @@ <template> <div class="app-container"> <div style="margin-bottom: 20px"> - <el-button - link - @click="back" - style="font-size: 16px;" - >返回</el-button> - <span style="margin-left: 10px"> - <el-text size="large">事业部:</el-text> - {{ Object.values(divisionCn).join('ã€') }}</span> - <span style="margin-left: 10px"> - <el-text size="large">最近更新人:</el-text> - {{ latestUpdateByName }}</span> - </div> + <el-button + link + @click="back" + style="font-size: 16px;" + > + <el-icon> + <ArrowLeft/> + </el-icon> + 返回 + </el-button> + <!-- <span style="margin-left: 10px">--> + <!-- <el-text size="large">事业部:</el-text>--> + <!-- {{ Object.values(divisionCn).join('ã€') }}</span>--> + <!-- <span style="margin-left: 10px">--> + <!-- <el-text size="large">最近更新人:</el-text>--> + <!-- {{ latestUpdateByName }}</span>--> + <!-- äº‹ä¸šéƒ¨ä¿¡æ¯ --> + <span class="business-unit">事业部: {{ Object.values(divisionCn).join('ã€') }}</span> + + <!-- æ›´æ–°äººä¿¡æ¯ --> + <span class="last-updated-by">最近更新人:{{ latestUpdateByName }}</span> + </div> <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="150px"> <el-form-item label="关键零部件åç§°:" prop="partNameId"> <el-input - v-model="queryParams.criticalPartNameCn" - placeholder="请输入" - clearable - @keyup.enter="handleQuery" - style="width: 200px" + v-model="queryParams.criticalPartNameCn" + placeholder="请输入" + clearable + @keyup.enter="handleQuery" + style="width: 200px" /> </el-form-item> <el-form-item label="英文åç§°:" prop="partNameId"> @@ -34,11 +44,11 @@ </el-form-item> <el-form-item label="备注:" prop="remark"> <el-input - v-model="queryParams.remark" - placeholder="请输入" - clearable - @keyup.enter="handleQuery" - style="width: 200px" + v-model="queryParams.remark" + placeholder="请输入" + clearable + @keyup.enter="handleQuery" + style="width: 200px" /> </el-form-item> <el-form-item label="é›¶éƒ¨ä»¶è®¤è¯æ ‡è®°è¦æ±‚:" prop="standardRequirements"> @@ -49,22 +59,22 @@ @keyup.enter="handleQuery" style="width: 200px" /> -<!-- <el-select v-model="queryParams.partAuthenticationRequirements" placeholder="请选择" clearable> - <el-option - v-for="dict in part_authentication_requirements" - :key="dict.value" - :label="dict.label" - :value="dict.value" - /> - </el-select>--> + <!-- <el-select v-model="queryParams.partAuthenticationRequirements" placeholder="请选择" clearable> + <el-option + v-for="dict in part_authentication_requirements" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select>--> </el-form-item> <el-form-item label="专业部门:" prop="department"> <el-input - v-model="queryParams.department" - placeholder="请输入" - clearable - @keyup.enter="handleQuery" - style="width: 200px" + v-model="queryParams.department" + placeholder="请输入" + clearable + @keyup.enter="handleQuery" + style="width: 200px" /> </el-form-item> <el-form-item label="P8åŽæ‰¹é‡ç”Ÿäº§å•ä½:" prop="p8PostProductionUnit"> @@ -75,14 +85,14 @@ @keyup.enter="handleQuery" style="width: 200px" /> -<!-- <el-select v-model="queryParams.p8PostProductionUnit" placeholder="请选择" clearable>--> -<!-- <el-option--> -<!-- v-for="dict in p8_post_production_unit"--> -<!-- :key="dict.value"--> -<!-- :label="dict.label"--> -<!-- :value="dict.value"--> -<!-- />--> -<!-- </el-select>--> + <!-- <el-select v-model="queryParams.p8PostProductionUnit" placeholder="请选择" clearable>--> + <!-- <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="适用市场" prop="suitableMarket"> <el-input @@ -105,7 +115,8 @@ plain type="primary" @click="handleExport" - >导出模æ¿</el-button> + >å¯¼å‡ºæ¨¡æ¿ + </el-button> </el-col> </el-row> @@ -115,8 +126,8 @@ <el-table-column label="英文åç§°" prop="criticalPartNameEn" align="center" width="150"/> <el-table-column label="åž‹å·" align="center" width="100"/> <el-table-column label="生产厂家" align="center" width="120"/> - <el-table-column label="生产厂家(英文)" align="center" width="120"/> - <el-table-column label="零部件认è¯è¯ä¹¦å·/注册å·" width="120" align="center" /> + <el-table-column label="生产厂家(英文)" align="center" width="120"/> + <el-table-column label="零部件认è¯è¯ä¹¦å·/注册å·" width="120" align="center"/> <el-table-column label="é›¶éƒ¨ä»¶è®¤è¯æ ‡è®°è¦æ±‚" prop="partAuthenticationRequirements" width="100" align="center"> <template #default="scope"> <dict-tag :options="part_authentication_requirements" :value="scope.row.partAuthenticationRequirements"/> @@ -131,7 +142,7 @@ <el-table-column label="备注" prop="remark" align="center" width="100"/> <el-table-column label="专业部门" prop="department" align="center" width="100"/> <el-table-column label="排åº" prop="sort" align="center" width="100"/> -<!-- 适用市场 --> + <!-- 适用市场 --> <el-table-column align="center" v-for="(header, index) in applicableMarketHeaders" @@ -147,49 +158,49 @@ <span v-else></span> </template> </el-table-column> - <el-table-column label="æ“作" align="center" fixed="right" > + <el-table-column label="æ“作" align="center" fixed="right"> <template #default="scope"> <el-button link type="primary" @click="handleUpdate(scope.row)">编辑</el-button> </template> </el-table-column> </el-table> - <el-drawer v-model="open" size="800px" direction="rtl" title="编辑零件"> + <el-drawer v-model="open" size="800px" direction="rtl" title="编辑零件"> <template #default> <el-form ref="detailRef" :model="form" :rules="rules" label-width="150px"> - <el-form-item label="关键零部件åç§°:" prop="criticalPartNameCn" > - <el-input v-model="form.criticalPartNameCn" disabled/> + <el-form-item label="关键零部件åç§°:" prop="criticalPartNameCn"> + <el-input v-model="form.criticalPartNameCn" disabled/> </el-form-item> <el-form-item label="备注:" prop="remark" v-show="isDefault === '1'"> - <el-input v-model="form.remark" placeholder="请输入" /> + <el-input v-model="form.remark" placeholder="请输入"/> </el-form-item> <el-form-item label="é›¶éƒ¨ä»¶è®¤è¯æ ‡è®°è¦æ±‚" prop="standardRequirements" v-show="isDefault === '1'"> <el-select v-model="form.partAuthenticationRequirements" placeholder="请选择"> <el-option - v-for="dict in part_authentication_requirements" - :key="dict.value" - :label="dict.label" - :value="dict.value" + v-for="dict in part_authentication_requirements" + :key="dict.value" + :label="dict.label" + :value="dict.value" ></el-option> </el-select> </el-form-item> <el-form-item label="专业部门" prop="department" filterable> <el-select v-model="form.department" placeholder="请选择" filterable allow-create> <el-option - v-for="dict in departmentOptions" - :key="dict" - :label="dict" - :value="dict" + v-for="dict in departmentOptions" + :key="dict" + :label="dict" + :value="dict" ></el-option> </el-select> </el-form-item> <el-form-item label="p8åŽç«¯æ‰¹é‡ç”Ÿäº§å•ä½" prop="p8PostProductionUnit"> <el-select v-model="form.p8PostProductionUnit" placeholder="请选择"> <el-option - v-for="dict in p8_post_production_unit" - :key="dict.value" - :label="dict.label" - :value="dict.value" + v-for="dict in p8_post_production_unit" + :key="dict.value" + :label="dict.label" + :value="dict.value" ></el-option> </el-select> </el-form-item> @@ -201,19 +212,22 @@ <template #footer> <div style="flex: auto"> <el-button class="btn-A" @click="cancel">å–æ¶ˆ</el-button> - <el-button class="btn-B" type="primary" @click="submitForm">æäº¤</el-button> + <el-button class="btn-B" @click="submitForm">æäº¤</el-button> </div> </template> </el-drawer> </div> </template> -<script setup > -import { listDetail, getDetail, updateDetail, getMarket} from "@/api/BaseIntlPartTemplate/baseIntlPartTemplateDetail.js"; -import {Check} from "@element-plus/icons-vue"; +<script setup> +import {listDetail, getDetail, updateDetail, getMarket} from "@/api/BaseIntlPartTemplate/baseIntlPartTemplateDetail.js"; +import {ArrowLeft, Check} from "@element-plus/icons-vue"; -const { proxy } = getCurrentInstance(); -const { p8_post_production_unit, part_authentication_requirements } = proxy.useDict('p8_post_production_unit', 'part_authentication_requirements'); +const {proxy} = getCurrentInstance(); +const { + p8_post_production_unit, + part_authentication_requirements +} = proxy.useDict('p8_post_production_unit', 'part_authentication_requirements'); const detailList = ref([]); const open = ref(false); @@ -235,7 +249,7 @@ const data = reactive({ // é›¶éƒ¨ä»¶è®¤è¯æ ‡è®°è¦æ±‚ partAuthenticationRequirements: null, // 适用市场 - applicableMarket:null, + applicableMarket: null, department: null, p8PostProductionUnit: null, remark: null, @@ -243,18 +257,18 @@ const data = reactive({ }, rules: { partNameId: [ - { required: true, message: "关键零部件åç§°", trigger: "blur" } + {required: true, message: "关键零部件åç§°", trigger: "blur"} ], department: [ - { required: true, message: "专业部门ä¸èƒ½ä¸ºç©º", trigger: "blur" } + {required: true, message: "专业部门ä¸èƒ½ä¸ºç©º", trigger: "blur"} ], sort: [ - { required: true, message: "排åºä¸èƒ½ä¸ºç©º", trigger: "blur" } + {required: true, message: "排åºä¸èƒ½ä¸ºç©º", trigger: "blur"} ] } }); -const { queryParams, form, rules } = toRefs(data); +const {queryParams, form, rules} = toRefs(data); /** 查询国际关键零部件模版详情列表 */ function getList() { @@ -294,7 +308,7 @@ function getApplicableMarket() { // è¿”å›žå›½é™…å…³é”®é›¶éƒ¨ä»¶æ¸…å•æ¨¡æ¿ç®¡ç† function back() { - proxy.$router.push({ path: '/baseData/criticalPartsList/template' }) + proxy.$router.push({path: '/baseData/criticalPartsList/BaseIntlPartTemplate'}) } // å–æ¶ˆæŒ‰é’® @@ -350,16 +364,16 @@ function handleUpdate(row) { function submitForm() { proxy.$refs["detailRef"].validate(valid => { if (valid) { - updateDetail(form.value).then(response => { - if (response.code === 200){ - proxy.$modal.msgSuccess("修改æˆåŠŸ"); - open.value = false; - getList(); - }else { - proxy.$modal.msgError(response.msg) - } - }); - } + updateDetail(form.value).then(response => { + if (response.code === 200) { + proxy.$modal.msgSuccess("修改æˆåŠŸ"); + open.value = false; + getList(); + } else { + proxy.$modal.msgError(response.msg) + } + }); + } }); } @@ -382,4 +396,18 @@ getApplicableMarket(); .el-row { margin-bottom: 20px; } + +.header-container { + display: flex; + align-items: center; + gap: 10px; + margin-left: 10px +} + +.business-unit, +.last-updated-by { + margin-left: 10px; + font-size: 16px; + color: #606266; +} </style> diff --git a/src/views/baseData/vehicleModelData/domesticModel.vue b/src/views/baseData/vehicleModelData/domesticModel.vue new file mode 100644 index 0000000000000000000000000000000000000000..f87c05f27c18ca959958581c70b12d58d3f949f9 --- /dev/null +++ b/src/views/baseData/vehicleModelData/domesticModel.vue @@ -0,0 +1,519 @@ +<template> + <el-form + v-show="showSearch" + ref="queryRef" + :model="queryParams" + :inline="true" + label-width="68px" + > + <el-form-item label="车型代ç " prop="modelCode"> + <el-input + v-model="queryParams.modelCode" + placeholder="请输入" + clearable + style="width: 120px" + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="车型公告å·" prop="modelAnnouncementNumber"> + <el-input + v-model="queryParams.modelAnnouncementNumber" + placeholder="请输入" + clearable + style="width: 120px" + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="车型系列" prop="modelSeries"> + <el-select + v-model="queryParams.modelSeries" + placeholder="请选择" + clearable + style="width: 120px" + > + <el-option + v-for="dict in sys_manufacture" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + <el-form-item label="是å¦ç»´æŠ¤" prop="isMaintained"> + <el-select + v-model="queryParams.isMaintained" + placeholder="请选择" + clearable + style="width: 100px" + > + <el-option + v-for="item in vehicle_model_maintenance" + :key="item.value" + :label="item.label" + :value="item.value" + /> + </el-select> + </el-form-item> + <el-form-item label="事业部" prop="businessUnitName"> + <el-select + v-model="queryParams.businessUnitName" + placeholder="请选择" + clearable + style="width: 100px" + > + <el-option + v-for="item in allBusinessUnit" + :key="item.id" + :label="item.businessUnitName" + :value="item.businessUnitName || ''" + /> + </el-select> + </el-form-item> + + <el-form-item label="å‘动机型å·" prop="engineModel"> + <el-input + v-model="queryParams.engineModel" + placeholder="请输入" + clearable + style="width: 100px" + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="认è¯ç”³æŠ¥ç”Ÿäº§åœ°å€" prop="productionAddress"> + <el-input + v-model="queryParams.productionAddress" + placeholder="请输入" + clearable + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="åˆ¶é€ å·¥åŽ‚" prop="manufacturingPlant"> + <el-input + v-model="queryParams.manufacturingPlant" + placeholder="请选择" + clearable + style="width: 100px" + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="CVN" prop="cvn"> + <el-input + v-model="queryParams.cvn" + placeholder="请输入" + clearable + style="width: 100px" + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="CALID" prop="calid"> + <el-input + v-model="queryParams.calid" + placeholder="请输入" + clearable + style="width: 100px" + @keyup.enter="handleQuery" + /> + </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 + > + <div> + <el-button + style=" + float: left; + margin: 0px 100px; + border: 1px solid #0154fb; + color: #0154fb; + " + @click="handleExport" + >导出</el-button + > + </div> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + v-hasPermi="['control:model:add']" + type="primary" + plain + icon="Plus" + @click="handleAdd" + >新增</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + v-hasPermi="['control:model:export']" + type="warning" + plain + icon="Download" + @click="handleExport" + >导出</el-button + > + </el-col> + </el-row> + + <el-table + v-loading="loading" + border + :data="modelList" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="åºå·" align="center" width="80"> + <template #default="scope"> + {{ scope.$index + 1 }} + </template> + </el-table-column> + <el-table-column label="事业部" align="center" prop="businessUnitName" /> + <el-table-column label="车型代ç " align="center" prop="modelCode" /> + <el-table-column label="车型系列" align="center" prop="modelSeries" /> + <el-table-column label="动力类型" align="center" prop="powerType" /> + <el-table-column + label="车型公告å·" + align="center" + prop="modelAnnouncementNumber" + /> + <el-table-column label="å“牌" align="center" prop="brand" /> + <el-table-column label="是å¦ç»´æŠ¤" align="center" prop="isMaintained"> + <template #default="scope"> + <dict-tag + :options="vehicle_model_maintenance" + :value="scope.row.isMaintained" + /> + </template> + </el-table-column> + <el-table-column label="å‘动机型å·" align="center" prop="engineModel" /> + <el-table-column + label="车型代ç 今年累计产é‡" + align="center" + prop="modelCodeYearlyProduction" + /> + <el-table-column + label="车型公告å·ä»Šå¹´ç´¯è®¡äº§é‡" + align="center" + prop="announcementYearlyProduction" + /> + <el-table-column label="CVN" align="center" prop="cvn" /> + <el-table-column label="CALID" align="center" prop="calid" /> + <el-table-column + label="认è¯ç”³æŠ¥ç”Ÿäº§åœ°å€" + align="center" + prop="productionAddress" + /> + <el-table-column prop="manufacturingPlant" align="center" label="åˆ¶é€ å·¥åŽ‚"> + </el-table-column> + <el-table-column + label="æ“作" + align="center" + class-name="small-padding fixed-width" + > + <template #default="scope"> + <el-button + v-hasPermi="['control:model:edit']" + link + type="primary" + icon="Edit" + @click="handleUpdate(scope.row)" + >补充信æ¯</el-button + > + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total > 0" + v-model:page="queryParams.pageNum" + v-model:limit="queryParams.pageSize" + :total="total" + @pagination="getList" + /> + + <!-- æ·»åŠ æˆ–ä¿®æ”¹å›½å†…è½¦åž‹å¯¹è¯æ¡† --> + <el-dialog v-model="open" :title="title" width="500px" append-to-body> + <el-form ref="modelRef" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="车型代ç " prop="modelCode"> + <el-input v-model="form.modelCode" placeholder="请输入车型代ç " /> + </el-form-item> + <el-form-item label="车型系列" prop="modelSeries"> + <el-input v-model="form.modelSeries" placeholder="请输入车型系列" /> + </el-form-item> + <el-form-item label="车型公告å·" prop="modelAnnouncementNumber"> + <el-input + v-model="form.modelAnnouncementNumber" + placeholder="请输入车型公告å·" + /> + </el-form-item> + <el-form-item label="是å¦ç»´æŠ¤" prop="isMaintained"> + <el-radio-group v-model="form.isMaintained"> + <el-radio + v-for="(item, index) in vehicle_model_maintenance" + :key="index" + :label="parseInt(item.value)" + :disabled="item.disabled" + >{{ item.label }}</el-radio + > + </el-radio-group> + </el-form-item> + <el-form-item label="生产地å€" prop="productionAddress"> + <el-input + v-model="form.productionAddress" + placeholder="请输入生产地å€" + /> + </el-form-item> + <el-form-item label="åˆ¶é€ å·¥åŽ‚" prop="manufacturingPlant"> + <el-checkbox-group v-model="selectedFactories"> + <div style="display: flex; flex-wrap: wrap"> + <div + v-for="(factory, index) in allFactories" + :key="index" + style="width: 33%; margin-bottom: 10px" + > + <el-checkbox :label="factory">{{ factory }}</el-checkbox> + </div> + </div> + </el-checkbox-group> + </el-form-item> + </el-form> + <template #footer> + <div class="dialog-footer"> + <el-button class="btn-B" @click="cancel">å– æ¶ˆ</el-button> + <el-button class="btn-A" @click="submitForm">ä¿ å˜</el-button> + </div> + </template> + </el-dialog> +</template> + +<script setup> +import { + listModel, + getModel, + delModel, + addModel, + updateModel, +} from '@/api/vehicleModelData/domestic' +import { getAllFactoryName } from '@/api/system/factory' +import { getAllBusinessUnitName } from '@/api/system/basicdata/businessunit' +import { ref, toRefs, watch } from 'vue' + +const { proxy } = getCurrentInstance() +const { vehicle_model_maintenance } = proxy.useDict('vehicle_model_maintenance') + +const modelList = 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: { + manufacturingPlant: '', // å—符串类型,å˜å‚¨é€‰ä¸çš„工厂 + businessUnitName: '', + isMaintained: '', + }, + queryParams: { + pageNum: 1, + pageSize: 10, + businessUnitName: null, + brand: null, + modelCode: null, + modelSeries: null, + modelAnnouncementNumber: null, + isMaintained: null, + engineModel: null, + modelCodeYearlyProduction: null, + announcementYearlyProduction: null, + cvn: null, + calid: null, + productionAddress: null, + manufacturingPlant: null, + }, + rules: {}, +}) +// Vue ä¸çš„ v-model 绑定默认是å—符串类型。 +const allFactories = ref([]) // 所有工厂列表 +const selectedFactories = ref([]) // 当å‰é€‰ä¸çš„工厂数组 +// 监å¬è¡¨å•æ•°æ®å˜åŒ–,åˆå§‹åŒ–选ä¸çš„工厂 +const { queryParams, form, rules } = toRefs(data) +const allBusinessUnit = ref([]) // èŽ·å–æ‰€æœ‰äº‹ä¸šéƒ¨åˆ—表 + +// 获å–工厂数æ®çš„æ–¹æ³• +const fetchFactories = async () => { + try { + const response = await getAllFactoryName() + // æå–factoryNameå—æ®µ + allFactories.value = response.data.map((item) => item.factoryName) + } catch (error) { + console.error('获å–工厂列表失败:', error) + } +} +const fetchBusinessUnit = async () => { + try { + const response = await getAllBusinessUnitName() + // æå–factoryNameå—æ®µ + allBusinessUnit.value = response.data.map((item) => item.businessUnitName) + } catch (error) { + console.error('获å–工厂列表失败:', error) + } +} +// 监å¬é€‰ä¸çš„工厂å˜åŒ–,更新表å•å—符串数æ®ï¼ˆä½¿ç”¨é¡¿å·åˆ†éš”) +watch( + selectedFactories, + (newVal) => { + // 将数组转æ¢ä¸ºé¡¿å·åˆ†éš”çš„å—符串 + form.value.manufacturingPlant = newVal.join('ã€') // 注æ„è¿™é‡Œæ˜¯ä¸æ–‡é¡¿å· + }, + { deep: true }, +) + +// åˆå§‹åŒ–时从å—符串转为数组(用于编辑时回显) +watch( + () => form.value.manufacturingPlant, + (newVal) => { + // 使用顿å·åˆ†å‰²å—符串 + selectedFactories.value = newVal ? newVal.split('ã€') : [] + }, + { immediate: true }, +) +/** 查询国内车型列表 */ +function getList() { + loading.value = true + listModel(queryParams.value).then((response) => { + modelList.value = response.rows + total.value = response.total + loading.value = false + }) +} + +// å–æ¶ˆæŒ‰é’® +function cancel() { + open.value = false + reset() +} + +// 表å•é‡ç½® +function reset() { + form.value = { + id: null, + brand: null, + modelCode: null, + modelSeries: null, + modelAnnouncementNumber: null, + isMaintained: null, + engineModel: null, + modelCodeYearlyProduction: null, + announcementYearlyProduction: null, + cvn: null, + calid: null, + productionAddress: null, + manufacturingPlant: null, + createBy: null, + createTime: null, + updateBy: null, + updateTime: null, + remark: null, + delFlag: null, + } + proxy.resetForm('modelRef') +} + +/** æœç´¢æŒ‰é’®æ“作 */ +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 = 'æ·»åŠ å›½å†…è½¦åž‹' +} + +/** 修改按钮æ“作 */ +function handleUpdate(row) { + reset() + const _id = row.id || ids.value + getModel(_id).then((response) => { + form.value = response.data + open.value = true + title.value = '修改国内车型' + }) +} + +/** æäº¤æŒ‰é’® */ +function submitForm() { + proxy.$refs['modelRef'].validate((valid) => { + if (valid) { + if (form.value.id != null) { + updateModel(form.value).then((response) => { + proxy.$modal.msgSuccess('修改æˆåŠŸ') + open.value = false + getList() + }) + } else { + addModel(form.value).then((response) => { + proxy.$modal.msgSuccess('新增æˆåŠŸ') + open.value = false + getList() + }) + } + } + }) +} + +/** åˆ é™¤æŒ‰é’®æ“作 */ +function handleDelete(row) { + const _ids = row.id || ids.value + proxy.$modal + .confirm('是å¦ç¡®è®¤åˆ 除国内车型编å·ä¸º"' + _ids + '"的数æ®é¡¹ï¼Ÿ') + .then(function () { + return delModel(_ids) + }) + .then(() => { + getList() + proxy.$modal.msgSuccess('åˆ é™¤æˆåŠŸ') + }) + .catch(() => {}) +} + +/** 导出按钮æ“作 */ +function handleExport() { + proxy.download( + 'control/model/export', + { + ...queryParams.value, + }, + `model_${new Date().getTime()}.xlsx`, + ) +} +onMounted(() => { + fetchFactories() + fetchBusinessUnit() +}) +getList() +</script> diff --git a/src/views/baseData/vehicleModelData/index.vue b/src/views/baseData/vehicleModelData/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..301342efe8da35c8ffd3f084878b988e09354d5a --- /dev/null +++ b/src/views/baseData/vehicleModelData/index.vue @@ -0,0 +1,21 @@ +<template> + <el-card> + <el-tabs v-model="activeName"> + <el-tab-pane label="国内车型" name="domesticModel"> + <domesticModel /> + </el-tab-pane> + <el-tab-pane label="国际车型" name="internationalModel"> + <internationalModel /> + </el-tab-pane> + </el-tabs> + </el-card> +</template> + +<script setup name="Parameter"> +import domesticModel from './domesticModel.vue' +import internationalModel from './internationalModel.vue' +const { proxy } = getCurrentInstance() + +const activeName = ref('domesticModel') +const info = ref({}) +</script> diff --git a/src/views/baseData/vehicleModelData/international/index.vue b/src/views/baseData/vehicleModelData/international/index.vue deleted file mode 100644 index eb0638e7478ba0fceb26cdb7d4b156a0ce9c16e6..0000000000000000000000000000000000000000 --- a/src/views/baseData/vehicleModelData/international/index.vue +++ /dev/null @@ -1,13 +0,0 @@ -<template> -国际车型 -</template> - -<script> -export default { - name: 'index', -} -</script> - -<style scoped> - -</style> diff --git a/src/views/baseData/vehicleModelData/internationalModel.vue b/src/views/baseData/vehicleModelData/internationalModel.vue new file mode 100644 index 0000000000000000000000000000000000000000..db70f272c8352775eb3e5788ad7005e3de83a813 --- /dev/null +++ b/src/views/baseData/vehicleModelData/internationalModel.vue @@ -0,0 +1,560 @@ +<template> + <el-form + v-show="showSearch" + ref="queryRef" + :model="queryParams" + :inline="true" + label-width="68px" + > + <el-form-item label="type" prop="type"> + <el-input + v-model="queryParams.type" + placeholder="请输入" + clearable + style="width: 120px" + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="车型代ç " prop="modelCode"> + <el-input + v-model="queryParams.modelCode" + placeholder="请输入" + clearable + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="动力类型" prop="powerType"> + <el-input + v-model="queryParams.powerType" + placeholder="请输入" + clearable + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="å‘动机型å·" prop="engineModel"> + <el-input + v-model="queryParams.engineModel" + placeholder="请输入å‘动机型å·" + clearable + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="åŠ¨åŠ›ç”µæ± åž‹å·" prop="powerBatteryModel"> + <el-input + v-model="queryParams.powerBatteryModel" + placeholder="请输入" + clearable + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="å˜é€Ÿå™¨åž‹å·" prop="transmissionModel"> + <el-input + v-model="queryParams.transmissionModel" + placeholder="请输入" + clearable + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="适用市场" prop="applicableMarket"> + <el-input + v-model="queryParams.applicableMarket" + placeholder="请输入" + clearable + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="事业部" prop="businessUnitName"> + <el-select + v-model="queryParams.businessUnitName" + placeholder="请选择" + clearable + style="width: 100px" + > + <el-option + v-for="item in allBusinessUnit" + :key="item.id" + :label="item.businessUnitName" + :value="item.businessUnitName || ''" + /> + </el-select> + </el-form-item> + <el-form-item label="整车认è¯è¯ä¹¦" prop="vehicleCertificate"> + <el-input + v-model="queryParams.vehicleCertificate" + placeholder="请输入" + clearable + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="å•项è¯ä¹¦" prop="singleCertificate"> + <el-input + v-model="queryParams.singleCertificate" + placeholder="请输入" + clearable + @keyup.enter="handleQuery" + /> + </el-form-item> + <el-form-item label="是å¦ç»´æŠ¤" prop="isMaintained"> + <el-input + v-model="queryParams.isMaintained" + placeholder="请选择" + clearable + @keyup.enter="handleQuery" + /> + </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 + > + <div> + <el-button + style=" + float: left; + margin: 0px 100px; + border: 1px solid #0154fb; + color: #0154fb; + " + @click="handleExport" + >导出</el-button + > + </div> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + v-hasPermi="['control:model:add']" + type="primary" + plain + icon="Plus" + @click="handleAdd" + >新增</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + v-hasPermi="['control:model:edit']" + type="success" + plain + icon="Edit" + :disabled="single" + @click="handleUpdate" + >修改</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + v-hasPermi="['control:model:remove']" + type="danger" + plain + icon="Delete" + :disabled="multiple" + @click="handleDelete" + >åˆ é™¤</el-button + > + </el-col> + <el-col :span="1.5"> + <el-button + v-hasPermi="['control:model:export']" + type="warning" + plain + icon="Download" + @click="handleExport" + >导出</el-button + > + </el-col> + <right-toolbar + v-model:show-search="showSearch" + @query-table="getList" + ></right-toolbar> + </el-row> + + <el-table + v-loading="loading" + :data="modelList" + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="åºå·" align="center" width="80"> + <template #default="scope"> + {{ scope.$index + 1 }} + </template> + </el-table-column> + <el-table-column label="type" align="center" prop="type" /> + <el-table-column label="车型代ç " align="center" prop="modelCode" /> + <el-table-column label="动力类型" align="center" prop="powerType" /> + <el-table-column label="å‘动机型å·" align="center" prop="engineModel" /> + <el-table-column + label="åŠ¨åŠ›ç”µæ± åž‹å·" + align="center" + prop="powerBatteryModel" + /> + <el-table-column + label="å˜é€Ÿå™¨åž‹å·" + align="center" + prop="transmissionModel" + /> + <el-table-column label="适用市场" align="center" prop="applicableMarket" /> + <el-table-column label="事业部" align="center" prop="businessUnitName" /> + <el-table-column label="å“牌" align="center" prop="brand" /> + <el-table-column + label="整车认è¯è¯ä¹¦" + align="center" + prop="vehicleCertificate" + /> + <el-table-column label="å•项è¯ä¹¦" align="center" prop="singleCertificate" /> + <el-table-column label="是å¦ç»´æŠ¤" align="center" prop="isMaintained" /> + + <el-table-column + label="今年累计产é‡" + align="center" + prop="yearlyProduction" + /> + <el-table-column + label="åˆ¶é€ å·¥åŽ‚" + align="center" + prop="manufacturingPlant" + /> + <el-table-column + label="æ“作" + align="center" + class-name="small-padding fixed-width" + > + <template #default="scope"> + <el-button + v-hasPermi="['control:model:edit']" + link + type="primary" + icon="Edit" + @click="handleUpdate(scope.row)" + >补充信æ¯</el-button + > + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total > 0" + v-model:page="queryParams.pageNum" + v-model:limit="queryParams.pageSize" + :total="total" + @pagination="getList" + /> + + <!-- æ·»åŠ æˆ–ä¿®æ”¹å›½å†…è½¦åž‹å¯¹è¯æ¡† --> + <el-dialog v-model="open" :title="title" width="500px" append-to-body> + <el-form ref="modelRef" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="å“牌" prop="brand"> + <el-input v-model="form.brand" placeholder="请输入å“牌" /> + </el-form-item> + <el-form-item label="车型代ç " prop="modelCode"> + <el-input v-model="form.modelCode" placeholder="请输入车型代ç " /> + </el-form-item> + <el-form-item label="车型系列" prop="modelSeries"> + <el-input v-model="form.modelSeries" placeholder="请输入车型系列" /> + </el-form-item> + <el-form-item label="车型公告å·" prop="modelAnnouncementNumber"> + <el-input + v-model="form.modelAnnouncementNumber" + placeholder="请输入车型公告å·" + /> + </el-form-item> + <el-form-item label="是å¦ç»´æŠ¤" prop="isMaintained"> + <el-input v-model="form.isMaintained" placeholder="请输入是å¦ç»´æŠ¤" /> + </el-form-item> + <el-form-item label="å‘动机型å·" prop="engineModel"> + <el-input v-model="form.engineModel" placeholder="请输入å‘动机型å·" /> + </el-form-item> + <el-form-item label="åŠ¨åŠ›ç”µæ± åž‹å·" prop="powerBatteryModel"> + <el-input + v-model="form.powerBatteryModel" + placeholder="è¯·è¾“å…¥åŠ¨åŠ›ç”µæ± åž‹å·" + /> + </el-form-item> + <el-form-item label="å˜é€Ÿå™¨åž‹å·" prop="transmissionModel"> + <el-input + v-model="form.transmissionModel" + placeholder="请输入å˜é€Ÿå™¨åž‹å·" + /> + </el-form-item> + <el-form-item label="适用市场" prop="applicableMarket"> + <el-input + v-model="form.applicableMarket" + placeholder="请输入适用市场" + /> + </el-form-item> + <el-form-item label="整车认è¯è¯ä¹¦" prop="vehicleCertificate"> + <el-input + v-model="form.vehicleCertificate" + placeholder="请输入整车认è¯è¯ä¹¦" + /> + </el-form-item> + <el-form-item label="å•项è¯ä¹¦" prop="singleCertificate"> + <el-input + v-model="form.singleCertificate" + placeholder="请输入å•项è¯ä¹¦" + /> + </el-form-item> + <el-form-item + label="车型代ç 今年累计产é‡" + prop="modelCodeYearlyProduction" + > + <el-input + v-model="form.modelCodeYearlyProduction" + placeholder="请输入车型代ç 今年累计产é‡" + /> + </el-form-item> + <el-form-item + label="车型公告å·ä»Šå¹´ç´¯è®¡äº§é‡" + prop="announcementYearlyProduction" + > + <el-input + v-model="form.announcementYearlyProduction" + placeholder="请输入车型公告å·ä»Šå¹´ç´¯è®¡äº§é‡" + /> + </el-form-item> + <el-form-item label="今年累计产é‡" prop="yearlyProduction"> + <el-input + v-model="form.yearlyProduction" + placeholder="请输入今年累计产é‡" + /> + </el-form-item> + <el-form-item label="CVN" prop="cvn"> + <el-input v-model="form.cvn" placeholder="请输入CVN" /> + </el-form-item> + <el-form-item label="CALID" prop="calid"> + <el-input v-model="form.calid" placeholder="请输入CALID" /> + </el-form-item> + <el-form-item label="生产地å€" prop="productionAddress"> + <el-input + v-model="form.productionAddress" + placeholder="请输入生产地å€" + /> + </el-form-item> + <el-form-item label="åˆ¶é€ å·¥åŽ‚" prop="manufacturingPlant"> + <el-input + v-model="form.manufacturingPlant" + placeholder="è¯·è¾“å…¥åˆ¶é€ å·¥åŽ‚" + /> + </el-form-item> + <el-form-item label="备注" prop="remark"> + <el-input + v-model="form.remark" + type="textarea" + placeholder="请输入内容" + /> + </el-form-item> + <el-form-item label="${comment}" prop="delFlag"> + <el-input v-model="form.delFlag" placeholder="请输入${comment}" /> + </el-form-item> + <el-form-item label="0为国内车型 1为国际车型" prop="isDomestic"> + <el-input + v-model="form.isDomestic" + placeholder="请输入0为国内车型 1为国际车型" + /> + </el-form-item> + </el-form> + <template #footer> + <div class="dialog-footer"> + <el-button type="primary" @click="submitForm">ç¡® 定</el-button> + <el-button @click="cancel">å– æ¶ˆ</el-button> + </div> + </template> + </el-dialog> +</template> + +<script setup name="Model"> +import { + listModel, + getModel, + delModel, + addModel, + updateModel, +} from '@/api/vehicleModelData/domestic' + +const { proxy } = getCurrentInstance() + +const modelList = 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, + brand: null, + type: null, + modelCode: null, + powerType: null, + modelSeries: null, + modelAnnouncementNumber: null, + isMaintained: null, + engineModel: null, + powerBatteryModel: null, + transmissionModel: null, + applicableMarket: null, + vehicleCertificate: null, + singleCertificate: null, + modelCodeYearlyProduction: null, + announcementYearlyProduction: null, + yearlyProduction: null, + cvn: null, + calid: null, + productionAddress: null, + manufacturingPlant: null, + isDomestic: null, + }, + rules: {}, +}) + +const { queryParams, form, rules } = toRefs(data) + +/** 查询国内车型列表 */ +function getList() { + loading.value = true + listModel(queryParams.value).then((response) => { + modelList.value = response.rows + total.value = response.total + loading.value = false + }) +} + +// å–æ¶ˆæŒ‰é’® +function cancel() { + open.value = false + reset() +} + +// 表å•é‡ç½® +function reset() { + form.value = { + id: null, + brand: null, + type: null, + modelCode: null, + powerType: null, + modelSeries: null, + modelAnnouncementNumber: null, + isMaintained: null, + engineModel: null, + powerBatteryModel: null, + transmissionModel: null, + applicableMarket: null, + vehicleCertificate: null, + singleCertificate: null, + modelCodeYearlyProduction: null, + announcementYearlyProduction: null, + yearlyProduction: null, + cvn: null, + calid: null, + productionAddress: null, + manufacturingPlant: null, + createBy: null, + createTime: null, + updateBy: null, + updateTime: null, + remark: null, + delFlag: null, + isDomestic: null, + } + proxy.resetForm('modelRef') +} + +/** æœç´¢æŒ‰é’®æ“作 */ +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 = 'æ·»åŠ å›½å†…è½¦åž‹' +} + +/** 修改按钮æ“作 */ +function handleUpdate(row) { + reset() + const _id = row.id || ids.value + getModel(_id).then((response) => { + form.value = response.data + open.value = true + title.value = '修改国内车型' + }) +} + +/** æäº¤æŒ‰é’® */ +function submitForm() { + proxy.$refs['modelRef'].validate((valid) => { + if (valid) { + if (form.value.id != null) { + updateModel(form.value).then((response) => { + proxy.$modal.msgSuccess('修改æˆåŠŸ') + open.value = false + getList() + }) + } else { + addModel(form.value).then((response) => { + proxy.$modal.msgSuccess('新增æˆåŠŸ') + open.value = false + getList() + }) + } + } + }) +} + +/** åˆ é™¤æŒ‰é’®æ“作 */ +function handleDelete(row) { + const _ids = row.id || ids.value + proxy.$modal + .confirm('是å¦ç¡®è®¤åˆ 除国内车型编å·ä¸º"' + _ids + '"的数æ®é¡¹ï¼Ÿ') + .then(function () { + return delModel(_ids) + }) + .then(() => { + getList() + proxy.$modal.msgSuccess('åˆ é™¤æˆåŠŸ') + }) + .catch(() => {}) +} + +/** 导出按钮æ“作 */ +function handleExport() { + proxy.download( + 'control/model/export', + { + ...queryParams.value, + }, + `model_${new Date().getTime()}.xlsx`, + ) +} + +getList() +</script> diff --git a/src/views/carConsistency/filingParameter/history.vue b/src/views/carConsistency/filingParameter/history.vue index f616f264a860ebce72ac85ce02f7d16449ce1232..72f17cf7e7dd415099b50c595340928db1298d03 100644 --- a/src/views/carConsistency/filingParameter/history.vue +++ b/src/views/carConsistency/filingParameter/history.vue @@ -114,7 +114,7 @@ plain @click="handleExport" v-hasPermi="['control:library:export']" - >导出最新版本列表数æ®</el-button> + >å¯¼å‡ºåŽ†å²æ•°æ®åˆ—表数æ®</el-button> <!-- 在el-tableä¸Šæ·»åŠ v-if延迟渲染 --> @@ -360,9 +360,16 @@ function handleSelectionChange(selection) { /** 导出按钮æ“作 */ function handleExport() { + const now = new Date(); + const formattedTime = `${now.getFullYear()}` + + `${String(now.getMonth()+1).padStart(2,'0')}` + + `${String(now.getDate()).padStart(2,'0')}` + + `${String(now.getHours()).padStart(2,'0')}` + + `${String(now.getMinutes()).padStart(2,'0')}` + + `${String(now.getSeconds()).padStart(2,'0')}`; proxy.download('control/library/export', { ...queryParams.value - }, `library_${new Date().getTime()}.xlsx`) + }, `å¤‡æ¡ˆå‚æ•°æ€»è¡¨ä¸»åˆ—表信æ¯-${formattedTime}.xlsx`) } function handleView(row) { @@ -372,7 +379,8 @@ function handleView(row) { id: row.id, modelCode: row.modelCode, modelSeries: row.modelSeries, - announcementNumber: row.announcementNumber + announcementNumber: row.announcementNumber, + versionNumber: row.versionNumber } }) } diff --git a/src/views/carConsistency/filingParameter/newAnnouncementVersion.vue b/src/views/carConsistency/filingParameter/newAnnouncementVersion.vue index d054a7e34b450bce61f17634adb7fd68f8a430e8..bbc5b1caa8fa71c8b66724993b7e15a5dacee36a 100644 --- a/src/views/carConsistency/filingParameter/newAnnouncementVersion.vue +++ b/src/views/carConsistency/filingParameter/newAnnouncementVersion.vue @@ -360,9 +360,16 @@ function handleSelectionChange(selection) { /** 导出按钮æ“作 */ function handleExport() { + const now = new Date(); + const formattedTime = `${now.getFullYear()}` + + `${String(now.getMonth()+1).padStart(2,'0')}` + + `${String(now.getDate()).padStart(2,'0')}` + + `${String(now.getHours()).padStart(2,'0')}` + + `${String(now.getMinutes()).padStart(2,'0')}` + + `${String(now.getSeconds()).padStart(2,'0')}`; proxy.download('control/library/export', { ...queryParams.value - }, `library_${new Date().getTime()}.xlsx`) + }, `å¤‡æ¡ˆå‚æ•°æ€»è¡¨ä¸»åˆ—表信æ¯-${formattedTime}.xlsx`) } function handleView(row) { @@ -372,7 +379,8 @@ function handleView(row) { id: row.id, modelCode: row.modelCode, modelSeries: row.modelSeries, - announcementNumber: row.announcementNumber + announcementNumber: row.announcementNumber, + versionNumber: row.versionNumber } }) } diff --git a/src/views/carConsistency/filingParameter/parameterDetail.vue b/src/views/carConsistency/filingParameter/parameterDetail.vue index de72f97a34bbd1b8c8c3e7899fe19512bd39c032..0c839f545ca2b279f88c348f6c37763333682fd5 100644 --- a/src/views/carConsistency/filingParameter/parameterDetail.vue +++ b/src/views/carConsistency/filingParameter/parameterDetail.vue @@ -73,6 +73,7 @@ import { useRoute } from 'vue-router'; const route = useRoute(); const { proxy } = getCurrentInstance(); +const versionNumber = route.query.versionNumber const modelCode = route.query.modelCode const modelSeries = route.query.modelSeries const announcementNumber = route.query.announcementNumber @@ -232,9 +233,21 @@ function handleDelete(row) { /** 导出按钮æ“作 */ function handleExport() { + // æ—¶é—´æ ¼å¼åŒ–å¤„ç† + const now = new Date(); + const formattedTime = [ + now.getFullYear(), + String(now.getMonth()+1).padStart(2,'0'), + String(now.getDate()).padStart(2,'0'), + String(now.getHours()).padStart(2,'0'), + String(now.getMinutes()).padStart(2,'0'), + String(now.getSeconds()).padStart(2,'0') + ].join(''); + // æž„é€ æœ€ç»ˆæ–‡ä»¶å + const filename = `${announcementNumber}-${versionNumber}-${formattedTime}.xlsx`; proxy.download('control/parameter/export', { ...queryParams.value - }, `parameter_${new Date().getTime()}.xlsx`) + }, filename) } getList(); diff --git a/src/views/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/history.vue b/src/views/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/history.vue new file mode 100644 index 0000000000000000000000000000000000000000..da7e7260a3e29ee0c7fc938d873cd01059ff4361 --- /dev/null +++ b/src/views/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/history.vue @@ -0,0 +1,251 @@ +<template> + <div class="app-container"> + <el-form v-model="queryParams" ref="queryRef" :inline="true" > + <!-- 事业部 --> + <el-form-item :label="`${cn.businessDivision}/${en.businessDivision}`" prop="status"> + <el-select + v-model="queryParams" + :placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`" + clearable + style="width: 200px" + > + <el-option + v-for="dict in businessList" + :label="dict.businessUnitName" + :value="dict.id" + /> + </el-select> + </el-form-item> + <!-- 车型代ç --> + <el-form-item :label="`${cn.vehicleTypeCode}/${en.vehicleTypeCode}`" prop="status"> + <el-select + v-model="queryParams" + :placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`" + clearable + style="width: 200px" + > + <el-option + v-for="dict in businessList" + :label="dict.businessUnitName" + :value="dict.id" + /> + </el-select> + </el-form-item> + <!-- 车型系列 --> + <el-form-item :label="`${cn.vehicleTypeSeries}/${en.vehicleTypeSeries}`" prop="status"> + <el-select + v-model="queryParams" + :placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`" + clearable + style="width: 200px" + > + <el-option + v-for="dict in businessList" + :label="dict.businessUnitName" + :value="dict.id" + /> + </el-select> + </el-form-item> + <!-- ç”Ÿäº§åœ°å€ --> + <el-form-item :label="`${cn.productionAddress}/${en.productionAddress}`" prop="templateCode"> + <el-input + v-model="queryParams" + :placeholder="`${cn.pleaseEnter}/${en.pleaseEnter}`" + clearable + style="width: 200px" + /> + </el-form-item> + <!-- ç‰ˆæœ¬å· --> + <el-form-item :label="`${cn.versionNumber}/${en.versionNumber}`" prop="templateCode"> + <el-input + v-model="queryParams" + placeholder="A0-Z9" + clearable + disabled + style="width: 200px" + /> + </el-form-item> + <!-- 创建人 --> + <el-form-item :label="`${cn.creator}/${en.creator}`" prop="templateCode"> + <el-input + v-model="queryParams" + :placeholder="`${cn.pleaseEnter}/${en.pleaseEnter}`" + clearable + style="width: 200px" + /> + </el-form-item> + <!-- 生产厂 --> + <el-form-item :label="`${cn.productionPlant}/${en.productionPlant}`" prop="templateCode"> + <el-input + v-model="queryParams" + :placeholder="`${cn.pleaseEnter}/${en.pleaseEnter}`" + clearable + style="width: 200px" + /> + </el-form-item> + <!-- æœç´¢ã€é‡ç½® 按钮 --> + <el-form-item> + <el-button style="width: 110px" class="btn-A" @click="handleQuery">{{cn.search}}/{{en.search}}</el-button> + <el-button style="width: 110px" class="btn-B" @click="resetQuery">{{cn.reset}}/{{en.reset}}</el-button> + </el-form-item> + </el-form> + + <el-table :data="tableList"> + <el-table-column fixed type="index" width="75" align="center" label="åºå·"> + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.serialNumber}}</div> + <div>{{en.serialNumber}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="控制计划编å·" width="170" align="center" prop="controlPlanNumber" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.controlPlanNumber}}</div> + <div>{{en.controlPlanNumber}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="事业部" width="150" align="center" prop="businessUnitName" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.businessDivision}}</div> + <div>{{en.businessDivision}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="车型代ç " width="150" align="center" prop="vehicleTypeCode" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.vehicleTypeCode}}</div> + <div>{{en.vehicleTypeCode}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="车型系列" width="150" align="center" prop="vehicleTypeSeries" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.vehicleTypeSeries}}</div> + <div>{{en.vehicleTypeSeries}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="版本å·" width="150" align="center" prop="versionNumber" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.versionNumber}}</div> + <div>{{en.versionNumber}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="生产地å€" width="150" align="center" prop="productionAddress" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.productionAddress}}</div> + <div>{{en.productionAddress}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="ç¼–åˆ¶æˆªæ¢æ—¥æœŸ" width="170" align="center" prop="compilationDeadline" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.compilationDeadline}}</div> + <div>{{en.compilationDeadline}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="创建人" width="170" align="center" prop="createBy" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.creator}}</div> + <div>{{en.creator}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="修订日期" width="170" align="center" prop="updateTime" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.revisionDate}}</div> + <div>{{en.revisionDate}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="创建日期" width="170" align="center" prop="createTime" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.creationDate}}</div> + <div>{{en.creationDate}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="生产厂" width="170" align="center" prop="productionFactory" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.productionPlant}}</div> + <div>{{en.productionPlant}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="生产情况" width="170" align="center" prop="productionStatus" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.productionSituation}}</div> + <div>{{en.productionSituation}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="关键件清å•表å•状æ€" fixed="right" width="190" align="center" prop="keyPartsListTaskStatus" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.keyPartsListFormStatus}}</div> + <div>{{en.keyPartsListFormStatus}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="关键工åºâ€¦â€¦è¡¨å•状æ€" fixed="right" width="190" align="center" prop="keyProcessTaskStatus" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.keyProcessFormStatus}}</div> + <div>{{en.keyProcessFormStatus}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="COP试验和检查表表å•状æ€" fixed="right" width="250" align="center" prop="copTestAndInspectionTaskStatus" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.COPTestAndChecklistFormStatus}}</div> + <div>{{en.COPTestAndChecklistFormStatus}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="控制计划状æ€" fixed="right" width="150" align="center" prop="controlPlanStatus" > + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.controlPlanStatus}}</div> + <div>{{en.controlPlanStatus}}</div> + </div> + </template> + </el-table-column> + <el-table-column label="æ“作" fixed="right" align="center" class-name="small-padding fixed-width"> + <template #header> + <div style="display: flex;flex-direction: column"> + <div>{{cn.operation}}</div> + <div>{{en.operation}}</div> + </div> + </template> + </el-table-column> + </el-table> + </div> + +</template> + +<script setup> + +import cn from '@/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/history/cn.json' +import en from '@/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/history/en.json' +</script> + +<style scoped lang="scss"> + +</style> diff --git a/src/views/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index.vue b/src/views/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index.vue index 716028b6884cb894eeb0177d08ede4e8dfa003f1..4ad9f1866bf6e20583dcc5456cd0cbec0dac5aeb 100644 --- a/src/views/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index.vue +++ b/src/views/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index.vue @@ -50,8 +50,9 @@ <el-form-item :label="`${cn.versionNumber}/${en.versionNumber}`" prop="templateCode"> <el-input v-model="queryParams.businessUnitId" - :placeholder="`${cn.pleaseEnter}/${en.pleaseEnter}`" + placeholder="A0-Z9" clearable + disabled style="width: 200px" /> </el-form-item> @@ -64,6 +65,21 @@ style="width: 200px" /> </el-form-item> + <!-- æŽ§åˆ¶è®¡åˆ’çŠ¶æ€ --> + <el-form-item :label="`${cn.controlPlanStatus}/${en.controlPlanStatus}`" prop="status"> + <el-select + v-model="queryParams.businessUnitId" + :placeholder="`${cn.pleaseChoose}/${en.pleaseChoose}`" + clearable + style="width: 200px" + > + <el-option + v-for="dict in businessList" + :label="dict.businessUnitName" + :value="dict.id" + /> + </el-select> + </el-form-item> <!-- æœç´¢ã€é‡ç½® 按钮 --> <el-form-item> <el-button style="width: 110px" class="btn-A" @click="handleQuery">{{cn.search}}/{{en.search}}</el-button> @@ -71,7 +87,11 @@ </el-form-item> </el-form> - <el-table :data="tableList"> + <div class="button-container"> + <el-button class="btn-C" @click="toHistory">{{cn.viewHistoricalControlPlan}}/{{en.viewHistoricalControlPlan}}</el-button> + </div> + + <el-table :data="tableList"> <el-table-column fixed type="index" width="75" align="center" label="åºå·"> <template #header> <div style="display: flex;flex-direction: column"> @@ -80,7 +100,7 @@ </div> </template> </el-table-column> - <el-table-column label="控制计划编å·" width="170" align="center" prop="applicableBrand" > + <el-table-column label="控制计划编å·" width="170" align="center" prop="controlPlanNumber" > <template #header> <div style="display: flex;flex-direction: column"> <div>{{cn.controlPlanNumber}}</div> @@ -88,7 +108,7 @@ </div> </template> </el-table-column> - <el-table-column label="事业部" width="150" align="center" prop="businessDivision" > + <el-table-column label="事业部" width="150" align="center" prop="businessUnitName" > <template #header> <div style="display: flex;flex-direction: column"> <div>{{cn.businessDivision}}</div> @@ -136,7 +156,7 @@ </div> </template> </el-table-column> - <el-table-column label="创建人" width="170" align="center" prop="creator" > + <el-table-column label="创建人" width="170" align="center" prop="createBy" > <template #header> <div style="display: flex;flex-direction: column"> <div>{{cn.creator}}</div> @@ -144,7 +164,7 @@ </div> </template> </el-table-column> - <el-table-column label="修订日期" width="170" align="center" prop="revisionDate" > + <el-table-column label="修订日期" width="170" align="center" prop="updateTime" > <template #header> <div style="display: flex;flex-direction: column"> <div>{{cn.revisionDate}}</div> @@ -152,7 +172,7 @@ </div> </template> </el-table-column> - <el-table-column label="创建日期" width="170" align="center" prop="creationDate" > + <el-table-column label="创建日期" width="170" align="center" prop="createTime" > <template #header> <div style="display: flex;flex-direction: column"> <div>{{cn.creationDate}}</div> @@ -160,7 +180,7 @@ </div> </template> </el-table-column> - <el-table-column label="生产厂" width="170" align="center" prop="productionPlant" > + <el-table-column label="生产厂" width="170" align="center" prop="productionFactory" > <template #header> <div style="display: flex;flex-direction: column"> <div>{{cn.productionPlant}}</div> @@ -168,7 +188,7 @@ </div> </template> </el-table-column> - <el-table-column label="生产情况" width="170" align="center" prop="productionSituation" > + <el-table-column label="生产情况" width="170" align="center" prop="productionStatus" > <template #header> <div style="display: flex;flex-direction: column"> <div>{{cn.productionSituation}}</div> @@ -176,7 +196,7 @@ </div> </template> </el-table-column> - <el-table-column label="关键件清å•表å•状æ€" fixed="right" width="190" align="center" prop="keyPartsListFormStatus" > + <el-table-column label="关键件清å•表å•状æ€" fixed="right" width="190" align="center" prop="keyPartsListTaskStatus" > <template #header> <div style="display: flex;flex-direction: column"> <div>{{cn.keyPartsListFormStatus}}</div> @@ -184,7 +204,7 @@ </div> </template> </el-table-column> - <el-table-column label="关键工åºâ€¦â€¦è¡¨å•状æ€" fixed="right" width="190" align="center" prop="keyProcessFormStatus" > + <el-table-column label="关键工åºâ€¦â€¦è¡¨å•状æ€" fixed="right" width="190" align="center" prop="keyProcessTaskStatus" > <template #header> <div style="display: flex;flex-direction: column"> <div>{{cn.keyProcessFormStatus}}</div> @@ -192,7 +212,7 @@ </div> </template> </el-table-column> - <el-table-column label="COP试验和检查表表å•状æ€" fixed="right" width="250" align="center" prop="COPTestAndChecklistFormStatus" > + <el-table-column label="COP试验和检查表表å•状æ€" fixed="right" width="250" align="center" prop="copTestAndInspectionTaskStatus" > <template #header> <div style="display: flex;flex-direction: column"> <div>{{cn.COPTestAndChecklistFormStatus}}</div> @@ -229,33 +249,59 @@ </template> <script setup> +import { + getCCAPPlanList +} from "@/api/CCAPControlPlanManagement/CCAPControlPlanManagement.js"; import { ref } from 'vue' -// ä¸è‹±æ–‡é¡µé¢æ–‡å—引入 -import cn from '@/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/cn.json'; -import en from '@/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/en.json'; +import cn from '@/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index/cn.json'; +import en from '@/locales/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/index/en.json'; +import { useRouter } from 'vue-router' +const router = useRouter() +const { proxy } = getCurrentInstance(); const total = ref(0); const tableList = ref([]); const queryParams = ref({ pageNum: 1, - pageSize: 10, - businessUnitId: null + pageSize: 10 }); const businessList = ref([]); -const handleQuery = () => { +function toHistory() { + proxy.$router.push({ path: '/control/CCAPControlPlan/history' }); +} -}; +function handleQuery() { +} -const resetQuery = () => { +function resetQuery() { +} -}; -const getList = () => { +function getList() { + getCCAPPlanList().then(res => { + tableList.value = res.rows + total.value = res.total + // console.log("列表",tableList.value) + }); +} +getList() -}; </script> <style scoped lang="scss"> - +.button-container { + display: flex; + justify-content: flex-end; + margin-bottom: 24px; +} +:deep(.el-pagination) { + display: flex; + justify-content: center; + width: 100%; + margin-top: 24px; +} +:deep(.el-pagination.is-background .el-pager li.is-active){ + background-color: #0154FB; +} </style> diff --git a/src/views/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/view.vue b/src/views/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/view.vue index 4e08dbbd661bf084974cc35986bf8f1bf49c8434..6dba98fa289870bac7eea6afaaec0808e0136ed5 100644 --- a/src/views/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/view.vue +++ b/src/views/controlPlan/CCAPControlPlan/CCAPControlPlanManagement/view.vue @@ -1,10 +1,24 @@ <template> <div class="app-container"> <div class="top-header"> - <el-button class="back-button" @click="handleBack"> - <span class="back-icon"></span> - 返回 - </el-button> + <div> + <el-button class="back-button" @click="handleBack">返回</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">ZYE03</span> + </el-text> + <el-text style="margin-left: 20px;color: black"> + 车型系列:<span style="font-weight: 800;margin-left: 10px">CJ1A</span> + </el-text> + <el-text style="margin-left: 20px;color: black"> + 版本å·:<span style="font-weight: 800;margin-left: 10px">A1</span> + </el-text> + <el-text style="margin-left: 20px;color: black"> + 生产地å€:<span style="font-weight: 800;margin-left: 10px">123456789</span> + </el-text> + </div> <div> 已编制 </div> @@ -12,40 +26,41 @@ <div class="component-selector"> <el-tabs v-model="activeTab" class="demo-tabs"> <el-tab-pane label="关键零部件清å•" name="first"> - <el-steps :active="2" align-center> - <el-step title="Step 1" description="Some description" /> - <el-step title="Step 2" description="Some description" /> - <el-step title="Step 3" description="Some description" /> - <el-step title="Step 4" description="Some description" /> + <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> <div class="tab-components"> <span class="components-span">编制详情</span> - <el-button type="primary">æŸ¥çœ‹å˜æ›´å±¥åކ</el-button> + <el-button class="btn-A">æŸ¥çœ‹å˜æ›´å±¥åކ</el-button> </div> - <el-descriptions border :column="4"> - <el-descriptions-item label="文件编å·">kooriookami</el-descriptions-item> - <el-descriptions-item label="清å•版本å·">18100000000</el-descriptions-item> - <el-descriptions-item label="修订日期">Suzhou</el-descriptions-item> - <el-descriptions-item label="编制/日期">132132/666</el-descriptions-item> - <el-descriptions-item label="车型代ç ">Province</el-descriptions-item> - <el-descriptions-item label="车型系列部门">CJ1A</el-descriptions-item> + <el-descriptions border :column="4" style="margin-top: 20px"> + <el-descriptions-item label="文件编å·:" label-align="right">kooriookami</el-descriptions-item> + <el-descriptions-item label="清å•版本å·:" label-align="right">18100000000</el-descriptions-item> + <el-descriptions-item label="修订日期:" label-align="right">Suzhou</el-descriptions-item> + <el-descriptions-item label="编制/日期:" label-align="right">132132/666</el-descriptions-item> + <el-descriptions-item label="车型代ç :" label-align="right">Province</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="å®¡æ ¸/日期">CJ1A</el-descriptions-item> - <el-descriptions-item label="è”系人">于昌淼</el-descriptions-item> - <el-descriptions-item label="è”系部门">123456789</el-descriptions-item> - <el-descriptions-item label="è”系电è¯">999666333</el-descriptions-item> - <el-descriptions-item label="批准/日期">CJ1A</el-descriptions-item> - <el-descriptions-item label="生产厂">奇瑞汽车股份有é™å…¬å¸</el-descriptions-item> - <el-descriptions-item label="生产地å€">ä¸å›½å®‰å¾½çœèŠœæ¹–å¸‚ç»æµŽå¼€å‘区长春路8å·</el-descriptions-item> - <el-descriptions-item label="生产情况"> + <el-descriptions-item label="å®¡æ ¸/日期:" label-align="right">CJ1A</el-descriptions-item> + <el-descriptions-item label="è”系人:" label-align="right">于昌淼</el-descriptions-item> + <el-descriptions-item label="è”系部门:" label-align="right">123456789</el-descriptions-item> + <el-descriptions-item label="è”系电è¯:" label-align="right">999666333</el-descriptions-item> + <el-descriptions-item label="批准/日期:" label-align="right">CJ1A</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=""></el-descriptions-item> - <el-descriptions-item label="系列车型型å·"> + <el-descriptions-item label="清å•ç¼–å·:" label-align="right">2025046135222462</el-descriptions-item> + <el-descriptions-item label="系列车型型å·:" label-align="right" width="120px"> 999666333ã€888555222ã€777444111〠999666333ã€888555222ã€777444111〠999666333ã€888555222ã€777444111〠@@ -54,7 +69,7 @@ 999666333ã€888555222ã€777444111〠</el-descriptions-item> </el-descriptions> - <el-form :inline="true" :model="queryParams" class="demo-form-inline"> + <el-form :inline="true" :model="queryParams" class="demo-form-inline" style="margin-top: 20px" label-width="100px"> <el-form-item label="一级åç§°:"> <el-select v-model="queryParams.region" @@ -67,49 +82,49 @@ </el-select> </el-form-item> <el-form-item label="二级åç§°:"> - <el-input v-model="queryParams.user" placeholder="请输入" clearable /> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> </el-form-item> <el-form-item label="åž‹å·è§„æ ¼:"> - <el-input v-model="queryParams.user" placeholder="请输入" clearable /> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> </el-form-item> <el-form-item label="生产厂:"> - <el-input v-model="queryParams.user" placeholder="请输入" clearable /> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> </el-form-item> <el-form-item label="3Cè¯ä¹¦ç¼–å·:"> - <el-input v-model="queryParams.user" placeholder="请输入" clearable /> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> </el-form-item> <el-form-item label="适用车型:"> <el-select v-model="queryParams.region" placeholder="请选择" clearable - style="width: 180px;" + style="width: 180px" > <el-option label="Zone one" value="shanghai" /> <el-option label="Zone two" value="beijing" /> </el-select> </el-form-item> <el-form-item label="检验文件编å·:"> - <el-input v-model="queryParams.user" placeholder="请输入" clearable /> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> </el-form-item> <el-form-item label="备注:"> - <el-input v-model="queryParams.user" placeholder="请输入" clearable /> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> </el-form-item> <el-form-item label="é›¶ä»¶å·:"> - <el-input v-model="queryParams.user" placeholder="请输入" clearable /> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> </el-form-item> <el-form-item label="专业部门:"> - <el-input v-model="queryParams.user" placeholder="请输入" clearable /> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> </el-form-item> <el-form-item label="3Cè®¤è¯æ ‡å¿—:"> - <el-input v-model="queryParams.user" placeholder="请输入" clearable /> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> </el-form-item> <el-form-item label="填写状æ€:"> <el-select v-model="queryParams.region" placeholder="请选择" clearable - style="width: 180px;" + style="width: 180px" > <el-option label="Zone one" value="shanghai" /> <el-option label="Zone two" value="beijing" /> @@ -120,23 +135,332 @@ <el-button class="btn-B" icon="Refresh" @click="resetQuery">é‡ç½®</el-button> </el-form-item> </el-form> + <el-table :data="tableData" style="width: 100%" border > + <el-table-column prop="date" label="åºå·" align="center" width="60"/> + <el-table-column prop="name" label="零部件一级åç§°" align="center" width="120"/> + <el-table-column prop="address" label="零部件二级åç§°" align="center" width="120"/> + <el-table-column prop="address" label="åž‹å·è§„æ ¼" align="center" width="120"/> + <el-table-column prop="address" label="生产厂" align="center" width="160"/> + <el-table-column prop="address" label="CCC/自愿型产å“认è¯è¯ä¹¦ç¼–å·" align="center" width="130"/> + <el-table-column prop="address" label="适用车型" align="center" width="120"/> + <el-table-column prop="address" label="检验文件编å·" align="center" width="140"/> + <el-table-column prop="address" label="备注" align="center"/> + <el-table-column prop="address" label="é›¶ä»¶å·" align="center"/> + <el-table-column prop="address" label="填写人" align="center"/> + <el-table-column prop="address" label="填写时间" align="center" width="160"/> + <el-table-column prop="address" label="填写状æ€" align="center"/> + </el-table> </div> </el-tab-pane> <el-tab-pane label="关键工åºã€è£…é…ã€æ£€éªŒè¿‡ç¨‹æ¸…å•" name="second"> - + <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> + <div class="tab-components"> + <span class="components-span">编制详情</span> + <el-button class="btn-A">æŸ¥çœ‹å˜æ›´å±¥åކ</el-button> + </div> + <el-descriptions border :column="4" style="margin-top: 20px"> + <el-descriptions-item label="文件编å·:" label-align="right">kooriookami</el-descriptions-item> + <el-descriptions-item label="版本å·:" label-align="right">18100000000</el-descriptions-item> + <el-descriptions-item label="修订日期:" label-align="right">Suzhou</el-descriptions-item> + <el-descriptions-item label="编制/日期:" label-align="right">132132/666</el-descriptions-item> + <el-descriptions-item label="车型代ç :" label-align="right">Province</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="å®¡æ ¸/日期:" label-align="right">CJ1A</el-descriptions-item> + <el-descriptions-item label="è”系人:" label-align="right">于昌淼</el-descriptions-item> + <el-descriptions-item label="è”系部门:" label-align="right">123456789</el-descriptions-item> + <el-descriptions-item label="è”系电è¯:" label-align="right">999666333</el-descriptions-item> + <el-descriptions-item label="批准/日期:" label-align="right">CJ1A</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">--</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 :inline="true" :model="queryParams" class="demo-form-inline" style="margin-top: 20px"> + <el-form-item label="åç§°:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="åˆ¶é€ /装é…/检验的场所:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="责任部门:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="适用车型:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="作业指导书:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="检验作业指导书:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="填写人:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="确认人:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="æ ¡å¯¹äºº:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </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-form-item> + </el-form> + <el-table :data="tableData" style="width: 100%" border > + <el-table-column type="selection" width="60"></el-table-column> + <el-table-column prop="date" label="åºå·" align="center" width="60"/> + <el-table-column prop="name" label="åç§°" align="center" /> + <el-table-column prop="address" label="åˆ¶é€ /装é…/检验的场所" align="center" width="160"/> + <el-table-column prop="address" label="责任部门" align="center" width="120"/> + <el-table-column prop="address" label="适用车型" align="center" width="160" /> + <el-table-column prop="address" label="填写人" align="center" width="120" fixed="right"/> + <el-table-column prop="address" label="填写时间" align="center" width="160" fixed="right"/> + <el-table-column prop="address" label="填写状æ€" align="center" width="120" fixed="right"/> + <el-table-column prop="address" label="确认人" align="center" width="160" fixed="right"/> + <el-table-column prop="address" label="æ ¡å¯¹äºº" align="center" width="160" fixed="right"/> + </el-table> + </div> </el-tab-pane> <el-tab-pane label="COPè¯•éªŒå–æ£€æŸ¥è¡¨-åˆ¶é€ " name="third"> - + <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> + <div class="tab-components"> + <span class="components-span">编制详情</span> + <el-button class="btn-A">æŸ¥çœ‹å˜æ›´å±¥åކ</el-button> + </div> + <el-descriptions border :column="4" style="margin-top: 20px"> + <el-descriptions-item label="文件编å·:" label-align="right">kooriookami</el-descriptions-item> + <el-descriptions-item label="版本å·:" label-align="right">18100000000</el-descriptions-item> + <el-descriptions-item label="修订日期:" label-align="right">Suzhou</el-descriptions-item> + <el-descriptions-item label="编制/日期:" label-align="right">132132/666</el-descriptions-item> + <el-descriptions-item label="车型代ç :" label-align="right">Province</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="å®¡æ ¸/日期:" label-align="right">CJ1A</el-descriptions-item> + <el-descriptions-item label="è”系人:" label-align="right">于昌淼</el-descriptions-item> + <el-descriptions-item label="è”系部门:" label-align="right">123456789</el-descriptions-item> + <el-descriptions-item label="è”系电è¯:" label-align="right">999666333</el-descriptions-item> + <el-descriptions-item label="批准/日期:" label-align="right">CJ1A</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">--</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 :inline="true" :model="queryParams" class="demo-form-inline" style="margin-top: 20px"> + <el-form-item label="项目:"> + <el-select + v-model="queryParams.region" + placeholder="请选择" + clearable + style="width: 180px;" + > + <el-option label="Zone one" value="shanghai" /> + <el-option label="Zone two" value="beijing" /> + </el-select> + </el-form-item> + <el-form-item label="测é‡ä»ªå™¨å’Œè®¾å¤‡:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="容é‡:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="频次:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="试验和检查场所:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="所执行的文件åç§°åŠç¼–å·:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="责任部门:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="适用车型:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="填写人:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="确认人:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="æ ¡å¯¹äºº:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </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-form-item> + </el-form> + <el-table :data="tableData" style="width: 100%" border > + <el-table-column type="selection" width="60"></el-table-column> + <el-table-column prop="date" label="åºå·" align="center" width="60"/> + <el-table-column prop="name" label="项目" align="center" /> + <el-table-column prop="address" label="测é‡ä»ªå™¨å’Œè®¾å¤‡" align="center" width="160"/> + <el-table-column prop="address" label="容é‡" align="center" width="80"/> + <el-table-column prop="address" label="频次" align="center" width="100" /> + <el-table-column prop="address" label="试验和检查的场所" align="center" width="160"/> + <el-table-column prop="address" label="所执行的文件åç§°åŠç¼–å·" align="center" width="220"/> + <el-table-column prop="address" label="责任部门" align="center" width="120"/> + <el-table-column prop="address" label="适用车型" align="center" width="120"/> + <el-table-column prop="address" label="填写人" align="center" width="120" fixed="right"/> + <el-table-column prop="address" label="填写时间" align="center" width="160" fixed="right"/> + <el-table-column prop="address" label="填写状æ€" align="center" width="120" fixed="right"/> + <el-table-column prop="address" label="确认人" align="center" width="160" fixed="right"/> + <el-table-column prop="address" label="æ ¡å¯¹äºº" align="center" width="160" fixed="right"/> + </el-table> + </div> </el-tab-pane> <el-tab-pane label="COPè¯•éªŒå–æ£€æŸ¥è¡¨-质管" name="four"> - + <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> + <div class="tab-components"> + <span class="components-span">编制详情</span> + <el-button class="btn-A">æŸ¥çœ‹å˜æ›´å±¥åކ</el-button> + </div> + <el-descriptions border :column="4" style="margin-top: 20px"> + <el-descriptions-item label="文件编å·:" label-align="right">kooriookami</el-descriptions-item> + <el-descriptions-item label="版本å·:" label-align="right">18100000000</el-descriptions-item> + <el-descriptions-item label="修订日期:" label-align="right">Suzhou</el-descriptions-item> + <el-descriptions-item label="编制/日期:" label-align="right">132132/666</el-descriptions-item> + <el-descriptions-item label="车型代ç :" label-align="right">Province</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="å®¡æ ¸/日期:" label-align="right">CJ1A</el-descriptions-item> + <el-descriptions-item label="è”系人:" label-align="right">于昌淼</el-descriptions-item> + <el-descriptions-item label="è”系部门:" label-align="right">123456789</el-descriptions-item> + <el-descriptions-item label="è”系电è¯:" label-align="right">999666333</el-descriptions-item> + <el-descriptions-item label="批准/日期:" label-align="right">CJ1A</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">--</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 :inline="true" :model="queryParams" class="demo-form-inline" style="margin-top: 20px"> + <el-form-item label="项目:"> + <el-select + v-model="queryParams.region" + placeholder="请选择" + clearable + style="width: 180px;" + > + <el-option label="Zone one" value="shanghai" /> + <el-option label="Zone two" value="beijing" /> + </el-select> + </el-form-item> + <el-form-item label="测é‡ä»ªå™¨å’Œè®¾å¤‡:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="容é‡:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="频次:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="试验和检查场所:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="所执行的文件åç§°åŠç¼–å·:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="责任部门:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="适用车型:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </el-form-item> + <el-form-item label="填写人:"> + <el-input v-model="queryParams.user" placeholder="请输入" clearable style="width: 180px"/> + </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-form-item> + </el-form> + <el-table :data="tableData" style="width: 100%" border > + <el-table-column type="selection" width="60"></el-table-column> + <el-table-column prop="date" label="åºå·" align="center" width="60"/> + <el-table-column prop="name" label="项目" align="center" /> + <el-table-column prop="address" label="测é‡ä»ªå™¨å’Œè®¾å¤‡" align="center" width="160"/> + <el-table-column prop="address" label="容é‡" align="center" width="80"/> + <el-table-column prop="address" label="频次" align="center" width="160" /> + <el-table-column prop="address" label="试验和检查的场所" align="center" width="160"/> + <el-table-column prop="address" label="所执行的文件åç§°åŠç¼–å·" align="center" width="220"/> + <el-table-column prop="address" label="责任部门" align="center" width="120"/> + <el-table-column prop="address" label="适用车型" align="center" width="120"/> + <el-table-column prop="address" label="填写人" align="center" width="120" fixed="right"/> + <el-table-column prop="address" label="填写时间" align="center" width="160" fixed="right"/> + <el-table-column prop="address" label="填写状æ€" align="center" width="120" fixed="right"/> + </el-table> + </div> </el-tab-pane> </el-tabs> </div> </div> </template> <script setup> -import {listTemplateDetail, listTemplateForm} from '@/api/system/controlPlan.js' const { proxy } = getCurrentInstance(); import { ref, getCurrentInstance } from 'vue' @@ -182,7 +506,7 @@ const handlePagination = ({ page, limit }) => { // }) // } const handleBack = () => { - proxy.$router.push({ path: '/control/baseConfig/fill'}); + proxy.$router.push({ path: '/control/CCAPControlPlan/CCAPControlPlanManagementIndex'}); } onMounted(() => { // getFrom(); @@ -201,6 +525,7 @@ onMounted(() => { display: flex; justify-content: space-between; align-items: center; + margin-top: 20px; .components-span{ border-left: 5px solid #409eff; padding-left: 5px; diff --git a/src/views/controlPlan/baseConfig/ccapProjectManage/index.vue b/src/views/controlPlan/baseConfig/ccapProjectManage/index.vue index 62507436880c38ca612cdcef8a49f33220f1c607..d9467167d4f148e452d33674c0cc3f92101d9534 100644 --- a/src/views/controlPlan/baseConfig/ccapProjectManage/index.vue +++ b/src/views/controlPlan/baseConfig/ccapProjectManage/index.vue @@ -41,7 +41,7 @@ <el-button type="text" style="color: rgb(0,0,255)" @click="handleMaintain(scope.row)">维护项目</el-button> <el-button type="text" style="color: rgb(255,153,0)" v-if="scope.row.id === adminId" @click="copeAdd(scope.row)">å¤åˆ¶æ–°å¢ž</el-button> <el-button type="text" v-if="scope.row.id === adminId" @click="addBusiness(scope.row)">æ·»åŠ äº‹ä¸šéƒ¨</el-button> - <el-button type="text" style="color: rgb(244,93,93)" v-else="scope.row.id === adminId" @click="handleView(scope.row)">åˆ é™¤</el-button> + <el-button type="text" style="color: rgb(244,93,93)" v-else="scope.row.id === adminId" @click="tableDel(scope.row)">åˆ é™¤</el-button> </div> </template> </el-table-column> @@ -89,7 +89,7 @@ </el-form-item> </el-form> - <div class="top-btn" v-if="!isDrawer"> + <div class="top-btn" v-if="!isDrawer && drawerQueryParams.id === adminId" > <el-button type="primary" plain @click="handleAdd">新增</el-button> <el-button type="danger" plain @click="piliangDel">批é‡åˆ 除</el-button> </div> @@ -104,7 +104,7 @@ <template #default="scope" align="center"> <div > <el-button type="text" style="color: rgb(0,0,255)" @click="handleDrawerEdit(scope.row)">编辑</el-button> - <el-button type="text" style="color: rgb(244,93,93)" @click="handleDrawerDel(scope.row)">åˆ é™¤</el-button> + <el-button v-if="drawerQueryParams.id === adminId" type="text" style="color: rgb(244,93,93)" @click="handleDrawerDel(scope.row)">åˆ é™¤</el-button> </div> </template> </el-table-column> @@ -127,8 +127,8 @@ > <div style="width: 85%;margin-left: 7.5%"> <el-form :rules="dialogRules" :model="dialogForm" ref="dialogQueryRef" > - <el-form-item label="项目:" prop="project" > - <el-input v-model="dialogForm.project" placeholder="请输入"/> + <el-form-item label="项目:" :prop="drawerQueryParams.id === adminId ?'project':''" > + <el-input :disabled="!(drawerQueryParams.id === adminId)" v-model="dialogForm.project" placeholder="请输入"/> </el-form-item> <el-form-item label="分组:" prop="groupName" > @@ -210,7 +210,8 @@ import { getBusinessExclude, addBusinessUnit, getBusinessExclude2, - coypAddCcapManager + coypAddCcapManager, + deletetable } from "@/api/CCAPProjectManagement/list"; const tableDialogForm = ref({ @@ -298,6 +299,34 @@ function getDataProjectListById() { drawer2TableList.value = res.data; }); } + +function tableDel(row){ + console.log(row) + ElMessageBox.confirm( + '是å¦åˆ 除该数æ®ï¼Ÿ', + 'æç¤º', + { + confirmButtonText: '确定', + cancelButtonText: 'å–æ¶ˆ', + type: 'warning', + } + ) + .then(() => { + deletetable(row.id).then(res=>{ + if(res.code === 200){ + ElMessage.success("åˆ é™¤æˆåŠŸ") + getList() + dialogVisible.value = false; + } + }) + }) + .catch(() => { + + }) + +} + + function piliangDel(){ if(ids.value.length === 0) return ElMessage.warning("请先选择è¦åˆ 除的数æ®é¡¹") ElMessageBox.confirm( diff --git a/src/views/system/basicdata/manufacturer/index.vue b/src/views/system/basicdata/manufacturer/index.vue index 1cabf07e3e8f6e9c97385eb0d2705f2c31c8266d..e7a4bb17fd7f9bf6f58f5341f1dabb44e34e2296 100644 --- a/src/views/system/basicdata/manufacturer/index.vue +++ b/src/views/system/basicdata/manufacturer/index.vue @@ -125,7 +125,12 @@ /> <!-- 坿»šåŠ¨éƒ¨åˆ† --> - <el-table-column prop="manufacturingFactory" label="åˆ¶é€ å·¥åŽ‚" width="150"> + <el-table-column + prop="manufacturingFactory" + label="åˆ¶é€ å·¥åŽ‚" + align="center" + width="150" + > <template #default="{ row }"> {{ formatFactoryDisplay(row.manufacturingFactory) }} </template> @@ -284,6 +289,7 @@ import { delManufacturer, addManufacturer, updateManufacturer, + updateManufacturers, } from '@/api/system/basicdata/manufacturer' import { getAllFactoryName } from '@/api/system/factory' import { formatFactories } from '@/utils/factoryFormatter' @@ -363,6 +369,19 @@ const { queryParams, form, rules } = toRefs(data) // 所有å¯é€‰çš„工厂列表 const allFactories = ref([]) +const updateManufacturerData = async () => { + try { + const response = await updateManufacturers() + if (response.code === 200) { + proxy.$modal.msgSuccess(response.msg || 'åŒæ¥æˆåŠŸ') + getList() + } else { + proxy.$modal.msgError(response.msg || 'åŒæ¥å¤±è´¥') + } + } catch (error) { + console.error('åŒæ¥å¤±è´¥:', error) + } +} // 获å–工厂数æ®çš„æ–¹æ³• const fetchFactories = async () => { try { @@ -523,6 +542,7 @@ function handleExport() { } onMounted(() => { fetchFactories() + updateManufacturerData() }) getList() </script> diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 5ec13e556fd3f98019a544cd3592195566259a32..e2d1101887e673e6902c5a7a29e43694865f5904 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -42,9 +42,9 @@ /> </el-form-item> <!-- 事业部出æ¥å†æ”¹ --> - <el-form-item label="" prop="unitNames"> + <el-form-item label="" prop="businessUnitName"> <el-input - v-model="queryParams.unitNames" + v-model="queryParams.businessUnitName" placeholder="事业部" clearable style="width: 240px"