This commit is contained in:
Teo
2025-09-08 10:22:41 +08:00
27 changed files with 1040 additions and 726 deletions

View File

@ -37,136 +37,63 @@
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</template>
<!-- 数据表格 -->
<el-table v-loading="loading" :data="supplierInputList" @selection-change="handleSelectionChange" border>
<el-table-column type="index" label="序号" align="center" width="60" />
<el-table-column label="企业登记注册类型" align="center" prop="supplierType" width="140" />
<el-table-column label="企业名称" align="center" prop="supplierName" width="180" />
<el-table-column label="法定代表人" align="center" prop="supplierPerson" width="120" />
<el-table-column label="统一社会信用代码" align="center" prop="supplierCode" width="180" />
<el-table-column label="负责人" align="center" prop="personName" width="100" />
<el-table-column label="负责人电话" align="center" prop="personPhone" width="120" />
<el-table-column label="纳税规模" align="center" prop="taxScale" width="120" />
<el-table-column label="资质等级" align="center" prop="supplierLivel" width="120" />
<el-table-column label="流程状态" align="center">
<template #default="scope">
<dict-tag :options="wf_business_status" :value="scope.row.state" />
</template>
</el-table-column>
<el-table-column label="入库资料" align="center" prop="inputFile" width="120">
<template #default="scope">
<el-link v-if="scope.row.inputFile" :href="scope.row.inputFile" target="_blank" :style="{ textDecoration: 'none', color: '#409eff' }">
查看文件
</el-link>
</template>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" width="240">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['supplierInput:supplierInput:edit']"
>修改</el-button
>
<el-button link type="primary" icon="edit" @click="handleAudit(scope.row)" v-if="scope.row.state == 'draft' || scope.row.state == 'back'"
>审核</el-button
>
<el-button link type="primary" icon="View" v-if="scope.row.state != '2' && scope.row.state != 'draft'" @click="handleAuditView(scope.row)"
>查看流程</el-button
>
<!-- <el-button
link
type="primary"
icon="Delete"
@click="handleDelete(scope.row)"
v-hasPermi="['supplierInput:supplierInput:remove']"
></el-button> -->
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card>
<!-- 新增/修改对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="950px" append-to-body>
<el-form ref="supplierInputFormRef" :model="form" :rules="rules" label-width="200px">
<!-- 第一行基础信息2列布局 -->
<el-row :gutter="20" class="mb-4">
<el-col :span="12">
<el-form-item label="企业登记注册类型" prop="supplierType">
<el-select v-model="form.supplierType" placeholder="请选择供应商类型" @change="handleTypeChange">
<el-option label="劳务" value="劳务"></el-option>
<el-option label="技术服务" value="技术服务"></el-option>
<el-option label="物资设备" value="物资设备"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="企业名称" prop="supplierName">
<el-input v-model="form.supplierName" placeholder="请输入企业名称" clearable />
</el-form-item>
</el-col>
</el-row>
<!-- 第二行企业信息 -->
<el-row :gutter="20" class="mb-4">
<el-col :span="12">
<el-form-item label="企业法定代表人" prop="supplierPerson">
<el-input v-model="form.supplierPerson" placeholder="请输入法定代表人" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="统一社会信用代码" prop="supplierCode">
<el-input v-model="form.supplierCode" placeholder="请输入统一社会信用代码" clearable />
</el-form-item>
</el-col>
</el-row>
<!-- 本地数据懒加载表格 -->
<el-table
:data="state.tableData"
v-loading="state.loading.list"
ref="tableRef"
stripe
style="width: 100%; margin-bottom: 20px; height: calc(100vh - 230px)"
row-key="id"
border
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
:lazy="true"
:load="loadLocalChildNodes"
@expand-change="handleExpandChange"
>
<el-table-column align="center" prop="num" label="编号" />
<el-table-column prop="name" label="工程或费用名称" width="180" />
<el-table-column prop="unit" label="单位" />
<el-table-column prop="specification" label="规格型号" width="80" />
<el-table-column prop="quantity" label="数量" width="100" />
<el-table-column prop="batchNumber" label="批次号" width="200" />
<!-- 第三行地址与联系人 -->
<el-row :gutter="20" class="mb-4">
<el-col :span="12">
<el-form-item label="企业注册地址" prop="supplierAddres">
<el-input v-model="form.supplierAddres" placeholder="请输入注册地址" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="负责人姓名" prop="personName">
<el-input v-model="form.personName" placeholder="请输入负责人姓名" clearable />
</el-form-item>
</el-col>
</el-row>
<!-- 优化的输入框列 -->
<el-table-column prop="brand" label="品牌">
<template #default="{ row }">
<el-input
v-model.lazy="row.brand"
:disabled="state.masterData.status != 'draft'"
v-if="!row.hasChildren"
placeholder=""
clearable
:key="`brand-${row.id}`"
@change="handleInputChange(row, 'brand')"
/>
</template>
</el-table-column>
<!-- 第四行联系电话与纳税规模 -->
<el-row :gutter="20" class="mb-4">
<el-col :span="12">
<el-form-item label="负责人联系电话" prop="personPhone">
<el-input v-model="form.personPhone" placeholder="请输入联系电话" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="纳税规模" prop="taxScale">
<el-select v-model="form.taxScale" placeholder="请选择纳税规模">
<el-option label="一般纳税人" value="一般纳税人"></el-option>
<el-option label="小规模纳税人" value="小规模纳税人"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-table-column prop="texture" label="材质">
<template #default="{ row }">
<el-input
v-model.lazy="row.texture"
:disabled="state.masterData.status != 'draft'"
v-if="!row.hasChildren"
placeholder=""
clearable
:key="`texture-${row.id}`"
@change="handleInputChange(row, 'texture')"
/>
</template>
</el-table-column>
</el-table>
<!-- 第五行银行信息 -->
<el-row :gutter="20" class="mb-4">
<el-col :span="12">
<el-form-item label="开户行户名" prop="bankPersonName">
<el-input v-model="form.bankPersonName" placeholder="请输入开户行户名" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开户银行" prop="bankName">
<el-input v-model="form.bankName" placeholder="请输入开户银行" clearable />
</el-form-item>
</el-col>
</el-row>
<!-- 第六行银行账号与经营范围 -->
<el-row :gutter="20" class="mb-4">
<!-- 编辑弹窗 -->
<el-dialog v-model="visible" title="修改物料信息" :width="800" :close-on-click-modal="false" @close="handleClose">
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="120px" class="space-y-4">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="开户行账号" prop="bankAccount">
<el-input v-model="form.bankAccount" placeholder="请输入开户行账号" clearable />