<!--采购合同-->
<!--2019年5月30日 20:25:16 by jlx-->
<template>
  <div>
    <BaseHeaderLayout :leftSpan="10">
      <template slot="left">
        <ws-button
          type="primary"
          @click="handleAdd()"
          v-hasPermission="
            `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
          "
          >添加</ws-button
        >
        <ws-button
          @click="exportlist()"
          v-hasPermission="
            `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
          "
          >导出</ws-button
        >
      </template>
      <template slot="right">
        <ws-select
          v-model="searchTypeText"
          placeholder=""
          class="typeselect"
          @change="selecttaskType"
          :value="searchType"
        >
          <ws-option
            v-for="item in taskTypeList"
            :key="item.value"
            :label="item.value"
            :value="item.value"
          />
        </ws-select>
        <ws-date-picker
          :picker-options="pickerBeginDateBefore"
          v-model="startDate"
          type="date"
          default-value="1980-01-01"
          placeholder="起始日期"
          format="yyyy-MM-dd"
          value-format="yyyy-MM-dd"
        />
        <span>至</span>
        <ws-date-picker
          :picker-options="pickerBeginDateBefore"
          v-model="endDate"
          type="date"
          default-value="1980-01-01"
          placeholder="截止日期"
          format="yyyy-MM-dd"
          value-format="yyyy-MM-dd"
        />
        <ws-input
          v-model="searchKeyWord"
          placeholder="可按照合同编号、买方名称、卖方名称进行查找"
          clearable
          maxlength="500"
          type="input"
          class="findValue"
        ></ws-input>
        <!-- v-hasPermission="'procurement.sparepart.directShip'" -->
        <ws-button
          type="primary"
          @click="find()"
          v-hasPermission="
            `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
          "
          >查找</ws-button
        >
      </template>
    </BaseHeaderLayout>
    <el-table
      class="wenzi"
      :data="contractList.records"
      style="width: 100%; margin-top: 10px"
    >
      <el-table-column type="index" label="序号" />
      <el-table-column prop="contractNo" label="合同编号" width="80">
      </el-table-column>
      <el-table-column prop="goodsName" label="货名" width="80">
      </el-table-column>
      <el-table-column prop="grade" label="品级"> </el-table-column>
      <el-table-column prop="weight" label="重量（吨）"> </el-table-column>
      <el-table-column prop="unitContractPrice" label="合同单价（元）">
      </el-table-column>
      <el-table-column prop="packingMethod" label="包装方式"> </el-table-column>
      <el-table-column prop="buyer" label="买方"> </el-table-column>
      <el-table-column prop="seller" label="卖方"> </el-table-column>
      <el-table-column prop="imperfectGrain" label="已完成（吨）">
      </el-table-column>
      <el-table-column prop="status" label="状态">
        <template slot-scope="scope">
          <el-popover
            placement="left"
            :width="400"
            trigger="click"
            visible-arrow="false"
            @show="history(scope.row)"
          >
            <template>
              <span slot="reference">{{ scope.row.status }}</span>
            </template>
            <div>
              <p>操作历史</p>
              <div v-for="(item, index) in historyList">
                <div class="vertical-circle"></div>
                <div class="vertical-text">
                  {{ item.operateUser }}{{ item.dealMsg }}<br />{{
                    item.updateDate
                  }}
                </div>
                <div
                  v-if="index != historyList.length - 1"
                  class="vertical-line"
                ></div>
              </div>
            </div>
          </el-popover>
          <i class="el-icon-edit" @click="editClick(scope.row)"></i>
        </template>
      </el-table-column>
      <el-table-column prop="signingDate" label="签订日期"> </el-table-column>
      <el-table-column prop="mildewGrain" label="已付款（元）">
      </el-table-column>
      <el-table-column prop="addressUrl" label="附件">
        <template slot-scope="scope">
          <i @click="fujian(scope.row)" class="el-icon-paperclip iconCss"></i>
        </template>
      </el-table-column>
      <el-table-column prop="address" label="操作" width="300">
        <template slot-scope="scope">
          <el-button
            type="success"
            size="small"
            @click="handleExamine(scope.row)"
            >查看</el-button
          >
          <el-button type="primary" size="small" @click="handleEdit(scope.row)"
            >编辑</el-button
          >
          <el-button type="danger" size="small" @click="handleDelete(scope.row)"
            >删除</el-button
          >
        </template>
      </el-table-column>
    </el-table>
    <el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-size="deptCircularPage.pageSize"
      layout="total, sizes, prev, pager, next, jumper"
      :total="deptBudgetTotal"
    >
    </el-pagination>
    <!-- 附件弹框 -->
    <WinseaContentModal
      v-model="accessoryTFs"
      :title="$t('system.noticeCircular.information')"
      @on-cancel="handleClose"
    >
      <p>查看附件</p>
      <ws-upload
        ref="upload"
        table-name="maintain_work_order"
        oss-key="mainPlan"
        :comp-id="compId"
        :appendix-ids="appendixIdsAdd"
        :vesselId="deptBudgetList.addressUrl"
        :size-limit="size"
        @uploadSuccess="uploadSuccess"
        accept=".jpg, .jpeg, .png, .pdf, .doc, .zip, .rar"
      />
    </WinseaContentModal>
  </div>
</template>
<script>
import {
  getList,
  export1,
  editstatus,
  billoperatehis,
} from '@/model/contarct/index'
import { downloadFile } from '@/utils/batchDown'
import Pagination from '@/components/Pagination'
import WsUpload from '@/components/WsUpload'
import { dayjs, fmoney, EventBus } from 'base-core-lib'
export default {
  name: 'viewSpareMoney',
  components: {
    WsUpload,
    Pagination,
  },
  watch: {
    vesselId(val) {
      this.getList()
    },
    isShow(val) {
      this.showType = val
    },
  },
  data() {
    return {
      //弹出框
      dialogViewSpareMoney: false,
      dialogApproveFormVisible: false,
      // 船舶类型
      monetaryKey: null,
      // 表格显示数据
      tableDate: [],
      size: 10,
      // 是否显示
      showType: true,
      // 年
      year: '',
      deptBudgetTotal: 0,
      currentPage: 1,
      pageSize: 10,
      appendixIdsAdd: '',
      searchType: 1,
      searchTypeText: '未完成',
      searchKeyWord: '',
      contractType: 2,
      startDate: null,
      endDate: null,
      // 提交类型
      submitType: true,
      deptCircularPage: {},
      date: {
        year: dayjs().format('YYYY'),
        month: dayjs().format('MM'),
      },
      contractList: [],
      deptBudgetList: {},
      historyList: [],
      compId: sessionStorage.getItem('ws-pf_compId'),
      pickerBeginDateBefore: {
        disabledDate: (time) => {
          return time.getTime() > Date.now()
        },
      },
      accessoryTFs: false,
      taskTypeList: [
        { value: '未完成', type: 1 },
        { value: '已完成', type: 2 },
        { value: '全部合同', type: '' },
      ],
    }
  },
  activated() {
    //cg.viewBudget
    //cg.viewSpareMoney
    // this.getVesselData();
    console.log(11111)
    this.getList()
    this.showType = this.isShow
  },
  methods: {
    handleClose() {
      this.accessoryTFs = false
    },
    handleSizeChange(val) {
      console.log(`每页 ${val} 条`)
      this.getList()
    },
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`)
      this.getList()
    },
    getList() {
      getList({
        compId: sessionStorage.getItem('ws-pf_compId'),
        contractType: this.contractType,
        currentPage: this.currentPage,
        pageSize: this.pageSize,
        searchType: this.searchType,
        searchKeyWord: this.searchKeyWord,
        startDate: this.startDate,
        endDate: this.endDate,
        contrPage: this.contrPage,
      })
        .toPromise()
        .then((response) => {
          this.deptCircularPage.currentPage = response.current
          this.deptCircularPage.pageSize = response.size
          this.deptBudgetTotal = response.total
          this.contractList = response
        })
    },
    // 上传附件
    uploadSuccess(data, files, url) {
      console.log(data, files, url)

      // this.deptBudgetList.
      // this.formData.append('files', files)
      // this.feedbackObj.uploadNameAttachment = data.appendixName
      // this.feedbackObj.pathUploadAttachment = data.appendixPath
      // // this.newAppendixs = files
      // this.onChangeFlag = true
    },
    editClick(row) {
      var status = ''
      if (row.status == '待执行' || row.status == '已完成') {
        status = '执行中'
      } else if (row.status == '执行中') {
        status = '已完成'
      }
      this.$confirm(`是否将状态改为${status}`, '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(() => {
          editstatus({ id: row.id })
            .toPromise()
            .then((response) => {
              this.$notify.success({
                title: '成功',
                message: '状态修改成功',
              })
              this.getList()
            })
            .catch((response) => {
              // EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
            })
        })
        .catch(() => {
          return false
        })
    },
    selecttaskType(e) {
      for (var i = 0; i < this.taskTypeList.length; i++) {
        if (this.taskTypeList[i].value == e) {
          this.searchType = this.taskTypeList[i].type
        }
      }
    },
    fujian(row) {
      if (
        row.receiveAttachmentPath === null ||
        row.receiveAttachmentPath === ''
      ) {
        EventBus.$emit(
          'warning',
          this.$t('system.noticeCircular.NoInformation')
        )
      } else {
        this.accessoryTFs = true
      }
      this.appendixIdss = row.receiveAttachmentPath
    },
    handleExamine(row) {
      console.log(row)
      this.$router.push({
        name: 'purchaseContractExamine',
        params: { id: row.id },
      })
    },
    handleAdd() {
      this.$router.push({ path: 'purchaseContractAdd' })
    },
    handleEdit(row) {
      this.$router.push({
        name: 'purchaseContractEdit',
        query: { id: row.id },
      })
    },
    // 关闭 dialog时 处理文件url 初始化upload组件
    handleCloe() {
      this.dialogViewSpareMoney = false
    },
    history(row) {
      console.log(row)
      billoperatehis({ id: row.id })
        .toPromise()
        .then((response) => {
          this.historyList = response
        })
    },
    find() {
      this.getList()
    },
    async exportlist() {
      const { data } = await export1(
        {
          compId: sessionStorage.getItem('ws-pf_compId'),
          contractType: this.contractType,
          currentPage: this.currentPage,
          pageSize: this.pageSize,
          searchType: this.searchType,
          searchKeyWord: this.searchKeyWord,
          startDate: this.startDate,
          endDate: this.endDate,
        },
        {},
        { responseType: 'blob' }
      ).toPromise()
      downloadFile({
        res: data,
        fileName: `${
          this.date.year + (this.date.month ? `-${this.date.month}` : '')
        }_采购合同`,
        type: 'xls',
      })
    },
  },
}
</script>
<style lang="scss" scoped>
.wrap {
  width: 400px;
  position: absolute;
  top: 131px;
  left: 794px;
  transform-origin: right center;
  z-index: 2005;
}
.vertical-line {
  height: 100px;
  border-left: 2px solid;
  margin-left: 4px;
  // border-image: -webkit-linear-gradient(#00eba7, #08b8e6) 30 30;
  // border-image: -moz-linear-gradient(#00eba7, #08b8e6) 30 30;
  // border-image: linear-gradient(#00eba7, #08b8e6) 30 30;
}
.el-pagination {
  padding: 10px 15px;
  margin-bottom: 0;
  text-align: right;
}
.vertical-circle {
  float: left;
  width: 10px;
  height: 10px;
  border: 2px solid white;
  background-color: #08b8e6;
  -webkit-border-radius: 100px;
}
.vertical-circle:first-child {
  color: red;
}
.vertical-text {
  float: left;
  margin-top: -7px;
}
/deep/.el-table .el-table__header .cell,
/deep/.el-table .el-table__body .cell {
  text-align: center;
}
.typeselect {
  width: 500px;
}
.padding-xs {
  padding: 15px;
  text-align: right;
}
.clearfix:after {
  content: '';
  display: block;
  clear: both;
}
.el-table {
  font-size: 16px;
}
.taskType {
  width: 100%;
  background-color: #fff;
  margin-top: 2px;
  margin-bottom: 10px;
  list-style: none;
  // padding-bottom: 20px;
  li {
    float: left;
    border: 1px solid #6ea0f3;
    border-radius: 5px;
    max-width: 190px;
    padding: 0 5px;
    text-align: center;
    margin: 10px 20px;
    cursor: pointer;
    font-size: 14px;
    p {
      margin: 8px 0px;
      span {
        color: #e74c3c;
      }
    }
  }
  li:hover {
    background-color: #e4eeff;
    color: #1d6ced;
  }
}
.el-date-editor--date {
  margin: 0 10px;
}
.findValue {
  margin: 0 10px;
}
.button-container {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  background-color: #fff;
  width: 100%;
  height: 50px;
  padding: 0 10px;
  & > div {
    margin-left: 10px;
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    & > span {
      line-height: 50px;
    }
  }

  /deep/.auditFlow-box {
    position: unset;
    margin-left: 10px;
    &/deep/.auditFlow-icon {
      width: auto;
      padding-right: 30px;
    }
    &/deep/.auditFlow-main {
      position: absolute;
    }
  }
}
.box-app {
  display: inline-block;
  float: left;
  margin-left: 30px;
  line-height: 50px;
}
/deep/.el-dialog {
  .el-form-item {
    margin-bottom: 0 !important;
    .el-input--medium {
      textarea {
        min-height: 100px !important;
      }
    }
  }
}
.collapse-bottom {
  margin-bottom: 20px;
}

.input-main .textarea .el-textarea__inner {
  width: 100%;
  z-index: 1;
}
/*.crt-main .textarea /deep/ .el-form-item__label {*/
/*  height: 82px;*/
/*}*/
// 控制select为只读的时候显示样式

.hide-sel {
  .el-input__inner {
    border: 0px;
  }
  .el-icon-arrow-up {
    display: none;
  }
  .el-textarea__inner {
    background-color: #fff !important;
    border: 0;
  }
  .el-date-editor {
    i {
      display: none;
    }
  }
  .is-disabled {
    .el-input__inner:hover {
      background-color: #fff !important;
      border: 0;
    }
    color: #606266;
    .el-input__inner {
      background-color: #fff !important;
      border: 0;
      color: #606266;
    }
    .el-textarea__inner {
      background-color: #fff !important;
      border: 0;
      color: #606266;
    }
  }
}
// 控制select为只读的时候显示样式
/deep/.ws-class-table-col {
  height: auto;
  padding: 0px 2px;
  /deep/.el-input__inner {
    padding: 0px 2px;
  }
}
/deep/.is-disabled {
  .el-input__prefix,
  .el-input__suffix {
    display: none;
  }
  .el-input__inner {
    background-color: #fff;
    border-color: #fff !important;
    color: #000 !important;
    font-size: 14px;
    cursor: text;
    padding: 0 !important;
  }
}
</style>
