bug修复
This commit is contained in:
parent
615915a72c
commit
54c4bad8cb
|
|
@ -36,6 +36,33 @@ export function getLeaseList(query) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询费用推送审核维修列表
|
||||||
|
export function getRepairList(query) {
|
||||||
|
return request({
|
||||||
|
url: '/material/iws_cost_push/getRepairCostsByAgreementId',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询费用推送审核丢失列表
|
||||||
|
export function getLoseList(query) {
|
||||||
|
return request({
|
||||||
|
url: '/material/iws_cost_push/getLoseCostsByAgreementId',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询费用推送审核报废列表
|
||||||
|
export function getScrapList(query) {
|
||||||
|
return request({
|
||||||
|
url: '/material/iws_cost_push/getScrapCostsByAgreementId',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 查询费用结算审核列表
|
// 查询费用结算审核列表
|
||||||
export function getSltExamInfo(query) {
|
export function getSltExamInfo(query) {
|
||||||
|
|
|
||||||
|
|
@ -90,10 +90,16 @@
|
||||||
ref="multipleTable"
|
ref="multipleTable"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
@selection-change="handleSelectionChange"
|
@selection-change="handleSelectionChange"
|
||||||
|
:span-method="objectSpanMethod"
|
||||||
border
|
border
|
||||||
>
|
>
|
||||||
<el-table-column type="selection" width="55" align="center" :selectable="selectable"/>
|
<el-table-column type="selection" width="55" align="center" :selectable="selectable"/>
|
||||||
<el-table-column label="序号" align="center" width="80" type="index"/>
|
<el-table-column label="序号" align="center" width="80" type="index">
|
||||||
|
<template scope="scope">
|
||||||
|
<span style="background-color: #f8f8f9;text-align: center;" v-if="scope.$index==pushReviewList.length-1">合计费用:</span>
|
||||||
|
<span v-else>{{ scope.$index+1 }} </span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="协议号" align="center" prop="agreementCode" show-overflow-tooltip />
|
<el-table-column label="协议号" align="center" prop="agreementCode" show-overflow-tooltip />
|
||||||
<el-table-column label="单位名称" align="center" prop="unitName" show-overflow-tooltip />
|
<el-table-column label="单位名称" align="center" prop="unitName" show-overflow-tooltip />
|
||||||
<el-table-column label="工程名称" align="center" prop="projectName" show-overflow-tooltip />
|
<el-table-column label="工程名称" align="center" prop="projectName" show-overflow-tooltip />
|
||||||
|
|
@ -106,28 +112,40 @@
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="租赁费用" align="center" prop="leaseMoney" show-overflow-tooltip >
|
<el-table-column label="租赁费用" align="center" prop="leaseMoney" show-overflow-tooltip >
|
||||||
<template slot-scope="scope" >
|
<template slot-scope="scope" >
|
||||||
<span class="clickText" v-if="scope.row.leaseMoney" @click="openLease(scope.row)">
|
<span class="clickText" v-if="scope.row.leaseMoney!=null && scope.$index!=pushReviewList.length-1" @click="openLease(scope.row)">
|
||||||
|
{{scope.row.leaseMoney}}
|
||||||
|
</span>
|
||||||
|
<span v-if="scope.row.leaseMoney!=null && scope.$index==pushReviewList.length-1" >
|
||||||
{{scope.row.leaseMoney}}
|
{{scope.row.leaseMoney}}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="维修费用" align="center" prop="repairMoney" show-overflow-tooltip >
|
<el-table-column label="维修费用" align="center" prop="repairMoney" show-overflow-tooltip >
|
||||||
<template slot-scope="scope" >
|
<template slot-scope="scope" >
|
||||||
<span class="clickText" v-if="scope.row.repairMoney!=null" @click="openRepair(scope.row)">
|
<span class="clickText" v-if="scope.row.repairMoney!=null && scope.$index!=pushReviewList.length-1" @click="openRepair(scope.row)">
|
||||||
|
{{scope.row.repairMoney}}
|
||||||
|
</span>
|
||||||
|
<span v-if="scope.row.repairMoney!=null && scope.$index==pushReviewList.length-1" >
|
||||||
{{scope.row.repairMoney}}
|
{{scope.row.repairMoney}}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="报废费用" align="center" prop="scrapMoney" show-overflow-tooltip >
|
<el-table-column label="报废费用" align="center" prop="scrapMoney" show-overflow-tooltip >
|
||||||
<template slot-scope="scope" >
|
<template slot-scope="scope" >
|
||||||
<span class="clickText" v-if="scope.row.scrapMoney!=null" @click="openScrap(scope.row)">
|
<span class="clickText" v-if="scope.row.scrapMoney!=null && scope.$index!=pushReviewList.length-1" @click="openScrap(scope.row)">
|
||||||
|
{{scope.row.scrapMoney}}
|
||||||
|
</span>
|
||||||
|
<span v-if="scope.row.scrapMoney!=null && scope.$index==pushReviewList.length-1" >
|
||||||
{{scope.row.scrapMoney}}
|
{{scope.row.scrapMoney}}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="丢失费用" align="center" prop="lostMoney" show-overflow-tooltip >
|
<el-table-column label="丢失费用" align="center" prop="lostMoney" show-overflow-tooltip >
|
||||||
<template slot-scope="scope" >
|
<template slot-scope="scope" >
|
||||||
<span class="clickText" v-if="scope.row.lostMoney!=null" @click="openLose(scope.row)">
|
<span class="clickText" v-if="scope.row.lostMoney!=null && scope.$index!=pushReviewList.length-1" @click="openLose(scope.row)">
|
||||||
|
{{scope.row.lostMoney}}
|
||||||
|
</span>
|
||||||
|
<span v-if="scope.row.lostMoney!=null && scope.$index==pushReviewList.length-1" >
|
||||||
{{scope.row.lostMoney}}
|
{{scope.row.lostMoney}}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -145,14 +163,14 @@
|
||||||
<span v-if="scope.row.isSettlement==0" style="color: #f56c6c">未结算</span>
|
<span v-if="scope.row.isSettlement==0" style="color: #f56c6c">未结算</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="是否审核" align="center" prop="isReview" show-overflow-tooltip >
|
<el-table-column label="是否审核" align="center" prop="checkStatus" show-overflow-tooltip >
|
||||||
<template slot-scope="scope" >
|
<template slot-scope="scope" >
|
||||||
<span v-if="scope.row.isReview==1" style="color: #67c23a">已审核</span>
|
<span v-if="scope.row.checkStatus==1" style="color: #67c23a">已审核</span>
|
||||||
<span v-if="scope.row.isReview==0" style="color: #f56c6c">未审核</span>
|
<span v-if="scope.row.checkStatus==0" style="color: #f56c6c">未审核</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<div class="tabelFirstBottom">
|
<!-- <div class="tabelFirstBottom">
|
||||||
<div class="columnFirstNum">合计费用</div>
|
<div class="columnFirstNum">合计费用</div>
|
||||||
<div style="display: flex;width:58%">
|
<div style="display: flex;width:58%">
|
||||||
<div class="columnFirst">{{ leaseAll.toFixed(2) }}</div>
|
<div class="columnFirst">{{ leaseAll.toFixed(2) }}</div>
|
||||||
|
|
@ -162,7 +180,7 @@
|
||||||
<div class="columnFirst">{{ moneyAll.toFixed(2) }}</div>
|
<div class="columnFirst">{{ moneyAll.toFixed(2) }}</div>
|
||||||
<div class="columnFirstRight"></div>
|
<div class="columnFirstRight"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
<!-- 租赁费用弹窗-->
|
<!-- 租赁费用弹窗-->
|
||||||
<el-dialog :title="title" :visible.sync="showLease" width="1200px" append-to-body>
|
<el-dialog :title="title" :visible.sync="showLease" width="1200px" append-to-body>
|
||||||
|
|
@ -408,7 +426,7 @@ import {
|
||||||
getUnitList,
|
getUnitList,
|
||||||
getAgreementInfoById,
|
getAgreementInfoById,
|
||||||
} from '@/api/back/index.js'
|
} from '@/api/back/index.js'
|
||||||
import {getPushReviewList,getLeaseList } from "@/api/costPush/costPush";
|
import {getPushReviewList,getLeaseList,getRepairList,getLoseList,getScrapList } from "@/api/costPush/costPush";
|
||||||
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";
|
||||||
export default {
|
export default {
|
||||||
|
|
@ -608,7 +626,7 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
/** 查询岗位列表 */
|
/** 查询列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
console.log(this.queryParams.month)
|
console.log(this.queryParams.month)
|
||||||
|
|
@ -624,6 +642,14 @@ export default {
|
||||||
})
|
})
|
||||||
this.moneyAll = this.leaseAll + this.repairAll + this.scrapAll + this.loseAll;
|
this.moneyAll = this.leaseAll + this.repairAll + this.scrapAll + this.loseAll;
|
||||||
}
|
}
|
||||||
|
let obj = {
|
||||||
|
leaseMoney: this.leaseAll,
|
||||||
|
repairMoney: this.repairAll,
|
||||||
|
scrapMoney: this.scrapAll,
|
||||||
|
loseMoney: this.loseAll,
|
||||||
|
money: this.moneyAll,
|
||||||
|
}
|
||||||
|
this.pushReviewList.push(obj)
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -716,16 +742,16 @@ export default {
|
||||||
this.dialogRepair.typeName = ""
|
this.dialogRepair.typeName = ""
|
||||||
this.dialogRepair.modelName = ""
|
this.dialogRepair.modelName = ""
|
||||||
this.dialogRepair.id = row.id;
|
this.dialogRepair.id = row.id;
|
||||||
// this.getRepairList()
|
this.getRepairList()
|
||||||
},
|
},
|
||||||
//查询维修费用
|
//查询维修费用
|
||||||
getRepairList() {
|
getRepairList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
// getRepairList(this.dialogRepaire).then((response) => {
|
getRepairList(this.dialogRepaire).then((response) => {
|
||||||
// this.dialogRepairList = response.rows;
|
this.dialogRepairList = response.rows;
|
||||||
// this.dialogRepairTotal = response.total;
|
this.dialogRepairTotal = response.total;
|
||||||
// this.loading = false;
|
this.loading = false;
|
||||||
// });
|
});
|
||||||
},
|
},
|
||||||
handleQueryRepair() {
|
handleQueryRepair() {
|
||||||
this.getRepairList()
|
this.getRepairList()
|
||||||
|
|
@ -748,16 +774,16 @@ export default {
|
||||||
this.dialogScrap.typeName = ""
|
this.dialogScrap.typeName = ""
|
||||||
this.dialogScrap.modelName = ""
|
this.dialogScrap.modelName = ""
|
||||||
this.dialogScrap.id = row.id;
|
this.dialogScrap.id = row.id;
|
||||||
// this.getScrapList()
|
this.getScrapList()
|
||||||
},
|
},
|
||||||
//查询报废费用
|
//查询报废费用
|
||||||
getScrapList() {
|
getScrapList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
// getScrapList(this.dialogScrap).then((response) => {
|
getScrapList(this.dialogScrap).then((response) => {
|
||||||
// this.dialogScrapList = response.rows;
|
this.dialogScrapList = response.rows;
|
||||||
// this.dialogScrapTotal = response.total;
|
this.dialogScrapTotal = response.total;
|
||||||
// this.loading = false;
|
this.loading = false;
|
||||||
// });
|
});
|
||||||
},
|
},
|
||||||
handleQueryScrap() {
|
handleQueryScrap() {
|
||||||
this.getScrapList()
|
this.getScrapList()
|
||||||
|
|
@ -780,16 +806,16 @@ export default {
|
||||||
this.dialogLose.typeName = ""
|
this.dialogLose.typeName = ""
|
||||||
this.dialogLose.modelName = ""
|
this.dialogLose.modelName = ""
|
||||||
this.dialogLose.id = row.id;
|
this.dialogLose.id = row.id;
|
||||||
// this.getLoseList()
|
this.getLoseList()
|
||||||
},
|
},
|
||||||
//查询丢失费用
|
//查询丢失费用
|
||||||
getLoseList() {
|
getLoseList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
// getLoseList(this.dialogLose).then((response) => {
|
getLoseList(this.dialogLose).then((response) => {
|
||||||
// this.dialogLoseList = response.rows;
|
this.dialogLoseList = response.rows;
|
||||||
// this.dialogLoseTotal = response.total;
|
this.dialogLoseTotal = response.total;
|
||||||
// this.loading = false;
|
this.loading = false;
|
||||||
// });
|
});
|
||||||
},
|
},
|
||||||
handleQueryLose() {
|
handleQueryLose() {
|
||||||
this.getLoseList()
|
this.getLoseList()
|
||||||
|
|
@ -805,13 +831,13 @@ export default {
|
||||||
},
|
},
|
||||||
/** 外层导出 */
|
/** 外层导出 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
// this.download(
|
this.download(
|
||||||
// 'material/complex_query/exportOutRecord',
|
'material/iws_cost_push/exportCostPushExamList',
|
||||||
// {
|
{
|
||||||
// ...this.queryParams,
|
...this.queryParams,
|
||||||
// },
|
},
|
||||||
// `费用推送审核记录_${new Date().getTime()}.xlsx`,
|
`费用推送审核记录_${new Date().getTime()}.xlsx`,
|
||||||
// )
|
)
|
||||||
},
|
},
|
||||||
|
|
||||||
/** 提交 */
|
/** 提交 */
|
||||||
|
|
@ -840,7 +866,27 @@ export default {
|
||||||
// })
|
// })
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
.catch(() => {})
|
||||||
}
|
},
|
||||||
|
|
||||||
|
// 合并单元格 rowIndex=行数 columnIndex=列数
|
||||||
|
// 这里是合并table的除表头外的第一行的第二列 + 除表头外的第二行的第二列
|
||||||
|
// 注意列数和行数从 0 开始
|
||||||
|
objectSpanMethod ({ row, column, rowIndex, columnIndex }) {
|
||||||
|
if (rowIndex === this.pushReviewList.length-1 && columnIndex == 1) {
|
||||||
|
let rowspan = 2
|
||||||
|
let colspan = 6
|
||||||
|
return { rowspan, colspan }
|
||||||
|
}
|
||||||
|
// 解决偏移的重要代码
|
||||||
|
// 重点在 else if 判断必须加因为合并单元格数据会出现偏移、
|
||||||
|
// 否则如果是 第二行 的 第二列 那么隐藏原有第二行 的 第二列的数据使他隐藏
|
||||||
|
else if (rowIndex === this.pushReviewList.length-1 && columnIndex < 6) {
|
||||||
|
return {
|
||||||
|
rowspan: 0,
|
||||||
|
colspan: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -154,6 +154,43 @@
|
||||||
rows="2"
|
rows="2"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="委托书" prop="fileFbs" v-if="isFileFbs">
|
||||||
|
<el-upload
|
||||||
|
action="#"
|
||||||
|
:file-list="businessLicenseListTemp"
|
||||||
|
:show-file-list="true"
|
||||||
|
:auto-upload="false"
|
||||||
|
:key="uploadKey"
|
||||||
|
list-type="picture-card"
|
||||||
|
accept=".png, .jpg, .jpeg, .pdf"
|
||||||
|
:on-change="handleChangeBusinessList"
|
||||||
|
:class="{ disabledFbs: uploadDisabled }"
|
||||||
|
:on-preview="picturePreviewFbs"
|
||||||
|
:on-remove="handleRemoveElectricianImgList"
|
||||||
|
>
|
||||||
|
|
||||||
|
<!-- 文件格式下载,图片格式预览 -->
|
||||||
|
<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 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-form>
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
|
|
@ -232,6 +269,11 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
|
<!-- 图片查看弹窗 -->
|
||||||
|
<el-dialog :visible.sync="dialogVisible" width="600px" height="600px">
|
||||||
|
<img width="100%" height="500px" :src="dialogImageUrl"/>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -253,7 +295,7 @@ import {
|
||||||
uploadPurchaseFile,
|
uploadPurchaseFile,
|
||||||
getPurchaseFileList,
|
getPurchaseFileList,
|
||||||
} from "@/api/purchase/goodsAccept";
|
} from "@/api/purchase/goodsAccept";
|
||||||
|
import {downloadFile, downloadFileData} from '@/utils/download'
|
||||||
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'
|
||||||
|
|
||||||
|
|
@ -370,6 +412,13 @@ export default {
|
||||||
trigger: "blur",
|
trigger: "blur",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
fileFbs: [
|
||||||
|
{
|
||||||
|
required: false,//是否分包商(是:合同编号必填)
|
||||||
|
message: '请上传委托书',
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
],
|
||||||
// purchaser: [
|
// purchaser: [
|
||||||
// { required: true, message: "采购员不能为空", trigger: "blur" }
|
// { required: true, message: "采购员不能为空", trigger: "blur" }
|
||||||
// ]
|
// ]
|
||||||
|
|
@ -404,9 +453,30 @@ export default {
|
||||||
matchedOptions: [], // 匹配的选项
|
matchedOptions: [], // 匹配的选项
|
||||||
keepSelectOpen: false, // 控制下拉框是否保持打开
|
keepSelectOpen: false, // 控制下拉框是否保持打开
|
||||||
isSearching: false, // 添加搜索状态标记
|
isSearching: false, // 添加搜索状态标记
|
||||||
|
|
||||||
|
//是否是分包商
|
||||||
|
isFileFbs:false,
|
||||||
|
businessLicenseListTemp: [],
|
||||||
|
urlTemp: '',
|
||||||
|
delBusinessFileIdList: [],
|
||||||
|
//图片查看弹窗
|
||||||
|
dialogImageUrl: '',
|
||||||
|
dialogVisible: false,
|
||||||
|
uploadKey: Date.now(),
|
||||||
|
//上传
|
||||||
|
upload: {
|
||||||
|
// 设置上传的请求头部
|
||||||
|
headers: {Authorization: 'Bearer ' + getToken()},
|
||||||
|
// 上传的地址
|
||||||
|
url: process.env.VUE_APP_BASE_API + '/file/upload'
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
//图片上传1张后,隐藏上传框
|
||||||
|
uploadDisabled() {
|
||||||
|
return this.businessLicenseListTemp.length > 4
|
||||||
|
},
|
||||||
pickerOptions() {
|
pickerOptions() {
|
||||||
return {
|
return {
|
||||||
disabledDate(time) {
|
disabledDate(time) {
|
||||||
|
|
@ -449,6 +519,13 @@ export default {
|
||||||
// } else if (val && val.length == 0) {
|
// } else if (val && val.length == 0) {
|
||||||
// this.maForm.unitId = "";
|
// this.maForm.unitId = "";
|
||||||
// }
|
// }
|
||||||
|
if(val.typeKey=='fbs'){
|
||||||
|
this.isFileFbs=true;
|
||||||
|
this.rules['fileFbs'][0].required=true;
|
||||||
|
}else{
|
||||||
|
this.isFileFbs=false;
|
||||||
|
this.rules['fileFbs'][0].required=false;
|
||||||
|
}
|
||||||
setTimeout(()=>{
|
setTimeout(()=>{
|
||||||
getListProject({ unitId: this.maForm.unitId }).then((response) => {
|
getListProject({ unitId: this.maForm.unitId }).then((response) => {
|
||||||
this.projectList = response.data;
|
this.projectList = response.data;
|
||||||
|
|
@ -648,6 +725,10 @@ export default {
|
||||||
// console.log(this.equipmentList)
|
// console.log(this.equipmentList)
|
||||||
console.log("maForm", this.maForm);
|
console.log("maForm", this.maForm);
|
||||||
if (this.equipmentList.length > 0) {
|
if (this.equipmentList.length > 0) {
|
||||||
|
if(this.businessLicenseListTemp.length > 0){
|
||||||
|
console.log(33333333333333333333333333333333333)
|
||||||
|
this.$refs["maForm"].clearValidate('fileFbs');
|
||||||
|
}
|
||||||
this.$refs["maForm"].validate(async (valid) => {
|
this.$refs["maForm"].validate(async (valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
for(let i = 0;i<this.equipmentList.length;i++){
|
for(let i = 0;i<this.equipmentList.length;i++){
|
||||||
|
|
@ -831,6 +912,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
//图片查看
|
//图片查看
|
||||||
picturePreview(file) {
|
picturePreview(file) {
|
||||||
this.dialogImageUrl = file.url;
|
this.dialogImageUrl = file.url;
|
||||||
|
|
@ -864,6 +946,132 @@ export default {
|
||||||
`新购到货详情_${new Date().getTime()}.xlsx`
|
`新购到货详情_${new Date().getTime()}.xlsx`
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
//委托书文件
|
||||||
|
handleChangeBusinessList(file, fileList) {
|
||||||
|
const fileListTemp = fileList.filter(item => {
|
||||||
|
return item.uid != file.uid
|
||||||
|
});
|
||||||
|
const parts = file.name.split('.');
|
||||||
|
const extension = parts.pop();
|
||||||
|
if (fileList.length > 5) {
|
||||||
|
this.$message.warning('最多上传5张附件')
|
||||||
|
fileList = fileList.filter(item => {
|
||||||
|
return item.uid != file.uid
|
||||||
|
})
|
||||||
|
} else if (!(extension === 'pdf' || extension === 'png' || extension === 'jpg' || extension === 'jpeg')) {
|
||||||
|
this.$message.warning('文件格式不正确')
|
||||||
|
fileList = fileList.filter(item => {
|
||||||
|
return item.uid != file.uid
|
||||||
|
})
|
||||||
|
} else if (file.size > 1024 * 1024 * 10) {
|
||||||
|
this.$message.warning('文件大小不能超过10Mb')
|
||||||
|
fileList = fileList.filter(item => {
|
||||||
|
return item.uid != file.uid
|
||||||
|
})
|
||||||
|
} else if (file.name.length > 40) {
|
||||||
|
this.$message.warning('文件名长度不能超过40个字符')
|
||||||
|
fileList = fileList.filter(item => {
|
||||||
|
return item.uid != file.uid
|
||||||
|
})
|
||||||
|
} else if (fileListTemp.some(item => item.name === file.name)) {
|
||||||
|
this.$message.warning('文件名重复')
|
||||||
|
fileList = fileList.filter(item => {
|
||||||
|
return item.uid != file.uid
|
||||||
|
})
|
||||||
|
}
|
||||||
|
fileList.forEach(file => {
|
||||||
|
if (extension === 'pdf') {
|
||||||
|
this.urlTemp = require('../../../../../assets/file.png');
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.businessLicenseListTemp = fileList;
|
||||||
|
// // 根据 businessLicenseListTemp 是否有值来控制 fileFbs 的验证
|
||||||
|
// if (this.businessLicenseListTemp.length > 0) {
|
||||||
|
// // this.maForm.fileFbs = fileList.map(item => item.raw); // 假设需要上传文件对象;
|
||||||
|
// // 有值,手动标记验证通过
|
||||||
|
// console.log('222222222222222')
|
||||||
|
// this.$refs.maForm.clearValidate('fileFbs');
|
||||||
|
// } else {
|
||||||
|
// // maForm.fileFbs = false;
|
||||||
|
// console.log('33333333')
|
||||||
|
// // 无值,手动触发验证失败
|
||||||
|
// this.$refs.maForm.validateField('fileFbs');
|
||||||
|
// }
|
||||||
|
|
||||||
|
console.log('4444444444')
|
||||||
|
},
|
||||||
|
|
||||||
|
isImage(file) {
|
||||||
|
this.urlTemp = require('@/assets/file.png');
|
||||||
|
if (this.updataIf(file)) {
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 判断文件类型,图片预览,文件下载
|
||||||
|
updataIf(e) {
|
||||||
|
if (e.fileName) {
|
||||||
|
const parts = e.fileName.split('.');
|
||||||
|
const extension = parts.pop();
|
||||||
|
if (extension === 'png' || extension === 'jpeg' || extension === 'jpg') {
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const parts = e.name.split('.');
|
||||||
|
const extension = parts.pop();
|
||||||
|
if (extension === 'png' || extension === 'jpeg' || extension === 'jpg') {
|
||||||
|
return false
|
||||||
|
} else {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
//上传组件-图片查看
|
||||||
|
picturePreviewFbs(file) {
|
||||||
|
this.dialogImageUrl = file.url.replaceAll('#','%23');
|
||||||
|
const parts = file.name.split('.');
|
||||||
|
const extension = parts.pop();
|
||||||
|
if (extension === 'pdf') {
|
||||||
|
const windowName = file.name;
|
||||||
|
window.open(file.url, windowName)
|
||||||
|
} else {
|
||||||
|
this.dialogVisible = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
//上传组件-图片删除
|
||||||
|
handleRemoveElectricianImgList(file, fileList) {
|
||||||
|
let sum = 0
|
||||||
|
this.businessLicenseListTemp.forEach((item, index) => {
|
||||||
|
if (item.uid == file.uid) {
|
||||||
|
sum = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.businessLicenseListTemp.splice(sum, 1)
|
||||||
|
if (file.status == 'success') {
|
||||||
|
this.delBusinessFileIdList.push(file.url);
|
||||||
|
}
|
||||||
|
console.log('delBusinessFileIdList', this.delBusinessFileIdList)
|
||||||
|
},
|
||||||
|
|
||||||
|
handleDownload(file) {
|
||||||
|
console.log(file)
|
||||||
|
if (file.status === 'ready') {
|
||||||
|
downloadFile({fileName: file.name, fileData: file.raw, fileType: 'application/vnd.ms-excel;charset=utf-8'})
|
||||||
|
} else if (file.status === 'success') {
|
||||||
|
|
||||||
|
downloadFileData({fileName: file.name, fileUrl: file.url})
|
||||||
|
// downloadFileData({ fileName: file.name,fileUrl:file.url })
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// 高亮文本
|
// 高亮文本
|
||||||
highlightText(text, keyword) {
|
highlightText(text, keyword) {
|
||||||
if (!keyword) return text;
|
if (!keyword) return text;
|
||||||
|
|
@ -948,7 +1156,21 @@ export default {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
|
//隐藏图片上传框的css
|
||||||
|
::v-deep.disabledFbs {
|
||||||
|
.el-upload--picture-card {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::v-deep .el-upload-list__item {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
overflow: unset !important;
|
||||||
|
}
|
||||||
|
::v-deep .el-upload-list__item-actions {
|
||||||
|
overflow: unset !important;
|
||||||
|
}
|
||||||
|
|
||||||
.popper-select {
|
.popper-select {
|
||||||
.el-cascader-panel .el-scrollbar .el-checkbox {
|
.el-cascader-panel .el-scrollbar .el-checkbox {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
@ -1029,4 +1251,56 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.el-upload-list__item-thumbnail {
|
||||||
|
height: 145px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.picture-card-container {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.picture-card {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
// border: 1px solid #ddd;
|
||||||
|
// border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.file-name {
|
||||||
|
width: 90%;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
position: absolute;
|
||||||
|
bottom: -35px;
|
||||||
|
margin-top: 8px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #333;
|
||||||
|
z-index: 999999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.file-overlay {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -159,11 +159,11 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="info" style="margin-top: 10px; display: flex; align-items: center;">
|
<div class="info" style="margin-top: 10px; display: flex; align-items: center;">
|
||||||
<div class="item"
|
<div class="item"
|
||||||
style="width: 50%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
|
style="width: 60%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
|
||||||
<span>领用工程:</span>
|
<span>领用工程:</span>
|
||||||
{{ checkDataInfo.leaseProject }}
|
{{ checkDataInfo.leaseProject }}
|
||||||
</div>
|
</div>
|
||||||
<div class="item" style="width: 50%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
|
<div class="item" style="width: 40%;flex-shrink: 0;margin-bottom: 5px;font-size: 14px;">
|
||||||
<span>使用单位:</span>
|
<span>使用单位:</span>
|
||||||
{{ checkDataInfo.leaseUnit }}
|
{{ checkDataInfo.leaseUnit }}
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -189,7 +189,7 @@
|
||||||
<span>检验单位:</span>
|
<span>检验单位:</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<canvas id="canvas" width="165" height="165" style="position: absolute; top: 50%; left: 90%; transform: translate(-100%, -50%);"></canvas>
|
<canvas id="canvas" width="165" height="165" style="position: absolute; top: 50%; left: 90%; transform: translate(-100%, -50%); z-index: 9999;"></canvas>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -517,7 +517,7 @@ export default {
|
||||||
|
|
||||||
this.printTableData = res.data.leaseOutVoList;
|
this.printTableData = res.data.leaseOutVoList;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.chapter('检验专用章', '机具设备分公司')
|
this.chapter('机具检验专用章', '安徽送边电工程有限公司机具(物流)分公司')
|
||||||
}, 500);
|
}, 500);
|
||||||
this.openPrint = true;
|
this.openPrint = true;
|
||||||
this.title = "出库检验单";
|
this.title = "出库检验单";
|
||||||
|
|
@ -663,16 +663,16 @@ export default {
|
||||||
this.create5star(context, width, height, 20, "#f00", 0);
|
this.create5star(context, width, height, 20, "#f00", 0);
|
||||||
|
|
||||||
// 绘制印章名称
|
// 绘制印章名称
|
||||||
context.font = "18px 宋体";
|
context.font = "100 13px 宋体";
|
||||||
context.textBaseline = "middle"; //设置文本的垂直对齐方式
|
context.textBaseline = "middle"; //设置文本的垂直对齐方式
|
||||||
context.textAlign = "center"; //设置文本的水平对对齐方式
|
context.textAlign = "center"; //设置文本的水平对对齐方式
|
||||||
context.lineWidth = 1;
|
context.lineWidth = 0.7;
|
||||||
context.strokeStyle = "#ff2f2f";
|
context.strokeStyle = "#ff2323";
|
||||||
context.strokeText(text, width, height + 50);
|
context.strokeText(text, width, height + 50);
|
||||||
|
|
||||||
// 绘制印章单位
|
// 绘制印章单位
|
||||||
context.translate(width, height); // 平移到此位置,
|
context.translate(width, height); // 平移到此位置,
|
||||||
context.font = "16px 宋体";
|
context.font = "100 13px 宋体";
|
||||||
let count = companyName.length; // 字数
|
let count = companyName.length; // 字数
|
||||||
let angle = (4 * Math.PI) / (3 * (count - 1)); // 字间角度
|
let angle = (4 * Math.PI) / (3 * (count - 1)); // 字间角度
|
||||||
let chars = companyName.split("");
|
let chars = companyName.split("");
|
||||||
|
|
@ -688,7 +688,7 @@ export default {
|
||||||
context.save();
|
context.save();
|
||||||
context.translate(65, 0); // 平移到此位置,此时字和x轴垂直,公司名称和最外圈的距离
|
context.translate(65, 0); // 平移到此位置,此时字和x轴垂直,公司名称和最外圈的距离
|
||||||
context.rotate(Math.PI / 2); // 旋转90度,让字平行于x轴
|
context.rotate(Math.PI / 2); // 旋转90度,让字平行于x轴
|
||||||
context.strokeStyle = "#ff5050"; // 设置印章单位字体颜色为较浅的红色
|
context.strokeStyle = "#ff2323"; // 设置印章单位字体颜色为较浅的红色
|
||||||
context.strokeText(c, 0, 0); // 此点为字的中心点
|
context.strokeText(c, 0, 0); // 此点为字的中心点
|
||||||
context.restore();
|
context.restore();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -269,7 +269,7 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-form-item label="附件">
|
<el-form-item label="附件">
|
||||||
<el-upload
|
<el-upload
|
||||||
class="upload-demo"
|
|
||||||
action="#"
|
action="#"
|
||||||
:file-list="businessLicenseListTemp"
|
:file-list="businessLicenseListTemp"
|
||||||
:show-file-list="true"
|
:show-file-list="true"
|
||||||
|
|
@ -285,7 +285,7 @@
|
||||||
>
|
>
|
||||||
|
|
||||||
<!-- 文件格式下载,图片格式预览 -->
|
<!-- 文件格式下载,图片格式预览 -->
|
||||||
<div slot="file" slot-scope="{file}">
|
<div slot="file" slot-scope="{file}" >
|
||||||
<img v-if="isImage(file)" class="el-upload-list__item-thumbnail" :src="file.url" alt="">
|
<img v-if="isImage(file)" class="el-upload-list__item-thumbnail" :src="file.url" alt="">
|
||||||
<div v-else class="picture-card-container">
|
<div v-else class="picture-card-container">
|
||||||
<img class="picture-card" :src="urlTemp" alt="">
|
<img class="picture-card" :src="urlTemp" alt="">
|
||||||
|
|
@ -303,7 +303,6 @@
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<i class="el-icon-plus avatar-uploader-icon"></i>
|
<i class="el-icon-plus avatar-uploader-icon"></i>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -608,7 +607,7 @@ export default {
|
||||||
|
|
||||||
//图片上传1张后,隐藏上传框
|
//图片上传1张后,隐藏上传框
|
||||||
uploadDisabled() {
|
uploadDisabled() {
|
||||||
return this.businessLicenseListTemp.length > 2
|
return this.businessLicenseListTemp.length > 9
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
@ -721,8 +720,8 @@ export default {
|
||||||
});
|
});
|
||||||
const parts = file.name.split('.');
|
const parts = file.name.split('.');
|
||||||
const extension = parts.pop();
|
const extension = parts.pop();
|
||||||
if (fileList.length > 3) {
|
if (fileList.length > 10) {
|
||||||
this.$message.warning('最多上传3张附件')
|
this.$message.warning('最多上传10张附件')
|
||||||
fileList = fileList.filter(item => {
|
fileList = fileList.filter(item => {
|
||||||
return item.uid != file.uid
|
return item.uid != file.uid
|
||||||
})
|
})
|
||||||
|
|
@ -1212,9 +1211,10 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-upload-list--picture-card {
|
// ::v-deep .el-upload-list--picture-card {
|
||||||
display: flex;
|
// display: flex;
|
||||||
}
|
// flex-wrap: wrap;
|
||||||
|
// }
|
||||||
|
|
||||||
::v-deep .el-upload-list__item {
|
::v-deep .el-upload-list__item {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
|
@ -1224,9 +1224,14 @@ export default {
|
||||||
::v-deep .el-upload-list__item-actions {
|
::v-deep .el-upload-list__item-actions {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
.el-upload--picture-card {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
.upload-demo {
|
.upload-demo {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-upload-list__item-thumbnail {
|
.el-upload-list__item-thumbnail {
|
||||||
|
|
|
||||||
|
|
@ -838,7 +838,7 @@ export default {
|
||||||
computed: {
|
computed: {
|
||||||
//图片上传1张后,隐藏上传框
|
//图片上传1张后,隐藏上传框
|
||||||
uploadDisabled() {
|
uploadDisabled() {
|
||||||
return this.fileList.length > 2;
|
return this.fileList.length > 4;
|
||||||
},
|
},
|
||||||
...mapState(["user"]),
|
...mapState(["user"]),
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue