Commit 77537cf2 authored by Mr.Tang's avatar Mr.Tang

国内国际车型

parent ac05a7a8
......@@ -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',
})
}
<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>
<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>
<template>
国际车型
</template>
<script>
export default {
name: 'index',
}
</script>
<style scoped>
</style>
<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>
......@@ -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>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment