feat(合卷操作): 扩展合卷操作类型范围支持200-299
fix(文件上传): 添加docx到默认支持文件类型列表 refactor(员工信息): 统一部门字段命名并修复备注字段 feat(酸轧合卷): 实现酸轧合卷页面功能 feat(员工入职): 新增员工入职页面及功能 style(合卷页面): 优化合卷页面布局和样式
This commit is contained in:
@@ -68,7 +68,7 @@
|
|||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button>
|
||||||
<el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button>
|
<el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button>
|
||||||
<el-checkbox style="margin-left: 10px;" v-model="showCoilMap" size="small">显示钢卷地图</el-checkbox>
|
<el-checkbox v-if="orderBy" style="margin-left: 10px;" v-model="showCoilMap" size="small">显示钢卷地图</el-checkbox>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ export default {
|
|||||||
// 文件类型, 例如['png', 'jpg', 'jpeg']
|
// 文件类型, 例如['png', 'jpg', 'jpeg']
|
||||||
fileType: {
|
fileType: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => ["doc", "xls", "xlsx", "ppt", "txt", "pdf", 'png', 'jpg', 'jpeg', 'bmp', 'webp'],
|
default: () => ["doc", "docx", "xls", "xlsx", "ppt", "txt", "pdf", 'png', 'jpg', 'jpeg', 'bmp', 'webp'],
|
||||||
},
|
},
|
||||||
// 是否显示提示
|
// 是否显示提示
|
||||||
isShowTip: {
|
isShowTip: {
|
||||||
|
|||||||
@@ -427,7 +427,7 @@ export default {
|
|||||||
path = '/wms/split';
|
path = '/wms/split';
|
||||||
}
|
}
|
||||||
// 合卷操作:200-299
|
// 合卷操作:200-299
|
||||||
else if (actionType == 200) {
|
else if (actionType >= 200 && actionType <= 299) {
|
||||||
path = '/wms/merge';
|
path = '/wms/merge';
|
||||||
}
|
}
|
||||||
else if (actionType < 100) {
|
else if (actionType < 100) {
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
<!-- 第二个位置:显示待合卷列表 -->
|
<!-- 第二个位置:显示待合卷列表 -->
|
||||||
<template v-else-if="!readonly">
|
<template v-else-if="!readonly">
|
||||||
<div class="pending-list-title">待合卷钢卷列表</div>
|
<div class="pending-list-title">待合卷钢卷列表</div>
|
||||||
<div class="pending-coil-list" v-if="renderPendingMergeList.length > 0">
|
<div class="pending-coil-list">
|
||||||
<div class="pending-coil-item" v-for="pending in renderPendingMergeList" :key="pending.actionId"
|
<div class="pending-coil-item" v-for="pending in renderPendingMergeList" :key="pending.actionId"
|
||||||
@click="selectPendingCoil(pending, index)">
|
@click="selectPendingCoil(pending, index)">
|
||||||
<div class="pending-coil-no">{{ pending.currentCoilNo }}</div>
|
<div class="pending-coil-no">{{ pending.currentCoilNo }}</div>
|
||||||
@@ -79,10 +79,11 @@
|
|||||||
<span class="pending-value">{{ formatTime(pending.updateTime) }}</span>
|
<span class="pending-value">{{ formatTime(pending.updateTime) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<coil-selector @select="selectCoil($event, index)">
|
||||||
<div v-else class="empty-tip">
|
<div class="pending-coil-item">
|
||||||
<i class="el-icon-info"></i>
|
选择其他钢卷
|
||||||
暂无其他待合卷钢卷
|
</div>
|
||||||
|
</coil-selector>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
@@ -116,116 +117,124 @@
|
|||||||
<span>新钢卷</span>
|
<span>新钢卷</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="target-coil-body">
|
<div class="target-coil-body">
|
||||||
<el-form size="small" label-width="90px">
|
<el-form size="small" label-width="80px">
|
||||||
<el-form-item label="卷号">
|
<div class="form-row">
|
||||||
<el-input v-model="targetCoil.currentCoilNo" placeholder="输入目标卷号" :disabled="readonly"></el-input>
|
<el-form-item label="卷号" class="form-item-half">
|
||||||
<current-coil-no :current-coil-no="targetCoil.currentCoilNo" />
|
<el-input v-model="targetCoil.currentCoilNo" placeholder="输入目标卷号" :disabled="readonly"></el-input>
|
||||||
</el-form-item>
|
<current-coil-no :current-coil-no="targetCoil.currentCoilNo" />
|
||||||
<el-form-item label="班组">
|
</el-form-item>
|
||||||
<el-select v-model="targetCoil.team" placeholder="请选择班组" style="width: 100%" :disabled="readonly">
|
<el-form-item label="班组" class="form-item-half">
|
||||||
<el-option key="甲" label="甲" value="甲" />
|
<el-select v-model="targetCoil.team" placeholder="请选择班组" style="width: 100%" :disabled="readonly">
|
||||||
<el-option key="乙" label="乙" value="乙" />
|
<el-option key="甲" label="甲" value="甲" />
|
||||||
</el-select>
|
<el-option key="乙" label="乙" value="乙" />
|
||||||
</el-form-item>
|
</el-select>
|
||||||
<el-form-item label="材料类型">
|
</el-form-item>
|
||||||
<el-select v-model="targetCoil.materialType" placeholder="请选择材料类型" style="width: 100%"
|
</div>
|
||||||
:disabled="readonly" @change="handleMaterialTypeChange">
|
|
||||||
<el-option label="原料" value="原料" />
|
|
||||||
<el-option label="成品" value="成品" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item :label="getItemLabel">
|
|
||||||
<raw-material-selector v-if="targetCoil.materialType === '原料'" v-model="targetCoil.itemId"
|
|
||||||
placeholder="请选择原料" style="width: 100%" clearable :disabled="readonly || !targetCoil.materialType" />
|
|
||||||
<product-selector v-else-if="targetCoil.materialType === '成品'" v-model="targetCoil.itemId"
|
|
||||||
placeholder="请选择成品" style="width: 100%" clearable :disabled="readonly || !targetCoil.materialType" />
|
|
||||||
<div v-else>请先选择物料类型</div>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="质量状态" prop="qualityStatus">
|
<div class="form-row">
|
||||||
<el-select v-model="targetCoil.qualityStatus" placeholder="请选择质量状态" style="width: 100%"
|
<el-form-item label="材料类型" class="form-item-half">
|
||||||
:disabled="readonly">
|
<el-select v-model="targetCoil.materialType" placeholder="请选择材料类型" style="width: 100%"
|
||||||
<el-option v-for="item in dict.type.coil_quality_status" :key="item.value" :label="item.label"
|
:disabled="readonly" @change="handleMaterialTypeChange">
|
||||||
:value="item.value" />
|
<el-option label="原料" value="原料" />
|
||||||
</el-select>
|
<el-option label="成品" value="成品" />
|
||||||
</el-form-item>
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="getItemLabel" class="form-item-half">
|
||||||
|
<raw-material-selector v-if="targetCoil.materialType === '原料'" v-model="targetCoil.itemId"
|
||||||
|
placeholder="请选择原料" style="width: 100%" clearable
|
||||||
|
:disabled="readonly || !targetCoil.materialType" />
|
||||||
|
<product-selector v-else-if="targetCoil.materialType === '成品'" v-model="targetCoil.itemId"
|
||||||
|
placeholder="请选择成品" style="width: 100%" clearable
|
||||||
|
:disabled="readonly || !targetCoil.materialType" />
|
||||||
|
<div v-else>请先选择物料类型</div>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
<el-form-item label="切边要求" prop="trimmingRequirement">
|
<div class="form-row">
|
||||||
<el-select v-model="targetCoil.trimmingRequirement" placeholder="请选择切边要求" style="width: 100%"
|
<el-form-item label="质量状态" prop="qualityStatus" class="form-item-half">
|
||||||
:disabled="readonly">
|
<el-select v-model="targetCoil.qualityStatus" placeholder="请选择质量状态" style="width: 100%"
|
||||||
<el-option label="净边料" value="净边料" />
|
:disabled="readonly">
|
||||||
<el-option label="毛边料" value="毛边料" />
|
<el-option v-for="item in dict.type.coil_quality_status" :key="item.value" :label="item.label"
|
||||||
</el-select>
|
:value="item.value" />
|
||||||
</el-form-item>
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="切边要求" prop="trimmingRequirement" class="form-item-half">
|
||||||
|
<el-select v-model="targetCoil.trimmingRequirement" placeholder="请选择切边要求" style="width: 100%"
|
||||||
|
:disabled="readonly">
|
||||||
|
<el-option label="净边料" value="净边料" />
|
||||||
|
<el-option label="毛边料" value="毛边料" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
<el-form-item label="打包状态" prop="packingStatus">
|
<div class="form-row">
|
||||||
<el-input v-model="targetCoil.packingStatus" placeholder="请输入打包状态" :disabled="readonly">
|
<el-form-item label="打包状态" prop="packingStatus" class="form-item-half">
|
||||||
</el-input>
|
<el-input v-model="targetCoil.packingStatus" placeholder="请输入打包状态" :disabled="readonly">
|
||||||
</el-form-item>
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="包装要求" prop="packagingRequirement" class="form-item-half">
|
||||||
|
<el-select v-model="targetCoil.packagingRequirement" placeholder="请选择包装要求" style="width: 100%"
|
||||||
|
:disabled="readonly">
|
||||||
|
<el-option label="裸包" value="裸包" />
|
||||||
|
<el-option label="普包" value="普包" />
|
||||||
|
<el-option label="简包" value="简包" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
<el-form-item label="包装要求" prop="packagingRequirement">
|
<div class="form-row">
|
||||||
<el-select v-model="targetCoil.packagingRequirement" placeholder="请选择包装要求" style="width: 100%"
|
<el-form-item label="毛重(t)" class="form-item-half">
|
||||||
:disabled="readonly">
|
<el-input-number precision="3" :controls="false" v-model="targetCoil.grossWeight" placeholder="请输入毛重"
|
||||||
<el-option label="裸包" value="裸包" />
|
type="number" :step="0.01" :disabled="readonly">
|
||||||
<el-option label="普包" value="普包" />
|
<template slot="append">吨</template>
|
||||||
<el-option label="简包" value="简包" />
|
</el-input-number>
|
||||||
</el-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="净重(t)" class="form-item-half">
|
||||||
<el-form-item label="毛重(t)">
|
<el-input-number precision="3" :controls="false" v-model="targetCoil.netWeight" placeholder="请输入净重"
|
||||||
<el-input-number precision="3" :controls="false" v-model="targetCoil.grossWeight" placeholder="请输入毛重"
|
type="number" :step="0.01" :disabled="readonly">
|
||||||
type="number" :step="0.01" :disabled="readonly">
|
<template slot="append">吨</template>
|
||||||
<template slot="append">吨</template>
|
</el-input-number>
|
||||||
</el-input-number>
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
<el-form-item label="净重(t)">
|
|
||||||
<el-input-number precision="3" :controls="false" v-model="targetCoil.netWeight" placeholder="请输入净重"
|
<div class="form-row">
|
||||||
type="number" :step="0.01" :disabled="readonly">
|
<el-form-item label="长度(m)" class="form-item-half">
|
||||||
<template slot="append">吨</template>
|
<el-input-number :controls="false" v-model="targetCoil.length" placeholder="请输入长度" type="number"
|
||||||
</el-input-number>
|
:step="0.01" :disabled="readonly">
|
||||||
</el-form-item>
|
<template slot="append">米</template>
|
||||||
<el-form-item label="长度(m)">
|
</el-input-number>
|
||||||
<el-input-number :controls="false" v-model="targetCoil.length" placeholder="请输入长度" type="number"
|
</el-form-item>
|
||||||
:step="0.01" :disabled="readonly">
|
<el-form-item label="实测长度(m)" prop="actualLength" class="form-item-half">
|
||||||
<template slot="append">米</template>
|
<el-input-number :controls="false" v-model="targetCoil.actualLength" placeholder="请输入实测长度"
|
||||||
</el-input-number>
|
type="number" :step="0.01" :disabled="readonly">
|
||||||
</el-form-item>
|
<template slot="append">米</template>
|
||||||
<el-form-item label="实测长度(m)" prop="actualLength">
|
</el-input-number>
|
||||||
<el-input-number :controls="false" v-model="targetCoil.actualLength" placeholder="请输入实测长度" type="number"
|
</el-form-item>
|
||||||
:step="0.01" :disabled="readonly">
|
</div>
|
||||||
<template slot="append">米</template>
|
|
||||||
</el-input-number>
|
<div class="form-row">
|
||||||
</el-form-item>
|
<el-form-item label="实测宽度(m)" prop="actualWidth" class="form-item-half">
|
||||||
<el-form-item label="实测宽度(m)" prop="actualWidth">
|
<el-input-number :controls="false" v-model="targetCoil.actualWidth" placeholder="请输入实测宽度"
|
||||||
<el-input-number :controls="false" v-model="targetCoil.actualWidth" placeholder="请输入实测宽度" type="number"
|
type="number" :step="0.01" :disabled="readonly">
|
||||||
:step="0.01" :disabled="readonly">
|
<template slot="append">米</template>
|
||||||
<template slot="append">米</template>
|
</el-input-number>
|
||||||
</el-input-number>
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="调制度" prop="temperGrade" class="form-item-half">
|
||||||
<el-form-item label="调制度" prop="temperGrade">
|
<el-input v-model="targetCoil.temperGrade" placeholder="请输入调制度" />
|
||||||
<el-input v-model="targetCoil.temperGrade" placeholder="请输入调制度" />
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
<el-form-item label="镀层种类" prop="coatingType">
|
|
||||||
<MemoInput storageKey="coatingType" v-model="targetCoil.coatingType" placeholder="请输入镀层种类" />
|
<div class="form-row">
|
||||||
</el-form-item>
|
<el-form-item label="镀层种类" prop="coatingType" class="form-item-half">
|
||||||
<el-form-item label="逻辑库区">
|
<MemoInput storageKey="coatingType" v-model="targetCoil.coatingType" placeholder="请输入镀层种类" />
|
||||||
<WarehouseSelect v-model="targetCoil.warehouseId" placeholder="请选择逻辑库区" :disabled="readonly" />
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="逻辑库区" class="form-item-half">
|
||||||
|
<WarehouseSelect v-model="targetCoil.warehouseId" placeholder="请选择逻辑库区" :disabled="readonly" />
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 合卷规则说明 -->
|
|
||||||
<!-- <div class="rule-card">
|
|
||||||
<div class="rule-title">
|
|
||||||
<i class="el-icon-warning-outline"></i>
|
|
||||||
合卷规则
|
|
||||||
</div>
|
|
||||||
<ul class="rule-list">
|
|
||||||
<li>至少需要2个源卷</li>
|
|
||||||
<li>所有源卷的物品类型和物品ID应保持一致</li>
|
|
||||||
<li>请确保录入正确的新钢卷号和班组信息</li>
|
|
||||||
</ul>
|
|
||||||
</div> -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -233,7 +242,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getMaterialCoil, mergeMaterialCoil } from '@/api/wms/coil';
|
import { getMaterialCoil, mergeMaterialCoil } from '@/api/wms/coil';
|
||||||
import { listPendingAction, completeAction } from '@/api/wms/pendingAction';
|
import { listPendingAction, completeAction, addPendingAction } from '@/api/wms/pendingAction';
|
||||||
import CoilSelector from '@/components/CoilSelector';
|
import CoilSelector from '@/components/CoilSelector';
|
||||||
import ActualWarehouseSelect from "@/components/KLPService/ActualWarehouseSelect";
|
import ActualWarehouseSelect from "@/components/KLPService/ActualWarehouseSelect";
|
||||||
import RawMaterialSelector from "@/components/KLPService/RawMaterialSelect";
|
import RawMaterialSelector from "@/components/KLPService/RawMaterialSelect";
|
||||||
@@ -255,6 +264,7 @@ export default {
|
|||||||
const currentCoilNoPrefix = generateCoilNoPrefix()
|
const currentCoilNoPrefix = generateCoilNoPrefix()
|
||||||
return {
|
return {
|
||||||
currentCoilNoPrefix,
|
currentCoilNoPrefix,
|
||||||
|
actionTypeCode: '',
|
||||||
// 源卷列表
|
// 源卷列表
|
||||||
sourceCoils: [],
|
sourceCoils: [],
|
||||||
// 目标卷信息
|
// 目标卷信息
|
||||||
@@ -325,12 +335,18 @@ export default {
|
|||||||
const coilId = this.$route.query.coilId;
|
const coilId = this.$route.query.coilId;
|
||||||
const actionId = this.$route.query.actionId;
|
const actionId = this.$route.query.actionId;
|
||||||
const readonly = this.$route.query.readonly;
|
const readonly = this.$route.query.readonly;
|
||||||
|
const actionTypeCode = this.$route.query.actionTypeCode;
|
||||||
|
|
||||||
// 保存当前页面的待操作ID
|
// 保存当前页面的待操作ID
|
||||||
if (actionId) {
|
if (actionId) {
|
||||||
this.actionId = actionId;
|
this.actionId = actionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 保存当前页面的待操作类型
|
||||||
|
if (actionTypeCode) {
|
||||||
|
this.actionTypeCode = actionTypeCode;
|
||||||
|
}
|
||||||
|
|
||||||
// 设置只读模式
|
// 设置只读模式
|
||||||
if (readonly === 'true' || readonly === true) {
|
if (readonly === 'true' || readonly === true) {
|
||||||
this.readonly = true;
|
this.readonly = true;
|
||||||
@@ -338,7 +354,7 @@ export default {
|
|||||||
|
|
||||||
// 如果有coilId,加载该钢卷作为第一个源卷
|
// 如果有coilId,加载该钢卷作为第一个源卷
|
||||||
if (coilId) {
|
if (coilId) {
|
||||||
await this.loadFirstCoil(coilId);
|
await this.loadFirstCoil(coilId, actionId);
|
||||||
// 加载其他待合卷的钢卷列表
|
// 加载其他待合卷的钢卷列表
|
||||||
await this.loadPendingMergeList();
|
await this.loadPendingMergeList();
|
||||||
} else {
|
} else {
|
||||||
@@ -394,57 +410,53 @@ export default {
|
|||||||
this.$set(this.targetCoil, 'itemId', undefined);
|
this.$set(this.targetCoil, 'itemId', undefined);
|
||||||
},
|
},
|
||||||
// 加载第一个钢卷(从待操作进入时)
|
// 加载第一个钢卷(从待操作进入时)
|
||||||
async loadFirstCoil(coilId) {
|
async loadFirstCoil(coilId, actionId) {
|
||||||
try {
|
try {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
const response = await getMaterialCoil(coilId);
|
const response = await getMaterialCoil(coilId);
|
||||||
if (response.code === 200 && response.data) {
|
const data = response.data;
|
||||||
const data = response.data;
|
|
||||||
|
|
||||||
// 初始化源卷列表,第一个是当前钢卷
|
// 初始化源卷列表,第一个是当前钢卷
|
||||||
this.sourceCoils = [
|
this.sourceCoils = [
|
||||||
{
|
{
|
||||||
coilId: data.coilId,
|
coilId: data.coilId,
|
||||||
enterCoilNo: data.enterCoilNo || '',
|
enterCoilNo: data.enterCoilNo || '',
|
||||||
currentCoilNo: data.currentCoilNo || '',
|
currentCoilNo: data.currentCoilNo || '',
|
||||||
itemType: data.itemType,
|
itemType: data.itemType,
|
||||||
itemId: data.itemId,
|
itemId: data.itemId,
|
||||||
warehouseName: data.warehouseName || (data.warehouse ? data.warehouse.warehouseName : ''),
|
warehouseName: data.warehouseName || (data.warehouse ? data.warehouse.warehouseName : ''),
|
||||||
actualWarehouseName: data.actualWarehouseName || (data.actualWarehouse ? data.actualWarehouse.warehouseName : ''),
|
actualWarehouseName: data.actualWarehouseName || (data.actualWarehouse ? data.actualWarehouse.warehouseName : ''),
|
||||||
materialName: data.materialName || (data.rawMaterial ? data.rawMaterial.rawMaterialName : ''),
|
materialName: data.materialName || (data.rawMaterial ? data.rawMaterial.rawMaterialName : ''),
|
||||||
productName: data.productName || (data.product ? data.product.productName : ''),
|
productName: data.productName || (data.product ? data.product.productName : ''),
|
||||||
specification: data.rawMaterial?.specification || data.product?.specification || '',
|
specification: data.rawMaterial?.specification || data.product?.specification || '',
|
||||||
bomItems: data.bomItemList || [],
|
bomItems: data.bomItemList || [],
|
||||||
grossWeight: data.grossWeight || null,
|
grossWeight: data.grossWeight || null,
|
||||||
netWeight: data.netWeight || null,
|
netWeight: data.netWeight || null,
|
||||||
length: data.length || null,
|
length: data.length || null,
|
||||||
},
|
actionId: actionId // 保存待操作ID,用于后续完成操作
|
||||||
{
|
},
|
||||||
coilId: null,
|
{
|
||||||
enterCoilNo: '',
|
coilId: null,
|
||||||
currentCoilNo: '',
|
enterCoilNo: '',
|
||||||
itemType: null,
|
currentCoilNo: '',
|
||||||
itemId: null,
|
itemType: null,
|
||||||
warehouseName: '',
|
itemId: null,
|
||||||
actualWarehouseName: '',
|
warehouseName: '',
|
||||||
materialName: '',
|
actualWarehouseName: '',
|
||||||
productName: '',
|
materialName: '',
|
||||||
specification: '',
|
productName: '',
|
||||||
bomItems: [],
|
specification: '',
|
||||||
grossWeight: null,
|
bomItems: [],
|
||||||
netWeight: null,
|
grossWeight: null,
|
||||||
length: null,
|
netWeight: null,
|
||||||
}
|
length: null,
|
||||||
];
|
}
|
||||||
|
];
|
||||||
|
|
||||||
// 自动填充目标卷信息
|
// 自动填充目标卷信息
|
||||||
this.targetCoil.itemType = data.itemType;
|
this.targetCoil.itemType = data.itemType;
|
||||||
this.targetCoil.itemId = data.itemId;
|
this.targetCoil.itemId = data.itemId;
|
||||||
this.targetCoil.warehouseId = data.warehouseId;
|
this.targetCoil.warehouseId = data.warehouseId;
|
||||||
// this.targetCoil.actualWarehouseId = data.actualWarehouseId;
|
|
||||||
|
|
||||||
// 不再预加载物品列表,改为实时搜索
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.$message.error('加载钢卷信息失败');
|
this.$message.error('加载钢卷信息失败');
|
||||||
console.error(error);
|
console.error(error);
|
||||||
@@ -460,7 +472,7 @@ export default {
|
|||||||
|
|
||||||
// 分别查询待处理和处理中的记录
|
// 分别查询待处理和处理中的记录
|
||||||
const responses = await listPendingAction({
|
const responses = await listPendingAction({
|
||||||
actionType: 200, // 合卷操作
|
actionType: this.actionTypeCode, // 合卷操作
|
||||||
actionStatus: '-1', // -1表示只查询不为2的记录
|
actionStatus: '-1', // -1表示只查询不为2的记录
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 1000
|
pageSize: 1000
|
||||||
@@ -482,28 +494,27 @@ export default {
|
|||||||
try {
|
try {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
const response = await getMaterialCoil(pending.coilId);
|
const response = await getMaterialCoil(pending.coilId);
|
||||||
if (response.code === 200 && response.data) {
|
|
||||||
const data = response.data;
|
|
||||||
this.$set(this.sourceCoils, index, {
|
|
||||||
coilId: data.coilId,
|
|
||||||
enterCoilNo: data.enterCoilNo || '',
|
|
||||||
currentCoilNo: data.currentCoilNo || '',
|
|
||||||
itemType: data.itemType,
|
|
||||||
itemId: data.itemId,
|
|
||||||
warehouseName: data.warehouseName || (data.warehouse ? data.warehouse.warehouseName : ''),
|
|
||||||
actualWarehouseName: data.actualWarehouseName || (data.actualWarehouse ? data.actualWarehouse.warehouseName : ''),
|
|
||||||
materialName: data.materialName || (data.rawMaterial ? data.rawMaterial.rawMaterialName : ''),
|
|
||||||
productName: data.productName || (data.product ? data.product.productName : ''),
|
|
||||||
specification: data.rawMaterial?.specification || data.product?.specification || '',
|
|
||||||
grossWeight: data.grossWeight || null,
|
|
||||||
netWeight: data.netWeight || null,
|
|
||||||
length: data.length || null,
|
|
||||||
bomItems: data.bomItemList || [],
|
|
||||||
actionId: pending.actionId // 保存待操作ID,用于后续完成操作
|
|
||||||
});
|
|
||||||
|
|
||||||
this.$message.success('已添加到合卷列表');
|
const data = response.data;
|
||||||
}
|
this.$set(this.sourceCoils, index, {
|
||||||
|
coilId: data.coilId,
|
||||||
|
enterCoilNo: data.enterCoilNo || '',
|
||||||
|
currentCoilNo: data.currentCoilNo || '',
|
||||||
|
itemType: data.itemType,
|
||||||
|
itemId: data.itemId,
|
||||||
|
warehouseName: data.warehouseName || (data.warehouse ? data.warehouse.warehouseName : ''),
|
||||||
|
actualWarehouseName: data.actualWarehouseName || (data.actualWarehouse ? data.actualWarehouse.warehouseName : ''),
|
||||||
|
materialName: data.materialName || (data.rawMaterial ? data.rawMaterial.rawMaterialName : ''),
|
||||||
|
productName: data.productName || (data.product ? data.product.productName : ''),
|
||||||
|
specification: data.rawMaterial?.specification || data.product?.specification || '',
|
||||||
|
grossWeight: data.grossWeight || null,
|
||||||
|
netWeight: data.netWeight || null,
|
||||||
|
length: data.length || null,
|
||||||
|
bomItems: data.bomItemList || [],
|
||||||
|
actionId: pending.actionId // 保存待操作ID,用于后续完成操作
|
||||||
|
});
|
||||||
|
|
||||||
|
this.$message.success('已添加到合卷列表');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.$message.error('加载钢卷信息失败');
|
this.$message.error('加载钢卷信息失败');
|
||||||
console.error(error);
|
console.error(error);
|
||||||
@@ -640,21 +651,16 @@ export default {
|
|||||||
text: '正在合卷,请稍后...',
|
text: '正在合卷,请稍后...',
|
||||||
background: 'rgba(0, 0, 0, 0.7)'
|
background: 'rgba(0, 0, 0, 0.7)'
|
||||||
});
|
});
|
||||||
|
this.completeAllRelatedActions();
|
||||||
|
await mergeMaterialCoil(mergeData);
|
||||||
|
|
||||||
const response = await mergeMaterialCoil(mergeData);
|
this.$message.success('合卷保存成功');
|
||||||
if (response.code === 200) {
|
|
||||||
this.$message.success('合卷保存成功');
|
|
||||||
|
|
||||||
// 完成所有相关的待操作记录
|
|
||||||
await this.completeAllRelatedActions();
|
|
||||||
|
|
||||||
// 延迟返回,让用户看到成功提示
|
// 延迟返回,让用户看到成功提示
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.$router.back();
|
this.$router.back();
|
||||||
}, 100);
|
}, 100);
|
||||||
} else {
|
|
||||||
this.$message.error(response.msg || '合卷保存失败');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.$message.error('合卷保存失败');
|
this.$message.error('合卷保存失败');
|
||||||
console.error(error);
|
console.error(error);
|
||||||
@@ -666,27 +672,66 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async selectCoil(coil, index) {
|
||||||
|
console.log(coil, index);
|
||||||
|
const data = coil;
|
||||||
|
|
||||||
|
this.$set(this.sourceCoils, index, {
|
||||||
|
coilId: data.coilId,
|
||||||
|
enterCoilNo: data.enterCoilNo || '',
|
||||||
|
currentCoilNo: data.currentCoilNo || '',
|
||||||
|
itemType: data.itemType,
|
||||||
|
itemId: data.itemId,
|
||||||
|
warehouseName: data.warehouseName || (data.warehouse ? data.warehouse.warehouseName : ''),
|
||||||
|
actualWarehouseName: data.actualWarehouseName || (data.actualWarehouse ? data.actualWarehouse.warehouseName : ''),
|
||||||
|
materialName: data.materialName || (data.rawMaterial ? data.rawMaterial.rawMaterialName : ''),
|
||||||
|
productName: data.productName || (data.product ? data.product.productName : ''),
|
||||||
|
specification: data.rawMaterial?.specification || data.product?.specification || '',
|
||||||
|
grossWeight: data.grossWeight || null,
|
||||||
|
netWeight: data.netWeight || null,
|
||||||
|
length: data.length || null,
|
||||||
|
bomItems: data.bomItemList || [],
|
||||||
|
nc: true,
|
||||||
|
actionId: pending.actionId // 保存待操作ID,用于后续完成操作
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
// 完成所有相关的待操作记录
|
// 完成所有相关的待操作记录
|
||||||
async completeAllRelatedActions() {
|
async completeAllRelatedActions() {
|
||||||
try {
|
try {
|
||||||
// 收集所有待操作ID
|
// 收集所有待操作ID
|
||||||
const actionIds = [];
|
const actionIds = [];
|
||||||
|
const ncs = [];
|
||||||
|
|
||||||
// 当前页面的actionId(从路由参数获取)
|
// 当前页面的actionId(从路由参数获取)
|
||||||
if (this.actionId) {
|
// if (this.actionId) {
|
||||||
actionIds.push(this.actionId);
|
// actionIds.push(this.actionId);
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 从待合卷列表中选择的钢卷的actionId
|
// 从待合卷列表中选择的钢卷的actionId
|
||||||
this.sourceCoils.forEach(item => {
|
this.sourceCoils.forEach(item => {
|
||||||
if (item.actionId) {
|
if (item.actionId) {
|
||||||
actionIds.push(item.actionId);
|
actionIds.push(item.actionId);
|
||||||
}
|
}
|
||||||
|
// 或许所有需要直接完成的
|
||||||
|
if (item.nc) {
|
||||||
|
ncs.push(item);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 批量完成所有待操作
|
// 批量完成所有待操作
|
||||||
const promises = actionIds.map(id => completeAction(id));
|
const promises1 = actionIds.map(id => completeAction(id));
|
||||||
await Promise.all(promises);
|
const promises2 = ncs.map(item => {
|
||||||
|
addPendingAction({
|
||||||
|
actionType: this.actionTypeCode, // 合卷操作
|
||||||
|
actionStatus: '2', // 2表示已完成
|
||||||
|
coilId: item.coilId,
|
||||||
|
currentCoilNo: item.currentCoilNo || '',
|
||||||
|
priority: 0,
|
||||||
|
sourceType: 'manual',
|
||||||
|
})
|
||||||
|
});
|
||||||
|
await Promise.all(promises1.concat(promises2));
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('完成待操作失败:', error);
|
console.error('完成待操作失败:', error);
|
||||||
// 不影响主流程,只记录错误
|
// 不影响主流程,只记录错误
|
||||||
@@ -743,9 +788,9 @@ export default {
|
|||||||
/* 流程图容器 */
|
/* 流程图容器 */
|
||||||
.flow-container {
|
.flow-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 40px;
|
gap: 20px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
padding: 30px;
|
padding: 20px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||||
min-height: 600px;
|
min-height: 600px;
|
||||||
@@ -753,11 +798,11 @@ export default {
|
|||||||
|
|
||||||
.flow-left {
|
.flow-left {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
max-width: 350px;
|
min-width: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flow-middle {
|
.flow-middle {
|
||||||
flex: 0 0 120px;
|
flex: 0 0 80px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -767,7 +812,7 @@ export default {
|
|||||||
|
|
||||||
.flow-right {
|
.flow-right {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
max-width: 400px;
|
min-width: 350px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.flow-section-title {
|
.flow-section-title {
|
||||||
@@ -803,8 +848,9 @@ export default {
|
|||||||
background: #fff;
|
background: #fff;
|
||||||
border: 1px solid #e4e7ed;
|
border: 1px solid #e4e7ed;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin-bottom: 12px;
|
margin-bottom: 10px;
|
||||||
transition: all 0.3s;
|
transition: all 0.3s;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border-color: #0066cc;
|
border-color: #0066cc;
|
||||||
@@ -813,23 +859,23 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.source-coil-header {
|
.source-coil-header {
|
||||||
padding: 12px 16px;
|
padding: 10px 14px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 12px;
|
gap: 10px;
|
||||||
border-bottom: 1px solid #f5f7fa;
|
border-bottom: 1px solid #f5f7fa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.source-number {
|
.source-number {
|
||||||
width: 28px;
|
width: 24px;
|
||||||
height: 28px;
|
height: 24px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: #0066cc;
|
background: #0066cc;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
font-size: 14px;
|
font-size: 12px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
@@ -843,16 +889,13 @@ export default {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #303133;
|
color: #303133;
|
||||||
margin-bottom: 4px;
|
white-space: nowrap;
|
||||||
}
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
.source-weight {
|
|
||||||
font-size: 13px;
|
|
||||||
color: #909399;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.source-coil-body {
|
.source-coil-body {
|
||||||
padding: 12px 16px;
|
padding: 10px 14px;
|
||||||
|
|
||||||
&:empty {
|
&:empty {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@@ -861,13 +904,13 @@ export default {
|
|||||||
.empty-tip {
|
.empty-tip {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #909399;
|
color: #909399;
|
||||||
font-size: 13px;
|
font-size: 12px;
|
||||||
padding: 10px 0;
|
padding: 8px 0;
|
||||||
|
|
||||||
i {
|
i {
|
||||||
display: block;
|
display: block;
|
||||||
font-size: 24px;
|
font-size: 20px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 4px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -930,8 +973,8 @@ export default {
|
|||||||
.source-detail-row {
|
.source-detail-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 6px;
|
||||||
font-size: 13px;
|
font-size: 12px;
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
@@ -939,7 +982,7 @@ export default {
|
|||||||
|
|
||||||
.detail-label {
|
.detail-label {
|
||||||
color: #909399;
|
color: #909399;
|
||||||
min-width: 90px;
|
min-width: 80px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -951,27 +994,27 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.source-detail-divider {
|
.source-detail-divider {
|
||||||
margin: 10px 0 8px;
|
margin: 8px 0 6px;
|
||||||
padding: 5px 0;
|
padding: 4px 0;
|
||||||
font-size: 12px;
|
font-size: 11px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #606266;
|
color: #606266;
|
||||||
border-bottom: 1px solid #e4e7ed;
|
border-bottom: 1px solid #e4e7ed;
|
||||||
}
|
}
|
||||||
|
|
||||||
.source-bom-params {
|
.source-bom-params {
|
||||||
margin-top: 8px;
|
margin-top: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.source-bom-item {
|
.source-bom-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 6px;
|
margin-bottom: 4px;
|
||||||
font-size: 12px;
|
font-size: 11px;
|
||||||
|
|
||||||
.bom-key {
|
.bom-key {
|
||||||
color: #909399;
|
color: #909399;
|
||||||
min-width: 60px;
|
min-width: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bom-value {
|
.bom-value {
|
||||||
@@ -1037,6 +1080,34 @@ export default {
|
|||||||
padding: 20px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 双列表单布局 */
|
||||||
|
.form-row {
|
||||||
|
display: flex;
|
||||||
|
gap: 16px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-item-half {
|
||||||
|
flex: 1;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 响应式布局 */
|
||||||
|
@media screen and (max-width: 768px) {
|
||||||
|
.form-row {
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-item-half {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* 规则说明卡片 */
|
/* 规则说明卡片 */
|
||||||
.rule-card {
|
.rule-card {
|
||||||
background: #fff9f0;
|
background: #fff9f0;
|
||||||
|
|||||||
@@ -1,13 +1,78 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<DoPage :label="actionType" :tabs="tabs" :useSpecialSplit="useSpecialSplit" />
|
||||||
酸轧合卷
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import DoPage from '../panels/do.vue'
|
||||||
|
|
||||||
</script>
|
export default {
|
||||||
|
name: 'SplitDo',
|
||||||
|
components: {
|
||||||
|
DoPage
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
actionType: '分卷',
|
||||||
|
tabs: [],
|
||||||
|
useSpecialSplit: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
'$route.query.actionType': {
|
||||||
|
handler(newVal) {
|
||||||
|
this.actionType = newVal;
|
||||||
|
// 根据名字获取默认的查询参数
|
||||||
|
const map = {
|
||||||
|
'酸连轧工序': [
|
||||||
|
{value: '1988150044862377986', label: '酸连轧原料库'},
|
||||||
|
{value: '1988150099140866050', label: '酸连轧成品库'},
|
||||||
|
{value: '1988150263284953089', label: '镀锌原料库'},
|
||||||
|
{value: '1988150545175736322', label: '脱脂原料库'},
|
||||||
|
],
|
||||||
|
'镀锌工序': [
|
||||||
|
{value: '1988150263284953089', label: '镀锌原料库'},
|
||||||
|
{value: '1988150323162836993', label: '镀锌成品库'},
|
||||||
|
{value: '1988150487185289217', label: '镀锌纵剪分条原料库'},
|
||||||
|
],
|
||||||
|
'脱脂工序': [
|
||||||
|
{value: '1988150545175736322', label: '脱脂原料库'},
|
||||||
|
{value: '1988150586938421250', label: '脱脂成品库'},
|
||||||
|
],
|
||||||
|
'退火工序': [
|
||||||
|
{value: '1988150648993148929', label: '罩式退火原料库'},
|
||||||
|
{value: '1988150704496373761', label: '罩式退火成品库'},
|
||||||
|
],
|
||||||
|
'拉矫平整工序': [
|
||||||
|
{value: '1988150854442741762', label: '拉矫原料库'},
|
||||||
|
{value: '1988150915591499777', label: '拉矫成品库'},
|
||||||
|
],
|
||||||
|
'双机架工序': [
|
||||||
|
{value: '1992873386047643650', label: '双机架原料库'},
|
||||||
|
{value: '1992873437713080322', label: '双机架成品库'},
|
||||||
|
],
|
||||||
|
'镀铬工序': [
|
||||||
|
{value: '1988151076996706306', label: '镀铬原料库'},
|
||||||
|
{value: '1988151132361519105', label: '镀铬成品库'},
|
||||||
|
],
|
||||||
|
'纵剪分条工序': [
|
||||||
|
{value: '', label: '原料库'},
|
||||||
|
{value: '1988150210872930306', label: '酸连轧分条成品'},
|
||||||
|
{value: '1988150800092950529', label: '退火分条成品'},
|
||||||
|
{value: '1988150380649967617', label: '镀锌分条成品'},
|
||||||
|
{value: '1988151027466170370', label: '拉矫分条成品'},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
<style>
|
if (this.actionType === '镀锌工序' || this.actionType === '脱脂工序' || this.actionType === '拉矫平整工序' || this.actionType === '双机架工序' || this.actionType === '镀铬工序' || this.actionType === '纵剪分条工序') {
|
||||||
|
this.useSpecialSplit = true
|
||||||
</style>
|
}
|
||||||
|
// 从map中获取默认的查询参数
|
||||||
|
const defaultWarehouseIds = map[this.actionType] || []
|
||||||
|
console.log(defaultWarehouseIds, 'defaultWarehouseIds')
|
||||||
|
this.tabs = defaultWarehouseIds
|
||||||
|
},
|
||||||
|
immediate: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -922,7 +922,7 @@ export default {
|
|||||||
path = '/wms/split'
|
path = '/wms/split'
|
||||||
}
|
}
|
||||||
// 合卷操作:200-299
|
// 合卷操作:200-299
|
||||||
else if (actionType == 200) {
|
else if (actionType >= 200 && actionType <= 299) {
|
||||||
path = '/wms/merge'
|
path = '/wms/merge'
|
||||||
}
|
}
|
||||||
// 其他操作类型
|
// 其他操作类型
|
||||||
@@ -950,6 +950,7 @@ export default {
|
|||||||
query: {
|
query: {
|
||||||
coilId: row.coilId,
|
coilId: row.coilId,
|
||||||
actionId: row.actionId,
|
actionId: row.actionId,
|
||||||
|
actionTypeCode: row.actionType,
|
||||||
...(currentActionTypeLabel ? { actionType: currentActionTypeLabel } : {})
|
...(currentActionTypeLabel ? { actionType: currentActionTypeLabel } : {})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
500
klp-ui/src/views/wms/hrm/employeeInfo/entry.vue
Normal file
500
klp-ui/src/views/wms/hrm/employeeInfo/entry.vue
Normal file
@@ -0,0 +1,500 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
|
<el-form-item label="入职时间" prop="changeTime">
|
||||||
|
<el-date-picker clearable v-model="queryParams.changeTime" type="date" value-format="yyyy-MM-dd"
|
||||||
|
placeholder="请选择入职时间">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="异动原因" prop="changeReason">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.changeReason"
|
||||||
|
placeholder="请输入异动原因"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item> -->
|
||||||
|
<el-form-item label="负责人" prop="changeHandler">
|
||||||
|
<el-input v-model="queryParams.changeHandler" placeholder="请输入负责人" clearable
|
||||||
|
@keyup.enter.native="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">入职</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="warning" plain icon="el-icon-edit" size="mini" @click="handleSupplement">补录</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single"
|
||||||
|
@click="handleUpdate">修改</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
|
||||||
|
@click="handleDelete">删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="employeeEntryList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<!-- <el-table-column label="异动记录主键ID" align="center" prop="changeId" v-if="true"/> -->
|
||||||
|
<el-table-column label="员工姓名" align="center" prop="wmsEmployeeInfo.name" />
|
||||||
|
<el-table-column label="岗位工种" align="center" prop="wmsEmployeeInfo.jobType" />
|
||||||
|
<el-table-column label="入职时间" align="center" prop="changeTime" width="180">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.changeTime, '{y}-{m}-{d}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="入职原因" align="center" prop="changeReason" />
|
||||||
|
<el-table-column label="负责人" align="center" prop="changeHandler" />
|
||||||
|
<!-- <el-table-column label="附件" align="center" prop="attachment" /> -->
|
||||||
|
<el-table-column label="备注" align="center" prop="remark" />
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
|
||||||
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList" />
|
||||||
|
|
||||||
|
<!-- 员工入职对话框 -->
|
||||||
|
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<!-- 公司内信息 -->
|
||||||
|
<el-card class="mb-4" shadow="never">
|
||||||
|
<template slot="header">
|
||||||
|
<div class="card-header">
|
||||||
|
<span>在职信息</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="部门" prop="deptId">
|
||||||
|
<el-select v-model="form.dept" placeholder="请选择部门">
|
||||||
|
<el-option v-for="item in deptList" :value="item.deptName" :label="item.deptName"
|
||||||
|
:key="item.deptId" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="岗位工种" prop="jobType">
|
||||||
|
<el-input v-model="form.jobType" placeholder="请输入岗位工种" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="入职时间" prop="entryTime">
|
||||||
|
<el-date-picker clearable v-model="form.entryTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
placeholder="请选择入职时间" style="width: 100%;">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="form.infoRemark" placeholder="请输入备注" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!-- 员工个人信息 -->
|
||||||
|
<el-card class="mb-4" shadow="never">
|
||||||
|
<template slot="header">
|
||||||
|
<div class="card-header">
|
||||||
|
<span>员工信息</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="姓名" prop="name">
|
||||||
|
<el-input v-model="form.name" placeholder="请输入姓名" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="身份证号" prop="idCard">
|
||||||
|
<el-input v-model="form.idCard" placeholder="请输入身份证号" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="年龄" prop="age">
|
||||||
|
<el-input v-model="form.age" placeholder="请输入年龄" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="性别" prop="gender">
|
||||||
|
<el-radio-group v-model="form.gender" size="small" mode="button">
|
||||||
|
<el-radio label="男">男</el-radio>
|
||||||
|
<el-radio label="女">女</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="学历" prop="education">
|
||||||
|
<el-select v-model="form.education" placeholder="请选择学历">
|
||||||
|
<el-option v-for="item in dict.type.hrm_employee_education" :key="item.value" :label="item.label"
|
||||||
|
:value="item.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="联系电话" prop="phone">
|
||||||
|
<el-input v-model="form.phone" placeholder="请输入联系电话" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="家庭住址" prop="homeAddress">
|
||||||
|
<el-input v-model="form.homeAddress" placeholder="请输入家庭住址" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!-- 紧急联系信息 -->
|
||||||
|
<el-card class="mb-4" shadow="never">
|
||||||
|
<template slot="header">
|
||||||
|
<div class="card-header">
|
||||||
|
<span>紧急联系信息</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="紧急联系人" prop="emergencyContact">
|
||||||
|
<el-input v-model="form.emergencyContact" placeholder="请输入紧急联系人" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="关系" prop="relationship">
|
||||||
|
<el-input v-model="form.relationship" placeholder="请输入关系" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="紧急联系电话" prop="emergencyContactPhone">
|
||||||
|
<el-input v-model="form.emergencyContactPhone" placeholder="请输入紧急联系人电话" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<!-- 备注和附件 -->
|
||||||
|
<el-card class="mb-4" shadow="hover">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="附件" prop="attachment">
|
||||||
|
<file-upload v-model="attachment"></file-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<!-- 员工入职记录补录对话框 -->
|
||||||
|
<el-dialog :title="supplementTitle" :visible.sync="supplementOpen" width="500px" append-to-body>
|
||||||
|
<el-form ref="supplementForm" :model="supplementForm" :rules="supplementRules" label-width="80px">
|
||||||
|
<el-form-item label="入职时间" prop="changeTime">
|
||||||
|
<el-date-picker clearable v-model="supplementForm.changeTime" type="datetime"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss" placeholder="请选择入职时间">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="入职原因" prop="changeReason">
|
||||||
|
<el-input v-model="supplementForm.changeReason" placeholder="请输入入职原因" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="负责人" prop="changeHandler">
|
||||||
|
<el-input v-model="supplementForm.changeHandler" placeholder="请输入负责人" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="附件" prop="attachment">
|
||||||
|
<file-upload v-model="supplementAttachment" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="supplementForm.remark" placeholder="请输入备注" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button :loading="buttonLoading" type="primary" @click="submitSupplementForm">确 定</el-button>
|
||||||
|
<el-button @click="cancelSupplement">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listEmployeeChange, getEmployeeChange, delEmployeeChange, updateEmployeeChange, addEmployeeChange, employeeEntry } from "@/api/wms/employeeChange";
|
||||||
|
import { listDept } from "@/api/wms/dept";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "EmployeeEntry",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 按钮loading
|
||||||
|
buttonLoading: false,
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 员工入职表格数据
|
||||||
|
employeeEntryList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
infoId: undefined,
|
||||||
|
changeType: 0,
|
||||||
|
changeTime: undefined,
|
||||||
|
changeReason: undefined,
|
||||||
|
changeHandler: undefined,
|
||||||
|
attachment: undefined,
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
},
|
||||||
|
// 附件
|
||||||
|
attachment: undefined,
|
||||||
|
// 部门列表
|
||||||
|
deptList: [],
|
||||||
|
// 补录对话框相关
|
||||||
|
supplementTitle: "补录员工入职记录",
|
||||||
|
supplementOpen: false,
|
||||||
|
supplementForm: {
|
||||||
|
changeId: undefined,
|
||||||
|
infoId: undefined,
|
||||||
|
changeType: 0,
|
||||||
|
changeTime: undefined,
|
||||||
|
changeReason: undefined,
|
||||||
|
changeHandler: undefined,
|
||||||
|
attachment: undefined,
|
||||||
|
remark: undefined
|
||||||
|
},
|
||||||
|
supplementRules: {
|
||||||
|
},
|
||||||
|
supplementAttachment: undefined
|
||||||
|
};
|
||||||
|
},
|
||||||
|
dicts: ['hrm_employee_education'],
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
this.getDeptList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/** 查询员工入职记录列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listEmployeeChange(this.queryParams).then(response => {
|
||||||
|
this.employeeEntryList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getDeptList() {
|
||||||
|
listDept().then(response => {
|
||||||
|
this.deptList = response.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 取消补录按钮操作
|
||||||
|
cancelSupplement() {
|
||||||
|
this.supplementOpen = false;
|
||||||
|
this.resetSupplementForm();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
infoId: undefined,
|
||||||
|
serialNumber: undefined,
|
||||||
|
dept: undefined,
|
||||||
|
jobType: undefined,
|
||||||
|
name: undefined,
|
||||||
|
idCard: undefined,
|
||||||
|
age: undefined,
|
||||||
|
gender: undefined,
|
||||||
|
education: undefined,
|
||||||
|
homeAddress: undefined,
|
||||||
|
phone: undefined,
|
||||||
|
entryTime: undefined,
|
||||||
|
emergencyContact: undefined,
|
||||||
|
relationship: undefined,
|
||||||
|
emergencyContactPhone: undefined,
|
||||||
|
createBy: undefined,
|
||||||
|
createTime: undefined,
|
||||||
|
updateBy: undefined,
|
||||||
|
updateTime: undefined,
|
||||||
|
delFlag: undefined,
|
||||||
|
remark: undefined,
|
||||||
|
infoRemark: undefined
|
||||||
|
};
|
||||||
|
this.attachment = undefined;
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
// 补录表单重置
|
||||||
|
resetSupplementForm() {
|
||||||
|
this.supplementForm = {
|
||||||
|
changeId: undefined,
|
||||||
|
infoId: undefined,
|
||||||
|
changeType: 0,
|
||||||
|
changeTime: undefined,
|
||||||
|
changeReason: undefined,
|
||||||
|
changeHandler: undefined,
|
||||||
|
attachment: undefined,
|
||||||
|
remark: undefined
|
||||||
|
};
|
||||||
|
this.supplementAttachment = undefined;
|
||||||
|
this.resetForm("supplementForm");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.changeId)
|
||||||
|
this.single = selection.length !== 1
|
||||||
|
this.multiple = !selection.length
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.reset();
|
||||||
|
this.form.changeHandler = this.$store.getters.nickName;
|
||||||
|
this.open = true;
|
||||||
|
this.title = "员工入职";
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.loading = true;
|
||||||
|
this.resetSupplementForm();
|
||||||
|
const changeId = row.changeId || this.ids
|
||||||
|
getEmployeeChange(changeId).then(response => {
|
||||||
|
this.loading = false;
|
||||||
|
this.supplementForm = response.data;
|
||||||
|
this.supplementAttachment = response.data.attachment;
|
||||||
|
this.supplementOpen = true;
|
||||||
|
this.supplementTitle = "修改员工入职记录";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 补录按钮操作 */
|
||||||
|
handleSupplement() {
|
||||||
|
this.resetSupplementForm();
|
||||||
|
this.supplementForm.changeHandler = this.$store.getters.nickName;
|
||||||
|
this.supplementOpen = true;
|
||||||
|
this.supplementTitle = "补录员工入职记录";
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.buttonLoading = true;
|
||||||
|
employeeEntry({
|
||||||
|
changeType: 0,
|
||||||
|
changeTime: this.form.entryTime,
|
||||||
|
changeHandler: this.$store.getters.nickName,
|
||||||
|
attachment: this.attachment,
|
||||||
|
...this.form
|
||||||
|
}).then(response => {
|
||||||
|
this.$modal.msgSuccess("员工入职成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
}).finally(() => {
|
||||||
|
this.buttonLoading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交补录表单 */
|
||||||
|
submitSupplementForm() {
|
||||||
|
this.$refs["supplementForm"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
this.buttonLoading = true;
|
||||||
|
if (this.supplementForm.changeId != null) {
|
||||||
|
updateEmployeeChange(this.supplementForm).then(response => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.supplementOpen = false;
|
||||||
|
this.getList();
|
||||||
|
}).finally(() => {
|
||||||
|
this.buttonLoading = false;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addEmployeeChange({
|
||||||
|
changeType: 0,
|
||||||
|
changeTime: this.supplementForm.changeTime,
|
||||||
|
changeHandler: this.supplementForm.changeHandler,
|
||||||
|
changeReason: this.supplementForm.changeReason,
|
||||||
|
attachment: this.supplementAttachment,
|
||||||
|
remark: this.supplementForm.remark
|
||||||
|
}).then(response => {
|
||||||
|
this.$modal.msgSuccess("员工入职记录补录成功");
|
||||||
|
this.supplementOpen = false;
|
||||||
|
this.getList();
|
||||||
|
}).finally(() => {
|
||||||
|
this.buttonLoading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const changeIds = row.changeId || this.ids;
|
||||||
|
this.$modal.confirm('是否确认删除员工入职记录编号为"' + changeIds + '"的数据项?').then(() => {
|
||||||
|
this.loading = true;
|
||||||
|
return delEmployeeChange(changeIds);
|
||||||
|
}).then(() => {
|
||||||
|
this.loading = false;
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => {
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download('system/employeeChange/export', {
|
||||||
|
...this.queryParams
|
||||||
|
}, `employeeChange_${new Date().getTime()}.xlsx`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="60px">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="60px">
|
||||||
<el-form-item label="部门" prop="deptId">
|
<el-form-item label="部门" prop="deptId">
|
||||||
<el-select v-model="queryParams.deptId" placeholder="请选择部门" clearable @keyup.enter.native="handleQuery">
|
<el-select v-model="queryParams.dept" placeholder="请选择部门" clearable @keyup.enter.native="handleQuery">
|
||||||
<el-option v-for="item in deptList" :value="item.deptName" :label="item.deptName" :key="item.deptId" />
|
<el-option v-for="item in deptList" :value="item.deptName" :label="item.deptName" :key="item.deptId" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -105,9 +105,9 @@
|
|||||||
</template>
|
</template>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="部门" prop="deptId">
|
<el-form-item label="部门" prop="dept">
|
||||||
<!-- <el-input v-model="form.dept" placeholder="请输入部门" /> -->
|
<!-- <el-input v-model="form.dept" placeholder="请输入部门" /> -->
|
||||||
<el-select v-model="form.deptId" placeholder="请选择部门">
|
<el-select v-model="form.dept" placeholder="请选择部门">
|
||||||
<el-option v-for="item in deptList" :value="item.deptName" :label="item.deptName"
|
<el-option v-for="item in deptList" :value="item.deptName" :label="item.deptName"
|
||||||
:key="item.deptId" />
|
:key="item.deptId" />
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
<el-input v-model="form.infoRemark" placeholder="请输入备注" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -214,7 +214,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<!-- 备注和附件 -->
|
<!-- 备注和附件 -->
|
||||||
<!-- <el-card class="mb-4" shadow="hover">
|
<el-card class="mb-4" shadow="hover">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
@@ -227,7 +227,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card> -->
|
</el-card>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
|||||||
Reference in New Issue
Block a user