123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540 |
- <template>
- <div>
- <div class="sty">
- <el-page-header content="申请退押" @back="goBack" />
- </div>
- <el-divider />
- <h3>工程项目信息</h3>
- <el-divider />
- <div class="diy-table-1">
- <el-form ref="form" :model="details">
- <el-row :gutter="0">
- <el-col :xs="12" :sm="8" :lg="8" class="item">
- <div class="label">工程登录编码</div>
- <div class="value">{{ details.refEnginRecordNo }}</div>
- </el-col>
- <el-col :xs="12" :sm="8" :lg="8" class="item">
- <div class="label">工程名称(项目名称)</div>
- <div class="value">{{ details.refProjectName }}</div>
- </el-col>
- <el-col :xs="12" :sm="8" :lg="8" class="item">
- <div class="label">工程编号</div>
- <div class="value">{{ details.refProjectNo }}</div>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="8" class="item">
- <div class="label">经销商名称</div>
- <div class="value">{{ details.customerName }}</div>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="8" class="item">
- <div class="label">经销商编码</div>
- <div class="value">{{ details.customerId }}</div>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="8" class="item">
- <div class="label">工程登录类型</div>
- <div class="value">{{ details.refPromiseStatus }}</div>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="8" class="item">
- <div class="label">联系人</div>
- <div class="value">{{ details.refLinkman }}</div>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="8" class="item">
- <div class="label">固定电话</div>
- <div class="value">{{ details.refTel }}</div>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="8" class="item">
- <div class="label">厂工程编码</div>
- <div class="value">
- <el-form-item prop="refFactoryNo">
- <el-input
- v-model="details.refFactoryNo"
- placeholder="厂工程编码"
- size="small"
- />
- </el-form-item>
- </div>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="16" class="item">
- <div class="label">移动电话</div>
- <div class="value">{{ details.refPhone }}</div>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="8" class="item">
- <div class="label">押金总额</div>
- <div class="value">{{ details.depositAmount }}</div>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="8" class="item">
- <div class="label">工程差价总额</div>
- <div class="value">{{ details.depositDiffAmount }}</div>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="8" class="item">
- <div class="label">使用单位</div>
- <div class="value">{{ details.refUseUnit }}</div>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="8" class="item">
- <div class="label" />
- <div class="value" />
- </el-col>
- <el-col :xs="24" :sm="24" :lg="24" class="item">
- <div class="label">安装时间</div>
- <div class="value" style="padding: 0">
- <el-form-item prop="installDate">
- <el-date-picker
- v-model="details.installDate"
- type="datetime"
- placeholder="安装时间"
- default-time="00:00:00"
- value-format="yyyy-MM-dd HH:mm:ss"
- />
- </el-form-item>
- </div>
- </el-col>
- <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
- <div class="label">寄厂日期</div>
- <div class="value" style="padding: 0">
- <el-form-item prop="sendFactoryDate">
- <el-date-picker
- v-model="details.sendFactoryDate"
- type="datetime"
- placeholder="寄厂日期"
- default-time="00:00:00"
- value-format="yyyy-MM-dd HH:mm:ss"
- >
- </el-date-picker>
- </el-form-item>
- </div>
- </el-col> -->
- </el-row>
- </el-form>
- </div>
- <h3>货品信息</h3>
- <el-divider />
- <!-- 列表 -->
- <div class="mymain-container">
- <div class="table">
- <el-table
- v-loading="listLoading"
- :data="details.items"
- element-loading-text="Loading"
- border
- fit
- show-summary
- highlight-current-row
- stripe
- show-summary
- :summary-method="$getSummaries"
- >
- <el-table-column
- align="center"
- label="物料编码"
- prop="materialNumber"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="产品编码"
- prop="materialOldNumber"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="产品名称"
- prop="materialName"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="规格型号"
- prop="specification"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="单价"
- prop="price"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="数量"
- prop="qty"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="金额"
- prop="totalAmount"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="发货数量"
- prop="hasSendQty"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="押金金额"
- prop="depositAmount"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="上交资料"
- prop="dataQty"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="收差全额"
- prop="diffAmount"
- min-width="160"
- show-overflow-tooltip
- />
- </el-table>
- </div>
- </div>
- <h3>上传资料</h3>
- <el-divider />
- <!-- 筛选条件 -->
- <div>
- <el-form
- ref="form"
- :model="details"
- label-width="100px"
- size="small"
- label-position="left"
- >
- <el-row :gutter="20">
- <el-col :xs="24" :sm="12" :lg="24">
- <el-form-item label="工程验收资料" prop="">
- <imageUpload :file-list="fileList" :multiple="true" :start-restricting="true" :restrict-filename="restrictFilename" />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="24">
- <!-- 列表 -->
- <div class="mymain-container">
- <div class="table">
- <el-table
- v-loading="listLoading"
- :data="details.dataList"
- element-loading-text="Loading"
- border
- fit
- highlight-current-row
- stripe
- >
- <el-table-column
- align="center"
- label="资料描述"
- prop="dataDescribe"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="原文件名"
- prop="fileName"
- min-width="160"
- show-overflow-tooltip
- />
- <el-table-column
- align="center"
- label="缩略图"
- prop="fileUrl"
- min-width="160"
- show-overflow-tooltip
- >
- <template slot-scope="scope">
- <el-image
- v-if="checkFileType(scope.row.fileUrl) == 'image'"
- ref="img"
- :src="imageURL + scope.row.fileUrl"
- style="width: 120px; height: 120px"
- fit="cover"
- :preview-src-list="[imageURL + scope.row.fileUrl]"
- />
- <img
- v-if="checkFileType(scope.row.fileUrl) == 'word'"
- class="file"
- src="@/assets/common/word.png"
- >
- <img
- v-if="checkFileType(scope.row.fileUrl) == 'excel'"
- class="file"
- src="@/assets/common/excel.png"
- >
- <img
- v-if="checkFileType(scope.row.fileUrl) == 'ppt'"
- class="file"
- src="@/assets/common/ppt.png"
- >
- <img
- v-if="checkFileType(scope.row.fileUrl) == 'pdf'"
- class="file"
- style="cursor: pointer;"
- src="@/assets/common/pdf.png"
- @click="openPdf(scope.row.fileUrl)"
- >
- <img
- v-if="checkFileType(scope.row.fileUrl) == 'file'"
- class="file aaa"
- src="@/assets/common/zip.jpeg"
- >
- </template>
- </el-table-column>
- <el-table-column
- align="center"
- label="下载文件名称"
- prop="fileName"
- min-width="160"
- show-overflow-tooltip
- >
- <template slot-scope="scope">
- {{ "资料_" + scope.row.fileName }}
- </template>
- </el-table-column>
- <el-table-column
- align="center"
- label="操作"
- min-width="160"
- show-overflow-tooltip
- >
- <template slot-scope="scope">
- <el-button
- type="text"
- class="textColor"
- @click="downLoadFn(scope.row.fileUrl,scope.row.fileName)"
- >下载</el-button>
- <el-popconfirm
- style="margin-left: 10px"
- title="这是一段内容确定删除吗?"
- @onConfirm="delFile(scope.$index)"
- >
- <el-button type="text" slot="reference">删除</el-button>
- </el-popconfirm>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </div>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6">
- <el-form-item label="申请人" prop="submitBy">
- <el-input
- v-model="details.submitName"
- readonly
- placeholder="请输入"
- />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6">
- <el-form-item label="申请日期" prop="submitTime">
- <el-date-picker
- v-model="details.submitTime"
- readonly
- class="dateStyle"
- type="datetime"
- placeholder="选择日期"
- default-time="00:00:00"
- value-format="yyyy-MM-dd HH:mm:ss"
- />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="18">
- <el-form-item label="申请退押" prop="applyNote">
- <el-input
- v-model="details.applyNote"
- type="textarea"
- placeholder="请输入"
- class="textareaStyle"
- />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :lg="24">
- <el-form-item label="">
- <el-button
- type="primary"
- size="small"
- @click="handleSvse"
- >保存</el-button>
- <el-button
- type="primary"
- size="small"
- @click="handleReset"
- >重置</el-button>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- </div>
- </div>
- </template>
- <script>
- import { applyDeposit, geDetail } from '@/api/engin_deposit.js'
- import imageUpload from '@/components/Common/image-upload.vue'
- import { downloadFiles, downloadPdf } from '@/utils/util'
- import { getFileUrl } from '@/api/common'
- export default {
- components: {
- imageUpload
- },
- data() {
- return {
- isDis: true,
- listLoading: false,
- baseURL: process.env.VUE_APP_BASE_API,
- fileList: [],
- details: {},
- restrictFilename: [
- '结算单', '合同', '明细表', '审核表', '收据', '发票', '照片'
- ]
- }
- },
- created() {
- geDetail({ id: this.$parent.depositManageId }).then((res) => {
- this.details = res.data
- res.data.items.forEach((item) => {
- // item.number = (item.qty*100 - item.directTransferQty*100 - item.retiredQty*100) / 100;
- item.sums1 = ['hasSendQty', 'dataQty', 'qty']
- item.sums2 = ['totalAmount', 'diffAmount', 'price']
- })
- })
- },
- methods: {
- goBack() {
- this.$parent.showPage = 1
- },
- handleSvse() {
- if (!this.details.installDate) {
- this.$errorMsg('请选择安装时间')
- return
- }
- this.fileList.forEach((el) => {
- console.log(this.details.dataList.length)
- if (this.details.dataList.length){
- this.details.dataList.forEach((i,e)=>{
- console.log(i.fileName==el.name)
- if (el.name === i.fileName){
- this.details.dataList.splice(e,1)
- }
- })
- }
- this.details.dataList.push({
- dataDescribe: el.name,
- enginOrderNo: this.details.refProjectNo,
- fileName: el.name,
- fileUrl: el.url
- })
- })
- applyDeposit(this.details).then((res) => {
- this.$successMsg('申请成功')
- this.$parent.showPage = 1
- this.$parent.deduction = ''
- this.$parent.getList()
- })
- },
- delFile(index){
- this.details.dataList.splice(index,1)
- this.$successMsg('删除成功')
- },
- handleReset() {
- this.$refs.form.resetFields()
- },
- // 批量下载
- async batchDownloadFn() {
- downloadFiles('/deposit-manage/downZip', { parentId: this.$parent.depositManageId })
- },
- // 下载
- downLoadFn(v, fileName) {
- if (this.checkFileType(v) === 'pdf') {
- downloadPdf(this.$imageUrl + v, fileName)
- return
- }
- getFileUrl({ key: v }).then((res) => {
- window.open(res.data)
- })
- },
- openPdf(pdfUrl) {
- window.open(this.$imageUrl + pdfUrl)
- },
- // 检查文件类型
- checkFileType(url) {
- if (!url) return ''
- const fileSuffix = url.substring(url.lastIndexOf('.') + 1)
- if (['jpg', 'jpeg', 'png'].includes(fileSuffix)) {
- return 'image'
- } else if (['doc', 'docx', 'dot', 'wps', 'wpt'].includes(fileSuffix)) {
- return 'word'
- } else if (['xls', 'xlsx', 'xlt', 'et', 'ett'].includes(fileSuffix)) {
- return 'excel'
- } else if (
- ['ppt', 'pptx', 'dps', 'dpt', 'pot', 'pps'].includes(fileSuffix)
- ) {
- return 'ppt'
- } else if (['pdf'].includes(fileSuffix)) {
- return 'pdf'
- } else if (['zip', 'rar', 'gz', 'apk'].includes(fileSuffix)) {
- return 'file'
- } else {
- return ''
- }
- },
- }
- }
- </script>
- <style lang="scss" scoped>
- ::v-deep .textareaStyle {
- .el-textarea__inner {
- resize: none;
- height: 100px;
- }
- }
- .dateStyle {
- width: 100%;
- }
- ::v-deep .el-input__prefix {
- display: none;
- left: 65px !important;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- }
- ::v-deep .el-date-editor.el-input {
- width: 100%;
- box-sizing: border-box;
- padding-left: 10px;
- }
- .diy-table-1 {
- ::v-deep .el-form-item {
- margin: 0;
- }
- ::v-deep .el-input__suffix {
- right: -15px;
- -webkit-transition: all 0.3s;
- transition: all 0.3s;
- }
- }
- </style>
|