Explorar o código

【新增】 家用&商用工程

howie %!s(int64=3) %!d(string=hai) anos
pai
achega
8e2fe9ac1c

+ 221 - 0
src/views/deposit_commerce/components/deposit-apply-deduction.vue

@@ -0,0 +1,221 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header @back="goBack" content="免扣申请"> </el-page-header>
+    </div>
+    <el-divider></el-divider>
+    <h3>工程项目信息</h3>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程登录编号</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程名称(项目名称)</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程编号</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商名称</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商编码</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">工程登录类型</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">厂工程编码</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">使用单位</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">安装地址</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">扣款总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金比例</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">安装时间</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">退款总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">寄厂日期</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+      </el-row>
+    </div>
+    <h3>货品信息</h3>
+    <el-divider></el-divider>
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="center"
+            label="产品编码"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="产品名称"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="规格型号"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="单价"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="数量"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="金额"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="押金金额"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <h3>上传资料</h3>
+    <el-divider></el-divider>
+    <!-- 筛选条件 -->
+    <div>
+      <el-form
+        ref="searchForm"
+        :model="searchForm"
+        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="">
+              <fileUpload :fileList="fileList" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="申请人" prop="">
+              <el-input placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="申请日期" prop="">
+              <el-date-picker
+                class="dateStyle"
+                type="date"
+                placeholder="选择日期"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="18">
+            <el-form-item label="申请退押" prop="">
+              <el-input
+                type="textarea"
+                placeholder="请输入"
+                class="textareaStyle"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="24" :lg="24">
+            <el-form-item label="">
+              <el-button size="small">清空</el-button>
+              <el-button size="small" type="primary">提交</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import fileUpload from "@/components/Common/file-upload.vue";
+export default {
+  components: {
+    fileUpload,
+  },
+  data() {
+    return {
+      fileList: [],
+    };
+  },
+  methods: {
+    goBack() {
+      this.$parent.showPage = 1;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .textareaStyle {
+  .el-textarea__inner {
+    resize: none;
+    height: 100px;
+  }
+}
+.dateStyle {
+  width: 100%;
+}
+</style>

+ 550 - 0
src/views/deposit_commerce/components/deposit-apply-surrender.vue

@@ -0,0 +1,550 @@
+<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.customerNumber }}</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="16" class="item">
+            <div class="label">使用单位</div>
+            <div class="value">{{ details.refUseUnit }}</div>
+          </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
+
+          :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" v-if="details.dataList && details.dataList.length">
+            <!-- 列表 -->
+            <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: '',
+      fileList: [],
+      details: {},
+      restrictFilename: [
+        '结算单', '合同', '明细表', '审核表', '收据', '发票', '照片'
+      ]
+    }
+  },
+  created() {
+    this.imageURL = this.$imageUrl
+    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() {
+          const arr = []
+      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)
+            }
+          })
+        }
+
+        arr.push({
+          dataDescribe: el.name,
+          enginOrderNo: this.details.refProjectNo,
+          fileName: el.name,
+          fileUrl: el.url
+        })
+      })
+      applyDeposit({
+        ...this.details,
+        dataList:arr
+      }).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
+      }
+        downloadFiles("/common/file/getStream", { key: v, fileName:fileName});
+      // 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>
+.aaa {
+  height: 64px;
+  width: 64px;
+}
+.gdzl {
+  display: inline-block;
+}
+::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>

+ 899 - 0
src/views/deposit_commerce/components/deposit_list-detail.vue

@@ -0,0 +1,899 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header content="详情" @back="goBack" />
+    </div>
+    <el-divider />
+    <el-radio-group v-model="engineering" size="" @change="handleRadio">
+      <el-radio-button label="工程押金信息" />
+      <el-radio-button label="工程订单信息" />
+      <el-radio-button label="工程发货信息" />
+      <el-radio-button label="直调发货" />
+    </el-radio-group>
+    <br><br>
+
+    <div v-show="engineering == '工程押金信息'">
+      <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="16" 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.customerNumber }}</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="16" 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="8" 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="24" class="item">
+              <div class="label">使用单位</div>
+              <div class="value">{{ details.refUseUnit }}</div>
+            </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="24" class="item">
+              <div class="label">安装地址</div>
+              <div class="value">
+                {{details.refInstallAddress}}
+              </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
+            highlight-current-row
+            stripe
+            show-summary
+            :summary-method="$getSummaries"
+          >
+
+            <el-table-column
+              align="left"
+              label="跨区厂编号"
+              prop="factoryNo"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.factoryNo" />
+                <span>{{scope.row.factoryNo}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="物料编码"
+              prop="materialNumber"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialNumber" />
+                <span>{{scope.row.materialNumber}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="产品编码"
+              prop="materialOldNumber"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialOldNumber" />
+                <span>{{scope.row.materialOldNumber}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="产品名称"
+              prop="materialName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialName" />
+                <span>{{scope.row.materialName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="规格型号"
+              prop="specification"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.specification" />
+                <span>{{scope.row.specification}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="单价"
+              prop="price"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="数量"
+              prop="qty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="金额"
+              prop="totalAmount"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="发货数量"
+              prop="hasSendQty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="押金金额"
+              prop="depositAmount"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="上交资料"
+              prop="dataQty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="收差全额"
+              prop="diffAmount"
+              min-width="160"
+              show-overflow-tooltip
+            />
+          </el-table>
+        </div>
+      </div>
+      <h3 class="gdzl">工程资料</h3>
+      <el-button
+        :disabled="isDis"
+        class="batchDownload"
+        type="primary"
+        size="small"
+        @click="batchDownloadFn"
+      >批量下载</el-button>
+
+      <el-divider />
+
+      <!-- 列表 -->
+      <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="left"
+              label="资料描述"
+              prop="dataDescribe"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="原文件名"
+              prop="fileName"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              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="left"
+              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-button-->
+                <!--                  v-if="checkFileType(scope.row.fileUrl) == 'pdf'"-->
+                <!--                  type="text"-->
+                <!--                  class="textColor"-->
+                <!--                  @click="openPdf(scope.row.fileUrl)"-->
+                <!--                >-->
+                <!--                  查看-->
+                <!--                </el-button>-->
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div class="diy-table-1">
+        <el-row :gutter="0">
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">申请人</div>
+            <div class="value">{{ details.createBy }}</div>
+          </el-col>
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">申请日期</div>
+            <div class="value">{{ details.createTime }}</div>
+          </el-col>
+          <el-col :xs="24" :sm="24" :lg="24" class="item">
+            <div class="label">申请退押金</div>
+            <div class="value">{{ details.applyNote }}</div>
+          </el-col>
+        </el-row>
+      </div>
+      <div style="margin-top: 25px">审批</div>
+      <el-divider />
+      <div class="diy-table-1">
+        <el-row :gutter="0">
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">验收人</div>
+            <div class="value">{{ details.checkBy }}</div>
+          </el-col>
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">验收日期</div>
+            <div class="value">{{ details.checkDate }}</div>
+          </el-col>
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">是否退押</div>
+            <div class="value">
+              <template
+                v-if="
+                  !(
+                    details.examineStatus == 'WAIT' ||
+                    details.examineStatus == 'SAVE' ||
+                    details.examineStatus == 'CLOSE'
+                  )
+                "
+              >
+                {{ details.isRefundDeposit == true ? "是" : "否" }}
+              </template>
+            </div>
+          </el-col>
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">审批结果</div>
+            <div v-if="details.examineStatus == 'Ok'" class="value">通过</div>
+            <div
+              v-if="details.confirmName && details.examineStatus == 'SAVE'"
+              class="value"
+            >
+              驳回
+            </div>
+          </el-col>
+          <el-col :xs="24" :sm="24" :lg="24" class="item">
+            <div class="label">验收说明</div>
+            <div class="value">{{ details.checkNote }}</div>
+          </el-col>
+          <el-col v-if="details.confirmName" :xs="24" :sm="24" :lg="24" class="item">
+            <div class="label">驳回说明</div>
+            <div class="value">{{ details.confirmName }}</div>
+          </el-col>
+        </el-row>
+      </div>
+      <div style="margin: 20px 0">
+        <el-button
+          type="primary"
+          size="small"
+          @click="handleSvse"
+        >保存</el-button>
+        <el-button
+          type="primary"
+          size="small"
+          @click="handleReset"
+        >重置</el-button>
+      </div>
+    </div>
+    <div v-show="engineering == '工程订单信息'">
+      <h3>工程订单信息</h3>
+      <el-divider />
+      <!-- 列表 -->
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column
+              align="left"
+              label="工程订单号"
+              prop="enginOrderNo"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.enginOrderNo" />
+                <span>{{scope.row.enginOrderNo}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="订单日期"
+              prop="orderDate"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="产品名称"
+              prop="materialName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialName" />
+                <span>{{scope.row.materialName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="规格型号"
+              prop="specification"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.specification" />
+                <span>{{scope.row.specification}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="单价"
+              prop="price"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="数量"
+              prop="qty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="押金金额"
+              prop="totalDepositAmount"
+              min-width="160"
+              show-overflow-tooltip
+            />
+          </el-table>
+        </div>
+      </div>
+    </div>
+    <div v-show="engineering == '工程发货信息'">
+      <h3>工程发货信息</h3>
+      <el-divider />
+      <!-- 列表 -->
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="projectList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column
+              align="left"
+              label="发货单"
+              prop="id"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.id" />
+                <span>{{scope.row.id}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="发货申请日期"
+              prop="theTime"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="产品名称"
+              prop="materialName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialName" />
+                <span>{{scope.row.materialName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="规格型号"
+              prop="specification"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.specification" />
+                <span>{{scope.row.specification}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="单价"
+              prop="price"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="数量"
+              prop="refundableQty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="押金金额"
+              prop="totalDepositAmount"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{
+                  (scope.row.refundableQty || 0) *
+                  (scope.row.singleDepositAmount || 0)
+                }}
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+    </div>
+    <div v-show="engineering == '直调发货'" class="zd">
+      <div class="table" style="margin-top: 20px">
+        <el-table
+          :data="goodsList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="left"
+            label="发货单"
+            prop="id"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.id" />
+              <span>{{scope.row.id}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="发货申请日期"
+            prop="orderTime"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="产品名称"
+            prop="materialName"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.materialName" />
+              <span>{{scope.row.materialName}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="规格型号"
+            prop="specification"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.specification" />
+              <span>{{scope.row.specification}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="rihgt"
+            label="单价"
+            prop="price"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="right"
+            label="数量"
+            prop="refundableQty"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="right"
+            label="押金金额"
+            prop="totalDepositAmount"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              {{
+                (scope.row.qty || 0) *
+                (scope.row.singleDepositAmount || 0)
+              }}
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { editInfo, geDetail, geOrderInfo, getListProject } from '@/api/engin_deposit.js'
+import { getList } from '@/api/supply/adjust'
+import { downloadFiles, downloadPdf } from '@/utils/util'
+import { getFileUrl } from '@/api/common'
+
+export default {
+  data() {
+    return {
+      isDis: true,
+      listLoading: false,
+      engineering: '工程押金信息',
+      dataList: [],
+      projectList: [],
+      details: {},
+      goodsList: [],
+      warehouseList: [],
+      positionList: [],
+      imageURL: this.$imageUrl,
+      deliverForm: {
+        date: '',
+        warehouse: '',
+        position: ''
+      },
+      deliverFormRules: {
+        date: [
+          { required: true, message: '请选择发货日期', trigger: 'change' }
+        ],
+        warehouse: [
+          { required: true, message: '请选择发货仓库', trigger: 'change' }
+        ],
+        position: [
+          { required: true, message: '请选择仓位', trigger: 'change' }
+        ]
+      },
+      orderType: {
+        TRADE: '商用',
+        HOME: '家用',
+        RETAIL: '零售单',
+        RETAIL_POLICY: '销售政策单'
+      }
+    }
+  },
+  created() {
+    this.getDetail()
+  },
+  methods: {
+    getDetail() {
+      if (this.engineering == '工程押金信息') {
+        geDetail({ id: this.$parent.depositManageId }).then((res) => {
+          this.details = res.data
+          if (res.data.dataList.length == 0) {
+            this.isDis = true
+          } else {
+            this.isDis = false
+          }
+          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']
+          })
+        })
+      } else if (this.engineering == '工程订单信息') {
+        geOrderInfo({
+          refEnginRecordNo: this.$parent.refEnginRecordNo,
+          examineStatus: 'OK'
+        }).then((res) => {
+          this.dataList = res.data
+        })
+      } else if (this.engineering == '直调发货') {
+        getList({
+          pageSize: -1,
+          pageNum: 1,
+          enginRecordNo: this.$parent.refEnginRecordNo
+        }).then((res) => {
+          this.goodsList = res.data.records
+        })
+      } else {
+        getListProject({
+          pageSize: -1,
+          pageNum: 1,
+          type:3,
+          refEnginRecordNo: this.$parent.refEnginRecordNo,
+          examineStatus: 'OK'
+        }).then((res) => {
+          this.projectList = res.data.records
+        })
+      }
+    },
+    // 批量下载
+    async batchDownloadFn() {
+      downloadFiles('/deposit-manage/downZip', { parentId: this.$parent.depositManageId })
+    },
+    // 下载
+    downLoadFn(v, fileName) {
+      if (this.checkFileType(v) === 'pdf') {
+        downloadPdf(this.$imageUrl + v, fileName)
+        return
+      }
+          downloadFiles("/common/file/getStream", { key: v, fileName:fileName});
+      // 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 ''
+      }
+    },
+    goBack() {
+      this.$parent.showPage = 1
+    },
+    handleRadio(e) {
+      this.getDetail()
+    },
+    handleSvse() {
+      this.details.isRefundDeposit =
+        this.details.isRefundDeposit == true
+      editInfo(this.details).then((res) => {
+        this.$successMsg('编辑成功')
+        this.$parent.showPage = 1
+      })
+    },
+    handleReset() {
+      this.$refs.form.resetFields()
+    }
+  }
+}
+</script>
+
+<style scoped lang="scss">
+.aaa {
+  height: 64px;
+  width: 64px;
+}
+.gdzl {
+  display: inline-block;
+}
+.batchDownload {
+  float: right;
+  margin-top: 9px;
+}
+::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;
+  }
+}
+.zd {
+  ::v-deep .el-input__suffix {
+    right: 0;
+    -webkit-transition: all 0.3s;
+    transition: all 0.3s;
+  }
+}
+::v-deep .el-input__suffix {
+  right: -15px;
+  -webkit-transition: all 0.3s;
+  transition: all 0.3s;
+}
+</style>

+ 286 - 0
src/views/deposit_commerce/components/nodeduct_list-detail.vue

@@ -0,0 +1,286 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header @back="goBack" content="审批"> </el-page-header>
+    </div>
+    <el-divider></el-divider>
+
+    <h3>工程项目信息</h3>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程登录编码</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程名称(项目名称)</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程编号</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商名称</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商编码</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">工程登录类型</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">厂工程编码</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">使用单位</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">安装地址</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">扣款总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金比例</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">安装时间</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">退款总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">寄厂日期</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+      </el-row>
+    </div>
+    <h3>货品信息</h3>
+    <el-divider></el-divider>
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="center"
+            label="产品编码"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="产品名称"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="规格型号"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="单价"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="数量"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="金额"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="押金金额"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="上交资料"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <h3>工程资料</h3>
+    <el-divider></el-divider>
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="center"
+            label="资料描述"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="原文件名"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="缩略图"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="下载文件名称"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="操作"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="">
+              <el-button type="text" class="textColor" slot="reference"
+                >下载</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">申请人</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">申请日期</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">申请免扣押金</div>
+          <div class="value">************</div>
+        </el-col>
+      </el-row>
+    </div>
+    <h3>审批</h3>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">验收人</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">验收日期</div>
+          <div class="value">
+            <el-date-picker type="date" placeholder=""> </el-date-picker>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">是否免押金</div>
+          <div class="value">
+            <el-radio-group>
+              <el-radio :label="true">是</el-radio>
+              <el-radio :label="false">否</el-radio>
+            </el-radio-group>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">审批结果</div>
+          <div class="value">
+            <el-radio-group>
+              <el-radio :label="true">同意</el-radio>
+              <el-radio :label="false">驳回</el-radio>
+            </el-radio-group>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">审批说明</div>
+          <div class="value">
+            <el-input placeholder="请输入内容"></el-input>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+    <br />
+    <!-- 按钮 -->
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <el-button type="primary" size="small">提交审批</el-button>
+        <el-button type="primary" size="small">重置</el-button>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  methods: {
+    goBack() {
+      this.$parent.showExamine = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.dateStyle {
+  width: 100%;
+}
+</style>

+ 664 - 0
src/views/deposit_commerce/components/refund_list-detail.vue

@@ -0,0 +1,664 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header @back="goBack" :content="title"> </el-page-header>
+    </div>
+    <el-divider></el-divider>
+
+    <h3>工程项目信息</h3>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="24" :lg="8" class="item">
+          <div class="label">
+            {{
+              detailList.enginOrderType == "HOME"
+                ? "工程登录编号"
+                : "工程信息编号"
+            }}
+          </div>
+          <div class="value">{{ detailList.refEnginRecordNo }}</div>
+        </el-col>
+        <!-- <el-col :xs="12" :sm="24" :lg="8" class="item">
+          <div class="label">工程信息编号</div>
+          <div class="value">{{ detailList.refEnginRecordNo }}</div>
+        </el-col> -->
+        <el-col :xs="12" :sm="24" :lg="8" class="item">
+          <div class="label">项目类别</div>
+          <div class="value">{{ detailList.refProjectName }}</div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="8" class="item">
+          <div class="label">行业类别</div>
+          <div class="value">
+            {{ detailList.refTradeCategory }}
+          </div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">跨区厂编号</div>
+          <div class="value">{{ detailList.refFactoryNo }}</div>
+        </el-col> -->
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">使用单位</div>
+          <div class="value">{{ detailList.refUseUnit }}</div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商二级代码</div>
+          <div class="value">{{detailList.}}</div>
+        </el-col> -->
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">业务员</div>
+          <div class="value">{{ detailList.serviceName }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">联系人</div>
+          <div class="value">{{ detailList.refLinkman }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">固定电话</div>
+          <div class="value">{{ detailList.refTel }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">移动电话</div>
+          <div class="value">{{ detailList.refPhone }}</div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">移动电话</div>
+          <div class="value">
+            <el-input
+              :disabled="title == '详情'"
+              placeholder="请输入"
+              v-model="detailList.refPhone"
+            ></el-input>
+          </div>
+        </el-col> -->
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金比例</div>
+          <div class="value">{{detailList.}}</div>
+        </el-col> -->
+
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">单据状态</div>
+          <div class="value">
+            {{
+              detailList.examineStatus == "SAVE"
+                ? "保存"
+                : detailList.examineStatus == "WAIT"
+                ? "待审核"
+                : detailList.examineStatus == "OK"
+                ? "通过"
+                : detailList.examineStatus == "FAIL"
+                ? "不通过"
+                : "关闭"
+            }}
+          </div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">销售类型</div>
+          <div class="value">{{ detailList.saleTypeName }}</div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">不扣押金</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col> -->
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">第几次申报</div>
+          <div class="value">{{ detailList.refDeclareNo }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">项目类型</div>
+          <div class="value">{{ detailList.refProjectType }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商编码</div>
+          <div class="value">{{ detailList.customerNumber }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金总额</div>
+          <div class="value">{{ detailList.depositAmount }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">安装时间</div>
+          <div class="value">
+            <el-date-picker prefix-icon="''" placeholder="请选择安装时间" :disabled="title == '详情'" class="selectStyle" v-model="detailList.installDate" type="datetime" default-time="00:00:00" value-format="yyyy-MM-dd HH:mm:ss">
+            </el-date-picker>
+          </div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="16" class="item">
+          <div class="label">安装地址</div>
+          <div class="value">{{ detailList.refInstallAddress }}</div>
+        </el-col>
+
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">工程订单号</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col> -->
+        <el-col :xs="24" :sm="24" :lg="16" class="item">
+          <div class="label">经销商名称</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col>
+
+        <el-col :xs="24" :sm="24" :lg="16" class="item">
+          <div class="label">项目说明</div>
+          <div class="value">{{ detailList.refProjectNote }}</div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">订单日期</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col> -->
+
+        <!-- <el-col :xs="24" :sm="24" :lg="16" class="item">
+          <div class="label">格力内部备注</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col> -->
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">文件编码</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col> -->
+        <el-col :xs="24" :sm="24" :lg="16" class="item">
+          <div class="label">备注</div>
+          <div class="value">{{ detailList.applyNote }}</div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">寄厂日期</div>
+          <div class="value">
+            <el-date-picker
+              :disabled="title == '详情'"
+              class="selectStyle"
+              v-model="detailList.sendFactoryDate"
+              type="datetime"
+              prefix-icon="''"
+              placeholder="请选择寄厂日期"
+              default-time="00:00:00"
+              value-format="yyyy-MM-dd HH:mm:ss"
+            >
+            </el-date-picker>
+          </div>
+        </el-col> -->
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">提货日期</div>
+          <div class="value">{{detailList.}}</div>
+        </el-col> -->
+      </el-row>
+    </div>
+    <h3>货品信息</h3>
+    <el-divider></el-divider>
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table v-loading="listLoading" :data="detailList.items" element-loading-text="Loading" border fit highlight-current-row stripe show-summary :summary-method="$getSummaries">
+          <el-table-column align="left" label="跨区厂编号" prop="factoryNo" min-width="160" show-overflow-tooltip>\
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.factoryNo" />
+              <span>{{scope.row.factoryNo}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="left" label="产品编码" prop="materialOldNumber" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.materialOldNumber" />
+              <span>{{scope.row.materialOldNumber}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="left" label="物料编码" prop="materialNumber" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.materialNumber" />
+              <span>{{scope.row.materialNumber}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.materialName" />
+              <span>{{scope.row.materialName}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="left" label="规格型号" prop="specification" min-width="400" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.specification" />
+              <span>{{scope.row.specification}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="right" label="单价" prop="price" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{ scope.row.price | numToFixed }}
+            </template>
+          </el-table-column>
+          <el-table-column align="right" label="数量" prop="qty" min-width="160" show-overflow-tooltip></el-table-column>
+          <!-- <el-table-column align="right" label="金额" prop="totalAmount" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{ scope.row.totalAmount | numToFixed }}
+            </template>
+          </el-table-column>
+          <el-table-column align="right" label="发货数量" prop="hasSendQty" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="right" label="上传资料" prop="dataQty" min-width="160" show-overflow-tooltip v-if="detailList.examineStatus !== 'WAIT'">
+          </el-table-column>
+          <el-table-column align="right" label="上传资料" prop="dataQty" min-width="160" show-overflow-tooltip v-if="detailList.examineStatus == 'WAIT'">
+            <template slot-scope="scope">
+              <el-input v-model="scope.row.dataQty"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column align="right" label="收差金额" prop="diffAmount" min-width="160" show-overflow-tooltip v-if="detailList.examineStatus !== 'WAIT'">
+            <template slot-scope="scope">
+              {{ scope.row.diffAmount | numToFixed }}
+            </template>
+          </el-table-column>
+          <el-table-column align="right" label="收差金额" prop="diffAmount" min-width="160" show-overflow-tooltip v-if="detailList.examineStatus == 'WAIT'">
+            <template slot-scope="scope">
+              <el-input v-model="scope.row.diffAmount"></el-input>
+            </template>
+          </el-table-column> -->
+        </el-table>
+      </div>
+    </div>
+
+    <h3 class="gdzl">工程资料</h3>
+    <el-button :disabled="isDis" class="batchDownload" type="primary" size="small" @click="batchDownloadFn">批量下载</el-button>
+
+    <el-divider></el-divider>
+
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table v-loading="listLoading" :data="detailList.dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="left" label="资料描述" prop="dataDescribe" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="left" label="原文件名" prop="fileName" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="left" label="缩略图" prop="fileUrl" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <el-image ref="img" :src="imageURL + scope.row.fileUrl" v-if="checkFileType(scope.row.fileUrl) == 'image'" style="width: 120px; height: 120px" fit="cover" :preview-src-list="[imageURL + scope.row.fileUrl]">
+              </el-image>
+              <img class="file" src="@/assets/common/word.png" v-if="checkFileType(scope.row.fileUrl) == 'word'" />
+              <img class="file" src="@/assets/common/excel.png" v-if="checkFileType(scope.row.fileUrl) == 'excel'" />
+              <img class="file" src="@/assets/common/ppt.png" v-if="checkFileType(scope.row.fileUrl) == 'ppt'" />
+              <img class="file" src="@/assets/common/pdf.png" v-if="checkFileType(scope.row.fileUrl) == 'pdf'" />
+              <img v-if="checkFileType(scope.row.fileUrl) == 'file'" class="file aaa" src="@/assets/common/zip.jpeg" />
+            </template>
+          </el-table-column>
+          <el-table-column align="left" 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>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">申请人</div>
+          <div class="value">{{ detailList.createBy }}</div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">申请日期</div>
+          <div class="value">{{ detailList.createTime }}</div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">申请退押金</div>
+          <div class="value">{{ detailList.applyNote }}</div>
+        </el-col>
+      </el-row>
+    </div>
+    <h3 v-if="
+        detailList.examineStatus == 'WAIT' ||
+        detailList.examineStatus == 'FAIL' ||
+        detailList.examineStatus == 'OK'
+      ">
+      审批
+    </h3>
+    <el-divider v-if="
+        detailList.examineStatus == 'WAIT' ||
+        detailList.examineStatus == 'FAIL' ||
+        detailList.examineStatus == 'OK'
+      "></el-divider>
+    <div v-if="detailList.examineStatus == 'WAIT'" class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">验收人</div>
+          <div class="value">{{ this.checkBy }}</div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item dateS">
+          <div class="label">验收日期</div>
+          <div class="value">
+            <el-date-picker disabled prefix-icon="''" class="selectStyle" type="datetime" placeholder="系统自动生成" default-time="00:00:00" value-format="yyyy-MM-dd HH:mm:ss">
+            </el-date-picker>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">是否退押</div>
+          <div class="value">
+            <el-radio-group v-model="isRefundDeposit">
+              <el-radio :label="true">是</el-radio>
+              <el-radio :label="false">否</el-radio>
+            </el-radio-group>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">验收说明</div>
+          <div class="value">
+            <el-input v-model="checkNote" placeholder="请输入内容"></el-input>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+
+    <div v-if="
+        detailList.examineStatus == 'OK' || detailList.examineStatus == 'FAIL'
+      " class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">验收人</div>
+          <div class="value">{{ detailList.checkBy }}</div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item dateS">
+          <div class="label">验收日期</div>
+          <div class="value">
+            <el-date-picker disabled prefix-icon="''" class="selectStyle" v-model="detailList.checkDate" type="datetime" placeholder="" default-time="00:00:00" value-format="yyyy-MM-dd HH:mm:ss">
+            </el-date-picker>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">是否退押</div>
+          <div class="value">
+            <el-radio-group v-model="detailList.isRefundDeposit">
+              <el-radio disabled :label="true">是</el-radio>
+              <el-radio disabled :label="false">否</el-radio>
+            </el-radio-group>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item dateS">
+          <div class="label">验收说明</div>
+          <div class="value">
+            <el-input disabled v-model="detailList.checkNote" placeholder="请输入内容"></el-input>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item dateS">
+          <div class="label">审批通过后备注</div>
+          <div class="value">
+            <el-input v-model="detailList.examineAfterRemark" placeholder="请输入内容"></el-input>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+    <br />
+    <!-- 按钮 -->
+    <!-- detailList.examineStatus != 'OK' || detailList.examineStatus != 'FAIL' -->
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <el-button v-if="detailList.examineStatus == 'WAIT'" type="primary" size="small" @click="adoptFn">审批通过</el-button>
+        <el-button v-if="detailList.examineStatus == 'WAIT'" type="primary" size="small" @click="rejectFn">审批驳回</el-button>
+        <el-button v-if="detailList.examineStatus == 'OK'" type="primary" size="small" @click="saveFn">保存</el-button>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { downloadFiles } from "@/utils/util";
+import IMAGEUPLOAD from "@/components/Common/image-upload.vue";
+import { getFileUrl } from "@/api/common";
+import { mapGetters } from "vuex";
+import {
+  getDepositManageDetail,
+  getDepositManageExamine,
+  getDepositManageDownZip,
+  getDepositManageEdit,
+  getCommonFileGetStream,
+} from "@/api/engin_deposit/refund_list";
+export default {
+  props: {
+    detailId: {
+      type: String,
+      required: true,
+    },
+  },
+  components: { IMAGEUPLOAD },
+  computed: {
+    ...mapGetters(["name"]),
+  },
+  data() {
+    return {
+      isDis: true,
+      imageURL: this.$imageUrl,
+      title: "审批",
+      imageURL: this.$imageUrl,
+      listLoading: false, // 列表加载loading
+      dataList: [], // 列表数据
+      detailList: {},
+      checkBy: "",
+      checkDate: "",
+      isRefundDeposit: true,
+      checkNote: "",
+    };
+  },
+  created() {
+    console.log(this.$imageUrl, 8888);
+    this.checkBy = this.name;
+    this.getData({ id: this.detailId });
+  },
+  methods: {
+    //审批通过后可以编辑
+    async saveFn() {
+      console.log(this.detailList);
+      await getDepositManageEdit(this.detailList);
+      this.$message.success("保存成功");
+      this.goBack();
+      this.$emit("updateList");
+    },
+    //批量下载
+    async batchDownloadFn() {
+      downloadFiles("/deposit-manage/downZip", { parentId: this.detailId });
+    },
+    //下载
+    async downLoadFn(v, name) {
+      // getCommonFileGetStream({ key: v, fileName: name }).then((res) => {
+      //   // window.open(res.data);
+      // });
+      // // window.open(this.imageURL + v);
+      downloadFiles("/common/file/getStream", { key: v, fileName: name });
+      // await getCommonFileGetStream({ key: v, fileName: name });
+    },
+    // 检查文件类型
+    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 "";
+      }
+    },
+    //审批驳回
+    async rejectFn() {
+      this.$confirm("此操作将审批订单, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          if (!this.detailList.installDate) {
+            this.$message.error("请选择安装时间");
+            return;
+          }
+          let data = {
+            ...this.detailList,
+            checkBy: this.checkBy,
+            // checkDate: this.checkDate,
+            isRefundDeposit: this.isRefundDeposit,
+            checkNote: this.checkNote,
+            examineResult: 0,
+          };
+          getDepositManageExamine(data)
+            .then((res) => {
+              if (!res.data) {
+                this.goBack();
+                this.$emit("updateList");
+              } else {
+                this.$confirm("审批成功!是否跳转下一张待审批订单?", "提示", {
+                  confirmButtonText: "跳转",
+                  cancelButtonText: "取消",
+                  type: "warning",
+                })
+                  .then(() => {
+                    this.$successMsg("进入下一张待审批订单");
+                    this.detailList = res.data;
+                  })
+                  .catch(() => {
+                    this.goBack();
+                    this.$emit("updateList");
+                  });
+              }
+            })
+            .finally((res) => {});
+        })
+        .catch(() => {});
+      // if (!this.detailList.installDate) {
+      //   this.$message.error("请选择安装时间");
+      //   return;
+      // }
+      // let data = {
+      //   ...this.detailList,
+      //   checkBy: this.checkBy,
+      //   // checkDate: this.checkDate,
+      //   isRefundDeposit: this.isRefundDeposit,
+      //   checkNote: this.checkNote,
+      //   examineResult: 0,
+      // };
+      // await getDepositManageExamine(data);
+      // this.$message.success("审批驳回");
+      // this.goBack();
+      // this.$emit("updateList");
+    },
+    //审批通过
+    async adoptFn() {
+      this.$confirm("此操作将审批订单, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          if (!this.detailList.installDate) {
+            this.$message.error("请选择安装时间");
+            return;
+          }
+          let data = {
+            ...this.detailList,
+            checkBy: this.checkBy,
+            // checkDate: this.checkDate,
+            isRefundDeposit: this.isRefundDeposit,
+            checkNote: this.checkNote,
+            examineResult: 1,
+          };
+          getDepositManageExamine(data)
+            .then((res) => {
+              if (!res.data) {
+                this.goBack();
+                this.$emit("updateList");
+              } else {
+                this.$confirm("审批成功!是否跳转下一张待审批订单?", "提示", {
+                  confirmButtonText: "跳转",
+                  cancelButtonText: "取消",
+                  type: "warning",
+                })
+                  .then(() => {
+                    this.$successMsg("进入下一张待审批订单");
+                    this.detailList = res.data;
+                  })
+                  .catch(() => {
+                    this.goBack();
+                    this.$emit("updateList");
+                  });
+              }
+            })
+            .finally((res) => {});
+        })
+        .catch(() => {});
+
+      // if (!this.detailList.installDate) {
+      //   this.$message.error("请选择安装时间");
+      //   return;
+      // }
+      // let data = {
+      //   ...this.detailList,
+      //   checkBy: this.checkBy,
+      //   // checkDate: this.checkDate,
+      //   isRefundDeposit: this.isRefundDeposit,
+      //   checkNote: this.checkNote,
+      //   examineResult: 1,
+      // };
+      // await getDepositManageExamine(data);
+      // this.$message.success("审批通过");
+      // this.goBack();
+      // this.$emit("updateList");
+    },
+    async getData(data) {
+      const res = await getDepositManageDetail(data);
+      console.log(res);
+      if (res.data.dataList.length == 0) {
+        this.isDis = true;
+      } else {
+        this.isDis = false;
+      }
+      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"];
+      });
+      this.detailList = res.data;
+      if (
+        res.data.examineStatus == "SAVE" ||
+        res.data.examineStatus == "OK" ||
+        res.data.examineStatus == "FAIL"
+      ) {
+        this.title = "详情";
+      }
+    },
+    goBack() {
+      this.$parent.showSurrender = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.aaa {
+  height: 64px;
+  width: 64px;
+}
+.dateS {
+  .value {
+    padding: 0;
+  }
+}
+.batchDownload {
+  float: right;
+  margin-top: 9px;
+}
+.gdzl {
+  display: inline-block;
+}
+.dateStyle {
+  width: 100%;
+}
+.label {
+  width: 150px !important;
+}
+.selectStyle {
+  width: 100%;
+}
+</style>

+ 529 - 0
src/views/deposit_commerce/deposit_list.vue

@@ -0,0 +1,529 @@
+<template>
+  <div class="app-container">
+    <div v-if="showPage == 1">
+      <el-radio-group v-model="deduction" size="mini" @change="handleRadio">
+        <el-radio-button label="全部" />
+        <el-radio-button label="已退押" />
+      </el-radio-group>
+      <br><br>
+      <!-- 筛选条件 -->
+      <div>
+        <el-form
+          ref="screenForm"
+          :model="screenForm"
+          label-width="120px"
+          size="mini"
+          label-position="left"
+        >
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程登录编号" prop="refEnginRecordNo">
+                <el-input
+                  v-model="screenForm.refEnginRecordNo"
+                  placeholder="请输入"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商编码/名称" prop="customerKeyword">
+                <el-input
+                  v-model="screenForm.customerKeyword"
+                  placeholder="请输入"
+                />
+              </el-form-item>
+            </el-col>
+            <!-- <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商名称" prop="customerKeyword">
+                <el-input
+                  v-model="screenForm.customerKeyword"
+                  placeholder="请输入"
+                ></el-input>
+              </el-form-item>
+            </el-col> -->
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程名称" prop="refProjectName">
+                <el-input
+                  v-model="screenForm.refProjectName"
+                  placeholder="请输入"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请日期" prop="startDeliverTime">
+                <el-date-picker
+                  v-model="screenForm.startDeliverTime"
+                  class="dateStyle"
+                  type="datetime"
+                  placeholder="选择日期"
+                />
+              </el-form-item>
+            </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="申请日期" prop="startSubmitTime">
+                <el-date-picker
+                  v-model="screenForm.startSubmitTime"
+                  class="dateStyle"
+                  type="datetime"
+                  placeholder="选择日期"
+                />
+              </el-form-item>
+            </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="验收日期" prop="startConfirmTime">
+                <el-date-picker
+                  v-model="screenForm.startConfirmTime"
+                  class="dateStyle"
+                  type="datetime"
+                  placeholder="选择日期"
+                />
+              </el-form-item>
+            </el-col>
+             <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="是否退押 " prop="isRefundDeposit">
+              <el-select v-model="screenForm.isRefundDeposit"  placeholder="请选择是否退押 " >
+              <el-option  label="默认" :value="null"></el-option>
+
+                <el-option v-for="item in refundDepositArr"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+              </el-form-item>
+            </el-col>
+   <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="状态 " prop="examineStatus">
+              <el-select v-model="screenForm.examineStatus"  placeholder="请选择状态 " >
+              <el-option  label="默认" :value="null"></el-option>
+
+                <el-option v-for="item in examineStatusArr"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+              </el-form-item>
+            </el-col>
+            <!-- <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="产品名称" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="规格型号" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col> -->
+            <el-col :xs="24" :sm="24" :lg="24">
+              <el-form-item label="" class="fr">
+                <el-button
+                  size="mini"
+                  @click="resetScreenForm"
+                >清空</el-button>
+                <el-button
+                  size="mini"
+                  type="primary"
+                  @click="submitScreenForm"
+                >搜索</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <!-- 按钮 -->
+      <div class="btn-group clearfix" style="display: flex">
+        <el-button
+          type="primary"
+          size="mini"
+          @click="hanleDownloadFiles"
+        >导出</el-button>
+        <el-upload
+          v-if="$checkBtnRole('import', $route.meta.roles)"
+          class="import-btn"
+          :action="baseURL + 'student/import'"
+          :http-request="handleImport"
+          :file-list="importFileList"
+          :show-file-list="false"
+        >
+          <el-button size="mini">导入</el-button>
+        </el-upload>
+      </div>
+      <!-- 列表 -->
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+            show-summary
+            :summary-method="$getSummaries"
+            @select-all="handleSelectionAllChange"
+            @selection-change="handleSelectionAllChange"
+          >
+            <el-table-column align="left" type="selection" width="55" />
+            <el-table-column
+              align="left"
+              label="工程登录编号"
+              prop="refEnginRecordNo"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="使用单位"
+              prop="refUseUnit"
+              min-width="160"
+              show-overflow-tooltip
+            />
+             <el-table-column
+              align="left"
+              label="申请日期"
+              prop="submitTime"
+              min-width="160"
+              show-overflow-tooltip
+            />
+             <el-table-column
+              align="left"
+              label="验收日期"
+              prop="checkDate"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="经销商编码"
+              prop="customerNumber"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.customerNumber" />
+                <span>{{ scope.row.customerNumber }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="经销商名称"
+              prop="customerName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.customerName" />
+                <span>{{ scope.row.customerName }}</span>
+              </template>
+            </el-table-column>
+            <!-- <el-table-column
+              align="left"
+              label="是否免扣"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column> -->
+            <el-table-column
+              align="left"
+              label="是否退押"
+              prop="isRefundDeposit"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-tag
+                  v-if="scope.row.isRefundDeposit"
+                  type="success"
+                  size="small"
+                >是</el-tag>
+                <el-tag v-else type="warning" size="small">否</el-tag>
+              </template>
+            </el-table-column>
+            <!-- <el-table-column
+              align="left"
+              label="押金比例"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column> -->
+            <el-table-column
+              align="right"
+              label="押金金额"
+              prop="depositAmount"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.depositAmount | numToFixed }}
+              </template>
+            </el-table-column>
+
+            <el-table-column
+              align="left"
+              label="状态"
+              prop="examineStatus"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-tag
+                  v-if="scope.row.examineStatus == 'SAVE'"
+                  type="success"
+                  size="small"
+                >保存
+                </el-tag>
+                <el-tag
+                  v-if="scope.row.examineStatus == 'WAIT'"
+                  type="warning"
+                  size="small"
+                >待审核
+                </el-tag>
+                <el-tag
+                  v-if="scope.row.examineStatus == 'OK'"
+                  type="warning"
+                  size="mini"
+                >通过</el-tag>
+                <el-tag
+                  v-if="scope.row.examineStatus == 'FAIL'"
+                  type="warning"
+                  size="small"
+                >不通过</el-tag>
+                <el-tag
+                  v-if="scope.row.examineStatus == 'CLOSE'"
+                  type="warning"
+                  size="small"
+                >关闭</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="订单数量"
+              prop="qty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <!-- <el-table-column
+              align="left"
+              label="是否已发货"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column> -->
+            <el-table-column
+              align="center"
+              label="操作"
+              min-width="160"
+              fixed="right"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  class="textColor"
+                  size="mini"
+                  @click="detailFn(scope.row)"
+                >详情</el-button>
+                <el-button
+                  v-if="
+                    scope.row.examineStatus == 'SAVE' &&
+                      $checkBtnRole('apply', $route.meta.roles)
+                  "
+                  type="text"
+                  class="textColor"
+                  @click="surrenderFn(scope.row)"
+                >申请退押</el-button>
+                <!-- <el-button type="text" class="textColor" slot="reference"
+                  >免扣退押</el-button
+                > -->
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </div>
+    </div>
+    <DepositListDetail v-else-if="showPage == 2" />
+    <DepositApplyDeduction v-else-if="showPage == 3" />
+    <DepositApplySurrender v-else-if="showPage == 4" />
+  </div>
+</template>
+
+<script>
+import DepositListDetail from './components/deposit_list-detail'
+import DepositApplyDeduction from './components/deposit-apply-deduction.vue'
+import DepositApplySurrender from './components/deposit-apply-surrender.vue'
+import { downloadFiles, handleImport } from '@/utils/util'
+import { getList } from '@/api/engin_deposit.js'
+import Mixin from '@/mixin'
+
+export default {
+  components: {
+    DepositListDetail,
+    DepositApplyDeduction,
+    DepositApplySurrender
+  },
+  mixins: [Mixin],
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: [], // 列表数据
+      screenForm: {
+        confirmName: '', // 审核人
+        createName: '', // 创建人
+        customerKeyword: '', // 客户编码/客户名称
+        endDeliverTime: '', // 发货申请日期-结束
+        enginOrderNo: '', // 工程订单编号
+        enginOrderType: 'TRADE', // 工程订单类型
+        examineStatus: '', // 状态
+        refEnginRecordNo: '', // 登录单号
+        refProjectName: '', // 项目名称
+        refUseUnit: '', // 使用单位
+        startDeliverTime: '', // 发货申请日期-开始
+        startSubmitTime:'',
+        startConfirmTime:'',
+        isRefundDeposit:null,
+        examineStatus:null
+      }, // 搜索表单
+      listLoading: false, // 列表加载loading
+      deduction: '全部',
+      showPage: 1,
+      importFileList: [],
+      selectData: [],
+      baseURL: '',
+      refundDepositArr:[
+        {
+          label:'是',
+          value:true
+        },
+        {
+          label:'否',
+          value:false
+        }
+      ],
+
+      examineStatusArr:[
+         {
+          label:'保存',
+          value:'SAVE'
+        },
+        {
+          label:'待审核',
+          value:'WAIT'
+        },
+        {
+          label:'通过',
+          value:'OK'
+        },
+        {
+          label:'不通过',
+          value:'FAIL'
+        },
+        {
+          label:'关闭',
+          value:'CLOSE'
+        },
+      ]
+    }
+  },
+
+  methods: {
+    // 免扣申请
+    deductionFn() {
+      this.showPage = 3
+    },
+    // 申请退押
+    surrenderFn(row) {
+      this.depositManageId = row.depositManageId
+      this.showPage = 4
+    },
+    detailFn(row) {
+      this.depositManageId = row.depositManageId
+      this.refEnginRecordNo = row.refEnginRecordNo
+      this.showPage = 2
+    },
+    getList() {
+      this.listLoading = true
+      const params = {
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        isRefundDeposit: this.deduction === '已退押' ? true : null,
+        ...this.screenForm
+      }
+
+      getList(params).then((res) => {
+        this.dataList = res.data.records
+        res.data.records.forEach((item) => {
+          // item.number = (item.qty*100 - item.directTransferQty*100 - item.retiredQty*100) / 100;
+          item.sums1 = ['qty']
+          item.sums2 = ['depositAmount', 'diffAmount', 'price']
+        })
+        this.listLoading = false
+        this.listTotal = res.data.total
+      })
+    },
+    handleRadio() {
+      this.getList()
+    },
+    hanleDownloadFiles() {
+      if (this.selectData.length) {
+        const arr = []
+        for (let i = 0; i < this.selectData.length; i++) {
+          arr.push(this.selectData[i].depositManageId)
+        }
+        downloadFiles('/deposit-manage/export', { id: arr })
+      } else {
+        this.$errorMsg('请选择押金项')
+      }
+    },
+    // 导入
+    async handleImport(param) {
+      this.importLoading = true
+      const file = param.file
+      console.log(file, 123)
+      const formData = new FormData()
+      formData.append('file', file)
+      // formData.append("policyId", this.screenForm.code);
+      const result = await handleImport('deposit-manage/import', formData)
+      this.importLoading = false
+      this.importFileList = []
+      if (result.code == 200) {
+        this.$alert(result.message, '导入成功', {
+          confirmButtonText: '确定'
+        })
+
+        this.handletwoList()
+      } else {
+        this.$alert(result.message, '导入失败', {
+          confirmButtonText: '确定'
+        })
+      }
+    },
+    handleSelectionAllChange(e) {
+      this.selectData = e
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.dateStyle {
+  width: 100%;
+}
+.import-btn {
+  margin-left: 10px;
+}
+</style>

+ 219 - 0
src/views/deposit_commerce/nodeduct_list.vue

@@ -0,0 +1,219 @@
+<template>
+  <div class="app-container">
+    <div v-if="showExamine">
+      <el-radio-group v-model="examine" size="">
+        <el-radio-button label="全部"></el-radio-button>
+        <el-radio-button label="待审核"></el-radio-button>
+        <el-radio-button label="审核驳回"></el-radio-button>
+        <el-radio-button label="审核通过"></el-radio-button>
+      </el-radio-group>
+      <br /><br />
+      <!-- 筛选条件 -->
+      <div>
+        <el-form
+          ref="searchForm"
+          :model="searchForm"
+          label-width="100px"
+          size="small"
+          label-position="left"
+        >
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程订单编号" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商编码" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商名称" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程名称" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请日期" prop="">
+                <el-date-picker
+                  class="dateStyle"
+                  type="date"
+                  placeholder="选择日期"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="产品名称" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="规格型号" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :xs="24" :sm="24" :lg="6">
+              <el-form-item label="" class="fr">
+                <el-button size="small">清空</el-button>
+                <el-button size="small" type="primary">搜索</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <!-- 按钮 -->
+      <div class="btn-group clearfix">
+        <div class="fl">
+          <el-button type="primary" size="small" @click="examineFn"
+            >审批</el-button
+          >
+          <el-button type="primary" size="small">编辑</el-button>
+          <el-button type="primary" size="small">详情</el-button>
+        </div>
+        <div class="fr">
+          <el-button type="primary" size="small">导出</el-button>
+        </div>
+      </div>
+      <!-- 列表 -->
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column
+              align="center"
+              label="工程登录编码"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="工程名称"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="经销商编码"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="经销商名称"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="是否免扣"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="押金比例"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="押金金额"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="状态"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="操作"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="">
+                <el-button type="text" class="textColor" slot="reference"
+                  >审批</el-button
+                >
+                <el-button type="text" class="textColor" slot="reference"
+                  >编辑</el-button
+                >
+                <el-button type="text" class="textColor" slot="reference"
+                  >详情</el-button
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+          >
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+    <NodeductListDetail v-else />
+  </div>
+</template>
+
+<script>
+import NodeductListDetail from "./components/nodeduct_list-detail";
+export default {
+  components: {
+    NodeductListDetail,
+  },
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: [], // 列表数据
+      searchForm: {}, //搜索表单
+      listLoading: false, // 列表加载loading
+      examine: "全部",
+      showExamine: true,
+    };
+  },
+  methods: {
+    examineFn() {
+      this.showExamine = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.dateStyle {
+  width: 100%;
+}
+</style>

+ 452 - 0
src/views/deposit_commerce/refund_list.vue

@@ -0,0 +1,452 @@
+<template>
+  <div class="app-container">
+    <div v-if="showSurrender">
+      <el-radio-group @change="changeRadioFn" v-model="examine" size="mini">
+        <el-radio-button label="">全部</el-radio-button>
+        <el-radio-button label="SAVE">保存</el-radio-button>
+        <el-radio-button label="WAIT">待审核</el-radio-button>
+        <el-radio-button label="FAIL">审核驳回</el-radio-button>
+        <el-radio-button label="OK">审核通过</el-radio-button>
+      </el-radio-group>
+      <br /><br />
+      <!-- 筛选条件 -->
+      <div>
+        <el-form ref="searchForm" :model="searchForm" label-width="160px" size="mini" label-position="left">
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程登录编号" prop="refEnginRecordNo">
+                <el-input v-model="searchForm.refEnginRecordNo" placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商编码" prop="customerKeyword">
+                <el-input v-model="searchForm.customerKeyword" placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <!-- <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商名称" prop="customerKeyword">
+                <el-input
+                  v-model="searchForm.customerKeyword"
+                  placeholder="请输入"
+                ></el-input>
+              </el-form-item>
+            </el-col> -->
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程名称" prop="refProjectName">
+                <el-input v-model="searchForm.refProjectName" placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <!-- <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请开始日期" prop="startDeliverTime">
+                <el-date-picker
+                  class="dateStyle"
+                  v-model="searchForm.startDeliverTime"
+                  type="datetime"
+                  placeholder=""
+                  default-time="00:00:00"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请结束日期" prop="endDeliverTime">
+                <el-date-picker
+                  v-model="searchForm.endDeliverTime"
+                  class="dateStyle"
+                  type="datetime"
+                  placeholder=""
+                  default-time="23:59:59"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col> -->
+            <!-- <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="产品名称" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="规格型号" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col> -->
+
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="" class="fr">
+                <el-button size="mini" @click="resetFn">清空</el-button>
+                <el-button size="mini" type="primary" @click="searchFn">搜索</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <!-- 按钮 -->
+      <div class="btn-group clearfix">
+        <div class="fl">
+          <el-radio-group @change="changeEnginOrderTypeFn" v-model="enginOrderType" size="mini">
+            <el-radio-button label="HOME">家用工程</el-radio-button>
+            <el-radio-button label="TRADE">商用工程</el-radio-button>
+          </el-radio-group>
+        </div>
+        <div class="fr">
+          <el-button type="primary" size="mini" @click="exportFn">导出</el-button>
+          <el-upload class="import-btn" action="" :http-request="handleImport" :file-list="importFileList" :show-file-list="false">
+            <el-button type="primary" size="mini">导入</el-button>
+          </el-upload>
+        </div>
+      </div>
+      <!-- 列表 -->
+      <div class="mymain-container">
+        <div class="table">
+          <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe @selection-change="handleSelectionChange" show-summary :summary-method="$getSummaries">
+            >
+            <el-table-column type="selection" align="center" width="55">
+            </el-table-column>
+            <el-table-column align="left" label="状态" prop="" min-width="160" show-overflow-tooltip>
+              <template v-slot="{ row }">
+                <el-tag size="mini" v-show="row.examineStatus == 'SAVE'">保存</el-tag>
+                <el-tag size="mini" v-show="row.examineStatus == 'WAIT'" type="warning">待审核</el-tag>
+                <el-tag size="mini" v-show="row.examineStatus == 'OK'" type="success">通过</el-tag>
+                <el-tag size="mini" v-show="row.examineStatus == 'FAIL'" type="danger">不通过</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="工程登录编号" prop="refEnginRecordNo" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.refEnginRecordNo" />
+                <span>{{scope.row.refEnginRecordNo}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="项目类别" prop="refProjectName" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.refProjectName" />
+                <span>{{scope.row.refProjectName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="机型" prop="specification" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.specification" />
+                <span>{{scope.row.a}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="经销商编码" prop="customerNumber" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerNumber" />
+                <span>{{scope.row.customerNumber}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="经销商名称" prop="customerName" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerName" />
+                <span>{{scope.row.customerName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="跨区厂编号" prop="refFactoryNo" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.refFactoryNo" />
+                <span>{{scope.row.refFactoryNo}}</span>
+              </template>
+            </el-table-column>
+            <!-- <el-table-column align="left" label="产品编码" prop="customerName" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerName" />
+                <span>{{scope.row.customerName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="物料编码" prop="customerName" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerName" />
+                <span>{{scope.row.customerName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="产品名称" prop="customerName" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerName" />
+                <span>{{scope.row.customerName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="规格型号" prop="customerName" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerName" />
+                <span>{{scope.row.customerName}}</span>
+              </template>
+            </el-table-column> -->
+            <el-table-column align="right" label="押金金额" prop="depositAmount" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                {{ scope.row.depositAmount | numToFixed }}
+              </template>
+            </el-table-column>
+            <el-table-column fixed="right" align="center" label="操作" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <el-button type="text" class="textColor" v-if="
+                    scope.row.examineStatus == 'WAIT' &&
+                    $checkBtnRole('examine', $route.meta.roles)
+                  " @click="examineFn(scope.row.depositManageId)">审批</el-button>
+
+                <el-button type="text" class="textColor" v-if="
+                    scope.row.examineStatus == 'SAVE' ||
+                    scope.row.examineStatus == 'OK' ||
+                    scope.row.examineStatus == 'FAIL'
+                  " @click="infoFn(scope.row.depositManageId)">详情</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="listTotal">
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+    <RefundListDetail @updateList="updateList" :detailId="detailId" v-else />
+  </div>
+</template>
+
+<script>
+import {
+  getDepositManageList,
+  getDepositManagExport,
+} from "@/api/engin_deposit/refund_list";
+import { downloadFiles, handleImport } from "@/utils/util";
+import RefundListDetail from "./components/refund_list-detail.vue";
+export default {
+  components: {
+    RefundListDetail,
+  },
+  data() {
+    return {
+      importFileList: [],
+      enginOrderType: "TRADE", //列表类型
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: [], // 列表数据
+      searchForm: {
+        refEnginRecordNo: "",
+        customerKeyword: "",
+        refProjectName: "",
+        // startDeliverTime: "",
+        // endDeliverTime: "",
+      }, //搜索表单
+      listLoading: false, // 列表加载loading
+      examine: "",
+      showSurrender: true,
+      detailId: "",
+      selectData: [],
+    };
+  },
+  created() {
+    this.getDataList({
+      pageSize: this.pageSize,
+      pageNum: this.currentPage,
+      confirmName: "",
+      createName: "",
+      customerKeyword: "",
+      // endDeliverTime: "",
+      enginOrderNo: "",
+      enginOrderType: this.enginOrderType,
+      examineStatus: "",
+      refEnginRecordNo: "",
+      refProjectName: "",
+      refUseUnit: "",
+      // startDeliverTime: "",
+    });
+  },
+  methods: {
+    // 导入
+    async handleImport(param) {
+      const file = param.file;
+
+      const formData = new FormData();
+      formData.append("file", file);
+
+      let result = await handleImport("/deposit-manage/import", formData);
+
+      console.log(result);
+      this.importFileList = [];
+      if (result.code == 200) {
+        this.$message.success("导入成功");
+        this.getDataList({
+          pageSize: this.pageSize,
+          pageNum: this.currentPage,
+          confirmName: "",
+          createName: "",
+          customerKeyword: "",
+          // endDeliverTime: "",
+          enginOrderNo: "",
+          enginOrderType: this.enginOrderType,
+          examineStatus: "",
+          refEnginRecordNo: "",
+          refProjectName: "",
+          refUseUnit: "",
+          // startDeliverTime: "",
+        });
+      } else {
+        this.$message.error(result.message);
+      }
+    },
+    //审批后更新列表数据
+    updateList() {
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        customerKeyword: "",
+        // endDeliverTime: "",
+        enginOrderNo: "",
+        enginOrderType: this.enginOrderType,
+        examineStatus: "",
+        refEnginRecordNo: "",
+        refProjectName: "",
+        refUseUnit: "",
+        // startDeliverTime: "",
+      });
+    },
+    //切换列表
+    changeEnginOrderTypeFn(v) {
+      // console.log(v);
+      this.pageSize = 10;
+      this.currentPage = 1;
+
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        customerKeyword: "",
+        // endDeliverTime: "",
+        enginOrderNo: "",
+        enginOrderType: v,
+        examineStatus: this.examine,
+        refEnginRecordNo: "",
+        refProjectName: "",
+        refUseUnit: "",
+        // startDeliverTime: "",
+      });
+    },
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        customerKeyword: "",
+        // endDeliverTime: "",
+        enginOrderNo: "",
+        enginOrderType: this.enginOrderType,
+        examineStatus: this.examine,
+        refEnginRecordNo: "",
+        refProjectName: "",
+        refUseUnit: "",
+        // startDeliverTime: "",
+      });
+    },
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        customerKeyword: "",
+        // endDeliverTime: "",
+        enginOrderNo: "",
+        enginOrderType: this.enginOrderType,
+        examineStatus: this.examine,
+        refEnginRecordNo: "",
+        refProjectName: "",
+        refUseUnit: "",
+        // startDeliverTime: "",
+      });
+    },
+    //切换radio
+    changeRadioFn(v) {
+      this.examine = v;
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        customerKeyword: "",
+        // endDeliverTime: "",
+        enginOrderNo: "",
+        enginOrderType: this.enginOrderType,
+        examineStatus: this.examine,
+        refEnginRecordNo: "",
+        refProjectName: "",
+        refUseUnit: "",
+        // startDeliverTime: "",
+      });
+    },
+    //导出
+    exportFn() {
+      if (this.selectData.length) {
+        const arr = [];
+        for (let i = 0; i < this.selectData.length; i++) {
+          arr.push(this.selectData[i].depositManageId);
+        }
+        downloadFiles("/deposit-manage/export", { id: arr });
+      } else {
+        this.$errorMsg("请选择押金项");
+      }
+    },
+    //多选列表数据
+    handleSelectionChange(selectData) {
+      this.selectData = selectData;
+    },
+    //重置
+    resetFn() {
+      this.$refs.searchForm.resetFields();
+    },
+    //搜索
+    searchFn() {
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        enginOrderNo: "",
+        enginOrderType: this.enginOrderType,
+        examineStatus: this.examine,
+        refUseUnit: "",
+        ...this.searchForm,
+      });
+    },
+    //详情
+    infoFn(id) {
+      this.detailId = id;
+      this.showSurrender = false;
+    },
+    async getDataList(data) {
+      const res = await getDepositManageList(data);
+      res.data.records.forEach((item) => {
+        item.sums1 = [];
+        item.sums2 = ["depositAmount"];
+      });
+      this.dataList = res.data.records;
+      this.listTotal = res.data.total;
+    },
+    examineFn(id) {
+      this.detailId = id;
+      this.showSurrender = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.dateStyle {
+  width: 100%;
+}
+.import-btn {
+  margin-left: 10px;
+  display: inline-block;
+}
+</style>

+ 221 - 0
src/views/deposit_home/components/deposit-apply-deduction.vue

@@ -0,0 +1,221 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header @back="goBack" content="免扣申请"> </el-page-header>
+    </div>
+    <el-divider></el-divider>
+    <h3>工程项目信息</h3>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程登录编号</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程名称(项目名称)</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程编号</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商名称</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商编码</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">工程登录类型</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">厂工程编码</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">使用单位</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">安装地址</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">扣款总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金比例</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">安装时间</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">退款总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">寄厂日期</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+      </el-row>
+    </div>
+    <h3>货品信息</h3>
+    <el-divider></el-divider>
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="center"
+            label="产品编码"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="产品名称"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="规格型号"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="单价"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="数量"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="金额"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="押金金额"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <h3>上传资料</h3>
+    <el-divider></el-divider>
+    <!-- 筛选条件 -->
+    <div>
+      <el-form
+        ref="searchForm"
+        :model="searchForm"
+        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="">
+              <fileUpload :fileList="fileList" />
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="申请人" prop="">
+              <el-input placeholder="请输入"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="6">
+            <el-form-item label="申请日期" prop="">
+              <el-date-picker
+                class="dateStyle"
+                type="date"
+                placeholder="选择日期"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="12" :lg="18">
+            <el-form-item label="申请退押" prop="">
+              <el-input
+                type="textarea"
+                placeholder="请输入"
+                class="textareaStyle"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="24" :lg="24">
+            <el-form-item label="">
+              <el-button size="small">清空</el-button>
+              <el-button size="small" type="primary">提交</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import fileUpload from "@/components/Common/file-upload.vue";
+export default {
+  components: {
+    fileUpload,
+  },
+  data() {
+    return {
+      fileList: [],
+    };
+  },
+  methods: {
+    goBack() {
+      this.$parent.showPage = 1;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .textareaStyle {
+  .el-textarea__inner {
+    resize: none;
+    height: 100px;
+  }
+}
+.dateStyle {
+  width: 100%;
+}
+</style>

+ 550 - 0
src/views/deposit_home/components/deposit-apply-surrender.vue

@@ -0,0 +1,550 @@
+<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.customerNumber }}</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="16" class="item">
+            <div class="label">使用单位</div>
+            <div class="value">{{ details.refUseUnit }}</div>
+          </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
+
+          :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" v-if="details.dataList && details.dataList.length">
+            <!-- 列表 -->
+            <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: '',
+      fileList: [],
+      details: {},
+      restrictFilename: [
+        '结算单', '合同', '明细表', '审核表', '收据', '发票', '照片'
+      ]
+    }
+  },
+  created() {
+    this.imageURL = this.$imageUrl
+    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() {
+          const arr = []
+      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)
+            }
+          })
+        }
+
+        arr.push({
+          dataDescribe: el.name,
+          enginOrderNo: this.details.refProjectNo,
+          fileName: el.name,
+          fileUrl: el.url
+        })
+      })
+      applyDeposit({
+        ...this.details,
+        dataList:arr
+      }).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
+      }
+        downloadFiles("/common/file/getStream", { key: v, fileName:fileName});
+      // 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>
+.aaa {
+  height: 64px;
+  width: 64px;
+}
+.gdzl {
+  display: inline-block;
+}
+::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>

+ 899 - 0
src/views/deposit_home/components/deposit_list-detail.vue

@@ -0,0 +1,899 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header content="详情" @back="goBack" />
+    </div>
+    <el-divider />
+    <el-radio-group v-model="engineering" size="" @change="handleRadio">
+      <el-radio-button label="工程押金信息" />
+      <el-radio-button label="工程订单信息" />
+      <el-radio-button label="工程发货信息" />
+      <el-radio-button label="直调发货" />
+    </el-radio-group>
+    <br><br>
+
+    <div v-show="engineering == '工程押金信息'">
+      <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="16" 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.customerNumber }}</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="16" 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="8" 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="24" class="item">
+              <div class="label">使用单位</div>
+              <div class="value">{{ details.refUseUnit }}</div>
+            </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="24" class="item">
+              <div class="label">安装地址</div>
+              <div class="value">
+                {{details.refInstallAddress}}
+              </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
+            highlight-current-row
+            stripe
+            show-summary
+            :summary-method="$getSummaries"
+          >
+
+            <el-table-column
+              align="left"
+              label="跨区厂编号"
+              prop="factoryNo"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.factoryNo" />
+                <span>{{scope.row.factoryNo}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="物料编码"
+              prop="materialNumber"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialNumber" />
+                <span>{{scope.row.materialNumber}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="产品编码"
+              prop="materialOldNumber"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialOldNumber" />
+                <span>{{scope.row.materialOldNumber}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="产品名称"
+              prop="materialName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialName" />
+                <span>{{scope.row.materialName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="规格型号"
+              prop="specification"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.specification" />
+                <span>{{scope.row.specification}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="单价"
+              prop="price"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="数量"
+              prop="qty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="金额"
+              prop="totalAmount"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="发货数量"
+              prop="hasSendQty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="押金金额"
+              prop="depositAmount"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="上交资料"
+              prop="dataQty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="收差全额"
+              prop="diffAmount"
+              min-width="160"
+              show-overflow-tooltip
+            />
+          </el-table>
+        </div>
+      </div>
+      <h3 class="gdzl">工程资料</h3>
+      <el-button
+        :disabled="isDis"
+        class="batchDownload"
+        type="primary"
+        size="small"
+        @click="batchDownloadFn"
+      >批量下载</el-button>
+
+      <el-divider />
+
+      <!-- 列表 -->
+      <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="left"
+              label="资料描述"
+              prop="dataDescribe"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="原文件名"
+              prop="fileName"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              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="left"
+              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-button-->
+                <!--                  v-if="checkFileType(scope.row.fileUrl) == 'pdf'"-->
+                <!--                  type="text"-->
+                <!--                  class="textColor"-->
+                <!--                  @click="openPdf(scope.row.fileUrl)"-->
+                <!--                >-->
+                <!--                  查看-->
+                <!--                </el-button>-->
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <div class="diy-table-1">
+        <el-row :gutter="0">
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">申请人</div>
+            <div class="value">{{ details.createBy }}</div>
+          </el-col>
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">申请日期</div>
+            <div class="value">{{ details.createTime }}</div>
+          </el-col>
+          <el-col :xs="24" :sm="24" :lg="24" class="item">
+            <div class="label">申请退押金</div>
+            <div class="value">{{ details.applyNote }}</div>
+          </el-col>
+        </el-row>
+      </div>
+      <div style="margin-top: 25px">审批</div>
+      <el-divider />
+      <div class="diy-table-1">
+        <el-row :gutter="0">
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">验收人</div>
+            <div class="value">{{ details.checkBy }}</div>
+          </el-col>
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">验收日期</div>
+            <div class="value">{{ details.checkDate }}</div>
+          </el-col>
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">是否退押</div>
+            <div class="value">
+              <template
+                v-if="
+                  !(
+                    details.examineStatus == 'WAIT' ||
+                    details.examineStatus == 'SAVE' ||
+                    details.examineStatus == 'CLOSE'
+                  )
+                "
+              >
+                {{ details.isRefundDeposit == true ? "是" : "否" }}
+              </template>
+            </div>
+          </el-col>
+          <el-col :xs="12" :sm="12" :lg="12" class="item">
+            <div class="label">审批结果</div>
+            <div v-if="details.examineStatus == 'Ok'" class="value">通过</div>
+            <div
+              v-if="details.confirmName && details.examineStatus == 'SAVE'"
+              class="value"
+            >
+              驳回
+            </div>
+          </el-col>
+          <el-col :xs="24" :sm="24" :lg="24" class="item">
+            <div class="label">验收说明</div>
+            <div class="value">{{ details.checkNote }}</div>
+          </el-col>
+          <el-col v-if="details.confirmName" :xs="24" :sm="24" :lg="24" class="item">
+            <div class="label">驳回说明</div>
+            <div class="value">{{ details.confirmName }}</div>
+          </el-col>
+        </el-row>
+      </div>
+      <div style="margin: 20px 0">
+        <el-button
+          type="primary"
+          size="small"
+          @click="handleSvse"
+        >保存</el-button>
+        <el-button
+          type="primary"
+          size="small"
+          @click="handleReset"
+        >重置</el-button>
+      </div>
+    </div>
+    <div v-show="engineering == '工程订单信息'">
+      <h3>工程订单信息</h3>
+      <el-divider />
+      <!-- 列表 -->
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column
+              align="left"
+              label="工程订单号"
+              prop="enginOrderNo"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.enginOrderNo" />
+                <span>{{scope.row.enginOrderNo}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="订单日期"
+              prop="orderDate"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="产品名称"
+              prop="materialName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialName" />
+                <span>{{scope.row.materialName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="规格型号"
+              prop="specification"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.specification" />
+                <span>{{scope.row.specification}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="单价"
+              prop="price"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="数量"
+              prop="qty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="押金金额"
+              prop="totalDepositAmount"
+              min-width="160"
+              show-overflow-tooltip
+            />
+          </el-table>
+        </div>
+      </div>
+    </div>
+    <div v-show="engineering == '工程发货信息'">
+      <h3>工程发货信息</h3>
+      <el-divider />
+      <!-- 列表 -->
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="projectList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column
+              align="left"
+              label="发货单"
+              prop="id"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.id" />
+                <span>{{scope.row.id}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="发货申请日期"
+              prop="theTime"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="产品名称"
+              prop="materialName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.materialName" />
+                <span>{{scope.row.materialName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="规格型号"
+              prop="specification"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.specification" />
+                <span>{{scope.row.specification}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="单价"
+              prop="price"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="数量"
+              prop="refundableQty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="right"
+              label="押金金额"
+              prop="totalDepositAmount"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{
+                  (scope.row.refundableQty || 0) *
+                  (scope.row.singleDepositAmount || 0)
+                }}
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+    </div>
+    <div v-show="engineering == '直调发货'" class="zd">
+      <div class="table" style="margin-top: 20px">
+        <el-table
+          :data="goodsList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="left"
+            label="发货单"
+            prop="id"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.id" />
+              <span>{{scope.row.id}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="发货申请日期"
+            prop="orderTime"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="left"
+            label="产品名称"
+            prop="materialName"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.materialName" />
+              <span>{{scope.row.materialName}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="left"
+            label="规格型号"
+            prop="specification"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.specification" />
+              <span>{{scope.row.specification}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="rihgt"
+            label="单价"
+            prop="price"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="right"
+            label="数量"
+            prop="refundableQty"
+            min-width="160"
+            show-overflow-tooltip
+          />
+          <el-table-column
+            align="right"
+            label="押金金额"
+            prop="totalDepositAmount"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="scope">
+              {{
+                (scope.row.qty || 0) *
+                (scope.row.singleDepositAmount || 0)
+              }}
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { editInfo, geDetail, geOrderInfo, getListProject } from '@/api/engin_deposit.js'
+import { getList } from '@/api/supply/adjust'
+import { downloadFiles, downloadPdf } from '@/utils/util'
+import { getFileUrl } from '@/api/common'
+
+export default {
+  data() {
+    return {
+      isDis: true,
+      listLoading: false,
+      engineering: '工程押金信息',
+      dataList: [],
+      projectList: [],
+      details: {},
+      goodsList: [],
+      warehouseList: [],
+      positionList: [],
+      imageURL: this.$imageUrl,
+      deliverForm: {
+        date: '',
+        warehouse: '',
+        position: ''
+      },
+      deliverFormRules: {
+        date: [
+          { required: true, message: '请选择发货日期', trigger: 'change' }
+        ],
+        warehouse: [
+          { required: true, message: '请选择发货仓库', trigger: 'change' }
+        ],
+        position: [
+          { required: true, message: '请选择仓位', trigger: 'change' }
+        ]
+      },
+      orderType: {
+        TRADE: '商用',
+        HOME: '家用',
+        RETAIL: '零售单',
+        RETAIL_POLICY: '销售政策单'
+      }
+    }
+  },
+  created() {
+    this.getDetail()
+  },
+  methods: {
+    getDetail() {
+      if (this.engineering == '工程押金信息') {
+        geDetail({ id: this.$parent.depositManageId }).then((res) => {
+          this.details = res.data
+          if (res.data.dataList.length == 0) {
+            this.isDis = true
+          } else {
+            this.isDis = false
+          }
+          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']
+          })
+        })
+      } else if (this.engineering == '工程订单信息') {
+        geOrderInfo({
+          refEnginRecordNo: this.$parent.refEnginRecordNo,
+          examineStatus: 'OK'
+        }).then((res) => {
+          this.dataList = res.data
+        })
+      } else if (this.engineering == '直调发货') {
+        getList({
+          pageSize: -1,
+          pageNum: 1,
+          enginRecordNo: this.$parent.refEnginRecordNo
+        }).then((res) => {
+          this.goodsList = res.data.records
+        })
+      } else {
+        getListProject({
+          pageSize: -1,
+          pageNum: 1,
+          type:3,
+          refEnginRecordNo: this.$parent.refEnginRecordNo,
+          examineStatus: 'OK'
+        }).then((res) => {
+          this.projectList = res.data.records
+        })
+      }
+    },
+    // 批量下载
+    async batchDownloadFn() {
+      downloadFiles('/deposit-manage/downZip', { parentId: this.$parent.depositManageId })
+    },
+    // 下载
+    downLoadFn(v, fileName) {
+      if (this.checkFileType(v) === 'pdf') {
+        downloadPdf(this.$imageUrl + v, fileName)
+        return
+      }
+          downloadFiles("/common/file/getStream", { key: v, fileName:fileName});
+      // 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 ''
+      }
+    },
+    goBack() {
+      this.$parent.showPage = 1
+    },
+    handleRadio(e) {
+      this.getDetail()
+    },
+    handleSvse() {
+      this.details.isRefundDeposit =
+        this.details.isRefundDeposit == true
+      editInfo(this.details).then((res) => {
+        this.$successMsg('编辑成功')
+        this.$parent.showPage = 1
+      })
+    },
+    handleReset() {
+      this.$refs.form.resetFields()
+    }
+  }
+}
+</script>
+
+<style scoped lang="scss">
+.aaa {
+  height: 64px;
+  width: 64px;
+}
+.gdzl {
+  display: inline-block;
+}
+.batchDownload {
+  float: right;
+  margin-top: 9px;
+}
+::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;
+  }
+}
+.zd {
+  ::v-deep .el-input__suffix {
+    right: 0;
+    -webkit-transition: all 0.3s;
+    transition: all 0.3s;
+  }
+}
+::v-deep .el-input__suffix {
+  right: -15px;
+  -webkit-transition: all 0.3s;
+  transition: all 0.3s;
+}
+</style>

+ 286 - 0
src/views/deposit_home/components/nodeduct_list-detail.vue

@@ -0,0 +1,286 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header @back="goBack" content="审批"> </el-page-header>
+    </div>
+    <el-divider></el-divider>
+
+    <h3>工程项目信息</h3>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程登录编码</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程名称(项目名称)</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="8" :lg="8" class="item">
+          <div class="label">工程编号</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商名称</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商编码</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">工程登录类型</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">厂工程编码</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">使用单位</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">安装地址</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">扣款总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金比例</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">安装时间</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">退款总额</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">寄厂日期</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+      </el-row>
+    </div>
+    <h3>货品信息</h3>
+    <el-divider></el-divider>
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="center"
+            label="产品编码"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="产品名称"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="规格型号"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="单价"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="数量"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="金额"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="押金金额"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="上交资料"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <h3>工程资料</h3>
+    <el-divider></el-divider>
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="center"
+            label="资料描述"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="原文件名"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="缩略图"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="下载文件名称"
+            prop=""
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="操作"
+            min-width="160"
+            show-overflow-tooltip
+          >
+            <template slot-scope="">
+              <el-button type="text" class="textColor" slot="reference"
+                >下载</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">申请人</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">申请日期</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">申请免扣押金</div>
+          <div class="value">************</div>
+        </el-col>
+      </el-row>
+    </div>
+    <h3>审批</h3>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">验收人</div>
+          <div class="value">2022123233435342</div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">验收日期</div>
+          <div class="value">
+            <el-date-picker type="date" placeholder=""> </el-date-picker>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">是否免押金</div>
+          <div class="value">
+            <el-radio-group>
+              <el-radio :label="true">是</el-radio>
+              <el-radio :label="false">否</el-radio>
+            </el-radio-group>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">审批结果</div>
+          <div class="value">
+            <el-radio-group>
+              <el-radio :label="true">同意</el-radio>
+              <el-radio :label="false">驳回</el-radio>
+            </el-radio-group>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">审批说明</div>
+          <div class="value">
+            <el-input placeholder="请输入内容"></el-input>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+    <br />
+    <!-- 按钮 -->
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <el-button type="primary" size="small">提交审批</el-button>
+        <el-button type="primary" size="small">重置</el-button>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  methods: {
+    goBack() {
+      this.$parent.showExamine = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.dateStyle {
+  width: 100%;
+}
+</style>

+ 664 - 0
src/views/deposit_home/components/refund_list-detail.vue

@@ -0,0 +1,664 @@
+<template>
+  <div>
+    <div class="sty">
+      <el-page-header @back="goBack" :content="title"> </el-page-header>
+    </div>
+    <el-divider></el-divider>
+
+    <h3>工程项目信息</h3>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="24" :lg="8" class="item">
+          <div class="label">
+            {{
+              detailList.enginOrderType == "HOME"
+                ? "工程登录编号"
+                : "工程信息编号"
+            }}
+          </div>
+          <div class="value">{{ detailList.refEnginRecordNo }}</div>
+        </el-col>
+        <!-- <el-col :xs="12" :sm="24" :lg="8" class="item">
+          <div class="label">工程信息编号</div>
+          <div class="value">{{ detailList.refEnginRecordNo }}</div>
+        </el-col> -->
+        <el-col :xs="12" :sm="24" :lg="8" class="item">
+          <div class="label">项目类别</div>
+          <div class="value">{{ detailList.refProjectName }}</div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="8" class="item">
+          <div class="label">行业类别</div>
+          <div class="value">
+            {{ detailList.refTradeCategory }}
+          </div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">跨区厂编号</div>
+          <div class="value">{{ detailList.refFactoryNo }}</div>
+        </el-col> -->
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">使用单位</div>
+          <div class="value">{{ detailList.refUseUnit }}</div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商二级代码</div>
+          <div class="value">{{detailList.}}</div>
+        </el-col> -->
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">业务员</div>
+          <div class="value">{{ detailList.serviceName }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">联系人</div>
+          <div class="value">{{ detailList.refLinkman }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">固定电话</div>
+          <div class="value">{{ detailList.refTel }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">移动电话</div>
+          <div class="value">{{ detailList.refPhone }}</div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">移动电话</div>
+          <div class="value">
+            <el-input
+              :disabled="title == '详情'"
+              placeholder="请输入"
+              v-model="detailList.refPhone"
+            ></el-input>
+          </div>
+        </el-col> -->
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金比例</div>
+          <div class="value">{{detailList.}}</div>
+        </el-col> -->
+
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">单据状态</div>
+          <div class="value">
+            {{
+              detailList.examineStatus == "SAVE"
+                ? "保存"
+                : detailList.examineStatus == "WAIT"
+                ? "待审核"
+                : detailList.examineStatus == "OK"
+                ? "通过"
+                : detailList.examineStatus == "FAIL"
+                ? "不通过"
+                : "关闭"
+            }}
+          </div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">销售类型</div>
+          <div class="value">{{ detailList.saleTypeName }}</div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">不扣押金</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col> -->
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">第几次申报</div>
+          <div class="value">{{ detailList.refDeclareNo }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">项目类型</div>
+          <div class="value">{{ detailList.refProjectType }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">经销商编码</div>
+          <div class="value">{{ detailList.customerNumber }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">押金总额</div>
+          <div class="value">{{ detailList.depositAmount }}</div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">安装时间</div>
+          <div class="value">
+            <el-date-picker prefix-icon="''" placeholder="请选择安装时间" :disabled="title == '详情'" class="selectStyle" v-model="detailList.installDate" type="datetime" default-time="00:00:00" value-format="yyyy-MM-dd HH:mm:ss">
+            </el-date-picker>
+          </div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :lg="16" class="item">
+          <div class="label">安装地址</div>
+          <div class="value">{{ detailList.refInstallAddress }}</div>
+        </el-col>
+
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">工程订单号</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col> -->
+        <el-col :xs="24" :sm="24" :lg="16" class="item">
+          <div class="label">经销商名称</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col>
+
+        <el-col :xs="24" :sm="24" :lg="16" class="item">
+          <div class="label">项目说明</div>
+          <div class="value">{{ detailList.refProjectNote }}</div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">订单日期</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col> -->
+
+        <!-- <el-col :xs="24" :sm="24" :lg="16" class="item">
+          <div class="label">格力内部备注</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col> -->
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">文件编码</div>
+          <div class="value">{{ detailList.customerName }}</div>
+        </el-col> -->
+        <el-col :xs="24" :sm="24" :lg="16" class="item">
+          <div class="label">备注</div>
+          <div class="value">{{ detailList.applyNote }}</div>
+        </el-col>
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">寄厂日期</div>
+          <div class="value">
+            <el-date-picker
+              :disabled="title == '详情'"
+              class="selectStyle"
+              v-model="detailList.sendFactoryDate"
+              type="datetime"
+              prefix-icon="''"
+              placeholder="请选择寄厂日期"
+              default-time="00:00:00"
+              value-format="yyyy-MM-dd HH:mm:ss"
+            >
+            </el-date-picker>
+          </div>
+        </el-col> -->
+        <!-- <el-col :xs="24" :sm="24" :lg="8" class="item">
+          <div class="label">提货日期</div>
+          <div class="value">{{detailList.}}</div>
+        </el-col> -->
+      </el-row>
+    </div>
+    <h3>货品信息</h3>
+    <el-divider></el-divider>
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table v-loading="listLoading" :data="detailList.items" element-loading-text="Loading" border fit highlight-current-row stripe show-summary :summary-method="$getSummaries">
+          <el-table-column align="left" label="跨区厂编号" prop="factoryNo" min-width="160" show-overflow-tooltip>\
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.factoryNo" />
+              <span>{{scope.row.factoryNo}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="left" label="产品编码" prop="materialOldNumber" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.materialOldNumber" />
+              <span>{{scope.row.materialOldNumber}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="left" label="物料编码" prop="materialNumber" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.materialNumber" />
+              <span>{{scope.row.materialNumber}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.materialName" />
+              <span>{{scope.row.materialName}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="left" label="规格型号" prop="specification" min-width="400" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <CopyButton :copyText="scope.row.specification" />
+              <span>{{scope.row.specification}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="right" label="单价" prop="price" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{ scope.row.price | numToFixed }}
+            </template>
+          </el-table-column>
+          <el-table-column align="right" label="数量" prop="qty" min-width="160" show-overflow-tooltip></el-table-column>
+          <!-- <el-table-column align="right" label="金额" prop="totalAmount" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{ scope.row.totalAmount | numToFixed }}
+            </template>
+          </el-table-column>
+          <el-table-column align="right" label="发货数量" prop="hasSendQty" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="right" label="上传资料" prop="dataQty" min-width="160" show-overflow-tooltip v-if="detailList.examineStatus !== 'WAIT'">
+          </el-table-column>
+          <el-table-column align="right" label="上传资料" prop="dataQty" min-width="160" show-overflow-tooltip v-if="detailList.examineStatus == 'WAIT'">
+            <template slot-scope="scope">
+              <el-input v-model="scope.row.dataQty"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column align="right" label="收差金额" prop="diffAmount" min-width="160" show-overflow-tooltip v-if="detailList.examineStatus !== 'WAIT'">
+            <template slot-scope="scope">
+              {{ scope.row.diffAmount | numToFixed }}
+            </template>
+          </el-table-column>
+          <el-table-column align="right" label="收差金额" prop="diffAmount" min-width="160" show-overflow-tooltip v-if="detailList.examineStatus == 'WAIT'">
+            <template slot-scope="scope">
+              <el-input v-model="scope.row.diffAmount"></el-input>
+            </template>
+          </el-table-column> -->
+        </el-table>
+      </div>
+    </div>
+
+    <h3 class="gdzl">工程资料</h3>
+    <el-button :disabled="isDis" class="batchDownload" type="primary" size="small" @click="batchDownloadFn">批量下载</el-button>
+
+    <el-divider></el-divider>
+
+    <!-- 列表 -->
+    <div class="mymain-container">
+      <div class="table">
+        <el-table v-loading="listLoading" :data="detailList.dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
+          <el-table-column align="left" label="资料描述" prop="dataDescribe" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="left" label="原文件名" prop="fileName" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column align="left" label="缩略图" prop="fileUrl" min-width="160" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <el-image ref="img" :src="imageURL + scope.row.fileUrl" v-if="checkFileType(scope.row.fileUrl) == 'image'" style="width: 120px; height: 120px" fit="cover" :preview-src-list="[imageURL + scope.row.fileUrl]">
+              </el-image>
+              <img class="file" src="@/assets/common/word.png" v-if="checkFileType(scope.row.fileUrl) == 'word'" />
+              <img class="file" src="@/assets/common/excel.png" v-if="checkFileType(scope.row.fileUrl) == 'excel'" />
+              <img class="file" src="@/assets/common/ppt.png" v-if="checkFileType(scope.row.fileUrl) == 'ppt'" />
+              <img class="file" src="@/assets/common/pdf.png" v-if="checkFileType(scope.row.fileUrl) == 'pdf'" />
+              <img v-if="checkFileType(scope.row.fileUrl) == 'file'" class="file aaa" src="@/assets/common/zip.jpeg" />
+            </template>
+          </el-table-column>
+          <el-table-column align="left" 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>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <el-divider></el-divider>
+    <div class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">申请人</div>
+          <div class="value">{{ detailList.createBy }}</div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">申请日期</div>
+          <div class="value">{{ detailList.createTime }}</div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">申请退押金</div>
+          <div class="value">{{ detailList.applyNote }}</div>
+        </el-col>
+      </el-row>
+    </div>
+    <h3 v-if="
+        detailList.examineStatus == 'WAIT' ||
+        detailList.examineStatus == 'FAIL' ||
+        detailList.examineStatus == 'OK'
+      ">
+      审批
+    </h3>
+    <el-divider v-if="
+        detailList.examineStatus == 'WAIT' ||
+        detailList.examineStatus == 'FAIL' ||
+        detailList.examineStatus == 'OK'
+      "></el-divider>
+    <div v-if="detailList.examineStatus == 'WAIT'" class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">验收人</div>
+          <div class="value">{{ this.checkBy }}</div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item dateS">
+          <div class="label">验收日期</div>
+          <div class="value">
+            <el-date-picker disabled prefix-icon="''" class="selectStyle" type="datetime" placeholder="系统自动生成" default-time="00:00:00" value-format="yyyy-MM-dd HH:mm:ss">
+            </el-date-picker>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">是否退押</div>
+          <div class="value">
+            <el-radio-group v-model="isRefundDeposit">
+              <el-radio :label="true">是</el-radio>
+              <el-radio :label="false">否</el-radio>
+            </el-radio-group>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">验收说明</div>
+          <div class="value">
+            <el-input v-model="checkNote" placeholder="请输入内容"></el-input>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+
+    <div v-if="
+        detailList.examineStatus == 'OK' || detailList.examineStatus == 'FAIL'
+      " class="diy-table-1">
+      <el-row :gutter="0">
+        <el-col :xs="12" :sm="12" :lg="12" class="item">
+          <div class="label">验收人</div>
+          <div class="value">{{ detailList.checkBy }}</div>
+        </el-col>
+        <el-col :xs="12" :sm="12" :lg="12" class="item dateS">
+          <div class="label">验收日期</div>
+          <div class="value">
+            <el-date-picker disabled prefix-icon="''" class="selectStyle" v-model="detailList.checkDate" type="datetime" placeholder="" default-time="00:00:00" value-format="yyyy-MM-dd HH:mm:ss">
+            </el-date-picker>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item">
+          <div class="label">是否退押</div>
+          <div class="value">
+            <el-radio-group v-model="detailList.isRefundDeposit">
+              <el-radio disabled :label="true">是</el-radio>
+              <el-radio disabled :label="false">否</el-radio>
+            </el-radio-group>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item dateS">
+          <div class="label">验收说明</div>
+          <div class="value">
+            <el-input disabled v-model="detailList.checkNote" placeholder="请输入内容"></el-input>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="24" :lg="24" class="item dateS">
+          <div class="label">审批通过后备注</div>
+          <div class="value">
+            <el-input v-model="detailList.examineAfterRemark" placeholder="请输入内容"></el-input>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+    <br />
+    <!-- 按钮 -->
+    <!-- detailList.examineStatus != 'OK' || detailList.examineStatus != 'FAIL' -->
+    <div class="btn-group clearfix">
+      <div class="fl">
+        <el-button v-if="detailList.examineStatus == 'WAIT'" type="primary" size="small" @click="adoptFn">审批通过</el-button>
+        <el-button v-if="detailList.examineStatus == 'WAIT'" type="primary" size="small" @click="rejectFn">审批驳回</el-button>
+        <el-button v-if="detailList.examineStatus == 'OK'" type="primary" size="small" @click="saveFn">保存</el-button>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { downloadFiles } from "@/utils/util";
+import IMAGEUPLOAD from "@/components/Common/image-upload.vue";
+import { getFileUrl } from "@/api/common";
+import { mapGetters } from "vuex";
+import {
+  getDepositManageDetail,
+  getDepositManageExamine,
+  getDepositManageDownZip,
+  getDepositManageEdit,
+  getCommonFileGetStream,
+} from "@/api/engin_deposit/refund_list";
+export default {
+  props: {
+    detailId: {
+      type: String,
+      required: true,
+    },
+  },
+  components: { IMAGEUPLOAD },
+  computed: {
+    ...mapGetters(["name"]),
+  },
+  data() {
+    return {
+      isDis: true,
+      imageURL: this.$imageUrl,
+      title: "审批",
+      imageURL: this.$imageUrl,
+      listLoading: false, // 列表加载loading
+      dataList: [], // 列表数据
+      detailList: {},
+      checkBy: "",
+      checkDate: "",
+      isRefundDeposit: true,
+      checkNote: "",
+    };
+  },
+  created() {
+    console.log(this.$imageUrl, 8888);
+    this.checkBy = this.name;
+    this.getData({ id: this.detailId });
+  },
+  methods: {
+    //审批通过后可以编辑
+    async saveFn() {
+      console.log(this.detailList);
+      await getDepositManageEdit(this.detailList);
+      this.$message.success("保存成功");
+      this.goBack();
+      this.$emit("updateList");
+    },
+    //批量下载
+    async batchDownloadFn() {
+      downloadFiles("/deposit-manage/downZip", { parentId: this.detailId });
+    },
+    //下载
+    async downLoadFn(v, name) {
+      // getCommonFileGetStream({ key: v, fileName: name }).then((res) => {
+      //   // window.open(res.data);
+      // });
+      // // window.open(this.imageURL + v);
+      downloadFiles("/common/file/getStream", { key: v, fileName: name });
+      // await getCommonFileGetStream({ key: v, fileName: name });
+    },
+    // 检查文件类型
+    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 "";
+      }
+    },
+    //审批驳回
+    async rejectFn() {
+      this.$confirm("此操作将审批订单, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          if (!this.detailList.installDate) {
+            this.$message.error("请选择安装时间");
+            return;
+          }
+          let data = {
+            ...this.detailList,
+            checkBy: this.checkBy,
+            // checkDate: this.checkDate,
+            isRefundDeposit: this.isRefundDeposit,
+            checkNote: this.checkNote,
+            examineResult: 0,
+          };
+          getDepositManageExamine(data)
+            .then((res) => {
+              if (!res.data) {
+                this.goBack();
+                this.$emit("updateList");
+              } else {
+                this.$confirm("审批成功!是否跳转下一张待审批订单?", "提示", {
+                  confirmButtonText: "跳转",
+                  cancelButtonText: "取消",
+                  type: "warning",
+                })
+                  .then(() => {
+                    this.$successMsg("进入下一张待审批订单");
+                    this.detailList = res.data;
+                  })
+                  .catch(() => {
+                    this.goBack();
+                    this.$emit("updateList");
+                  });
+              }
+            })
+            .finally((res) => {});
+        })
+        .catch(() => {});
+      // if (!this.detailList.installDate) {
+      //   this.$message.error("请选择安装时间");
+      //   return;
+      // }
+      // let data = {
+      //   ...this.detailList,
+      //   checkBy: this.checkBy,
+      //   // checkDate: this.checkDate,
+      //   isRefundDeposit: this.isRefundDeposit,
+      //   checkNote: this.checkNote,
+      //   examineResult: 0,
+      // };
+      // await getDepositManageExamine(data);
+      // this.$message.success("审批驳回");
+      // this.goBack();
+      // this.$emit("updateList");
+    },
+    //审批通过
+    async adoptFn() {
+      this.$confirm("此操作将审批订单, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          if (!this.detailList.installDate) {
+            this.$message.error("请选择安装时间");
+            return;
+          }
+          let data = {
+            ...this.detailList,
+            checkBy: this.checkBy,
+            // checkDate: this.checkDate,
+            isRefundDeposit: this.isRefundDeposit,
+            checkNote: this.checkNote,
+            examineResult: 1,
+          };
+          getDepositManageExamine(data)
+            .then((res) => {
+              if (!res.data) {
+                this.goBack();
+                this.$emit("updateList");
+              } else {
+                this.$confirm("审批成功!是否跳转下一张待审批订单?", "提示", {
+                  confirmButtonText: "跳转",
+                  cancelButtonText: "取消",
+                  type: "warning",
+                })
+                  .then(() => {
+                    this.$successMsg("进入下一张待审批订单");
+                    this.detailList = res.data;
+                  })
+                  .catch(() => {
+                    this.goBack();
+                    this.$emit("updateList");
+                  });
+              }
+            })
+            .finally((res) => {});
+        })
+        .catch(() => {});
+
+      // if (!this.detailList.installDate) {
+      //   this.$message.error("请选择安装时间");
+      //   return;
+      // }
+      // let data = {
+      //   ...this.detailList,
+      //   checkBy: this.checkBy,
+      //   // checkDate: this.checkDate,
+      //   isRefundDeposit: this.isRefundDeposit,
+      //   checkNote: this.checkNote,
+      //   examineResult: 1,
+      // };
+      // await getDepositManageExamine(data);
+      // this.$message.success("审批通过");
+      // this.goBack();
+      // this.$emit("updateList");
+    },
+    async getData(data) {
+      const res = await getDepositManageDetail(data);
+      console.log(res);
+      if (res.data.dataList.length == 0) {
+        this.isDis = true;
+      } else {
+        this.isDis = false;
+      }
+      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"];
+      });
+      this.detailList = res.data;
+      if (
+        res.data.examineStatus == "SAVE" ||
+        res.data.examineStatus == "OK" ||
+        res.data.examineStatus == "FAIL"
+      ) {
+        this.title = "详情";
+      }
+    },
+    goBack() {
+      this.$parent.showSurrender = true;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.aaa {
+  height: 64px;
+  width: 64px;
+}
+.dateS {
+  .value {
+    padding: 0;
+  }
+}
+.batchDownload {
+  float: right;
+  margin-top: 9px;
+}
+.gdzl {
+  display: inline-block;
+}
+.dateStyle {
+  width: 100%;
+}
+.label {
+  width: 150px !important;
+}
+.selectStyle {
+  width: 100%;
+}
+</style>

+ 529 - 0
src/views/deposit_home/deposit_list.vue

@@ -0,0 +1,529 @@
+<template>
+  <div class="app-container">
+    <div v-if="showPage == 1">
+      <el-radio-group v-model="deduction" size="mini" @change="handleRadio">
+        <el-radio-button label="全部" />
+        <el-radio-button label="已退押" />
+      </el-radio-group>
+      <br><br>
+      <!-- 筛选条件 -->
+      <div>
+        <el-form
+          ref="screenForm"
+          :model="screenForm"
+          label-width="120px"
+          size="mini"
+          label-position="left"
+        >
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程登录编号" prop="refEnginRecordNo">
+                <el-input
+                  v-model="screenForm.refEnginRecordNo"
+                  placeholder="请输入"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商编码/名称" prop="customerKeyword">
+                <el-input
+                  v-model="screenForm.customerKeyword"
+                  placeholder="请输入"
+                />
+              </el-form-item>
+            </el-col>
+            <!-- <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商名称" prop="customerKeyword">
+                <el-input
+                  v-model="screenForm.customerKeyword"
+                  placeholder="请输入"
+                ></el-input>
+              </el-form-item>
+            </el-col> -->
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程名称" prop="refProjectName">
+                <el-input
+                  v-model="screenForm.refProjectName"
+                  placeholder="请输入"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请日期" prop="startDeliverTime">
+                <el-date-picker
+                  v-model="screenForm.startDeliverTime"
+                  class="dateStyle"
+                  type="datetime"
+                  placeholder="选择日期"
+                />
+              </el-form-item>
+            </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="申请日期" prop="startSubmitTime">
+                <el-date-picker
+                  v-model="screenForm.startSubmitTime"
+                  class="dateStyle"
+                  type="datetime"
+                  placeholder="选择日期"
+                />
+              </el-form-item>
+            </el-col>
+              <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="验收日期" prop="startConfirmTime">
+                <el-date-picker
+                  v-model="screenForm.startConfirmTime"
+                  class="dateStyle"
+                  type="datetime"
+                  placeholder="选择日期"
+                />
+              </el-form-item>
+            </el-col>
+             <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="是否退押 " prop="isRefundDeposit">
+              <el-select v-model="screenForm.isRefundDeposit"  placeholder="请选择是否退押 " >
+              <el-option  label="默认" :value="null"></el-option>
+
+                <el-option v-for="item in refundDepositArr"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+              </el-form-item>
+            </el-col>
+   <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="状态 " prop="examineStatus">
+              <el-select v-model="screenForm.examineStatus"  placeholder="请选择状态 " >
+              <el-option  label="默认" :value="null"></el-option>
+
+                <el-option v-for="item in examineStatusArr"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+              </el-form-item>
+            </el-col>
+            <!-- <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="产品名称" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="规格型号" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col> -->
+            <el-col :xs="24" :sm="24" :lg="24">
+              <el-form-item label="" class="fr">
+                <el-button
+                  size="mini"
+                  @click="resetScreenForm"
+                >清空</el-button>
+                <el-button
+                  size="mini"
+                  type="primary"
+                  @click="submitScreenForm"
+                >搜索</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <!-- 按钮 -->
+      <div class="btn-group clearfix" style="display: flex">
+        <el-button
+          type="primary"
+          size="mini"
+          @click="hanleDownloadFiles"
+        >导出</el-button>
+        <el-upload
+          v-if="$checkBtnRole('import', $route.meta.roles)"
+          class="import-btn"
+          :action="baseURL + 'student/import'"
+          :http-request="handleImport"
+          :file-list="importFileList"
+          :show-file-list="false"
+        >
+          <el-button size="mini">导入</el-button>
+        </el-upload>
+      </div>
+      <!-- 列表 -->
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+            show-summary
+            :summary-method="$getSummaries"
+            @select-all="handleSelectionAllChange"
+            @selection-change="handleSelectionAllChange"
+          >
+            <el-table-column align="left" type="selection" width="55" />
+            <el-table-column
+              align="left"
+              label="工程登录编号"
+              prop="refEnginRecordNo"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="使用单位"
+              prop="refUseUnit"
+              min-width="160"
+              show-overflow-tooltip
+            />
+             <el-table-column
+              align="left"
+              label="申请日期"
+              prop="submitTime"
+              min-width="160"
+              show-overflow-tooltip
+            />
+             <el-table-column
+              align="left"
+              label="验收日期"
+              prop="checkDate"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              align="left"
+              label="经销商编码"
+              prop="customerNumber"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.customerNumber" />
+                <span>{{ scope.row.customerNumber }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="left"
+              label="经销商名称"
+              prop="customerName"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <CopyButton :copy-text="scope.row.customerName" />
+                <span>{{ scope.row.customerName }}</span>
+              </template>
+            </el-table-column>
+            <!-- <el-table-column
+              align="left"
+              label="是否免扣"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column> -->
+            <el-table-column
+              align="left"
+              label="是否退押"
+              prop="isRefundDeposit"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-tag
+                  v-if="scope.row.isRefundDeposit"
+                  type="success"
+                  size="small"
+                >是</el-tag>
+                <el-tag v-else type="warning" size="small">否</el-tag>
+              </template>
+            </el-table-column>
+            <!-- <el-table-column
+              align="left"
+              label="押金比例"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column> -->
+            <el-table-column
+              align="right"
+              label="押金金额"
+              prop="depositAmount"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                {{ scope.row.depositAmount | numToFixed }}
+              </template>
+            </el-table-column>
+
+            <el-table-column
+              align="left"
+              label="状态"
+              prop="examineStatus"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-tag
+                  v-if="scope.row.examineStatus == 'SAVE'"
+                  type="success"
+                  size="small"
+                >保存
+                </el-tag>
+                <el-tag
+                  v-if="scope.row.examineStatus == 'WAIT'"
+                  type="warning"
+                  size="small"
+                >待审核
+                </el-tag>
+                <el-tag
+                  v-if="scope.row.examineStatus == 'OK'"
+                  type="warning"
+                  size="mini"
+                >通过</el-tag>
+                <el-tag
+                  v-if="scope.row.examineStatus == 'FAIL'"
+                  type="warning"
+                  size="small"
+                >不通过</el-tag>
+                <el-tag
+                  v-if="scope.row.examineStatus == 'CLOSE'"
+                  type="warning"
+                  size="small"
+                >关闭</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column
+              align="right"
+              label="订单数量"
+              prop="qty"
+              min-width="160"
+              show-overflow-tooltip
+            />
+            <!-- <el-table-column
+              align="left"
+              label="是否已发货"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column> -->
+            <el-table-column
+              align="center"
+              label="操作"
+              min-width="160"
+              fixed="right"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  class="textColor"
+                  size="mini"
+                  @click="detailFn(scope.row)"
+                >详情</el-button>
+                <el-button
+                  v-if="
+                    scope.row.examineStatus == 'SAVE' &&
+                      $checkBtnRole('apply', $route.meta.roles)
+                  "
+                  type="text"
+                  class="textColor"
+                  @click="surrenderFn(scope.row)"
+                >申请退押</el-button>
+                <!-- <el-button type="text" class="textColor" slot="reference"
+                  >免扣退押</el-button
+                > -->
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </div>
+    </div>
+    <DepositListDetail v-else-if="showPage == 2" />
+    <DepositApplyDeduction v-else-if="showPage == 3" />
+    <DepositApplySurrender v-else-if="showPage == 4" />
+  </div>
+</template>
+
+<script>
+import DepositListDetail from './components/deposit_list-detail'
+import DepositApplyDeduction from './components/deposit-apply-deduction.vue'
+import DepositApplySurrender from './components/deposit-apply-surrender.vue'
+import { downloadFiles, handleImport } from '@/utils/util'
+import { getList } from '@/api/engin_deposit.js'
+import Mixin from '@/mixin'
+
+export default {
+  components: {
+    DepositListDetail,
+    DepositApplyDeduction,
+    DepositApplySurrender
+  },
+  mixins: [Mixin],
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: [], // 列表数据
+      screenForm: {
+        confirmName: '', // 审核人
+        createName: '', // 创建人
+        customerKeyword: '', // 客户编码/客户名称
+        endDeliverTime: '', // 发货申请日期-结束
+        enginOrderNo: '', // 工程订单编号
+        enginOrderType: 'HOME', // 工程订单类型
+        examineStatus: '', // 状态
+        refEnginRecordNo: '', // 登录单号
+        refProjectName: '', // 项目名称
+        refUseUnit: '', // 使用单位
+        startDeliverTime: '', // 发货申请日期-开始
+        startSubmitTime:'',
+        startConfirmTime:'',
+        isRefundDeposit:null,
+        examineStatus:null
+      }, // 搜索表单
+      listLoading: false, // 列表加载loading
+      deduction: '全部',
+      showPage: 1,
+      importFileList: [],
+      selectData: [],
+      baseURL: '',
+      refundDepositArr:[
+        {
+          label:'是',
+          value:true
+        },
+        {
+          label:'否',
+          value:false
+        }
+      ],
+
+      examineStatusArr:[
+         {
+          label:'保存',
+          value:'SAVE'
+        },
+        {
+          label:'待审核',
+          value:'WAIT'
+        },
+        {
+          label:'通过',
+          value:'OK'
+        },
+        {
+          label:'不通过',
+          value:'FAIL'
+        },
+        {
+          label:'关闭',
+          value:'CLOSE'
+        },
+      ]
+    }
+  },
+
+  methods: {
+    // 免扣申请
+    deductionFn() {
+      this.showPage = 3
+    },
+    // 申请退押
+    surrenderFn(row) {
+      this.depositManageId = row.depositManageId
+      this.showPage = 4
+    },
+    detailFn(row) {
+      this.depositManageId = row.depositManageId
+      this.refEnginRecordNo = row.refEnginRecordNo
+      this.showPage = 2
+    },
+    getList() {
+      this.listLoading = true
+      const params = {
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        isRefundDeposit: this.deduction === '已退押' ? true : null,
+        ...this.screenForm
+      }
+
+      getList(params).then((res) => {
+        this.dataList = res.data.records
+        res.data.records.forEach((item) => {
+          // item.number = (item.qty*100 - item.directTransferQty*100 - item.retiredQty*100) / 100;
+          item.sums1 = ['qty']
+          item.sums2 = ['depositAmount', 'diffAmount', 'price']
+        })
+        this.listLoading = false
+        this.listTotal = res.data.total
+      })
+    },
+    handleRadio() {
+      this.getList()
+    },
+    hanleDownloadFiles() {
+      if (this.selectData.length) {
+        const arr = []
+        for (let i = 0; i < this.selectData.length; i++) {
+          arr.push(this.selectData[i].depositManageId)
+        }
+        downloadFiles('/deposit-manage/export', { id: arr })
+      } else {
+        this.$errorMsg('请选择押金项')
+      }
+    },
+    // 导入
+    async handleImport(param) {
+      this.importLoading = true
+      const file = param.file
+      console.log(file, 123)
+      const formData = new FormData()
+      formData.append('file', file)
+      // formData.append("policyId", this.screenForm.code);
+      const result = await handleImport('deposit-manage/import', formData)
+      this.importLoading = false
+      this.importFileList = []
+      if (result.code == 200) {
+        this.$alert(result.message, '导入成功', {
+          confirmButtonText: '确定'
+        })
+
+        this.handletwoList()
+      } else {
+        this.$alert(result.message, '导入失败', {
+          confirmButtonText: '确定'
+        })
+      }
+    },
+    handleSelectionAllChange(e) {
+      this.selectData = e
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.dateStyle {
+  width: 100%;
+}
+.import-btn {
+  margin-left: 10px;
+}
+</style>

+ 219 - 0
src/views/deposit_home/nodeduct_list.vue

@@ -0,0 +1,219 @@
+<template>
+  <div class="app-container">
+    <div v-if="showExamine">
+      <el-radio-group v-model="examine" size="">
+        <el-radio-button label="全部"></el-radio-button>
+        <el-radio-button label="待审核"></el-radio-button>
+        <el-radio-button label="审核驳回"></el-radio-button>
+        <el-radio-button label="审核通过"></el-radio-button>
+      </el-radio-group>
+      <br /><br />
+      <!-- 筛选条件 -->
+      <div>
+        <el-form
+          ref="searchForm"
+          :model="searchForm"
+          label-width="100px"
+          size="small"
+          label-position="left"
+        >
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程订单编号" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商编码" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商名称" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程名称" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请日期" prop="">
+                <el-date-picker
+                  class="dateStyle"
+                  type="date"
+                  placeholder="选择日期"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="产品名称" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="规格型号" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+
+            <el-col :xs="24" :sm="24" :lg="6">
+              <el-form-item label="" class="fr">
+                <el-button size="small">清空</el-button>
+                <el-button size="small" type="primary">搜索</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <!-- 按钮 -->
+      <div class="btn-group clearfix">
+        <div class="fl">
+          <el-button type="primary" size="small" @click="examineFn"
+            >审批</el-button
+          >
+          <el-button type="primary" size="small">编辑</el-button>
+          <el-button type="primary" size="small">详情</el-button>
+        </div>
+        <div class="fr">
+          <el-button type="primary" size="small">导出</el-button>
+        </div>
+      </div>
+      <!-- 列表 -->
+      <div class="mymain-container">
+        <div class="table">
+          <el-table
+            v-loading="listLoading"
+            :data="dataList"
+            element-loading-text="Loading"
+            border
+            fit
+            highlight-current-row
+            stripe
+          >
+            <el-table-column
+              align="center"
+              label="工程登录编码"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="工程名称"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="经销商编码"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="经销商名称"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="是否免扣"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="押金比例"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="押金金额"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="状态"
+              prop=""
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
+              align="center"
+              label="操作"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="">
+                <el-button type="text" class="textColor" slot="reference"
+                  >审批</el-button
+                >
+                <el-button type="text" class="textColor" slot="reference"
+                  >编辑</el-button
+                >
+                <el-button type="text" class="textColor" slot="reference"
+                  >详情</el-button
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 20, 30, 50]"
+            :page-size="10"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listTotal"
+          >
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+    <NodeductListDetail v-else />
+  </div>
+</template>
+
+<script>
+import NodeductListDetail from "./components/nodeduct_list-detail";
+export default {
+  components: {
+    NodeductListDetail,
+  },
+  data() {
+    return {
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: [], // 列表数据
+      searchForm: {}, //搜索表单
+      listLoading: false, // 列表加载loading
+      examine: "全部",
+      showExamine: true,
+    };
+  },
+  methods: {
+    examineFn() {
+      this.showExamine = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.dateStyle {
+  width: 100%;
+}
+</style>

+ 452 - 0
src/views/deposit_home/refund_list.vue

@@ -0,0 +1,452 @@
+<template>
+  <div class="app-container">
+    <div v-if="showSurrender">
+      <el-radio-group @change="changeRadioFn" v-model="examine" size="mini">
+        <el-radio-button label="">全部</el-radio-button>
+        <el-radio-button label="SAVE">保存</el-radio-button>
+        <el-radio-button label="WAIT">待审核</el-radio-button>
+        <el-radio-button label="FAIL">审核驳回</el-radio-button>
+        <el-radio-button label="OK">审核通过</el-radio-button>
+      </el-radio-group>
+      <br /><br />
+      <!-- 筛选条件 -->
+      <div>
+        <el-form ref="searchForm" :model="searchForm" label-width="160px" size="mini" label-position="left">
+          <el-row :gutter="20">
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程登录编号" prop="refEnginRecordNo">
+                <el-input v-model="searchForm.refEnginRecordNo" placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商编码" prop="customerKeyword">
+                <el-input v-model="searchForm.customerKeyword" placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <!-- <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="经销商名称" prop="customerKeyword">
+                <el-input
+                  v-model="searchForm.customerKeyword"
+                  placeholder="请输入"
+                ></el-input>
+              </el-form-item>
+            </el-col> -->
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="工程名称" prop="refProjectName">
+                <el-input v-model="searchForm.refProjectName" placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <!-- <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请开始日期" prop="startDeliverTime">
+                <el-date-picker
+                  class="dateStyle"
+                  v-model="searchForm.startDeliverTime"
+                  type="datetime"
+                  placeholder=""
+                  default-time="00:00:00"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="发货申请结束日期" prop="endDeliverTime">
+                <el-date-picker
+                  v-model="searchForm.endDeliverTime"
+                  class="dateStyle"
+                  type="datetime"
+                  placeholder=""
+                  default-time="23:59:59"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col> -->
+            <!-- <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="产品名称" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="规格型号" prop="">
+                <el-input placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col> -->
+
+            <el-col :xs="24" :sm="12" :lg="6">
+              <el-form-item label="" class="fr">
+                <el-button size="mini" @click="resetFn">清空</el-button>
+                <el-button size="mini" type="primary" @click="searchFn">搜索</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <!-- 按钮 -->
+      <div class="btn-group clearfix">
+        <div class="fl">
+          <el-radio-group @change="changeEnginOrderTypeFn" v-model="enginOrderType" size="mini">
+            <el-radio-button label="HOME">家用工程</el-radio-button>
+            <el-radio-button label="TRADE">商用工程</el-radio-button>
+          </el-radio-group>
+        </div>
+        <div class="fr">
+          <el-button type="primary" size="mini" @click="exportFn">导出</el-button>
+          <el-upload class="import-btn" action="" :http-request="handleImport" :file-list="importFileList" :show-file-list="false">
+            <el-button type="primary" size="mini">导入</el-button>
+          </el-upload>
+        </div>
+      </div>
+      <!-- 列表 -->
+      <div class="mymain-container">
+        <div class="table">
+          <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe @selection-change="handleSelectionChange" show-summary :summary-method="$getSummaries">
+            >
+            <el-table-column type="selection" align="center" width="55">
+            </el-table-column>
+            <el-table-column align="left" label="状态" prop="" min-width="160" show-overflow-tooltip>
+              <template v-slot="{ row }">
+                <el-tag size="mini" v-show="row.examineStatus == 'SAVE'">保存</el-tag>
+                <el-tag size="mini" v-show="row.examineStatus == 'WAIT'" type="warning">待审核</el-tag>
+                <el-tag size="mini" v-show="row.examineStatus == 'OK'" type="success">通过</el-tag>
+                <el-tag size="mini" v-show="row.examineStatus == 'FAIL'" type="danger">不通过</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="工程登录编号" prop="refEnginRecordNo" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.refEnginRecordNo" />
+                <span>{{scope.row.refEnginRecordNo}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="项目类别" prop="refProjectName" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.refProjectName" />
+                <span>{{scope.row.refProjectName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="机型" prop="specification" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.specification" />
+                <span>{{scope.row.a}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="经销商编码" prop="customerNumber" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerNumber" />
+                <span>{{scope.row.customerNumber}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="经销商名称" prop="customerName" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerName" />
+                <span>{{scope.row.customerName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="跨区厂编号" prop="refFactoryNo" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.refFactoryNo" />
+                <span>{{scope.row.refFactoryNo}}</span>
+              </template>
+            </el-table-column>
+            <!-- <el-table-column align="left" label="产品编码" prop="customerName" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerName" />
+                <span>{{scope.row.customerName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="物料编码" prop="customerName" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerName" />
+                <span>{{scope.row.customerName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="产品名称" prop="customerName" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerName" />
+                <span>{{scope.row.customerName}}</span>
+              </template>
+            </el-table-column>
+            <el-table-column align="left" label="规格型号" prop="customerName" min-width="260" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <CopyButton :copyText="scope.row.customerName" />
+                <span>{{scope.row.customerName}}</span>
+              </template>
+            </el-table-column> -->
+            <el-table-column align="right" label="押金金额" prop="depositAmount" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                {{ scope.row.depositAmount | numToFixed }}
+              </template>
+            </el-table-column>
+            <el-table-column fixed="right" align="center" label="操作" min-width="160" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <el-button type="text" class="textColor" v-if="
+                    scope.row.examineStatus == 'WAIT' &&
+                    $checkBtnRole('examine', $route.meta.roles)
+                  " @click="examineFn(scope.row.depositManageId)">审批</el-button>
+
+                <el-button type="text" class="textColor" v-if="
+                    scope.row.examineStatus == 'SAVE' ||
+                    scope.row.examineStatus == 'OK' ||
+                    scope.row.examineStatus == 'FAIL'
+                  " @click="infoFn(scope.row.depositManageId)">详情</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <!-- 分页 -->
+        <div class="fr">
+          <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="listTotal">
+          </el-pagination>
+        </div>
+      </div>
+    </div>
+    <RefundListDetail @updateList="updateList" :detailId="detailId" v-else />
+  </div>
+</template>
+
+<script>
+import {
+  getDepositManageList,
+  getDepositManagExport,
+} from "@/api/engin_deposit/refund_list";
+import { downloadFiles, handleImport } from "@/utils/util";
+import RefundListDetail from "./components/refund_list-detail.vue";
+export default {
+  components: {
+    RefundListDetail,
+  },
+  data() {
+    return {
+      importFileList: [],
+      enginOrderType: "HOME", //列表类型
+      currentPage: 1, // 当前页码
+      pageSize: 10, // 每页数量
+      listTotal: 0, // 列表总数
+      dataList: [], // 列表数据
+      searchForm: {
+        refEnginRecordNo: "",
+        customerKeyword: "",
+        refProjectName: "",
+        // startDeliverTime: "",
+        // endDeliverTime: "",
+      }, //搜索表单
+      listLoading: false, // 列表加载loading
+      examine: "",
+      showSurrender: true,
+      detailId: "",
+      selectData: [],
+    };
+  },
+  created() {
+    this.getDataList({
+      pageSize: this.pageSize,
+      pageNum: this.currentPage,
+      confirmName: "",
+      createName: "",
+      customerKeyword: "",
+      // endDeliverTime: "",
+      enginOrderNo: "",
+      enginOrderType: this.enginOrderType,
+      examineStatus: "",
+      refEnginRecordNo: "",
+      refProjectName: "",
+      refUseUnit: "",
+      // startDeliverTime: "",
+    });
+  },
+  methods: {
+    // 导入
+    async handleImport(param) {
+      const file = param.file;
+
+      const formData = new FormData();
+      formData.append("file", file);
+
+      let result = await handleImport("/deposit-manage/import", formData);
+
+      console.log(result);
+      this.importFileList = [];
+      if (result.code == 200) {
+        this.$message.success("导入成功");
+        this.getDataList({
+          pageSize: this.pageSize,
+          pageNum: this.currentPage,
+          confirmName: "",
+          createName: "",
+          customerKeyword: "",
+          // endDeliverTime: "",
+          enginOrderNo: "",
+          enginOrderType: this.enginOrderType,
+          examineStatus: "",
+          refEnginRecordNo: "",
+          refProjectName: "",
+          refUseUnit: "",
+          // startDeliverTime: "",
+        });
+      } else {
+        this.$message.error(result.message);
+      }
+    },
+    //审批后更新列表数据
+    updateList() {
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        customerKeyword: "",
+        // endDeliverTime: "",
+        enginOrderNo: "",
+        enginOrderType: this.enginOrderType,
+        examineStatus: "",
+        refEnginRecordNo: "",
+        refProjectName: "",
+        refUseUnit: "",
+        // startDeliverTime: "",
+      });
+    },
+    //切换列表
+    changeEnginOrderTypeFn(v) {
+      // console.log(v);
+      this.pageSize = 10;
+      this.currentPage = 1;
+
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        customerKeyword: "",
+        // endDeliverTime: "",
+        enginOrderNo: "",
+        enginOrderType: v,
+        examineStatus: this.examine,
+        refEnginRecordNo: "",
+        refProjectName: "",
+        refUseUnit: "",
+        // startDeliverTime: "",
+      });
+    },
+    // 更改每页数量
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = 1;
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        customerKeyword: "",
+        // endDeliverTime: "",
+        enginOrderNo: "",
+        enginOrderType: this.enginOrderType,
+        examineStatus: this.examine,
+        refEnginRecordNo: "",
+        refProjectName: "",
+        refUseUnit: "",
+        // startDeliverTime: "",
+      });
+    },
+    // 更改当前页
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        customerKeyword: "",
+        // endDeliverTime: "",
+        enginOrderNo: "",
+        enginOrderType: this.enginOrderType,
+        examineStatus: this.examine,
+        refEnginRecordNo: "",
+        refProjectName: "",
+        refUseUnit: "",
+        // startDeliverTime: "",
+      });
+    },
+    //切换radio
+    changeRadioFn(v) {
+      this.examine = v;
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        customerKeyword: "",
+        // endDeliverTime: "",
+        enginOrderNo: "",
+        enginOrderType: this.enginOrderType,
+        examineStatus: this.examine,
+        refEnginRecordNo: "",
+        refProjectName: "",
+        refUseUnit: "",
+        // startDeliverTime: "",
+      });
+    },
+    //导出
+    exportFn() {
+      if (this.selectData.length) {
+        const arr = [];
+        for (let i = 0; i < this.selectData.length; i++) {
+          arr.push(this.selectData[i].depositManageId);
+        }
+        downloadFiles("/deposit-manage/export", { id: arr });
+      } else {
+        this.$errorMsg("请选择押金项");
+      }
+    },
+    //多选列表数据
+    handleSelectionChange(selectData) {
+      this.selectData = selectData;
+    },
+    //重置
+    resetFn() {
+      this.$refs.searchForm.resetFields();
+    },
+    //搜索
+    searchFn() {
+      this.getDataList({
+        pageSize: this.pageSize,
+        pageNum: this.currentPage,
+        confirmName: "",
+        createName: "",
+        enginOrderNo: "",
+        enginOrderType: this.enginOrderType,
+        examineStatus: this.examine,
+        refUseUnit: "",
+        ...this.searchForm,
+      });
+    },
+    //详情
+    infoFn(id) {
+      this.detailId = id;
+      this.showSurrender = false;
+    },
+    async getDataList(data) {
+      const res = await getDepositManageList(data);
+      res.data.records.forEach((item) => {
+        item.sums1 = [];
+        item.sums2 = ["depositAmount"];
+      });
+      this.dataList = res.data.records;
+      this.listTotal = res.data.total;
+    },
+    examineFn(id) {
+      this.detailId = id;
+      this.showSurrender = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.dateStyle {
+  width: 100%;
+}
+.import-btn {
+  margin-left: 10px;
+  display: inline-block;
+}
+</style>