领料记录查询详情-增加审批流
This commit is contained in:
parent
58e35a17c1
commit
63442e3a15
|
|
@ -1,341 +1,387 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-form
|
<el-row :gutter="20">
|
||||||
:model="maForm"
|
<el-col :span="isDetail ? 18 : 24" :offset="0">
|
||||||
ref="maForm"
|
<el-form
|
||||||
size="small"
|
:model="maForm"
|
||||||
:rules="rules"
|
ref="maForm"
|
||||||
:inline="true"
|
size="small"
|
||||||
label-width="120px"
|
:rules="rules"
|
||||||
:disabled="isDetail"
|
:inline="true"
|
||||||
>
|
label-width="120px"
|
||||||
<el-form-item label="领用单位" prop="unitId">
|
|
||||||
<treeselect
|
|
||||||
v-model="maForm.unitId"
|
|
||||||
:disabled="isEdit || isDetail"
|
|
||||||
:options="uniteList"
|
|
||||||
:normalizer="normalizer"
|
|
||||||
:show-count="true"
|
|
||||||
style="width: 240px"
|
|
||||||
:disable-branch-nodes="true"
|
|
||||||
noChildrenText="没有数据了"
|
|
||||||
noOptionsText="没有数据"
|
|
||||||
noResultsText="没有搜索结果"
|
|
||||||
placeholder="请选择领用单位"
|
|
||||||
@select="uniteChange"
|
|
||||||
v-if="pageTitle === '新增'"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<el-input v-else v-model="maForm.leaseUnit" style="width: 240px" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="领用工程" prop="projectId">
|
|
||||||
<treeselect
|
|
||||||
v-model="maForm.projectId"
|
|
||||||
:disabled="isEdit || isDetail"
|
|
||||||
:options="projectList"
|
|
||||||
:normalizer="normalizer"
|
|
||||||
:show-count="true"
|
|
||||||
style="width: 240px"
|
|
||||||
:disable-branch-nodes="true"
|
|
||||||
noChildrenText="没有数据了"
|
|
||||||
noOptionsText="没有数据"
|
|
||||||
noResultsText="没有搜索结果"
|
|
||||||
placeholder="请选择领用工程"
|
|
||||||
@select="projectChange"
|
|
||||||
v-if="pageTitle === '新增'"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<el-input v-else v-model="maForm.leaseProject" style="width: 240px" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="领料人" prop="leasePerson">
|
|
||||||
<el-input
|
|
||||||
v-model="maForm.leasePerson"
|
|
||||||
placeholder="请输入领料人"
|
|
||||||
clearable
|
|
||||||
maxlength="50"
|
|
||||||
style="width: 240px"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-row :gutter="20">
|
|
||||||
<el-col :span="24" :offset="0">
|
|
||||||
<el-form-item label="供货时间" prop="supplierTime">
|
|
||||||
<el-date-picker
|
|
||||||
v-model="maForm.supplierTime"
|
|
||||||
type="date"
|
|
||||||
placeholder="请选择供货时间"
|
|
||||||
clearable
|
|
||||||
style="width: 240px"
|
|
||||||
value-format="yyyy-MM-dd"
|
|
||||||
:picker-options="pickerOptions"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="供货地点" prop="supplierPlace">
|
|
||||||
<el-input
|
|
||||||
v-model="maForm.supplierPlace"
|
|
||||||
placeholder="请输入供货地点"
|
|
||||||
clearable
|
|
||||||
maxlength="200"
|
|
||||||
style="width: 240px"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="联系电话" prop="phone">
|
|
||||||
<el-input
|
|
||||||
v-model="maForm.phone"
|
|
||||||
placeholder="请输入联系电话"
|
|
||||||
clearable
|
|
||||||
maxlength="11"
|
|
||||||
style="width: 240px"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="适用班组数" prop="fitNum">
|
|
||||||
<el-input
|
|
||||||
v-model="maForm.fitNum"
|
|
||||||
placeholder="请输入适用班组数"
|
|
||||||
maxlength="10"
|
|
||||||
type="number"
|
|
||||||
style="width: 240px"
|
|
||||||
@blur="fitNumChange"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="业务单号" prop="code" v-if="isEdit || isDetail">
|
|
||||||
<el-input
|
|
||||||
v-model="maForm.code"
|
|
||||||
placeholder="请输入业务单号"
|
|
||||||
clearable
|
|
||||||
maxlength="150"
|
|
||||||
style="width: 240px"
|
|
||||||
disabled
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-form-item label="标准配置" prop="standardConfig">
|
|
||||||
<treeselect
|
|
||||||
v-model="maForm.standardConfig"
|
|
||||||
:disabled="isDetail"
|
|
||||||
:options="standardConfigList"
|
|
||||||
:normalizer="normalizer"
|
|
||||||
:show-count="true"
|
|
||||||
style="width: 240px"
|
|
||||||
:disable-branch-nodes="true"
|
|
||||||
noChildrenText="没有数据了"
|
|
||||||
noOptionsText="没有数据"
|
|
||||||
noResultsText="没有搜索结果"
|
|
||||||
placeholder="请选择标准配置"
|
|
||||||
@select="standardConfigChange"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="类型规格" prop="deviceType">
|
|
||||||
<el-row :gutter="10">
|
|
||||||
<el-col :span="15">
|
|
||||||
<el-select
|
|
||||||
ref="typeSelect"
|
|
||||||
v-model="tempDeviceType"
|
|
||||||
multiple
|
|
||||||
filterable
|
|
||||||
placeholder="请输入类型规格"
|
|
||||||
style="width: 500px"
|
|
||||||
@change="handleTypeChange"
|
|
||||||
clearable
|
|
||||||
collapse-tags
|
|
||||||
:filter-method="handleSearchImpl"
|
|
||||||
:popper-class="'type-select-dropdown'"
|
|
||||||
:popper-append-to-body="false"
|
|
||||||
@visible-change="handleVisibleChange"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in filteredOptions"
|
|
||||||
:key="item.typeId"
|
|
||||||
:label="item.fullPath"
|
|
||||||
:value="item.typeId"
|
|
||||||
:data-key="item.typeId"
|
|
||||||
@mouseenter.native="showCustomTooltip(item, $event)"
|
|
||||||
@mouseleave.native="hideCustomTooltip"
|
|
||||||
>
|
|
||||||
<span v-html="highlightText(item.fullPath, searchKeyword)"></span>
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
<!-- <div
|
|
||||||
v-if="currentTooltipItem"
|
|
||||||
class="custom-tooltip"
|
|
||||||
:style="{
|
|
||||||
left: tooltipPosition.x + 'px',
|
|
||||||
top: tooltipPosition.y + 'px'
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
<img
|
|
||||||
:src="currentTooltipItem.imageUrl || defaultImage"
|
|
||||||
style="max-width: 200px; max-height: 150px"
|
|
||||||
@load="imageLoaded"
|
|
||||||
@error="imageLoadError"
|
|
||||||
/>
|
|
||||||
<p>库存: {{ currentTooltipItem.storageNum }}</p>
|
|
||||||
</div> -->
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-input
|
|
||||||
ref="searchInput"
|
|
||||||
v-model="searchKeyword"
|
|
||||||
placeholder="输入类型规格高亮搜索"
|
|
||||||
prefix-icon="el-icon-search"
|
|
||||||
clearable
|
|
||||||
style="width: 300px"
|
|
||||||
@input="handleHighlightSearch"
|
|
||||||
@focus="handleSearchFocus"
|
|
||||||
@click.native="handleSearchClick"
|
|
||||||
>
|
|
||||||
<template slot="append">
|
|
||||||
<span v-if="matchedOptions.length" style="margin: 0 5px">
|
|
||||||
{{ currentMatchIndex + 1 }}/{{ matchedOptions.length }}
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
</el-input>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="委托书" prop="bmFileInfos" v-if="isFileFbs">
|
|
||||||
<el-upload
|
|
||||||
:action="uploadUrl"
|
|
||||||
:file-list="maForm.bmFileInfos"
|
|
||||||
:show-file-list="true"
|
|
||||||
:auto-upload="true"
|
|
||||||
:key="uploadKey"
|
|
||||||
:limit="5"
|
|
||||||
list-type="picture-card"
|
|
||||||
accept=".png, .jpg, .jpeg, .pdf"
|
|
||||||
:on-change="handleChangeBusinessList"
|
|
||||||
:class="{ disabledFbs: uploadDisabled }"
|
|
||||||
:on-preview="picturePreviewFbs"
|
|
||||||
:on-remove="handleRemoveElectricianImgList"
|
|
||||||
:disabled="isDetail"
|
:disabled="isDetail"
|
||||||
>
|
>
|
||||||
<!-- 文件格式下载,图片格式预览 -->
|
<el-form-item label="领用单位" prop="unitId">
|
||||||
<div slot="file" slot-scope="{ file }">
|
<treeselect
|
||||||
<img v-if="isImage(file)" class="el-upload-list__item-thumbnail" :src="file.url" alt="" />
|
v-model="maForm.unitId"
|
||||||
<div v-else class="picture-card-container">
|
:disabled="isEdit || isDetail"
|
||||||
<img class="picture-card" :src="urlTemp" alt="" />
|
:options="uniteList"
|
||||||
<p class="file-name">{{ file.name }}</p>
|
:normalizer="normalizer"
|
||||||
</div>
|
:show-count="true"
|
||||||
<span class="el-upload-list__item-actions">
|
style="width: 240px"
|
||||||
<span v-if="updataIf(file)" class="el-upload-list__item-delete" @click="handleDownload(file)">
|
:disable-branch-nodes="true"
|
||||||
<i class="el-icon-download" />
|
noChildrenText="没有数据了"
|
||||||
</span>
|
noOptionsText="没有数据"
|
||||||
<span v-else class="el-upload-list__item-preview" @click="picturePreviewFbs(file)">
|
noResultsText="没有搜索结果"
|
||||||
<i class="el-icon-zoom-in" />
|
placeholder="请选择领用单位"
|
||||||
</span>
|
@select="uniteChange"
|
||||||
<span v-if="!isDetail" class="el-upload-list__item-delete" @click="handleRemoveElectricianImgList(file)">
|
v-if="pageTitle === '新增'"
|
||||||
<i class="el-icon-delete" />
|
/>
|
||||||
</span>
|
|
||||||
</span>
|
<el-input v-else v-model="maForm.leaseUnit" style="width: 240px" disabled />
|
||||||
</div>
|
</el-form-item>
|
||||||
<i class="el-icon-plus avatar-uploader-icon"></i>
|
<el-form-item label="领用工程" prop="projectId">
|
||||||
</el-upload>
|
<treeselect
|
||||||
</el-form-item>
|
v-model="maForm.projectId"
|
||||||
</el-form>
|
:disabled="isEdit || isDetail"
|
||||||
<el-row :gutter="10" class="mb8">
|
:options="projectList"
|
||||||
<el-col :span="1.5" v-if="!isDetail">
|
:normalizer="normalizer"
|
||||||
<el-button type="primary" plain icon="el-icon-document" size="mini" @click="handleSave">
|
:show-count="true"
|
||||||
{{ isEdit ? '提交' : '发起申请' }}
|
style="width: 240px"
|
||||||
</el-button>
|
:disable-branch-nodes="true"
|
||||||
|
noChildrenText="没有数据了"
|
||||||
|
noOptionsText="没有数据"
|
||||||
|
noResultsText="没有搜索结果"
|
||||||
|
placeholder="请选择领用工程"
|
||||||
|
@select="projectChange"
|
||||||
|
v-if="pageTitle === '新增'"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<el-input v-else v-model="maForm.leaseProject" style="width: 240px" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="领料人" prop="leasePerson">
|
||||||
|
<el-input
|
||||||
|
v-model="maForm.leasePerson"
|
||||||
|
placeholder="请输入领料人"
|
||||||
|
clearable
|
||||||
|
maxlength="50"
|
||||||
|
style="width: 240px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="24" :offset="0">
|
||||||
|
<el-form-item label="供货时间" prop="supplierTime">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="maForm.supplierTime"
|
||||||
|
type="date"
|
||||||
|
placeholder="请选择供货时间"
|
||||||
|
clearable
|
||||||
|
style="width: 240px"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
:picker-options="pickerOptions"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="供货地点" prop="supplierPlace">
|
||||||
|
<el-input
|
||||||
|
v-model="maForm.supplierPlace"
|
||||||
|
placeholder="请输入供货地点"
|
||||||
|
clearable
|
||||||
|
maxlength="200"
|
||||||
|
style="width: 240px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="联系电话" prop="phone">
|
||||||
|
<el-input
|
||||||
|
v-model="maForm.phone"
|
||||||
|
placeholder="请输入联系电话"
|
||||||
|
clearable
|
||||||
|
maxlength="11"
|
||||||
|
style="width: 240px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="适用班组数" prop="fitNum">
|
||||||
|
<el-input
|
||||||
|
v-model="maForm.fitNum"
|
||||||
|
placeholder="请输入适用班组数"
|
||||||
|
maxlength="10"
|
||||||
|
type="number"
|
||||||
|
style="width: 240px"
|
||||||
|
@blur="fitNumChange"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="业务单号" prop="code" v-if="isEdit || isDetail">
|
||||||
|
<el-input
|
||||||
|
v-model="maForm.code"
|
||||||
|
placeholder="请输入业务单号"
|
||||||
|
clearable
|
||||||
|
maxlength="150"
|
||||||
|
style="width: 240px"
|
||||||
|
disabled
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-form-item label="标准配置" prop="standardConfig">
|
||||||
|
<treeselect
|
||||||
|
v-model="maForm.standardConfig"
|
||||||
|
:disabled="isDetail"
|
||||||
|
:options="standardConfigList"
|
||||||
|
:normalizer="normalizer"
|
||||||
|
:show-count="true"
|
||||||
|
style="width: 240px"
|
||||||
|
:disable-branch-nodes="true"
|
||||||
|
noChildrenText="没有数据了"
|
||||||
|
noOptionsText="没有数据"
|
||||||
|
noResultsText="没有搜索结果"
|
||||||
|
placeholder="请选择标准配置"
|
||||||
|
@select="standardConfigChange"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="类型规格" prop="deviceType">
|
||||||
|
<el-row :gutter="10">
|
||||||
|
<el-col :span="15">
|
||||||
|
<el-select
|
||||||
|
ref="typeSelect"
|
||||||
|
v-model="tempDeviceType"
|
||||||
|
multiple
|
||||||
|
filterable
|
||||||
|
placeholder="请输入类型规格"
|
||||||
|
style="width: 500px"
|
||||||
|
@change="handleTypeChange"
|
||||||
|
clearable
|
||||||
|
collapse-tags
|
||||||
|
:filter-method="handleSearchImpl"
|
||||||
|
:popper-class="'type-select-dropdown'"
|
||||||
|
:popper-append-to-body="false"
|
||||||
|
@visible-change="handleVisibleChange"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in filteredOptions"
|
||||||
|
:key="item.typeId"
|
||||||
|
:label="item.fullPath"
|
||||||
|
:value="item.typeId"
|
||||||
|
:data-key="item.typeId"
|
||||||
|
@mouseenter.native="showCustomTooltip(item, $event)"
|
||||||
|
@mouseleave.native="hideCustomTooltip"
|
||||||
|
>
|
||||||
|
<span v-html="highlightText(item.fullPath, searchKeyword)"></span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<!-- <div
|
||||||
|
v-if="currentTooltipItem"
|
||||||
|
class="custom-tooltip"
|
||||||
|
:style="{
|
||||||
|
left: tooltipPosition.x + 'px',
|
||||||
|
top: tooltipPosition.y + 'px'
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
:src="currentTooltipItem.imageUrl || defaultImage"
|
||||||
|
style="max-width: 200px; max-height: 150px"
|
||||||
|
@load="imageLoaded"
|
||||||
|
@error="imageLoadError"
|
||||||
|
/>
|
||||||
|
<p>库存: {{ currentTooltipItem.storageNum }}</p>
|
||||||
|
</div> -->
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-input
|
||||||
|
ref="searchInput"
|
||||||
|
v-model="searchKeyword"
|
||||||
|
placeholder="输入类型规格高亮搜索"
|
||||||
|
prefix-icon="el-icon-search"
|
||||||
|
clearable
|
||||||
|
style="width: 300px"
|
||||||
|
@input="handleHighlightSearch"
|
||||||
|
@focus="handleSearchFocus"
|
||||||
|
@click.native="handleSearchClick"
|
||||||
|
>
|
||||||
|
<template slot="append">
|
||||||
|
<span v-if="matchedOptions.length" style="margin: 0 5px">
|
||||||
|
{{ currentMatchIndex + 1 }}/{{ matchedOptions.length }}
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="委托书" prop="bmFileInfos" v-if="isFileFbs">
|
||||||
|
<el-upload
|
||||||
|
:action="uploadUrl"
|
||||||
|
:file-list="maForm.bmFileInfos"
|
||||||
|
:show-file-list="true"
|
||||||
|
:auto-upload="true"
|
||||||
|
:key="uploadKey"
|
||||||
|
:limit="5"
|
||||||
|
list-type="picture-card"
|
||||||
|
accept=".png, .jpg, .jpeg, .pdf"
|
||||||
|
:on-change="handleChangeBusinessList"
|
||||||
|
:class="{ disabledFbs: uploadDisabled }"
|
||||||
|
:on-preview="picturePreviewFbs"
|
||||||
|
:on-remove="handleRemoveElectricianImgList"
|
||||||
|
:disabled="isDetail"
|
||||||
|
>
|
||||||
|
<!-- 文件格式下载,图片格式预览 -->
|
||||||
|
<div slot="file" slot-scope="{ file }">
|
||||||
|
<img v-if="isImage(file)" class="el-upload-list__item-thumbnail" :src="file.url" alt="" />
|
||||||
|
<div v-else class="picture-card-container">
|
||||||
|
<img class="picture-card" :src="urlTemp" alt="" />
|
||||||
|
<p class="file-name">{{ file.name }}</p>
|
||||||
|
</div>
|
||||||
|
<span class="el-upload-list__item-actions">
|
||||||
|
<span v-if="updataIf(file)" class="el-upload-list__item-delete" @click="handleDownload(file)">
|
||||||
|
<i class="el-icon-download" />
|
||||||
|
</span>
|
||||||
|
<span v-else class="el-upload-list__item-preview" @click="picturePreviewFbs(file)">
|
||||||
|
<i class="el-icon-zoom-in" />
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
v-if="!isDetail"
|
||||||
|
class="el-upload-list__item-delete"
|
||||||
|
@click="handleRemoveElectricianImgList(file)"
|
||||||
|
>
|
||||||
|
<i class="el-icon-delete" />
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<i class="el-icon-plus avatar-uploader-icon"></i>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5" v-if="!isDetail">
|
||||||
|
<el-button type="primary" plain icon="el-icon-document" size="mini" @click="handleSave">
|
||||||
|
{{ isEdit ? '提交' : '发起申请' }}
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5" v-if="!isDetail">
|
||||||
|
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addColumns">新增条目</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="primary" plain icon="el-icon-arrow-left" size="mini" @click="handleApplyRecord">
|
||||||
|
领料记录查看
|
||||||
|
</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>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="equipmentList" @selection-change="handleSelectionChange">
|
||||||
|
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
||||||
|
<el-table-column align="center" label="序号" type="index" width="55" />
|
||||||
|
<el-table-column align="center" label="类型名称" prop="maTypeName" show-overflow-tooltip>
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-cascader
|
||||||
|
v-if="scope.row.isManual == 1"
|
||||||
|
v-model="scope.row.maTypeIds"
|
||||||
|
placeholder="请选择类型名称"
|
||||||
|
:options="maTypeList"
|
||||||
|
:props="{ label: 'typeName', value: 'typeId' }"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
:disabled="isDetail"
|
||||||
|
@change="selectedIds => getTypeList(scope.row, selectedIds, scope.$index)"
|
||||||
|
></el-cascader>
|
||||||
|
|
||||||
|
<span v-else>{{ scope.row.maTypeName }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="规格型号" prop="typeName" show-overflow-tooltip>
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-select
|
||||||
|
v-if="scope.row.isManual == 1"
|
||||||
|
v-model="scope.row.typeId"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
placeholder="请选择规格型号"
|
||||||
|
:disabled="isDetail"
|
||||||
|
@change="val => changeTypeName(scope.row, val, getSelectedItemName(val, scope.row))"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in scope.row.typeList"
|
||||||
|
:key="item.typeId"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.typeId"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
<span v-else>{{ scope.row.typeName }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="计量单位" prop="unitName" />
|
||||||
|
<el-table-column label="预领数量" prop="preNum" align="center">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-input
|
||||||
|
v-model="scope.row.preNum"
|
||||||
|
type="text"
|
||||||
|
style="width: 100%"
|
||||||
|
:disabled="!!(scope.row.alNum && scope.row.alNum != 0)"
|
||||||
|
:readonly="isDetail"
|
||||||
|
@input="handlePreNum(scope.row, $event, 'input')"
|
||||||
|
@blur="handlePreNum(scope.row, $event, 'blur')"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column align="center" label="当前库存" prop="storageNum" /> -->
|
||||||
|
<!-- <el-table-column label="待出库数量" align="center" prop="alNum" show-overflow-tooltip /> -->
|
||||||
|
<el-table-column label="备注" prop="remark" align="center" label-width="500px">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-input
|
||||||
|
v-model="scope.row.remark"
|
||||||
|
controls-position="right"
|
||||||
|
:readonly="isDetail"
|
||||||
|
style="width: 100%"
|
||||||
|
></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="操作" align="center" v-if="!isDetail">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
style="color: red"
|
||||||
|
@click="handleDelete(scope.$index, scope.row)"
|
||||||
|
>
|
||||||
|
删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5" v-if="!isDetail">
|
<el-col :span="6" :offset="0" v-if="isDetail">
|
||||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="addColumns">新增条目</el-button>
|
<div class="right-title">
|
||||||
</el-col>
|
<div></div>
|
||||||
<el-col :span="1.5">
|
<div></div>
|
||||||
<el-button type="primary" plain icon="el-icon-arrow-left" size="mini" @click="handleApplyRecord">
|
<div>流程记录</div>
|
||||||
领料记录查看
|
</div>
|
||||||
</el-button>
|
|
||||||
</el-col>
|
<div class="process-record">
|
||||||
<el-col :span="1.5">
|
<el-steps :active="active" :space="120" direction="vertical">
|
||||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">
|
<el-step v-for="step in auditingList" :key="step.id" :title="step.nodeName">
|
||||||
导出工具器清单
|
<template slot="description">
|
||||||
</el-button>
|
<div class="custom-description">
|
||||||
|
审核结果:
|
||||||
|
<el-tag size="mini" type="primary" v-if="step.isAccept === 0">待审批</el-tag>
|
||||||
|
<el-tag size="mini" type="success" v-if="step.isAccept === 1">已通过</el-tag>
|
||||||
|
<el-tag size="mini" type="danger" v-if="step.isAccept === 2">已驳回</el-tag>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="node-info" v-if="step.auditBy">
|
||||||
|
审核人:
|
||||||
|
{{ step.auditBy }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="node-info" v-if="step.createTime">
|
||||||
|
审核时间:
|
||||||
|
{{ step.createTime }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="node-info" v-if="step.remark">
|
||||||
|
审核意见:
|
||||||
|
{{ step.remark }}
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-step>
|
||||||
|
</el-steps>
|
||||||
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="equipmentList" @selection-change="handleSelectionChange">
|
|
||||||
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
|
||||||
<el-table-column align="center" label="序号" type="index" width="55" />
|
|
||||||
<el-table-column align="center" label="类型名称" prop="maTypeName" show-overflow-tooltip>
|
|
||||||
<template v-slot="scope">
|
|
||||||
<el-cascader
|
|
||||||
v-if="scope.row.isManual == 1"
|
|
||||||
v-model="scope.row.maTypeIds"
|
|
||||||
placeholder="请选择类型名称"
|
|
||||||
:options="maTypeList"
|
|
||||||
:props="{ label: 'typeName', value: 'typeId' }"
|
|
||||||
filterable
|
|
||||||
clearable
|
|
||||||
:disabled="isDetail"
|
|
||||||
@change="selectedIds => getTypeList(scope.row, selectedIds, scope.$index)"
|
|
||||||
></el-cascader>
|
|
||||||
|
|
||||||
<span v-else>{{ scope.row.maTypeName }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column align="center" label="规格型号" prop="typeName" show-overflow-tooltip>
|
|
||||||
<template v-slot="scope">
|
|
||||||
<el-select
|
|
||||||
v-if="scope.row.isManual == 1"
|
|
||||||
v-model="scope.row.typeId"
|
|
||||||
clearable
|
|
||||||
filterable
|
|
||||||
placeholder="请选择规格型号"
|
|
||||||
:disabled="isDetail"
|
|
||||||
@change="val => changeTypeName(scope.row, val, getSelectedItemName(val, scope.row))"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in scope.row.typeList"
|
|
||||||
:key="item.typeId"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.typeId"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
|
||||||
<span v-else>{{ scope.row.typeName }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column align="center" label="计量单位" prop="unitName" />
|
|
||||||
<el-table-column label="预领数量" prop="preNum" align="center">
|
|
||||||
<template v-slot="scope">
|
|
||||||
<el-input
|
|
||||||
v-model="scope.row.preNum"
|
|
||||||
type="text"
|
|
||||||
style="width: 100%"
|
|
||||||
:disabled="scope.row.alNum && scope.row.alNum != 0"
|
|
||||||
@input="handlePreNum(scope.row, $event, 'input')"
|
|
||||||
@blur="handlePreNum(scope.row, $event, 'blur')"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<!-- <el-table-column align="center" label="当前库存" prop="storageNum" /> -->
|
|
||||||
<!-- <el-table-column label="待出库数量" align="center" prop="alNum" show-overflow-tooltip /> -->
|
|
||||||
<el-table-column label="备注" prop="remark" align="center" label-width="500px">
|
|
||||||
<template v-slot="scope">
|
|
||||||
<el-input
|
|
||||||
v-model="scope.row.remark"
|
|
||||||
controls-position="right"
|
|
||||||
:disabled="isDetail"
|
|
||||||
style="width: 100%"
|
|
||||||
></el-input>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
|
|
||||||
<el-table-column label="操作" align="center" v-if="!isDetail">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<el-button
|
|
||||||
size="mini"
|
|
||||||
type="text"
|
|
||||||
icon="el-icon-delete"
|
|
||||||
style="color: red"
|
|
||||||
@click="handleDelete(scope.$index, scope.row)"
|
|
||||||
>
|
|
||||||
删除
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
|
|
||||||
<!-- 弹框 -->
|
<!-- 弹框 -->
|
||||||
<el-dialog title="领用申请" :visible.sync="dialogVisible" width="60%">
|
<el-dialog title="领用申请" :visible.sync="dialogVisible" width="60%">
|
||||||
<el-form ref="dialogForm" :model="maForm" label-width="120px" inline>
|
<el-form ref="dialogForm" :model="maForm" label-width="120px" inline>
|
||||||
|
|
@ -390,6 +436,7 @@ import {
|
||||||
getCode
|
getCode
|
||||||
} from '@/api/business/index'
|
} from '@/api/business/index'
|
||||||
import { getEquipmentThreeTypeThree, getMaTypeOpt } from '@/api/ma/base'
|
import { getEquipmentThreeTypeThree, getMaTypeOpt } from '@/api/ma/base'
|
||||||
|
import { getAuditingDetailsApi } from '@/api/receive-apply/index.js'
|
||||||
import Treeselect from '@riophae/vue-treeselect'
|
import Treeselect from '@riophae/vue-treeselect'
|
||||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||||
|
|
||||||
|
|
@ -566,7 +613,10 @@ export default {
|
||||||
defaultImage: 'https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg',
|
defaultImage: 'https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg',
|
||||||
tooltipTimeout: null,
|
tooltipTimeout: null,
|
||||||
|
|
||||||
pageTitle: '新增'
|
pageTitle: '新增',
|
||||||
|
auditingList: [],
|
||||||
|
active: 1,
|
||||||
|
taskId: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
@ -625,6 +675,8 @@ export default {
|
||||||
// const obj = Object.assign({}, this.$route, { title: '领用申请编辑' })
|
// const obj = Object.assign({}, this.$route, { title: '领用申请编辑' })
|
||||||
// this.$tab.updatePage(obj)
|
// this.$tab.updatePage(obj)
|
||||||
} else if (this.$route.query.type == 'detail') {
|
} else if (this.$route.query.type == 'detail') {
|
||||||
|
this.taskId = this.$route.query.taskId
|
||||||
|
this.getLeaseTaskDetailFun()
|
||||||
// this.isEdit = false
|
// this.isEdit = false
|
||||||
// this.isDetail = true
|
// this.isDetail = true
|
||||||
// this.id = this.$route.query.id
|
// this.id = this.$route.query.id
|
||||||
|
|
@ -651,11 +703,18 @@ export default {
|
||||||
console.log(this.$route.query, 'this.$route.query')
|
console.log(this.$route.query, 'this.$route.query')
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 获取数据详情 和 审核记录详情
|
||||||
|
async getLeaseTaskDetailFun() {
|
||||||
|
const { rows: result } = await getAuditingDetailsApi({ taskId: this.taskId })
|
||||||
|
this.auditingList = result
|
||||||
|
console.log('审核列表数据:', this.auditingList)
|
||||||
|
},
|
||||||
handlePreNum(row, val, type) {
|
handlePreNum(row, val, type) {
|
||||||
if (type === 'input') {
|
if (type === 'input') {
|
||||||
const reg = row.unitValue == 1
|
const reg =
|
||||||
? val.replace(/[^\d.]/g, '') // 允许小数
|
row.unitValue == 1
|
||||||
: val.replace(/[^\d]/g, '') // 只能整数
|
? val.replace(/[^\d.]/g, '') // 允许小数
|
||||||
|
: val.replace(/[^\d]/g, '') // 只能整数
|
||||||
row.preNum = reg
|
row.preNum = reg
|
||||||
} else if (type === 'blur') {
|
} else if (type === 'blur') {
|
||||||
if (row.preNum !== '') {
|
if (row.preNum !== '') {
|
||||||
|
|
@ -1542,4 +1601,52 @@ export default {
|
||||||
max-width: 250px;
|
max-width: 250px;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
.process-record {
|
||||||
|
margin-top: 20px;
|
||||||
|
// height: 60vh;
|
||||||
|
}
|
||||||
|
.btn-container {
|
||||||
|
margin-top: 10px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-step__icon.is-text {
|
||||||
|
background-color: #19a4a0;
|
||||||
|
color: #19a4a0;
|
||||||
|
border: none;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-step.is-vertical .el-step__line {
|
||||||
|
width: 2px;
|
||||||
|
top: 26px;
|
||||||
|
bottom: 8px;
|
||||||
|
left: 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-step__title.is-finish {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #303133;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-step__title.is-wait {
|
||||||
|
font-weight: bold;
|
||||||
|
color: #303133;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-description {
|
||||||
|
padding: 8px 0 8px 20px;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.node-info {
|
||||||
|
// padding: 2px 0;
|
||||||
|
padding-left: 20px;
|
||||||
|
color: #666;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -376,7 +376,7 @@ export default {
|
||||||
console.log('编辑', row)
|
console.log('编辑', row)
|
||||||
let params = {}
|
let params = {}
|
||||||
if (type === 1) {
|
if (type === 1) {
|
||||||
params = { type: 'detail', id: row.id }
|
params = { type: 'detail', id: row.id, taskId: row.taskId }
|
||||||
} else {
|
} else {
|
||||||
params = { type: 'edit', id: row.id }
|
params = { type: 'edit', id: row.id }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -351,7 +351,7 @@
|
||||||
<div class="uploadImg">
|
<div class="uploadImg">
|
||||||
<div id="qrcode" class="qrcode" ref="codeItem"></div>
|
<div id="qrcode" class="qrcode" ref="codeItem"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="boxCode">二维码编号:{{ rowObj.qrCode }}</div>
|
<div class="boxCode">设备编号:{{ rowObj.maCode }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div slot="footer" class="dialog-footer" style="text-align: center">
|
<div slot="footer" class="dialog-footer" style="text-align: center">
|
||||||
<el-button type="primary" @click="downloadCode">下 载</el-button>
|
<el-button type="primary" @click="downloadCode">下 载</el-button>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue