bonus-ui/src/views/material/part/partArrived/component/addTools.vue

948 lines
39 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<!-- 新增工机具 -->
<div>
<el-form
:model="maForm"
ref="maForm"
size="small"
:rules="rules"
:inline="true"
label-width="120px"
>
<el-form-item label="到货日期" prop="arrivalTime">
<el-date-picker
v-model="maForm.arrivalTime"
style="width: 240px"
value-format="yyyy-MM-dd hh:mm:ss"
type="date"
placeholder="请选择到货日期"
></el-date-picker>
</el-form-item>
<el-form-item label="物资厂家" prop="supplierId">
<el-select
v-model="maForm.supplierId"
placeholder="物资厂家"
clearable
filterable
style="width: 240px"
>
<el-option
v-for="item in supplierList"
:key="item.supplierId"
:label="item.supplier"
:value="item.supplierId"
/>
</el-select>
</el-form-item>
<el-form-item label="出厂日期" prop="productionTime">
<el-date-picker
v-model="maForm.productionTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="date"
placeholder="请选择出厂日期"
@change="productionTimeChange"
></el-date-picker>
</el-form-item>
<el-form-item label="税率" prop="taxRate">
<el-input
v-model="maForm.taxRate"
placeholder="请输入税率"
clearable
maxlength="10"
style="width: 240px"
@input="taxRateChange"
/>
<span>%</span>
</el-form-item>
<el-form-item label="类型规格" prop="deviceType">
<el-cascader
:key="propsKey"
v-model="deviceType"
:show-all-levels="false"
:options="equipmentTypeList"
:props="deviceTypeTreeProps"
filterable
collapse-tags
style="width: 240px"
placeholder="请选择规格型号"
ref="deviceTypeCascader"
popper-class="popper-select"
@change="deviceTypeChange"
></el-cascader>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="maForm.remark"
placeholder="请输入备注"
clearable
maxlength="150"
type="textarea"
style="width: 240px"
rows="2"
/>
</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="handleSave" >保存</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-if="isEdit">导出</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
></el-table-column>
<el-table-column
align="center"
label="规格型号"
prop="partName"
show-overflow-tooltip
/>
<el-table-column align="center" label="单位" prop="unitName" />
<el-table-column label="采购数量" prop="purchaseNum" align="center">
<template v-slot="scope">
<el-input
v-model.number="scope.row.purchaseNum"
controls-position="right" type="number"
style="width: 100%" :disabled="scope.row.status!=0"
:min="0"
></el-input>
</template>
</el-table-column>
<el-table-column
label="购置单价(元含税)"
prop="purchaseTaxPrice"
align="center" width="200"
>
<template v-slot="scope">
<el-input-number
v-model="scope.row.purchaseTaxPrice"
controls-position="right"
style="width: 100%" @blur="scope.row.purchaseTaxPrice = scope.row.purchaseTaxPrice>0? scope.row.purchaseTaxPrice:0"
:min="0" :step="1" :disabled="scope.row.status!=0"
@change="purchaseTaxPriceChange(scope.row,scope.$index)"
></el-input-number>
</template>
</el-table-column>
<el-table-column
label="购置单价(元不含税)"
prop="purchasePrice"
align="center" width="200"
>
<template slot-scope="scope">
<el-input-number
v-model="scope.row.purchasePrice"
controls-position="right"
style="width: 100%"
:min="0" :step="1" disabled
@input="purchasePriceChange(scope.row,scope.$index)"
></el-input-number>
</template>
</el-table-column>
<el-table-column
label="出厂日期"
align="center"
prop="productionTime"
width="200"
>
<template slot-scope="scope">
<el-date-picker
v-model="scope.row.productionTime"
style="width: 100%"
value-format="yyyy-MM-dd"
type="date" :disabled="scope.row.status!=0"
placeholder="出厂日期"
clearable
></el-date-picker>
</template>
</el-table-column>
<el-table-column
label="相关配套资料"
align="center" width="120"
prop="bmFileInfos"
>
<template slot-scope="scope">
<div style="color: #02A7F0;cursor: pointer;" @click="openFileDialog(scope.row)" v-if="scope.row.isExitFile==1">报告管理</div>
<div style="color: red;cursor: pointer;" @click="openFileDialog(scope.row)" v-if="scope.row.isExitFile==0">报告管理</div>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="status" :show-overflow-tooltip="true">
<template slot-scope="scope">
<dict-tag :options="dict.type.part_task_status" :value="scope.row.status"/>
</template>
</el-table-column>
<!-- <el-table-column
align="center"
label="验收结论"
prop="checkResult"
show-overflow-tooltip
></el-table-column> -->
<el-table-column label="操作" align="center">
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
<el-button
size="mini"
type="text" v-if="scope.row.status==0"
icon="el-icon-delete"
style="color: red"
@click="handleDelete(scope.row)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<el-dialog title="报告管理" :visible.sync="open" width="900px" append-to-body>
<el-table :data="fileDataList" width="100%" height="350px">
<el-table-column label="序号" type="index" width="55" align="center"/>
<el-table-column label="报告类型" align="center" prop="dictLabel" :show-overflow-tooltip="true"/>
<el-table-column label="配件名称" align="center" :show-overflow-tooltip="true">
<template>
<div>{{this.rowData.maTypeName}}</div>
</template>
</el-table-column>
<el-table-column label="规格型号" align="center" :show-overflow-tooltip="true">
<template>
<div>{{this.rowData.partName}}</div>
</template>
</el-table-column>
<!-- <el-table-column label="报告日期" align="center" prop="orgName" :show-overflow-tooltip="true"/>
<el-table-column label="截止有效期" align="center" prop="orgName" :show-overflow-tooltip="true"/> -->
<el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<div style="display: flex;align-items: center;justify-content: space-between;">
<el-upload ref="upload" :headers="upload.headers"
:action="upload.url" :show-file-list="false" accept=".png, .jpg, .jpeg, .pdf, .doc, .docx"
:on-success="(response, file, fileList) => handleFileSuccess(scope.row, response, file, fileList)" :auto-upload="true"
:before-upload="(file) => beforeUpload(scope.row, file)"
>
<el-button size="mini" type="text" @click="beforeFileUpload(scope.row)">
上传
</el-button>
</el-upload>
<el-button size="mini" type="text" @click="picturePreviewFile(scope.row)" v-if="scope.row.fileListTemp!=0" style="margin-left: 20px;">
查看
</el-button>
</div>
</template>
</el-table-column>
</el-table>
</el-dialog>
<!-- 图片查看弹窗 -->
<el-dialog :visible.sync="dialogVisible" width="800px" >
<img width="100%" height="500px" :src="dialogImageUrl" />
</el-dialog>
<!-- 文件查看列表 -->
<el-dialog title="文件列表" :visible.sync="dialogVisibleFile" width="500px" height="500px" >
<el-table :data="fileListInfo" width="100%" height="350px">
<el-table-column label="序号" type="index" width="55" align="center"/>
<el-table-column label="文件名称" align="center" prop="name" :show-overflow-tooltip="true"/>
<el-table-column label="操作" align="center" >
<template slot-scope="scope">
<el-button size="mini" type="text" @click="picturePreview(scope.row)" v-if="scope.row.url" >
查看
</el-button>
<el-button size="mini" type="text" @click="pictureDelete(scope.row,scope.$index)" v-if="scope.row.url" style="color:red">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import { getTypeTree,addPartInfo,getPartTypeCheckInfo,updatePartInfo,getPartTypeFileList } from '@/api/part/partArrived';
import { getListFacturer } from '@/api/ma/supplier';
import { getToken } from '@/utils/auth'
// import Treeselect from '@riophae/vue-treeselect'
// import '@riophae/vue-treeselect/dist/vue-treeselect.css'
// import HoldingpoleDialog from '@/components/HoldingpoleDialog/index.vue'
export default {
name: 'AddTools',
dicts: ['part_task_status'],
// components: { Treeselect, HoldingpoleDialog },
props: {
isEdit: {
type: Boolean,
default: () => {
return false
},
},
editTaskId: {
type: [String, Number],
default: () => {
return ''
},
},
editId: {
type: [String, Number],
default: () => {
return ''
},
},
},
data() {
return {
taskId: '',
// isEdit: false,
// 遮罩层
loading: false,
loadingTwo: false,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
//物资厂家
supplierList: [],
//机具类型
equipmentTypeList: [],
// 角色表格数据
equipmentList: [],
// 弹出层标题
title: '',
// 是否显示弹出层
open: false,
rowData:{},
fileDataList: [
{dictLabel:"合格证",fileType:"0",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"型式试验报告",fileType:"1",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"出厂检测报告",fileType:"2",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"第三方监测报告",fileType:"3",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"其他",fileType:"4",name:"",url:"",fileList:[],fileListTemp:[]},
],
fileListInfo: [],
//图片查看弹窗
dialogImageUrl: '',
dialogVisible: false,
dialogVisibleFile: false,
//上传
upload: {
// 设置上传的请求头部
headers: { Authorization: 'Bearer ' + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + '/file/upload'
},
// 查询参数
queryParams: {
equipmentId: undefined,
productionTime: '',
},
maForm: {
taxRate:13,
arrivalTime: '',
purchaser: '',
remark: '',
purchaseNumber: '',
},
// 表单参数
form: {},
defaultProps: {
children: 'children',
label: 'label',
},
// 表单校验
rules: {
taxRate: [
{
required: true,
message: '请填写税率',
trigger: 'blur',
},
],
arrivalTime: [
{
required: true,
message: '请选择到货日期',
trigger: 'blur',
},
],
// purchaser: [
// { required: true, message: "采购员不能为空", trigger: "blur" }
// ]
},
deviceTypeTreeProps: {
children: 'children',
label: 'partName',
// multiple: false,
value: 'partId',
multiple: true,
},
deviceType: [],
propsKey: 1000,
fileId: '',
// taxRate:0,
}
},
computed: {
pickerOptions() {
return {
disabledDate(time) {
const currentDate = new Date()
currentDate.setHours(0, 0, 0, 0)
return time.getTime() < currentDate.getTime()
},
}
},
},
watch: {
},
async mounted() {
if (this.isEdit) {
console.log('isEdit',this.isEdit)
this.taskId = this.editTaskId
this.id = this.editId
await this.getTaskInfo()
}
await this.supplierInfoList()
await this.equipmentType()
},
methods: {
// 税率
taxRateChange(val){
this.maForm.taxRate = val.replace(/[^\d.]/g,'')
this.equipmentList.forEach(item=>{
if(item.status==0){
item.purchasePrice = ((item.purchaseTaxPrice/(100 + Number(this.maForm.taxRate)))*100).toFixed(10)
}
})
},
// 含税单价
purchaseTaxPriceChange(row,val){
row.purchaseTaxPrice = row.purchaseTaxPrice.toFixed(2)
row.purchasePrice = ((row.purchaseTaxPrice/(100 + Number(this.maForm.taxRate)))*100).toFixed(10)
},
// 不含税单价
purchasePriceChange(row,val){
// row.purchaseTaxPrice = ((row.purchasePrice*(100 + this.maForm.taxRate))/100).toFixed(2)
},
/** 物资厂家-下拉选 */
supplierInfoList() {
let param = {
pageNum: 1,
pageSize: 1000,
keyWord:undefined
}
getListFacturer(param).then((response) => {
this.supplierList = response.rows
})
},
//选择物资厂家
// changeSupplier(supplierId) {
// this.equipmentList.forEach((item) => {
// this.$set(item, 'supplierId', supplierId)
// })
// },
/** 机具类型 */
equipmentType() {
getTypeTree().then((response) => {
this.equipmentTypeList = response.data
this.equipmentTypeList.forEach((item, index) => {
if (item.children && item.children.length > 0) {
item.children.forEach((item2, index2) => {
if (item2.children && item2.children.length > 0) {
item2.children.forEach((item3) => {
item2.children.forEach((item3) => {
item3.maTypeName = item2.partName
item3.specificationType = item3.partName
this.$set(item3, 'purchaseTaxPrice', 0)
this.$set(item3, 'purchasePrice', 0)
})
})
}
})
}
})
//反显
let selectList = []
console.log(this.equipmentTypeList)
this.equipmentList.forEach((e) => {
console.log(this.equipmentList)
selectList.push(this.getParentsById(this.equipmentTypeList, e.partId))
})
this.deviceType = selectList
})
},
//树结构数据获取父
getParentsById(list, id) {
for (let i in list) {
if (list[i].partId == id) {
console.log(id)
// if(status!=1&&status!=12){
// list[i].disabled=true
// }
//查询到就返回该数组对象的value
return [list[i].partId]
}
if (list[i].children) {
let node = this.getParentsById(list[i].children, id)
if (node !== undefined) {
//查询到把父节把父节点加到数组前面
node.unshift(list[i].partId)
return node
}
}
}
},
//添加机具类型
deviceTypeChange(val) {
const deviceTypeList =
this.$refs.deviceTypeCascader.getCheckedNodes()
let tempList = []
if (val.length > 0) {
const items = val.map((e) => {
return e[2]
})
for (let i of items) {
for (let z of deviceTypeList) {
if (z.data.partId === i) {
const obj = JSON.parse(JSON.stringify(z.data))
console.log(z.data)
// obj.supplierId = ''
obj.createTime = null
obj.productionTime = this.maForm.productionTime;
obj.purchaseTaxPrice = 0
obj.purchaseTaxPrice = 0
obj.purchaseNum = 1
obj.status = 0
obj.isExitFile = '1',
obj.bmFileInfos=[]
tempList.push(obj);
break
}
}
}
const newDataListNew = [...this.equipmentList, ...tempList]
const map = new Map()
for (let item of newDataListNew) {
if (!map.has(item.partId)) {
map.set(item.partId, item)
}
}
const newArray = [...map.values()]
let newArray_array = []
items.forEach((e) => {
newArray.forEach((j) => {
if (e == j.partId) {
newArray_array.push(j)
}
})
})
this.equipmentList = newArray_array
console.log(this.equipmentList)
} else {
this.equipmentList = []
}
},
//选择出厂日期
productionTimeChange(val){
this.equipmentList.forEach(item=>{
if(item.status==1||item.status==12){
item.productionTime=val
}
})
},
//获取任务详情--- 编辑回显数据
async getTaskInfo() {
// this.loading = true;
await getPartTypeCheckInfo({taskId:this.taskId,id:this.id}).then((response) => {
this.maForm = response.data.partTypeCheckInfo
this.maForm.id = response.data.partTypeCheckInfo.id
this.maForm.taskId = response.data.partTypeCheckInfo.taskId
this.maForm.arrivalTime = response.data.partTypeCheckInfo.arrivalTime
this.maForm.supplierId = response.data.partTypeCheckInfo.supplierId
this.maForm.remark = response.data.partTypeCheckInfo.remark
this.maForm.taxRate = response.data.partTypeCheckInfo.taxRate
// this.maForm.purchaseNumber = response.data.purchaseNumber
// this.maForm.productionTime = response.data.purchaseCheckInfo.productionTime
this.equipmentList = response.data.partTypeCheckDetailsList;
this.equipmentList.forEach(item=>{
item.rentPriceDisabled=true
})
console.log(this.equipmentList)
// this.loading = false;
})
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.roleId)
this.single = selection.length != 1
this.multiple = !selection.length
},
/** 保存按钮操作 */
handleSave() {
if (this.equipmentList.length > 0) {
this.$refs['maForm'].validate((valid) => {
if (valid) {
this.maForm.taskId = this.taskId;
let index =this.equipmentList.findIndex(item=>item.purchaseNum==0)
let index2 =this.equipmentList.findIndex(item=>item.purchaseTaxPrice==0)
if(index>-1){
this.$modal.msgError('采购数量不能为0')
}else if(index2>-1){
this.$modal.msgError('含税单价不能为0')
}else {
this.$modal.confirm('是否确认保存当前页面').then(function () {})
.then(() => {
if (this.isEdit) {
console.log('编辑')
this.loading = true
updatePartInfo({partTypeCheckDetailsList: this.equipmentList,partTypeCheckInfo:this.maForm}).then((response) => {
if (response.code == 200) {
this.$modal.msgSuccess(
'编辑成功',
)
this.$emit(
'addToolsSuccess',
)
}
this.loading = false
})
} else if (!this.isEdit) {
console.log('新增')
// console.log(this.equipmentList)
this.loading = true
addPartInfo({partTypeCheckDetailsList: this.equipmentList,partTypeCheckInfo:this.maForm}).then((response) => {
if (response.code == 200) {
this.$modal.msgSuccess(
'新增成功',
)
this.$emit(
'addToolsSuccess',
)
}
this.loading = false
})
}
}).catch(() => {})
}
}
})
} else {
this.$modal.msgError('请先添加机具类型')
}
},
//文件管理
async openFileDialog(row) {
console.log('1111111',row)
this.rowData = row;
if (this.taskId == "") {
this.fileDataList = [{dictLabel:"合格证",fileType:"0",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"型式试验报告",fileType:"1",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"出厂检测报告",fileType:"2",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"第三方监测报告",fileType:"3",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"其他",fileType:"4",name:"",url:"",fileList:[],fileListTemp:[]}]
// console.log(this.rowData)
// console.log(this.rowData.bmFileInfos)
if(this.rowData.bmFileInfos.length>0){
this.rowData.bmFileInfos.forEach(item=>{
let index = this.fileDataList.findIndex(v=>v.fileType==item.fileType)
this.fileDataList[index].name = item.name
this.fileDataList[index].url = item.url
this.fileDataList[index].fileList.push({
"name": item.name,
"url": item.url,
})
this.fileDataList[index].fileListTemp.push({
"name": item.name,
"url": item.url,
})
})
}
} else {
this.fileDataList = [{dictLabel:"合格证",fileType:"0",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"型式试验报告",fileType:"1",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"出厂检测报告",fileType:"2",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"第三方监测报告",fileType:"3",name:"",url:"",fileList:[],fileListTemp:[]},
{dictLabel:"其他",fileType:"4",name:"",url:"",fileList:[],fileListTemp:[]}]
if (this.rowData.bmFileInfos == null) {
await this.getFileData()
if (this.rowData.bmFileInfos.length > 0) {
this.rowData.bmFileInfos.forEach(item=>{
let index = this.fileDataList.findIndex(v=>v.fileType==item.fileType)
this.fileDataList[index].name = item.name
this.fileDataList[index].url = item.url
this.fileDataList[index].fileList.push({
"name": item.name,
"url": item.url,
})
this.fileDataList[index].fileListTemp.push({
"name": item.name,
"url": item.url,
})
})
}
} else {
if(this.rowData.bmFileInfos.length>0){
this.rowData.bmFileInfos.forEach(item=>{
let index = this.fileDataList.findIndex(v=>v.fileType==item.fileType)
this.fileDataList[index].name = item.name
this.fileDataList[index].url = item.url
this.fileDataList[index].fileList.push({
"name": item.name,
"url": item.url,
})
this.fileDataList[index].fileListTemp.push({
"name": item.name,
"url": item.url,
})
})
}
}
}
this.open=true
},
async getFileData(){
let param = {
modelId:this.rowData.partId,
taskType:13,
taskId:this.rowData.taskId
}
this.rowData.bmFileInfos = []
await getPartTypeFileList(param).then((response) => {
if(response.data.length>0){
response.data.forEach(item=>{
let index = this.fileDataList.findIndex(v => v.fileType == item.fileType)
item.fileDetailList.forEach(item2=>{
// this.fileDataList[index].fileList.push({
// name:item2.name,
// url:item2.url
// })
// this.fileDataList[index].fileListTemp.push({
// name:item2.name,
// url:item2.url
// })
const obj = {
"taskId": this.taskId,
"taskType": "13",
"name": item2.name,
"url": item2.url,
"modelId": this.rowData.partId,
"fileType": item2.fileType,
}
this.rowData.bmFileInfos.push(obj)
console.log('77777777',this.rowData)
})
})
}
}).catch(() => {
})
},
beforeFileUpload(row){
this.rowData.fileType=row.fileType;
},
beforeUpload(row, file) {
row.fileList.push(file);
console.log('6666666',row.fileList)
if (row.fileList.length > 3) {
this.$message.warning('最多只能上传三张图片');
// 删除最后一个文件
row.fileList.pop();
return false; // 阻止上传
}
return true; // 允许上传
},
// 文件上传成功处理
handleFileSuccess(row,response, file, fileList) {
if (response.code == 200) {
if (this.taskId == "") {//新增逻辑
row.fileListTemp.push({
"name": response.data.name,
"url": response.data.url,
})
// console.log(response)
// console.log(this.rowData)
// console.log(this.rowData.bmFileInfos)
let obj = {
"taskId": this.taskId,
"taskType": "13",
"name": response.data.name,
"url": response.data.url,
"modelId": this.rowData.partId,
"fileType": this.rowData.fileType,
// "dictLabel": this.rowData.dictLabel,
}
//根据文件上传返回更新文件管理弹窗内容
let index = this.fileDataList.findIndex(v=>v.fileType==this.rowData.fileType)
this.fileDataList[index].name = response.data.name
this.fileDataList[index].url = response.data.url
//判断当前上传的文件是否已上传过-再往机具类型数据中插入
if(this.rowData.bmFileInfos.length>0){
let index2 = this.rowData.bmFileInfos.findIndex(v=>v.fileType==this.rowData.fileType)
if(index2>-1){//相同类型文件重复上传-替换
this.rowData.bmFileInfos.splice(index2,0,obj)
}else{//不存在相同类型文件-添加
this.rowData.bmFileInfos.push(obj)
}
}else{
this.rowData.bmFileInfos.push(obj)
}
} else {//编辑逻辑
row.fileListTemp.push({
"name": response.data.name,
"url": response.data.url,
})
let obj = {
"taskId": this.taskId,
"taskType": "13",
"name": response.data.name,
"url": response.data.url,
"modelId": this.rowData.partId,
"fileType": this.rowData.fileType,
// "dictLabel": this.rowData.dictLabel,
}
//根据文件上传返回更新文件管理弹窗内容
let index = this.fileDataList.findIndex(v=>v.fileType==this.rowData.fileType)
this.fileDataList[index].name = response.data.name
this.fileDataList[index].url = response.data.url
//判断当前上传的文件是否已上传过-再往机具类型数据中插入
if(this.rowData.bmFileInfos.length>0){
let index2 = this.rowData.bmFileInfos.findIndex(v=>v.fileType==this.rowData.fileType)
if(index2>-1){//相同类型文件重复上传-替换
this.rowData.bmFileInfos.splice(index2,0,obj)
}else{//不存在相同类型文件-添加
this.rowData.bmFileInfos.push(obj)
}
}else{
this.rowData.bmFileInfos.push(obj)
}
// uploadPurchaseFile(param).then((response) => {
// this.$modal.msgSuccess('上传成功')
// }).catch(() => {
// this.$modal.msgError('上传失败')
// })
}
}
},
picturePreviewFile(row) {
row.fileList = []
row.fileListTemp.forEach(item=>{
row.fileList.push({
"name": item.name,
"url": item.url,
})
})
this.fileId = row.fileType
this.fileListInfo = row.fileListTemp
this.dialogVisibleFile = true
},
//图片查看
picturePreview(file) {
this.dialogImageUrl = file.url.replaceAll('#','%23');
const parts = file.name.split('.');
const extension = parts.pop();
if(extension === 'doc' || extension === 'DOC' || extension === 'docx' || extension === 'DOCX' || extension === 'pdf' || extension === 'PDF'){
const windowName = file.name;
window.open(file.url,windowName)
}else{
this.dialogVisible = true
}
},
//删除图片
pictureDelete(row, id) {
let index = id
this.fileListInfo = this.fileListInfo.filter(item => item.url !== row.url);
this.fileDataList[this.fileId].fileList = this.fileDataList[this.fileId].fileList.filter(item => item.url !== row.url);
this.fileDataList[this.fileId].fileListTemp = this.fileDataList[this.fileId].fileListTemp.filter(item => item.url !== row.url);
let bmFiles = []
this.rowData.bmFileInfos.forEach((item)=>{
if (item.fileType != this.fileId) {
bmFiles.push(item)
}else{
if (item.url!= row.url) {
bmFiles.push(item)
}
}
})
this.rowData.bmFileInfos = bmFiles;
},
/** 删除按钮操作 */
handleDelete(row) {
// console.log(row.id)
this.$modal
.confirm('是否确认删除所选择的数据项?')
.then(() => {
this.deviceType.forEach((e, index) => {
if (e[2] === row.partId) {
this.deviceType.splice(index, 1)
this.propsKey++
}
})
this.equipmentList.forEach((item, index) => {
if (item.partId == row.partId) {
this.equipmentList.splice(index, 1)
}
})
})
.catch(() => {})
},
/** 导出按钮操作 */
handleExport() {
this.download('/material/part_arrived/exportDetails',{taskId:this.taskId},`配件新购到货详情_${new Date().getTime()}.xlsx`)
},
},
}
</script>
<style lang="scss">
.popper-select {
.el-cascader-panel .el-scrollbar .el-checkbox {
display: none;
}
.el-cascader-panel .el-scrollbar:nth-child(3) .el-checkbox {
display: block !important;
}
}
</style>